@dataloop-ai/components 0.16.45 → 0.16.47

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 (145) hide show
  1. package/.eslintrc.js +2 -2
  2. package/package.json +10 -9
  3. package/src/App.vue +120 -58
  4. package/src/assets/globals.scss +2 -0
  5. package/src/components/basic/DlAlert/DlAlert.vue +1 -1
  6. package/src/components/basic/DlButton/DlButton.vue +13 -13
  7. package/src/components/basic/DlCard/DlCard.vue +234 -0
  8. package/src/components/basic/DlCard/index.ts +3 -0
  9. package/src/components/basic/DlCard/types.ts +20 -0
  10. package/src/components/basic/DlChip/DlChip.vue +1 -0
  11. package/src/components/basic/DlEllipsis/DlEllipsis.vue +90 -0
  12. package/src/components/basic/DlEllipsis/index.ts +2 -0
  13. package/src/components/basic/DlListItem/DlListItem.vue +11 -5
  14. package/src/components/basic/index.ts +2 -0
  15. package/src/components/compound/DlCharts/charts/DlBarChart/DlBarChart.vue +8 -1
  16. package/src/components/compound/DlCharts/charts/DlColumnChart/DlColumnChart.vue +22 -6
  17. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/DlConfusionMatrix.vue +542 -0
  18. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/index.ts +2 -0
  19. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/utils.ts +96 -0
  20. package/src/components/compound/DlCharts/charts/DlDoughnutChart/DlDoughnutChart.vue +2 -2
  21. package/src/components/compound/DlCharts/charts/DlLineChart/DlLineChart.vue +22 -6
  22. package/src/components/compound/DlCharts/charts/index.ts +1 -0
  23. package/src/components/compound/DlCharts/components/DlBrush.vue +8 -1
  24. package/src/components/compound/DlCharts/components/DlChartScrollBar.vue +34 -21
  25. package/src/components/compound/DlCharts/types/DlConfusionMatrix.types.ts +19 -0
  26. package/src/components/compound/DlCharts/types/index.ts +2 -1
  27. package/src/components/compound/DlCharts/types/props.ts +14 -0
  28. package/src/components/compound/DlDialogBox/DlDialogBox.vue +1 -1
  29. package/src/components/compound/DlDialogBox/components/DlDialogBoxFooter.vue +1 -0
  30. package/src/components/compound/DlDropdownButton/DlDropdownButton.vue +58 -12
  31. package/src/components/compound/DlInput/DlInput.vue +45 -23
  32. package/src/components/compound/DlJsonEditor/DlJsonEditor.vue +13 -29
  33. package/src/components/compound/DlPagination/DlPagination.vue +14 -4
  34. package/src/components/compound/DlPagination/components/PageNavigation.vue +24 -25
  35. package/src/components/compound/DlPagination/components/PaginationLegend.vue +2 -1
  36. package/src/components/compound/DlPagination/components/QuickNavigation.vue +1 -0
  37. package/src/components/compound/DlSearches/DlSmartSearch/DlSmartSearch.vue +86 -49
  38. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchInput.vue +86 -69
  39. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSuggestionsDropdown.vue +43 -4
  40. package/src/components/compound/DlSearches/DlSmartSearch/utils/highlightSyntax.ts +1 -55
  41. package/src/components/compound/DlSearches/DlSmartSearch/utils/index.ts +42 -10
  42. package/src/components/compound/DlSearches/DlSmartSearch/utils/utils.ts +107 -0
  43. package/src/components/compound/DlSelect/DlSelect.vue +41 -8
  44. package/src/components/compound/DlTable/DlTable.vue +13 -10
  45. package/src/components/compound/DlTable/styles/dl-table-styles.scss +16 -4
  46. package/src/components/compound/DlToggleButton/DlToggleButton.vue +109 -0
  47. package/src/components/compound/DlToggleButton/config.ts +27 -0
  48. package/src/components/compound/DlToggleButton/index.ts +3 -0
  49. package/src/components/compound/DlToggleButton/types.ts +4 -0
  50. package/src/components/compound/index.ts +1 -0
  51. package/src/components/compound/types.ts +1 -0
  52. package/src/components/essential/DlColorPicker/DlColorPicker.vue +4 -1
  53. package/src/components/essential/DlColorPicker/components/DlColors.vue +2 -6
  54. package/src/components/essential/DlIcon/DlIcon.vue +5 -1
  55. package/src/components/essential/DlMenu/DlMenu.vue +30 -2
  56. package/src/components/essential/DlSeparator/DlSeparator.vue +66 -0
  57. package/src/components/essential/DlSeparator/index.ts +2 -0
  58. package/src/components/essential/DlSpinner/DlSpinner.vue +53 -217
  59. package/src/components/essential/DlSpinner/components/DlSpinnerCircle.vue +156 -0
  60. package/src/components/essential/DlSpinner/components/DlSpinnerClock.vue +191 -0
  61. package/src/components/essential/DlSpinner/components/DlSpinnerDots.vue +225 -0
  62. package/src/components/essential/DlSpinner/components/DlSpinnerGrid.vue +278 -0
  63. package/src/components/essential/DlSpinner/components/DlSpinnerLogo.vue +264 -0
  64. package/src/components/essential/DlSpinner/index.ts +14 -1
  65. package/src/components/essential/DlSpinner/types.ts +7 -0
  66. package/src/components/essential/index.ts +1 -0
  67. package/src/components/essential/types.ts +1 -0
  68. package/src/components/shared/DlItemSection/DlItemSection.vue +21 -15
  69. package/src/components/shared/DlVirtualScroll/DlVirtualScroll.vue +36 -21
  70. package/src/components/shared/DlVirtualScroll/useVirtualScroll.ts +8 -10
  71. package/src/{demo → demos}/DlButtonDemo.vue +15 -0
  72. package/src/demos/DlCardDemo.vue +47 -0
  73. package/src/{demo → demos}/DlColorPickerDemo.vue +16 -1
  74. package/src/demos/DlConfusionMatrixDemo.vue +53 -0
  75. package/src/{demo → demos}/DlDialogBoxDemo.vue +4 -1
  76. package/src/demos/DlDropdownButtonDemo.vue +386 -0
  77. package/src/demos/DlEllipsisDemo.vue +30 -0
  78. package/src/{demo → demos}/DlLineChartDemo.vue +8 -8
  79. package/src/{demo → demos}/DlMenuDemo.vue +61 -2
  80. package/src/{demo → demos}/DlSearchDemo.vue +3 -2
  81. package/src/demos/DlSeparatorDemo.vue +44 -0
  82. package/src/demos/DlSpinnerDemo.vue +59 -0
  83. package/src/{demo → demos}/DlTableDemo.vue +117 -29
  84. package/src/demos/DlToggleButtonDemo.vue +55 -0
  85. package/src/{demo → demos}/DlTooltipDemo.vue +43 -2
  86. package/src/{demo → demos}/DlWidgetDemo.vue +34 -19
  87. package/src/{demo → demos}/SmartSearchDemo/DlSmartSearchDemo.vue +2 -50
  88. package/src/{demo → demos}/index.ts +14 -56
  89. package/src/hooks/use-arrow-navigation.ts +58 -0
  90. package/src/hooks/use-suggestions.ts +97 -74
  91. package/src/utils/colors.ts +1 -1
  92. package/src/utils/draggable-table.ts +2 -2
  93. package/src/utils/index.ts +1 -0
  94. package/src/utils/parse-smart-query.ts +87 -0
  95. package/src/components/compound/DlCharts/types.ts +0 -1
  96. package/src/demo/DlDropdownButtonDemo.vue +0 -260
  97. package/src/demo/DlSpinnerDemo.vue +0 -20
  98. /package/src/{demo → demos}/BarChartDemo.vue +0 -0
  99. /package/src/{demo → demos}/ColumnChartDemo.vue +0 -0
  100. /package/src/{demo → demos}/DlAccordionDemo.vue +0 -0
  101. /package/src/{demo → demos}/DlAlertDemo.vue +0 -0
  102. /package/src/{demo → demos}/DlAvatarDemo.vue +0 -0
  103. /package/src/{demo → demos}/DlBadgeDemo.vue +0 -0
  104. /package/src/{demo → demos}/DlChartDoughnutDemo.vue +0 -0
  105. /package/src/{demo → demos}/DlCheckboxDemo.vue +0 -0
  106. /package/src/{demo → demos}/DlChipDemo.vue +0 -0
  107. /package/src/{demo → demos}/DlCounterDemo.vue +0 -0
  108. /package/src/{demo → demos}/DlDateTimeRangeDemo.vue +0 -0
  109. /package/src/{demo → demos}/DlIconDemo.vue +0 -0
  110. /package/src/{demo → demos}/DlInputDemo.vue +0 -0
  111. /package/src/{demo → demos}/DlKpiDemo.vue +0 -0
  112. /package/src/{demo → demos}/DlLinkDemo.vue +0 -0
  113. /package/src/{demo → demos}/DlListDemo.vue +0 -0
  114. /package/src/{demo → demos}/DlOptionGroupDemo.vue +0 -0
  115. /package/src/{demo → demos}/DlPaginationDemo.vue +0 -0
  116. /package/src/{demo → demos}/DlPanelContainerDemo.vue +0 -0
  117. /package/src/{demo → demos}/DlPopupDemo.vue +0 -0
  118. /package/src/{demo → demos}/DlProgressBarDemo.vue +0 -0
  119. /package/src/{demo → demos}/DlProgressChartDemo.vue +0 -0
  120. /package/src/{demo → demos}/DlRadioDemo.vue +0 -0
  121. /package/src/{demo → demos}/DlRangeDemo.vue +0 -0
  122. /package/src/{demo → demos}/DlSelectDemo.vue +0 -0
  123. /package/src/{demo → demos}/DlSkeletonDemo.vue +0 -0
  124. /package/src/{demo → demos}/DlSliderDemo.vue +0 -0
  125. /package/src/{demo → demos}/DlStepperDemo/CenteredStepperInDialogBox.vue +0 -0
  126. /package/src/{demo → demos}/DlStepperDemo/DlStepperDemo.vue +0 -0
  127. /package/src/{demo → demos}/DlStepperDemo/SimpleStepper.vue +0 -0
  128. /package/src/{demo → demos}/DlStepperDemo/StepperInDialogBox.vue +0 -0
  129. /package/src/{demo → demos}/DlStepperDemo/index.ts +0 -0
  130. /package/src/{demo → demos}/DlStepperDemo/steps/AssignmentsStep.vue +0 -0
  131. /package/src/{demo → demos}/DlStepperDemo/steps/DataStep.vue +0 -0
  132. /package/src/{demo → demos}/DlStepperDemo/steps/GeneralStep.vue +0 -0
  133. /package/src/{demo → demos}/DlStepperDemo/steps/InstructionStep.vue +0 -0
  134. /package/src/{demo → demos}/DlStepperDemo/steps/QualityStep.vue +0 -0
  135. /package/src/{demo → demos}/DlSwitchDemo.vue +0 -0
  136. /package/src/{demo → demos}/DlTabsDemo.vue +0 -0
  137. /package/src/{demo → demos}/DlTdDemo.vue +0 -0
  138. /package/src/{demo → demos}/DlTextAreaDemo.vue +0 -0
  139. /package/src/{demo → demos}/DlTextHolderDemo.vue +0 -0
  140. /package/src/{demo → demos}/DlThDemo.vue +0 -0
  141. /package/src/{demo → demos}/DlToastDemo.vue +0 -0
  142. /package/src/{demo → demos}/DlTrDemo.vue +0 -0
  143. /package/src/{demo → demos}/DlTrendDemo.vue +0 -0
  144. /package/src/{demo → demos}/DlTypographyDemo.vue +0 -0
  145. /package/src/{demo → demos}/SmartSearchDemo/schema.ts +0 -0
@@ -0,0 +1,225 @@
1
+ <template>
2
+ <div class="spinner-wrapper">
3
+ <svg
4
+ class="dl-spinner"
5
+ :fill="color"
6
+ :width="size"
7
+ :height="size"
8
+ viewBox="0 0 120 30"
9
+ >
10
+ <circle
11
+ cx="15"
12
+ cy="15"
13
+ r="15"
14
+ >
15
+ <animate
16
+ attributeName="r"
17
+ from="15"
18
+ to="15"
19
+ begin="0s"
20
+ dur="0.8s"
21
+ values="15;9;15"
22
+ calcMode="linear"
23
+ repeatCount="indefinite"
24
+ />
25
+ <animate
26
+ attributeName="fill-opacity"
27
+ from="1"
28
+ to="1"
29
+ begin="0s"
30
+ dur="0.8s"
31
+ values="1;.5;1"
32
+ calcMode="linear"
33
+ repeatCount="indefinite"
34
+ />
35
+ </circle>
36
+
37
+ <circle
38
+ cx="60"
39
+ cy="15"
40
+ r="9"
41
+ fill-opacity=".3"
42
+ >
43
+ <animate
44
+ attributeName="r"
45
+ from="9"
46
+ to="9"
47
+ begin="0s"
48
+ dur="0.8s"
49
+ values="9;15;9"
50
+ calcMode="linear"
51
+ repeatCount="indefinite"
52
+ />
53
+ <animate
54
+ attributeName="fill-opacity"
55
+ from=".5"
56
+ to=".5"
57
+ begin="0s"
58
+ dur="0.8s"
59
+ values=".5;1;.5"
60
+ calcMode="linear"
61
+ repeatCount="indefinite"
62
+ />
63
+ </circle>
64
+
65
+ <circle
66
+ cx="105"
67
+ cy="15"
68
+ r="15"
69
+ fill-opacity=".3"
70
+ >
71
+ <animate
72
+ attributeName="r"
73
+ from="15"
74
+ to="15"
75
+ begin="0s"
76
+ dur="0.8s"
77
+ values="15;9;15"
78
+ calcMode="linear"
79
+ repeatCount="indefinite"
80
+ />
81
+ <animate
82
+ attributeName="fill-opacity"
83
+ from="1"
84
+ to="1"
85
+ begin="0s"
86
+ dur="0.8s"
87
+ values="1;.5;1"
88
+ calcMode="linear"
89
+ repeatCount="indefinite"
90
+ />
91
+ </circle>
92
+ </svg>
93
+ </div>
94
+ </template>
95
+
96
+ <script lang="ts">
97
+ import { defineComponent } from 'vue-demi'
98
+
99
+ export default defineComponent({
100
+ props: {
101
+ size: {
102
+ type: String,
103
+ default: '40px'
104
+ },
105
+ color: {
106
+ type: String,
107
+ default: 'var(--dl-color-secondary)'
108
+ }
109
+ }
110
+ })
111
+ </script>
112
+
113
+ <style lang="scss">
114
+ .spinner-wrapper {
115
+ display: flex;
116
+ justify-content: center;
117
+ align-items: center;
118
+ }
119
+ .dl-spinner {
120
+ vertical-align: middle;
121
+ }
122
+
123
+ .dl-spinner-mat {
124
+ animation: spinCircle 2s linear infinite;
125
+ transform-origin: center center;
126
+ }
127
+ .spinner-path {
128
+ stroke-dasharray: 1, 200 #{'/* rtl:ignore */'};
129
+ stroke-dashoffset: 0 #{'/* rtl:ignore */'};
130
+ animation: dash 1.5s ease-in-out infinite;
131
+ }
132
+
133
+ .spinner {
134
+ position: relative;
135
+ }
136
+
137
+ .spin-loader,
138
+ .spin-bg {
139
+ width: var(--dl-spinner-size);
140
+ height: var(--dl-spinner-size);
141
+ top: 0;
142
+ left: 0;
143
+ }
144
+
145
+ .spin-loader {
146
+ position: absolute;
147
+ animation: spin 2s linear infinite;
148
+ }
149
+
150
+ .dl-spinner-icon {
151
+ top: var(--icon-top);
152
+ left: var(--icon-top);
153
+ position: absolute;
154
+ width: var(--dl-spinner-icon-size);
155
+ height: var(--dl-spinner-icon-size);
156
+ opacity: 1;
157
+ animation: pulse 2s infinite;
158
+ }
159
+
160
+ .dl-svg {
161
+ fill: var(--dl-spinner-border-color);
162
+ }
163
+
164
+ .spinner-color-bg {
165
+ fill: none;
166
+ }
167
+
168
+ .spinner-color {
169
+ fill: url(#linear-gradient);
170
+ }
171
+
172
+ @keyframes dash {
173
+ 0% {
174
+ stroke-dasharray: 1, 200;
175
+ stroke-dashoffset: 0;
176
+ }
177
+ 50% {
178
+ stroke-dasharray: 89, 200;
179
+ stroke-dashoffset: -35px;
180
+ }
181
+ 100% {
182
+ stroke-dasharray: 89, 200;
183
+ stroke-dashoffset: -124px;
184
+ }
185
+ }
186
+
187
+ @keyframes spinCircle {
188
+ 0% {
189
+ transform: rotate3d(0, 0, 1, 0deg) #{'/* rtl:ignore */'};
190
+ }
191
+ 25% {
192
+ transform: rotate3d(0, 0, 1, 90deg) #{'/* rtl:ignore */'};
193
+ }
194
+ 50% {
195
+ transform: rotate3d(0, 0, 1, 180deg) #{'/* rtl:ignore */'};
196
+ }
197
+ 75% {
198
+ transform: rotate3d(0, 0, 1, 270deg) #{'/* rtl:ignore */'};
199
+ }
200
+ 100% {
201
+ transform: rotate3d(0, 0, 1, 359deg) #{'/* rtl:ignore */'};
202
+ }
203
+ }
204
+
205
+ @keyframes spin {
206
+ 0% {
207
+ transform: rotate(0deg);
208
+ }
209
+ 100% {
210
+ transform: rotate(360deg);
211
+ }
212
+ }
213
+
214
+ @keyframes pulse {
215
+ 0% {
216
+ opacity: 1;
217
+ }
218
+ 50% {
219
+ opacity: 0;
220
+ }
221
+ 100% {
222
+ opacity: 1;
223
+ }
224
+ }
225
+ </style>
@@ -0,0 +1,278 @@
1
+ <template>
2
+ <div class="spinner-wrapper">
3
+ <svg
4
+ class="dl-spinner"
5
+ :fill="color"
6
+ :width="size"
7
+ :height="size"
8
+ viewBox="0 0 105 105"
9
+ >
10
+ <circle
11
+ cx="12.5"
12
+ cy="12.5"
13
+ r="12.5"
14
+ >
15
+ <animate
16
+ attributeName="fill-opacity"
17
+ begin="0s"
18
+ dur="1s"
19
+ values="1;.2;1"
20
+ calcMode="linear"
21
+ repeatCount="indefinite"
22
+ />
23
+ </circle>
24
+
25
+ <circle
26
+ cx="12.5"
27
+ cy="52.5"
28
+ r="12.5"
29
+ fill-opacity=".5"
30
+ >
31
+ <animate
32
+ attributeName="fill-opacity"
33
+ begin="100ms"
34
+ dur="1s"
35
+ values="1;.2;1"
36
+ calcMode="linear"
37
+ repeatCount="indefinite"
38
+ />
39
+ </circle>
40
+
41
+ <circle
42
+ cx="52.5"
43
+ cy="12.5"
44
+ r="12.5"
45
+ >
46
+ <animate
47
+ attributeName="fill-opacity"
48
+ begin="300ms"
49
+ dur="1s"
50
+ values="1;.2;1"
51
+ calcMode="linear"
52
+ repeatCount="indefinite"
53
+ />
54
+ </circle>
55
+
56
+ <circle
57
+ cx="52.5"
58
+ cy="52.5"
59
+ r="12.5"
60
+ >
61
+ <animate
62
+ attributeName="fill-opacity"
63
+ begin="600ms"
64
+ dur="1s"
65
+ values="1;.2;1"
66
+ calcMode="linear"
67
+ repeatCount="indefinite"
68
+ />
69
+ </circle>
70
+
71
+ <circle
72
+ cx="92.5"
73
+ cy="12.5"
74
+ r="12.5"
75
+ >
76
+ <animate
77
+ attributeName="fill-opacity"
78
+ begin="800ms"
79
+ dur="1s"
80
+ values="1;.2;1"
81
+ calcMode="linear"
82
+ repeatCount="indefinite"
83
+ />
84
+ </circle>
85
+
86
+ <circle
87
+ cx="92.5"
88
+ cy="52.5"
89
+ r="12.5"
90
+ >
91
+ <animate
92
+ attributeName="fill-opacity"
93
+ begin="400ms"
94
+ dur="1s"
95
+ values="1;.2;1"
96
+ calcMode="linear"
97
+ repeatCount="indefinite"
98
+ />
99
+ </circle>
100
+
101
+ <circle
102
+ cx="12.5"
103
+ cy="92.5"
104
+ r="12.5"
105
+ >
106
+ <animate
107
+ attributeName="fill-opacity"
108
+ begin="700ms"
109
+ dur="1s"
110
+ values="1;.2;1"
111
+ calcMode="linear"
112
+ repeatCount="indefinite"
113
+ />
114
+ </circle>
115
+
116
+ <circle
117
+ cx="52.5"
118
+ cy="92.5"
119
+ r="12.5"
120
+ >
121
+ <animate
122
+ attributeName="fill-opacity"
123
+ begin="500ms"
124
+ dur="1s"
125
+ values="1;.2;1"
126
+ calcMode="linear"
127
+ repeatCount="indefinite"
128
+ />
129
+ </circle>
130
+
131
+ <circle
132
+ cx="92.5"
133
+ cy="92.5"
134
+ r="12.5"
135
+ >
136
+ <animate
137
+ attributeName="fill-opacity"
138
+ begin="200ms"
139
+ dur="1s"
140
+ values="1;.2;1"
141
+ calcMode="linear"
142
+ repeatCount="indefinite"
143
+ />
144
+ </circle>
145
+ </svg>
146
+ </div>
147
+ </template>
148
+
149
+ <script lang="ts">
150
+ import { defineComponent } from 'vue-demi'
151
+
152
+ export default defineComponent({
153
+ props: {
154
+ color: {
155
+ type: String,
156
+ default: 'var(--dl-color-secondary)'
157
+ },
158
+ size: {
159
+ type: String,
160
+ default: '40px'
161
+ }
162
+ }
163
+ })
164
+ </script>
165
+
166
+ <style lang="scss">
167
+ .spinner-wrapper {
168
+ display: flex;
169
+ justify-content: center;
170
+ align-items: center;
171
+ }
172
+ .dl-spinner {
173
+ vertical-align: middle;
174
+ }
175
+
176
+ .dl-spinner-mat {
177
+ animation: spinCircle 2s linear infinite;
178
+ transform-origin: center center;
179
+ }
180
+ .spinner-path {
181
+ stroke-dasharray: 1, 200 #{'/* rtl:ignore */'};
182
+ stroke-dashoffset: 0 #{'/* rtl:ignore */'};
183
+ animation: dash 1.5s ease-in-out infinite;
184
+ }
185
+
186
+ .spinner {
187
+ position: relative;
188
+ }
189
+
190
+ .spin-loader,
191
+ .spin-bg {
192
+ width: var(--dl-spinner-size);
193
+ height: var(--dl-spinner-size);
194
+ top: 0;
195
+ left: 0;
196
+ }
197
+
198
+ .spin-loader {
199
+ position: absolute;
200
+ animation: spin 2s linear infinite;
201
+ }
202
+
203
+ .dl-spinner-icon {
204
+ top: var(--icon-top);
205
+ left: var(--icon-top);
206
+ position: absolute;
207
+ width: var(--dl-spinner-icon-size);
208
+ height: var(--dl-spinner-icon-size);
209
+ opacity: 1;
210
+ animation: pulse 2s infinite;
211
+ }
212
+
213
+ .dl-svg {
214
+ fill: var(--dl-spinner-border-color);
215
+ }
216
+
217
+ .spinner-color-bg {
218
+ fill: none;
219
+ }
220
+
221
+ .spinner-color {
222
+ fill: url(#linear-gradient);
223
+ }
224
+
225
+ @keyframes dash {
226
+ 0% {
227
+ stroke-dasharray: 1, 200;
228
+ stroke-dashoffset: 0;
229
+ }
230
+ 50% {
231
+ stroke-dasharray: 89, 200;
232
+ stroke-dashoffset: -35px;
233
+ }
234
+ 100% {
235
+ stroke-dasharray: 89, 200;
236
+ stroke-dashoffset: -124px;
237
+ }
238
+ }
239
+
240
+ @keyframes spinCircle {
241
+ 0% {
242
+ transform: rotate3d(0, 0, 1, 0deg) #{'/* rtl:ignore */'};
243
+ }
244
+ 25% {
245
+ transform: rotate3d(0, 0, 1, 90deg) #{'/* rtl:ignore */'};
246
+ }
247
+ 50% {
248
+ transform: rotate3d(0, 0, 1, 180deg) #{'/* rtl:ignore */'};
249
+ }
250
+ 75% {
251
+ transform: rotate3d(0, 0, 1, 270deg) #{'/* rtl:ignore */'};
252
+ }
253
+ 100% {
254
+ transform: rotate3d(0, 0, 1, 359deg) #{'/* rtl:ignore */'};
255
+ }
256
+ }
257
+
258
+ @keyframes spin {
259
+ 0% {
260
+ transform: rotate(0deg);
261
+ }
262
+ 100% {
263
+ transform: rotate(360deg);
264
+ }
265
+ }
266
+
267
+ @keyframes pulse {
268
+ 0% {
269
+ opacity: 1;
270
+ }
271
+ 50% {
272
+ opacity: 0;
273
+ }
274
+ 100% {
275
+ opacity: 1;
276
+ }
277
+ }
278
+ </style>