@redseed/redseed-ui-vue3 3.1.0 → 4.0.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.
- package/package.json +3 -3
- package/src/components/Avatar/AvatarText.vue +1 -1
- package/src/components/Badge/Badge.vue +4 -12
- package/src/components/Badge/index.js +0 -2
- package/src/components/Breadcrumbs/Breadcrumbs.vue +3 -3
- package/src/components/Button/ButtonPrimary.vue +9 -3
- package/src/components/Button/ButtonSecondary.vue +9 -2
- package/src/components/Button/ButtonSecondaryBrand.vue +23 -0
- package/src/components/Button/ButtonSecondaryBrandFull.vue +10 -0
- package/src/components/Button/ButtonSlot.vue +77 -63
- package/src/components/Button/ButtonTertiary.vue +9 -2
- package/src/components/Button/index.js +4 -22
- package/src/components/ButtonGroup/ButtonGroupItem.vue +3 -3
- package/src/components/Card/RadioCard.vue +12 -12
- package/src/components/CardGroup/CardGroup.vue +10 -2
- package/src/components/DropdownMenu/DropdownOption.vue +1 -1
- package/src/components/Empty/Empty.vue +1 -1
- package/src/components/Form/FormFieldset.vue +1 -1
- package/src/components/Form/FormSlot.vue +2 -2
- package/src/components/FormField/FormFieldCheckbox.vue +6 -6
- package/src/components/FormField/FormFieldPasswordToggle.vue +1 -1
- package/src/components/FormField/FormFieldRadioGroup.vue +1 -1
- package/src/components/FormField/FormFieldSearch.vue +1 -1
- package/src/components/FormField/FormFieldSelect.vue +6 -6
- package/src/components/FormField/FormFieldSlot.vue +4 -4
- package/src/components/FormField/FormFieldText.vue +7 -7
- package/src/components/FormField/FormFieldTextSuffix.vue +1 -1
- package/src/components/FormField/FormFieldTextarea.vue +4 -4
- package/src/components/FormField/FormFieldUploaderWrapper.vue +5 -5
- package/src/components/HTML/BodyText.vue +2 -2
- package/src/components/Image/Image.vue +2 -2
- package/src/components/Link/LinkPrimary.vue +1 -1
- package/src/components/LinkedList/LinkedListItem.vue +5 -5
- package/src/components/Loader/Loader.vue +4 -23
- package/src/components/MessageBox/MessageBox.vue +1 -1
- package/src/components/MetaInfo/MetaInfo.vue +3 -3
- package/src/components/PageHeading/PageHeading.vue +67 -66
- package/src/components/Pagination/PaginationItem.vue +2 -2
- package/src/components/Pagination/RecordCount.vue +1 -1
- package/src/components/Progress/ProgressCircle.vue +2 -2
- package/src/components/Progress/ProgressTrackerStep.vue +3 -3
- package/src/components/SectionHeading/SectionHeading.vue +1 -1
- package/src/components/Sorting/Sorting.vue +2 -2
- package/src/components/Switcher/Switcher.vue +1 -1
- package/src/components/Switcher/SwitcherItem.vue +1 -1
- package/src/components/Toggle/Toggle.vue +6 -6
- package/src/components/Badge/BadgeDanger.vue +0 -10
- package/src/components/Button/ButtonDanger.vue +0 -16
- package/src/components/Button/ButtonDangerFull.vue +0 -10
- package/src/components/Button/ButtonDangerFullRounded.vue +0 -10
- package/src/components/Button/ButtonDangerRounded.vue +0 -10
- package/src/components/Button/ButtonPrimaryFullRounded.vue +0 -10
- package/src/components/Button/ButtonPrimaryRounded.vue +0 -10
- package/src/components/Button/ButtonSecondaryFullRounded.vue +0 -10
- package/src/components/Button/ButtonSecondaryRounded.vue +0 -10
- package/src/components/Button/ButtonTertiaryFullRounded.vue +0 -10
- package/src/components/Button/ButtonTertiaryRounded.vue +0 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redseed/redseed-ui-vue3",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "RedSeed UI Vue 3 components",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"license": "ISC",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@heroicons/vue": "^2.2.0",
|
|
14
|
-
"@vueuse/components": "^12.
|
|
15
|
-
"@vueuse/core": "^12.
|
|
14
|
+
"@vueuse/components": "^12.8.2",
|
|
15
|
+
"@vueuse/core": "^12.7.0",
|
|
16
16
|
"lodash": "^4.17.21",
|
|
17
17
|
"lottie-web": "^5.12.2",
|
|
18
18
|
"vue": "^3.5.13"
|
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
</template>
|
|
8
8
|
<style scoped lang='scss'>
|
|
9
9
|
.rsui-avatar-circle {
|
|
10
|
-
@apply w-full h-full rounded-full bg-
|
|
10
|
+
@apply w-full h-full rounded-full bg-rsui-grey-100 flex items-center justify-center text-rsui-grey-500 border border-rsui-grey-300 font-semibold;
|
|
11
11
|
}
|
|
12
12
|
</style>
|
|
@@ -26,10 +26,6 @@ const props = defineProps({
|
|
|
26
26
|
type: Boolean,
|
|
27
27
|
default: false,
|
|
28
28
|
},
|
|
29
|
-
danger: {
|
|
30
|
-
type: Boolean,
|
|
31
|
-
default: false,
|
|
32
|
-
},
|
|
33
29
|
})
|
|
34
30
|
|
|
35
31
|
const defaultSize = computed(() => !props.sm && !props.md)
|
|
@@ -43,7 +39,6 @@ const badgeClass = computed(() => [
|
|
|
43
39
|
'rsui-badge--info': props.info,
|
|
44
40
|
'rsui-badge--success': props.success,
|
|
45
41
|
'rsui-badge--warning': props.warning,
|
|
46
|
-
'rsui-badge--danger': props.danger,
|
|
47
42
|
},
|
|
48
43
|
])
|
|
49
44
|
|
|
@@ -72,19 +67,16 @@ defineExpose({
|
|
|
72
67
|
@apply px-2 py-2;
|
|
73
68
|
}
|
|
74
69
|
&--neutral {
|
|
75
|
-
@apply text-rsui-
|
|
70
|
+
@apply text-rsui-grey-900 bg-rsui-grey-200;
|
|
76
71
|
}
|
|
77
72
|
&--info {
|
|
78
|
-
@apply text-
|
|
73
|
+
@apply text-white bg-rsui-info-500;
|
|
79
74
|
}
|
|
80
75
|
&--success {
|
|
81
|
-
@apply text-
|
|
76
|
+
@apply text-white bg-rsui-success-500;
|
|
82
77
|
}
|
|
83
78
|
&--warning {
|
|
84
|
-
@apply text-
|
|
85
|
-
}
|
|
86
|
-
&--danger {
|
|
87
|
-
@apply text-danger-content bg-danger;
|
|
79
|
+
@apply text-white bg-rsui-warning-500;
|
|
88
80
|
}
|
|
89
81
|
|
|
90
82
|
:deep(svg) {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import Badge from './Badge.vue'
|
|
2
|
-
import BadgeDanger from './BadgeDanger.vue'
|
|
3
2
|
import BadgeInfo from './BadgeInfo.vue'
|
|
4
3
|
import BadgeNeutral from './BadgeNeutral.vue'
|
|
5
4
|
import BadgeSuccess from './BadgeSuccess.vue'
|
|
@@ -8,7 +7,6 @@ import BadgeGroup from './BadgeGroup.vue'
|
|
|
8
7
|
|
|
9
8
|
export {
|
|
10
9
|
Badge,
|
|
11
|
-
BadgeDanger,
|
|
12
10
|
BadgeInfo,
|
|
13
11
|
BadgeNeutral,
|
|
14
12
|
BadgeSuccess,
|
|
@@ -38,11 +38,11 @@ function clickItem(item) {
|
|
|
38
38
|
@apply flex flex-wrap items-center gap-x-2 gap-y-2;
|
|
39
39
|
&__item {
|
|
40
40
|
@apply relative select-none pr-4 last:pr-0 last:after:hidden;
|
|
41
|
-
@apply text-sm text-rsui-
|
|
41
|
+
@apply text-sm text-rsui-grey-400 leading-6;
|
|
42
42
|
@apply after:absolute after:right-0.5 after:content-['\007C'];
|
|
43
|
-
@apply after:w-0.5 after:h-full after:text-rsui-
|
|
43
|
+
@apply after:w-0.5 after:h-full after:text-rsui-grey-400;
|
|
44
44
|
&--action {
|
|
45
|
-
@apply cursor-pointer hover:text-rsui-
|
|
45
|
+
@apply cursor-pointer hover:text-rsui-grey-900 transition-colors duration-200;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { computed } from 'vue'
|
|
3
2
|
import ButtonSlot from './ButtonSlot.vue'
|
|
4
3
|
</script>
|
|
5
4
|
<template>
|
|
@@ -10,8 +9,15 @@ import ButtonSlot from './ButtonSlot.vue'
|
|
|
10
9
|
<style lang="scss" scoped>
|
|
11
10
|
.rsui-button-primary {
|
|
12
11
|
// default colors
|
|
13
|
-
@apply
|
|
12
|
+
@apply text-primary-foreground bg-primary-background border-primary-background;
|
|
13
|
+
// default hover state
|
|
14
|
+
@apply hover:text-primary-foreground-hover hover:bg-primary-background-hover hover:border-primary-background-hover;
|
|
15
|
+
// default focus state
|
|
16
|
+
@apply focus-visible:ring-primary-background focus-visible:border-primary-background;
|
|
14
17
|
// default active state
|
|
15
|
-
@apply active:
|
|
18
|
+
@apply active:bg-primary-background active:border-primary-background;
|
|
19
|
+
// default disabled state
|
|
20
|
+
@apply disabled:bg-rsui-grey-200 disabled:border-rsui-grey-200 disabled:text-rsui-grey-400;
|
|
21
|
+
@apply disabled:active:bg-rsui-grey-200 disabled:active:border-rsui-grey-200;
|
|
16
22
|
}
|
|
17
23
|
</style>
|
|
@@ -9,8 +9,15 @@ import ButtonSlot from './ButtonSlot.vue'
|
|
|
9
9
|
<style lang="scss" scoped>
|
|
10
10
|
.rsui-button-secondary {
|
|
11
11
|
// default colors
|
|
12
|
-
@apply
|
|
12
|
+
@apply text-rsui-grey-800 bg-white border-rsui-grey-700;
|
|
13
|
+
// default hover state
|
|
14
|
+
@apply hover:text-rsui-grey-900 hover:bg-white hover:border-rsui-grey-900;
|
|
15
|
+
// default focus state
|
|
16
|
+
@apply focus-visible:ring-rsui-grey-700 focus-visible:border-rsui-grey-700;
|
|
13
17
|
// default active state
|
|
14
|
-
@apply active:
|
|
18
|
+
@apply active:bg-white active:border-rsui-grey-700;
|
|
19
|
+
// default disabled state
|
|
20
|
+
@apply disabled:bg-white disabled:border-rsui-grey-100 disabled:text-rsui-grey-400;
|
|
21
|
+
@apply disabled:active:bg-white disabled:active:border-rsui-grey-100;
|
|
15
22
|
}
|
|
16
23
|
</style>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import ButtonSlot from './ButtonSlot.vue'
|
|
3
|
+
</script>
|
|
4
|
+
<template>
|
|
5
|
+
<ButtonSlot class="rsui-button-secondary-brand">
|
|
6
|
+
<slot></slot>
|
|
7
|
+
</ButtonSlot>
|
|
8
|
+
</template>
|
|
9
|
+
<style lang="scss" scoped>
|
|
10
|
+
.rsui-button-secondary-brand {
|
|
11
|
+
// default colors
|
|
12
|
+
@apply text-primary-background bg-white border-primary-background;
|
|
13
|
+
// default hover state
|
|
14
|
+
@apply hover:text-primary-background-hover hover:bg-white hover:border-primary-background-hover;
|
|
15
|
+
// default focus state
|
|
16
|
+
@apply focus-visible:ring-primary-background focus-visible:border-primary-background;
|
|
17
|
+
// default active state
|
|
18
|
+
@apply active:bg-white active:border-primary-background;
|
|
19
|
+
// default disabled state
|
|
20
|
+
@apply disabled:bg-white disabled:border-rsui-grey-100 disabled:text-rsui-grey-400;
|
|
21
|
+
@apply disabled:active:bg-white disabled:active:border-rsui-grey-100;
|
|
22
|
+
}
|
|
23
|
+
</style>
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { ref, computed } from 'vue'
|
|
3
3
|
|
|
4
|
-
defineOptions({
|
|
5
|
-
inheritAttrs: false,
|
|
6
|
-
})
|
|
7
|
-
|
|
8
4
|
const props = defineProps({
|
|
9
|
-
xs: {
|
|
10
|
-
type: Boolean,
|
|
11
|
-
default: false,
|
|
12
|
-
},
|
|
13
5
|
sm: {
|
|
14
6
|
type: Boolean,
|
|
15
7
|
default: false,
|
|
@@ -22,15 +14,15 @@ const props = defineProps({
|
|
|
22
14
|
type: Boolean,
|
|
23
15
|
default: false,
|
|
24
16
|
},
|
|
25
|
-
|
|
17
|
+
xl: {
|
|
26
18
|
type: Boolean,
|
|
27
19
|
default: false,
|
|
28
20
|
},
|
|
29
|
-
|
|
21
|
+
'2xl': {
|
|
30
22
|
type: Boolean,
|
|
31
23
|
default: false,
|
|
32
24
|
},
|
|
33
|
-
|
|
25
|
+
full: {
|
|
34
26
|
type: Boolean,
|
|
35
27
|
default: false,
|
|
36
28
|
},
|
|
@@ -38,41 +30,60 @@ const props = defineProps({
|
|
|
38
30
|
|
|
39
31
|
defineEmits(['click'])
|
|
40
32
|
|
|
41
|
-
|
|
33
|
+
// button element ref
|
|
34
|
+
const buttonElementRef = ref(null)
|
|
42
35
|
|
|
43
|
-
|
|
36
|
+
// check if the button is an icon only button
|
|
37
|
+
const iconOnly = computed(() => buttonElementRef.value && !buttonElementRef.value.textContent)
|
|
44
38
|
|
|
45
|
-
|
|
39
|
+
// button size values
|
|
40
|
+
const sizes = {
|
|
41
|
+
sm: 'sm',
|
|
42
|
+
md: 'md',
|
|
43
|
+
lg: 'lg',
|
|
44
|
+
xl: 'xl',
|
|
45
|
+
'2xl': '2xl',
|
|
46
|
+
}
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
// computed button size
|
|
49
|
+
const buttonSize = computed(() => {
|
|
50
|
+
if (props.sm) return sizes.sm
|
|
51
|
+
if (props.md) return sizes.md
|
|
52
|
+
if (props.lg) return sizes.lg
|
|
53
|
+
if (props.xl) return sizes.xl
|
|
54
|
+
if (props['2xl']) return sizes['2xl']
|
|
55
|
+
|
|
56
|
+
// default size to md
|
|
57
|
+
return sizes.md
|
|
58
|
+
})
|
|
48
59
|
|
|
49
60
|
const buttonSlotClass = computed(() => [
|
|
50
61
|
'rsui-button-slot',
|
|
51
62
|
{
|
|
52
63
|
// button sizes
|
|
53
|
-
'rsui-button-slot--
|
|
54
|
-
'rsui-button-slot--
|
|
55
|
-
'rsui-button-slot--
|
|
56
|
-
'rsui-button-slot--
|
|
57
|
-
'rsui-button-slot--
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
'rsui-button-slot--
|
|
64
|
+
'rsui-button-slot--sm': buttonSize.value === sizes.sm,
|
|
65
|
+
'rsui-button-slot--md': buttonSize.value === sizes.md,
|
|
66
|
+
'rsui-button-slot--lg': buttonSize.value === sizes.lg,
|
|
67
|
+
'rsui-button-slot--xl': buttonSize.value === sizes.xl,
|
|
68
|
+
'rsui-button-slot--2xl': buttonSize.value === sizes['2xl'],
|
|
69
|
+
|
|
70
|
+
// button sizes with icon only
|
|
71
|
+
'rsui-button-slot--sm-icon': buttonSize.value === sizes.sm && iconOnly.value,
|
|
72
|
+
'rsui-button-slot--md-icon': buttonSize.value === sizes.md && iconOnly.value,
|
|
73
|
+
'rsui-button-slot--lg-icon': buttonSize.value === sizes.lg && iconOnly.value,
|
|
74
|
+
'rsui-button-slot--xl-icon': buttonSize.value === sizes.xl && iconOnly.value,
|
|
75
|
+
'rsui-button-slot--2xl-icon': buttonSize.value === sizes['2xl'] && iconOnly.value,
|
|
61
76
|
|
|
62
77
|
// button full width
|
|
63
78
|
'rsui-button-slot--full': props.full,
|
|
64
|
-
|
|
65
|
-
// button fully rounded
|
|
66
|
-
'rsui-button-slot--rounded': props.rounded,
|
|
67
79
|
},
|
|
68
80
|
])
|
|
69
81
|
</script>
|
|
70
82
|
<template>
|
|
71
83
|
<button
|
|
72
|
-
ref="
|
|
84
|
+
ref="buttonElementRef"
|
|
73
85
|
:class="buttonSlotClass"
|
|
74
|
-
|
|
75
|
-
v-bind="$attrs"
|
|
86
|
+
type="button"
|
|
76
87
|
@click="$emit('click', $event)"
|
|
77
88
|
>
|
|
78
89
|
<slot></slot>
|
|
@@ -83,69 +94,72 @@ const buttonSlotClass = computed(() => [
|
|
|
83
94
|
// default control
|
|
84
95
|
@apply w-fit h-fit inline-flex shrink-0 items-center justify-center select-none outline-none whitespace-nowrap will-change-transform;
|
|
85
96
|
// default shape
|
|
86
|
-
@apply
|
|
97
|
+
@apply gap-1.5 border rounded-lg transition;
|
|
98
|
+
// default font
|
|
99
|
+
@apply font-semibold text-sm;
|
|
87
100
|
// default colors
|
|
88
|
-
@apply bg-white text-rsui-
|
|
101
|
+
@apply bg-white text-rsui-grey-400 ring-0 ring-rsui-grey-400 border-rsui-grey-400;
|
|
89
102
|
// default hover state
|
|
90
|
-
@apply hover:
|
|
103
|
+
@apply hover:bg-rsui-grey-100;
|
|
91
104
|
// default focus state
|
|
92
|
-
@apply focus-visible:ring-
|
|
105
|
+
@apply focus-visible:ring-offset-2 focus-visible:ring-2 focus-visible:ring-rsui-grey-400 focus-visible:border-rsui-grey-400;
|
|
93
106
|
// default active state
|
|
94
|
-
@apply active:ring-0 active:bg-white
|
|
107
|
+
@apply active:ring-0 active:bg-white;
|
|
95
108
|
// default disabled state
|
|
96
|
-
@apply disabled:bg-rsui-grey-
|
|
97
|
-
@apply disabled:active:
|
|
109
|
+
@apply disabled:bg-rsui-grey-100 disabled:border-transparent disabled:text-rsui-grey-200;
|
|
110
|
+
@apply disabled:active:ring-0 disabled:active:bg-rsui-grey-100 disabled:active:border-transparent;
|
|
98
111
|
@apply disabled:focus-visible:ring-0;
|
|
112
|
+
|
|
113
|
+
:deep(svg) {
|
|
114
|
+
@apply size-5;
|
|
115
|
+
}
|
|
116
|
+
|
|
99
117
|
// modifier full width
|
|
100
118
|
&--full {
|
|
101
119
|
@apply w-full;
|
|
102
120
|
}
|
|
103
|
-
|
|
104
|
-
&--rounded {
|
|
105
|
-
@apply rounded-full;
|
|
106
|
-
}
|
|
107
|
-
// modifier xs size
|
|
108
|
-
&--xs {
|
|
109
|
-
@apply text-xs px-2 py-1;
|
|
110
|
-
&-icon {
|
|
111
|
-
@apply p-1;
|
|
112
|
-
}
|
|
113
|
-
:deep(svg) {
|
|
114
|
-
@apply size-4;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
121
|
+
|
|
117
122
|
// modifier sm size
|
|
118
123
|
&--sm {
|
|
119
124
|
@apply text-sm px-3 py-2;
|
|
120
125
|
&-icon {
|
|
121
126
|
@apply p-2;
|
|
122
127
|
}
|
|
123
|
-
:deep(svg) {
|
|
124
|
-
@apply size-5;
|
|
125
|
-
}
|
|
126
128
|
}
|
|
129
|
+
|
|
127
130
|
// modifier md size
|
|
128
131
|
&--md {
|
|
129
|
-
@apply text-
|
|
132
|
+
@apply text-sm leading-5 px-3.5 py-2.5;
|
|
130
133
|
&-icon {
|
|
131
|
-
@apply p-2;
|
|
132
|
-
}
|
|
133
|
-
:deep(svg) {
|
|
134
|
-
@apply size-6;
|
|
134
|
+
@apply p-2.5;
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
+
|
|
137
138
|
// modifier lg size
|
|
138
139
|
&--lg {
|
|
139
|
-
@apply text-
|
|
140
|
+
@apply text-base px-4 py-2.5;
|
|
140
141
|
&-icon {
|
|
141
142
|
@apply p-3;
|
|
142
143
|
}
|
|
143
|
-
|
|
144
|
-
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// modifier xl size
|
|
147
|
+
&--xl {
|
|
148
|
+
@apply text-base leading-6 px-4.5 py-3;
|
|
149
|
+
&-icon {
|
|
150
|
+
@apply p-3.5;
|
|
145
151
|
}
|
|
146
152
|
}
|
|
147
|
-
|
|
148
|
-
|
|
153
|
+
|
|
154
|
+
// modifier 2xl size
|
|
155
|
+
&--2xl {
|
|
156
|
+
@apply text-lg leading-7 px-5 py-4;
|
|
157
|
+
&-icon {
|
|
158
|
+
@apply p-4.5;
|
|
159
|
+
}
|
|
160
|
+
:deep(svg) {
|
|
161
|
+
@apply size-6;
|
|
162
|
+
}
|
|
149
163
|
}
|
|
150
164
|
}
|
|
151
165
|
</style>
|
|
@@ -9,8 +9,15 @@ import ButtonSlot from './ButtonSlot.vue'
|
|
|
9
9
|
<style lang="scss" scoped>
|
|
10
10
|
.rsui-button-tertiary {
|
|
11
11
|
// default colors
|
|
12
|
-
@apply
|
|
12
|
+
@apply text-rsui-grey-700 bg-white border-rsui-grey-400;
|
|
13
|
+
// default hover state
|
|
14
|
+
@apply hover:text-rsui-grey-900 hover:bg-rsui-grey-200 hover:border-rsui-grey-200;
|
|
15
|
+
// default focus state
|
|
16
|
+
@apply focus-visible:ring-rsui-grey-400 focus-visible:border-rsui-grey-400;
|
|
13
17
|
// default active state
|
|
14
|
-
@apply active:
|
|
18
|
+
@apply active:bg-white active:border-rsui-grey-400;
|
|
19
|
+
// default disabled state
|
|
20
|
+
@apply disabled:bg-white disabled:border-rsui-grey-100 disabled:text-rsui-grey-400;
|
|
21
|
+
@apply disabled:active:bg-white disabled:active:border-rsui-grey-100;
|
|
15
22
|
}
|
|
16
23
|
</style>
|
|
@@ -1,37 +1,19 @@
|
|
|
1
|
-
import ButtonDanger from './ButtonDanger.vue'
|
|
2
|
-
import ButtonDangerFull from './ButtonDangerFull.vue'
|
|
3
|
-
import ButtonDangerFullRounded from './ButtonDangerFullRounded.vue'
|
|
4
|
-
import ButtonDangerRounded from './ButtonDangerRounded.vue'
|
|
5
1
|
import ButtonPrimary from './ButtonPrimary.vue'
|
|
6
2
|
import ButtonPrimaryFull from './ButtonPrimaryFull.vue'
|
|
7
|
-
import ButtonPrimaryFullRounded from './ButtonPrimaryFullRounded.vue'
|
|
8
|
-
import ButtonPrimaryRounded from './ButtonPrimaryRounded.vue'
|
|
9
3
|
import ButtonSecondary from './ButtonSecondary.vue'
|
|
10
4
|
import ButtonSecondaryFull from './ButtonSecondaryFull.vue'
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import ButtonSlot from './ButtonSlot.vue'
|
|
5
|
+
import ButtonSecondaryBrand from './ButtonSecondaryBrand.vue'
|
|
6
|
+
import ButtonSecondaryBrandFull from './ButtonSecondaryBrandFull.vue'
|
|
14
7
|
import ButtonTertiary from './ButtonTertiary.vue'
|
|
15
8
|
import ButtonTertiaryFull from './ButtonTertiaryFull.vue'
|
|
16
|
-
import ButtonTertiaryFullRounded from './ButtonTertiaryFullRounded.vue'
|
|
17
|
-
import ButtonTertiaryRounded from './ButtonTertiaryRounded.vue'
|
|
18
9
|
|
|
19
10
|
export {
|
|
20
|
-
ButtonDanger,
|
|
21
|
-
ButtonDangerFull,
|
|
22
|
-
ButtonDangerFullRounded,
|
|
23
|
-
ButtonDangerRounded,
|
|
24
11
|
ButtonPrimary,
|
|
25
12
|
ButtonPrimaryFull,
|
|
26
|
-
ButtonPrimaryFullRounded,
|
|
27
|
-
ButtonPrimaryRounded,
|
|
28
13
|
ButtonSecondary,
|
|
29
14
|
ButtonSecondaryFull,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
ButtonSlot,
|
|
15
|
+
ButtonSecondaryBrand,
|
|
16
|
+
ButtonSecondaryBrandFull,
|
|
33
17
|
ButtonTertiary,
|
|
34
18
|
ButtonTertiaryFull,
|
|
35
|
-
ButtonTertiaryFullRounded,
|
|
36
|
-
ButtonTertiaryRounded,
|
|
37
19
|
}
|
|
@@ -38,13 +38,13 @@ const buttonClass = computed(() => [
|
|
|
38
38
|
// default shape
|
|
39
39
|
@apply first:rounded-l-md last:rounded-r-md first:border-l border-r border-y ring-0;
|
|
40
40
|
// default colors
|
|
41
|
-
@apply bg-
|
|
41
|
+
@apply bg-white text-rsui-grey-700 border-rsui-grey-400;
|
|
42
42
|
// default hover state
|
|
43
43
|
@apply hover:bg-rsui-grey-200;
|
|
44
44
|
// default active/pressed state
|
|
45
|
-
@apply active:ring-0
|
|
45
|
+
@apply active:ring-0 active:bg-white;
|
|
46
46
|
// default disabled state
|
|
47
|
-
@apply disabled:text-rsui-grey-
|
|
47
|
+
@apply disabled:text-rsui-grey-400 disabled:bg-white;
|
|
48
48
|
&--selected {
|
|
49
49
|
@apply bg-rsui-grey-200 active:bg-rsui-grey-200 cursor-default;
|
|
50
50
|
}
|
|
@@ -109,15 +109,15 @@ function handleClick(event) {
|
|
|
109
109
|
@apply max-w-80 w-80 bg-white border border-rsui-grey-200 rounded-md shadow-sm outline-none select-none;
|
|
110
110
|
@apply relative cursor-pointer transition-all;
|
|
111
111
|
@apply flex flex-col gap-3 p-4;
|
|
112
|
-
@apply focus-visible:ring-4 focus-visible:ring-rsui-
|
|
112
|
+
@apply focus-visible:ring-4 focus-visible:ring-rsui-grey-400;
|
|
113
113
|
|
|
114
114
|
&--flexible {
|
|
115
115
|
@apply max-w-full w-full;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
&--selected {
|
|
119
|
-
@apply focus-visible:ring-0 border-primary;
|
|
120
|
-
@apply after:absolute after:content-[''] after:inset-0 after:bg-primary;
|
|
119
|
+
@apply focus-visible:ring-0 border-primary-background;
|
|
120
|
+
@apply after:absolute after:content-[''] after:inset-0 after:bg-primary-background;
|
|
121
121
|
@apply after:rounded-md after:opacity-10;
|
|
122
122
|
}
|
|
123
123
|
|
|
@@ -128,7 +128,7 @@ function handleClick(event) {
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
&__title-row {
|
|
131
|
-
@apply relative text-base font-medium text-rsui-
|
|
131
|
+
@apply relative text-base font-medium text-rsui-grey-900 line-clamp-2 min-h-6 pr-8;
|
|
132
132
|
|
|
133
133
|
// Radio button position
|
|
134
134
|
@apply after:absolute after:top-0 after:right-0;
|
|
@@ -137,15 +137,15 @@ function handleClick(event) {
|
|
|
137
137
|
// Radio button animation
|
|
138
138
|
@apply after:transition-all;
|
|
139
139
|
// Radio button decoration
|
|
140
|
-
@apply after:border after:border-rsui-
|
|
140
|
+
@apply after:border after:border-rsui-grey-400 after:bg-white;
|
|
141
141
|
// Radio button event
|
|
142
|
-
@apply group-hover/radio-card:after:border-rsui-
|
|
143
|
-
@apply group-focus-visible/radio-card:after:border-rsui-
|
|
142
|
+
@apply group-hover/radio-card:after:border-rsui-grey-700;
|
|
143
|
+
@apply group-focus-visible/radio-card:after:border-rsui-grey-700;
|
|
144
144
|
|
|
145
145
|
&--selected {
|
|
146
|
-
@apply after:border-6 after:border-primary;
|
|
147
|
-
@apply group-hover/radio-card:after:border-primary;
|
|
148
|
-
@apply group-focus-visible/radio-card:after:border-primary;
|
|
146
|
+
@apply after:border-6 after:border-primary-background;
|
|
147
|
+
@apply group-hover/radio-card:after:border-primary-background;
|
|
148
|
+
@apply group-focus-visible/radio-card:after:border-primary-background;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
&--disabled {
|
|
@@ -153,14 +153,14 @@ function handleClick(event) {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
&--selected-disabled {
|
|
156
|
-
@apply after:border-6 after:border-white after:bg-rsui-
|
|
156
|
+
@apply after:border-6 after:border-white after:bg-rsui-grey-400;
|
|
157
157
|
@apply group-hover/radio-card:after:border-white;
|
|
158
158
|
@apply group-focus-visible/radio-card:after:border-white;
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
&__content-row {
|
|
163
|
-
@apply text-sm font-normal text-rsui-
|
|
163
|
+
@apply text-sm font-normal text-rsui-grey-700;
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
&__meta-row {
|
|
@@ -94,20 +94,28 @@ const showNotFoundMessage = computed(() => !props.totalItems && props.controlApp
|
|
|
94
94
|
<template #image>
|
|
95
95
|
<slot name="empty-image"></slot>
|
|
96
96
|
</template>
|
|
97
|
+
|
|
97
98
|
<template #title v-if="$slots['empty-title']">
|
|
98
99
|
<slot name="empty-title"></slot>
|
|
99
100
|
</template>
|
|
101
|
+
|
|
102
|
+
<slot name="empty-description">It looks like there's nothing here yet.</slot>
|
|
103
|
+
|
|
104
|
+
<template #actions="{ isWide }" v-if="$slots['empty-actions']">
|
|
105
|
+
<slot name="empty-actions" :isWide="isWide"></slot>
|
|
106
|
+
</template>
|
|
107
|
+
|
|
100
108
|
<template #primary-action-label v-if="$slots['empty-action-label']">
|
|
101
109
|
<slot name="empty-action-label"></slot>
|
|
102
110
|
</template>
|
|
111
|
+
|
|
103
112
|
<template #secondary-action-label v-if="$slots['empty-secondary-action-label']">
|
|
104
113
|
<slot name="empty-secondary-action-label"></slot>
|
|
105
114
|
</template>
|
|
115
|
+
|
|
106
116
|
<template #tertiary-action-label v-if="$slots['empty-tertiary-action-label']">
|
|
107
117
|
<slot name="empty-tertiary-action-label"></slot>
|
|
108
118
|
</template>
|
|
109
|
-
|
|
110
|
-
<slot name="empty-description">It looks like there's nothing here yet.</slot>
|
|
111
119
|
</Empty>
|
|
112
120
|
</div>
|
|
113
121
|
<div v-if="showNotFoundMessage" class="rsui-card-group">
|
|
@@ -10,7 +10,7 @@ const emit = defineEmits(['click'])
|
|
|
10
10
|
</template>
|
|
11
11
|
<style lang="scss" scoped>
|
|
12
12
|
.rsui-dropdown-option {
|
|
13
|
-
@apply cursor-pointer p-4 bg-white rounded-md text-base text-rsui-
|
|
13
|
+
@apply cursor-pointer p-4 bg-white rounded-md text-base text-rsui-grey-900 transition;
|
|
14
14
|
@apply hover:bg-rsui-grey-200;
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
@@ -93,7 +93,7 @@ const emptyClass = computed(() => [
|
|
|
93
93
|
<style lang="scss" scoped>
|
|
94
94
|
.rsui-empty {
|
|
95
95
|
@apply w-full flex flex-col items-center justify-center gap-5;
|
|
96
|
-
@apply px-3 py-4 rounded-md text-rsui-
|
|
96
|
+
@apply px-3 py-4 rounded-md text-rsui-grey-900;
|
|
97
97
|
&--wide {
|
|
98
98
|
.rsui-empty__image {
|
|
99
99
|
:deep(svg) {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
.rsui-form-slot {
|
|
38
38
|
@apply min-w-80 sm:min-w-96 sm:w-112;
|
|
39
39
|
@apply flex flex-col sm:justify-center items-center;
|
|
40
|
-
@apply text-base text-rsui-
|
|
40
|
+
@apply text-base text-rsui-grey-900;
|
|
41
41
|
|
|
42
42
|
&__image {
|
|
43
43
|
@apply mb-8;
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
&-or {
|
|
54
|
-
@apply relative z-1 bg-white px-6 text-rsui-
|
|
54
|
+
@apply relative z-1 bg-white px-6 text-rsui-grey-900;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -61,19 +61,19 @@ function check(event) {
|
|
|
61
61
|
&__label {
|
|
62
62
|
@apply ml-2 font-normal;
|
|
63
63
|
&--required {
|
|
64
|
-
@apply after:content-['*'] after:text-
|
|
64
|
+
@apply after:content-['*'] after:text-rsui-error-500;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
&__check {
|
|
68
68
|
@apply size-6 shrink-0 relative bg-white rounded-md cursor-pointer;
|
|
69
|
-
@apply has-[:disabled]:text-rsui-
|
|
69
|
+
@apply has-[:disabled]:text-rsui-grey-400 has-[:disabled]:cursor-default;
|
|
70
70
|
|
|
71
71
|
input[type="checkbox"] {
|
|
72
72
|
@apply appearance-none absolute inset-0 z-0 rounded-md transition focus:outline-none cursor-pointer;
|
|
73
|
-
@apply w-full h-full text-rsui-
|
|
74
|
-
@apply focus:ring focus:ring-
|
|
75
|
-
@apply invalid:border-
|
|
76
|
-
@apply disabled:text-rsui-
|
|
73
|
+
@apply w-full h-full text-rsui-grey-900 border border-rsui-grey-200 text-transparent bg-none;
|
|
74
|
+
@apply focus:ring focus:ring-rsui-grey-400 focus:border-rsui-grey-400;
|
|
75
|
+
@apply invalid:border-rsui-error-500 invalid:ring-0;
|
|
76
|
+
@apply disabled:text-rsui-grey-400 disabled:bg-rsui-grey-200 disabled:cursor-default;
|
|
77
77
|
}
|
|
78
78
|
svg {
|
|
79
79
|
@apply size-full relative z-1;
|