vdesign-ui 0.1.19 → 0.1.20

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 (193) hide show
  1. package/dist/components/actionbar/actionbar-cell/index.vue +34 -0
  2. package/dist/components/actionbar/index.js +8 -0
  3. package/dist/components/actionbar/index.vue +39 -0
  4. package/dist/components/actionbar/style.less +48 -0
  5. package/dist/components/actions-cell/actions/index.js +7 -0
  6. package/dist/components/actions-cell/actions/index.vue +76 -0
  7. package/dist/components/actions-cell/actions/style.less +112 -0
  8. package/dist/components/actions-cell/index.js +7 -0
  9. package/dist/components/actions-cell/index.vue +94 -0
  10. package/dist/components/actions-cell/style.less +39 -0
  11. package/dist/components/activityviews/index.js +8 -0
  12. package/dist/components/activityviews/index.vue +140 -0
  13. package/dist/components/activityviews/style.less +138 -0
  14. package/dist/components/badge/index.js +8 -0
  15. package/dist/components/badge/index.vue +49 -0
  16. package/dist/components/badge/style.less +66 -0
  17. package/dist/components/button/index.js +8 -0
  18. package/dist/components/button/index.vue +89 -0
  19. package/dist/components/button/style.less +563 -0
  20. package/dist/components/calendar/end.png +0 -0
  21. package/dist/components/calendar/index-element.vue +84 -0
  22. package/dist/components/calendar/index.js +8 -0
  23. package/dist/components/calendar/index.vue +52 -0
  24. package/dist/components/calendar/start.png +0 -0
  25. package/dist/components/calendar/style.less +167 -0
  26. package/dist/components/checkbox/assist.js +34 -0
  27. package/dist/components/checkbox/checkbox-group/index.js +8 -0
  28. package/dist/components/checkbox/checkbox-group/index.vue +69 -0
  29. package/dist/components/checkbox/index.js +8 -0
  30. package/dist/components/checkbox/index.vue +184 -0
  31. package/dist/components/checkbox/style.less +291 -0
  32. package/dist/components/common/state/index.vue +80 -0
  33. package/dist/components/data-list/index.js +10 -0
  34. package/dist/components/data-list/index.vue +19 -0
  35. package/dist/components/data-list/style.less +624 -0
  36. package/dist/components/datetime-picker/index.js +8 -0
  37. package/dist/components/datetime-picker/index.vue +37 -0
  38. package/dist/components/datetime-picker/style.less +24 -0
  39. package/dist/components/dialog/index.js +8 -0
  40. package/dist/components/dialog/index.vue +162 -0
  41. package/dist/components/dialog/overlay-manager.js +18 -0
  42. package/dist/components/dialog/style.less +132 -0
  43. package/dist/components/divider/index.js +8 -0
  44. package/dist/components/divider/index.vue +54 -0
  45. package/dist/components/divider/style.less +92 -0
  46. package/dist/components/dropdown/index.js +8 -0
  47. package/dist/components/dropdown/index.vue +210 -0
  48. package/dist/components/dropdown/style.less +418 -0
  49. package/dist/components/empty/404-dark.png +0 -0
  50. package/dist/components/empty/404.png +0 -0
  51. package/dist/components/empty/index.js +8 -0
  52. package/dist/components/empty/index.vue +95 -0
  53. package/dist/components/empty/network-dark.png +0 -0
  54. package/dist/components/empty/network.png +0 -0
  55. package/dist/components/empty/nodata-dark.png +0 -0
  56. package/dist/components/empty/nodata.png +0 -0
  57. package/dist/components/empty/style.less +60 -0
  58. package/dist/components/footer/index.js +7 -0
  59. package/dist/components/footer/index.vue +29 -0
  60. package/dist/components/footer/style.less +22 -0
  61. package/dist/components/footnav/footnav-item/index.js +7 -0
  62. package/dist/components/footnav/footnav-item/index.vue +75 -0
  63. package/dist/components/footnav/footnav-item/style.less +39 -0
  64. package/dist/components/footnav/index.js +7 -0
  65. package/dist/components/footnav/index.vue +97 -0
  66. package/dist/components/footnav/style.less +23 -0
  67. package/dist/components/form/index.js +7 -0
  68. package/dist/components/form/index.vue +12 -0
  69. package/dist/components/headnav/index.js +7 -0
  70. package/dist/components/headnav/index.vue +163 -0
  71. package/dist/components/headnav/style.less +245 -0
  72. package/dist/components/icon/font/iconfont.css +1050 -0
  73. package/dist/components/icon/font/iconfont.js +2 -0
  74. package/dist/components/icon/index.js +9 -0
  75. package/dist/components/icon/index.vue +46 -0
  76. package/dist/components/icon/style.less +44 -0
  77. package/dist/components/input/calcTextareaHeight.js +266 -0
  78. package/dist/components/input/index.js +8 -0
  79. package/dist/components/input/index.vue +343 -0
  80. package/dist/components/input/password/index.js +8 -0
  81. package/dist/components/input/password/index.vue +60 -0
  82. package/dist/components/input/search/index.js +8 -0
  83. package/dist/components/input/search/index.vue +66 -0
  84. package/dist/components/input/stepper/index.js +8 -0
  85. package/dist/components/input/stepper/index.vue +136 -0
  86. package/dist/components/input/style.less +497 -0
  87. package/dist/components/list/index.js +8 -0
  88. package/dist/components/list/index.vue +159 -0
  89. package/dist/components/list/style.less +292 -0
  90. package/dist/components/loading/index.js +7 -0
  91. package/dist/components/loading/index.vue +53 -0
  92. package/dist/components/loading/loading.png +0 -0
  93. package/dist/components/loading/refresh.png +0 -0
  94. package/dist/components/loading/style.less +48 -0
  95. package/dist/components/mixins/clickoutside.js +81 -0
  96. package/dist/components/mixins/dom.js +41 -0
  97. package/dist/components/mixins/languageMixin.js +38 -0
  98. package/dist/components/mixins/outlineConfigPlugin.js +40 -0
  99. package/dist/components/mixins/router-link.js +23 -0
  100. package/dist/components/mixins/themeMixin.js +29 -0
  101. package/dist/components/noticebar/index.js +8 -0
  102. package/dist/components/noticebar/index.vue +247 -0
  103. package/dist/components/noticebar/style.less +332 -0
  104. package/dist/components/overlay/index.js +8 -0
  105. package/dist/components/overlay/index.vue +161 -0
  106. package/dist/components/overlay/style.less +23 -0
  107. package/dist/components/pagebreak/index.js +7 -0
  108. package/dist/components/pagebreak/index.vue +60 -0
  109. package/dist/components/pagebreak/style.less +43 -0
  110. package/dist/components/popover/index.js +8 -0
  111. package/dist/components/popover/index.vue +99 -0
  112. package/dist/components/popover/style.less +346 -0
  113. package/dist/components/popover/vue-popover.vue +314 -0
  114. package/dist/components/radio/assist.js +34 -0
  115. package/dist/components/radio/index.js +8 -0
  116. package/dist/components/radio/index.vue +159 -0
  117. package/dist/components/radio/radio-group/index.vue +70 -0
  118. package/dist/components/radio/style.less +297 -0
  119. package/dist/components/result/completed-dark.png +0 -0
  120. package/dist/components/result/completed.png +0 -0
  121. package/dist/components/result/error-dark.png +0 -0
  122. package/dist/components/result/error.png +0 -0
  123. package/dist/components/result/index.js +8 -0
  124. package/dist/components/result/index.vue +75 -0
  125. package/dist/components/result/style.less +42 -0
  126. package/dist/components/result/wait-dark.png +0 -0
  127. package/dist/components/result/wait.png +0 -0
  128. package/dist/components/selector/index.js +8 -0
  129. package/dist/components/selector/index.vue +124 -0
  130. package/dist/components/selector/style.less +474 -0
  131. package/dist/components/skeleton/index.js +7 -0
  132. package/dist/components/skeleton/index.vue +142 -0
  133. package/dist/components/skeleton/style.less +192 -0
  134. package/dist/components/slider/draggable.js +49 -0
  135. package/dist/components/slider/index.js +7 -0
  136. package/dist/components/slider/index.vue +173 -0
  137. package/dist/components/slider/style.less +96 -0
  138. package/dist/components/slider/utils.js +60 -0
  139. package/dist/components/step/index.js +7 -0
  140. package/dist/components/step/index.vue +48 -0
  141. package/dist/components/step/style.less +59 -0
  142. package/dist/components/step-item/index.js +7 -0
  143. package/dist/components/step-item/index.vue +117 -0
  144. package/dist/components/step-item/style.less +361 -0
  145. package/dist/components/style/index.vue +42 -0
  146. package/dist/components/switch/index.js +8 -0
  147. package/dist/components/switch/index.vue +72 -0
  148. package/dist/components/switch/style.less +56 -0
  149. package/dist/components/tabs/index.js +8 -0
  150. package/dist/components/tabs/index.vue +145 -0
  151. package/dist/components/tabs/style.less +385 -0
  152. package/dist/components/tabs/tab/index.vue +56 -0
  153. package/dist/components/tag/index.js +7 -0
  154. package/dist/components/tag/index.vue +50 -0
  155. package/dist/components/tag/style.less +211 -0
  156. package/dist/components/title/index.js +8 -0
  157. package/dist/components/title/index.vue +92 -0
  158. package/dist/components/title/style.less +188 -0
  159. package/dist/components/toast/index.js +80 -0
  160. package/dist/components/toast/index.vue +44 -0
  161. package/dist/components/toast/style.less +55 -0
  162. package/dist/components/transition/index.js +8 -0
  163. package/dist/components/transition/index.vue +13 -0
  164. package/dist/components/transition/style.less +208 -0
  165. package/dist/components/upload/index.js +7 -0
  166. package/dist/components/upload/index.vue +224 -0
  167. package/dist/components/upload/style.less +156 -0
  168. package/dist/demo.html +10 -0
  169. package/dist/locale/ar.js +98 -0
  170. package/dist/locale/en.js +98 -0
  171. package/dist/locale/zh.js +98 -0
  172. package/dist/token.css +2982 -0
  173. package/dist/vdesign-ui.common.js +27204 -0
  174. package/dist/vdesign-ui.css +1 -0
  175. package/dist/vdesign-ui.umd.js +27214 -0
  176. package/dist/vdesign-ui.umd.min.js +32 -0
  177. package/package.json +1 -1
  178. package/dist/css/chunk-1952c402.04c2303e.css +0 -1
  179. package/dist/css/chunk-6a5c6104.38021b56.css +0 -1
  180. package/dist/css/chunk-vendors.4ecfba63.css +0 -1
  181. package/dist/css/sites.395ce21f.css +0 -1
  182. package/dist/img/bg_mobile.5909f667.png +0 -0
  183. package/dist/img/icon.a67073c3.svg +0 -7
  184. package/dist/img/iphoneX.38c8778e.png +0 -0
  185. package/dist/img/logo-white.fad4f907.png +0 -0
  186. package/dist/img/logo.1eda11d6.png +0 -0
  187. package/dist/img/qrcode2.0a9d9044.png +0 -0
  188. package/dist/index.html +0 -1
  189. package/dist/js/chunk-1952c402.c58ecfb5.js +0 -1
  190. package/dist/js/chunk-2d2183be.2a64419d.js +0 -1
  191. package/dist/js/chunk-6a5c6104.c8fa5635.js +0 -1
  192. package/dist/js/chunk-vendors.490b7673.js +0 -37
  193. package/dist/js/sites.5a217467.js +0 -1
@@ -0,0 +1,291 @@
1
+ @checkbox-prefix-cls: vd-checkbox;
2
+ @checkbox-button-prefix-cls: vd-checkbox-button;
3
+ @checkbox-icon-prefix-cls: ~"@{checkbox-prefix-cls}__icon";
4
+
5
+ .@{checkbox-prefix-cls} {
6
+ cursor: pointer;
7
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
8
+ display: flex;
9
+ -webkit-tap-highlight-color: transparent;
10
+ }
11
+
12
+ // 普通状态
13
+ .@{checkbox-prefix-cls} {
14
+
15
+ &__input{
16
+ position: relative;
17
+ margin-inline-end: calc(var(--spacing-check_radio-icon-margin_right) * 1px);
18
+ width: calc(var(--icon-check_radio-sizing) * 1px);
19
+ height: calc(var(--icon-check_radio-sizing) * 1px);
20
+ }
21
+
22
+ &__text {
23
+ color: var(--color-check_radio-text-default);
24
+ font-size: calc(var(--en-single-f-d-r-fontSize) * 1px);
25
+ font-weight: var(--en-single-f-d-r-fontWeight);
26
+ }
27
+
28
+ &__description {
29
+ line-height: 1;
30
+ margin-top: calc(var(--spacing-check_radio-text-margin_top) * 1px);
31
+ color: var(--color-check_radio-text_describe-default);
32
+ font-size: calc(var(--en-single-f-b-r-fontSize) * 1px);
33
+ font-weight: var(--en-single-f-b-r-fontWeight);
34
+ }
35
+
36
+ .@{checkbox-icon-prefix-cls} {
37
+ display: block;
38
+ width: calc(var(--icon-check_radio-sizing) * 1px);
39
+ height: calc(var(--icon-check_radio-sizing) * 1px);
40
+ position: relative;
41
+ top: 0;
42
+ left: 0;
43
+ &::before{
44
+ position: absolute;
45
+ box-sizing: border-box;
46
+ content: ' ';
47
+ pointer-events: none;
48
+ top: -50%;
49
+ right: -50%;
50
+ bottom: -50%;
51
+ left: -50%;
52
+ border: 0 solid var(--color-check_radio-default);
53
+ -webkit-transform: scale(0.5);
54
+ transform: scale(0.5);
55
+ border-width: 3px;
56
+ }
57
+ }
58
+
59
+ &__original {
60
+ width: 100%;
61
+ height: 100%;
62
+ position: absolute;
63
+ top: 0;
64
+ bottom: 0;
65
+ left: 0;
66
+ right: 0;
67
+ z-index: 1;
68
+ cursor: pointer;
69
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
70
+ opacity: 0;
71
+
72
+ }
73
+ }
74
+
75
+ // 选中状态
76
+ .@{checkbox-prefix-cls}--checked {
77
+
78
+ .@{checkbox-prefix-cls} {
79
+ &__text {
80
+ font-size: calc(var(--en-single-f-d-s-fontSize) * 1px);
81
+ font-weight: var(--en-single-f-d-s-fontWeight);
82
+ }
83
+ }
84
+
85
+ .@{checkbox-icon-prefix-cls} {
86
+ background: var(--color-check_radio-active);
87
+ border-radius: 2px;
88
+ border: 0;
89
+ &::after{
90
+ content: "";
91
+ box-sizing: content-box;
92
+ display: table;
93
+ width: 4px;
94
+ height: 8px;
95
+ position: absolute;
96
+ top: 2px;
97
+ left: 5px;
98
+ border: 2px solid var(--bg-color-1);
99
+ border-top: 0;
100
+ border-left: 0;
101
+ transform: rotate(45deg) scale(1);
102
+ }
103
+ &::before{
104
+ display: none;
105
+ }
106
+ }
107
+ }
108
+
109
+
110
+ // 禁用
111
+ .@{checkbox-prefix-cls}--disabled {
112
+ cursor: not-allowed;
113
+ // opacity: var(--opacity-30);
114
+
115
+ .@{checkbox-icon-prefix-cls} {
116
+ &::before{
117
+ border-color: var(--color-check_radio-disable);
118
+ }
119
+ }
120
+
121
+ .@{checkbox-prefix-cls}__text{
122
+ color: var(--color-check_radio-text-disable);
123
+ }
124
+
125
+ .@{checkbox-prefix-cls}__description{
126
+ color: var(--color-check_radio-text_describe-disable);
127
+ }
128
+
129
+ }
130
+
131
+ .@{checkbox-prefix-cls}--checked.@{checkbox-prefix-cls}--disabled{
132
+ .@{checkbox-icon-prefix-cls} {
133
+ background: var(--color-check_radio-active-disable);
134
+ }
135
+ }
136
+
137
+ // 半选状态
138
+ .@{checkbox-prefix-cls}--indeterminate {
139
+
140
+ & + .@{checkbox-prefix-cls}__label {
141
+ .@{checkbox-prefix-cls}__text {
142
+ font-size: calc(var(--en-single-f-d-s-fontSize) * 1px);
143
+ font-weight: var(--en-single-f-d-s-fontWeight);
144
+ }
145
+ }
146
+
147
+ .@{checkbox-icon-prefix-cls} {
148
+ background: #1BC47D;
149
+ border-radius: 2px;
150
+ border: 0;
151
+ &::after{
152
+ content: "";
153
+ width: 9px;
154
+ height: 2px;
155
+ position: absolute;
156
+ left: 50%;
157
+ top: 50%;
158
+ transform: translate(-50%, -50%);
159
+ border: 0;
160
+ background-color: var(--bg-color-1);
161
+ }
162
+
163
+ &::before{
164
+ display: none;
165
+ }
166
+ }
167
+
168
+ }
169
+
170
+
171
+
172
+
173
+
174
+ .@{checkbox-button-prefix-cls}{
175
+ position: relative;
176
+ display: inline-flex;
177
+ align-items: center;
178
+ flex-direction: column;
179
+ justify-content: center;
180
+ line-height: 1;
181
+ width: 100%;
182
+ -webkit-tap-highlight-color: transparent;
183
+ background-color: var(--color-check_radio-check_bg-default);
184
+
185
+ &--large {
186
+ height: calc(var(--height-check_radio-check_button_l) * 1px);
187
+ border-radius: calc(var(--radius-check_radio-check_l) * 1px);
188
+
189
+ .@{checkbox-button-prefix-cls}__text {
190
+ margin-block-start: calc(var(--spacing-check_radio-check_icon-margin_bottom) * 1px);
191
+ font-size: 12px;
192
+ // color: rgba(0, 0, 0, 0.85);
193
+ color: var(--color-check_radio-radio_button_text-default);
194
+ }
195
+
196
+ }
197
+
198
+ &--medium {
199
+ height: calc(var(--height-check_radio-check_button_m) * 1px);
200
+ border-radius: calc(var(--radius-check_radio-m) * 1px);
201
+
202
+ .@{checkbox-button-prefix-cls}{
203
+ &__description {
204
+ margin-block-start: calc(var(--spacing-check_radio-check_describe-margin_top) * 1px);
205
+ font-size: 11px;
206
+ // color: rgba(0, 0, 0, 0.3);
207
+ color: var(--color-check_radio-check_button_text_describe-default);
208
+ }
209
+ }
210
+ }
211
+
212
+ &--small {
213
+ height: calc(var(--height-check_radio-check_button_s) * 1px);
214
+ border-radius: calc(var(--radius-check_radio-s) * 1px);
215
+ display: flex;
216
+ flex-direction: row;
217
+ }
218
+
219
+
220
+ &__icon--large {
221
+ color: var(--color-check_radio-check_button_icon-default);
222
+ font-size: calc(var(--icon-check_radio-check_l) * 1px);
223
+ }
224
+
225
+ &__icon--small {
226
+ font-size: calc(var(--icon-check_radio-check_s) * 1px);
227
+ color: var(--text-color-h2);
228
+ margin-inline-end: calc(var(--spacing-check_radio-check_icon-margin_right) * 1px);
229
+ }
230
+
231
+ &__text {
232
+ color: var(--color-check_radio-radio_button_text-default);
233
+ font-size: calc(var(--en-single-f-c-r-fontSize) * 1px);
234
+ font-weight: var(--en-single-f-c-r-fontWeight);
235
+ }
236
+
237
+ &--checked {
238
+ background-color: var(--color-check_radio-check_bg-active);
239
+ border-color: var(--color-check_radio-radio_border-active);
240
+
241
+ .@{checkbox-button-prefix-cls}__text {
242
+ color: var(--color-check_radio-radio_button_text-active);
243
+ font-size: calc(var(--en-single-f-c-s-fontSize) * 1px);
244
+ font-weight: var(--en-single-f-c-s-fontWeight);
245
+ }
246
+
247
+ .@{checkbox-button-prefix-cls}__icon--large,
248
+ .@{checkbox-button-prefix-cls}__icon--small,
249
+ .@{checkbox-button-prefix-cls}__description {
250
+ color: var(--color-check_radio-check_button_icon-active);
251
+ }
252
+
253
+ &.@{checkbox-button-prefix-cls}{
254
+ &--large{
255
+ .@{checkbox-button-prefix-cls}__text {
256
+ font-size: 12px;
257
+ }
258
+ }
259
+
260
+ }
261
+ }
262
+
263
+ &--disabled{
264
+ cursor: not-allowed;
265
+ .@{checkbox-button-prefix-cls}__text {
266
+ color: var(--color-check_radio-radio_button_text-disable);
267
+ }
268
+ .@{checkbox-button-prefix-cls}__icon--large,
269
+ .@{checkbox-button-prefix-cls}__icon--small,
270
+ .@{checkbox-button-prefix-cls}__description{
271
+ color: var(--color-check_radio-check_button_icon-disable);
272
+ }
273
+ }
274
+ }
275
+
276
+ .@{checkbox-prefix-cls}-group {
277
+ display: flex;
278
+ flex-direction: column;
279
+ gap: calc(var(--spacing-check_radio-group-margin_x)*1px);
280
+
281
+ &__card{
282
+ display: flex;
283
+ flex-wrap: wrap;
284
+ flex-direction: row;
285
+ gap: 12px;
286
+ }
287
+
288
+ .@{checkbox-button-prefix-cls}{
289
+ flex: 1;
290
+ }
291
+ }
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <div class="vd-market-state" :class="stateClasses" v-if="state">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ const prefixCls = 'vd-market-state';
9
+
10
+ export default {
11
+ name: 'vd-market-state',
12
+ props: {
13
+ state: {
14
+ type: String,
15
+ default: 'open'
16
+ }
17
+ },
18
+ computed: {
19
+ stateClasses() {
20
+ return [
21
+ {
22
+ [`${prefixCls}--${this.state}`]: this.state,
23
+
24
+ }
25
+ ]
26
+ },
27
+ }
28
+ }
29
+ </script>
30
+
31
+ <style lang="less">
32
+ .vd-market-state {
33
+ display: inline-flex;
34
+ align-items: baseline;
35
+ font-size: calc(var(--en-single-f-b-r-fontSize) * 1px);
36
+ font-weight: var(--en-single-f-b-r-fontWeight);
37
+
38
+ &::before {
39
+ content: '';
40
+ display: inline-block;
41
+ border-radius: 50%;
42
+ width: calc(var(--width-dropdown-state_drop) * 1px);
43
+ height: calc(var(--width-dropdown-state_drop) * 1px);
44
+ margin-inline-end: calc(var(--spacing-dropdown-state_drop-margin_right) * 1px);
45
+ background-color: var(--color-dropdown-state-open);
46
+ }
47
+
48
+ &--open {
49
+ color: var(--color-dropdown-state-open);
50
+
51
+ &::before {
52
+ background-color: var(--color-dropdown-state-open);
53
+ }
54
+ }
55
+
56
+ &--preopen {
57
+ color: var(--color-dropdown-state-preopen);
58
+
59
+ &::before {
60
+ background-color: var(--color-dropdown-state-preopen);
61
+ }
62
+ }
63
+
64
+ &--close {
65
+ color: var(--color-dropdown-state-close);
66
+
67
+ &::before {
68
+ background-color: var(--text-color-h3);
69
+ }
70
+ }
71
+
72
+ &--fusing {
73
+ color: var(--color-dropdown-state-fusing);
74
+
75
+ &::before {
76
+ background-color: var(--color-dropdown-state-fusing);
77
+ }
78
+ }
79
+ }
80
+ </style>
@@ -0,0 +1,10 @@
1
+ import DataList from './index.vue';
2
+ import './style.less';
3
+
4
+ DataList.install = function (Vue) {
5
+ Vue.component(DataList.name, DataList);
6
+ };
7
+
8
+ export default {
9
+ DataList
10
+ }
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <div class="vd-datalist">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+ <script>
7
+ export default {
8
+ name: 'vd-datalist',
9
+ data() {
10
+ return {
11
+ }
12
+ },
13
+ methods: {
14
+ }
15
+ }
16
+ </script>
17
+ <style lang="less">
18
+ @import './style.less';
19
+ </style>