@opendesign-plus-test/components 0.0.1-rc.42 → 0.0.1-rc.45

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 (109) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +132 -112
  3. package/dist/components/OHeaderSearch.vue.d.ts +824 -506
  4. package/dist/components/OSourceCode.vue.d.ts +4 -6
  5. package/dist/components/activity/OActivityApproval.vue.d.ts +6 -10
  6. package/dist/components/activity/OActivityForm.vue.d.ts +3 -5
  7. package/dist/components/activity/OMyActivityCalendar.vue.d.ts +100 -46
  8. package/dist/components/activity/index.d.ts +56 -33
  9. package/dist/components/activity/types.d.ts +8 -1
  10. package/dist/components/events/config.d.ts +5 -18
  11. package/dist/components/events/types.d.ts +4 -1
  12. package/dist/components/header/OHeaderMobile.vue.d.ts +18 -11
  13. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +4 -1
  14. package/dist/components/header/index.d.ts +12 -5
  15. package/dist/components/header/types.d.ts +4 -0
  16. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +8 -12
  17. package/dist/components/meeting/OMeetingForm.vue.d.ts +3 -5
  18. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +45 -0
  19. package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +100 -46
  20. package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +1 -1
  21. package/dist/components/meeting/index.d.ts +817 -0
  22. package/dist/components/meeting/types.d.ts +82 -17
  23. package/dist/components/meeting/utils.d.ts +1 -1
  24. package/dist/components/search/OSearchInput.vue.d.ts +1003 -0
  25. package/dist/components/search/composables/useImageSearch.d.ts +48 -0
  26. package/dist/components/search/composables/useKeywordHighlight.d.ts +2 -0
  27. package/dist/components/search/composables/useSearchHistory.d.ts +14 -0
  28. package/dist/components/search/index.d.ts +590 -0
  29. package/dist/components/search/internal/HighlightText.vue.d.ts +9 -0
  30. package/dist/components/search/internal/SearchImageInput.vue.d.ts +716 -0
  31. package/dist/components/search/internal/SearchPanel.vue.d.ts +100 -0
  32. package/dist/components/search/types.d.ts +20 -0
  33. package/dist/components.cjs.js +43 -43
  34. package/dist/components.css +1 -1
  35. package/dist/components.es.js +11681 -10636
  36. package/dist/index.d.ts +1 -0
  37. package/package.json +3 -3
  38. package/src/assets/svg-icons/icon-delete-hover.svg +4 -0
  39. package/src/assets/svg-icons/icon-delete.svg +5 -1
  40. package/src/assets/svg-icons/icon-image-close.svg +4 -0
  41. package/src/assets/svg-icons/icon-image-upload.svg +3 -0
  42. package/src/assets/svg-icons/icon-image-zoomin.svg +3 -0
  43. package/src/assets/svg-icons/icon-refresh.svg +3 -0
  44. package/src/components/OBanner.vue +18 -18
  45. package/src/components/OCookieNotice.vue +21 -21
  46. package/src/components/OFooter.vue +18 -17
  47. package/src/components/OHeaderSearch.vue +402 -420
  48. package/src/components/OHeaderUser.vue +3 -2
  49. package/src/components/OSection.vue +4 -4
  50. package/src/components/OSourceCode.vue +8 -10
  51. package/src/components/activity/OActivityApproval.vue +32 -32
  52. package/src/components/activity/OActivityForm.vue +5 -5
  53. package/src/components/activity/OMyActivityCalendar.vue +66 -50
  54. package/src/components/activity/config.ts +1 -1
  55. package/src/components/activity/types.ts +8 -1
  56. package/src/components/common/ContentWrapper.vue +3 -3
  57. package/src/components/common/MoreText.vue +1 -1
  58. package/src/components/common/ThFilter.vue +7 -7
  59. package/src/components/element-plus/OElCookieNotice.vue +27 -27
  60. package/src/components/events/OEventsApply.vue +44 -44
  61. package/src/components/events/OEventsCalendar.vue +14 -14
  62. package/src/components/events/OEventsList.vue +53 -26
  63. package/src/components/events/config.ts +1 -1
  64. package/src/components/events/types.ts +4 -1
  65. package/src/components/header/OHeader.vue +2 -2
  66. package/src/components/header/OHeaderMobile.vue +8 -1
  67. package/src/components/header/components/HeaderContent.vue +67 -63
  68. package/src/components/header/components/HeaderNav.vue +4 -4
  69. package/src/components/header/components/HeaderNavMobile.vue +8 -5
  70. package/src/components/header/types.ts +4 -0
  71. package/src/components/meeting/OMeetingCalendar.vue +66 -54
  72. package/src/components/meeting/OMeetingForm.vue +70 -51
  73. package/src/components/meeting/OMeetingPlayback.vue +8 -8
  74. package/src/components/meeting/OMyMeetingCalendar.vue +56 -45
  75. package/src/components/meeting/OSigMeetingCalendar.vue +31 -28
  76. package/src/components/meeting/components/OMeetingCalendarList.vue +31 -26
  77. package/src/components/meeting/components/OMeetingCalendarSelector.vue +10 -6
  78. package/src/components/meeting/components/OMeetingDetail.vue +32 -18
  79. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +1 -1
  80. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +12 -12
  81. package/src/components/meeting/components/OSigMeetingAside.vue +8 -9
  82. package/src/components/meeting/types.ts +88 -17
  83. package/src/components/search/OSearchInput.vue +463 -0
  84. package/src/components/search/composables/useImageSearch.ts +157 -0
  85. package/src/components/search/composables/useKeywordHighlight.ts +30 -0
  86. package/src/components/search/composables/useSearchHistory.ts +75 -0
  87. package/src/components/search/index.ts +23 -0
  88. package/src/components/search/internal/HighlightText.vue +37 -0
  89. package/src/components/search/internal/SearchImageInput.vue +488 -0
  90. package/src/components/search/internal/SearchPanel.vue +430 -0
  91. package/src/components/search/types.ts +25 -0
  92. package/src/draft/Banner.vue +6 -6
  93. package/src/draft/ButtonCards.vue +1 -1
  94. package/src/draft/Feature.vue +6 -6
  95. package/src/draft/Footer.vue +29 -22
  96. package/src/draft/HorizontalAnchor.vue +4 -4
  97. package/src/draft/ItemSwiper.vue +2 -2
  98. package/src/draft/Logo.vue +3 -3
  99. package/src/draft/LogoCard.vue +2 -2
  100. package/src/draft/MultiCard.vue +1 -1
  101. package/src/draft/MultiIconCard.vue +1 -1
  102. package/src/draft/OInfoCard.vue +4 -4
  103. package/src/draft/Section.vue +4 -4
  104. package/src/draft/SingleTabCard.vue +1 -1
  105. package/src/draft/SliderCard.vue +4 -3
  106. package/src/i18n/en.ts +10 -0
  107. package/src/i18n/zh.ts +10 -0
  108. package/src/index.ts +1 -0
  109. package/vite.config.ts +4 -3
@@ -14,18 +14,19 @@ import {
14
14
  ORadioGroup,
15
15
  OSelect,
16
16
  OSwitch,
17
- OTextarea,
17
+ OTextarea, RulesT,
18
18
  useMessage,
19
19
  } from '@opensig/opendesign';
20
20
  import IconHelp from '~icons/meeting/icon-help.svg';
21
21
  import IconTip from '~icons/meeting/icon-tip.svg';
22
- import { MeetingFormPropsT, MeetingGroupType, MeetingPostT, OptionItemT } from './types';
22
+ import { CycleSubItemT, MeetingFormPropsT, MeetingGroupType, MeetingPostT, OptionItemT, PlatformT } from './types';
23
23
  import dayjs from 'dayjs';
24
24
  import { findLabelFromOptions, formatDateNumber, getDateNumber } from './utils';
25
25
  import { EMAIL_REGEX, INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK } from './config';
26
26
  import OMeetingCalendarSelector from './components/OMeetingCalendarSelector.vue';
27
27
  import { useScreen } from '@opendesign-plus/composables';
28
28
  import { useMeetingConfig } from './composables/useMeetingConfig';
29
+ import { ValidatorResultT } from '@opensig/opendesign/lib/form/types';
29
30
 
30
31
  const { t, locale, cycleTypeOptions0, intervalWeekOptions, getPlatformLabel } = useMeetingConfig();
31
32
 
@@ -43,11 +44,11 @@ const weekOptions = intervalWeekOptions;
43
44
  const intervalTypeMax = computed(() => {
44
45
  return findLabelFromOptions(form.value.cycle_type, cycleTypeOptions.value, 'max');
45
46
  });
46
- const initForm = {
47
+ const initForm: MeetingPostT = {
47
48
  is_record: false,
48
49
  agenda: '',
49
50
  email_list: '',
50
- platform: '',
51
+ platform: 'WELINK',
51
52
  topic: '',
52
53
  group_name: '',
53
54
  etherpad: '',
@@ -62,10 +63,10 @@ const initForm = {
62
63
  cycle_point: [],
63
64
  };
64
65
  const form = ref<MeetingPostT>(Object.assign({}, initForm) as unknown as MeetingPostT); // 表单数据
65
- const formRef = ref(null); // 表单实例
66
+ const formRef = ref<any>(null); // 表单实例
66
67
  const loading = ref(false); // 提交状态
67
68
  // 表单校验规则
68
- const rules = computed(() => {
69
+ const rules = computed<Record<string, RulesT[]>>(() => {
69
70
  return {
70
71
  topic: [
71
72
  { required: true, message: t('meeting.enterMeetingName') },
@@ -98,23 +99,36 @@ const rules = computed(() => {
98
99
  }],
99
100
  etherpad: [{ required: true, message: t('meeting.enterEtherpad') }],
100
101
  date: [{ required: true, message: t('meeting.selectDate') }],
102
+ platform: [{ required: true, message: t('meeting.selectPlatform') }],
101
103
  time: [
102
104
  {
103
- validator: (value: string) => {
105
+ validator: (value: any) => {
104
106
  const { is_cycle, cycle_type, cycle_interval, cycle_point, date, date_range } = form.value;
105
107
  if (is_cycle) {
106
- const msg = {
107
- type: 'danger',
108
- message: t('meeting.finishMeetingConfig'),
109
- };
108
+ const msg = t('meeting.finishMeetingConfig');
110
109
  if (cycle_type === INTERVAL_DAY) {
111
- if (!cycle_interval) return msg;
110
+ if (!cycle_interval) {
111
+ return {
112
+ type: 'danger',
113
+ message: msg,
114
+ };
115
+ }
112
116
  }
113
117
  if (cycle_type === INTERVAL_WEEK) {
114
- if (!cycle_interval || !cycle_point?.length) return msg;
118
+ if (!cycle_interval || !cycle_point?.length) {
119
+ return {
120
+ type: 'danger',
121
+ message: msg,
122
+ };
123
+ }
115
124
  }
116
125
  if (cycle_type === INTERVAL_MONTH) {
117
- if (!cycle_interval || !cycle_point?.length) return msg;
126
+ if (!cycle_interval || !cycle_point?.length) {
127
+ return {
128
+ type: 'danger',
129
+ message: msg,
130
+ };
131
+ }
118
132
  }
119
133
  if (!date_range?.length) {
120
134
  return {
@@ -129,7 +143,7 @@ const rules = computed(() => {
129
143
  const weeks = new Set();
130
144
  while (!dayjs(start).isAfter(dayjs(end))) {
131
145
  weeks.add(dayjs(start).day());
132
- start = dayjs(start).add(1, 'day');
146
+ start = dayjs(start).add(1, 'day').format('YYYY-MM-DD');
133
147
  }
134
148
  if (cycle_point.every((point) => !weeks.has(point))) {
135
149
  return {
@@ -142,7 +156,7 @@ const rules = computed(() => {
142
156
  const days = new Set();
143
157
  while (!dayjs(start).isAfter(dayjs(end))) {
144
158
  days.add(dayjs(start).date());
145
- start = dayjs(start).add(1, 'day');
159
+ start = dayjs(start).add(1, 'day').format('YYYY-MM-DD');
146
160
  }
147
161
  if (cycle_point.every((point) => !days.has(point))) {
148
162
  return {
@@ -165,7 +179,7 @@ const rules = computed(() => {
165
179
  message: t('meeting.selectMeetingTime'),
166
180
  };
167
181
  }
168
- const arr = value.split('-').map((v) => v.split(':').map(Number));
182
+ const arr = value.split('-').map((v: string) => v.split(':').map(Number));
169
183
  if (arr[0][0] > arr[1][0] || (arr[0][0] === arr[1][0] && arr[0][1] >= arr[1][1])) {
170
184
  return {
171
185
  type: 'danger',
@@ -173,8 +187,8 @@ const rules = computed(() => {
173
187
  };
174
188
  }
175
189
  if (!form.value.is_cycle && form.value.date && form.value.start) {
176
- const start = dayjs(`${ form.value.date } ${ form.value.start }`);
177
- if (new Date(start).getTime() < new Date().getTime()) {
190
+ const start = `${ form.value.date } ${ form.value.start }`;
191
+ if (dayjs(start).isBefore(dayjs())) {
178
192
  return {
179
193
  type: 'danger',
180
194
  message: t('meeting.startTimeBeforeEndTime'),
@@ -185,12 +199,11 @@ const rules = computed(() => {
185
199
  triggers: ['blur', 'change'],
186
200
  },
187
201
  ],
188
- platform: [{ required: true, message: t('meeting.selectPlatform') }],
189
202
  email_list: [
190
203
  {
191
- validator: (value: string) => {
204
+ validator: (value: any) => {
192
205
  if (props.isEdit) {
193
- return {};
206
+ return {} as unknown as ValidatorResultT;
194
207
  }
195
208
  const str = value.replaceAll(' ', '').replaceAll(',', ';') || '';
196
209
  if (str.length) {
@@ -200,7 +213,7 @@ const rules = computed(() => {
200
213
  message: t('meeting.emailTooLong'),
201
214
  };
202
215
  }
203
- const list = str.split(';') || [];
216
+ const list: string[] = str.split(';') || [];
204
217
  if (list.some((v) => !EMAIL_REGEX.test(v))) {
205
218
  return {
206
219
  type: 'danger',
@@ -233,7 +246,7 @@ const getSigOptions = async () => {
233
246
  return;
234
247
  }
235
248
  const res = await props.getGroupsRequest();
236
- sigOptions.value = res.map((v) => ({ label: v.group_name, value: v.group_name, ...v }));
249
+ sigOptions.value = res.map((v: OptionItemT) => ({ ...v, label: v.group_name, value: v.group_name }));
237
250
  if (props.data) {
238
251
  changeSig(form.value.group_name);
239
252
  }
@@ -245,9 +258,9 @@ const getPlatformOptions = async () => {
245
258
  return;
246
259
  }
247
260
  const res = await props.getPlatformsRequest();
248
- typeOptions.value = res.map((v) => ({ label: getPlatformLabel(v), value: v }));
261
+ typeOptions.value = res.map((v: string) => ({ label: getPlatformLabel(v), value: v }));
249
262
  if (!props.data) {
250
- form.value.platform = typeOptions.value[0].value;
263
+ form.value.platform = typeOptions.value[0].value as unknown as PlatformT;
251
264
  }
252
265
  };
253
266
 
@@ -256,7 +269,7 @@ watch(
256
269
  () => props.data,
257
270
  (data) => {
258
271
  if (data) {
259
- const sub = data?.cycle_sub?.find((v) => v.sub_id === props.subId) || {};
272
+ const sub = data?.cycle_sub?.find((v) => v.sub_id === props.subId) || {} as unknown as CycleSubItemT;
260
273
  const { mid, date, start, end, sub_id } = sub;
261
274
  Object.assign(
262
275
  form.value,
@@ -311,8 +324,8 @@ watch(
311
324
  );
312
325
  const cancel = () => {
313
326
  form.value = Object.assign({}, initForm);
314
- formRef.value.clearValidate();
315
- formRef.value.resetFields();
327
+ formRef.value?.clearValidate?.();
328
+ formRef.value?.resetFields?.();
316
329
  emits('cancel');
317
330
  };
318
331
 
@@ -331,7 +344,7 @@ const confirm = async () => {
331
344
  try {
332
345
  loading.value = true;
333
346
  const valid = await formRef.value.validate();
334
- if (valid.some((v) => !!v)) {
347
+ if (!valid || valid.some((v: any) => !!v)) {
335
348
  return;
336
349
  }
337
350
  const {
@@ -359,7 +372,7 @@ const confirm = async () => {
359
372
  group_name,
360
373
  platform,
361
374
  is_cycle,
362
- } as MeetingPostT;
375
+ } as MeetingPostT as unknown as any;
363
376
  if (is_cycle) {
364
377
  params = {
365
378
  ...params,
@@ -396,8 +409,14 @@ const confirm = async () => {
396
409
  is_notify: true,
397
410
  });
398
411
  } else {
399
- const { email_list, platform, group_name, etherpad, ...data } = params;
400
- await props?.editMeetingRequest(props.data.id, {
412
+ const {
413
+ email_list: _email_list,
414
+ platform: _platform,
415
+ group_name: _group_name,
416
+ etherpad: _etherpad,
417
+ ...data
418
+ } = params;
419
+ await props?.editMeetingRequest(props.data?.id as unknown as number, {
401
420
  ...data,
402
421
  is_notify: true,
403
422
  });
@@ -423,14 +442,14 @@ onMounted(() => {
423
442
  getPlatformOptions();
424
443
  });
425
444
 
426
- const changeSig = (sig) => {
445
+ const changeSig = (sig: any) => {
427
446
  const find = sigOptions.value.find((v) => v.value === sig);
428
447
  if (!props.isEdit) {
429
448
  form.value.etherpad = find?.etherpad || '';
430
449
  form.value.email_list = find?.email_list || '';
431
450
  }
432
451
  };
433
- const disabledDate = (date) => {
452
+ const disabledDate = (date: Date) => {
434
453
  return date.getTime() < Date.now() - 24 * 60 * 60 * 1000;
435
454
  };
436
455
  const changeTime = () => {
@@ -741,7 +760,7 @@ defineExpose({
741
760
  align-items: center;
742
761
  --form-label-gap-top: 0;
743
762
  color: var(--o-color-info2);
744
- @include respond-to('<=pad_v') {
763
+ @include respond('<=pad_v') {
745
764
  height: fit-content;
746
765
  @include text2;
747
766
  }
@@ -755,13 +774,13 @@ defineExpose({
755
774
  align-items: center;
756
775
 
757
776
  .o-form-item-main-wrap {
758
- @include respond-to('<=pad_v') {
777
+ @include respond('<=pad_v') {
759
778
  @include text2;
760
779
  }
761
780
  }
762
781
  }
763
782
  .record-item {
764
- @include respond-to('<=pad_v') {
783
+ @include respond('<=pad_v') {
765
784
  display: flex;
766
785
  align-items: center;
767
786
  justify-content: space-between;
@@ -774,7 +793,7 @@ defineExpose({
774
793
  }
775
794
 
776
795
  .o-form-item-main {
777
- @include respond-to('<=pad_v') {
796
+ @include respond('<=pad_v') {
778
797
  flex-grow: 0;
779
798
  }
780
799
  }
@@ -786,7 +805,7 @@ defineExpose({
786
805
  column-gap: var(--o-gap-4);
787
806
  row-gap: var(--o-gap-2);
788
807
 
789
- @include respond-to('<=pad_v') {
808
+ @include respond('<=pad_v') {
790
809
  margin-bottom: var(--o-gap-3);
791
810
  flex-direction: column;
792
811
  align-items: flex-start;
@@ -860,7 +879,7 @@ defineExpose({
860
879
  border-color: var(--o-color-primary2);
861
880
  }
862
881
 
863
- @include respond-to('phone') {
882
+ @include respond('phone') {
864
883
  background-color: var(--o-color-fill2);
865
884
  }
866
885
 
@@ -891,7 +910,7 @@ defineExpose({
891
910
 
892
911
  div.o-form-item-main {
893
912
  margin-left: 0;
894
- @include respond-to('phone') {
913
+ @include respond('phone') {
895
914
  margin-top: 0;
896
915
  }
897
916
  }
@@ -904,7 +923,7 @@ defineExpose({
904
923
  }
905
924
  }
906
925
 
907
- @include respond-to('phone') {
926
+ @include respond('phone') {
908
927
  width: auto;
909
928
  .o-form {
910
929
  .o-form-item-main {
@@ -925,10 +944,10 @@ defineExpose({
925
944
  margin-left: 0;
926
945
  }
927
946
 
928
- @include respond-to('pad_v') {
947
+ @include respond('pad_v') {
929
948
  margin-bottom: var(--o-gap-4);
930
949
  }
931
- @include respond-to('phone') {
950
+ @include respond('phone') {
932
951
  margin-bottom: var(--o-gap-3);
933
952
  }
934
953
  }
@@ -937,7 +956,7 @@ defineExpose({
937
956
  background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
938
957
  padding: var(--o-gap-5);
939
958
  border-radius: var(--o-radius-xs);
940
- @include respond-to('<=pad_v') {
959
+ @include respond('<=pad_v') {
941
960
  padding: var(--o-gap-4);
942
961
  }
943
962
 
@@ -955,10 +974,10 @@ defineExpose({
955
974
 
956
975
  .o-form-item-main {
957
976
  margin-left: var(--o-gap-6);
958
- @include respond-to('pad_v') {
977
+ @include respond('pad_v') {
959
978
  margin-left: 0;
960
979
  }
961
- @include respond-to('phone') {
980
+ @include respond('phone') {
962
981
  margin-left: 0;
963
982
  max-width: 100%;
964
983
  }
@@ -1006,8 +1025,8 @@ defineExpose({
1006
1025
  --el-color-primary: var(--o-color-primary1);
1007
1026
  --el-datepicker-active-color: var(--o-color-primary1);
1008
1027
  --el-fill-color-light: var(--o-color-control2-light);
1009
- --el-input-bg-color: var(--o-color-control-light);
1010
- --el-fill-color-blank: var(--o-color-control-light);
1028
+ --el-input-bg-color: var(--o-color-control5-light);
1029
+ --el-fill-color-blank: var(--o-color-control5-light);
1011
1030
  }
1012
1031
 
1013
1032
  .o-meeting-form-popover-content {
@@ -1032,7 +1051,7 @@ defineExpose({
1032
1051
  }
1033
1052
 
1034
1053
  .o-meeting-form-date-picker-popper {
1035
- @include respond-to('phone') {
1054
+ @include respond('phone') {
1036
1055
  .el-picker-panel {
1037
1056
  width: min(var(--grid-content-width), 400px);
1038
1057
 
@@ -93,8 +93,8 @@ const getSubjectList = async (url: string) => {
93
93
  subjectList.value = (json || []).map((z: SubjectItemT) => {
94
94
  return {
95
95
  ...z,
96
- startTime: transformTime(z.startTime as string),
97
- endTime: transformTime(z.endTime as string),
96
+ startTimeNumber: transformTime(z.startTime),
97
+ endTimeNumber: transformTime(z.endTime),
98
98
  };
99
99
  });
100
100
  };
@@ -244,8 +244,8 @@ onUnmounted(() => {
244
244
  :data-start="sub.startTime"
245
245
  :data-end="sub.endTime"
246
246
  :style="{
247
- '--start': (sub.startTime < 0 ? 0 : sub.startTime) / playerDuration,
248
- '--end': (sub.endTime > playerDuration ? playerDuration : sub.endTime) / playerDuration,
247
+ '--start': (sub.startTimeNumber < 0 ? 0 : sub.startTimeNumber) / playerDuration,
248
+ '--end': (sub.endTimeNumber > playerDuration ? playerDuration : sub.endTimeNumber) / playerDuration,
249
249
  background: getProgressColor(idx),
250
250
  }"
251
251
  ></div>
@@ -272,7 +272,7 @@ onUnmounted(() => {
272
272
  gap: var(--grid-column-gutter);
273
273
  align-items: flex-start;
274
274
 
275
- @include respond-to('<=pad_v') {
275
+ @include respond('<=pad_v') {
276
276
  flex-wrap: wrap;
277
277
  }
278
278
 
@@ -284,7 +284,7 @@ onUnmounted(() => {
284
284
 
285
285
  .left-card {
286
286
  width: 60%;
287
- @include respond-to('<=pad_v') {
287
+ @include respond('<=pad_v') {
288
288
  width: 100%;
289
289
  }
290
290
 
@@ -317,7 +317,7 @@ onUnmounted(() => {
317
317
 
318
318
  .o-tab-nav {
319
319
  padding-bottom: var(--o-gap-4);
320
- @include respond-to('<=pad_v') {
320
+ @include respond('<=pad_v') {
321
321
  padding-bottom: var(--o-gap-2);
322
322
  }
323
323
  }
@@ -431,7 +431,7 @@ onUnmounted(() => {
431
431
 
432
432
  .right-card {
433
433
  width: 40%;
434
- @include respond-to('<=pad_v') {
434
+ @include respond('<=pad_v') {
435
435
  width: 100%;
436
436
  }
437
437
  }