@sdata/web-vue 2.2.1 → 2.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 (205) hide show
  1. package/README.md +1 -1
  2. package/dist/sd.css +117 -191
  3. package/dist/sd.min.css +1 -1
  4. package/es/_components/picker/input-range.vue.d.ts +2 -2
  5. package/es/_components/transition/expand-transition.vue.d.ts +2 -2
  6. package/es/_hooks/use-responsive.d.ts +2 -2
  7. package/es/_hooks/use-theme-mode.d.ts +3 -0
  8. package/es/{calendar/hooks/use-calendar-theme.js → _hooks/use-theme-mode.js} +14 -10
  9. package/es/_utils/date.d.ts +10 -9
  10. package/es/_utils/date.js +23 -7
  11. package/es/_utils/responsive-observe.d.ts +5 -4
  12. package/es/_utils/responsive-observe.js +2 -1
  13. package/es/alert/index.d.ts +3 -3
  14. package/es/anchor/anchor.vue.d.ts +52 -2
  15. package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +75 -15
  16. package/es/anchor/index.d.ts +78 -3
  17. package/es/avatar/index.d.ts +20 -20
  18. package/es/border-beam/border-beam.js +5 -0
  19. package/es/border-beam/border-beam.vue.d.ts +52 -0
  20. package/es/border-beam/border-beam.vue_vue_type_script_setup_true_lang.js +623 -0
  21. package/es/border-beam/index.d.ts +106 -0
  22. package/es/border-beam/index.js +10 -0
  23. package/es/border-beam/pulseDriver.d.ts +2 -0
  24. package/es/border-beam/pulseDriver.js +74 -0
  25. package/es/border-beam/style/css.js +2 -0
  26. package/es/border-beam/style/index.css +21 -0
  27. package/es/border-beam/style/index.d.ts +2 -0
  28. package/es/border-beam/style/index.js +2 -0
  29. package/es/border-beam/style/index.scss +12 -0
  30. package/es/border-beam/style/token.scss +12 -0
  31. package/es/border-beam/styles.d.ts +42 -0
  32. package/es/border-beam/styles.js +3545 -0
  33. package/es/border-beam/types.d.ts +27 -0
  34. package/es/button/button.vue.d.ts +16 -3
  35. package/es/button/button.vue_vue_type_script_setup_true_lang.js +39 -9
  36. package/es/button/index.d.ts +43 -24
  37. package/es/button/interface.d.ts +1 -0
  38. package/es/calendar/components/cell.vue.d.ts +26 -26
  39. package/es/calendar/components/index.vue.d.ts +1 -1
  40. package/es/calendar/components/index.vue_vue_type_script_setup_true_lang.js +3 -2
  41. package/es/calendar/index.d.ts +5 -5
  42. package/es/carousel/index.d.ts +3 -3
  43. package/es/cascader/cascader.vue.d.ts +8 -8
  44. package/es/checkbox/checkbox.d.ts +3 -3
  45. package/es/collapse/collapse-item.d.ts +5 -5
  46. package/es/collapse/index.d.ts +3 -3
  47. package/es/components.d.ts +1 -0
  48. package/es/config-provider/config-provider.vue.d.ts +9 -0
  49. package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +10 -1
  50. package/es/config-provider/context.d.ts +1 -0
  51. package/es/config-provider/index.d.ts +36 -21
  52. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +1 -0
  53. package/es/date-picker/hooks/use-cell-class-name.d.ts +1 -0
  54. package/es/date-picker/hooks/use-cell-class-name.js +3 -2
  55. package/es/date-picker/hooks/use-header-value.d.ts +2 -0
  56. package/es/date-picker/hooks/use-header-value.js +23 -19
  57. package/es/date-picker/hooks/use-picker-state.d.ts +2 -0
  58. package/es/date-picker/hooks/use-picker-state.js +3 -3
  59. package/es/date-picker/hooks/use-range-header-value.d.ts +2 -0
  60. package/es/date-picker/hooks/use-range-header-value.js +5 -1
  61. package/es/date-picker/hooks/use-range-picker-state.d.ts +2 -0
  62. package/es/date-picker/hooks/use-range-picker-state.js +3 -3
  63. package/es/date-picker/hooks/use-value-format.d.ts +5 -3
  64. package/es/date-picker/hooks/use-value-format.js +10 -8
  65. package/es/date-picker/index.d.ts +1373 -12
  66. package/es/date-picker/interface.d.ts +7 -0
  67. package/es/date-picker/panels/body.vue.d.ts +24 -6
  68. package/es/date-picker/panels/body.vue_vue_type_script_setup_true_lang.js +13 -12
  69. package/es/date-picker/panels/date/index.vue.d.ts +26 -8
  70. package/es/date-picker/panels/date/index.vue_vue_type_script_setup_true_lang.js +18 -9
  71. package/es/date-picker/panels/header.vue_vue_type_script_setup_true_lang.js +13 -20
  72. package/es/date-picker/panels/month/index.vue.d.ts +13 -8
  73. package/es/date-picker/panels/month/index.vue_vue_type_script_setup_true_lang.js +6 -6
  74. package/es/date-picker/panels/quarter/index.vue.d.ts +13 -8
  75. package/es/date-picker/panels/quarter/index.vue_vue_type_script_setup_true_lang.js +6 -6
  76. package/es/date-picker/panels/shortcuts.vue_vue_type_script_setup_true_lang.js +2 -6
  77. package/es/date-picker/panels/week/index.vue.d.ts +13 -1
  78. package/es/date-picker/panels/week/index.vue_vue_type_script_setup_true_lang.js +5 -2
  79. package/es/date-picker/panels/year/index.vue.d.ts +13 -8
  80. package/es/date-picker/panels/year/index.vue_vue_type_script_setup_true_lang.js +25 -15
  81. package/es/date-picker/picker-panel.vue.d.ts +56 -14
  82. package/es/date-picker/picker-panel.vue_vue_type_script_setup_true_lang.js +36 -19
  83. package/es/date-picker/picker.vue.d.ts +951 -3
  84. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +91 -29
  85. package/es/date-picker/range-picker-panel.vue.d.ts +77 -15
  86. package/es/date-picker/range-picker-panel.vue_vue_type_script_setup_true_lang.js +52 -28
  87. package/es/date-picker/range-picker.vue.d.ts +1348 -4
  88. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +114 -34
  89. package/es/descriptions/index.d.ts +24 -24
  90. package/es/drawer/drawer.vue.d.ts +5 -5
  91. package/es/drawer/index.d.ts +15 -15
  92. package/es/dropdown/dropdown-button.vue.d.ts +4 -4
  93. package/es/dropdown/index.d.ts +15 -15
  94. package/es/ellipsis/ellipsis.vue.d.ts +7 -7
  95. package/es/ellipsis/performant-ellipsis.vue.d.ts +5 -5
  96. package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +3 -3
  97. package/es/form/index.d.ts +3 -3
  98. package/es/grid/grid-col.vue_vue_type_script_setup_true_lang.js +2 -2
  99. package/es/grid/grid.vue_vue_type_script_setup_true_lang.js +10 -10
  100. package/es/icon/icon-menu/icon-menu.js +5 -0
  101. package/es/icon/icon-menu/icon-menu.vue_vue_type_script_setup_true_lang.js +52 -0
  102. package/es/icon/icon-menu/index.js +9 -0
  103. package/es/image/preview-toolbar.vue.d.ts +2 -3
  104. package/es/image/preview-toolbar.vue_vue_type_script_setup_true_lang.js +2 -3
  105. package/es/image/preview.vue.d.ts +2 -2
  106. package/es/index.css +117 -191
  107. package/es/index.d.ts +3 -1
  108. package/es/index.js +3 -2
  109. package/es/index.scss +1 -0
  110. package/es/input/index.d.ts +7 -7
  111. package/es/input/input-password.vue.d.ts +3 -3
  112. package/es/json-form/index.d.ts +9 -9
  113. package/es/json-form/json-form-item.vue_vue_type_script_setup_true_lang.js +1 -1
  114. package/es/json-form/json-form.vue.d.ts +3 -3
  115. package/es/layout/content.vue.d.ts +2 -2
  116. package/es/layout/content.vue_vue_type_script_setup_true_lang.js +8 -3
  117. package/es/layout/context.d.ts +12 -9
  118. package/es/layout/context.js +11 -3
  119. package/es/layout/footer.vue.d.ts +2 -2
  120. package/es/layout/footer.vue_vue_type_script_setup_true_lang.js +8 -3
  121. package/es/layout/header.vue.d.ts +3 -30
  122. package/es/layout/header.vue_vue_type_script_setup_true_lang.js +9 -339
  123. package/es/layout/hooks/use-has-sider.d.ts +2 -0
  124. package/es/layout/hooks/use-has-sider.js +38 -0
  125. package/es/layout/index.d.ts +91 -380
  126. package/es/layout/index.js +2 -2
  127. package/es/layout/interface.d.ts +12 -46
  128. package/es/layout/layout.vue.d.ts +4 -2
  129. package/es/layout/layout.vue_vue_type_script_setup_true_lang.js +38 -14
  130. package/es/layout/sider.vue.d.ts +47 -183
  131. package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +191 -370
  132. package/es/layout/style/index.css +112 -190
  133. package/es/layout/style/index.scss +127 -239
  134. package/es/layout/style/token.scss +46 -26
  135. package/es/link/index.d.ts +6 -6
  136. package/es/list/index.d.ts +18 -18
  137. package/es/locale/interface.d.ts +2 -0
  138. package/es/locale/lang/ar-eg.js +46 -0
  139. package/es/locale/lang/de-de.js +46 -0
  140. package/es/locale/lang/es-es.js +46 -0
  141. package/es/locale/lang/fr-fr.js +46 -0
  142. package/es/locale/lang/id-id.js +46 -0
  143. package/es/locale/lang/it-it.js +46 -0
  144. package/es/locale/lang/km-kh.js +46 -0
  145. package/es/locale/lang/ko-kr.js +46 -0
  146. package/es/locale/lang/ms-my.js +46 -0
  147. package/es/locale/lang/pt-pt.js +46 -0
  148. package/es/locale/lang/th-th.js +46 -0
  149. package/es/locale/lang/vi-vn.js +46 -0
  150. package/es/mention/mention.js +2 -0
  151. package/es/menu/base-menu.vue.d.ts +1 -1
  152. package/es/menu/base-menu.vue_vue_type_script_setup_true_lang.js +14 -14
  153. package/es/menu/item.d.ts +1 -1
  154. package/es/menu/menu.d.ts +12 -12
  155. package/es/menu/menu.js +3 -3
  156. package/es/menu/sub-menu-pop.vue_vue_type_script_setup_true_lang.js +3 -4
  157. package/es/modal/index.d.ts +22 -20
  158. package/es/modal/index.js +47 -11
  159. package/es/modal/interface.d.ts +5 -0
  160. package/es/modal/modal.vue.d.ts +4 -4
  161. package/es/popconfirm/index.d.ts +12 -12
  162. package/es/popover/index.d.ts +12 -12
  163. package/es/progress/index.d.ts +6 -6
  164. package/es/qr-code/index.d.ts +3 -3
  165. package/es/radio/radio.d.ts +3 -3
  166. package/es/resize-box/resize-box.vue.d.ts +4 -4
  167. package/es/resize-box/resize-box.vue_vue_type_script_setup_true_lang.js +7 -7
  168. package/es/result/index.d.ts +3 -3
  169. package/es/scrollbar/style/index.css +1 -1
  170. package/es/scrollbar/style/index.scss +4 -1
  171. package/es/sd-vue.js +3 -1
  172. package/es/select/select.d.ts +17 -17
  173. package/es/slider/index.d.ts +3 -3
  174. package/es/split/split.vue.d.ts +4 -4
  175. package/es/split/split.vue_vue_type_script_setup_true_lang.js +6 -6
  176. package/es/steps/index.d.ts +6 -6
  177. package/es/tabs/index.d.ts +6 -6
  178. package/es/tag/index.d.ts +6 -6
  179. package/es/tag/tag.vue.d.ts +2 -2
  180. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +4 -4
  181. package/es/theme-provider/index.d.ts +9 -9
  182. package/es/time-picker/index.d.ts +6 -6
  183. package/es/time-picker/time-picker.vue.d.ts +2 -2
  184. package/es/timeline/index.d.ts +3 -3
  185. package/es/timeline/timeline.d.ts +1 -1
  186. package/es/tooltip/index.d.ts +3 -3
  187. package/es/tour/index.d.ts +3 -3
  188. package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +6 -6
  189. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +6 -21
  190. package/es/tree/expand-transition.vue.d.ts +2 -2
  191. package/es/tree/node-switcher.vue.d.ts +1 -12
  192. package/es/tree/node-switcher.vue_vue_type_script_lang.js +1 -5
  193. package/es/tree/tree.vue_vue_type_script_setup_true_lang.js +23 -23
  194. package/es/tree-select/tree-select.vue.d.ts +9 -9
  195. package/es/trigger/trigger.js +2 -1
  196. package/es/verification-code/verification-code.js +17 -7
  197. package/json/vetur-attributes.json +76 -156
  198. package/json/vetur-tags.json +26 -44
  199. package/json/web-types.json +150 -304
  200. package/package.json +5 -5
  201. package/es/_components/render-function.d.ts +0 -14
  202. package/es/_components/render-function.js +0 -14
  203. package/es/calendar/hooks/use-calendar-theme.d.ts +0 -4
  204. package/es/layout/utils.d.ts +0 -1
  205. package/es/layout/utils.js +0 -11
@@ -3,284 +3,172 @@
3
3
  @use '@components/layout/style/token.scss' as *;
4
4
 
5
5
  $layout-prefix-cls: string.unquote('#{theme.$prefix}-layout');
6
+ $sider-prefix-cls: string.unquote('#{theme.$prefix}-layout-sider');
7
+ $text-color: var(string.unquote('#{theme.$sd-cssvars-prefix}-color-text-1'));
6
8
 
7
9
  .#{$layout-prefix-cls} {
8
10
  display: flex;
9
- flex: 1;
11
+ flex: auto;
10
12
  flex-direction: column;
11
- margin: 0;
12
- padding: 0;
13
13
 
14
- &-sider {
15
- position: relative;
16
- flex: none; // flex: 0 0 auto; 当右侧文字过长的时候不会被压缩。
17
- width: auto;
18
- max-width: 100%;
19
- margin: 0;
20
- padding: 0;
21
- overflow: hidden;
22
- background: $layout-sider-background;
23
- transition:
24
- width theme.$transition-duration-2 theme.$transition-timing-function-standard,
25
- height theme.$transition-duration-2 theme.$transition-timing-function-standard,
26
- transform theme.$transition-duration-2 theme.$transition-timing-function-standard;
27
-
28
- &-image,
29
- &-prepend,
30
- &-append {
31
- flex: none;
32
- }
33
-
34
- &-children {
35
- flex: 1;
36
- height: 100%;
37
- overflow: auto;
38
- }
14
+ /* fix firefox can't set height smaller than content on flex item */
15
+ min-height: 0;
16
+ background: $layout-body-bg;
39
17
 
40
- &-mask {
41
- position: fixed;
42
- inset: 0;
43
- background: $layout-sider-mask-color;
44
- }
45
-
46
- &-collapsed &-children {
47
- /* width */
48
- &::-webkit-scrollbar {
49
- width: 0;
50
- }
51
- }
18
+ &,
19
+ & * {
20
+ box-sizing: border-box;
21
+ }
52
22
 
53
- &-has-trigger {
54
- display: flex;
55
- flex-direction: column;
56
- box-sizing: border-box;
57
- padding-bottom: $layout-trigger-height;
58
- }
23
+ &#{&}-has-sider {
24
+ flex-direction: row;
59
25
 
60
- &-rail {
61
- width: $layout-rail-width;
26
+ > .#{$layout-prefix-cls},
27
+ > .#{$layout-prefix-cls}-content {
28
+ width: 0;
62
29
  }
30
+ }
63
31
 
64
- &-trigger {
65
- position: absolute;
66
- right: 0;
67
- bottom: 0;
68
- left: 0;
69
- z-index: 1;
70
- display: flex;
71
- align-items: center;
72
- justify-content: center;
73
- box-sizing: border-box;
74
- width: 100%;
75
- height: $layout-trigger-height;
76
- color: var(string.unquote('#{theme.$sd-cssvars-prefix}-color-white'));
77
- background: $layout-trigger-dark-color;
78
- cursor: pointer;
79
- transition: width theme.$transition-duration-2 theme.$transition-timing-function-standard;
80
-
81
- &-light {
82
- color: $layout-font-color;
83
- background: $layout-sider-background-light;
84
- border-top: 1px solid $layout-trigger-light-color-border;
85
- }
86
- }
32
+ .#{$layout-prefix-cls}-header,
33
+ &.#{$layout-prefix-cls}-footer {
34
+ flex: 0 0 auto;
35
+ }
87
36
 
88
- &-floating {
89
- box-shadow: none;
90
- }
37
+ // RTL
38
+ &-rtl {
39
+ direction: rtl;
40
+ }
41
+ }
91
42
 
92
- &-sticky {
93
- z-index: 1;
94
- }
43
+ // ==================== Header ====================
44
+ .#{$layout-prefix-cls}-header {
45
+ height: $layout-header-height;
46
+ padding: $layout-header-padding;
47
+ color: $layout-header-color;
48
+ line-height: $layout-header-height;
49
+ background: $layout-header-bg;
50
+ }
95
51
 
96
- &-temporary {
97
- position: fixed;
98
- box-shadow: $layout-sider-shadow;
52
+ // ==================== Footer ====================
53
+ .#{$layout-prefix-cls}-footer {
54
+ padding: $layout-footer-padding;
55
+ color: $text-color;
56
+ font-size: $layout-font-size;
57
+ background: $layout-footer-bg;
58
+ }
99
59
 
100
- &.#{$layout-prefix-cls}-sider-left {
101
- top: 0;
102
- bottom: 0;
103
- left: 0;
104
- transform: translateX(-100%);
105
- }
60
+ // =================== Content ===================
61
+ .#{$layout-prefix-cls}-content {
62
+ flex: auto;
106
63
 
107
- &.#{$layout-prefix-cls}-sider-right {
108
- top: 0;
109
- right: 0;
110
- bottom: 0;
111
- transform: translateX(100%);
112
- }
64
+ // fix firefox can't set height smaller than content on flex item
65
+ min-height: 0;
66
+ color: $text-color;
67
+ }
113
68
 
114
- &.#{$layout-prefix-cls}-sider-top {
115
- top: 0;
116
- right: 0;
117
- left: 0;
118
- width: 100%;
119
- transform: translateY(-100%);
120
- }
69
+ // =================== Sider ===================
70
+ .#{$sider-prefix-cls} {
71
+ position: relative;
72
+ display: flex;
73
+ flex-direction: column;
121
74
 
122
- &.#{$layout-prefix-cls}-sider-bottom {
123
- right: 0;
124
- bottom: 0;
125
- left: 0;
126
- width: 100%;
127
- transform: translateY(100%);
128
- }
75
+ // fix firefox can't set width smaller than content on flex item
76
+ min-width: 0;
77
+ background: $layout-sider-bg;
78
+ // 与 Menu 的展开/收起过渡保持一致(同时长 + standard 缓动),避免同步收缩时出现割裂感
79
+ transition:
80
+ all $layout-motion-duration-mid theme.$transition-timing-function-standard,
81
+ background 0s;
129
82
 
130
- &.#{$layout-prefix-cls}-sider-active {
131
- transform: translate(0, 0);
132
- }
133
- }
83
+ &-has-trigger {
84
+ padding-bottom: $layout-sider-trigger-height;
134
85
  }
135
86
 
136
- &-sider-light {
137
- background: $layout-sider-background-light;
138
- box-shadow: 0 2px 5px 0 rgb(0 0 0 / 8%);
87
+ &-right {
88
+ order: 1;
139
89
  }
140
90
 
91
+ // Fixed region outside the scroll area (e.g. brand / logo).
141
92
  &-header {
142
- position: relative;
143
- flex: 0 0 auto;
144
- box-sizing: border-box;
145
- margin: 0;
146
- overflow: hidden;
147
- color: $layout-header-color;
148
- background: $layout-header-background;
149
- border-bottom: 1px solid $layout-header-border-color;
150
- transition:
151
- height theme.$transition-duration-2 theme.$transition-timing-function-standard,
152
- transform theme.$transition-duration-2 theme.$transition-timing-function-standard,
153
- box-shadow theme.$transition-duration-2 theme.$transition-timing-function-standard;
154
-
155
- &-wrapper {
156
- width: 100%;
157
- }
158
-
159
- &-bar,
160
- &-extension,
161
- &-prepend,
162
- &-append,
163
- &-content {
164
- display: flex;
165
- align-items: center;
166
- }
167
-
168
- &-bar {
169
- position: relative;
170
- z-index: 1;
171
- gap: $layout-header-gap;
172
- min-height: var(--sd-layout-header-content-height, 64px);
173
- padding: 0 $layout-header-padding-inline;
174
- }
93
+ flex: none;
94
+ }
175
95
 
176
- &-prepend,
177
- &-append {
178
- flex: none;
179
- gap: calc($layout-header-gap / 2);
180
- }
96
+ // Scroll region fills the remaining height. `min-height: 0` lets it shrink
97
+ // below its content so the inner scrollbar can scroll.
98
+ &-children {
99
+ flex: 1;
100
+ min-height: 0;
101
+ }
181
102
 
182
- &-title {
183
- position: relative;
184
- z-index: 1;
185
- flex: none;
186
- max-width: min(40%, 480px);
187
- overflow: hidden;
188
- color: inherit;
189
- font-weight: $layout-header-title-font-weight;
190
- font-size: $layout-header-title-font-size;
191
- white-space: nowrap;
192
- text-overflow: ellipsis;
193
- }
103
+ &-children-scroll {
104
+ overflow: hidden auto;
105
+ }
194
106
 
195
- &-content {
196
- position: relative;
197
- z-index: 1;
198
- flex: 1;
199
- gap: calc($layout-header-gap / 2);
200
- min-width: 0;
201
- }
107
+ &-zero-width &-children {
108
+ overflow: hidden;
109
+ }
202
110
 
203
- &-extension {
204
- position: relative;
205
- z-index: 1;
206
- gap: calc($layout-header-gap / 2);
207
- min-height: var(--sd-layout-header-extension-height, 48px);
208
- padding: 0 $layout-header-padding-inline;
209
- border-top: 1px solid $layout-header-border-color;
210
- }
111
+ &-trigger {
112
+ position: absolute;
113
+ bottom: 0;
114
+ z-index: 1;
115
+ height: $layout-sider-trigger-height;
116
+ color: $layout-sider-trigger-color;
117
+ line-height: $layout-sider-trigger-height;
118
+ text-align: center;
119
+ cursor: pointer;
120
+ transition: all $layout-motion-duration-mid theme.$transition-timing-function-standard;
121
+ }
211
122
 
212
- &-image {
123
+ &-zero-width-trigger {
124
+ position: absolute;
125
+ top: $layout-header-height;
126
+ z-index: 1;
127
+ display: flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ width: $layout-sider-zero-trigger-width;
131
+ height: $layout-sider-zero-trigger-height;
132
+ color: $layout-sider-trigger-color;
133
+ font-size: $layout-sider-zero-trigger-font-size;
134
+ background: $layout-sider-bg;
135
+ border-radius: 0 $layout-radius-lg $layout-radius-lg 0;
136
+ cursor: pointer;
137
+ transition: background-color $layout-motion-duration-slow ease;
138
+ inset-inline-end: -$layout-sider-zero-trigger-width;
139
+
140
+ &::after {
213
141
  position: absolute;
214
142
  inset: 0;
215
- overflow: hidden;
216
-
217
- &::after {
218
- position: absolute;
219
- inset: 0;
220
- background: $layout-header-image-overlay;
221
- content: '';
222
- }
223
- }
224
-
225
- &-image-inner,
226
- &-image :is(img, picture, video) {
227
- width: 100%;
228
- height: 100%;
229
- object-fit: cover;
230
- opacity: var(--sd-layout-header-image-opacity, 1);
231
- transition: opacity theme.$transition-duration-2 theme.$transition-timing-function-standard;
232
- }
233
-
234
- &-flat {
235
- box-shadow: none;
236
- }
237
-
238
- &:not(&-flat) {
239
- box-shadow: $layout-header-shadow;
240
- }
241
-
242
- &-floating {
243
- box-shadow: $layout-header-floating-shadow;
143
+ background: transparent;
144
+ transition: all $layout-motion-duration-slow;
145
+ content: '';
244
146
  }
245
147
 
246
- &-hidden {
247
- pointer-events: none;
148
+ &:hover::after {
149
+ background: rgb(255 255 255 / 20%);
248
150
  }
249
151
 
250
- &-collapsed &-extension {
251
- display: none;
152
+ &-right {
153
+ inset-inline-start: -$layout-sider-zero-trigger-width;
154
+ border-radius: $layout-radius-lg 0 0 $layout-radius-lg;
252
155
  }
156
+ }
253
157
 
254
- &-with-image {
255
- color: $layout-font-color-dark;
256
- border-bottom-color: transparent;
257
- }
158
+ // Light
159
+ &-light {
160
+ background: $layout-light-sider-bg;
258
161
 
259
- &-with-image &-extension {
260
- border-top-color: rgb(255 255 255 / 16%);
162
+ .#{$sider-prefix-cls}-trigger {
163
+ color: $layout-light-trigger-color;
164
+ background: $layout-light-trigger-bg;
261
165
  }
262
166
 
263
- &-bottom {
264
- border-top: 1px solid $layout-header-border-color;
265
- border-bottom: 0;
167
+ .#{$sider-prefix-cls}-zero-width-trigger {
168
+ color: $layout-light-trigger-color;
169
+ background: $layout-light-trigger-bg;
170
+ border: 1px solid $layout-body-bg;
171
+ border-inline-start: 0;
266
172
  }
267
173
  }
268
-
269
- &-content {
270
- flex: 1;
271
- }
272
-
273
- &-footer {
274
- flex: 0 0 auto;
275
- margin: 0;
276
- }
277
- }
278
-
279
- .#{$layout-prefix-cls}-has-sider {
280
- flex-direction: row;
281
-
282
- > .#{$layout-prefix-cls},
283
- > .#{$layout-prefix-cls}-content {
284
- overflow-x: hidden;
285
- }
286
174
  }
@@ -6,29 +6,49 @@
6
6
  @use 'sass:string';
7
7
  @use '@style/theme/index.scss' as *;
8
8
 
9
- $layout-trigger-height: 48px;
10
- $layout-rail-width: 56px;
11
- $layout-sider-mask-color: rgb(0 0 0 / 45%);
12
- $layout-sider-shadow: 0 12px 32px rgb(0 0 0 / 18%);
13
- $layout-header-background: var(string.unquote('#{global.$sd-cssvars-prefix}-color-bg-2'));
14
- $layout-header-color: var(string.unquote('#{global.$sd-cssvars-prefix}-color-text-1'));
15
- $layout-header-border-color: var(string.unquote('#{global.$sd-cssvars-prefix}-color-border-2'));
16
- $layout-header-shadow: 0 8px 24px rgb(0 0 0 / 12%);
17
- $layout-header-floating-shadow: 0 16px 32px rgb(0 0 0 / 14%);
18
- $layout-header-padding-inline: 20px;
19
- $layout-header-gap: 16px;
20
- $layout-header-title-font-size: 18px;
21
- $layout-header-title-font-weight: 600;
22
- $layout-header-image-overlay: linear-gradient(180deg, rgb(0 0 0 / 18%), rgb(0 0 0 / 36%));
23
-
24
- // Layout Theme Dark(Default)
25
- $layout-sider-background: var(string.unquote('#{global.$sd-cssvars-prefix}-color-menu-dark-bg'));
26
- $layout-font-color-dark: var(string.unquote('#{global.$sd-cssvars-prefix}-color-white'));
27
- $layout-font-color: var(string.unquote('#{global.$sd-cssvars-prefix}-color-text-1'));
28
- $layout-trigger-dark-color: rgb(255 255 255 / 20%);
29
-
30
- // Layout Theme Light
31
- $layout-sider-background-light: var(
32
- string.unquote('#{global.$sd-cssvars-prefix}-color-menu-light-bg')
33
- );
34
- $layout-trigger-light-color-border: var(string.unquote('#{global.$sd-cssvars-prefix}-color-bg-5'));
9
+ /*****************************************************
10
+ * Layout 整体背景(容器主体与页脚共用)
11
+ *****************************************************/
12
+ $layout-body-bg: var(string.unquote('#{$sd-cssvars-prefix}-color-fill-1'));
13
+ $layout-footer-bg: var(string.unquote('#{$sd-cssvars-prefix}-color-fill-1'));
14
+
15
+ /*****************************************************
16
+ * Header
17
+ *****************************************************/
18
+ $layout-header-bg: #001529;
19
+ $layout-header-height: global.$size-16; // 64px
20
+ $layout-header-padding-horizontal: 50px;
21
+ $layout-header-padding: 0 $layout-header-padding-horizontal;
22
+ $layout-header-color: var(string.unquote('#{$sd-cssvars-prefix}-color-text-1'));
23
+
24
+ /*****************************************************
25
+ * Footer
26
+ *****************************************************/
27
+ $layout-footer-padding: 24px $layout-header-padding-horizontal;
28
+
29
+ /*****************************************************
30
+ * Sider
31
+ * 深色背景与 Menu 深色背景保持一致,避免内嵌菜单出现接缝
32
+ *****************************************************/
33
+ $layout-sider-bg: var(string.unquote('#{$sd-cssvars-prefix}-color-menu-dark-bg'));
34
+ $layout-sider-trigger-height: global.$size-11; // 44px
35
+ $layout-sider-trigger-bg: var(string.unquote('#{$sd-cssvars-prefix}-color-menu-dark-hover'));
36
+ $layout-sider-trigger-color: var(string.unquote('#{$sd-cssvars-prefix}-color-white'));
37
+ $layout-sider-zero-trigger-width: global.$size-10; // 40px
38
+ $layout-sider-zero-trigger-height: global.$size-10; // 40px
39
+ $layout-sider-zero-trigger-font-size: 18px;
40
+
41
+ /*****************************************************
42
+ * Sider light 主题
43
+ *****************************************************/
44
+ $layout-light-sider-bg: var(string.unquote('#{$sd-cssvars-prefix}-color-bg-1'));
45
+ $layout-light-trigger-bg: var(string.unquote('#{$sd-cssvars-prefix}-color-bg-1'));
46
+ $layout-light-trigger-color: var(string.unquote('#{$sd-cssvars-prefix}-color-text-1'));
47
+
48
+ /*****************************************************
49
+ * 公共
50
+ *****************************************************/
51
+ $layout-radius-lg: global.$border-radius-large;
52
+ $layout-motion-duration-mid: global.$transition-duration-2;
53
+ $layout-motion-duration-slow: global.$transition-duration-3;
54
+ $layout-font-size: global.$font-size-body;
@@ -14,8 +14,8 @@ declare const Link: {
14
14
  loading: boolean;
15
15
  ellipsisLineClamp: number | string;
16
16
  ellipsisExpandTrigger: "click";
17
- ellipsisTooltip: boolean | import("..").EllipsisTooltipProps;
18
- status: import("..").Status;
17
+ ellipsisTooltip: boolean | import("../index.ts").EllipsisTooltipProps;
18
+ status: import("../index.ts").Status;
19
19
  iconTooltip: string;
20
20
  }, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
21
21
  P: {};
@@ -33,8 +33,8 @@ declare const Link: {
33
33
  loading: boolean;
34
34
  ellipsisLineClamp: number | string;
35
35
  ellipsisExpandTrigger: "click";
36
- ellipsisTooltip: boolean | import("..").EllipsisTooltipProps;
37
- status: import("..").Status;
36
+ ellipsisTooltip: boolean | import("../index.ts").EllipsisTooltipProps;
37
+ status: import("../index.ts").Status;
38
38
  iconTooltip: string;
39
39
  }>;
40
40
  __isFragment?: never;
@@ -51,8 +51,8 @@ declare const Link: {
51
51
  loading: boolean;
52
52
  ellipsisLineClamp: number | string;
53
53
  ellipsisExpandTrigger: "click";
54
- ellipsisTooltip: boolean | import("..").EllipsisTooltipProps;
55
- status: import("..").Status;
54
+ ellipsisTooltip: boolean | import("../index.ts").EllipsisTooltipProps;
55
+ status: import("../index.ts").Status;
56
56
  iconTooltip: string;
57
57
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
58
58
  $slots: {
@@ -29,7 +29,7 @@ declare const List: {
29
29
  default: boolean;
30
30
  };
31
31
  paginationProps: {
32
- type: import("vue").PropType<import("..").PaginationProps>;
32
+ type: import("vue").PropType<import("../index.ts").PaginationProps>;
33
33
  };
34
34
  gridProps: {
35
35
  type: ObjectConstructor;
@@ -43,10 +43,10 @@ declare const List: {
43
43
  default: number;
44
44
  };
45
45
  virtualListProps: {
46
- type: import("vue").PropType<import("../_components/virtual-list/interface").VirtualListProps>;
46
+ type: import("vue").PropType<import("../_components/virtual-list/interface.ts").VirtualListProps>;
47
47
  };
48
48
  scrollbar: {
49
- type: import("vue").PropType<boolean | import("..").ScrollbarProps>;
49
+ type: import("vue").PropType<boolean | import("../index.ts").ScrollbarProps>;
50
50
  default: boolean;
51
51
  };
52
52
  }>> & Readonly<{
@@ -58,7 +58,7 @@ declare const List: {
58
58
  virtualListRef: import("vue").Ref<any, any>;
59
59
  render: () => import("vue/jsx-runtime").JSX.Element;
60
60
  }, {}, {}, {
61
- scrollIntoView(options: import("../_components/virtual-list/interface").ScrollIntoViewOptions): void;
61
+ scrollIntoView(options: import("../_components/virtual-list/interface.ts").ScrollIntoViewOptions): void;
62
62
  }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
63
63
  scroll: () => true;
64
64
  reachBottom: () => true;
@@ -67,7 +67,7 @@ declare const List: {
67
67
  }, import("vue").PublicProps, {
68
68
  split: boolean;
69
69
  size: "small" | "medium" | "large";
70
- scrollbar: boolean | import("..").ScrollbarProps;
70
+ scrollbar: boolean | import("../index.ts").ScrollbarProps;
71
71
  loading: boolean;
72
72
  bottomOffset: number;
73
73
  bordered: boolean;
@@ -105,7 +105,7 @@ declare const List: {
105
105
  default: boolean;
106
106
  };
107
107
  paginationProps: {
108
- type: import("vue").PropType<import("..").PaginationProps>;
108
+ type: import("vue").PropType<import("../index.ts").PaginationProps>;
109
109
  };
110
110
  gridProps: {
111
111
  type: ObjectConstructor;
@@ -119,10 +119,10 @@ declare const List: {
119
119
  default: number;
120
120
  };
121
121
  virtualListProps: {
122
- type: import("vue").PropType<import("../_components/virtual-list/interface").VirtualListProps>;
122
+ type: import("vue").PropType<import("../_components/virtual-list/interface.ts").VirtualListProps>;
123
123
  };
124
124
  scrollbar: {
125
- type: import("vue").PropType<boolean | import("..").ScrollbarProps>;
125
+ type: import("vue").PropType<boolean | import("../index.ts").ScrollbarProps>;
126
126
  default: boolean;
127
127
  };
128
128
  }>> & Readonly<{
@@ -134,11 +134,11 @@ declare const List: {
134
134
  virtualListRef: import("vue").Ref<any, any>;
135
135
  render: () => import("vue/jsx-runtime").JSX.Element;
136
136
  }, {}, {}, {
137
- scrollIntoView(options: import("../_components/virtual-list/interface").ScrollIntoViewOptions): void;
137
+ scrollIntoView(options: import("../_components/virtual-list/interface.ts").ScrollIntoViewOptions): void;
138
138
  }, {
139
139
  split: boolean;
140
140
  size: "small" | "medium" | "large";
141
- scrollbar: boolean | import("..").ScrollbarProps;
141
+ scrollbar: boolean | import("../index.ts").ScrollbarProps;
142
142
  loading: boolean;
143
143
  bottomOffset: number;
144
144
  bordered: boolean;
@@ -173,7 +173,7 @@ declare const List: {
173
173
  default: boolean;
174
174
  };
175
175
  paginationProps: {
176
- type: import("vue").PropType<import("..").PaginationProps>;
176
+ type: import("vue").PropType<import("../index.ts").PaginationProps>;
177
177
  };
178
178
  gridProps: {
179
179
  type: ObjectConstructor;
@@ -187,10 +187,10 @@ declare const List: {
187
187
  default: number;
188
188
  };
189
189
  virtualListProps: {
190
- type: import("vue").PropType<import("../_components/virtual-list/interface").VirtualListProps>;
190
+ type: import("vue").PropType<import("../_components/virtual-list/interface.ts").VirtualListProps>;
191
191
  };
192
192
  scrollbar: {
193
- type: import("vue").PropType<boolean | import("..").ScrollbarProps>;
193
+ type: import("vue").PropType<boolean | import("../index.ts").ScrollbarProps>;
194
194
  default: boolean;
195
195
  };
196
196
  }>> & Readonly<{
@@ -202,7 +202,7 @@ declare const List: {
202
202
  virtualListRef: import("vue").Ref<any, any>;
203
203
  render: () => import("vue/jsx-runtime").JSX.Element;
204
204
  }, {}, {}, {
205
- scrollIntoView(options: import("../_components/virtual-list/interface").ScrollIntoViewOptions): void;
205
+ scrollIntoView(options: import("../_components/virtual-list/interface.ts").ScrollIntoViewOptions): void;
206
206
  }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
207
207
  scroll: () => true;
208
208
  reachBottom: () => true;
@@ -211,7 +211,7 @@ declare const List: {
211
211
  }, string, {
212
212
  split: boolean;
213
213
  size: "small" | "medium" | "large";
214
- scrollbar: boolean | import("..").ScrollbarProps;
214
+ scrollbar: boolean | import("../index.ts").ScrollbarProps;
215
215
  loading: boolean;
216
216
  bottomOffset: number;
217
217
  bordered: boolean;
@@ -221,7 +221,7 @@ declare const List: {
221
221
  Item: {
222
222
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
223
223
  actionLayout: {
224
- type: import("vue").PropType<import("..").Direction>;
224
+ type: import("vue").PropType<import("../index.ts").Direction>;
225
225
  default: string;
226
226
  };
227
227
  }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
@@ -235,7 +235,7 @@ declare const List: {
235
235
  Defaults: {};
236
236
  }, Readonly<import("vue").ExtractPropTypes<{
237
237
  actionLayout: {
238
- type: import("vue").PropType<import("..").Direction>;
238
+ type: import("vue").PropType<import("../index.ts").Direction>;
239
239
  default: string;
240
240
  };
241
241
  }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
@@ -246,7 +246,7 @@ declare const List: {
246
246
  __isSuspense?: never;
247
247
  } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
248
248
  actionLayout: {
249
- type: import("vue").PropType<import("..").Direction>;
249
+ type: import("vue").PropType<import("../index.ts").Direction>;
250
250
  default: string;
251
251
  };
252
252
  }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
@@ -157,6 +157,8 @@ export interface SDLang {
157
157
  view: SDCalendarLang['view'];
158
158
  month: SDCalendarLang['month'];
159
159
  week: SDCalendarLang['week'];
160
+ yearFormat?: string;
161
+ monthFormat?: string;
160
162
  placeholder: {
161
163
  date: string;
162
164
  week: string;