unika-components 1.0.155 → 1.0.157

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.
@@ -88,6 +88,28 @@ button.uni-text-component {
88
88
  white-space: pre-wrap;
89
89
  }
90
90
 
91
+ .like-button {
92
+ display: flex;
93
+ flex-direction: column;
94
+ align-items: center;
95
+ cursor: pointer;
96
+ }
97
+
98
+ .icon-heart {
99
+ font-size: 24px;
100
+ color: #e74c3c;
101
+ }
102
+
103
+ .liked {
104
+ color: #f00; /* 更改颜色以示已赞 */
105
+ }
106
+
107
+ .like-count {
108
+ margin-top: 4px;
109
+ font-size: 16px;
110
+ color: #333;
111
+ }
112
+
91
113
  .uni-video-component {
92
114
  position: relative;
93
115
  text-align: center;
@@ -121,26 +143,18 @@ button.uni-text-component {
121
143
  color: #666
122
144
  }
123
145
 
124
- .like-button {
125
- display: flex;
126
- flex-direction: column;
127
- align-items: center;
128
- cursor: pointer;
129
- }
130
-
131
- .icon-heart {
132
- font-size: 24px;
133
- color: #e74c3c;
146
+ .swiper-warp {
147
+ width: 100%;
148
+ height: 100%;
134
149
  }
135
150
 
136
- .liked {
137
- color: #f00; /* 更改颜色以示已赞 */
151
+ .swiper-slide-component {
152
+ text-align: center;
138
153
  }
139
154
 
140
- .like-count {
141
- margin-top: 4px;
142
- font-size: 16px;
143
- color: #333;
155
+ .swiper-slide img {
156
+ max-width: 100%;
157
+ max-height: 100%;
144
158
  }
145
159
 
146
160
  .effect {
@@ -182,20 +196,6 @@ button.uni-text-component {
182
196
  margin-bottom: 0px;
183
197
  vertical-align: top;
184
198
  }
185
-
186
- .swiper-warp {
187
- width: 100%;
188
- height: 100%;
189
- }
190
-
191
- .swiper-slide-component {
192
- text-align: center;
193
- }
194
-
195
- .swiper-slide img {
196
- max-width: 100%;
197
- max-height: 100%;
198
- }
199
199
  /**
200
200
  * Swiper 6.8.4
201
201
  * Most modern mobile touch slider and framework with hardware accelerated transitions
@@ -744,193 +744,6 @@ button.swiper-pagination-bullet {
744
744
  backface-visibility: hidden;
745
745
  }
746
746
 
747
-
748
- .no-animation__card {
749
- font-weight: 500;
750
- font-size: var(--countdown-size, 2rem);
751
- line-height: 1.5;
752
- display: block;
753
- color: var(--main-color, #EC685C);
754
- }
755
-
756
- .flip-clock {
757
- text-align: center;
758
- perspective: 600px;
759
- margin: 0 auto;
760
- }
761
-
762
- .flip-clock *,
763
- .flip-clock *:before,
764
- .flip-clock *:after {
765
- box-sizing: border-box;
766
- }
767
-
768
- .flip-clock__piece {
769
- display: inline-block;
770
- margin: 0 0.2vw;
771
- }
772
-
773
- @media (min-width: 1000px) {
774
- .flip-clock__piece {
775
- margin: 0 5px;
776
- }
777
- }
778
-
779
- .flip-clock__slot {
780
- font-size: var(--label-size, 1rem);
781
- line-height: 1.5;
782
- display: block;
783
- color: var(--label-color, #222222);
784
- }
785
-
786
- .flip-card {
787
- display: block;
788
- position: relative;
789
- padding-bottom: 0.72em; /* halfHeight */
790
- font-size: var(--countdown-size, 2.25rem);
791
- line-height: 0.95;
792
- }
793
-
794
- @media (min-width: 1000px) {
795
- .flip-clock__slot {
796
- font-size: 1.2rem;
797
- }
798
-
799
- .flip-card {
800
- font-size: 3rem;
801
- }
802
- }
803
-
804
- .flip-card__top,
805
- .flip-card__bottom,
806
- .flip-card__back-bottom,
807
- .flip-card__back::before,
808
- .flip-card__back::after{
809
- display: block;
810
- height: 0.72em; /* halfHeight */
811
- color: var(--main-color, #EC685C);
812
- background: var(--main-flip-background-color, #222222);
813
- padding: 0.23em 0.15em 0.4em;
814
- border-radius: 0.15em 0.15em 0 0; /* borderRadius */
815
- backface-visibility: hidden;
816
- -webkit-backface-visibility: hidden;
817
- transform-style: preserve-3d;
818
- width: 2.1em;
819
- }
820
-
821
- .flip-card__top-4digits,
822
- .flip-card__bottom-4digits,
823
- .flip-card__back-bottom-4digits,
824
- .flip-card__back-4digits::before,
825
- .flip-card__back-4digits::after {
826
- display: block;
827
- height: 0.72em; /* halfHeight */
828
- color: var(--main-color, #EC685C);
829
- background: var(--main-flip-background-color, #222222);
830
- padding: 0.23em 0.15em 0.4em;
831
- border-radius: 0.15em 0.15em 0 0; /* borderRadius */
832
- backface-visibility: hidden;
833
- -webkit-backface-visibility: hidden;
834
- transform-style: preserve-3d;
835
- width: 2.65em;
836
- }
837
-
838
- .flip-card__bottom,
839
- .flip-card__back-bottom,
840
- .flip-card__bottom-4digits,
841
- .flip-card__back-bottom-4digits {
842
- color: var(--second-flip-color, #EC685C);
843
- position: absolute;
844
- top: 50%;
845
- left: 0;
846
- border-top: solid 1px var(--second-flip-background-color, #000);
847
- background: var(--second-flip-background-color, #393939);
848
- border-radius: 0 0 0.15em 0.15em; /* borderRadius */
849
- pointer-events: none;
850
- overflow: hidden;
851
- z-index: 2;
852
- }
853
-
854
- .flip-card__back-bottom,
855
- .flip-card__back-bottom-4digits {
856
- z-index: 1;
857
- }
858
-
859
- .flip-card__bottom::after,
860
- .flip-card__back-bottom::after,
861
- .flip-card__bottom-4digits::after,
862
- .flip-card__back-bottom-4digits::after {
863
- display: block;
864
- margin-top: -0.72em; /* Negative halfHeight */
865
- }
866
- .flip-card__back::before,
867
- .flip-card__bottom::after,
868
- .flip-card__back-bottom::after,
869
- .flip-card__back-4digits::before,
870
- .flip-card__bottom-4digits::after,
871
- .flip-card__back-bottom-4digits::after {
872
- content: attr(data-value);
873
- }
874
-
875
- .flip-card__back,
876
- .flip-card__back-4digits {
877
- position: absolute;
878
- top: 0;
879
- height: 100%;
880
- left: 0%;
881
- pointer-events: none;
882
- }
883
- .flip-card__back::before,
884
- .flip-card__back-4digits::before {
885
- position: relative;
886
- overflow: hidden;
887
- z-index: -1;
888
- }
889
-
890
- .flip .flip-card__back::before,
891
- .flip .flip-card__back-4digits::before {
892
- z-index: 1;
893
- animation: flipTop 0.3s cubic-bezier(0.37, 0.01, 0.94, 0.35);
894
- animation-fill-mode: both;
895
- transform-origin: center bottom;
896
- }
897
-
898
- .flip .flip-card__bottom,
899
- .flip .flip-card__bottom-4digits {
900
- transform-origin: center top;
901
- animation-fill-mode: both;
902
- animation: flipBottom 0.6s cubic-bezier(0.15, 0.45, 0.28, 1);
903
- }
904
- @keyframes flipTop {
905
- 0% {
906
- transform: rotateX(0deg);
907
- z-index: 2;
908
- }
909
- 0%, 99% {
910
- opacity: 1;
911
- }
912
- 100% {
913
- transform: rotateX(-90deg);
914
- opacity: 0;
915
- }
916
- }
917
-
918
- @keyframes flipBottom {
919
- 0%, 50% {
920
- z-index: -1;
921
- transform: rotateX(90deg);
922
- opacity: 0;
923
- }
924
- 51% {
925
- opacity: 1;
926
- }
927
- 100% {
928
- opacity: 1;
929
- transform: rotateX(0deg);
930
- z-index: 5;
931
- }
932
- }
933
-
934
747
  .unika-calendar-box {
935
748
  position: relative;
936
749
  width: 325px !important;
@@ -1188,3 +1001,190 @@ button.swiper-pagination-bullet {
1188
1001
  padding: 0 0px;
1189
1002
  border-bottom: 1px solid
1190
1003
  }
1004
+
1005
+
1006
+ .no-animation__card {
1007
+ font-weight: 500;
1008
+ font-size: var(--countdown-size, 2rem);
1009
+ line-height: 1.5;
1010
+ display: block;
1011
+ color: var(--main-color, #EC685C);
1012
+ }
1013
+
1014
+ .flip-clock {
1015
+ text-align: center;
1016
+ perspective: 600px;
1017
+ margin: 0 auto;
1018
+ }
1019
+
1020
+ .flip-clock *,
1021
+ .flip-clock *:before,
1022
+ .flip-clock *:after {
1023
+ box-sizing: border-box;
1024
+ }
1025
+
1026
+ .flip-clock__piece {
1027
+ display: inline-block;
1028
+ margin: 0 0.2vw;
1029
+ }
1030
+
1031
+ @media (min-width: 1000px) {
1032
+ .flip-clock__piece {
1033
+ margin: 0 5px;
1034
+ }
1035
+ }
1036
+
1037
+ .flip-clock__slot {
1038
+ font-size: var(--label-size, 1rem);
1039
+ line-height: 1.5;
1040
+ display: block;
1041
+ color: var(--label-color, #222222);
1042
+ }
1043
+
1044
+ .flip-card {
1045
+ display: block;
1046
+ position: relative;
1047
+ padding-bottom: 0.72em; /* halfHeight */
1048
+ font-size: var(--countdown-size, 2.25rem);
1049
+ line-height: 0.95;
1050
+ }
1051
+
1052
+ @media (min-width: 1000px) {
1053
+ .flip-clock__slot {
1054
+ font-size: 1.2rem;
1055
+ }
1056
+
1057
+ .flip-card {
1058
+ font-size: 3rem;
1059
+ }
1060
+ }
1061
+
1062
+ .flip-card__top,
1063
+ .flip-card__bottom,
1064
+ .flip-card__back-bottom,
1065
+ .flip-card__back::before,
1066
+ .flip-card__back::after{
1067
+ display: block;
1068
+ height: 0.72em; /* halfHeight */
1069
+ color: var(--main-color, #EC685C);
1070
+ background: var(--main-flip-background-color, #222222);
1071
+ padding: 0.23em 0.15em 0.4em;
1072
+ border-radius: 0.15em 0.15em 0 0; /* borderRadius */
1073
+ backface-visibility: hidden;
1074
+ -webkit-backface-visibility: hidden;
1075
+ transform-style: preserve-3d;
1076
+ width: 2.1em;
1077
+ }
1078
+
1079
+ .flip-card__top-4digits,
1080
+ .flip-card__bottom-4digits,
1081
+ .flip-card__back-bottom-4digits,
1082
+ .flip-card__back-4digits::before,
1083
+ .flip-card__back-4digits::after {
1084
+ display: block;
1085
+ height: 0.72em; /* halfHeight */
1086
+ color: var(--main-color, #EC685C);
1087
+ background: var(--main-flip-background-color, #222222);
1088
+ padding: 0.23em 0.15em 0.4em;
1089
+ border-radius: 0.15em 0.15em 0 0; /* borderRadius */
1090
+ backface-visibility: hidden;
1091
+ -webkit-backface-visibility: hidden;
1092
+ transform-style: preserve-3d;
1093
+ width: 2.65em;
1094
+ }
1095
+
1096
+ .flip-card__bottom,
1097
+ .flip-card__back-bottom,
1098
+ .flip-card__bottom-4digits,
1099
+ .flip-card__back-bottom-4digits {
1100
+ color: var(--second-flip-color, #EC685C);
1101
+ position: absolute;
1102
+ top: 50%;
1103
+ left: 0;
1104
+ border-top: solid 1px var(--second-flip-background-color, #000);
1105
+ background: var(--second-flip-background-color, #393939);
1106
+ border-radius: 0 0 0.15em 0.15em; /* borderRadius */
1107
+ pointer-events: none;
1108
+ overflow: hidden;
1109
+ z-index: 2;
1110
+ }
1111
+
1112
+ .flip-card__back-bottom,
1113
+ .flip-card__back-bottom-4digits {
1114
+ z-index: 1;
1115
+ }
1116
+
1117
+ .flip-card__bottom::after,
1118
+ .flip-card__back-bottom::after,
1119
+ .flip-card__bottom-4digits::after,
1120
+ .flip-card__back-bottom-4digits::after {
1121
+ display: block;
1122
+ margin-top: -0.72em; /* Negative halfHeight */
1123
+ }
1124
+ .flip-card__back::before,
1125
+ .flip-card__bottom::after,
1126
+ .flip-card__back-bottom::after,
1127
+ .flip-card__back-4digits::before,
1128
+ .flip-card__bottom-4digits::after,
1129
+ .flip-card__back-bottom-4digits::after {
1130
+ content: attr(data-value);
1131
+ }
1132
+
1133
+ .flip-card__back,
1134
+ .flip-card__back-4digits {
1135
+ position: absolute;
1136
+ top: 0;
1137
+ height: 100%;
1138
+ left: 0%;
1139
+ pointer-events: none;
1140
+ }
1141
+ .flip-card__back::before,
1142
+ .flip-card__back-4digits::before {
1143
+ position: relative;
1144
+ overflow: hidden;
1145
+ z-index: -1;
1146
+ }
1147
+
1148
+ .flip .flip-card__back::before,
1149
+ .flip .flip-card__back-4digits::before {
1150
+ z-index: 1;
1151
+ animation: flipTop 0.3s cubic-bezier(0.37, 0.01, 0.94, 0.35);
1152
+ animation-fill-mode: both;
1153
+ transform-origin: center bottom;
1154
+ }
1155
+
1156
+ .flip .flip-card__bottom,
1157
+ .flip .flip-card__bottom-4digits {
1158
+ transform-origin: center top;
1159
+ animation-fill-mode: both;
1160
+ animation: flipBottom 0.6s cubic-bezier(0.15, 0.45, 0.28, 1);
1161
+ }
1162
+ @keyframes flipTop {
1163
+ 0% {
1164
+ transform: rotateX(0deg);
1165
+ z-index: 2;
1166
+ }
1167
+ 0%, 99% {
1168
+ opacity: 1;
1169
+ }
1170
+ 100% {
1171
+ transform: rotateX(-90deg);
1172
+ opacity: 0;
1173
+ }
1174
+ }
1175
+
1176
+ @keyframes flipBottom {
1177
+ 0%, 50% {
1178
+ z-index: -1;
1179
+ transform: rotateX(90deg);
1180
+ opacity: 0;
1181
+ }
1182
+ 51% {
1183
+ opacity: 1;
1184
+ }
1185
+ 100% {
1186
+ opacity: 1;
1187
+ transform: rotateX(0deg);
1188
+ z-index: 5;
1189
+ }
1190
+ }
@@ -1,4 +1,4 @@
1
- import { computed, defineComponent, openBlock, createBlock, resolveDynamicComponent, withModifiers, normalizeStyle as normalizeStyle$1, withCtx, createTextVNode, toDisplayString, createElementBlock, Fragment, renderList, normalizeProps, guardReactiveProps, h as h$2, ref, onUpdated, watch, nextTick as nextTick$1, onMounted, onBeforeUnmount, onBeforeUpdate, resolveComponent, createVNode, createCommentVNode, normalizeClass, createElementVNode, renderSlot, pushScopeId, popScopeId, toRefs, onBeforeMount, onUnmounted, withDirectives, vShow, isVNode, Comment, Text, reactive, getCurrentInstance, inject, provide, unref, shallowRef, watchEffect, triggerRef, Transition, resolveDirective, cloneVNode, toRef, Teleport, isRef, toRaw, render as render$l, TransitionGroup, mergeProps } from 'vue';
1
+ import { computed, defineComponent, openBlock, createBlock, resolveDynamicComponent, withModifiers, normalizeStyle as normalizeStyle$1, withCtx, createTextVNode, toDisplayString, createElementBlock, Fragment, renderList, normalizeProps, guardReactiveProps, h as h$2, ref, onUpdated, watch, nextTick as nextTick$1, onMounted, onBeforeUnmount, onBeforeUpdate, resolveComponent, createVNode, normalizeClass, createElementVNode, createCommentVNode, renderSlot, pushScopeId, popScopeId, toRefs, onBeforeMount, onUnmounted, withDirectives, vShow, isVNode, Comment, Text, reactive, getCurrentInstance, inject, provide, unref, shallowRef, watchEffect, triggerRef, Transition, resolveDirective, cloneVNode, toRef, Teleport, isRef, toRaw, render as render$l, TransitionGroup, mergeProps } from 'vue';
2
2
  import crypto from 'crypto';
3
3
 
4
4
  /** Detect free variable `global` from Node.js. */
@@ -13105,14 +13105,15 @@ function render$g(_ctx, _cache, $props, $setup, $data, $options) {
13105
13105
  const _component_swiper = resolveComponent("swiper");
13106
13106
 
13107
13107
  return (openBlock(), createElementBlock("div", _hoisted_1$9, [
13108
- createVNode(_component_swiper, { class: "swiper-container" }, {
13108
+ createVNode(_component_swiper, {
13109
+ class: "swiper-container",
13110
+ modules: _ctx.modules,
13111
+ effect: _ctx.effect,
13112
+ direction: _ctx.direction,
13113
+ onSwiper: _ctx.onSwiper,
13114
+ onSlideChange: _ctx.onSlideChange
13115
+ }, {
13109
13116
  default: withCtx(() => [
13110
- createCommentVNode(" :modules=\"modules\""),
13111
- createCommentVNode(" :effect=\"effect\""),
13112
- createCommentVNode(" :direction=\"direction\""),
13113
- createCommentVNode(" @swiper=\"onSwiper\""),
13114
- createCommentVNode(" @slideChange=\"onSlideChange\""),
13115
- createCommentVNode(" >"),
13116
13117
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.work.pages, (page, index) => {
13117
13118
  return (openBlock(), createBlock(_component_swiper_slide, {
13118
13119
  class: normalizeClass(_ctx.slideClasses(index)),
@@ -13121,15 +13122,17 @@ function render$g(_ctx, _cache, $props, $setup, $data, $options) {
13121
13122
  default: withCtx(() => [
13122
13123
  createElementVNode("div", {
13123
13124
  class: "final-page",
13124
- style: normalizeStyle$1({ width: _ctx.work.width, height: _ctx.work.height, ...page.props })
13125
+ style: normalizeStyle$1({ width: _ctx.work.width, height: _ctx.work.height })
13125
13126
  }, [
13126
- createCommentVNode(" <div v-for=\"item in page.components\" :key=\"item.id\" :id=\"`component-${item.id}`\" :ref=\"setComponentRef\" style=\"width: 100%; height: 100%;\">"),
13127
13127
  (openBlock(true), createElementBlock(Fragment, null, renderList(page.components, (item) => {
13128
13128
  return (openBlock(), createElementBlock("div", {
13129
13129
  key: item.id,
13130
13130
  id: `component-${item.id}`,
13131
+ ref_for: true,
13132
+ ref: _ctx.setComponentRef,
13131
13133
  style: {"width":"100%","height":"100%"}
13132
13134
  }, [
13135
+ createCommentVNode(" <div v-for=\"item in page.components\" :key=\"item.id\" :id=\"`component-${item.id}`\" style=\"width: 100%; height: 100%;\"> "),
13133
13136
  (openBlock(), createBlock(resolveDynamicComponent(item.name), normalizeProps(guardReactiveProps(item.props)), null, 16 /* FULL_PROPS */))
13134
13137
  ], 8 /* PROPS */, _hoisted_2$3))
13135
13138
  }), 128 /* KEYED_FRAGMENT */))
@@ -13140,7 +13143,7 @@ function render$g(_ctx, _cache, $props, $setup, $data, $options) {
13140
13143
  }), 128 /* KEYED_FRAGMENT */))
13141
13144
  ]),
13142
13145
  _: 1 /* STABLE */
13143
- }),
13146
+ }, 8 /* PROPS */, ["modules", "effect", "direction", "onSwiper", "onSlideChange"]),
13144
13147
  (_ctx.upArrow)
13145
13148
  ? (openBlock(), createElementBlock("button", _hoisted_3$3, [..._hoisted_5$2]))
13146
13149
  : createCommentVNode("v-if", true)
@@ -13112,14 +13112,15 @@
13112
13112
  const _component_swiper = vue.resolveComponent("swiper");
13113
13113
 
13114
13114
  return (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
13115
- vue.createVNode(_component_swiper, { class: "swiper-container" }, {
13115
+ vue.createVNode(_component_swiper, {
13116
+ class: "swiper-container",
13117
+ modules: _ctx.modules,
13118
+ effect: _ctx.effect,
13119
+ direction: _ctx.direction,
13120
+ onSwiper: _ctx.onSwiper,
13121
+ onSlideChange: _ctx.onSlideChange
13122
+ }, {
13116
13123
  default: vue.withCtx(() => [
13117
- vue.createCommentVNode(" :modules=\"modules\""),
13118
- vue.createCommentVNode(" :effect=\"effect\""),
13119
- vue.createCommentVNode(" :direction=\"direction\""),
13120
- vue.createCommentVNode(" @swiper=\"onSwiper\""),
13121
- vue.createCommentVNode(" @slideChange=\"onSlideChange\""),
13122
- vue.createCommentVNode(" >"),
13123
13124
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.work.pages, (page, index) => {
13124
13125
  return (vue.openBlock(), vue.createBlock(_component_swiper_slide, {
13125
13126
  class: vue.normalizeClass(_ctx.slideClasses(index)),
@@ -13128,15 +13129,17 @@
13128
13129
  default: vue.withCtx(() => [
13129
13130
  vue.createElementVNode("div", {
13130
13131
  class: "final-page",
13131
- style: vue.normalizeStyle({ width: _ctx.work.width, height: _ctx.work.height, ...page.props })
13132
+ style: vue.normalizeStyle({ width: _ctx.work.width, height: _ctx.work.height })
13132
13133
  }, [
13133
- vue.createCommentVNode(" <div v-for=\"item in page.components\" :key=\"item.id\" :id=\"`component-${item.id}`\" :ref=\"setComponentRef\" style=\"width: 100%; height: 100%;\">"),
13134
13134
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(page.components, (item) => {
13135
13135
  return (vue.openBlock(), vue.createElementBlock("div", {
13136
13136
  key: item.id,
13137
13137
  id: `component-${item.id}`,
13138
+ ref_for: true,
13139
+ ref: _ctx.setComponentRef,
13138
13140
  style: {"width":"100%","height":"100%"}
13139
13141
  }, [
13142
+ vue.createCommentVNode(" <div v-for=\"item in page.components\" :key=\"item.id\" :id=\"`component-${item.id}`\" style=\"width: 100%; height: 100%;\"> "),
13140
13143
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.name), vue.normalizeProps(vue.guardReactiveProps(item.props)), null, 16 /* FULL_PROPS */))
13141
13144
  ], 8 /* PROPS */, _hoisted_2$3))
13142
13145
  }), 128 /* KEYED_FRAGMENT */))
@@ -13147,7 +13150,7 @@
13147
13150
  }), 128 /* KEYED_FRAGMENT */))
13148
13151
  ]),
13149
13152
  _: 1 /* STABLE */
13150
- }),
13153
+ }, 8 /* PROPS */, ["modules", "effect", "direction", "onSwiper", "onSlideChange"]),
13151
13154
  (_ctx.upArrow)
13152
13155
  ? (vue.openBlock(), vue.createElementBlock("button", _hoisted_3$3, [..._hoisted_5$2]))
13153
13156
  : vue.createCommentVNode("v-if", true)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unika-components",
3
- "version": "1.0.155",
3
+ "version": "1.0.157",
4
4
  "private": false,
5
5
  "main": "dist/unika-components.umd.js",
6
6
  "module": "dist/unika-components.esm.js",