stellar-ui-plus 1.24.26 → 1.25.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 (44) hide show
  1. package/components/ste-app-update/method.ts +1 -0
  2. package/components/ste-app-update/props.ts +11 -11
  3. package/components/ste-app-update/ste-app-update.vue +2 -7
  4. package/components/ste-radio/README.md +1 -1
  5. package/components/ste-radio/ste-radio.vue +2 -7
  6. package/components/ste-radio-group/ste-radio-group.vue +2 -1
  7. package/components/ste-select-seat/ATTRIBUTES.md +18 -0
  8. package/components/ste-select-seat/README.md +280 -0
  9. package/components/ste-select-seat/canvasUtils.ts +42 -0
  10. package/components/ste-select-seat/config.json +5 -0
  11. package/components/ste-select-seat/internals/gridUtils.ts +23 -0
  12. package/components/ste-select-seat/internals/seatLayout.ts +169 -0
  13. package/components/ste-select-seat/internals/useSeatInteraction.ts +540 -0
  14. package/components/ste-select-seat/props.ts +37 -0
  15. package/components/ste-select-seat/ste-select-seat.easycom.json +62 -0
  16. package/components/ste-select-seat/ste-select-seat.vue +517 -0
  17. package/components/ste-select-seat/types.d.ts +33 -0
  18. package/components/ste-select-seat/useData.ts +179 -0
  19. package/components/ste-select-seat/useTouchCompat.ts +89 -0
  20. package/components/ste-simple-calendar/ATTRIBUTES.md +17 -0
  21. package/components/ste-simple-calendar/README.md +112 -0
  22. package/components/ste-simple-calendar/config.json +5 -0
  23. package/components/ste-simple-calendar/props.ts +32 -0
  24. package/components/ste-simple-calendar/ste-simple-calendar.easycom.json +60 -0
  25. package/components/ste-simple-calendar/ste-simple-calendar.vue +265 -0
  26. package/components/ste-simple-calendar/type.d.ts +30 -0
  27. package/components/ste-simple-calendar/useData.ts +60 -0
  28. package/components/ste-skeleton/ATTRIBUTES.md +7 -0
  29. package/components/ste-skeleton/README.md +82 -0
  30. package/components/ste-skeleton/config.json +5 -0
  31. package/components/ste-skeleton/props.ts +7 -0
  32. package/components/ste-skeleton/ste-skeleton.easycom.json +38 -0
  33. package/components/ste-skeleton/ste-skeleton.vue +90 -0
  34. package/components/ste-slide-verify/ATTRIBUTES.md +27 -0
  35. package/components/ste-slide-verify/README.md +118 -0
  36. package/components/ste-slide-verify/config.json +5 -0
  37. package/components/ste-slide-verify/props.ts +43 -0
  38. package/components/ste-slide-verify/ste-slide-verify.easycom.json +119 -0
  39. package/components/ste-slide-verify/ste-slide-verify.vue +535 -0
  40. package/index.ts +8 -0
  41. package/package.json +1 -1
  42. package/types/components.d.ts +8 -0
  43. package/types/index.d.ts +2 -0
  44. package/types/refComponents.d.ts +8 -0
@@ -0,0 +1,535 @@
1
+ <script setup lang="ts">
2
+ import { computed, getCurrentInstance, nextTick, onBeforeUnmount, onMounted, ref, watch, type ComponentPublicInstance, type CSSProperties } from 'vue';
3
+ import { useColorStore } from '../../store/color';
4
+ import utils from '../../utils/utils';
5
+ import propsData, { slideVerifyEmits, type SlideVerifyDetail } from './props';
6
+
7
+ const componentName = `ste-slide-verify`;
8
+
9
+ defineOptions({
10
+ name: componentName,
11
+ options: {
12
+ virtualHost: true,
13
+ },
14
+ });
15
+
16
+ const props = defineProps(propsData);
17
+ const emits = defineEmits(slideVerifyEmits);
18
+
19
+ const { getColor } = useColorStore();
20
+ const themeColor = getColor()?.steThemeColor || '#0090FF';
21
+ const instance = getCurrentInstance() as unknown as ComponentPublicInstance;
22
+
23
+ const isDragging = ref(false);
24
+ const isSuccess = ref(false);
25
+ const isFail = ref(false);
26
+ const trackWidth = ref(0);
27
+ const sliderLeft = ref(0);
28
+ const startX = ref(0);
29
+ const startLeft = ref(0);
30
+ const imageSuccessProgress = ref(1);
31
+ const currentAngle = ref(0);
32
+ const disableImageTransition = ref(false);
33
+
34
+ let failTimer: ReturnType<typeof setTimeout> | null = null;
35
+
36
+ const sliderSizePx = computed(() => {
37
+ const size = Number(utils.formatPx(props.size, 'num'));
38
+ return Number.isNaN(size) ? 0 : size;
39
+ });
40
+
41
+ const maxSliderLeft = computed(() => {
42
+ const max = trackWidth.value - sliderSizePx.value;
43
+ return max > 0 ? max : 0;
44
+ });
45
+
46
+ const progress = computed(() => {
47
+ if (!maxSliderLeft.value) return 0;
48
+ return sliderLeft.value / maxSliderLeft.value;
49
+ });
50
+
51
+ const currentText = computed(() => {
52
+ if (isSuccess.value) return props.successText;
53
+ if (isFail.value) return props.failText;
54
+ if (props.text) return props.text;
55
+ return props.mode === 'image' ? '向右滑动转动图片' : '向右滑动验证';
56
+ });
57
+
58
+ const sliderIconColor = computed(() => {
59
+ if (isSuccess.value || isFail.value) return '#ffffff';
60
+ return activeVisualColor.value;
61
+ });
62
+
63
+ const activeColor = computed(() => {
64
+ return props.activeColor || themeColor;
65
+ });
66
+
67
+ const activeVisualColor = computed(() => {
68
+ const match = String(activeColor.value).match(/(#[0-9a-fA-F]{3,8}|rgba?\([^)]+\))/);
69
+ return match ? match[1] : themeColor;
70
+ });
71
+
72
+ const inactiveColor = computed(() => {
73
+ return props.inactiveColor || '#f4f4f5';
74
+ });
75
+
76
+ const sliderBorderColor = computed(() => {
77
+ return isDragging.value ? utils.Color.formatColor(activeVisualColor.value, 0.12) : 'transparent';
78
+ });
79
+
80
+ const textColor = computed(() => {
81
+ if (isSuccess.value) return props.successColor;
82
+ if (isFail.value) return props.failColor;
83
+ return isDragging.value ? activeVisualColor.value : '#5f6b7a';
84
+ });
85
+
86
+ const rootClass = computed(() => {
87
+ let className = '';
88
+ if (isDragging.value) className += ' ste-slide-verify-dragging';
89
+ if (isSuccess.value) className += ' ste-slide-verify-success';
90
+ if (isFail.value) className += ' ste-slide-verify-fail';
91
+ if (props.disabled) className += ' ste-slide-verify-disabled';
92
+ if (props.mode === 'image') className += ' ste-slide-verify-image-mode';
93
+ return className;
94
+ });
95
+
96
+ const rootStyle = computed(() => {
97
+ return {
98
+ '--slide-verify-size': utils.addUnit(props.size),
99
+ '--slide-verify-active-color': activeColor.value,
100
+ '--slide-verify-inactive-color': inactiveColor.value,
101
+ '--slide-verify-success-color': props.successColor,
102
+ '--slide-verify-fail-color': props.failColor,
103
+ '--slide-verify-text-color': textColor.value,
104
+ };
105
+ });
106
+
107
+ const trackStyle = computed(() => {
108
+ const style: CSSProperties = {
109
+ height: utils.addUnit(props.size),
110
+ background: inactiveColor.value,
111
+ };
112
+ return style;
113
+ });
114
+
115
+ const progressStyle = computed(() => {
116
+ const style: CSSProperties = {
117
+ width: `${Math.min(trackWidth.value, sliderLeft.value + sliderSizePx.value / 2)}px`,
118
+ opacity: isSuccess.value || isFail.value ? 0.28 : isDragging.value ? 0.22 : 0.16,
119
+ };
120
+
121
+ if (isSuccess.value) {
122
+ style.background = props.successColor;
123
+ } else if (isFail.value) {
124
+ style.background = props.failColor;
125
+ } else {
126
+ style.background = activeVisualColor.value;
127
+ }
128
+
129
+ return style;
130
+ });
131
+
132
+ const sliderStyle = computed(() => {
133
+ const style: CSSProperties = {
134
+ width: `${sliderSizePx.value}px`,
135
+ height: utils.addUnit(props.size),
136
+ left: `${sliderLeft.value}px`,
137
+ background: '#ffffff',
138
+ borderColor: sliderBorderColor.value,
139
+ color: sliderIconColor.value,
140
+ };
141
+
142
+ if (isSuccess.value) {
143
+ style.background = props.successColor;
144
+ style.borderColor = props.successColor;
145
+ style.color = '#ffffff';
146
+ } else if (isFail.value) {
147
+ style.background = props.failColor;
148
+ style.borderColor = props.failColor;
149
+ style.color = '#ffffff';
150
+ }
151
+
152
+ return style;
153
+ });
154
+
155
+ const textStyle = computed(() => {
156
+ return {} as CSSProperties;
157
+ });
158
+
159
+ const imageStyle = computed(() => {
160
+ return {
161
+ width: utils.addUnit(props.imageSize),
162
+ height: utils.addUnit(props.imageSize),
163
+ transform: `rotate(${currentAngle.value}deg)`,
164
+ transition: disableImageTransition.value ? 'none' : undefined,
165
+ };
166
+ });
167
+
168
+ function setImageAngle(angle: number, immediate = false) {
169
+ if (!immediate) {
170
+ currentAngle.value = angle;
171
+ return;
172
+ }
173
+
174
+ disableImageTransition.value = true;
175
+ currentAngle.value = angle;
176
+
177
+ nextTick(() => {
178
+ setTimeout(() => {
179
+ disableImageTransition.value = false;
180
+ }, 0);
181
+ });
182
+ }
183
+
184
+ function getRandomImageSuccessProgress() {
185
+ return Number((Math.random() * 0.54 + 0.23).toFixed(4));
186
+ }
187
+
188
+ function normalizeAngle(angle: number) {
189
+ const result = angle % 360;
190
+ return result >= 0 ? result : result + 360;
191
+ }
192
+
193
+ function clearFailTimer() {
194
+ if (failTimer) {
195
+ clearTimeout(failTimer);
196
+ failTimer = null;
197
+ }
198
+ }
199
+
200
+ function buildDetail(): SlideVerifyDetail {
201
+ return {
202
+ mode: props.mode,
203
+ progress: progress.value,
204
+ angle: normalizeAngle(currentAngle.value),
205
+ left: sliderLeft.value,
206
+ maxLeft: maxSliderLeft.value,
207
+ };
208
+ }
209
+
210
+ function getImageSuccessLeft() {
211
+ return Number((maxSliderLeft.value * imageSuccessProgress.value).toFixed(2));
212
+ }
213
+
214
+ function setSuccessState() {
215
+ clearFailTimer();
216
+ isDragging.value = false;
217
+ isFail.value = false;
218
+ isSuccess.value = true;
219
+ if (props.mode === 'image') {
220
+ sliderLeft.value = getImageSuccessLeft();
221
+ setImageAngle(0, true);
222
+ } else {
223
+ sliderLeft.value = maxSliderLeft.value;
224
+ currentAngle.value = 0;
225
+ }
226
+ }
227
+
228
+ function setDefaultState() {
229
+ clearFailTimer();
230
+ isDragging.value = false;
231
+ isSuccess.value = false;
232
+ isFail.value = false;
233
+ sliderLeft.value = 0;
234
+ startLeft.value = 0;
235
+ startX.value = 0;
236
+ if (props.mode === 'image') {
237
+ imageSuccessProgress.value = getRandomImageSuccessProgress();
238
+ setImageAngle(Number((imageSuccessProgress.value * 360).toFixed(2)), true);
239
+ } else {
240
+ imageSuccessProgress.value = 1;
241
+ currentAngle.value = 0;
242
+ }
243
+ }
244
+
245
+ function syncModelValue(value: boolean) {
246
+ if (value) {
247
+ setSuccessState();
248
+ } else if (!isDragging.value) {
249
+ setDefaultState();
250
+ }
251
+ }
252
+
253
+ async function init() {
254
+ await nextTick();
255
+ const rect = await utils.querySelector<false>('.ste-slide-verify-track', instance);
256
+ trackWidth.value = rect?.width || 0;
257
+ syncModelValue(props.modelValue);
258
+ }
259
+
260
+ function reset() {
261
+ setDefaultState();
262
+ }
263
+
264
+ function checkVerification() {
265
+ if (props.mode === 'slide') {
266
+ return progress.value >= 1;
267
+ }
268
+
269
+ const angle = normalizeAngle(currentAngle.value);
270
+ return angle <= props.angleThreshold || angle >= 360 - props.angleThreshold;
271
+ }
272
+
273
+ function getClientX(event: TouchEvent | MouseEvent) {
274
+ if ('touches' in event) {
275
+ return event.touches[0]?.clientX ?? startX.value;
276
+ }
277
+ return event.clientX;
278
+ }
279
+
280
+ function updateByClientX(clientX: number) {
281
+ if (!maxSliderLeft.value) return;
282
+ let left = startLeft.value + clientX - startX.value;
283
+ if (left < 0) left = 0;
284
+ if (left > maxSliderLeft.value) left = maxSliderLeft.value;
285
+
286
+ sliderLeft.value = left;
287
+
288
+ if (props.mode === 'image') {
289
+ currentAngle.value = Number(normalizeAngle((imageSuccessProgress.value - progress.value) * 360).toFixed(2));
290
+ }
291
+
292
+ emits('change', buildDetail());
293
+ }
294
+
295
+ function touchStart(event: TouchEvent | MouseEvent) {
296
+ if (props.disabled || isSuccess.value || isFail.value) return;
297
+
298
+ clearFailTimer();
299
+ isFail.value = false;
300
+ isDragging.value = true;
301
+ startX.value = getClientX(event);
302
+ startLeft.value = sliderLeft.value;
303
+ }
304
+
305
+ function touchMove(event: TouchEvent | MouseEvent) {
306
+ if (!isDragging.value || props.disabled || isSuccess.value || isFail.value) return;
307
+ updateByClientX(getClientX(event));
308
+ }
309
+
310
+ function touchEnd() {
311
+ // #ifdef WEB
312
+ removeListenner();
313
+ // #endif
314
+
315
+ if (!isDragging.value || props.disabled || isSuccess.value || isFail.value) return;
316
+
317
+ isDragging.value = false;
318
+
319
+ const detail = buildDetail();
320
+
321
+ if (checkVerification()) {
322
+ setSuccessState();
323
+ emits('update:modelValue', true);
324
+ emits('success', buildDetail());
325
+ return;
326
+ }
327
+
328
+ emits('update:modelValue', false);
329
+
330
+ if (props.showFail) {
331
+ isFail.value = true;
332
+ emits('fail', detail);
333
+
334
+ if (props.failDuration > 0) {
335
+ failTimer = setTimeout(() => {
336
+ reset();
337
+ }, props.failDuration);
338
+ }
339
+ } else {
340
+ emits('fail', detail);
341
+ reset();
342
+ }
343
+ }
344
+
345
+ function handleWindowResize() {
346
+ init();
347
+ }
348
+
349
+ // #ifdef WEB
350
+ function mouseDown(event: MouseEvent) {
351
+ if (props.disabled || isSuccess.value || isFail.value) return;
352
+ touchStart(event);
353
+ window.addEventListener('mousemove', touchMove);
354
+ window.addEventListener('mouseup', touchEnd);
355
+ }
356
+
357
+ function removeListenner() {
358
+ window.removeEventListener('mousemove', touchMove);
359
+ window.removeEventListener('mouseup', touchEnd);
360
+ }
361
+ // #endif
362
+
363
+ watch(
364
+ () => props.modelValue,
365
+ value => {
366
+ syncModelValue(value);
367
+ }
368
+ );
369
+
370
+ watch(
371
+ () => [props.mode, props.imageUrl, props.size, props.imageSize],
372
+ () => {
373
+ init();
374
+ }
375
+ );
376
+
377
+ onMounted(() => {
378
+ init();
379
+ uni.onWindowResize(handleWindowResize);
380
+ });
381
+
382
+ onBeforeUnmount(() => {
383
+ clearFailTimer();
384
+ uni.offWindowResize(handleWindowResize);
385
+ // #ifdef WEB
386
+ removeListenner();
387
+ // #endif
388
+ });
389
+
390
+ defineExpose({ init, reset });
391
+ </script>
392
+
393
+ <template>
394
+ <view class="ste-slide-verify-root" :class="[rootClass]" :style="[rootStyle]" data-test="slide-verify">
395
+ <image v-if="mode === 'image' && imageUrl" class="ste-slide-verify-image" :src="imageUrl" :style="[imageStyle]" mode="aspectFill"></image>
396
+ <view class="ste-slide-verify-track" :style="[trackStyle]">
397
+ <view class="ste-slide-verify-progress" :style="[progressStyle]"></view>
398
+ <view class="ste-slide-verify-text" :style="[textStyle]">
399
+ <ste-text>{{ currentText }}</ste-text>
400
+ </view>
401
+ <view
402
+ class="ste-slide-verify-slider"
403
+ :style="[sliderStyle]"
404
+ @touchstart.stop="touchStart"
405
+ @touchmove.stop.prevent="touchMove"
406
+ @touchend="touchEnd"
407
+ @touchcancel="touchEnd"
408
+ @mousedown.stop="mouseDown"
409
+ >
410
+ <view class="slider-icon">
411
+ <ste-icon v-if="isSuccess" code="&#xe67a;" :size="28" color="#ffffff"></ste-icon>
412
+ <template v-else>
413
+ <view class="slider-icon-item">
414
+ <ste-icon code="&#xe674;" :size="22" :color="sliderIconColor"></ste-icon>
415
+ </view>
416
+ <view class="slider-icon-item slider-icon-item-overlap">
417
+ <ste-icon code="&#xe674;" :size="22" :color="sliderIconColor"></ste-icon>
418
+ </view>
419
+ </template>
420
+ </view>
421
+ </view>
422
+ </view>
423
+ </view>
424
+ </template>
425
+
426
+ <style lang="scss" scoped>
427
+ .ste-slide-verify-root {
428
+ width: 100%;
429
+ display: flex;
430
+ flex-direction: column;
431
+ align-items: center;
432
+ row-gap: 28rpx;
433
+
434
+ &.ste-slide-verify-disabled {
435
+ opacity: 0.6;
436
+ }
437
+
438
+ .ste-slide-verify-image {
439
+ border-radius: 50%;
440
+ display: block;
441
+ object-fit: cover;
442
+ background: #ffffff;
443
+ box-shadow: 0 18rpx 40rpx rgba(15, 35, 95, 0.08);
444
+ transition: transform 0.15s linear;
445
+ }
446
+
447
+ .ste-slide-verify-track {
448
+ width: 100%;
449
+ position: relative;
450
+ overflow: hidden;
451
+ border-radius: 14rpx;
452
+ user-select: none;
453
+ box-sizing: border-box;
454
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
455
+ }
456
+
457
+ .ste-slide-verify-progress {
458
+ position: absolute;
459
+ left: 0;
460
+ top: 0;
461
+ bottom: 0;
462
+ border-radius: 14rpx;
463
+ transition:
464
+ width 0.25s ease,
465
+ opacity 0.25s ease,
466
+ background-color 0.25s ease;
467
+ }
468
+
469
+ .ste-slide-verify-text {
470
+ position: absolute;
471
+ inset: 0;
472
+ display: flex;
473
+ align-items: center;
474
+ justify-content: center;
475
+ padding: 0 56rpx;
476
+ color: var(--slide-verify-text-color);
477
+ font-size: 28rpx;
478
+ font-weight: 600;
479
+ letter-spacing: 0.4rpx;
480
+ z-index: 1;
481
+ pointer-events: none;
482
+ }
483
+
484
+ .ste-slide-verify-slider {
485
+ position: absolute;
486
+ left: 0;
487
+ top: 50%;
488
+ transform: translateY(-50%);
489
+ z-index: 2;
490
+ border-radius: 10rpx;
491
+ border-width: 1px;
492
+ border-style: solid;
493
+ display: flex;
494
+ align-items: center;
495
+ justify-content: center;
496
+ color: var(--slide-verify-active-color);
497
+ transition:
498
+ left 0.3s ease,
499
+ background-color 0.3s ease,
500
+ border-color 0.3s ease;
501
+
502
+ .slider-icon {
503
+ display: flex;
504
+ align-items: center;
505
+ justify-content: center;
506
+ }
507
+
508
+ .slider-icon-item {
509
+ display: flex;
510
+ align-items: center;
511
+ justify-content: center;
512
+ }
513
+
514
+ .slider-icon-item-overlap {
515
+ margin-left: -14rpx;
516
+ }
517
+ }
518
+
519
+ &.ste-slide-verify-dragging {
520
+ .ste-slide-verify-progress,
521
+ .ste-slide-verify-slider,
522
+ .ste-slide-verify-image {
523
+ transition: none;
524
+ }
525
+
526
+ .ste-slide-verify-slider {
527
+ box-shadow: none;
528
+ }
529
+ }
530
+
531
+ &.ste-slide-verify-image-mode {
532
+ row-gap: 34rpx;
533
+ }
534
+ }
535
+ </style>
package/index.ts CHANGED
@@ -116,8 +116,16 @@ import steSearchBox from "./components/ste-search-box/ste-search-box.vue"
116
116
  export const SteSearchBox = steSearchBox
117
117
  import steSelect from "./components/ste-select/ste-select.vue"
118
118
  export const SteSelect = steSelect
119
+ import steSelectSeat from "./components/ste-select-seat/ste-select-seat.vue"
120
+ export const SteSelectSeat = steSelectSeat
119
121
  import steSignature from "./components/ste-signature/ste-signature.vue"
120
122
  export const SteSignature = steSignature
123
+ import steSimpleCalendar from "./components/ste-simple-calendar/ste-simple-calendar.vue"
124
+ export const SteSimpleCalendar = steSimpleCalendar
125
+ import steSkeleton from "./components/ste-skeleton/ste-skeleton.vue"
126
+ export const SteSkeleton = steSkeleton
127
+ import steSlideVerify from "./components/ste-slide-verify/ste-slide-verify.vue"
128
+ export const SteSlideVerify = steSlideVerify
121
129
  import steSlider from "./components/ste-slider/ste-slider.vue"
122
130
  export const SteSlider = steSlider
123
131
  import steStep from "./components/ste-step/ste-step.vue"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stellar-ui-plus",
3
- "version": "1.24.26",
3
+ "version": "1.25.0",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -57,7 +57,11 @@ import steScrollToItem from "../components/ste-scroll-to-item/ste-scroll-to-item
57
57
  import steSearch from "../components/ste-search/ste-search.vue"
58
58
  import steSearchBox from "../components/ste-search-box/ste-search-box.vue"
59
59
  import steSelect from "../components/ste-select/ste-select.vue"
60
+ import steSelectSeat from "../components/ste-select-seat/ste-select-seat.vue"
60
61
  import steSignature from "../components/ste-signature/ste-signature.vue"
62
+ import steSimpleCalendar from "../components/ste-simple-calendar/ste-simple-calendar.vue"
63
+ import steSkeleton from "../components/ste-skeleton/ste-skeleton.vue"
64
+ import steSlideVerify from "../components/ste-slide-verify/ste-slide-verify.vue"
61
65
  import steSlider from "../components/ste-slider/ste-slider.vue"
62
66
  import steStep from "../components/ste-step/ste-step.vue"
63
67
  import steStepper from "../components/ste-stepper/ste-stepper.vue"
@@ -147,7 +151,11 @@ import steWatermark from "../components/ste-watermark/ste-watermark.vue"
147
151
  SteSearch: typeof steSearch;
148
152
  SteSearchBox: typeof steSearchBox;
149
153
  SteSelect: typeof steSelect;
154
+ SteSelectSeat: typeof steSelectSeat;
150
155
  SteSignature: typeof steSignature;
156
+ SteSimpleCalendar: typeof steSimpleCalendar;
157
+ SteSkeleton: typeof steSkeleton;
158
+ SteSlideVerify: typeof steSlideVerify;
151
159
  SteSlider: typeof steSlider;
152
160
  SteStep: typeof steStep;
153
161
  SteStepper: typeof steStepper;
package/types/index.d.ts CHANGED
@@ -109,3 +109,5 @@ export interface MessageBoxOptions {
109
109
  closeOnPressEscape?: boolean;
110
110
  closeOnBackdropClick?: boolean;
111
111
  }
112
+
113
+ export type TypeSkeleton = 'text' | 'image' | 'circle' | 'button';
@@ -57,7 +57,11 @@ import steScrollToItem from "../components/ste-scroll-to-item/ste-scroll-to-item
57
57
  import steSearch from "../components/ste-search/ste-search.vue"
58
58
  import steSearchBox from "../components/ste-search-box/ste-search-box.vue"
59
59
  import steSelect from "../components/ste-select/ste-select.vue"
60
+ import steSelectSeat from "../components/ste-select-seat/ste-select-seat.vue"
60
61
  import steSignature from "../components/ste-signature/ste-signature.vue"
62
+ import steSimpleCalendar from "../components/ste-simple-calendar/ste-simple-calendar.vue"
63
+ import steSkeleton from "../components/ste-skeleton/ste-skeleton.vue"
64
+ import steSlideVerify from "../components/ste-slide-verify/ste-slide-verify.vue"
61
65
  import steSlider from "../components/ste-slider/ste-slider.vue"
62
66
  import steStep from "../components/ste-step/ste-step.vue"
63
67
  import steStepper from "../components/ste-stepper/ste-stepper.vue"
@@ -142,7 +146,11 @@ export type RefScrollToItem = InstanceType<typeof steScrollToItem>
142
146
  export type RefSearch = InstanceType<typeof steSearch>
143
147
  export type RefSearchBox = InstanceType<typeof steSearchBox>
144
148
  export type RefSelect = InstanceType<typeof steSelect>
149
+ export type RefSelectSeat = InstanceType<typeof steSelectSeat>
145
150
  export type RefSignature = InstanceType<typeof steSignature>
151
+ export type RefSimpleCalendar = InstanceType<typeof steSimpleCalendar>
152
+ export type RefSkeleton = InstanceType<typeof steSkeleton>
153
+ export type RefSlideVerify = InstanceType<typeof steSlideVerify>
146
154
  export type RefSlider = InstanceType<typeof steSlider>
147
155
  export type RefStep = InstanceType<typeof steStep>
148
156
  export type RefStepper = InstanceType<typeof steStepper>