@bagelink/vue 0.0.815 → 0.0.819

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.
package/dist/style.css CHANGED
@@ -1,14 +1,14 @@
1
1
  @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200');@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@100;200;300;400;500;600;700;800;900&display=swap');
2
- .accordion-item[data-v-c1663af0] {
2
+ .accordion-item[data-v-9d8335fa] {
3
3
  border-bottom: 1px solid var(--border-color);
4
4
  transition: all 0.2s;
5
5
  cursor: pointer;
6
6
  overflow: hidden;
7
7
  }
8
- .accordion-item button[data-v-c1663af0]{
8
+ .accordion-item button[data-v-9d8335fa] {
9
9
  cursor: pointer;
10
10
  }
11
- .accordion-head[data-v-c1663af0] {
11
+ .accordion-head[data-v-9d8335fa] {
12
12
  height: var(--input-height);
13
13
  background: transparent;
14
14
  display: flex;
@@ -16,20 +16,28 @@
16
16
  align-items: center;
17
17
  justify-content: space-between;
18
18
  border: none;
19
+ color: inherit !important;
19
20
  }
20
- .accordion-icon[data-v-c1663af0] {
21
+ .accordion-icon[data-v-9d8335fa] {
21
22
  transition: all 0.2s ease;
23
+ display: flex;
24
+ align-items: center;
25
+ flex-shrink: 0;
26
+ width: calc( var(--btn-height) / 1.5);
27
+ height: calc( var(--btn-height) / 1.5);
28
+ padding-inline: calc(var(--btn-padding) / 3);
22
29
  }
23
- .accordion-icon.open[data-v-c1663af0] {
30
+ .accordion-icon.open[data-v-9d8335fa] {
24
31
  transform: rotate(180deg);
25
32
  }
26
- .accordion-label[data-v-c1663af0] {
33
+ .accordion-label[data-v-9d8335fa] {
27
34
  font-weight: bold;
28
35
  }
29
- .accordion-head:hover .accordion-label[data-v-c1663af0] {
30
- text-decoration: underline;
36
+ .flat.accordion-item[data-v-9d8335fa] {
37
+ border-bottom: none
31
38
  }
32
- .accordion-body[data-v-c1663af0] {
39
+ .accordion-head:hover .accordion-label[data-v-9d8335fa] {
40
+ text-decoration: underline;
33
41
  }
34
42
 
35
43
  .expand-enter-active,
@@ -342,7 +350,7 @@ display: block;
342
350
  padding: 0;
343
351
  }
344
352
 
345
- .blocker[data-v-1f9c6644] {
353
+ .blocker[data-v-619a1cb2] {
346
354
  position: fixed;
347
355
  top: 0;
348
356
  left: 0;
@@ -350,74 +358,74 @@ display: block;
350
358
  height: 100%;
351
359
  z-index: 100;
352
360
  }
353
- .bgl-slider[data-v-1f9c6644] {
361
+ .bgl-slider[data-v-619a1cb2] {
354
362
  display: grid;
355
363
  position: relative;
356
- scroll-behavior: smooth;
364
+ /* scroll-behavior: smooth; */
357
365
  grid-auto-flow: column;
358
366
  grid-auto-columns: 100%;
359
- scroll-snap-type: x mandatory;
367
+ /* scroll-snap-type: x mandatory; */
360
368
  overflow-x: hidden;
361
369
  }
362
- .autoHeight[data-v-1f9c6644] {
370
+ .autoHeight[data-v-619a1cb2] {
363
371
  transition: height ease 0.7s;
364
372
  }
365
- .bgl-slider.allowScroll[data-v-1f9c6644] {
373
+ .bgl-slider.allowScroll[data-v-619a1cb2] {
366
374
  overflow-x: scroll;
367
375
  }
368
- .bgl-slider.slides-6[data-v-1f9c6644] {
376
+ .bgl-slider.slides-6[data-v-619a1cb2] {
369
377
  grid-auto-columns: 15.9%;
370
378
  gap: 1%;
371
379
  }
372
- .bgl-slider.slides-5[data-v-1f9c6644] {
380
+ .bgl-slider.slides-5[data-v-619a1cb2] {
373
381
  grid-auto-columns: 19.3%;
374
382
  gap: 1%;
375
383
  }
376
- .bgl-slider.slides-4[data-v-1f9c6644] {
384
+ .bgl-slider.slides-4[data-v-619a1cb2] {
377
385
  grid-auto-columns: 24.3%;
378
386
  gap: 1%;
379
387
  }
380
- .bgl-slider.slides-3[data-v-1f9c6644] {
388
+ .bgl-slider.slides-3[data-v-619a1cb2] {
381
389
  grid-auto-columns: 33%;
382
390
  gap: 1%;
383
391
  }
384
- .bgl-slider.slides-2[data-v-1f9c6644] {
392
+ .bgl-slider.slides-2[data-v-619a1cb2] {
385
393
  grid-auto-columns: 50%;
386
394
  gap: 1%;
387
395
  }
388
- .bgl-slider.slides-1[data-v-1f9c6644] {
396
+ .bgl-slider.slides-1[data-v-619a1cb2] {
389
397
  grid-auto-columns: 100%;
390
398
  }
391
- .bgl-slider[data-v-1f9c6644]::-webkit-scrollbar {
399
+ .bgl-slider[data-v-619a1cb2]::-webkit-scrollbar {
392
400
  display: none;
393
401
  }
394
- .bgl-slider[data-v-1f9c6644] * {
402
+ .bgl-slider[data-v-619a1cb2] * {
395
403
  scroll-snap-align: start;
396
404
  }
397
- .dragging.bgl-slider[data-v-1f9c6644] {
405
+ .dragging.bgl-slider[data-v-619a1cb2] {
398
406
  cursor: grabbing;
399
407
  cursor: -webkit-grabbing;
400
408
  scroll-snap-type: unset;
401
409
  }
402
- .clicking.bgl-slider[data-v-1f9c6644] {
410
+ .clicking.bgl-slider[data-v-619a1cb2] {
403
411
  scroll-behavior: unset;
404
412
  }
405
- .dragging.bgl-slider[data-v-1f9c6644] * {
413
+ .dragging.bgl-slider[data-v-619a1cb2] * {
406
414
  scroll-snap-align: unset;
407
415
  user-select: none;
408
416
  }
409
417
  @media screen and (max-width: 1280px) {
410
- .bgl-slider.slides-4[data-v-1f9c6644] {
418
+ .bgl-slider.slides-4[data-v-619a1cb2] {
411
419
  grid-auto-columns: 33%;
412
420
  }
413
421
  }
414
422
  @media screen and (max-width: 991px) {
415
- .bgl-slider.slides-4[data-v-1f9c6644] {
423
+ .bgl-slider.slides-4[data-v-619a1cb2] {
416
424
  grid-auto-columns: 50%;
417
425
  }
418
426
  }
419
427
  @media screen and (max-width: 600px) {
420
- .bgl-slider.slides-4[data-v-1f9c6644] {
428
+ .bgl-slider.slides-4[data-v-619a1cb2] {
421
429
  grid-auto-columns: 100%;
422
430
  }
423
431
  }
@@ -720,7 +728,7 @@ data[data-v-6c27f163] {
720
728
  }
721
729
  }
722
730
 
723
- .fileUploadWrap[data-v-2641a9a6] {
731
+ .fileUploadWrap[data-v-1db5afa3] {
724
732
  outline: 1px solid var(--border-color);
725
733
  border-radius: var(--input-border-radius);
726
734
  text-align: center;
@@ -732,7 +740,7 @@ data[data-v-6c27f163] {
732
740
  background: var(--input-bg);
733
741
  height: 215px;
734
742
  }
735
- .bagel-input .fileUploadWrap.fileDropZone[data-v-2641a9a6] {
743
+ .bagel-input .fileUploadWrap.fileDropZone[data-v-1db5afa3] {
736
744
  background: var(--input-bg);
737
745
  display: flex;
738
746
  align-items: center;
@@ -740,14 +748,14 @@ data[data-v-6c27f163] {
740
748
  color: var(--bgl-gray);
741
749
  flex-direction: column;
742
750
  }
743
- .fileUploadWrap.dragover[data-v-2641a9a6],
744
- .fileUploadWrap[data-v-2641a9a6]:hover {
751
+ .fileUploadWrap.dragover[data-v-1db5afa3],
752
+ .fileUploadWrap[data-v-1db5afa3]:hover {
745
753
  box-shadow: inset 0 0 10px #00000012;
746
754
  }
747
- .fileUploadWrap[style*="height: auto;"][data-v-2641a9a6] {
755
+ .fileUploadWrap[style*="height: auto;"][data-v-1db5afa3] {
748
756
  min-height: 215px;
749
757
  }
750
- .multi-image-item-preview[data-v-2641a9a6] {
758
+ .multi-image-item-preview[data-v-1db5afa3] {
751
759
  border: 1px solid var(--border-color) !important;
752
760
  border-radius: var(--input-border-radius);
753
761
  margin: 0.5rem !important;
@@ -761,12 +769,12 @@ data[data-v-6c27f163] {
761
769
  gap: 1rem;
762
770
  align-items: center;
763
771
  }
764
- .multi-image-item-preview p[data-v-2641a9a6] {
772
+ .multi-image-item-preview p[data-v-1db5afa3] {
765
773
  overflow: hidden;
766
774
  text-overflow: ellipsis;
767
775
  white-space: nowrap;
768
776
  }
769
- .multi-preview[data-v-2641a9a6]{
777
+ .multi-preview[data-v-1db5afa3]{
770
778
  width: 40px;
771
779
  height: 40px;
772
780
  border-radius: var(--input-border-radius);
@@ -777,17 +785,17 @@ data[data-v-6c27f163] {
777
785
  align-items: center;
778
786
  display: flex;
779
787
  }
780
- .bgl-single-preview[data-v-2641a9a6]{
788
+ .bgl-single-preview[data-v-1db5afa3]{
781
789
  height: 100%;
782
790
  position: relative;
783
791
  }
784
- .bgl-single-preview + .fileUploadPlaceHolder[data-v-2641a9a6]{
792
+ .bgl-single-preview + .fileUploadPlaceHolder[data-v-1db5afa3]{
785
793
  position: absolute;
786
794
  inset: 0;
787
795
  margin: auto;
788
796
  top: calc(50% - 2rem);
789
797
  }
790
- .single-image-item-preview[data-v-2641a9a6] {
798
+ .single-image-item-preview[data-v-1db5afa3] {
791
799
  height: 100%;
792
800
  min-height: 100%;
793
801
  position: relative;
@@ -795,13 +803,13 @@ data[data-v-6c27f163] {
795
803
  align-items: center;
796
804
  justify-content: center;
797
805
  }
798
- .fileUploadWrap[style*="height: auto"] .single-image-item-preview[data-v-2641a9a6] {
806
+ .fileUploadWrap[style*="height: auto"] .single-image-item-preview[data-v-1db5afa3] {
799
807
  min-height: 215px;
800
808
  }
801
- .fileUploadWrap[style*="height: auto"] .single-preview[data-v-2641a9a6] {
809
+ .fileUploadWrap[style*="height: auto"] .single-preview[data-v-1db5afa3] {
802
810
  margin: 0rem !important;
803
811
  }
804
- .single-preview[data-v-2641a9a6]{
812
+ .single-preview[data-v-1db5afa3]{
805
813
  border-radius: var(--input-border-radius);
806
814
  margin: 1rem;
807
815
  padding: 0px;
@@ -811,17 +819,17 @@ data[data-v-6c27f163] {
811
819
  background: var(--bgl-gray-light);
812
820
  box-shadow: 0 0 10px #00000012;
813
821
  }
814
- .bgl_fill-image.single-image-item-preview[data-v-2641a9a6] {
822
+ .bgl_fill-image.single-image-item-preview[data-v-1db5afa3] {
815
823
  height: 100%;
816
824
  }
817
- .bgl_fill-image.single-image-item-preview .single-preview[data-v-2641a9a6]{
825
+ .bgl_fill-image.single-image-item-preview .single-preview[data-v-1db5afa3]{
818
826
  border-radius: unset;
819
827
  object-fit: cover;
820
828
  box-shadow: unset;
821
829
  width: 100%;
822
830
  height: auto;
823
831
  }
824
- .single-image-item-preview .pie[data-v-2641a9a6] {
832
+ .single-image-item-preview .pie[data-v-1db5afa3] {
825
833
  transform-origin: top;
826
834
  transform: scale(1.4);
827
835
  position: absolute;
@@ -835,31 +843,31 @@ data[data-v-6c27f163] {
835
843
  border: none !important;
836
844
  padding: 0 !important;
837
845
  }
838
- .bgl_oval-upload[data-v-2641a9a6] {
846
+ .bgl_oval-upload[data-v-1db5afa3] {
839
847
  border-radius: 100% !important;
840
848
  overflow: hidden;
841
849
  }
842
- .bgl_oval-upload p[data-v-2641a9a6] {
850
+ .bgl_oval-upload p[data-v-1db5afa3] {
843
851
  padding: 0.75rem !important;
844
852
  font-size: 12px
845
853
  }
846
- .bgl_oval-upload .fileUploadPlaceHolder[data-v-2641a9a6]{
854
+ .bgl_oval-upload .fileUploadPlaceHolder[data-v-1db5afa3]{
847
855
  top: 0;
848
856
  }
849
- .bgl_oval-upload .pie[data-v-2641a9a6] {
857
+ .bgl_oval-upload .pie[data-v-1db5afa3] {
850
858
  transform: scale(1);
851
859
  }
852
- .bgl_oval-upload span.bgl_icon-font.color-primary[data-v-2641a9a6] {
860
+ .bgl_oval-upload span.bgl_icon-font.color-primary[data-v-1db5afa3] {
853
861
  transform: scale(0.4) !important;
854
862
  }
855
- .bgl_oval-upload .single-image-item-preview[data-v-2641a9a6]{
863
+ .bgl_oval-upload .single-image-item-preview[data-v-1db5afa3]{
856
864
  height: 100%;
857
865
  }
858
- .bgl_oval-upload .single-preview[data-v-2641a9a6] {
866
+ .bgl_oval-upload .single-preview[data-v-1db5afa3] {
859
867
  margin: 0;
860
868
  height: 100% !important;
861
869
  }
862
- .pie[data-v-2641a9a6] {
870
+ .pie[data-v-1db5afa3] {
863
871
  width: 30px;
864
872
  height: 30px;
865
873
  position: relative;
@@ -867,7 +875,7 @@ data[data-v-6c27f163] {
867
875
  align-items: center;
868
876
  justify-content: center;
869
877
  }
870
- .pie[data-v-2641a9a6]:before {
878
+ .pie[data-v-1db5afa3]:before {
871
879
  content: '';
872
880
  position: absolute;
873
881
  border-radius: 50%;
@@ -885,26 +893,26 @@ data[data-v-6c27f163] {
885
893
  #000 calc(100% - var(--b))
886
894
  );
887
895
  }
888
- .pie .success[data-v-2641a9a6] {
896
+ .pie .success[data-v-1db5afa3] {
889
897
  transform: scale(0);
890
898
  opacity: 0;
891
899
  transition: all 0.3s ease-in-out;
892
900
  }
893
- .pie .progress[data-v-2641a9a6] {
901
+ .pie .progress[data-v-1db5afa3] {
894
902
  position: absolute;
895
903
  font-size: 10px;
896
904
  }
897
- .pie.complete .progress[data-v-2641a9a6] {
905
+ .pie.complete .progress[data-v-1db5afa3] {
898
906
  display: none;
899
907
  }
900
- .pie.complete .success[data-v-2641a9a6] {
908
+ .pie.complete .success[data-v-1db5afa3] {
901
909
  transform: scale(1.3);
902
910
  opacity: 1;
903
911
  }
904
- .pie.complete[data-v-2641a9a6]:before {
912
+ .pie.complete[data-v-1db5afa3]:before {
905
913
  background: conic-gradient(var(--bgl-green) calc(var(--p) * 1%), #0000 0);
906
914
  }
907
- .pie.complete[data-v-2641a9a6] {
915
+ .pie.complete[data-v-1db5afa3] {
908
916
  color: var(--bgl-green);
909
917
  }
910
918
 
@@ -3152,25 +3160,25 @@ svg.leaflet-image-layer.leaflet-interactive path {
3152
3160
  }
3153
3161
  }
3154
3162
 
3155
- .bgl_pill-btn[data-v-d250e8a7]{
3163
+ .bgl_pill-btn[data-v-8c7388de]{
3156
3164
  color: var(--pill-btn-color);
3157
3165
  background: var(--pill-btn-bg);
3158
3166
  width: calc(var(--pill-height) / 1.25)!important;
3159
3167
  height: calc(var(--pill-height) / 1.25)!important;
3160
3168
  }
3161
- .loading[data-v-d250e8a7] {
3169
+ .loading[data-v-8c7388de] {
3162
3170
  border: 1px solid var(--bgl-light-text);
3163
3171
  border-bottom: 2px solid var(--bgl-light-text);
3164
- animation: spin-d250e8a7 1s linear infinite;
3172
+ animation: spin-8c7388de 1s linear infinite;
3165
3173
  border-radius: 100px;
3166
3174
  width: 1rem;
3167
3175
  height: 1rem;
3168
3176
  margin: auto;
3169
3177
  }
3170
- .bgl_flatPill .loading[data-v-d250e8a7] {
3178
+ .bgl_flatPill .loading[data-v-8c7388de] {
3171
3179
  border-bottom: 2px solid var(--bgl-text-color);
3172
3180
  }
3173
- @keyframes spin-d250e8a7 {
3181
+ @keyframes spin-8c7388de {
3174
3182
  0% {
3175
3183
  transform: rotate(0deg);
3176
3184
  }
@@ -3178,11 +3186,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
3178
3186
  transform: rotate(360deg);
3179
3187
  }
3180
3188
  }
3181
- .bgl_pill[data-v-d250e8a7] {
3189
+ .bgl_pill[data-v-8c7388de] {
3182
3190
  padding-inline: 0.25rem;
3183
3191
  transition: var(--bgl-transition);
3184
- background-color: var(--6c8d2280);
3185
- color: var(--65372d4a);
3192
+ background-color: var(--4779ddec);
3193
+ color: var(--04aaf136);
3186
3194
  display: inline-block;
3187
3195
  margin-inline-end: 0.25rem;
3188
3196
  border-radius: var(--pill-border-radius);
@@ -3190,26 +3198,26 @@ svg.leaflet-image-layer.leaflet-interactive path {
3190
3198
  vertical-align: middle;
3191
3199
  margin-bottom: 0.25rem;
3192
3200
  }
3193
- .bgl_pill[disabled="true"][data-v-d250e8a7] {
3201
+ .bgl_pill[disabled="true"][data-v-8c7388de] {
3194
3202
  opacity: 0.5;
3195
3203
  cursor: not-allowed;
3196
3204
  }
3197
- .bgl_pill-flex[data-v-d250e8a7] {
3205
+ .bgl_pill-flex[data-v-8c7388de] {
3198
3206
  display: flex;
3199
3207
  align-items: center;
3200
3208
  gap: 0.25rem;
3201
3209
  justify-content: center;
3202
3210
  height: 100%;
3203
3211
  }
3204
- .bgl_pill.bgl_flatPill[data-v-d250e8a7] {
3212
+ .bgl_pill.bgl_flatPill[data-v-8c7388de] {
3205
3213
  background: transparent;
3206
3214
  }
3207
- .bgl_pill.round[data-v-d250e8a7] {
3215
+ .bgl_pill.round[data-v-8c7388de] {
3208
3216
  border-radius: 1000px;
3209
3217
  }
3210
- .bgl_pill-border[data-v-d250e8a7] {
3211
- outline: 1px solid var(--6c8d2280);
3212
- color: var(--6c8d2280);
3218
+ .bgl_pill-border[data-v-8c7388de] {
3219
+ outline: 1px solid var(--4779ddec);
3220
+ color: var(--4779ddec);
3213
3221
  background: transparent;
3214
3222
  }
3215
3223
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.815",
4
+ "version": "0.0.819",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -51,7 +51,7 @@
51
51
  "./vite.config.ts"
52
52
  ],
53
53
  "devDependencies": {
54
- "@types/leaflet": "^1.9.13",
54
+ "@types/leaflet": "^1.9.14",
55
55
  "@types/signature_pad": "^2.3.6",
56
56
  "@vue-macros/reactivity-transform": "^1.1.2",
57
57
  "vue": "^3.5.12"
@@ -105,15 +105,15 @@
105
105
  "access": "public"
106
106
  },
107
107
  "dependencies": {
108
- "@tiptap/extension-image": "^2.8.0",
109
- "@tiptap/extension-table": "^2.8.0",
110
- "@tiptap/extension-table-cell": "^2.8.0",
111
- "@tiptap/extension-table-header": "^2.8.0",
112
- "@tiptap/extension-table-row": "^2.8.0",
113
- "@tiptap/extension-youtube": "^2.8.0",
114
- "@tiptap/pm": "^2.8.0",
115
- "@tiptap/starter-kit": "^2.8.0",
116
- "@tiptap/vue-3": "^2.8.0",
108
+ "@tiptap/extension-image": "^2.9.1",
109
+ "@tiptap/extension-table": "^2.9.1",
110
+ "@tiptap/extension-table-cell": "^2.9.1",
111
+ "@tiptap/extension-table-header": "^2.9.1",
112
+ "@tiptap/extension-table-row": "^2.9.1",
113
+ "@tiptap/extension-youtube": "^2.9.1",
114
+ "@tiptap/pm": "^2.9.1",
115
+ "@tiptap/starter-kit": "^2.9.1",
116
+ "@tiptap/vue-3": "^2.9.1",
117
117
  "@vuepic/vue-datepicker": "^8.8.1",
118
118
  "@vueuse/core": "^11.1.0",
119
119
  "axios": "^1.7.7",
@@ -1,11 +1,15 @@
1
1
  <script lang="ts" setup>
2
2
  import { MaterialIcon } from '@bagelink/vue'
3
- import { inject, onMounted, watch } from 'vue'
3
+ import { inject, onMounted, watch, computed } from 'vue'
4
4
 
5
5
  const props = defineProps<{
6
6
  label?: string
7
7
  id?: string
8
8
  open?: boolean
9
+ iconType?: 'expand_more' | 'plus_minus'
10
+ iconPosition?: 'start' | 'end'
11
+ flat?: boolean
12
+ iconClass?: string
9
13
  }>()
10
14
 
11
15
  const emit = defineEmits(['update:open'])
@@ -31,6 +35,13 @@ interface AccordionState {
31
35
  const accordionState = inject<AccordionState | undefined>('accordionState')
32
36
  const id = props.id || Math.random().toString(36).slice(7)
33
37
 
38
+ const computedIcon = computed(() => {
39
+ return props.iconType === 'plus_minus'
40
+ ? (isOpen ? 'remove' : 'add')
41
+ : 'expand_more'
42
+ })
43
+ const iconPosition = computed(() => props.iconPosition || 'end')
44
+
34
45
  if (accordionState) {
35
46
  watch(
36
47
  () => accordionState.openItem,
@@ -54,19 +65,32 @@ function toggle() {
54
65
  </script>
55
66
 
56
67
  <template>
57
- <div class="accordion-item">
68
+ <div class="accordion-item txt-start" :class="[{ flat }]">
58
69
  <button
59
70
  :aria-expanded="isOpen ? 'true' : 'false'"
60
71
  class="accordion-head"
61
72
  :aria-controls="`accordion-body-${id}`"
62
73
  @click="toggle()"
63
74
  >
75
+ <span
76
+ v-if="iconPosition === 'start'"
77
+ class="accordion-icon" :class="[iconClass, { open: isOpen && iconType === 'expand_more' }]"
78
+ >
79
+ <MaterialIcon :icon="computedIcon" />
80
+ </span>
81
+
64
82
  <slot name="head">
65
- <span class="accordion-label">{{ label }}</span>
83
+ <span class="accordion-label">
84
+ {{ label }}
85
+ </span>
66
86
  </slot>
67
- <div class="accordion-icon" :class="{ open: isOpen }">
68
- <MaterialIcon icon="expand_more" />
69
- </div>
87
+
88
+ <span
89
+ v-if="iconPosition === 'end'"
90
+ class="accordion-icon" :class="[iconClass, { open: isOpen && iconType === 'expand_more' }]"
91
+ >
92
+ <MaterialIcon :icon="computedIcon" />
93
+ </span>
70
94
  </button>
71
95
  <Transition name="expand">
72
96
  <div
@@ -88,9 +112,8 @@ function toggle() {
88
112
  cursor: pointer;
89
113
  overflow: hidden;
90
114
  }
91
- .accordion-item button{
115
+ .accordion-item button {
92
116
  cursor: pointer;
93
-
94
117
  }
95
118
 
96
119
  .accordion-head {
@@ -101,10 +124,17 @@ function toggle() {
101
124
  align-items: center;
102
125
  justify-content: space-between;
103
126
  border: none;
127
+ color: inherit !important;
104
128
  }
105
129
 
106
130
  .accordion-icon {
107
131
  transition: all 0.2s ease;
132
+ display: flex;
133
+ align-items: center;
134
+ flex-shrink: 0;
135
+ width: calc( var(--btn-height) / 1.5);
136
+ height: calc( var(--btn-height) / 1.5);
137
+ padding-inline: calc(var(--btn-padding) / 3);
108
138
  }
109
139
 
110
140
  .accordion-icon.open {
@@ -115,11 +145,12 @@ function toggle() {
115
145
  font-weight: bold;
116
146
  }
117
147
 
118
- .accordion-head:hover .accordion-label {
119
- text-decoration: underline;
148
+ .flat.accordion-item {
149
+ border-bottom: none
120
150
  }
121
151
 
122
- .accordion-body {
152
+ .accordion-head:hover .accordion-label {
153
+ text-decoration: underline;
123
154
  }
124
155
  </style>
125
156
 
@@ -53,12 +53,43 @@ function evalHeight() {
53
53
  yHeight = `${height}px`
54
54
  }
55
55
 
56
+ function scrollEase(target: number, duration: number = 500) {
57
+ if (!bglSlider) return
58
+ const start = bglSlider.scrollLeft
59
+ const change = target - start
60
+ const startTime = performance.now()
61
+
62
+ function animateScroll(currentTime: number) {
63
+ if (!bglSlider) return
64
+ const timeElapsed = currentTime - startTime
65
+ const progress = Math.min(timeElapsed / duration, 1)
66
+ bglSlider.scrollLeft = start + change * easeInOutQuad(progress)
67
+ if (progress < 1) {
68
+ requestAnimationFrame(animateScroll)
69
+ }
70
+ }
71
+
72
+ function easeInOutQuad(t: number) {
73
+ return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t
74
+ }
75
+
76
+ requestAnimationFrame(animateScroll)
77
+ }
78
+
56
79
  function goToSlide(index: number) {
57
80
  if (!bglSlider || index < 0 || index > bglSlider.children.length - 1) return
58
- const slider = bglSlider
59
81
  const isRTL = getComputedStyle(bglSlider).direction === 'rtl'
60
- const scrollX = slider.offsetWidth * index * (isRTL ? -1 : 1)
61
- slider.scrollTo({ left: scrollX, behavior: 'smooth' })
82
+ const scrollX = bglSlider.offsetWidth * index * (isRTL ? -1 : 1)
83
+ const screenWidth = window.innerWidth
84
+ let duration = 700
85
+
86
+ if (screenWidth < 600) {
87
+ duration = 400
88
+ } else if (screenWidth < 991) {
89
+ duration = 500
90
+ }
91
+
92
+ scrollEase(scrollX, duration)
62
93
  activeSlideIndex = index
63
94
  evalHeight()
64
95
  }
@@ -67,7 +98,9 @@ watch(() => props.index, goToSlide)
67
98
 
68
99
  watch(
69
100
  () => activeSlideIndex,
70
- (index) => { emit('update:index', index) }
101
+ () => {
102
+ if (props.index === activeSlideIndex) return
103
+ emit('update:index', activeSlideIndex) }
71
104
  )
72
105
 
73
106
  function scrollEnd() {
@@ -153,7 +186,6 @@ onUnmounted(() => { window.removeEventListener('resize', evalWidth) })
153
186
  allowScroll,
154
187
  }"
155
188
  class="bgl-slider"
156
- @scrollend="scrollEnd"
157
189
  @mousedown="startDragging"
158
190
  >
159
191
  <div v-if="isDragging" class="blocker" />
@@ -183,10 +215,10 @@ onUnmounted(() => { window.removeEventListener('resize', evalWidth) })
183
215
  .bgl-slider {
184
216
  display: grid;
185
217
  position: relative;
186
- scroll-behavior: smooth;
218
+ /* scroll-behavior: smooth; */
187
219
  grid-auto-flow: column;
188
220
  grid-auto-columns: 100%;
189
- scroll-snap-type: x mandatory;
221
+ /* scroll-snap-type: x mandatory; */
190
222
  overflow-x: hidden;
191
223
  }
192
224