@zat-design/sisyphus-react 4.0.19 → 4.1.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 (61) hide show
  1. package/dist/index.esm.css +1 -1
  2. package/dist/less.esm.css +1 -1
  3. package/es/ProForm/components/combination/Group/utils/index.d.ts +28 -28
  4. package/es/ProLayout/components/Layout/Header/index.js +143 -2
  5. package/es/ProLayout/components/Layout/Header/style/index.less +161 -12
  6. package/es/ProLayout/components/Layout/Menu/FoldMenu/index.js +3 -2
  7. package/es/ProLayout/components/Layout/Menu/FoldMenu/style/index.less +7 -5
  8. package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +1 -6
  9. package/es/ProLayout/components/Layout/Menu/OpenMenu/propsType.d.ts +0 -1
  10. package/es/ProLayout/components/Layout/Menu/OpenMenu/style/index.less +14 -37
  11. package/es/ProLayout/components/Layout/Menu/SideMenu/index.js +1 -2
  12. package/es/ProLayout/components/Layout/Menu/SideMenu/style/index.less +2 -3
  13. package/es/ProLayout/components/Layout/Menu/index.js +1 -3
  14. package/es/ProLayout/components/Layout/Menu/style/index.less +12 -22
  15. package/es/ProLayout/components/Layout/Notice/style/index.less +31 -33
  16. package/es/ProLayout/components/ProCollapse/style/index.less +2 -0
  17. package/es/ProLayout/components/ProFooter/index.js +1 -1
  18. package/es/ProLayout/components/ProHeader/style/index.less +2 -1
  19. package/es/ProLayout/components/TabsManager/components/TabsHeader.d.ts +12 -0
  20. package/es/ProLayout/components/TabsManager/components/TabsHeader.js +53 -0
  21. package/es/ProLayout/components/TabsManager/index.js +7 -24
  22. package/es/ProLayout/components/TabsManager/style/index.less +24 -8
  23. package/es/ProLayout/index.js +12 -8
  24. package/es/ProLayout/propTypes.d.ts +69 -10
  25. package/es/ProLayout/propTypes.js +5 -1
  26. package/es/ProLayout/style/index.less +70 -35
  27. package/es/ProStep/components/Step/index.js +2 -1
  28. package/es/ProStep/utils/index.js +2 -1
  29. package/es/assets/apps.svg +23 -0
  30. package/es/assets/header_bg.png +0 -0
  31. package/es/style/theme/antd.less +5 -0
  32. package/lib/ProForm/components/combination/Group/utils/index.d.ts +28 -28
  33. package/lib/ProLayout/components/Layout/Header/index.js +143 -2
  34. package/lib/ProLayout/components/Layout/Header/style/index.less +161 -12
  35. package/lib/ProLayout/components/Layout/Menu/FoldMenu/index.js +3 -2
  36. package/lib/ProLayout/components/Layout/Menu/FoldMenu/style/index.less +7 -5
  37. package/lib/ProLayout/components/Layout/Menu/OpenMenu/index.js +1 -6
  38. package/lib/ProLayout/components/Layout/Menu/OpenMenu/propsType.d.ts +0 -1
  39. package/lib/ProLayout/components/Layout/Menu/OpenMenu/style/index.less +14 -37
  40. package/lib/ProLayout/components/Layout/Menu/SideMenu/index.js +1 -2
  41. package/lib/ProLayout/components/Layout/Menu/SideMenu/style/index.less +2 -3
  42. package/lib/ProLayout/components/Layout/Menu/index.js +1 -3
  43. package/lib/ProLayout/components/Layout/Menu/style/index.less +12 -22
  44. package/lib/ProLayout/components/Layout/Notice/style/index.less +31 -33
  45. package/lib/ProLayout/components/ProCollapse/style/index.less +2 -0
  46. package/lib/ProLayout/components/ProFooter/index.js +1 -1
  47. package/lib/ProLayout/components/ProHeader/style/index.less +2 -1
  48. package/lib/ProLayout/components/TabsManager/components/TabsHeader.d.ts +12 -0
  49. package/lib/ProLayout/components/TabsManager/components/TabsHeader.js +58 -0
  50. package/lib/ProLayout/components/TabsManager/index.js +7 -24
  51. package/lib/ProLayout/components/TabsManager/style/index.less +24 -8
  52. package/lib/ProLayout/index.js +12 -8
  53. package/lib/ProLayout/propTypes.d.ts +69 -10
  54. package/lib/ProLayout/propTypes.js +5 -1
  55. package/lib/ProLayout/style/index.less +70 -35
  56. package/lib/ProStep/components/Step/index.js +2 -1
  57. package/lib/ProStep/utils/index.js +2 -1
  58. package/lib/assets/apps.svg +23 -0
  59. package/lib/assets/header_bg.png +0 -0
  60. package/lib/style/theme/antd.less +5 -0
  61. package/package.json +1 -1
@@ -1,7 +1,6 @@
1
1
  @import '../../../../../../style/variables.less';
2
2
 
3
3
  .pro-layout-open-menu {
4
- color: #fff;
5
4
 
6
5
  .@{ant-prefix}-menu-root {
7
6
  overflow-y: auto !important;
@@ -12,10 +11,6 @@
12
11
  }
13
12
 
14
13
  & > .@{ant-prefix}-menu-submenu {
15
- .@{ant-prefix}-menu-sub {
16
- background: #1a202d;
17
- }
18
-
19
14
  & > .@{ant-prefix}-menu-sub > .@{ant-prefix}-menu-submenu > .@{ant-prefix}-menu-submenu-title,
20
15
  & > .@{ant-prefix}-menu-item-only-child,
21
16
  & > .@{ant-prefix}-menu-sub > .@{ant-prefix}-menu-item-only-child {
@@ -58,34 +53,16 @@
58
53
  .@{ant-prefix}-menu-item,
59
54
  .@{ant-prefix}-menu-submenu-title {
60
55
  &:hover {
61
- background: var(--ant-primary-8, #003eb3);
62
-
63
- h2 {
64
- color: #fff;
65
- }
56
+ background: transparent;
66
57
  }
67
58
  }
68
59
 
69
- .@{ant-prefix}-menu.@{ant-prefix}-menu-dark {
70
- overflow-x: hidden;
71
- background: #1a202d;
72
-
73
- .@{ant-prefix}-menu-item-only-child {
74
- &:hover {
75
- background: var(--ant-primary-8, #003eb3);
76
-
77
- h2 {
78
- color: #fff;
79
- }
80
- }
81
- }
82
- }
83
60
 
84
61
  .@{ant-prefix}-menu-item-selected {
85
- background: var(--zaui-brand, #006aff) !important;
62
+ background: transparent !important;
86
63
 
87
64
  h2 {
88
- color: #fff !important;
65
+ color: var(--zaui-brand, #006aff) !important;
89
66
  }
90
67
  }
91
68
 
@@ -109,7 +86,7 @@
109
86
  flex: 0 0 20px;
110
87
  width: 20px;
111
88
  height: 20px;
112
- color: #cacaca;
89
+ color: var(--zaui-text, #343434);
113
90
  }
114
91
 
115
92
  h2 {
@@ -117,7 +94,7 @@
117
94
  flex-grow: 1;
118
95
  margin-bottom: 0;
119
96
  padding-left: 12px;
120
- color: #cacaca;
97
+ color: var(--zaui-text, #343434);
121
98
  font-weight: 400;
122
99
  font-size: var(--zaui-font-size-md, 14px);
123
100
  opacity: 1;
@@ -128,26 +105,26 @@
128
105
 
129
106
  .anticon-caret-down {
130
107
  top: auto;
131
- color: #cacaca;
108
+ color: #999;
132
109
  transform: rotateZ(0deg);
133
110
  transition: all 0.1s ease-in;
134
111
  }
135
112
 
136
113
  .@{ant-prefix}-menu-submenu-open {
137
114
  .anticon-caret-down {
138
- color: #fff;
115
+ color: var(--zaui-text, #343434);
139
116
  transform: rotateZ(180deg);
140
117
  }
141
118
 
142
119
  .@{ant-prefix}-menu-submenu-inline {
143
120
  .anticon-caret-down {
144
- color: #cacaca;
121
+ color: #999;
145
122
  transform: rotateZ(0deg);
146
123
  }
147
124
 
148
125
  &.@{ant-prefix}-menu-submenu-open {
149
126
  .anticon-caret-down {
150
- color: #fff;
127
+ color: var(--zaui-text, #343434);
151
128
  transform: rotateZ(180deg);
152
129
  }
153
130
  }
@@ -157,7 +134,7 @@
157
134
  .@{ant-prefix}-menu-submenu:hover
158
135
  > .@{ant-prefix}-menu-submenu-title
159
136
  > .@{ant-prefix}-menu-submenu-expand-icon {
160
- color: #fff;
137
+ color: var(--zaui-text, #343434);
161
138
  }
162
139
 
163
140
  .@{ant-prefix}-menu-item-selected{
@@ -172,22 +149,22 @@
172
149
  & > .@{ant-prefix}-menu-submenu-title {
173
150
  .@{ant-prefix}-menu-title-content div {
174
151
  .pro-layout-icon {
175
- color: #fff;
152
+ color: var(--zaui-brand, #006aff);
176
153
  }
177
154
 
178
155
  h2 {
179
- color: #fff;
156
+ color: var(--zaui-brand, #006aff);
180
157
  }
181
158
  }
182
159
  }
183
160
 
184
161
  .@{ant-prefix}-menu-item-only-child .@{ant-prefix}-menu-title-content div {
185
162
  .pro-layout-icon {
186
- color: #cacaca;
163
+ color: var(--zaui-text, #343434);
187
164
  }
188
165
 
189
166
  h2 {
190
- color: #cacaca;
167
+ color: var(--zaui-text, #343434);
191
168
  font-weight: 400;
192
169
  }
193
170
  }
@@ -25,7 +25,6 @@ var SideMenu = props => {
25
25
  }), /*#__PURE__*/_jsx("div", {
26
26
  children: /*#__PURE__*/_jsx(OpenMenu, {
27
27
  className: "pro-layout-sider-menu-list",
28
- theme: "light",
29
28
  onMenuClick: onMenuClick,
30
29
  dataSource: {
31
30
  menus: (menus === null || menus === void 0 ? void 0 : menus.children) || [],
@@ -33,7 +32,7 @@ var SideMenu = props => {
33
32
  sideMenu: true
34
33
  },
35
34
  style: {
36
- height: `calc(100vh - ${headerHeight + (notice ? 32 : 0) + ((size === null || size === void 0 ? void 0 : size.height) || 0)}px)`
35
+ height: `calc(100vh - ${headerHeight + (notice ? 32 : 0) + ((size === null || size === void 0 ? void 0 : size.height) || 0) + 12}px)`
37
36
  }
38
37
  })
39
38
  })]
@@ -3,12 +3,12 @@
3
3
  .pro-layout-sider-menu {
4
4
  width: 220px;
5
5
  background: #fff;
6
+ border-radius: 8px;
6
7
 
7
8
  h2 {
8
9
  margin-bottom: 0;
9
10
  padding: 16px 16px 8px;
10
11
  color: var(--zaui-text, #343434);
11
- color: var(--zaui-text);
12
12
  font-weight: 500;
13
13
  font-size: var(--zaui-font-size-lg, 16px);
14
14
  line-height: inherit;
@@ -80,8 +80,7 @@
80
80
 
81
81
  .@{ant-prefix}-menu-submenu-title:hover,
82
82
  .@{ant-prefix}-menu-item:hover {
83
- color: #fff;
84
- background-color: #f2f2f2;
83
+ background-color: transparent;
85
84
  }
86
85
 
87
86
  .@{ant-prefix}-menu-item {
@@ -13,7 +13,6 @@ var Menu = props => {
13
13
  notice = _ref.notice,
14
14
  onToggle = _ref.onToggle,
15
15
  pure = _ref.pure,
16
- theme = _ref.theme,
17
16
  sideMenuFooterRender = _ref.sideMenuFooterRender,
18
17
  sideMenuHeaderRender = _ref.sideMenuHeaderRender,
19
18
  onMenuClick = _ref.onMenuClick;
@@ -33,7 +32,7 @@ var Menu = props => {
33
32
  return /*#__PURE__*/_jsxs("div", {
34
33
  className: menuCls,
35
34
  style: {
36
- top: notice ? 80 + headerHeight - 48 : headerHeight
35
+ top: notice ? 96 + headerHeight - 64 : headerHeight
37
36
  },
38
37
  children: [sideMenuHeaderRender, /*#__PURE__*/_jsx(OpenMenu, {
39
38
  dataSource: {
@@ -41,7 +40,6 @@ var Menu = props => {
41
40
  iconfontUrl,
42
41
  height: headerHeight + (notice ? 32 : 0) + 48
43
42
  },
44
- theme: theme,
45
43
  onMenuClick: onMenuClick,
46
44
  style: {
47
45
  display: collapsed ? 'block' : 'none'
@@ -4,6 +4,8 @@
4
4
 
5
5
  /** 侧边栏 + 内容区 */
6
6
  .pro-layout-row {
7
+ display: flex;
8
+ flex: 1;
7
9
  flex-direction: column;
8
10
 
9
11
  .pro-layout-menu-open {
@@ -61,52 +63,40 @@
61
63
  }
62
64
  }
63
65
 
64
- &.pro-layout-has-notice {
66
+ &.pro-layout-row-has-notice {
65
67
  .pro-layout-menu {
66
- top: 80px;
68
+ top: 96px;
67
69
 
68
70
  #nav-list {
69
- height: calc(100vh - 128px);
71
+ height: calc(100vh - 144px);
70
72
  }
71
73
  }
72
74
 
73
75
  .pro-layout-content {
74
- min-height: calc(100vh - 80px);
75
- margin-top: 80px;
76
+ margin-top: 96px;
76
77
  }
77
78
  }
78
79
 
79
80
  .pro-layout-menu {
80
81
  position: fixed;
81
- top: 48px;
82
+ top: 64px;
82
83
  left: 0;
83
- z-index: 99;
84
+ z-index: 50;
84
85
  width: 48px;
85
86
  height: 100vh;
86
87
  min-height: 100%;
87
88
  padding: 0;
88
89
  overflow-x: hidden;
89
90
  overflow-y: auto;
90
- background-color: #1a202d;
91
+ background-color: #F7F9FD;
91
92
  transition: background 0.3s, width 0.3s cubic-bezier(0.2, 0, 0, 1) 0s;
92
93
 
93
94
  &.pro-layout-menu-open {
94
95
  width: 220px;
96
+ background-color: #F7F9FD;
95
97
  }
96
98
  }
97
99
 
98
- /** 内容区 */
99
- .pro-layout-content {
100
- z-index: 1;
101
- flex: auto;
102
- flex: auto;
103
- min-height: calc(100vh - 48px);
104
- margin-top: 48px;
105
- margin-left: 48px;
106
- padding: 0 var(--zaui-space-size-md, 16px);
107
- transition: all 0.3s ease-in-out;
108
- }
109
-
110
100
  .pro-layout-menu.pro-layout-menu-open .pro-layout-menu-collapsed {
111
101
  left: 0;
112
102
  width: 220px;
@@ -126,12 +116,12 @@
126
116
  justify-content: center;
127
117
  width: 48px;
128
118
  height: 48px;
129
- background: #292f3b;
119
+ background: #F7F9FD;
130
120
  transition: all 0.3s ease;
131
121
  }
132
122
 
133
123
  .pro-layout-menu .pro-layout-menu-collapsed:hover {
134
- background-color: rgba(185, 185, 189, 0.1);
124
+ background-color: rgba(0, 106, 255, 0.08);
135
125
  }
136
126
 
137
127
  .pro-layout-menu .pro-layout-menu-collapsed img {
@@ -1,39 +1,37 @@
1
+ /** 告知区 */
2
+ .pro-layout-header-notice {
3
+ position: fixed;
4
+ top: 64px;
5
+ z-index: 6;
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ width: 100%;
10
+ min-height: 32px;
11
+ color: var(--zaui-text, #343434);
12
+ line-height: 32px;
13
+ text-align: center;
14
+ background: transparent;
1
15
 
2
- /** 告知区 */
3
- .pro-layout-header-notice {
4
- position : fixed;
5
- top : 48px;
6
- z-index : 101;
7
- display : flex;
8
- align-items : center;
9
- justify-content: center;
10
- width : 100%;
11
- min-height : 32px;
12
- color : var(--zaui-text, #343434);
13
- line-height : 32px;
14
- text-align : center;
15
- background : var(--ant-primary-1, #e6f4ff);
16
+ img {
17
+ width: 16px;
18
+ margin-right: var(--zaui-space-size-sm, 8px);
19
+ }
20
+ a {
21
+ color: var(--zaui-brand, #006aff);
22
+ text-decoration: none;
23
+ }
16
24
 
25
+ .pro-layout-header-notice-close {
26
+ position: absolute;
27
+ right: 0;
28
+ display: block;
29
+ padding: 0 var(--zaui-space-size-md, 16px);
30
+ cursor: pointer;
17
31
 
18
32
  img {
19
- width : 16px;
20
- margin-right: var(--zaui-space-size-sm, 8px);
21
- }
22
- a {
23
- color: var(--zaui-brand, #006aff);
24
- text-decoration: none;
25
- }
26
-
27
- .pro-layout-header-notice-close {
28
- position: absolute;
29
- right : 0;
30
- display : block;
31
- padding : 0 var(--zaui-space-size-md, 16px);
32
- cursor : pointer;
33
-
34
- img {
35
- width : 12px;
36
- margin-right: 0;
37
- }
33
+ width: 12px;
34
+ margin-right: 0;
38
35
  }
39
36
  }
37
+ }
@@ -61,6 +61,7 @@
61
61
  padding-top: var(--zaui-space-size-sm, 8px);
62
62
  padding-bottom: 0;
63
63
  background: var(--zaui-base-bg, #ffffff);
64
+ border: 1px solid #ebecee;
64
65
  }
65
66
  }
66
67
 
@@ -100,6 +101,7 @@
100
101
 
101
102
  .pro-collapse-content {
102
103
  padding: var(--zaui-space-size-md, 16px) !important;
104
+ border: none !important;
103
105
  }
104
106
 
105
107
  .pro-collapse-level2-collapse {
@@ -42,7 +42,7 @@ var ProFooter = props => {
42
42
  className: cls,
43
43
  style: _objectSpread({
44
44
  zIndex,
45
- width: `calc(100% - ${size === null || size === void 0 ? void 0 : size.width}px)`
45
+ width: `calc(100% - ${(size === null || size === void 0 ? void 0 : size.width) + 1}px)`
46
46
  }, props.style),
47
47
  children: /*#__PURE__*/_jsx(Space, {
48
48
  children: children
@@ -4,7 +4,7 @@
4
4
  .pro-header {
5
5
  padding: 10px 0 0 0 !important;
6
6
  background-color: var(--zaui-base-bg, #ffffff);
7
- box-shadow: 2px 3px 8px 0px rgba(0, 55, 93, 0.1);
7
+ box-shadow: 0px 3px 8px 1px rgba(0, 55, 93, 0.1);
8
8
 
9
9
  &.pro-header-no-back.pro-header-has-describe {
10
10
  .pro-header-top {
@@ -76,6 +76,7 @@
76
76
  right: 0;
77
77
  background: #fff;
78
78
  letter-spacing: 2px;
79
+ height: 24px;
79
80
  }
80
81
  }
81
82
  }
@@ -0,0 +1,12 @@
1
+ import type { TabsProps } from 'antd';
2
+ export interface TabsHeaderProps {
3
+ activeKey: string | undefined;
4
+ tabsItems: TabsProps['items'];
5
+ onTabChange: (activeKey: string) => void;
6
+ onTabEdit: (targetKey: string, action: 'add' | 'remove') => void;
7
+ }
8
+ /**
9
+ * 标签页头部:监听 window 滚动(实际滚动在 window/documentElement,非 body),
10
+ * 滚动时添加阴影类名;仅此组件随滚动重渲染,不带动父组件内容区。
11
+ */
12
+ export declare function TabsHeader({ activeKey, tabsItems, onTabChange, onTabEdit }: TabsHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,53 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useEffect, useState } from 'react';
8
+ import { Tabs } from 'antd';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ /**
12
+ * 标签页头部:监听 window 滚动(实际滚动在 window/documentElement,非 body),
13
+ * 滚动时添加阴影类名;仅此组件随滚动重渲染,不带动父组件内容区。
14
+ */
15
+ export function TabsHeader(_ref) {
16
+ var activeKey = _ref.activeKey,
17
+ tabsItems = _ref.tabsItems,
18
+ onTabChange = _ref.onTabChange,
19
+ onTabEdit = _ref.onTabEdit;
20
+ var _useState = useState(() => typeof window !== 'undefined' ? window.scrollY : 0),
21
+ _useState2 = _slicedToArray(_useState, 2),
22
+ windowScrollY = _useState2[0],
23
+ setWindowScrollY = _useState2[1];
24
+ useEffect(() => {
25
+ if (typeof window === 'undefined') return;
26
+ var onScroll = () => setWindowScrollY(window.scrollY);
27
+ window.addEventListener('scroll', onScroll, {
28
+ passive: true
29
+ });
30
+ return () => window.removeEventListener('scroll', onScroll);
31
+ }, []);
32
+ var isScrolled = windowScrollY > 0;
33
+ return /*#__PURE__*/_jsxs("div", {
34
+ className: "pro-layout-tabs-header",
35
+ children: [/*#__PURE__*/_jsx(Tabs, {
36
+ activeKey: activeKey,
37
+ onChange: onTabChange,
38
+ onEdit: onTabEdit,
39
+ type: "editable-card",
40
+ hideAdd: true,
41
+ items: tabsItems,
42
+ className: "pro-layout-tabs-antd",
43
+ classNames: {
44
+ popup: {
45
+ root: 'pro-layout-tabs-dropdown-menu'
46
+ }
47
+ }
48
+ }), isScrolled && /*#__PURE__*/_jsx("div", {
49
+ className: "pro-layout-tabs-header-shadow",
50
+ "aria-hidden": true
51
+ })]
52
+ });
53
+ }
@@ -10,9 +10,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
10
10
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
11
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
12
  import { useCallback, useMemo, forwardRef, useImperativeHandle, useState, useEffect } from 'react';
13
- import { Tabs } from 'antd';
14
13
  import { useTabsState } from "./hooks/useTabsState";
15
14
  import { TabItemComponent } from "./components/TabItem";
15
+ import { TabsHeader } from "./components/TabsHeader";
16
16
  import { TabsContext } from "./components/TabsContext";
17
17
 
18
18
  /**
@@ -127,28 +127,6 @@ var TabsManager = /*#__PURE__*/forwardRef((_ref, ref) => {
127
127
  }));
128
128
  }, [state.tabsList, state.activeKey, config === null || config === void 0 ? void 0 : config.menuItems, config === null || config === void 0 ? void 0 : config.tabMenuClick, switchTab, removeTab, closeOtherTabs, closeRightTabs, closeAllTabs]);
129
129
 
130
- // 渲染标签页列表
131
- var renderTabList = () => {
132
- if (state.tabsList.length === 0) return null;
133
- return /*#__PURE__*/_jsx("div", {
134
- className: "pro-layout-tabs-header",
135
- children: /*#__PURE__*/_jsx(Tabs, {
136
- activeKey: state.activeKey || undefined,
137
- onChange: handleTabChange,
138
- onEdit: handleTabEdit,
139
- type: "editable-card",
140
- hideAdd: true,
141
- items: tabsItems,
142
- className: "pro-layout-tabs-antd",
143
- classNames: {
144
- popup: {
145
- root: 'pro-layout-tabs-dropdown-menu'
146
- }
147
- }
148
- })
149
- });
150
- };
151
-
152
130
  // 从 config 中获取组件解析函数和空状态组件
153
131
  var activeComponent = config === null || config === void 0 ? void 0 : config.activeComponent;
154
132
  var emptyComponent = config === null || config === void 0 ? void 0 : config.empty;
@@ -202,7 +180,12 @@ var TabsManager = /*#__PURE__*/forwardRef((_ref, ref) => {
202
180
  children: /*#__PURE__*/_jsxs("div", {
203
181
  className: "pro-layout-tabs",
204
182
  "data-testid": "tabs-manager",
205
- children: [renderTabList(), renderContent()]
183
+ children: [state.tabsList.length > 0 && /*#__PURE__*/_jsx(TabsHeader, {
184
+ activeKey: state.activeKey || undefined,
185
+ tabsItems: tabsItems,
186
+ onTabChange: handleTabChange,
187
+ onTabEdit: handleTabEdit
188
+ }), renderContent()]
206
189
  })
207
190
  });
208
191
  });
@@ -15,9 +15,24 @@
15
15
  padding: 12px 0;
16
16
  border-bottom: none;
17
17
  position: sticky;
18
- top: 48px;
19
- z-index: 20;
20
- background: #f3f5f8;
18
+ top: 64px;
19
+ z-index: 90;
20
+ background: #fff;
21
+ box-shadow: none;
22
+ transition: box-shadow 0.3s ease;
23
+
24
+ &-shadow {
25
+ position: absolute;
26
+ left: 0;
27
+ right: 0;
28
+ bottom: 0;
29
+ height: 1px;
30
+ background: transparent;
31
+ pointer-events: none;
32
+ z-index: 1;
33
+ box-shadow: 1px 2px 4px 1px rgba(0, 55, 93, .2);
34
+ }
35
+
21
36
  .pro-layout-tab-icon {
22
37
  display: none !important;
23
38
  }
@@ -79,6 +94,7 @@
79
94
  // 覆盖 nav 样式,使其匹配 pro-layout-tabs-header
80
95
  .@{ant-prefix}-tabs-nav {
81
96
  margin: 0;
97
+ // padding: 0 var(--zaui-space-size-md, 16px);
82
98
  padding: 0;
83
99
  border-bottom: none;
84
100
 
@@ -121,7 +137,7 @@
121
137
  padding: 0 !important;
122
138
  margin: 0 !important;
123
139
  background: transparent !important;
124
- border: none !important;
140
+ border: none ;
125
141
  border-radius: 0 !important;
126
142
  cursor: pointer;
127
143
  transition: none; // 由内部 TabItemComponent 处理过渡
@@ -139,6 +155,7 @@
139
155
  .pro-layout-tab-item {
140
156
  width: 100%;
141
157
  height: 100%;
158
+ border: 1px solid rgb(217, 217, 217);
142
159
  }
143
160
  }
144
161
 
@@ -146,6 +163,9 @@
146
163
  .@{ant-prefix}-tabs-tab-active {
147
164
  background: transparent !important;
148
165
  border: none !important;
166
+ .pro-layout-tab-item{
167
+ border-color: transparent !important;
168
+ }
149
169
 
150
170
  &::before {
151
171
  display: none;
@@ -267,10 +287,6 @@
267
287
  }
268
288
  }
269
289
 
270
- .pro-layout-dark .pro-layout-tabs {
271
- --pro-layout-tabs-text-color: rgba(255, 255, 255, 0.85);
272
- }
273
-
274
290
  .pro-layout-tabs-dropdown-menu{
275
291
  .@{ant-prefix}-tabs-dropdown-menu-item-remove{
276
292
  display: none !important;
@@ -23,6 +23,7 @@ import { useProLayoutTabs } from "./components/TabsManager/hooks/useProLayoutTab
23
23
  import { useActiveTab } from "./components/TabsManager/hooks/useActiveTab";
24
24
  import { transformMenus } from "./utils";
25
25
  import { isLeafMenuItem } from "./components/TabsManager/utils";
26
+ import headerBg from "../assets/header_bg.png";
26
27
 
27
28
  // 全局上下文
28
29
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -36,7 +37,7 @@ var ProLayout = props => {
36
37
  _props$pure = props.pure,
37
38
  pure = _props$pure === void 0 ? false : _props$pure,
38
39
  _props$headerHeight = props.headerHeight,
39
- headerHeight = _props$headerHeight === void 0 ? 48 : _props$headerHeight,
40
+ headerHeight = _props$headerHeight === void 0 ? 64 : _props$headerHeight,
40
41
  _props$contentStyle = props.contentStyle,
41
42
  contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,
42
43
  _props$waterMarkProps = props.waterMarkProps,
@@ -46,8 +47,6 @@ var ProLayout = props => {
46
47
  dataSource = props.dataSource,
47
48
  _props$pathPrefix = props.pathPrefix,
48
49
  pathPrefix = _props$pathPrefix === void 0 ? '' : _props$pathPrefix,
49
- _props$theme = props.theme,
50
- theme = _props$theme === void 0 ? 'dark' : _props$theme,
51
50
  target = props.target,
52
51
  onCollapsedChange = props.onCollapsedChange,
53
52
  _props$collapsed = props.collapsed,
@@ -59,6 +58,7 @@ var ProLayout = props => {
59
58
  _props$title = props.title,
60
59
  title = _props$title === void 0 ? '' : _props$title,
61
60
  logo = props.logo,
61
+ appsOptions = props.appsOptions,
62
62
  _props$iconfontUrl = props.iconfontUrl,
63
63
  iconfontUrl = _props$iconfontUrl === void 0 ? '' : _props$iconfontUrl,
64
64
  sideMenuFooterRender = props.sideMenuFooterRender,
@@ -199,7 +199,8 @@ var ProLayout = props => {
199
199
  headerContentRender,
200
200
  rightContentRender,
201
201
  title,
202
- logo
202
+ logo,
203
+ appsOptions
203
204
  };
204
205
 
205
206
  // 为Notice组件创建专门的props对象
@@ -223,18 +224,21 @@ var ProLayout = props => {
223
224
  onCollapsedChange && onCollapsedChange(!collapsed);
224
225
  },
225
226
  pure,
226
- theme,
227
227
  sideMenuFooterRender,
228
228
  sideMenuHeaderRender,
229
- onMenuClick: handleMenuClick
229
+ onMenuClick: handleMenuClick,
230
+ appsOptions
230
231
  };
231
232
  var layoutDom = /*#__PURE__*/_jsxs("div", {
232
233
  className: classNames({
233
234
  'pro-layout': true,
234
- 'pro-layout-dark': theme === 'dark',
235
- 'pro-layout-light': theme === 'light',
235
+ 'pro-layout-light': true,
236
+ 'pro-layout-pure': typeof pure === 'boolean' ? pure : (pure === null || pure === void 0 ? void 0 : pure.topMenu) || (pure === null || pure === void 0 ? void 0 : pure.leftMenu),
236
237
  [`${className}`]: className
237
238
  }),
239
+ style: {
240
+ '--header-bg-image': `url(${headerBg})`
241
+ },
238
242
  children: [/*#__PURE__*/_jsx(Header, _objectSpread({}, headerProps)), /*#__PURE__*/_jsx(Notice, _objectSpread({}, noticeProps)), /*#__PURE__*/_jsxs("div", {
239
243
  className: contentCls,
240
244
  children: [/*#__PURE__*/_jsx(Menu, _objectSpread({}, menuProps)), /*#__PURE__*/_jsx("div", {