@veltra/desktop 1.2.4 → 1.2.5

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 (135) hide show
  1. package/dist/components/action/action-group.vue.d.ts +2 -2
  2. package/dist/components/action/action.vue.d.ts +2 -2
  3. package/dist/components/auto-complete/auto-complete.js +25 -13
  4. package/dist/components/auto-complete/auto-complete.js.map +1 -1
  5. package/dist/components/auto-complete/auto-complete.vue.d.ts +3 -2
  6. package/dist/components/batch-edit/batch-edit-form.js +33 -26
  7. package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
  8. package/dist/components/batch-edit/batch-edit-list.js +4 -1
  9. package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
  10. package/dist/components/batch-edit/batch-edit.js +29 -50
  11. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  12. package/dist/components/batch-edit/batch-edit.vue.d.ts +3 -3
  13. package/dist/components/batch-edit/di.js.map +1 -1
  14. package/dist/components/batch-edit/style2.css +3 -0
  15. package/dist/components/batch-edit/use-edit.js +39 -71
  16. package/dist/components/batch-edit/use-edit.js.map +1 -1
  17. package/dist/components/batch-edit/use-features.js +38 -0
  18. package/dist/components/batch-edit/use-features.js.map +1 -0
  19. package/dist/components/cascade/cascade.vue.d.ts +1 -1
  20. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  21. package/dist/components/contextmenu/style2.css +7 -7
  22. package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
  23. package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
  24. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
  25. package/dist/components/dual-nav/dual-nav-app.js +49 -0
  26. package/dist/components/dual-nav/dual-nav-app.js.map +1 -0
  27. package/dist/components/dual-nav/dual-nav.js +125 -0
  28. package/dist/components/dual-nav/dual-nav.js.map +1 -0
  29. package/dist/components/dual-nav/dual-nav.vue.d.ts +13 -0
  30. package/dist/components/dual-nav/helper.js +21 -0
  31. package/dist/components/dual-nav/helper.js.map +1 -0
  32. package/dist/components/dual-nav/index.d.ts +1 -0
  33. package/dist/components/dual-nav/style.js +4 -0
  34. package/dist/components/dual-nav/style2.css +145 -0
  35. package/dist/components/empty/empty.vue.d.ts +1 -1
  36. package/dist/components/index.d.ts +23 -22
  37. package/dist/components/index.js +28 -26
  38. package/dist/components/index.js.map +1 -1
  39. package/dist/components/nav/di.js +7 -0
  40. package/dist/components/nav/di.js.map +1 -0
  41. package/dist/components/nav/helper.js +18 -0
  42. package/dist/components/nav/helper.js.map +1 -0
  43. package/dist/components/nav/index.d.ts +3 -0
  44. package/dist/components/{menu/menu-icon.js → nav/nav-icon.js} +4 -4
  45. package/dist/components/nav/nav-icon.js.map +1 -0
  46. package/dist/components/{menu/menu-item-collapsed.js → nav/nav-item-collapsed.js} +23 -23
  47. package/dist/components/nav/nav-item-collapsed.js.map +1 -0
  48. package/dist/components/{menu/menu-item.js → nav/nav-item.js} +13 -13
  49. package/dist/components/nav/nav-item.js.map +1 -0
  50. package/dist/components/{menu/menu-item.vue.d.ts → nav/nav-item.vue.d.ts} +4 -4
  51. package/dist/components/{menu/menu-sub-collapsed.js → nav/nav-sub-collapsed.js} +19 -19
  52. package/dist/components/nav/nav-sub-collapsed.js.map +1 -0
  53. package/dist/components/{menu/menu-sub.js → nav/nav-sub.js} +24 -24
  54. package/dist/components/nav/nav-sub.js.map +1 -0
  55. package/dist/components/{menu/menu-sub.vue.d.ts → nav/nav-sub.vue.d.ts} +4 -4
  56. package/dist/components/{menu/menu.js → nav/nav.js} +45 -36
  57. package/dist/components/nav/nav.js.map +1 -0
  58. package/dist/components/nav/nav.vue.d.ts +18 -0
  59. package/dist/components/nav/style.d.ts +1 -0
  60. package/dist/components/{menu → nav}/style2.css +105 -105
  61. package/dist/components/{menu/use-menu-item.js → nav/use-nav-item.js} +11 -11
  62. package/dist/components/nav/use-nav-item.js.map +1 -0
  63. package/dist/components/{menu/walk-menu-path.js → nav/walk-nav-path.js} +5 -5
  64. package/dist/components/nav/walk-nav-path.js.map +1 -0
  65. package/dist/components/number/number.vue.d.ts +1 -1
  66. package/dist/components/select/style2.css +4 -4
  67. package/dist/index.d.ts +63 -61
  68. package/dist/index.js +56 -55
  69. package/dist/style.js +2 -1
  70. package/dist/types/auto-complete.d.ts +6 -1
  71. package/dist/types/batch-edit.d.ts +15 -2
  72. package/dist/types/dual-nav.d.ts +27 -0
  73. package/dist/types/index.d.ts +4 -3
  74. package/dist/types/nav.d.ts +48 -0
  75. package/package.json +6 -6
  76. package/src/components/auto-complete/auto-complete.vue +24 -13
  77. package/src/components/batch-edit/batch-edit-form.vue +29 -18
  78. package/src/components/batch-edit/batch-edit-list.vue +6 -1
  79. package/src/components/batch-edit/batch-edit.vue +36 -73
  80. package/src/components/batch-edit/di.ts +3 -1
  81. package/src/components/batch-edit/style.scss +5 -0
  82. package/src/components/batch-edit/use-edit.ts +63 -116
  83. package/src/components/batch-edit/use-features.ts +58 -0
  84. package/src/components/contextmenu/style.scss +5 -5
  85. package/src/components/dual-nav/dual-nav-app.vue +33 -0
  86. package/src/components/dual-nav/dual-nav.vue +150 -0
  87. package/src/components/dual-nav/helper.ts +25 -0
  88. package/src/components/dual-nav/index.ts +1 -0
  89. package/src/components/dual-nav/style.scss +153 -0
  90. package/src/components/dual-nav/style.ts +4 -0
  91. package/src/components/index.ts +3 -1
  92. package/src/components/nav/di.ts +17 -0
  93. package/src/components/nav/helper.ts +22 -0
  94. package/src/components/nav/index.ts +3 -0
  95. package/src/components/{menu/menu-icon.vue → nav/nav-icon.vue} +1 -1
  96. package/src/components/nav/nav-item-collapsed.vue +66 -0
  97. package/src/components/nav/nav-item.vue +36 -0
  98. package/src/components/{menu/menu-sub-collapsed.vue → nav/nav-sub-collapsed.vue} +15 -15
  99. package/src/components/{menu/menu-sub.vue → nav/nav-sub.vue} +19 -19
  100. package/src/components/{menu/menu.vue → nav/nav.vue} +42 -42
  101. package/src/components/{menu → nav}/style.scss +16 -14
  102. package/src/components/{menu/use-menu-item.ts → nav/use-nav-item.ts} +14 -14
  103. package/src/components/{menu/walk-menu-path.ts → nav/walk-nav-path.ts} +2 -2
  104. package/src/components/select/style.scss +4 -4
  105. package/src/style.ts +2 -1
  106. package/src/types/auto-complete.ts +6 -1
  107. package/src/types/batch-edit.ts +18 -1
  108. package/src/types/dual-nav.ts +28 -0
  109. package/src/types/index.ts +2 -1
  110. package/src/types/nav.ts +49 -0
  111. package/dist/components/menu/di.js +0 -7
  112. package/dist/components/menu/di.js.map +0 -1
  113. package/dist/components/menu/helper.js +0 -8
  114. package/dist/components/menu/helper.js.map +0 -1
  115. package/dist/components/menu/index.d.ts +0 -3
  116. package/dist/components/menu/menu-icon.js.map +0 -1
  117. package/dist/components/menu/menu-item-collapsed.js.map +0 -1
  118. package/dist/components/menu/menu-item.js.map +0 -1
  119. package/dist/components/menu/menu-sub-collapsed.js.map +0 -1
  120. package/dist/components/menu/menu-sub.js.map +0 -1
  121. package/dist/components/menu/menu.js.map +0 -1
  122. package/dist/components/menu/menu.vue.d.ts +0 -14
  123. package/dist/components/menu/use-menu-item.js.map +0 -1
  124. package/dist/components/menu/walk-menu-path.js.map +0 -1
  125. package/dist/types/menu.d.ts +0 -40
  126. package/src/components/menu/di.ts +0 -17
  127. package/src/components/menu/helper.ts +0 -3
  128. package/src/components/menu/index.ts +0 -3
  129. package/src/components/menu/menu-item-collapsed.vue +0 -66
  130. package/src/components/menu/menu-item.vue +0 -36
  131. package/src/components/menu/menu-node.ts +0 -6
  132. package/src/types/menu.ts +0 -41
  133. /package/dist/components/{menu → dual-nav}/style.d.ts +0 -0
  134. /package/dist/components/{menu → nav}/style.js +0 -0
  135. /package/src/components/{menu → nav}/style.ts +0 -0
@@ -15,14 +15,14 @@
15
15
  * --u-height-small: 24px;
16
16
  */
17
17
  /** 暗色:data-theme 与系统偏好,与 UITheme.injectBuiltInThemes 选择器策略一致 */
18
- .u-menu {
18
+ .u-nav {
19
19
  user-select: none;
20
- color: var(--u-menu-color);
20
+ color: var(--u-nav-color);
21
21
  }
22
- .u-menu__item, .u-menu__sub, .u-menu__sub-list {
22
+ .u-nav__item, .u-nav__sub, .u-nav__sub-list {
23
23
  list-style: none;
24
24
  }
25
- .u-menu__item, .u-menu__sub-content {
25
+ .u-nav__item, .u-nav__sub-content {
26
26
  width: 100%;
27
27
  cursor: pointer;
28
28
  gap: 8px;
@@ -35,22 +35,22 @@
35
35
  align-items: center;
36
36
  flex-wrap: nowrap;
37
37
  }
38
- .u-menu__item:hover, .u-menu__sub-content:hover {
39
- background-color: var(--u-menu-hover-bg);
40
- color: var(--u-menu-hover-color);
38
+ .u-nav__item:hover, .u-nav__sub-content:hover {
39
+ background-color: var(--u-nav-hover-bg);
40
+ color: var(--u-nav-hover-color);
41
41
  }
42
- .u-menu__item.is-expanded, .u-menu__sub-content.is-expanded {
42
+ .u-nav__item.is-expanded, .u-nav__sub-content.is-expanded {
43
43
  color: var(--u-text-color-title);
44
44
  }
45
- .u-menu__item.is-branch-active, .u-menu__sub-content.is-branch-active {
45
+ .u-nav__item.is-branch-active, .u-nav__sub-content.is-branch-active {
46
46
  color: var(--u-text-color-title);
47
47
  }
48
- .u-menu__item.is-active, .u-menu__sub-content.is-active {
48
+ .u-nav__item.is-active, .u-nav__sub-content.is-active {
49
49
  position: relative;
50
- background-color: var(--u-menu-active-bg);
51
- color: var(--u-menu-active-color);
50
+ background-color: var(--u-nav-active-bg);
51
+ color: var(--u-nav-active-color);
52
52
  }
53
- .u-menu__item.is-active::before, .u-menu__sub-content.is-active::before {
53
+ .u-nav__item.is-active::before, .u-nav__sub-content.is-active::before {
54
54
  content: "";
55
55
  position: absolute;
56
56
  left: 0;
@@ -63,11 +63,11 @@
63
63
  transform: translateY(-50%);
64
64
  pointer-events: none;
65
65
  }
66
- .u-menu__item.is-disabled, .u-menu__sub-content.is-disabled {
66
+ .u-nav__item.is-disabled {
67
67
  opacity: 0.55;
68
68
  cursor: not-allowed;
69
69
  }
70
- .u-menu__item-title, .u-menu__sub-title {
70
+ .u-nav__item-title, .u-nav__sub-title {
71
71
  flex: 1;
72
72
  min-width: 0;
73
73
  font-weight: 500;
@@ -76,72 +76,72 @@
76
76
  text-overflow: ellipsis;
77
77
  white-space: nowrap;
78
78
  }
79
- .u-menu .u-menu__item + .u-menu__item,
80
- .u-menu .u-menu__item + .u-menu__sub,
81
- .u-menu .u-menu__sub + .u-menu__item,
82
- .u-menu .u-menu__sub + .u-menu__sub {
79
+ .u-nav .u-nav__item + .u-nav__item,
80
+ .u-nav .u-nav__item + .u-nav__sub,
81
+ .u-nav .u-nav__sub + .u-nav__item,
82
+ .u-nav .u-nav__sub + .u-nav__sub {
83
83
  margin-top: 3px;
84
84
  }
85
- .u-menu--small {
85
+ .u-nav--small {
86
86
  font-size: var(--u-font-size-main-small);
87
87
  }
88
- .u-menu--small .u-menu__item,
89
- .u-menu--small .u-menu__sub-content {
90
- min-height: var(--u-menu-height-small);
88
+ .u-nav--small .u-nav__item,
89
+ .u-nav--small .u-nav__sub-content {
90
+ min-height: var(--u-nav-height-small);
91
91
  border-radius: calc(var(--u-radius-small) + 4px);
92
92
  }
93
- .u-menu--small .u-menu__icon {
93
+ .u-nav--small .u-nav__icon {
94
94
  width: 16px;
95
95
  height: 16px;
96
96
  font-size: 16px;
97
97
  }
98
- .u-menu--small .u-menu__sub-expand,
99
- .u-menu--small .u-menu__icon {
98
+ .u-nav--small .u-nav__sub-expand,
99
+ .u-nav--small .u-nav__icon {
100
100
  flex-shrink: 0;
101
101
  }
102
- .u-menu--default {
102
+ .u-nav--default {
103
103
  font-size: var(--u-font-size-main-default);
104
104
  }
105
- .u-menu--default .u-menu__item,
106
- .u-menu--default .u-menu__sub-content {
107
- min-height: var(--u-menu-height-default);
105
+ .u-nav--default .u-nav__item,
106
+ .u-nav--default .u-nav__sub-content {
107
+ min-height: var(--u-nav-height-default);
108
108
  border-radius: calc(var(--u-radius-default) + 4px);
109
109
  }
110
- .u-menu--default .u-menu__icon {
110
+ .u-nav--default .u-nav__icon {
111
111
  width: 16px;
112
112
  height: 16px;
113
113
  font-size: 16px;
114
114
  }
115
- .u-menu--default .u-menu__sub-expand,
116
- .u-menu--default .u-menu__icon {
115
+ .u-nav--default .u-nav__sub-expand,
116
+ .u-nav--default .u-nav__icon {
117
117
  flex-shrink: 0;
118
118
  }
119
- .u-menu--large {
119
+ .u-nav--large {
120
120
  font-size: var(--u-font-size-main-large);
121
121
  }
122
- .u-menu--large .u-menu__item,
123
- .u-menu--large .u-menu__sub-content {
124
- min-height: var(--u-menu-height-large);
122
+ .u-nav--large .u-nav__item,
123
+ .u-nav--large .u-nav__sub-content {
124
+ min-height: var(--u-nav-height-large);
125
125
  border-radius: calc(var(--u-radius-large) + 4px);
126
126
  }
127
- .u-menu--large .u-menu__icon {
127
+ .u-nav--large .u-nav__icon {
128
128
  width: 16px;
129
129
  height: 16px;
130
130
  font-size: 16px;
131
131
  }
132
- .u-menu--large .u-menu__sub-expand,
133
- .u-menu--large .u-menu__icon {
132
+ .u-nav--large .u-nav__sub-expand,
133
+ .u-nav--large .u-nav__icon {
134
134
  flex-shrink: 0;
135
135
  }
136
136
 
137
- .u-collapsed-menu {
137
+ .u-collapsed-nav {
138
138
  user-select: none;
139
- color: var(--u-menu-color);
139
+ color: var(--u-nav-color);
140
140
  }
141
- .u-collapsed-menu__item, .u-collapsed-menu__sub, .u-collapsed-menu__sub-list {
141
+ .u-collapsed-nav__item, .u-collapsed-nav__sub, .u-collapsed-nav__sub-list {
142
142
  list-style: none;
143
143
  }
144
- .u-collapsed-menu__item, .u-collapsed-menu__sub-content {
144
+ .u-collapsed-nav__item, .u-collapsed-nav__sub-content {
145
145
  width: 100%;
146
146
  cursor: pointer;
147
147
  gap: 8px;
@@ -154,22 +154,22 @@
154
154
  align-items: center;
155
155
  flex-wrap: nowrap;
156
156
  }
157
- .u-collapsed-menu__item:hover, .u-collapsed-menu__sub-content:hover {
158
- background-color: var(--u-menu-hover-bg);
159
- color: var(--u-menu-hover-color);
157
+ .u-collapsed-nav__item:hover, .u-collapsed-nav__sub-content:hover {
158
+ background-color: var(--u-nav-hover-bg);
159
+ color: var(--u-nav-hover-color);
160
160
  }
161
- .u-collapsed-menu__item.is-expanded, .u-collapsed-menu__sub-content.is-expanded {
161
+ .u-collapsed-nav__item.is-expanded, .u-collapsed-nav__sub-content.is-expanded {
162
162
  color: var(--u-text-color-title);
163
163
  }
164
- .u-collapsed-menu__item.is-branch-active, .u-collapsed-menu__sub-content.is-branch-active {
164
+ .u-collapsed-nav__item.is-branch-active, .u-collapsed-nav__sub-content.is-branch-active {
165
165
  color: var(--u-text-color-title);
166
166
  }
167
- .u-collapsed-menu__item.is-active, .u-collapsed-menu__sub-content.is-active {
167
+ .u-collapsed-nav__item.is-active, .u-collapsed-nav__sub-content.is-active {
168
168
  position: relative;
169
- background-color: var(--u-menu-active-bg);
170
- color: var(--u-menu-active-color);
169
+ background-color: var(--u-nav-active-bg);
170
+ color: var(--u-nav-active-color);
171
171
  }
172
- .u-collapsed-menu__item.is-active::before, .u-collapsed-menu__sub-content.is-active::before {
172
+ .u-collapsed-nav__item.is-active::before, .u-collapsed-nav__sub-content.is-active::before {
173
173
  content: "";
174
174
  position: absolute;
175
175
  left: 0;
@@ -182,11 +182,11 @@
182
182
  transform: translateY(-50%);
183
183
  pointer-events: none;
184
184
  }
185
- .u-collapsed-menu__item.is-disabled, .u-collapsed-menu__sub-content.is-disabled {
185
+ .u-collapsed-nav__item.is-disabled {
186
186
  opacity: 0.55;
187
187
  cursor: not-allowed;
188
188
  }
189
- .u-collapsed-menu__item-title, .u-collapsed-menu__sub-title {
189
+ .u-collapsed-nav__item-title, .u-collapsed-nav__sub-title {
190
190
  flex: 1;
191
191
  min-width: 0;
192
192
  font-weight: 500;
@@ -195,162 +195,162 @@
195
195
  text-overflow: ellipsis;
196
196
  white-space: nowrap;
197
197
  }
198
- .u-collapsed-menu .u-collapsed-menu__item + .u-collapsed-menu__item,
199
- .u-collapsed-menu .u-collapsed-menu__item + .u-collapsed-menu__sub,
200
- .u-collapsed-menu .u-collapsed-menu__sub + .u-collapsed-menu__item,
201
- .u-collapsed-menu .u-collapsed-menu__sub + .u-collapsed-menu__sub {
198
+ .u-collapsed-nav .u-collapsed-nav__item + .u-collapsed-nav__item,
199
+ .u-collapsed-nav .u-collapsed-nav__item + .u-collapsed-nav__sub,
200
+ .u-collapsed-nav .u-collapsed-nav__sub + .u-collapsed-nav__item,
201
+ .u-collapsed-nav .u-collapsed-nav__sub + .u-collapsed-nav__sub {
202
202
  margin-top: 3px;
203
203
  }
204
- .u-collapsed-menu--small {
204
+ .u-collapsed-nav--small {
205
205
  font-size: var(--u-font-size-main-small);
206
206
  }
207
- .u-collapsed-menu--small .u-collapsed-menu__item,
208
- .u-collapsed-menu--small .u-collapsed-menu__sub-content {
209
- min-height: var(--u-menu-height-small);
207
+ .u-collapsed-nav--small .u-collapsed-nav__item,
208
+ .u-collapsed-nav--small .u-collapsed-nav__sub-content {
209
+ min-height: var(--u-nav-height-small);
210
210
  border-radius: calc(var(--u-radius-small) + 4px);
211
211
  }
212
- .u-collapsed-menu--small .u-collapsed-menu__icon {
212
+ .u-collapsed-nav--small .u-collapsed-nav__icon {
213
213
  width: 16px;
214
214
  height: 16px;
215
215
  font-size: 16px;
216
216
  }
217
- .u-collapsed-menu--small .u-collapsed-menu__sub-expand,
218
- .u-collapsed-menu--small .u-collapsed-menu__icon {
217
+ .u-collapsed-nav--small .u-collapsed-nav__sub-expand,
218
+ .u-collapsed-nav--small .u-collapsed-nav__icon {
219
219
  flex-shrink: 0;
220
220
  }
221
- .u-collapsed-menu--default {
221
+ .u-collapsed-nav--default {
222
222
  font-size: var(--u-font-size-main-default);
223
223
  }
224
- .u-collapsed-menu--default .u-collapsed-menu__item,
225
- .u-collapsed-menu--default .u-collapsed-menu__sub-content {
226
- min-height: var(--u-menu-height-default);
224
+ .u-collapsed-nav--default .u-collapsed-nav__item,
225
+ .u-collapsed-nav--default .u-collapsed-nav__sub-content {
226
+ min-height: var(--u-nav-height-default);
227
227
  border-radius: calc(var(--u-radius-default) + 4px);
228
228
  }
229
- .u-collapsed-menu--default .u-collapsed-menu__icon {
229
+ .u-collapsed-nav--default .u-collapsed-nav__icon {
230
230
  width: 16px;
231
231
  height: 16px;
232
232
  font-size: 16px;
233
233
  }
234
- .u-collapsed-menu--default .u-collapsed-menu__sub-expand,
235
- .u-collapsed-menu--default .u-collapsed-menu__icon {
234
+ .u-collapsed-nav--default .u-collapsed-nav__sub-expand,
235
+ .u-collapsed-nav--default .u-collapsed-nav__icon {
236
236
  flex-shrink: 0;
237
237
  }
238
- .u-collapsed-menu--large {
238
+ .u-collapsed-nav--large {
239
239
  font-size: var(--u-font-size-main-large);
240
240
  }
241
- .u-collapsed-menu--large .u-collapsed-menu__item,
242
- .u-collapsed-menu--large .u-collapsed-menu__sub-content {
243
- min-height: var(--u-menu-height-large);
241
+ .u-collapsed-nav--large .u-collapsed-nav__item,
242
+ .u-collapsed-nav--large .u-collapsed-nav__sub-content {
243
+ min-height: var(--u-nav-height-large);
244
244
  border-radius: calc(var(--u-radius-large) + 4px);
245
245
  }
246
- .u-collapsed-menu--large .u-collapsed-menu__icon {
246
+ .u-collapsed-nav--large .u-collapsed-nav__icon {
247
247
  width: 16px;
248
248
  height: 16px;
249
249
  font-size: 16px;
250
250
  }
251
- .u-collapsed-menu--large .u-collapsed-menu__sub-expand,
252
- .u-collapsed-menu--large .u-collapsed-menu__icon {
251
+ .u-collapsed-nav--large .u-collapsed-nav__sub-expand,
252
+ .u-collapsed-nav--large .u-collapsed-nav__icon {
253
253
  flex-shrink: 0;
254
254
  }
255
255
 
256
- .u-menu {
256
+ .u-nav {
257
257
  margin: 0;
258
258
  padding: 0;
259
- background-color: var(--u-menu-bg-color);
259
+ background-color: var(--u-nav-bg-color);
260
260
  backdrop-filter: var(--u-bg-filter);
261
261
  -webkit-backdrop-filter: var(--u-bg-filter);
262
- background-image: var(--u-menu-bg-image);
262
+ background-image: var(--u-nav-bg-image);
263
263
  background-size: cover;
264
264
  background-repeat: no-repeat;
265
265
  border: 1px solid var(--u-border-color);
266
266
  border-radius: calc(var(--u-radius-large) + 6px);
267
267
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 12px 28px rgba(15, 23, 42, 0.08);
268
268
  }
269
- .u-menu__container {
269
+ .u-nav__container {
270
270
  padding: 8px;
271
271
  }
272
- .u-menu__sub-expand, .u-menu__icon {
272
+ .u-nav__sub-expand, .u-nav__icon {
273
273
  color: var(--u-text-color-second);
274
274
  display: inline-flex;
275
275
  justify-content: center;
276
276
  align-items: center;
277
277
  flex-shrink: 0;
278
278
  }
279
- .u-menu__icon {
279
+ .u-nav__icon {
280
280
  border-radius: calc(var(--u-radius-small) + 2px);
281
281
  color: inherit;
282
282
  object-fit: contain;
283
283
  }
284
- .u-menu__item {
284
+ .u-nav__item {
285
285
  margin: 0;
286
286
  }
287
- .u-menu__sub {
287
+ .u-nav__sub {
288
288
  margin: 0;
289
289
  }
290
- .u-menu__sub-list {
290
+ .u-nav__sub-list {
291
291
  overflow: hidden;
292
292
  margin: 2px 0 0 12px;
293
293
  padding: 2px 0 2px 8px;
294
294
  border-left: 1px solid color-mix(in srgb, var(--u-border-color) 52%, transparent);
295
295
  }
296
296
  @supports selector(:has(*)) {
297
- .u-menu__sub-list:has(.u-menu__item.is-active) {
297
+ .u-nav__sub-list:has(.u-nav__item.is-active) {
298
298
  border-left-color: var(--u-color-primary);
299
299
  }
300
300
  }
301
- .u-menu__sub-expand {
301
+ .u-nav__sub-expand {
302
302
  transition: transform 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.18s ease;
303
303
  }
304
- .u-menu__sub-expand.is-expanded {
304
+ .u-nav__sub-expand.is-expanded {
305
305
  transform: rotate(90deg);
306
306
  color: var(--u-text-color-title);
307
307
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s ease;
308
308
  }
309
309
 
310
- .u-collapsed-menu {
310
+ .u-collapsed-nav {
311
311
  margin: 0;
312
312
  padding: 0;
313
313
  }
314
- .u-collapsed-menu__container {
314
+ .u-collapsed-nav__container {
315
315
  padding: 6px;
316
316
  }
317
- .u-collapsed-menu__item, .u-collapsed-menu__sub-content {
317
+ .u-collapsed-nav__item, .u-collapsed-nav__sub-content {
318
318
  width: 100%;
319
319
  }
320
- .u-collapsed-menu__item.is-first-level, .u-collapsed-menu__sub-content.is-first-level {
320
+ .u-collapsed-nav__item.is-first-level, .u-collapsed-nav__sub-content.is-first-level {
321
321
  justify-content: center;
322
322
  }
323
- .u-collapsed-menu__item.is-first-level .u-collapsed-menu__icon, .u-collapsed-menu__sub-content.is-first-level .u-collapsed-menu__icon {
323
+ .u-collapsed-nav__item.is-first-level .u-collapsed-nav__icon, .u-collapsed-nav__sub-content.is-first-level .u-collapsed-nav__icon {
324
324
  margin-right: 0;
325
325
  }
326
- .u-collapsed-menu__item {
326
+ .u-collapsed-nav__item {
327
327
  margin: 0;
328
328
  }
329
- .u-collapsed-menu__icon {
329
+ .u-collapsed-nav__icon {
330
330
  color: var(--u-text-color-second);
331
331
  object-fit: contain;
332
332
  }
333
- .u-collapsed-menu__item-title, .u-collapsed-menu__sub-title {
333
+ .u-collapsed-nav__item-title, .u-collapsed-nav__sub-title {
334
334
  font-weight: 500;
335
335
  }
336
- .u-collapsed-menu__sub-list {
336
+ .u-collapsed-nav__sub-list {
337
337
  margin: 0;
338
338
  max-height: min(320px, 60vh);
339
339
  padding: 0;
340
340
  }
341
- .u-collapsed-menu__panel {
341
+ .u-collapsed-nav__panel {
342
342
  min-width: 240px;
343
343
  padding: 8px !important;
344
- background-color: var(--u-menu-bg-color);
344
+ background-color: var(--u-nav-bg-color);
345
345
  backdrop-filter: var(--u-bg-filter);
346
346
  -webkit-backdrop-filter: var(--u-bg-filter);
347
347
  border: 1px solid var(--u-border-color);
348
348
  border-radius: calc(var(--u-radius-large) + 4px);
349
349
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.08);
350
350
  }
351
- .u-collapsed-menu__panel .u-tip__arrow {
351
+ .u-collapsed-nav__panel .u-tip__arrow {
352
352
  display: none;
353
353
  }
354
- .u-collapsed-menu__panel .u-scroll__content {
354
+ .u-collapsed-nav__panel .u-scroll__content {
355
355
  padding: 0;
356
356
  }
@@ -1,12 +1,12 @@
1
- import { MenuDIKey } from "./di.js";
1
+ import { NavDIKey } from "./di.js";
2
2
  import { computed, inject, watch } from "vue";
3
3
  import { scrollIntoContainerView } from "@veltra/utils";
4
- //#region src/components/menu/use-menu-item.ts
5
- function useMenuItem(options) {
4
+ //#region src/components/nav/use-nav-item.ts
5
+ function useNavItem(options) {
6
6
  const { itemProps, itemRef } = options;
7
- const { cls, collapsedCls, menuProps, menuEmit } = inject(MenuDIKey);
7
+ const { cls, collapsedCls, navProps, navEmit } = inject(NavDIKey);
8
8
  const active = computed(() => {
9
- return menuProps.currentPath === itemProps.menu.path;
9
+ return navProps.currentPath === itemProps.item.path;
10
10
  });
11
11
  let changedByClick = false;
12
12
  watch([active, itemRef], ([active, itemEl]) => {
@@ -17,19 +17,19 @@ function useMenuItem(options) {
17
17
  if (!active || !itemEl) return;
18
18
  scrollIntoContainerView(itemEl, null);
19
19
  });
20
- function handleClickMenu() {
21
- if (itemProps.menu.disabled) return;
20
+ function handleClickItem() {
21
+ if (itemProps.item.disabled) return;
22
22
  changedByClick = true;
23
- menuEmit("item-click", itemProps.menu);
23
+ navEmit("item-click", itemProps.item);
24
24
  }
25
25
  return {
26
26
  cls,
27
27
  collapsedCls,
28
28
  active,
29
- handleClickMenu
29
+ handleClickItem
30
30
  };
31
31
  }
32
32
  //#endregion
33
- export { useMenuItem };
33
+ export { useNavItem };
34
34
 
35
- //# sourceMappingURL=use-menu-item.js.map
35
+ //# sourceMappingURL=use-nav-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-nav-item.js","names":[],"sources":["../../../src/components/nav/use-nav-item.ts"],"sourcesContent":["import { scrollIntoContainerView, type BEM } from '@veltra/utils'\nimport { computed, inject, watch, type ShallowRef, type ComputedRef } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport { NavDIKey } from './di'\n\ninterface Options {\n itemProps: { item: NavItem; depth: number }\n itemRef: ShallowRef<HTMLElement | null>\n}\n\ninterface UseNavItemReturned {\n cls: BEM<'nav'>\n collapsedCls: BEM<'collapsed-nav'>\n\n active: ComputedRef<boolean>\n handleClickItem: () => void\n}\n\nexport function useNavItem(options: Options): UseNavItemReturned {\n const { itemProps, itemRef } = options\n const { cls, collapsedCls, navProps, navEmit } = inject(NavDIKey)!\n\n const active = computed(() => {\n return navProps.currentPath === itemProps.item.path\n })\n\n let changedByClick = false\n watch([active, itemRef], ([active, itemEl]) => {\n if (changedByClick) {\n changedByClick = false\n return\n }\n if (!active || !itemEl) return\n scrollIntoContainerView(itemEl, null)\n })\n\n function handleClickItem() {\n if (itemProps.item.disabled) return\n changedByClick = true\n navEmit('item-click', itemProps.item)\n }\n\n return {\n cls,\n collapsedCls,\n\n active,\n handleClickItem\n }\n}\n"],"mappings":";;;;AAmBA,SAAgB,WAAW,SAAsC;CAC/D,MAAM,EAAE,WAAW,YAAY;CAC/B,MAAM,EAAE,KAAK,cAAc,UAAU,YAAY,OAAO,QAAQ;CAEhE,MAAM,SAAS,eAAe;EAC5B,OAAO,SAAS,gBAAgB,UAAU,KAAK;CACjD,CAAC;CAED,IAAI,iBAAiB;CACrB,MAAM,CAAC,QAAQ,OAAO,IAAI,CAAC,QAAQ,YAAY;EAC7C,IAAI,gBAAgB;GAClB,iBAAiB;GACjB;EACF;EACA,IAAI,CAAC,UAAU,CAAC,QAAQ;EACxB,wBAAwB,QAAQ,IAAI;CACtC,CAAC;CAED,SAAS,kBAAkB;EACzB,IAAI,UAAU,KAAK,UAAU;EAC7B,iBAAiB;EACjB,QAAQ,cAAc,UAAU,IAAI;CACtC;CAEA,OAAO;EACL;EACA;EAEA;EACA;CACF;AACF"}
@@ -1,16 +1,16 @@
1
- //#region src/components/menu/walk-menu-path.ts
1
+ //#region src/components/nav/walk-nav-path.ts
2
2
  /**
3
3
  * 深度优先 + 路径;回调返回 `false` 时剪枝当前节点子树(不中断兄弟)。
4
4
  * `@cat-kit/core` 的 `dfs` 在返回 `true` 时会终止整段遍历,语义不同,故保留此辅助。
5
5
  */
6
- function walkMenuWithPath(data, cb, childrenKey = "children", prefix = []) {
6
+ function walkNavWithPath(data, cb, childrenKey = "children", prefix = []) {
7
7
  const path = [...prefix, data];
8
8
  if (cb(data, path) === false) return;
9
9
  const raw = data[childrenKey];
10
10
  if (!Array.isArray(raw)) return;
11
- for (let i = 0; i < raw.length; i++) walkMenuWithPath(raw[i], cb, childrenKey, path);
11
+ for (let i = 0; i < raw.length; i++) walkNavWithPath(raw[i], cb, childrenKey, path);
12
12
  }
13
13
  //#endregion
14
- export { walkMenuWithPath };
14
+ export { walkNavWithPath };
15
15
 
16
- //# sourceMappingURL=walk-menu-path.js.map
16
+ //# sourceMappingURL=walk-nav-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk-nav-path.js","names":[],"sources":["../../../src/components/nav/walk-nav-path.ts"],"sourcesContent":["/**\n * 深度优先 + 路径;回调返回 `false` 时剪枝当前节点子树(不中断兄弟)。\n * `@cat-kit/core` 的 `dfs` 在返回 `true` 时会终止整段遍历,语义不同,故保留此辅助。\n */\nexport function walkNavWithPath<T extends Record<string, unknown>>(\n data: T,\n cb: (node: T, path: T[]) => void | false,\n childrenKey = 'children',\n prefix: T[] = []\n): void {\n const path = [...prefix, data]\n if (cb(data, path) === false) return\n const raw = data[childrenKey]\n if (!Array.isArray(raw)) return\n for (let i = 0; i < raw.length; i++) {\n walkNavWithPath(raw[i] as T, cb, childrenKey, path)\n }\n}\n"],"mappings":";;;;;AAIA,SAAgB,gBACd,MACA,IACA,cAAc,YACd,SAAc,CAAC,GACT;CACN,MAAM,OAAO,CAAC,GAAG,QAAQ,IAAI;CAC7B,IAAI,GAAG,MAAM,IAAI,MAAM,OAAO;CAC9B,MAAM,MAAM,KAAK;CACjB,IAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;CACzB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,gBAAgB,IAAI,IAAS,IAAI,aAAa,IAAI;AAEtD"}
@@ -1,8 +1,8 @@
1
1
  import { NumberProps } from "../../types/number.js";
2
2
  //#region src/components/number/number.vue.d.ts
3
3
  declare const __VLS_export: import("vue").DefineComponent<NumberProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<NumberProps> & Readonly<{}>, {
4
- format: "currency" | "percent" | "decimal";
5
4
  duration: number;
5
+ format: "currency" | "percent" | "decimal";
6
6
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
7
  declare const _default: typeof __VLS_export;
8
8
  //#endregion
@@ -67,13 +67,13 @@
67
67
  white-space: nowrap;
68
68
  }
69
69
  .u-select__option:hover {
70
- background-color: var(--u-menu-hover-bg);
71
- color: var(--u-menu-hover-color);
70
+ background-color: var(--u-nav-hover-bg);
71
+ color: var(--u-nav-hover-color);
72
72
  }
73
73
  .u-select__option.is-selected {
74
74
  position: relative;
75
- background-color: var(--u-menu-active-bg);
76
- color: var(--u-menu-active-color);
75
+ background-color: var(--u-nav-active-bg);
76
+ color: var(--u-nav-active-color);
77
77
  font-weight: 600;
78
78
  }
79
79
  .u-select__option.is-selected::before {