oxy-uni-ui 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/attributes.json +1 -1
  2. package/components/common/abstracts/variable.scss +338 -194
  3. package/components/composables/useVirtualScroll.ts +40 -14
  4. package/components/oxy-action-sheet/index.scss +3 -3
  5. package/components/oxy-backtop/index.scss +2 -2
  6. package/components/oxy-button/index.scss +2 -2
  7. package/components/oxy-calendar/index.scss +9 -9
  8. package/components/oxy-calendar-view/monthPanel/index.scss +4 -5
  9. package/components/oxy-calendar-view/year/index.scss +1 -1
  10. package/components/oxy-calendar-view/yearPanel/index.scss +3 -3
  11. package/components/oxy-cell/index.scss +1 -1
  12. package/components/oxy-checkbox/index.scss +9 -9
  13. package/components/oxy-checkbox-group/index.scss +2 -2
  14. package/components/oxy-col-picker/index.scss +3 -3
  15. package/components/oxy-corner/index.scss +1 -1
  16. package/components/oxy-datetime-picker/index.scss +5 -5
  17. package/components/oxy-drop-menu/index.scss +3 -3
  18. package/components/oxy-drop-menu-item/index.scss +2 -2
  19. package/components/oxy-file-list/index.scss +20 -20
  20. package/components/oxy-guidance/index.scss +13 -13
  21. package/components/oxy-img-cropper/index.scss +14 -14
  22. package/components/oxy-index-anchor/index.scss +2 -2
  23. package/components/oxy-index-bar/index.scss +3 -3
  24. package/components/oxy-input/index.scss +1 -1
  25. package/components/oxy-keyboard/index.scss +2 -2
  26. package/components/oxy-long-press-menu/index.scss +2 -2
  27. package/components/oxy-message-box/index.scss +7 -7
  28. package/components/oxy-message-box/oxy-message-box.vue +4 -5
  29. package/components/oxy-message-box/types.ts +0 -5
  30. package/components/oxy-pagination/index.scss +5 -4
  31. package/components/oxy-picker/index.scss +14 -14
  32. package/components/oxy-picker-view/index.scss +2 -2
  33. package/components/oxy-popover/index.scss +8 -8
  34. package/components/oxy-popup/index.scss +4 -4
  35. package/components/oxy-progress/index.scss +1 -1
  36. package/components/oxy-radio/index.scss +20 -14
  37. package/components/oxy-radio-group/index.scss +2 -2
  38. package/components/oxy-rich-text/index.scss +18 -18
  39. package/components/oxy-rich-text/mp-html/card/card.vue +3 -3
  40. package/components/oxy-rich-text/mp-html/mp-html.vue +4 -4
  41. package/components/oxy-rich-text/mp-html/node/node.vue +2 -2
  42. package/components/oxy-rich-text/oxy-rich-text.vue +8 -8
  43. package/components/oxy-search/index.scss +5 -5
  44. package/components/oxy-segmented/index.scss +13 -10
  45. package/components/oxy-select/index.scss +116 -68
  46. package/components/oxy-select/oxy-select.vue +24 -11
  47. package/components/oxy-select-picker/index.scss +2 -2
  48. package/components/oxy-sidebar-item/index.scss +2 -2
  49. package/components/oxy-skeleton/index.scss +1 -1
  50. package/components/oxy-slider/index.scss +4 -4
  51. package/components/oxy-splitter/index.scss +19 -0
  52. package/components/oxy-splitter/oxy-splitter.vue +409 -0
  53. package/components/oxy-splitter/types.ts +75 -0
  54. package/components/oxy-splitter-panel/index.scss +366 -0
  55. package/components/oxy-splitter-panel/oxy-splitter-panel.vue +432 -0
  56. package/components/oxy-splitter-panel/types.ts +63 -0
  57. package/components/oxy-step/index.scss +5 -5
  58. package/components/oxy-stream-render/oxy-stream-render.vue +230 -4
  59. package/components/oxy-swiper-nav/index.scss +3 -3
  60. package/components/oxy-switch/index.scss +2 -2
  61. package/components/oxy-tabbar/index.scss +2 -2
  62. package/components/oxy-table/index.scss +5 -5
  63. package/components/oxy-table-col/index.scss +3 -3
  64. package/components/oxy-tabs/index.scss +14 -12
  65. package/components/oxy-tag/index.scss +111 -36
  66. package/components/oxy-textarea/index.scss +3 -3
  67. package/components/oxy-tooltip/index.scss +1 -1
  68. package/components/oxy-tree/index.scss +4 -4
  69. package/components/oxy-upload/index.scss +17 -17
  70. package/components/oxy-virtual-scroll/index.scss +1 -1
  71. package/components/oxy-voice-player/index.scss +68 -39
  72. package/global.d.ts +2 -0
  73. package/package.json +1 -1
  74. package/tags.json +1 -1
  75. package/web-types.json +1 -1
@@ -0,0 +1,366 @@
1
+ @import './../common/abstracts/_mixin.scss';
2
+ @import './../common/abstracts/variable.scss';
3
+
4
+ @include b(splitter-panel) {
5
+ position: relative;
6
+ min-width: 0;
7
+ min-height: 0;
8
+ overflow: visible;
9
+
10
+ @include e(content) {
11
+ position: relative;
12
+ z-index: 0;
13
+ width: 100%;
14
+ height: 100%;
15
+ overflow: hidden;
16
+ }
17
+
18
+ @include e(bar) {
19
+ position: relative;
20
+ z-index: 2;
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ flex-shrink: 0;
25
+ background-color: transparent;
26
+ transition: background-color 0.16s ease, box-shadow 0.16s ease;
27
+
28
+ &::before {
29
+ position: absolute;
30
+ z-index: 1;
31
+ content: '';
32
+ background-color: $-splitter-line-color;
33
+ border-radius: $-splitter-bar-radius;
34
+ transition: background-color 0.16s ease, opacity 0.16s ease;
35
+ }
36
+
37
+ &::after {
38
+ position: absolute;
39
+ z-index: 2;
40
+ content: '';
41
+ border-radius: $-splitter-bar-radius;
42
+ background-color: $-splitter-grip-active-color;
43
+ opacity: 0;
44
+ pointer-events: none;
45
+ transition: opacity 0.16s ease, transform 0.16s ease;
46
+ }
47
+
48
+ &.has-action {
49
+ z-index: 6;
50
+ }
51
+
52
+ @include m(horizontal) {
53
+ width: $-splitter-touch-hit-size;
54
+ height: 100%;
55
+ flex-direction: column;
56
+ margin-left: calc(#{$-splitter-touch-hit-size} / -2);
57
+ margin-right: calc(#{$-splitter-touch-hit-size} / -2);
58
+ touch-action: pan-y;
59
+
60
+ &::before {
61
+ width: 1px;
62
+ height: 100%;
63
+ left: 50%;
64
+ top: 0;
65
+ transform: translateX(-50%);
66
+ }
67
+
68
+ &::after {
69
+ width: calc(#{$-splitter-grip-size} * 2);
70
+ height: calc(#{$-splitter-grip-length} * 2);
71
+ left: 50%;
72
+ top: 50%;
73
+ transform: translate(-50%, -50%) scaleY(0.68);
74
+ }
75
+ }
76
+
77
+ @include m(vertical) {
78
+ width: 100%;
79
+ height: $-splitter-touch-hit-size;
80
+ flex-direction: row;
81
+ margin-top: calc(#{$-splitter-touch-hit-size} / -2);
82
+ margin-bottom: calc(#{$-splitter-touch-hit-size} / -2);
83
+ touch-action: pan-x;
84
+
85
+ &::before {
86
+ width: 100%;
87
+ height: 1px;
88
+ left: 0;
89
+ top: 50%;
90
+ transform: translateY(-50%);
91
+ }
92
+
93
+ &::after {
94
+ width: calc(#{$-splitter-grip-length} * 2);
95
+ height: calc(#{$-splitter-grip-size} * 2);
96
+ left: 50%;
97
+ top: 50%;
98
+ transform: translate(-50%, -50%) scaleX(0.68);
99
+ }
100
+ }
101
+
102
+ @include when(draggable) {
103
+ background-color: transparent;
104
+
105
+ &::before {
106
+ opacity: 0.9;
107
+ }
108
+ }
109
+
110
+ @include when(static) {
111
+ opacity: 0.7;
112
+ }
113
+
114
+ @include when(moving) {
115
+ background-color: transparent;
116
+ box-shadow: none;
117
+
118
+ &.oxy-splitter-panel__bar--horizontal {
119
+ background: linear-gradient(
120
+ to right,
121
+ transparent calc(50% - (#{$-splitter-grip-size} * 3)),
122
+ #{$-splitter-bar-active-bg} calc(50% - (#{$-splitter-grip-size} * 3)),
123
+ #{$-splitter-bar-active-bg} calc(50% + (#{$-splitter-grip-size} * 3)),
124
+ transparent calc(50% + (#{$-splitter-grip-size} * 3))
125
+ );
126
+ }
127
+
128
+ &.oxy-splitter-panel__bar--vertical {
129
+ background: linear-gradient(
130
+ to bottom,
131
+ transparent calc(50% - (#{$-splitter-grip-size} * 3)),
132
+ #{$-splitter-bar-active-bg} calc(50% - (#{$-splitter-grip-size} * 3)),
133
+ #{$-splitter-bar-active-bg} calc(50% + (#{$-splitter-grip-size} * 3)),
134
+ transparent calc(50% + (#{$-splitter-grip-size} * 3))
135
+ );
136
+ }
137
+
138
+ &::before {
139
+ background-color: $-splitter-line-color;
140
+ opacity: 0.8;
141
+ }
142
+
143
+ &::after {
144
+ opacity: 0.14;
145
+ transform: translate(-50%, -50%) scale(0.82);
146
+ }
147
+ }
148
+
149
+ }
150
+
151
+ @include e(action) {
152
+ position: absolute;
153
+ z-index: 20;
154
+ display: flex;
155
+ align-items: center;
156
+ justify-content: center;
157
+ width: calc(#{$-splitter-action-size} - 2rpx);
158
+ height: calc(#{$-splitter-action-size} * 1.72);
159
+ border-radius: $-splitter-action-radius;
160
+ border: 1px solid $-splitter-action-border;
161
+ background-color: $-splitter-action-bg;
162
+ box-shadow: $-splitter-action-shadow;
163
+ color: $-splitter-arrow-color;
164
+ transition: opacity 0.16s ease, box-shadow 0.16s ease;
165
+
166
+ .oxy-splitter-panel__bar--horizontal & {
167
+ left: 50%;
168
+ top: 50%;
169
+ transform: translate(-50%, -50%);
170
+ }
171
+
172
+ .oxy-splitter-panel__bar--vertical & {
173
+ top: 50%;
174
+ left: 50%;
175
+ width: calc(#{$-splitter-action-size} * 1.72);
176
+ height: calc(#{$-splitter-action-size} - 2rpx);
177
+ transform: translate(-50%, -50%);
178
+ }
179
+
180
+ &:active {
181
+ opacity: 0.88;
182
+ }
183
+ }
184
+
185
+ @include e(action-group) {
186
+ position: absolute;
187
+ z-index: 20;
188
+ display: flex;
189
+ align-items: center;
190
+ justify-content: center;
191
+ border-radius: $-splitter-action-group-radius;
192
+ border: 1px solid $-splitter-action-border;
193
+ background-color: $-splitter-action-bg;
194
+ box-shadow: $-splitter-action-shadow;
195
+ overflow: hidden;
196
+ transition: opacity 0.16s ease, box-shadow 0.16s ease;
197
+
198
+ .oxy-splitter-panel__bar--horizontal & {
199
+ left: 50%;
200
+ top: 50%;
201
+ width: calc(#{$-splitter-action-size} * 1.9);
202
+ height: calc(#{$-splitter-action-size} * 1.18);
203
+ transform: translate(-50%, -50%);
204
+ flex-direction: row;
205
+ }
206
+
207
+ .oxy-splitter-panel__bar--vertical & {
208
+ left: 50%;
209
+ top: 50%;
210
+ width: calc(#{$-splitter-action-size} * 1.18);
211
+ height: calc(#{$-splitter-action-size} * 1.9);
212
+ transform: translate(-50%, -50%);
213
+ flex-direction: column;
214
+ }
215
+ }
216
+
217
+ @include e(action-segment) {
218
+ display: flex;
219
+ align-items: center;
220
+ justify-content: center;
221
+ flex: 1;
222
+ height: 100%;
223
+ color: $-splitter-arrow-color;
224
+
225
+ &:active {
226
+ background-color: $-splitter-action-active-bg;
227
+ }
228
+ }
229
+
230
+ @include e(action-separator) {
231
+ flex-shrink: 0;
232
+ background-color: $-splitter-action-border;
233
+
234
+ .oxy-splitter-panel__bar--horizontal & {
235
+ width: 1px;
236
+ height: 64%;
237
+ }
238
+
239
+ .oxy-splitter-panel__bar--vertical & {
240
+ width: 64%;
241
+ height: 1px;
242
+ }
243
+ }
244
+
245
+ @include e(grip) {
246
+ position: absolute;
247
+ z-index: 3;
248
+ pointer-events: none;
249
+ border-radius: $-splitter-grip-radius;
250
+ background-color: $-splitter-grip-color;
251
+ opacity: 0.9;
252
+ transition: background-color 0.16s ease, opacity 0.16s ease, transform 0.16s ease;
253
+
254
+ .oxy-splitter-panel__bar--horizontal & {
255
+ top: 50%;
256
+ left: 50%;
257
+ width: $-splitter-grip-size;
258
+ height: $-splitter-grip-length;
259
+ transform: translate(-50%, -50%);
260
+ box-shadow:
261
+ 0 calc(#{$-splitter-grip-gap} * -1) 0 0 $-splitter-grip-color,
262
+ 0 $-splitter-grip-gap 0 0 $-splitter-grip-color;
263
+ }
264
+
265
+ .oxy-splitter-panel__bar--vertical & {
266
+ top: 50%;
267
+ left: 50%;
268
+ width: $-splitter-grip-length;
269
+ height: $-splitter-grip-size;
270
+ transform: translate(-50%, -50%);
271
+ box-shadow:
272
+ calc(#{$-splitter-grip-gap} * -1) 0 0 0 $-splitter-grip-color,
273
+ $-splitter-grip-gap 0 0 0 $-splitter-grip-color;
274
+ }
275
+ }
276
+
277
+ .oxy-splitter-panel__bar.is-moving {
278
+ .oxy-splitter-panel__grip {
279
+ background-color: $-splitter-grip-active-color;
280
+ opacity: 1;
281
+
282
+ .oxy-splitter-panel__bar--horizontal & {
283
+ box-shadow:
284
+ 0 calc(#{$-splitter-grip-gap} * -1) 0 0 $-splitter-grip-active-color,
285
+ 0 $-splitter-grip-gap 0 0 $-splitter-grip-active-color;
286
+ }
287
+
288
+ .oxy-splitter-panel__bar--vertical & {
289
+ box-shadow:
290
+ calc(#{$-splitter-grip-gap} * -1) 0 0 0 $-splitter-grip-active-color,
291
+ $-splitter-grip-gap 0 0 0 $-splitter-grip-active-color;
292
+ }
293
+ }
294
+
295
+ .oxy-splitter-panel__action,
296
+ .oxy-splitter-panel__action-group {
297
+ opacity: 0.76;
298
+ }
299
+ }
300
+
301
+ :deep(.oxy-splitter-panel__icon) {
302
+ display: inline-flex;
303
+ align-items: center;
304
+ justify-content: center;
305
+ }
306
+
307
+ }
308
+
309
+ .oxy-theme-dark {
310
+ @include b(splitter-panel) {
311
+ @include e(bar) {
312
+ background-color: transparent;
313
+
314
+ &::before {
315
+ background-color: $-splitter-bar-dark-border;
316
+ }
317
+
318
+ &::after {
319
+ background-color: $-splitter-grip-dark-color;
320
+ }
321
+
322
+ &.is-moving {
323
+ box-shadow: 0 0 0 1px $-splitter-bar-dark-border;
324
+ }
325
+ }
326
+
327
+ @include e(action) {
328
+ background-color: $-dark-background4;
329
+ border-color: $-dark-border-color;
330
+ color: $-dark-color3;
331
+ }
332
+
333
+ @include e(action-group) {
334
+ background-color: $-dark-background4;
335
+ border-color: $-dark-border-color;
336
+ }
337
+
338
+ @include e(action-segment) {
339
+ color: $-dark-color3;
340
+
341
+ &:active {
342
+ background-color: $-splitter-action-dark-active-bg;
343
+ }
344
+ }
345
+
346
+ @include e(action-separator) {
347
+ background-color: $-dark-border-color;
348
+ }
349
+
350
+ @include e(grip) {
351
+ background-color: $-splitter-grip-dark-color;
352
+
353
+ .oxy-splitter-panel__bar--horizontal & {
354
+ box-shadow:
355
+ 0 calc(#{$-splitter-grip-gap} * -1) 0 0 $-splitter-grip-dark-color,
356
+ 0 $-splitter-grip-gap 0 0 $-splitter-grip-dark-color;
357
+ }
358
+
359
+ .oxy-splitter-panel__bar--vertical & {
360
+ box-shadow:
361
+ calc(#{$-splitter-grip-gap} * -1) 0 0 0 $-splitter-grip-dark-color,
362
+ $-splitter-grip-gap 0 0 0 $-splitter-grip-dark-color;
363
+ }
364
+ }
365
+ }
366
+ }