@bagelink/vue 0.0.284 → 0.0.287

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
@@ -555,46 +555,46 @@
555
555
  }
556
556
  }
557
557
 
558
- .accordion-item[data-v-41718a1b] {
559
- border-bottom: 1px solid var(--border-color);
560
- transition: all 0.2s;
561
- cursor: pointer;
562
- overflow: hidden;
558
+ .accordion-item[data-v-bf74738b] {
559
+ border-bottom: 1px solid var(--border-color);
560
+ transition: all 0.2s;
561
+ cursor: pointer;
562
+ overflow: hidden;
563
563
  }
564
- .accordion-head[data-v-41718a1b] {
565
- height: var(--input-height);
566
- background: transparent;
567
- display: flex;
568
- width: 100%;
569
- align-items: center;
570
- justify-content: space-between;
564
+ .accordion-head[data-v-bf74738b] {
565
+ height: var(--input-height);
566
+ background: transparent;
567
+ display: flex;
568
+ width: 100%;
569
+ align-items: center;
570
+ justify-content: space-between;
571
571
  }
572
- .accordion-icon[data-v-41718a1b] {
573
- transition: all 0.2s ease;
572
+ .accordion-icon[data-v-bf74738b] {
573
+ transition: all 0.2s ease;
574
574
  }
575
- .accordion-icon.open[data-v-41718a1b] {
576
- transform: rotate(180deg);
575
+ .accordion-icon.open[data-v-bf74738b] {
576
+ transform: rotate(180deg);
577
577
  }
578
- .accordion-label[data-v-41718a1b] {
579
- font-weight: bold;
578
+ .accordion-label[data-v-bf74738b] {
579
+ font-weight: bold;
580
580
  }
581
- .accordion-head:hover .accordion-label[data-v-41718a1b] {
582
- text-decoration: underline;
581
+ .accordion-head:hover .accordion-label[data-v-bf74738b] {
582
+ text-decoration: underline;
583
583
  }
584
- .accordion-body[data-v-41718a1b] {}
584
+ .accordion-body[data-v-bf74738b] {}
585
585
 
586
586
  .expand-enter-active,
587
587
  .expand-leave-active {
588
- transition: all 0.5s;
589
- transition-delay: 0ms;
588
+ transition: all 0.5s;
589
+ transition-delay: 0ms;
590
590
  }
591
591
  .expand-enter-from,
592
592
  .expand-leave-to {
593
- max-height: 0;
593
+ max-height: 0;
594
594
  }
595
595
  .expand-enter-to,
596
596
  .expand-leave-from {
597
- max-height: 300px;
597
+ max-height: 300px;
598
598
  }
599
599
 
600
600
  .search-wrap {
@@ -875,25 +875,24 @@ th[data-v-2137a7a8] {
875
875
  color: var(--input-color);
876
876
  }
877
877
 
878
- .avatar[data-v-0441b0b8] {
879
- border-radius: 100%;
880
- background-color: var(--bgl-gray-20);
881
- border: 0.5px solid var(--border-color);
882
- overflow: hidden;
883
- text-align: center;
884
- padding: none;
885
- flex: 0 0 40px;
878
+ .avatar[data-v-b46163a3] {
879
+ border-radius: 100%;
880
+ background-color: var(--bgl-gray-20);
881
+ border: 0.5px solid var(--border-color);
882
+ overflow: hidden;
883
+ text-align: center;
884
+ padding: 0;
886
885
  }
887
- .avatar p[data-v-0441b0b8] {
888
- font-size: 1.5rem;
889
- line-height: 50px;
890
- margin: 0;
891
- font-weight: 200;
886
+ .avatar p[data-v-b46163a3] {
887
+ font-size: 1.5rem;
888
+ line-height: 50px;
889
+ margin: 0;
890
+ font-weight: 200;
892
891
  }
893
- .avatar img[data-v-0441b0b8] {
894
- width: 100%;
895
- height: 100%;
896
- object-fit: cover;
892
+ .avatar img[data-v-b46163a3] {
893
+ width: 100%;
894
+ height: 100%;
895
+ object-fit: cover;
897
896
  }
898
897
  .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
899
898
 
@@ -933,166 +932,6 @@ th[data-v-2137a7a8] {
933
932
  border-radius: var(--card-border-radius);
934
933
  }
935
934
 
936
- /* .group-wrap * {
937
- outline: 1px solid red;
938
- } */
939
- .group-wrap[data-v-fe5af582] {
940
- height: 100%;
941
- display: flex;
942
- align-items: center;
943
- justify-content: center;
944
- flex-wrap: wrap;
945
- gap: 2px;
946
- }
947
- .group-wrap .bar-wrap[data-v-fe5af582] {
948
- gap: 2px;
949
- }
950
- .group-title[data-v-fe5af582] {
951
- font-size: 0.6em;
952
- width: 100%;
953
- }
954
- .bar-txt[data-v-fe5af582] {
955
- font-size: 11px;
956
- font-weight: 200;
957
- /* max-width: 95%; */
958
- width: max-content;
959
- height: 20px;
960
- line-height: 1.2;
961
- margin: 5px auto 0;
962
- position: absolute;
963
- transform: rotate(300deg);
964
- transform-origin: 40px 40px;
965
- }
966
- .graph-wrap[data-v-fe5af582] {
967
- display: flex;
968
- flex-direction: row;
969
- align-items: flex-end;
970
- padding: 0 10px;
971
- }
972
- .bar-wrap[data-v-fe5af582] {
973
- text-align: center;
974
- height: 100%;
975
- /* flex: 0 1 16.6%; */
976
- display: flex;
977
- flex-direction: row;
978
- align-items: flex-end;
979
- position: relative;
980
- }
981
- .bar[data-v-fe5af582] {
982
- background: var(--bgl-primary);
983
- position: relative;
984
- min-width: 10px;
985
- min-height: 5px;
986
- width: 4px;
987
- margin: 0 auto;
988
- transition: all ease-out 0.8s;
989
- }
990
- .bar.compare[data-v-fe5af582] {
991
- background-color: #cf2135;
992
- }
993
- .bar-chart[data-v-fe5af582] {
994
- height: calc(100vh - 500px);
995
- width: 90%;
996
- margin: 30px auto;
997
- display: flex;
998
- justify-content: space-between;
999
- position: relative;
1000
- }
1001
- .graps .bar-chart[data-v-fe5af582] {
1002
- aspect-ratio: 9/5;
1003
- height: auto;
1004
- max-height: calc(100vh - 500px);
1005
- }
1006
- .bar-lines[data-v-fe5af582] {
1007
- position: absolute;
1008
- /* font-size: 20px; */
1009
- display: flex;
1010
- flex-direction: column-reverse;
1011
- top: -15px;
1012
- bottom: -12px;
1013
- left: -30px;
1014
- justify-content: space-between;
1015
- width: calc(100% + 20px);
1016
- text-align: start;
1017
- }
1018
- .bar-lines p[data-v-fe5af582] {
1019
- margin: 0;
1020
- position: relative;
1021
- }
1022
- .bar-lines p[data-v-fe5af582]::after {
1023
- content: "";
1024
- background: var(--bgl-primary-tint);
1025
- height: 1px;
1026
- position: absolute;
1027
- width: calc(100% - 20px);
1028
- margin: 14px 0 0 10px;
1029
- opacity: 0.5;
1030
- }
1031
- .bar-lines p[data-v-fe5af582]:first-child:after {
1032
- content: "";
1033
- background: var(--bgl-primary-tint);
1034
- height: 1px;
1035
- position: absolute;
1036
- width: calc(100% - 10px);
1037
- margin: 8px 0 0 10px;
1038
- opacity: 0.5;
1039
- }
1040
- .red-bar[data-v-fe5af582] {
1041
- background: #cf2135;
1042
- height: var(--b74eb91e);
1043
- width: 100%;
1044
- position: absolute;
1045
- left: 0px;
1046
- bottom: 0;
1047
- opacity: 0.6;
1048
- transition: all 200ms ease;
1049
- }
1050
- .red-bar.open-redbar[data-v-fe5af582] {
1051
- height: 7%;
1052
- }
1053
- .factor[data-v-fe5af582] {
1054
- position: absolute;
1055
- transform: rotate(270deg);
1056
- height: 0px;
1057
- width: 0;
1058
- left: -60px;
1059
- font-size: 22px;
1060
- text-align: center;
1061
- white-space: nowrap;
1062
- top: 60%;
1063
- }
1064
- .dash-hor[data-v-fe5af582] {
1065
- /* border-bottom: 1px dashed white; */
1066
- position: absolute;
1067
- background-image: linear-gradient(to right, #cf2134 53%, transparent 0%);
1068
- height: 10px;
1069
- bottom: 41.5%;
1070
- width: 100%;
1071
- animation: 1s linear 0s infinite dash-fe5af582;
1072
- background-position: left;
1073
- background-repeat: repeat-x;
1074
- background-size: 15px 4px;
1075
- }
1076
- .dash-hor[data-v-fe5af582]::after {
1077
- content: "Average Speedup = 25x";
1078
- position: absolute;
1079
- left: 0;
1080
- bottom: 10px;
1081
- font-size: 22px;
1082
- background: #cf2134;
1083
- z-index: 2;
1084
- padding: 1px 4px;
1085
- border-radius: 3px;
1086
- }
1087
- @keyframes dash-fe5af582 {
1088
- 0% {
1089
- background-position: 0;
1090
- }
1091
- 100% {
1092
- background-position: 15px;
1093
- }
1094
- }
1095
-
1096
935
  .del-top {
1097
936
  transform: translateY(-2.6rem);
1098
937
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.284",
4
+ "version": "0.0.287",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -1,14 +1,14 @@
1
1
  <template>
2
- <div>
3
- <slot />
4
- </div>
2
+ <div>
3
+ <slot />
4
+ </div>
5
5
  </template>
6
6
 
7
7
  <script setup lang="ts">
8
8
  import { reactive, provide } from 'vue';
9
9
 
10
10
  const state = reactive({
11
- openItem: null as string | null,
11
+ openItem: null as string | null,
12
12
  });
13
13
 
14
14
  provide('accordionState', state);
@@ -1,18 +1,18 @@
1
1
  <template>
2
- <div class="accordion-item">
3
- <button @click="toggle()" :aria-expanded="open ? 'true' : 'false'" class="accordion-head"
4
- :aria-controls="`accordion-body-${id}`">
5
- <span class="accordion-label">{{ label }}</span>
6
- <div class="accordion-icon" :class="{ open }">
7
- <MaterialIcon icon="expand_more" />
8
- </div>
9
- </button>
10
- <Transition name="expand">
11
- <div v-if="open" class="accordion-body" :id="`accordion-body-${id}`" :aria-hidden="open ? 'false' : 'true'">
12
- <slot />
13
- </div>
14
- </Transition>
15
- </div>
2
+ <div class="accordion-item">
3
+ <button @click="toggle()" :aria-expanded="open ? 'true' : 'false'" class="accordion-head"
4
+ :aria-controls="`accordion-body-${id}`">
5
+ <span class="accordion-label">{{ label }}</span>
6
+ <div class="accordion-icon" :class="{ open }">
7
+ <MaterialIcon icon="expand_more" />
8
+ </div>
9
+ </button>
10
+ <Transition name="expand">
11
+ <div v-if="open" class="accordion-body" :id="`accordion-body-${id}`" :aria-hidden="open ? 'false' : 'true'">
12
+ <slot />
13
+ </div>
14
+ </Transition>
15
+ </div>
16
16
  </template>
17
17
 
18
18
  <script lang="ts" setup>
@@ -20,58 +20,58 @@ import { MaterialIcon } from '@bagelink/vue';
20
20
  import { watch, inject } from 'vue';
21
21
 
22
22
  const props = defineProps<{
23
- label: string,
24
- id?: string,
23
+ label: string,
24
+ id?: string,
25
25
  }>();
26
26
  let open = $ref(false);
27
27
 
28
28
  const accordionState = inject('accordionState') as { openItem: string | null };
29
29
  const id = props.id || Math.random().toString(36).substring(7);
30
30
 
31
- watch(() => accordionState.openItem, (currentOpenId) => {
32
- if (currentOpenId !== id) {
33
- open = false;
34
- }
31
+ watch(() => accordionState?.openItem, (currentOpenId) => {
32
+ if (currentOpenId !== id) {
33
+ open = false;
34
+ }
35
35
  }, { immediate: true });
36
36
 
37
37
  function toggle() {
38
- open = !open;
39
- if (open) accordionState.openItem = id;
40
- else if (accordionState.openItem === id) accordionState.openItem = null;
38
+ open = !open;
39
+ if (open && accordionState?.openItem) accordionState.openItem = id;
40
+ else if (accordionState?.openItem === id) accordionState.openItem = null;
41
41
  }
42
42
  </script>
43
43
 
44
44
  <style scoped>
45
45
  .accordion-item {
46
- border-bottom: 1px solid var(--border-color);
47
- transition: all 0.2s;
48
- cursor: pointer;
49
- overflow: hidden;
46
+ border-bottom: 1px solid var(--border-color);
47
+ transition: all 0.2s;
48
+ cursor: pointer;
49
+ overflow: hidden;
50
50
  }
51
51
 
52
52
  .accordion-head {
53
- height: var(--input-height);
54
- background: transparent;
55
- display: flex;
56
- width: 100%;
57
- align-items: center;
58
- justify-content: space-between;
53
+ height: var(--input-height);
54
+ background: transparent;
55
+ display: flex;
56
+ width: 100%;
57
+ align-items: center;
58
+ justify-content: space-between;
59
59
  }
60
60
 
61
61
  .accordion-icon {
62
- transition: all 0.2s ease;
62
+ transition: all 0.2s ease;
63
63
  }
64
64
 
65
65
  .accordion-icon.open {
66
- transform: rotate(180deg);
66
+ transform: rotate(180deg);
67
67
  }
68
68
 
69
69
  .accordion-label {
70
- font-weight: bold;
70
+ font-weight: bold;
71
71
  }
72
72
 
73
73
  .accordion-head:hover .accordion-label {
74
- text-decoration: underline;
74
+ text-decoration: underline;
75
75
  }
76
76
 
77
77
  .accordion-body {}
@@ -80,17 +80,17 @@ function toggle() {
80
80
  <style>
81
81
  .expand-enter-active,
82
82
  .expand-leave-active {
83
- transition: all 0.5s;
84
- transition-delay: 0ms;
83
+ transition: all 0.5s;
84
+ transition-delay: 0ms;
85
85
  }
86
86
 
87
87
  .expand-enter-from,
88
88
  .expand-leave-to {
89
- max-height: 0;
89
+ max-height: 0;
90
90
  }
91
91
 
92
92
  .expand-enter-to,
93
93
  .expand-leave-from {
94
- max-height: 300px;
94
+ max-height: 300px;
95
95
  }
96
96
  </style>
@@ -1,44 +1,43 @@
1
1
  <template>
2
- <div class="avatar" :style="{ width: `${size}px`, height: `${size}px` }">
3
- <img v-if="src" :src="src" :alt="name">
4
- <p v-else :style="{ 'line-height': `${size * 0.9}px` }">
5
- {{ fallback || initials(name || '') }}
6
- </p>
7
- </div>
2
+ <div class="avatar" :style="{ width: `${size}px`, height: `${size}px` }">
3
+ <img v-if="src" :src="src" :alt="name">
4
+ <p v-else :style="{ 'line-height': `${size * 0.9}px` }">
5
+ {{ fallback || initials(name || '') }}
6
+ </p>
7
+ </div>
8
8
  </template>
9
9
 
10
10
  <script setup lang="ts">
11
11
  import { initials } from '@bagelink/vue';
12
12
 
13
13
  withDefaults(defineProps<{
14
- fallback?: string;
15
- src?: string;
16
- name?: string;
17
- size?: number;
14
+ fallback?: string;
15
+ src?: string;
16
+ name?: string;
17
+ size?: number;
18
18
  }>(), { size: 50 });
19
19
  </script>
20
20
 
21
21
  <style scoped>
22
22
  .avatar {
23
- border-radius: 100%;
24
- background-color: var(--bgl-gray-20);
25
- border: 0.5px solid var(--border-color);
26
- overflow: hidden;
27
- text-align: center;
28
- padding: none;
29
- flex: 0 0 40px;
23
+ border-radius: 100%;
24
+ background-color: var(--bgl-gray-20);
25
+ border: 0.5px solid var(--border-color);
26
+ overflow: hidden;
27
+ text-align: center;
28
+ padding: 0;
30
29
  }
31
30
 
32
31
  .avatar p {
33
- font-size: 1.5rem;
34
- line-height: 50px;
35
- margin: 0;
36
- font-weight: 200;
32
+ font-size: 1.5rem;
33
+ line-height: 50px;
34
+ margin: 0;
35
+ font-weight: 200;
37
36
  }
38
37
 
39
38
  .avatar img {
40
- width: 100%;
41
- height: 100%;
42
- object-fit: cover;
39
+ width: 100%;
40
+ height: 100%;
41
+ object-fit: cover;
43
42
  }
44
43
  </style>
@@ -0,0 +1,58 @@
1
+ <template>
2
+ <div>
3
+ <iframe
4
+ v-if="isYoutubeOrVimeo"
5
+ :src="videoUrl"
6
+ :style="{ aspectRatio }"
7
+ frameborder="0"
8
+ allowfullscreen
9
+ title="Video"
10
+ />
11
+ <video
12
+ v-else
13
+ :src="src"
14
+ :autoplay="autoplay"
15
+ :muted="mute"
16
+ :loop="loop"
17
+ :style="{ aspectRatio }"
18
+ controls="controllers"
19
+ />
20
+ </div>
21
+ </template>
22
+
23
+ <script setup lang="ts">
24
+ type Props = {
25
+ src: string;
26
+ autoplay: boolean;
27
+ mute: boolean;
28
+ aspectRatio: string;
29
+ controllers: boolean;
30
+ loop: boolean;
31
+ };
32
+
33
+ const props = defineProps<Props>();
34
+
35
+ const aspectRatio = $computed(() => props.aspectRatio.replace(':', '/'));
36
+
37
+ const isYoutubeOrVimeo = $computed(() => {
38
+ const youtubeRegex = /youtube\.com|youtu\.be/;
39
+ const vimeoRegex = /vimeo\.com/;
40
+ return youtubeRegex.test(props.src) || vimeoRegex.test(props.src);
41
+ });
42
+
43
+ const videoUrl = $computed(() => {
44
+ if (isYoutubeOrVimeo.value) {
45
+ // Handle YouTube and Vimeo URLs here
46
+ // For simplicity, returning the URL as is, but you might need to transform it
47
+ return props.src;
48
+ }
49
+ return '';
50
+ });
51
+ </script>
52
+
53
+ <style scoped>
54
+ iframe, video {
55
+ width: 100%;
56
+ height: auto;
57
+ }
58
+ </style>
@@ -22,7 +22,6 @@ export { default as Title } from './Title.vue';
22
22
  export { default as Accordion } from './Accordion.vue';
23
23
  export { default as ComboBox } from './ComboBox.vue';
24
24
 
25
- export * from './charts';
26
25
  export * from './form';
27
26
  export * from './dashboard';
28
27
  export * from './whatsapp';
@@ -0,0 +1,6 @@
1
+ <template>
2
+ <div/>
3
+ </template>
4
+
5
+ <style scoped>
6
+ </style>