srcdev-nuxt-components 2.1.10 → 2.1.12
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.
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="animated-svg-text" :class="[elementClasses]">
|
|
3
|
+
<slot name="text"></slot>
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script setup lang="ts">
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
styleClassPassthrough: {
|
|
10
|
+
type: Array as PropType<string[]>,
|
|
11
|
+
default: () => [],
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const { elementClasses, resetElementClasses } = useStyleClassPassthrough(props.styleClassPassthrough);
|
|
16
|
+
|
|
17
|
+
watch(
|
|
18
|
+
() => props.styleClassPassthrough,
|
|
19
|
+
() => {
|
|
20
|
+
resetElementClasses(props.styleClassPassthrough);
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<style lang="css">
|
|
26
|
+
@keyframes textAnimation {
|
|
27
|
+
0% {
|
|
28
|
+
stroke-dashoffset: var(--_animated-svg-text-stroke-dasharray);
|
|
29
|
+
stroke-width: 0.3;
|
|
30
|
+
}
|
|
31
|
+
70% {
|
|
32
|
+
fill: transparent;
|
|
33
|
+
stroke-width: 0.3;
|
|
34
|
+
}
|
|
35
|
+
100% {
|
|
36
|
+
fill: var(--_animated-svg-text-color);
|
|
37
|
+
stroke-dashoffset: 0;
|
|
38
|
+
stroke-width: 0;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
.animated-svg-text {
|
|
42
|
+
/* Component styles */
|
|
43
|
+
|
|
44
|
+
svg path {
|
|
45
|
+
fill: transparent;
|
|
46
|
+
stroke: var(--_animated-svg-text-color);
|
|
47
|
+
stroke-width: 0.3;
|
|
48
|
+
stroke-dasharray: var(--_animated-svg-text-stroke-dasharray);
|
|
49
|
+
stroke-dashoffset: var(--_animated-svg-text-stroke-dasharray);
|
|
50
|
+
animation: textAnimation 4s ease-in-out 1 forwards;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
</style>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<slot name="summary"></slot>
|
|
6
6
|
</span>
|
|
7
7
|
<slot name="summaryIcon">
|
|
8
|
-
<Icon name="bi:caret-down-fill" class="icon mi-12" :class="
|
|
8
|
+
<Icon name="bi:caret-down-fill" class="icon mi-12" :class="iconSize" />
|
|
9
9
|
</slot>
|
|
10
10
|
</summary>
|
|
11
11
|
<div class="display-details-content" :aria-labelledby="triggerId" :id="contentId" role="region" ref="contentRef">
|
|
@@ -234,70 +234,72 @@ onMounted(() => {
|
|
|
234
234
|
</script>
|
|
235
235
|
|
|
236
236
|
<style lang="css">
|
|
237
|
-
.display-details {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
237
|
+
@scope (.display-details) {
|
|
238
|
+
.display-details {
|
|
239
|
+
/* Component setup */
|
|
240
|
+
--_display-details-icon-transform: scaleY(1);
|
|
241
|
+
--_display-details-icon-size: 1.2rem;
|
|
242
|
+
|
|
243
|
+
/* Configurable properties */
|
|
244
|
+
--_display-details-border: none;
|
|
245
|
+
--_display-details-outline: none;
|
|
246
|
+
--_display-details-box-shadow: none;
|
|
247
|
+
--_display-details-border-radius: 0;
|
|
248
|
+
--_display-details-mbe: 1em;
|
|
249
|
+
|
|
250
|
+
--_display-details-summary-gap: 12px;
|
|
251
|
+
--_display-details-summary-flex-direction: row;
|
|
252
|
+
|
|
253
|
+
--_display-details-content-padding: 0;
|
|
254
|
+
|
|
255
|
+
&.medium {
|
|
256
|
+
--_display-details-icon-size: 1.8rem;
|
|
257
|
+
}
|
|
258
|
+
&.large {
|
|
259
|
+
--_display-details-icon-size: 2.4rem;
|
|
260
|
+
}
|
|
251
261
|
|
|
252
|
-
|
|
262
|
+
&[open] {
|
|
263
|
+
--_display-details-icon-transform: scaleY(-1);
|
|
264
|
+
}
|
|
253
265
|
|
|
254
|
-
|
|
255
|
-
--_display-details-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
--_display-details-
|
|
259
|
-
}
|
|
266
|
+
border: var(--_display-details-border);
|
|
267
|
+
outline: var(--_display-details-outline);
|
|
268
|
+
box-shadow: var(--_display-details-box-shadow);
|
|
269
|
+
border-radius: var(--_display-details-border-radius);
|
|
270
|
+
margin-block-end: var(--_display-details-mbe);
|
|
260
271
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
}
|
|
272
|
+
.display-details-summary {
|
|
273
|
+
list-style: none;
|
|
264
274
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
margin-block-end: var(--_display-details-mbe);
|
|
275
|
+
&::-webkit-details-marker,
|
|
276
|
+
&::marker {
|
|
277
|
+
display: none;
|
|
278
|
+
}
|
|
270
279
|
|
|
271
|
-
|
|
272
|
-
|
|
280
|
+
display: flex !important;
|
|
281
|
+
flex-direction: var(--_display-details-summary-flex-direction);
|
|
282
|
+
align-items: center;
|
|
283
|
+
gap: var(--_display-details-summary-gap);
|
|
284
|
+
overflow: clip;
|
|
273
285
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
286
|
+
.label {
|
|
287
|
+
display: block;
|
|
288
|
+
flex-grow: 1;
|
|
289
|
+
}
|
|
278
290
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
align-items: center;
|
|
282
|
-
gap: var(--_display-details-summary-gap);
|
|
283
|
-
overflow: clip;
|
|
291
|
+
.icon {
|
|
292
|
+
display: block;
|
|
284
293
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
294
|
+
font-size: var(--_display-details-icon-size);
|
|
295
|
+
transform: var(--_display-details-icon-transform);
|
|
296
|
+
transition: transform 200ms;
|
|
297
|
+
}
|
|
288
298
|
}
|
|
289
299
|
|
|
290
|
-
.
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
font-size: var(--_display-details-icon-size);
|
|
294
|
-
transform: var(--_display-details-icon-transform);
|
|
295
|
-
transition: transform 200ms;
|
|
300
|
+
.display-details-content {
|
|
301
|
+
padding: var(--_display-details-content-padding);
|
|
296
302
|
}
|
|
297
303
|
}
|
|
298
|
-
|
|
299
|
-
.display-details-content {
|
|
300
|
-
padding: var(--_display-details-content-padding);
|
|
301
|
-
}
|
|
302
304
|
}
|
|
303
305
|
</style>
|
package/package.json
CHANGED