@veltra/desktop 1.0.12 → 1.0.14

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 (182) hide show
  1. package/dist/components/action/action-group.js +110 -3
  2. package/dist/components/action/action-group.js.map +1 -1
  3. package/dist/components/action/action-group.vue.d.ts +16 -3
  4. package/dist/components/action/action.js +26 -13
  5. package/dist/components/action/action.js.map +1 -1
  6. package/dist/components/action/action.vue.d.ts +1 -1
  7. package/dist/components/action/style.js +2 -1
  8. package/dist/components/action/style2.css +35 -7
  9. package/dist/components/auto-complete/auto-complete.vue.d.ts +2 -2
  10. package/dist/components/batch-edit/batch-edit-form.js +106 -42
  11. package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
  12. package/dist/components/batch-edit/batch-edit-list.js +84 -47
  13. package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
  14. package/dist/components/batch-edit/batch-edit.js +42 -10
  15. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  16. package/dist/components/batch-edit/style.js +2 -4
  17. package/dist/components/batch-edit/style2.css +202 -30
  18. package/dist/components/batch-edit/use-edit.js +45 -9
  19. package/dist/components/batch-edit/use-edit.js.map +1 -1
  20. package/dist/components/cascade/cascade.js +3 -1
  21. package/dist/components/cascade/cascade.js.map +1 -1
  22. package/dist/components/cascade/cascade.vue.d.ts +3 -3
  23. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  24. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
  25. package/dist/components/code-editor/code-editor.js +145 -49
  26. package/dist/components/code-editor/code-editor.js.map +1 -1
  27. package/dist/components/code-editor/code-editor.vue.d.ts +2 -0
  28. package/dist/components/code-editor/style2.css +87 -19
  29. package/dist/components/collapse/collapse.js.map +1 -1
  30. package/dist/components/collapse/collapse.vue.d.ts +2 -10
  31. package/dist/components/date-picker/date-picker.vue.d.ts +2 -2
  32. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +2 -2
  33. package/dist/components/dialog/dialog.js +6 -2
  34. package/dist/components/dialog/dialog.js.map +1 -1
  35. package/dist/components/dialog/style2.css +2 -3
  36. package/dist/components/drawer/drawer.vue.d.ts +2 -2
  37. package/dist/components/expression-editor/components/path-preview.js +27 -0
  38. package/dist/components/expression-editor/components/path-preview.js.map +1 -0
  39. package/dist/components/expression-editor/components/variable-picker.js +199 -153
  40. package/dist/components/expression-editor/components/variable-picker.js.map +1 -1
  41. package/dist/components/expression-editor/core/chip.js +54 -0
  42. package/dist/components/expression-editor/core/chip.js.map +1 -0
  43. package/dist/components/expression-editor/core/editor.js +424 -0
  44. package/dist/components/expression-editor/core/editor.js.map +1 -0
  45. package/dist/components/expression-editor/core/mention.js +91 -0
  46. package/dist/components/expression-editor/core/mention.js.map +1 -0
  47. package/dist/components/expression-editor/core/model.js +64 -0
  48. package/dist/components/expression-editor/core/model.js.map +1 -0
  49. package/dist/components/expression-editor/di.js +4 -10
  50. package/dist/components/expression-editor/di.js.map +1 -1
  51. package/dist/components/expression-editor/expression-editor.js +168 -114
  52. package/dist/components/expression-editor/expression-editor.js.map +1 -1
  53. package/dist/components/expression-editor/expression-editor.vue.d.ts +2 -1
  54. package/dist/components/expression-editor/style.js +0 -2
  55. package/dist/components/expression-editor/style2.css +145 -219
  56. package/dist/components/index.js +54 -54
  57. package/dist/components/input/input.vue.d.ts +2 -2
  58. package/dist/components/layout/layout.js +12 -11
  59. package/dist/components/layout/layout.js.map +1 -1
  60. package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
  61. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +3 -3
  62. package/dist/components/number/number.vue.d.ts +1 -1
  63. package/dist/components/number-input/number-input.js +4 -4
  64. package/dist/components/number-input/number-input.js.map +1 -1
  65. package/dist/components/number-input/number-input.vue.d.ts +2 -2
  66. package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
  67. package/dist/components/password-input/password-input.vue.d.ts +1 -1
  68. package/dist/components/progress-nodes/progress-nodes.vue.d.ts +2 -2
  69. package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
  70. package/dist/components/rich-text-editor/rich-text-editor.js +1 -1
  71. package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +1 -1
  72. package/dist/components/rich-text-editor/toolbar.js +2 -2
  73. package/dist/components/select/select.vue.d.ts +2 -2
  74. package/dist/components/table/use-table.js +16 -0
  75. package/dist/components/table/use-table.js.map +1 -1
  76. package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
  77. package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
  78. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  79. package/dist/components/textarea/textarea.vue.d.ts +2 -2
  80. package/dist/components/tree/style2.css +18 -12
  81. package/dist/components/tree/tree-node.js +7 -4
  82. package/dist/components/tree/tree-node.js.map +1 -1
  83. package/dist/components/tree-select/tree-select.vue.d.ts +3 -3
  84. package/dist/index.d.ts +3 -3
  85. package/dist/index.js +83 -83
  86. package/dist/style.js +3 -3
  87. package/dist/types/action.d.ts +38 -4
  88. package/dist/types/cascade.d.ts +2 -3
  89. package/dist/types/code-editor.d.ts +9 -2
  90. package/dist/types/collapse.d.ts +6 -5
  91. package/dist/types/expression-editor.d.ts +9 -1
  92. package/dist/types/index.d.ts +2 -2
  93. package/package.json +11 -12
  94. package/src/components/action/action-group.vue +126 -56
  95. package/src/components/action/action.vue +35 -12
  96. package/src/components/action/style.scss +46 -10
  97. package/src/components/action/style.ts +2 -1
  98. package/src/components/batch-edit/batch-edit-form.vue +121 -45
  99. package/src/components/batch-edit/batch-edit-list.vue +56 -39
  100. package/src/components/batch-edit/batch-edit.vue +57 -6
  101. package/src/components/batch-edit/style.scss +251 -37
  102. package/src/components/batch-edit/style.ts +5 -8
  103. package/src/components/batch-edit/use-edit.ts +58 -11
  104. package/src/components/cascade/cascade.vue +3 -1
  105. package/src/components/code-editor/code-editor.vue +198 -63
  106. package/src/components/code-editor/style.scss +110 -12
  107. package/src/components/collapse/collapse.vue +5 -24
  108. package/src/components/dialog/dialog.vue +6 -2
  109. package/src/components/dialog/style.scss +4 -4
  110. package/src/components/expression-editor/__test__/chip.test.ts +86 -0
  111. package/src/components/expression-editor/__test__/mention.test.ts +122 -0
  112. package/src/components/expression-editor/__test__/model.test.ts +127 -0
  113. package/src/components/expression-editor/components/path-preview.vue +32 -0
  114. package/src/components/expression-editor/components/variable-picker.vue +224 -219
  115. package/src/components/expression-editor/core/chip.ts +101 -0
  116. package/src/components/expression-editor/core/editor.ts +513 -0
  117. package/src/components/expression-editor/core/mention.ts +121 -0
  118. package/src/components/expression-editor/core/model.ts +109 -0
  119. package/src/components/expression-editor/di.ts +4 -32
  120. package/src/components/expression-editor/expression-editor.vue +184 -151
  121. package/src/components/expression-editor/style.scss +148 -220
  122. package/src/components/expression-editor/style.ts +0 -2
  123. package/src/components/layout/layout.vue +17 -19
  124. package/src/components/number-input/number-input.vue +4 -4
  125. package/src/components/table/use-table.ts +16 -0
  126. package/src/components/tree/style.scss +30 -33
  127. package/src/components/tree/tree-node.vue +4 -2
  128. package/src/types/action.ts +42 -4
  129. package/src/types/cascade.ts +4 -3
  130. package/src/types/code-editor.ts +9 -2
  131. package/src/types/collapse.ts +6 -6
  132. package/src/types/expression-editor.ts +9 -0
  133. package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js +0 -65
  134. package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js.map +0 -1
  135. package/dist/components/expression-editor/constants.js +0 -9
  136. package/dist/components/expression-editor/constants.js.map +0 -1
  137. package/dist/components/expression-editor/internal/editor-runtime/create-runtime.js +0 -47
  138. package/dist/components/expression-editor/internal/editor-runtime/create-runtime.js.map +0 -1
  139. package/dist/components/expression-editor/internal/editor-runtime/model-sync.js +0 -49
  140. package/dist/components/expression-editor/internal/editor-runtime/model-sync.js.map +0 -1
  141. package/dist/components/expression-editor/internal/features/commands/register-command-packs.js +0 -215
  142. package/dist/components/expression-editor/internal/features/commands/register-command-packs.js.map +0 -1
  143. package/dist/components/expression-editor/internal/features/drag-drop/drag-drop-service.js +0 -33
  144. package/dist/components/expression-editor/internal/features/drag-drop/drag-drop-service.js.map +0 -1
  145. package/dist/components/expression-editor/internal/features/insertion/insertion-service.js +0 -33
  146. package/dist/components/expression-editor/internal/features/insertion/insertion-service.js.map +0 -1
  147. package/dist/components/expression-editor/nodes/variable-node.js +0 -94
  148. package/dist/components/expression-editor/nodes/variable-node.js.map +0 -1
  149. package/dist/components/expression-editor/parser.js +0 -32
  150. package/dist/components/expression-editor/parser.js.map +0 -1
  151. package/dist/components/expression-editor/plain-text.js +0 -19
  152. package/dist/components/expression-editor/plain-text.js.map +0 -1
  153. package/dist/components/expression-editor/use-context.js +0 -69
  154. package/dist/components/expression-editor/use-context.js.map +0 -1
  155. package/dist/components/expression-editor/use-decorators.js +0 -27
  156. package/dist/components/expression-editor/use-decorators.js.map +0 -1
  157. package/dist/components/expression-editor/use-expression-drag-drop.js +0 -275
  158. package/dist/components/expression-editor/use-expression-drag-drop.js.map +0 -1
  159. package/src/components/batch-edit/batch-edit-new.vue +0 -168
  160. package/src/components/batch-edit/style-new.scss +0 -35
  161. package/src/components/batch-edit/use-edit-new.ts +0 -68
  162. package/src/components/batch-edit/use-tip.ts +0 -47
  163. package/src/components/expression-editor/__test__/architecture-boundaries.test.ts +0 -103
  164. package/src/components/expression-editor/__test__/architecture-compatibility.test.ts +0 -52
  165. package/src/components/expression-editor/__test__/drag-drop.test.ts +0 -171
  166. package/src/components/expression-editor/__test__/parser.test.ts +0 -62
  167. package/src/components/expression-editor/constants.ts +0 -6
  168. package/src/components/expression-editor/internal/contracts/editor-runtime.ts +0 -11
  169. package/src/components/expression-editor/internal/editor-runtime/create-runtime.ts +0 -64
  170. package/src/components/expression-editor/internal/editor-runtime/index.ts +0 -1
  171. package/src/components/expression-editor/internal/editor-runtime/model-sync.ts +0 -68
  172. package/src/components/expression-editor/internal/features/commands/register-command-packs.ts +0 -517
  173. package/src/components/expression-editor/internal/features/drag-drop/drag-drop-service.ts +0 -51
  174. package/src/components/expression-editor/internal/features/insertion/insertion-service.ts +0 -56
  175. package/src/components/expression-editor/nodes/variable-node.tsx +0 -118
  176. package/src/components/expression-editor/parser.ts +0 -46
  177. package/src/components/expression-editor/plain-text.ts +0 -25
  178. package/src/components/expression-editor/plan.md +0 -22
  179. package/src/components/expression-editor/use-context.ts +0 -134
  180. package/src/components/expression-editor/use-decorators.tsx +0 -29
  181. package/src/components/expression-editor/use-editor.ts +0 -12
  182. package/src/components/expression-editor/use-expression-drag-drop.ts +0 -396
@@ -47,22 +47,6 @@
47
47
  .u-expression-editor.is-readonly:hover {
48
48
  border-color: var(--u-border-color);
49
49
  }
50
- .u-expression-editor__tools {
51
- text-align: right;
52
- margin-bottom: var(--u-gap-small);
53
- }
54
- .u-expression-editor__tools > * {
55
- cursor: pointer;
56
- transition: color 0.2s ease;
57
- }
58
- .u-expression-editor__tools > *:hover {
59
- color: var(--u-color-primary);
60
- }
61
- .u-expression-editor__paragraph {
62
- margin: 0;
63
- padding: 0;
64
- line-height: 1.6;
65
- }
66
50
  .u-expression-editor__placeholder {
67
51
  position: absolute;
68
52
  color: var(--u-text-color-placeholder);
@@ -84,209 +68,134 @@
84
68
  .u-expression-editor__container:empty::before {
85
69
  content: "​";
86
70
  }
87
- .u-expression-editor__container .ultra-expression-variable-source {
88
- cursor: grab;
89
- }
90
- .u-expression-editor__container .ultra-expression-variable-source.is-dragging {
91
- opacity: 0.5;
92
- cursor: grabbing;
93
- }
94
- .u-expression-editor__container .expression-editor__drop-indicator {
95
- position: absolute;
96
- width: 2px;
97
- border-radius: 999px;
98
- transform: translateX(-1px);
99
- pointer-events: none;
100
- background-color: var(--u-color-primary);
101
- box-shadow: 0 0 0 1px var(--u-color-primary-light-8);
102
- transition: opacity 0.12s ease;
103
- z-index: 3;
104
- }
105
- .u-expression-editor__fallback {
106
- display: flex;
107
- flex-direction: column;
108
- gap: 6px;
109
- margin-top: 8px;
110
- padding-top: 8px;
111
- border-top: var(--u-border);
112
- }
113
- .u-expression-editor__fallback-item {
114
- display: flex;
115
- align-items: center;
116
- justify-content: space-between;
117
- gap: 8px;
118
- }
119
- .u-expression-editor__fallback-label {
120
- min-width: 0;
121
- flex: 1;
122
- font-size: 12px;
123
- color: var(--u-text-color-main);
124
- overflow: hidden;
125
- text-overflow: ellipsis;
126
- white-space: nowrap;
71
+ .u-expression-editor__container > [data-seg=text] {
72
+ white-space: pre-wrap;
127
73
  }
128
- .u-expression-editor__fallback-actions {
74
+ .u-expression-editor__chip {
129
75
  display: inline-flex;
130
76
  align-items: center;
131
77
  gap: 4px;
132
- flex-shrink: 0;
133
- }
134
- .u-expression-editor__fallback-button {
135
- border: var(--u-border);
136
- border-radius: var(--u-radius-small);
137
- background-color: var(--u-bg-color-top);
138
- color: var(--u-text-color-main);
139
- font-size: 12px;
140
- line-height: 1;
141
- height: 22px;
78
+ margin: 0 2px;
142
79
  padding: 0 8px;
80
+ height: 22px;
81
+ line-height: 1;
82
+ font-size: 12px;
83
+ color: var(--u-text-color-white);
84
+ background-color: var(--u-color-primary);
85
+ border-radius: 999px;
143
86
  cursor: pointer;
144
- transition: all 0.12s ease;
145
- }
146
- .u-expression-editor__fallback-button:hover:not(:disabled) {
147
- color: var(--u-color-primary);
148
- border-color: var(--u-color-primary);
149
- background-color: var(--u-color-primary-light-9);
150
- }
151
- .u-expression-editor__fallback-button:disabled {
152
- cursor: not-allowed;
153
- color: var(--u-text-color-placeholder);
154
- border-color: var(--u-border-color);
155
- background-color: var(--u-bg-color-middle);
156
- }
157
- .u-expression-editor--small {
158
- min-height: var(--u-form-component-height-small);
159
- padding: var(--u-gap-small);
160
- }
161
- .u-expression-editor--small .u-expression-editor__placeholder {
162
- top: var(--u-gap-small);
163
- left: var(--u-gap-small);
164
- font-size: var(--u-font-size-main-small);
165
- }
166
- .u-expression-editor--small .u-expression-editor__container {
167
- font-size: var(--u-font-size-main-small);
168
- }
169
- .u-expression-editor--small .u-expression-editor__clear {
170
- font-size: var(--u-font-size-main-small);
171
- }
172
- .u-expression-editor--default {
173
- min-height: var(--u-form-component-height-default);
174
- padding: var(--u-gap-default);
175
- }
176
- .u-expression-editor--default .u-expression-editor__placeholder {
177
- top: var(--u-gap-default);
178
- left: var(--u-gap-default);
179
- font-size: var(--u-font-size-main-default);
180
- }
181
- .u-expression-editor--default .u-expression-editor__container {
182
- font-size: var(--u-font-size-main-default);
87
+ user-select: none;
88
+ transition: background-color 0.12s ease, box-shadow 0.12s ease;
183
89
  }
184
- .u-expression-editor--default .u-expression-editor__clear {
185
- font-size: var(--u-font-size-main-default);
90
+ .u-expression-editor__chip:hover {
91
+ background-color: var(--u-color-primary-light-2);
92
+ box-shadow: 0 1px 4px var(--u-shadow-color);
186
93
  }
187
- .u-expression-editor--large {
188
- min-height: var(--u-form-component-height-large);
189
- padding: var(--u-gap-large);
94
+ .u-expression-editor__chip:hover .u-expression-editor__chip-close {
95
+ opacity: 1;
96
+ max-width: 14px;
97
+ margin-left: 2px;
190
98
  }
191
- .u-expression-editor--large .u-expression-editor__placeholder {
192
- top: var(--u-gap-large);
193
- left: var(--u-gap-large);
194
- font-size: var(--u-font-size-main-large);
99
+ .u-expression-editor__chip.is-focused {
100
+ box-shadow: 0 0 0 2px var(--u-color-primary-light-7);
195
101
  }
196
- .u-expression-editor--large .u-expression-editor__container {
197
- font-size: var(--u-font-size-main-large);
102
+ .u-expression-editor__chip-label {
103
+ pointer-events: none;
198
104
  }
199
- .u-expression-editor--large .u-expression-editor__clear {
200
- font-size: var(--u-font-size-main-large);
105
+ .u-expression-editor__chip-close {
106
+ display: inline-flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ width: 14px;
110
+ max-width: 0;
111
+ margin-left: 0;
112
+ overflow: hidden;
113
+ font-size: 14px;
114
+ line-height: 1;
115
+ color: var(--u-text-color-white);
116
+ opacity: 0;
117
+ transition: opacity 0.12s ease, max-width 0.12s ease, margin-left 0.12s ease;
118
+ cursor: pointer;
201
119
  }
202
- .u-expression-editor__variable-empty {
203
- padding: 16px;
204
- text-align: center;
205
- color: var(--u-text-color-second);
206
- font-size: 13px;
207
- font-weight: 500;
120
+ .u-expression-editor__chip-close:hover {
121
+ transform: scale(1.1);
208
122
  }
209
- .u-expression-editor__variable-list {
210
- padding: 6px 0;
211
- margin: 0;
212
- list-style: none;
213
- max-height: 240px;
214
- overflow-y: auto;
123
+ .u-expression-editor__picker {
124
+ min-width: 220px;
215
125
  background-color: var(--u-bg-color-top);
216
126
  }
217
- .u-expression-editor__variable-list::-webkit-scrollbar {
218
- width: 8px;
127
+ .u-expression-editor__picker-body {
128
+ display: flex;
129
+ align-items: stretch;
130
+ min-height: 200px;
219
131
  }
220
- .u-expression-editor__variable-list::-webkit-scrollbar-track {
221
- background-color: var(--u-bg-color-middle);
222
- border-radius: var(--u-radius-small);
132
+ .u-expression-editor__panel {
133
+ flex: 1 1 auto;
134
+ min-width: 0;
135
+ max-height: 320px;
223
136
  }
224
- .u-expression-editor__variable-list::-webkit-scrollbar-thumb {
225
- background-color: var(--u-text-color-placeholder);
226
- border-radius: var(--u-radius-small);
227
- border: 2px solid var(--u-bg-color-middle);
137
+ .u-expression-editor__panel-list {
138
+ height: 100%;
139
+ min-height: 200px;
228
140
  }
229
- .u-expression-editor__variable-list::-webkit-scrollbar-thumb:hover {
230
- background-color: var(--u-text-color-second);
141
+ .u-expression-editor__panel-content {
142
+ padding: 4px 0;
231
143
  }
232
- .u-expression-editor__variable-item {
233
- padding: 8px 14px;
234
- margin: 2px 6px;
144
+ .u-expression-editor__item {
145
+ padding: 6px 12px;
235
146
  cursor: pointer;
236
- transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
237
- border-radius: var(--u-radius-default);
238
- font-size: 13px;
147
+ user-select: none;
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: space-between;
151
+ gap: 8px;
152
+ transition: background-color 0.12s ease, color 0.12s ease;
239
153
  color: var(--u-text-color-main);
240
- font-weight: 500;
241
- }
242
- .u-expression-editor__variable-item:hover {
243
- background-color: var(--u-color-primary-light-9);
244
- color: var(--u-color-primary);
245
- transform: translateX(2px);
154
+ font-size: 13px;
155
+ line-height: 1.4;
156
+ border-radius: var(--u-radius-small);
157
+ margin: 1px 4px;
246
158
  }
247
- .u-expression-editor__variable-item.is-active {
159
+ .u-expression-editor__item.is-active {
248
160
  background-color: var(--u-color-primary);
249
161
  color: var(--u-text-color-white);
250
- font-weight: 600;
251
- box-shadow: 0 2px 4px var(--u-shadow-color);
252
162
  }
253
- .u-expression-editor__filter {
254
- padding: 6px;
255
- border-bottom: var(--u-border);
163
+ .u-expression-editor__item.is-active .u-expression-editor__item-expand {
164
+ color: var(--u-text-color-white);
165
+ }
166
+ .u-expression-editor__item-label {
167
+ flex: 1;
168
+ overflow: hidden;
169
+ text-overflow: ellipsis;
170
+ white-space: nowrap;
171
+ }
172
+ .u-expression-editor__item-expand {
173
+ flex-shrink: 0;
174
+ color: var(--u-text-color-placeholder);
175
+ font-size: 12px;
176
+ }
177
+ .u-expression-editor__empty {
178
+ flex: 1;
179
+ padding: 32px 16px;
180
+ text-align: center;
256
181
  }
257
182
  .u-expression-editor__breadcrumbs {
258
183
  display: flex;
259
184
  align-items: center;
185
+ flex-wrap: wrap;
260
186
  padding: 6px 10px;
261
187
  border-bottom: var(--u-border);
262
- background-color: var(--u-bg-color-middle);
263
188
  font-size: 12px;
264
189
  color: var(--u-text-color-second);
265
- overflow-x: auto;
266
- white-space: nowrap;
267
- }
268
- .u-expression-editor__breadcrumbs::-webkit-scrollbar {
269
- height: 4px;
270
- }
271
- .u-expression-editor__breadcrumbs::-webkit-scrollbar-track {
272
- background-color: transparent;
273
- }
274
- .u-expression-editor__breadcrumbs::-webkit-scrollbar-thumb {
275
- background-color: var(--u-border-color);
276
- border-radius: 2px;
277
- }
278
- .u-expression-editor__breadcrumbs::-webkit-scrollbar-thumb:hover {
279
- background-color: var(--u-text-color-placeholder);
280
190
  }
281
191
  .u-expression-editor__breadcrumb-item {
282
- display: flex;
192
+ display: inline-flex;
283
193
  align-items: center;
284
194
  gap: 4px;
285
195
  }
286
196
  .u-expression-editor__breadcrumb-link {
287
197
  cursor: pointer;
288
- transition: all 0.15s ease;
289
- font-weight: 500;
198
+ transition: color 0.12s ease, background-color 0.12s ease;
290
199
  padding: 2px 6px;
291
200
  border-radius: var(--u-radius-small);
292
201
  }
@@ -301,59 +210,76 @@
301
210
  .u-expression-editor__breadcrumb-separator {
302
211
  font-size: 10px;
303
212
  color: var(--u-text-color-placeholder);
304
- margin: 0 2px;
305
213
  }
306
- .u-expression-editor__panel {
307
- min-height: 200px;
308
- max-height: 360px;
214
+ .u-expression-editor__path-preview {
215
+ flex: 0 0 200px;
216
+ border-left: var(--u-border);
217
+ padding: 8px 12px;
218
+ background-color: var(--u-bg-color-middle);
219
+ font-size: 12px;
309
220
  }
310
- .u-expression-editor__panel-list {
311
- height: 100%;
312
- min-height: 200px;
221
+ .u-expression-editor__path-preview-title {
222
+ color: var(--u-text-color-second);
223
+ margin-bottom: 6px;
224
+ font-weight: 600;
313
225
  }
314
- .u-expression-editor__panel-content {
315
- padding: 2px 0;
226
+ .u-expression-editor__path-tree {
227
+ list-style: none;
228
+ margin: 0;
229
+ padding: 0;
316
230
  }
317
- .u-expression-editor__item {
318
- padding: 5px 10px;
319
- cursor: pointer;
320
- user-select: none;
231
+ .u-expression-editor__path-tree-item {
321
232
  display: flex;
322
233
  align-items: center;
323
- justify-content: space-between;
324
- gap: 8px;
325
- transition: all 0.12s ease;
234
+ gap: 4px;
235
+ line-height: 1.6;
326
236
  color: var(--u-text-color-main);
327
- font-size: 13px;
328
- line-height: 1.4;
329
- border-radius: var(--u-radius-small);
330
- margin: 1px 4px;
331
237
  }
332
- .u-expression-editor__item:hover {
333
- background-color: var(--u-bg-color-hover);
334
- }
335
- .u-expression-editor__item.is-active {
336
- background-color: var(--u-color-primary);
337
- color: var(--u-text-color-white);
338
- font-weight: 500;
339
- box-shadow: 0 1px 3px var(--u-shadow-color);
238
+ .u-expression-editor__path-tree-item.is-active {
239
+ color: var(--u-color-primary);
240
+ font-weight: 600;
340
241
  }
341
- .u-expression-editor__item.is-active .u-expression-editor__item-expand {
342
- color: var(--u-text-color-white);
242
+ .u-expression-editor__path-tree-branch {
243
+ color: var(--u-text-color-placeholder);
343
244
  }
344
- .u-expression-editor__item-label {
345
- flex: 1;
245
+ .u-expression-editor__path-tree-label {
346
246
  overflow: hidden;
347
247
  text-overflow: ellipsis;
348
248
  white-space: nowrap;
349
249
  }
350
- .u-expression-editor__item-expand {
351
- flex-shrink: 0;
352
- color: var(--u-text-color-placeholder);
353
- font-size: 11px;
354
- transition: color 0.15s ease;
250
+ .u-expression-editor--small {
251
+ min-height: var(--u-form-component-height-small);
252
+ padding: var(--u-gap-small);
355
253
  }
356
- .u-expression-editor__empty {
357
- padding: 40px 20px;
358
- text-align: center;
254
+ .u-expression-editor--small .u-expression-editor__placeholder {
255
+ top: var(--u-gap-small);
256
+ left: var(--u-gap-small);
257
+ font-size: var(--u-font-size-main-small);
258
+ }
259
+ .u-expression-editor--small .u-expression-editor__container {
260
+ font-size: var(--u-font-size-main-small);
261
+ }
262
+ .u-expression-editor--default {
263
+ min-height: var(--u-form-component-height-default);
264
+ padding: var(--u-gap-default);
265
+ }
266
+ .u-expression-editor--default .u-expression-editor__placeholder {
267
+ top: var(--u-gap-default);
268
+ left: var(--u-gap-default);
269
+ font-size: var(--u-font-size-main-default);
270
+ }
271
+ .u-expression-editor--default .u-expression-editor__container {
272
+ font-size: var(--u-font-size-main-default);
273
+ }
274
+ .u-expression-editor--large {
275
+ min-height: var(--u-form-component-height-large);
276
+ padding: var(--u-gap-large);
277
+ }
278
+ .u-expression-editor--large .u-expression-editor__placeholder {
279
+ top: var(--u-gap-large);
280
+ left: var(--u-gap-large);
281
+ font-size: var(--u-font-size-main-large);
282
+ }
283
+ .u-expression-editor--large .u-expression-editor__container {
284
+ font-size: var(--u-font-size-main-large);
359
285
  }
@@ -68,34 +68,34 @@ import _sfc_main$52 from "./expression-editor/expression-editor.js";
68
68
  import _sfc_main$53 from "./watermark/watermark.js";
69
69
  import _sfc_main$54 from "./pop-confirm/pop-confirm.js";
70
70
  import _sfc_main$55 from "./action/action.js";
71
- import action_group_default from "./action/action-group.js";
72
- import _sfc_main$56 from "./batch-edit/batch-edit.js";
71
+ import _sfc_main$56 from "./action/action-group.js";
72
+ import _sfc_main$57 from "./batch-edit/batch-edit.js";
73
73
  import { defineBatchEditColumns } from "./batch-edit/helper.js";
74
- import _sfc_main$57 from "./textarea/textarea.js";
75
- import _sfc_main$58 from "./cascade/cascade.js";
76
- import _sfc_main$59 from "./steps/steps.js";
77
- import _sfc_main$60 from "./date-picker/date-picker.js";
78
- import _sfc_main$61 from "./palette/palette.js";
79
- import _sfc_main$62 from "./select/select.js";
80
- import _sfc_main$63 from "./theme/theme.js";
81
- import _sfc_main$64 from "./multi-tree-select/multi-tree-select.js";
82
- import _sfc_main$65 from "./group-input/group-input.js";
83
- import _sfc_main$66 from "./list/list.js";
84
- import _sfc_main$67 from "./list/list-item.js";
85
- import _sfc_main$68 from "./rich-text-editor/rich-text-editor.js";
86
- import _sfc_main$69 from "./menu/menu-item.js";
87
- import _sfc_main$70 from "./menu/menu-sub.js";
88
- import _sfc_main$71 from "./menu/menu.js";
89
- import _sfc_main$72 from "./grid-input/grid-input.js";
90
- import _sfc_main$73 from "./switch/switch.js";
91
- import _sfc_main$74 from "./radio-group/radio-group.js";
92
- import _sfc_main$75 from "./checkbox-group/checkbox-group.js";
93
- import _sfc_main$76 from "./file-viewer/file-viewer.js";
94
- import _sfc_main$77 from "./text/text.js";
95
- import _sfc_main$78 from "./breadcrumb/breadcrumb.js";
96
- import _sfc_main$79 from "./paginator/paginator.js";
97
- import _sfc_main$80 from "./float-button/float-button.js";
98
- import _sfc_main$81 from "./badge/badge.js";
74
+ import _sfc_main$58 from "./textarea/textarea.js";
75
+ import _sfc_main$59 from "./cascade/cascade.js";
76
+ import _sfc_main$60 from "./steps/steps.js";
77
+ import _sfc_main$61 from "./date-picker/date-picker.js";
78
+ import _sfc_main$62 from "./palette/palette.js";
79
+ import _sfc_main$63 from "./select/select.js";
80
+ import _sfc_main$64 from "./theme/theme.js";
81
+ import _sfc_main$65 from "./multi-tree-select/multi-tree-select.js";
82
+ import _sfc_main$66 from "./group-input/group-input.js";
83
+ import _sfc_main$67 from "./list/list.js";
84
+ import _sfc_main$68 from "./list/list-item.js";
85
+ import _sfc_main$69 from "./rich-text-editor/rich-text-editor.js";
86
+ import _sfc_main$70 from "./menu/menu-item.js";
87
+ import _sfc_main$71 from "./menu/menu-sub.js";
88
+ import _sfc_main$72 from "./menu/menu.js";
89
+ import _sfc_main$73 from "./grid-input/grid-input.js";
90
+ import _sfc_main$74 from "./switch/switch.js";
91
+ import _sfc_main$75 from "./radio-group/radio-group.js";
92
+ import _sfc_main$76 from "./checkbox-group/checkbox-group.js";
93
+ import _sfc_main$77 from "./file-viewer/file-viewer.js";
94
+ import _sfc_main$78 from "./text/text.js";
95
+ import _sfc_main$79 from "./breadcrumb/breadcrumb.js";
96
+ import _sfc_main$80 from "./paginator/paginator.js";
97
+ import _sfc_main$81 from "./float-button/float-button.js";
98
+ import _sfc_main$82 from "./badge/badge.js";
99
99
  //#region src/components/index.ts
100
100
  var components_exports = /* @__PURE__ */ __exportAll({
101
101
  DynamicFormModel: () => DynamicFormModel,
@@ -103,11 +103,11 @@ var components_exports = /* @__PURE__ */ __exportAll({
103
103
  MessageConfirm: () => MessageConfirm,
104
104
  Notification: () => Notification,
105
105
  UAction: () => _sfc_main$55,
106
- UActionGroup: () => action_group_default,
106
+ UActionGroup: () => _sfc_main$56,
107
107
  UAutoComplete: () => _sfc_main$30,
108
- UBadge: () => _sfc_main$81,
109
- UBatchEdit: () => _sfc_main$56,
110
- UBreadcrumb: () => _sfc_main$78,
108
+ UBadge: () => _sfc_main$82,
109
+ UBatchEdit: () => _sfc_main$57,
110
+ UBreadcrumb: () => _sfc_main$79,
111
111
  UButton: () => _sfc_main$16,
112
112
  UButtonGroup: () => _sfc_main$17,
113
113
  UCalendar: () => _sfc_main$19,
@@ -116,18 +116,18 @@ var components_exports = /* @__PURE__ */ __exportAll({
116
116
  UCardContent: () => _sfc_main$24,
117
117
  UCardCover: () => _sfc_main$23,
118
118
  UCardHeader: () => _sfc_main$22,
119
- UCascade: () => _sfc_main$58,
119
+ UCascade: () => _sfc_main$59,
120
120
  UCheckTag: () => _sfc_main$47,
121
121
  UCheckbox: () => _sfc_main$7,
122
122
  UCheckboxButton: () => _sfc_main$35,
123
- UCheckboxGroup: () => _sfc_main$75,
123
+ UCheckboxGroup: () => _sfc_main$76,
124
124
  UCodeEditor: () => _sfc_main$11,
125
125
  UCollapse: () => _sfc_main$43,
126
126
  UCollapseItem: () => _sfc_main$44,
127
127
  UConditionEditor: () => _sfc_main,
128
128
  UContextMenu: () => _sfc_main$48,
129
129
  UDatePanel: () => _sfc_main$26,
130
- UDatePicker: () => _sfc_main$60,
130
+ UDatePicker: () => _sfc_main$61,
131
131
  UDateRangePicker: () => _sfc_main$27,
132
132
  UDialog: () => _sfc_main$51,
133
133
  UDrawer: () => _sfc_main$12,
@@ -135,56 +135,56 @@ var components_exports = /* @__PURE__ */ __exportAll({
135
135
  UEmpty: () => _sfc_main$6,
136
136
  UExpressionEditor: () => _sfc_main$52,
137
137
  UFilePicker: () => _sfc_main$40,
138
- UFileViewer: () => _sfc_main$76,
139
- UFloatButton: () => _sfc_main$80,
138
+ UFileViewer: () => _sfc_main$77,
139
+ UFloatButton: () => _sfc_main$81,
140
140
  UForm: () => form_default,
141
141
  UFormItem: () => form_item_default,
142
142
  UGanttChart: () => _sfc_main$38,
143
143
  UGrid: () => _sfc_main$13,
144
- UGridInput: () => _sfc_main$72,
144
+ UGridInput: () => _sfc_main$73,
145
145
  UGridItem: () => _sfc_main$14,
146
- UGroupInput: () => _sfc_main$65,
146
+ UGroupInput: () => _sfc_main$66,
147
147
  UIcon: () => _sfc_main$2,
148
148
  UInput: () => input_default,
149
149
  ULayout: () => _sfc_main$33,
150
- UList: () => _sfc_main$66,
151
- UListItem: () => _sfc_main$67,
150
+ UList: () => _sfc_main$67,
151
+ UListItem: () => _sfc_main$68,
152
152
  ULoading: () => _sfc_main$28,
153
- UMenu: () => _sfc_main$71,
154
- UMenuItem: () => _sfc_main$69,
155
- UMenuSub: () => _sfc_main$70,
153
+ UMenu: () => _sfc_main$72,
154
+ UMenuItem: () => _sfc_main$70,
155
+ UMenuSub: () => _sfc_main$71,
156
156
  UMessage: () => _sfc_main$39,
157
157
  UMessageConfirm: () => _sfc_main$18,
158
158
  UMultiSelect: () => _sfc_main$36,
159
- UMultiTreeSelect: () => _sfc_main$64,
159
+ UMultiTreeSelect: () => _sfc_main$65,
160
160
  UNodeRender: () => NodeRender,
161
161
  UNotification: () => _sfc_main$32,
162
162
  UNumber: () => _sfc_main$50,
163
163
  UNumberInput: () => _sfc_main$41,
164
164
  UNumberRangeInput: () => _sfc_main$42,
165
- UPaginator: () => _sfc_main$79,
166
- UPalette: () => _sfc_main$61,
165
+ UPaginator: () => _sfc_main$80,
166
+ UPalette: () => _sfc_main$62,
167
167
  UPasswordInput: () => _sfc_main$49,
168
168
  UPopConfirm: () => _sfc_main$54,
169
169
  UProgress: () => _sfc_main$31,
170
170
  UProgressNodes: () => _sfc_main$29,
171
171
  URadio: () => _sfc_main$20,
172
- URadioGroup: () => _sfc_main$74,
173
- URichTextEditor: () => _sfc_main$68,
172
+ URadioGroup: () => _sfc_main$75,
173
+ URichTextEditor: () => _sfc_main$69,
174
174
  UScroll: () => _sfc_main$1,
175
- USelect: () => _sfc_main$62,
175
+ USelect: () => _sfc_main$63,
176
176
  USlider: () => _sfc_main$37,
177
- USteps: () => _sfc_main$59,
178
- USwitch: () => _sfc_main$73,
177
+ USteps: () => _sfc_main$60,
178
+ USwitch: () => _sfc_main$74,
179
179
  UTable: () => _sfc_main$45,
180
180
  UTableEditor: () => _sfc_main$46,
181
181
  UTabs: () => _sfc_main$5,
182
182
  UTabsHorizontal: () => _sfc_main$3,
183
183
  UTabsVertical: () => _sfc_main$4,
184
184
  UTag: () => _sfc_main$34,
185
- UText: () => _sfc_main$77,
186
- UTextarea: () => _sfc_main$57,
187
- UTheme: () => _sfc_main$63,
185
+ UText: () => _sfc_main$78,
186
+ UTextarea: () => _sfc_main$58,
187
+ UTheme: () => _sfc_main$64,
188
188
  UTip: () => _sfc_main$15,
189
189
  UTree: () => _sfc_main$8,
190
190
  UTreeSelect: () => _sfc_main$10,
@@ -34,10 +34,10 @@ declare const __VLS_base: _$vue.DefineComponent<__VLS_PublicProps, _InputExposed
34
34
  onBlur?: ((value?: string | undefined) => any) | undefined;
35
35
  "onNative:input"?: ((ev: Event) => any) | undefined;
36
36
  }>, {
37
- disabled: boolean;
38
- readonly: boolean;
39
37
  placeholder: string;
40
38
  clearable: boolean;
39
+ disabled: boolean;
40
+ readonly: boolean;
41
41
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
42
42
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
43
43
  declare const _default: typeof __VLS_export;
@@ -24,7 +24,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
24
24
  templateCols.value = [];
25
25
  return;
26
26
  }
27
- templateCols.value = typeof cols === "string" ? cols.split(" ") : cols;
27
+ templateCols.value = typeof cols === "string" ? cols.split(" ") : [...cols];
28
28
  });
29
29
  const style = computed(() => {
30
30
  const { rows, gap, resizable } = props;
@@ -64,19 +64,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
64
64
  });
65
65
  }
66
66
  });
67
- let prevSize = "0";
68
- let nextSize = "0";
67
+ let prevSize = 0;
68
+ let nextSize = 0;
69
69
  const handleStartResize = (index) => {
70
- prevSize = templateCols.value[index];
71
- nextSize = templateCols.value[index + 1];
72
- if (!prevSize.endsWith("px") && !nextSize.endsWith("px")) {
73
- const rect = containerRef.value?.children[index + 1]?.getBoundingClientRect();
74
- if (rect) nextSize = rect.width + "px";
75
- }
70
+ const container = containerRef.value;
71
+ if (!container) return;
72
+ const prevDom = container.children[index];
73
+ const nextDom = container.children[index + 1];
74
+ prevSize = prevDom ? prevDom.getBoundingClientRect().width : 0;
75
+ nextSize = nextDom ? nextDom.getBoundingClientRect().width : 0;
76
76
  };
77
77
  const handleResize = (offset, index) => {
78
- if (prevSize?.endsWith("px")) templateCols.value[index] = `${parseInt(prevSize) + offset}px`;
79
- if (nextSize?.endsWith("px")) templateCols.value[index + 1] = `${parseInt(nextSize) - offset}px`;
78
+ const clamped = Math.max(-prevSize, Math.min(nextSize, offset));
79
+ templateCols.value[index] = `${prevSize + clamped}px`;
80
+ templateCols.value[index + 1] = `${nextSize - clamped}px`;
80
81
  };
81
82
  provide(LayoutDIKey, { cls });
82
83
  return (_ctx, _cache) => {