@redseed/redseed-ui-vue3 8.4.6 → 8.6.0
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.
|
@@ -309,6 +309,31 @@ For smaller cards that should display more columns per row, use the compact vari
|
|
|
309
309
|
</template>
|
|
310
310
|
```
|
|
311
311
|
|
|
312
|
+
### Meeting Card (Not Scheduled)
|
|
313
|
+
```vue
|
|
314
|
+
<template>
|
|
315
|
+
<Card draft :clickable="false" :hoverable="false">
|
|
316
|
+
<template #header>
|
|
317
|
+
<CardHeader>
|
|
318
|
+
Weekly 1:1
|
|
319
|
+
|
|
320
|
+
<template #badge>
|
|
321
|
+
<BadgeSecondary>
|
|
322
|
+
Not scheduled
|
|
323
|
+
</BadgeSecondary>
|
|
324
|
+
</template>
|
|
325
|
+
|
|
326
|
+
<template #subtitle>
|
|
327
|
+
No upcoming meeting
|
|
328
|
+
</template>
|
|
329
|
+
</CardHeader>
|
|
330
|
+
</template>
|
|
331
|
+
|
|
332
|
+
Schedule a time to connect.
|
|
333
|
+
</Card>
|
|
334
|
+
</template>
|
|
335
|
+
```
|
|
336
|
+
|
|
312
337
|
### Card with Meta Information
|
|
313
338
|
```vue
|
|
314
339
|
<template>
|
|
@@ -342,4 +367,4 @@ For smaller cards that should display more columns per row, use the compact vari
|
|
|
342
367
|
- Interactive cards (ButtonCard, RadioCard) are keyboard accessible
|
|
343
368
|
- Focus states are clearly visible
|
|
344
369
|
- Screen readers can navigate through card content and actions
|
|
345
|
-
- ARIA labels and roles are included where appropriate
|
|
370
|
+
- ARIA labels and roles are included where appropriate
|
package/index.js
CHANGED
|
@@ -32,6 +32,7 @@ export * from './src/components/MetaInfo'
|
|
|
32
32
|
export * from './src/components/Modal'
|
|
33
33
|
export * from './src/components/Pagination'
|
|
34
34
|
export * from './src/components/Progress'
|
|
35
|
+
export * from './src/components/Skeleton'
|
|
35
36
|
export * from './src/components/Social'
|
|
36
37
|
export * from './src/components/Sorting'
|
|
37
38
|
export * from './src/components/Switcher'
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
2
|
+
"name": "@redseed/redseed-ui-vue3",
|
|
3
|
+
"version": "8.6.0",
|
|
4
|
+
"description": "RedSeed UI Vue 3 components",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"repository": "https://github.com/redseedtraining/redseed-ui",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [],
|
|
11
|
+
"author": "",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@heroicons/vue": "2.2.0",
|
|
15
|
+
"@vueuse/components": "14.2.0",
|
|
16
|
+
"@vueuse/core": "14.2.1",
|
|
17
|
+
"lodash": "4.17.23",
|
|
18
|
+
"lottie-web": "5.13.0",
|
|
19
|
+
"vue": "3.5.28"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -51,6 +51,10 @@ const props = defineProps({
|
|
|
51
51
|
type: Boolean,
|
|
52
52
|
default: false,
|
|
53
53
|
},
|
|
54
|
+
draft: {
|
|
55
|
+
type: Boolean,
|
|
56
|
+
default: false,
|
|
57
|
+
},
|
|
54
58
|
})
|
|
55
59
|
|
|
56
60
|
const emit = defineEmits(['click'])
|
|
@@ -71,6 +75,7 @@ const cardClass = computed(() => [
|
|
|
71
75
|
'rsui-card--info': props.info,
|
|
72
76
|
'rsui-card--warning': props.warning,
|
|
73
77
|
'rsui-card--error': props.error,
|
|
78
|
+
'rsui-card--draft': props.draft,
|
|
74
79
|
'rsui-card--2xs': responsiveWidth.value['2xs'],
|
|
75
80
|
'rsui-card--xs': responsiveWidth.value['xs'],
|
|
76
81
|
'rsui-card--sm': responsiveWidth.value['sm'],
|
|
@@ -90,6 +95,26 @@ function onClick() {
|
|
|
90
95
|
</script>
|
|
91
96
|
<template>
|
|
92
97
|
<div ref="cardElement" :class="cardClass" data-testid="card">
|
|
98
|
+
<svg
|
|
99
|
+
v-if="draft"
|
|
100
|
+
class="rsui-card__draft-border"
|
|
101
|
+
width="100%"
|
|
102
|
+
height="100%"
|
|
103
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
104
|
+
aria-hidden="true"
|
|
105
|
+
focusable="false"
|
|
106
|
+
>
|
|
107
|
+
<rect
|
|
108
|
+
width="100%"
|
|
109
|
+
height="100%"
|
|
110
|
+
fill="none"
|
|
111
|
+
rx="12"
|
|
112
|
+
stroke="currentColor"
|
|
113
|
+
stroke-width="1"
|
|
114
|
+
stroke-dasharray="8 16"
|
|
115
|
+
stroke-linecap="square"
|
|
116
|
+
></rect>
|
|
117
|
+
</svg>
|
|
93
118
|
<div v-if="clickable" class="rsui-card__action-layer" :title="$attrs.title" @click="onClick"></div>
|
|
94
119
|
|
|
95
120
|
<div v-if="$slots.image"
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from 'vue'
|
|
3
|
+
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
line: {
|
|
6
|
+
type: Boolean,
|
|
7
|
+
default: false,
|
|
8
|
+
},
|
|
9
|
+
circle: {
|
|
10
|
+
type: Boolean,
|
|
11
|
+
default: false,
|
|
12
|
+
},
|
|
13
|
+
square: {
|
|
14
|
+
type: Boolean,
|
|
15
|
+
default: false,
|
|
16
|
+
},
|
|
17
|
+
full: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
default: false,
|
|
20
|
+
},
|
|
21
|
+
half: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
default: false,
|
|
24
|
+
},
|
|
25
|
+
oneThird: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
default: false,
|
|
28
|
+
},
|
|
29
|
+
twoThirds: {
|
|
30
|
+
type: Boolean,
|
|
31
|
+
default: false,
|
|
32
|
+
},
|
|
33
|
+
thick: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: false,
|
|
36
|
+
},
|
|
37
|
+
rounded: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
default: false,
|
|
40
|
+
},
|
|
41
|
+
start: {
|
|
42
|
+
type: Boolean,
|
|
43
|
+
default: false,
|
|
44
|
+
},
|
|
45
|
+
end: {
|
|
46
|
+
type: Boolean,
|
|
47
|
+
default: false,
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
const shape = computed(() => {
|
|
52
|
+
if (props.circle) return 'circle'
|
|
53
|
+
if (props.square) return 'square'
|
|
54
|
+
return 'line'
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
const widthClass = computed(() => {
|
|
58
|
+
if (props.twoThirds) return 'rsui-skeleton--two-thirds'
|
|
59
|
+
if (props.oneThird) return 'rsui-skeleton--one-third'
|
|
60
|
+
if (props.half) return 'rsui-skeleton--half'
|
|
61
|
+
if (props.full) return 'rsui-skeleton--full'
|
|
62
|
+
return 'rsui-skeleton--full'
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
const positionClass = computed(() => {
|
|
66
|
+
if (props.end) return 'rsui-skeleton--end'
|
|
67
|
+
if (props.start) return 'rsui-skeleton--start'
|
|
68
|
+
return ''
|
|
69
|
+
})
|
|
70
|
+
</script>
|
|
71
|
+
|
|
72
|
+
<template>
|
|
73
|
+
<div :class="['rsui-skeleton', widthClass, positionClass]">
|
|
74
|
+
<div
|
|
75
|
+
:class="[
|
|
76
|
+
shape === 'line' && 'rsui-skeleton__line',
|
|
77
|
+
shape === 'line' && props.thick && 'rsui-skeleton__line--thick',
|
|
78
|
+
shape === 'line' && props.rounded && 'rsui-skeleton__line--rounded',
|
|
79
|
+
shape === 'circle' && 'rsui-skeleton__circle',
|
|
80
|
+
shape === 'square' && 'rsui-skeleton__square',
|
|
81
|
+
shape === 'square' && props.rounded && 'rsui-skeleton__square--rounded',
|
|
82
|
+
]"
|
|
83
|
+
aria-hidden="true"
|
|
84
|
+
></div>
|
|
85
|
+
</div>
|
|
86
|
+
</template>
|