@redseed/redseed-ui-vue3 1.5.7 → 1.7.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.
Files changed (34) hide show
  1. package/index.js +5 -5
  2. package/package.json +1 -1
  3. package/src/components/Button/ButtonDanger.vue +2 -2
  4. package/src/components/Button/ButtonPrimary.vue +2 -2
  5. package/src/components/Button/ButtonSecondary.vue +2 -2
  6. package/src/components/Button/ButtonSlot.vue +17 -17
  7. package/src/components/Button/ButtonTertiary.vue +3 -3
  8. package/src/components/ButtonGroup/ButtonGroup.vue +4 -4
  9. package/src/components/ButtonGroup/ButtonGroupItem.vue +11 -11
  10. package/src/components/Card/Card.vue +13 -13
  11. package/src/components/DropdownMenu/DropdownMenu.vue +7 -7
  12. package/src/components/DropdownMenu/DropdownOption.vue +3 -3
  13. package/src/components/Form/FormFieldsLogin.vue +3 -3
  14. package/src/components/Form/FormFieldsRegister.vue +2 -14
  15. package/src/components/Form/FormSlot.vue +10 -10
  16. package/src/components/Form/FormWrapperBuild.vue +3 -3
  17. package/src/components/Form/FormWrapperLMS.vue +3 -3
  18. package/src/components/FormField/FormFieldCheckbox.vue +6 -6
  19. package/src/components/FormField/FormFieldEmail.vue +1 -1
  20. package/src/components/FormField/FormFieldHidden.vue +1 -1
  21. package/src/components/FormField/FormFieldPassword.vue +4 -4
  22. package/src/components/FormField/FormFieldPasswordToggle.vue +4 -4
  23. package/src/components/FormField/FormFieldSearch.vue +7 -7
  24. package/src/components/FormField/FormFieldSlot.vue +6 -6
  25. package/src/components/FormField/FormFieldText.vue +5 -5
  26. package/src/components/FormField/FormFieldTextSuffix.vue +2 -2
  27. package/src/components/Image/Image.vue +9 -9
  28. package/src/components/MessageBox/MessageBox.vue +15 -15
  29. package/src/components/MetaInfo/MetaInfo.vue +52 -0
  30. package/src/components/Modal/Modal.vue +15 -15
  31. package/src/components/PageHeading/PageHeading.vue +12 -12
  32. package/src/components/Progress/ProgressCircle.vue +8 -8
  33. package/src/components/TwoColumnLayout/TwoColumnLayout.vue +5 -5
  34. package/src/components/PageHeading/MetaItem.vue +0 -22
package/index.js CHANGED
@@ -39,7 +39,7 @@ import LogoRedSeedCoach from './src/components/Logo/LogoRedSeedCoach.vue'
39
39
  import LogoRedSeedCourses from './src/components/Logo/LogoRedSeedCourses.vue'
40
40
  import LogoRedSeedLMS from './src/components/Logo/LogoRedSeedLMS.vue'
41
41
  import MessageBox from './src/components/MessageBox/MessageBox.vue'
42
- import MetaItem from './src/components/PageHeading/MetaItem.vue'
42
+ import MetaInfo from './src/components/MetaInfo/MetaInfo.vue'
43
43
  import Modal from './src/components/Modal/Modal.vue'
44
44
  import PageHeading from './src/components/PageHeading/PageHeading.vue'
45
45
  import ProgressCircle from './src/components/Progress/ProgressCircle.vue'
@@ -51,9 +51,9 @@ export {
51
51
  ButtonDanger,
52
52
  ButtonDangerFull,
53
53
  ButtonDangerFullRounded,
54
- ButtonDangerRounded,
54
+ ButtonDangerRounded,
55
55
  ButtonGroup,
56
- ButtonSlot,
56
+ ButtonGroupItem,
57
57
  ButtonPrimary,
58
58
  ButtonPrimaryFull,
59
59
  ButtonPrimaryFullRounded,
@@ -62,7 +62,7 @@ export {
62
62
  ButtonSecondaryFull,
63
63
  ButtonSecondaryFullRounded,
64
64
  ButtonSecondaryRounded,
65
- ButtonGroupItem,
65
+ ButtonSlot,
66
66
  ButtonTertiary,
67
67
  ButtonTertiaryFull,
68
68
  ButtonTertiaryFullRounded,
@@ -89,7 +89,7 @@ export {
89
89
  LogoRedSeedCourses,
90
90
  LogoRedSeedLMS,
91
91
  MessageBox,
92
- MetaItem,
92
+ MetaInfo,
93
93
  Modal,
94
94
  PageHeading,
95
95
  ProgressCircle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redseed/redseed-ui-vue3",
3
- "version": "1.5.7",
3
+ "version": "1.7.0",
4
4
  "description": "RedSeed UI Vue 3 components",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -7,7 +7,7 @@ defineOptions({
7
7
  })
8
8
 
9
9
  const buttonClass = computed(() => [
10
- 'button-danger',
10
+ 'rsui-button-danger',
11
11
  ])
12
12
  </script>
13
13
  <template>
@@ -24,7 +24,7 @@ const buttonClass = computed(() => [
24
24
  </ButtonSlot>
25
25
  </template>
26
26
  <style lang="scss" scoped>
27
- .button-danger {
27
+ .rsui-button-danger {
28
28
  // default colors
29
29
  @apply bg-white text-danger ring-danger/20 border-danger;
30
30
  // default hover state
@@ -7,7 +7,7 @@ defineOptions({
7
7
  })
8
8
 
9
9
  const buttonClass = computed(() => [
10
- 'button-primary',
10
+ 'rsui-button-primary',
11
11
  ])
12
12
  </script>
13
13
  <template>
@@ -24,7 +24,7 @@ const buttonClass = computed(() => [
24
24
  </ButtonSlot>
25
25
  </template>
26
26
  <style lang="scss" scoped>
27
- .button-primary {
27
+ .rsui-button-primary {
28
28
  // default colors
29
29
  @apply bg-primary text-white ring-primary/20 border-primary;
30
30
  // default hover state
@@ -7,7 +7,7 @@ defineOptions({
7
7
  })
8
8
 
9
9
  const buttonClass = computed(() => [
10
- 'button-secondary',
10
+ 'rsui-button-secondary',
11
11
  ])
12
12
  </script>
13
13
  <template>
@@ -24,7 +24,7 @@ const buttonClass = computed(() => [
24
24
  </ButtonSlot>
25
25
  </template>
26
26
  <style lang="scss" scoped>
27
- .button-secondary {
27
+ .rsui-button-secondary {
28
28
  // default colors
29
29
  @apply bg-secondary text-white ring-secondary/20 border-secondary;
30
30
  // default hover state
@@ -53,42 +53,42 @@ const defaultSize = computed(() => !props.xs && !props.sm && !props.md && !props
53
53
  const type = computed(() => props.submit ? 'submit' : 'button')
54
54
 
55
55
  const buttonSlotClass = computed(() => [
56
- 'button-slot',
56
+ 'rsui-button-slot',
57
57
  {
58
58
  // button sizes
59
- 'button-slot--xs': props.xs,
60
- 'button-slot--sm': props.sm,
61
- 'button-slot--md': props.md || defaultSize.value,
62
- 'button-slot--lg': props.lg,
59
+ 'rsui-button-slot--xs': props.xs,
60
+ 'rsui-button-slot--sm': props.sm,
61
+ 'rsui-button-slot--md': props.md || defaultSize.value,
62
+ 'rsui-button-slot--lg': props.lg,
63
63
 
64
64
  // button sizes with icon
65
- 'button-slot--xs--icon': props.xs && !slots.label && slots.icon,
66
- 'button-slot--sm--icon': props.sm && !slots.label && slots.icon,
67
- 'button-slot--md--icon': (props.md || defaultSize.value) && !slots.label && slots.icon,
68
- 'button-slot--lg--icon': props.lg && !slots.label && slots.icon,
65
+ 'rsui-button-slot--xs--icon': props.xs && !slots.label && slots.icon,
66
+ 'rsui-button-slot--sm--icon': props.sm && !slots.label && slots.icon,
67
+ 'rsui-button-slot--md--icon': (props.md || defaultSize.value) && !slots.label && slots.icon,
68
+ 'rsui-button-slot--lg--icon': props.lg && !slots.label && slots.icon,
69
69
 
70
70
  // button full width
71
- 'button-slot--full': props.full,
71
+ 'rsui-button-slot--full': props.full,
72
72
 
73
73
  // button fully rounded
74
- 'button-slot--rounded': props.rounded,
74
+ 'rsui-button-slot--rounded': props.rounded,
75
75
 
76
76
  // button light variant
77
- 'button-slot--light': props.light,
77
+ 'rsui-button-slot--light': props.light,
78
78
 
79
79
  // display icon at the end
80
- 'button-slot--icon-end': props.iconEnd && slots.icon,
80
+ 'rsui-button-slot--icon-end': props.iconEnd && slots.icon,
81
81
  },
82
82
  ])
83
83
 
84
84
  const buttonSlotIconClass = computed(() => [
85
- 'button-slot__icon',
85
+ 'rsui-button-slot__icon',
86
86
  {
87
87
  // modifier for button icon to be displayed at the end
88
- 'button-slot__icon--end': props.iconEnd && slots.icon,
88
+ 'rsui-button-slot__icon--end': props.iconEnd && slots.icon,
89
89
 
90
90
  // modifier for button icon to be displayed without label
91
- 'button-slot__icon--only': !slots.label && slots.icon,
91
+ 'rsui-button-slot__icon--only': !slots.label && slots.icon,
92
92
  }
93
93
  ])
94
94
  </script>
@@ -110,7 +110,7 @@ const buttonSlotIconClass = computed(() => [
110
110
  </button>
111
111
  </template>
112
112
  <style lang="scss" scoped>
113
- .button-slot {
113
+ .rsui-button-slot {
114
114
  // default shape and control
115
115
  @apply w-fit h-fit inline-flex items-center justify-center select-none outline-none rounded border font-semibold transition;
116
116
  // default colors
@@ -7,7 +7,7 @@ defineOptions({
7
7
  })
8
8
 
9
9
  const buttonClass = computed(() => [
10
- 'button-tertiary',
10
+ 'rsui-button-tertiary',
11
11
  ])
12
12
  </script>
13
13
  <template>
@@ -24,9 +24,9 @@ const buttonClass = computed(() => [
24
24
  </ButtonSlot>
25
25
  </template>
26
26
  <style lang="scss" scoped>
27
- .button-tertiary {
27
+ .rsui-button-tertiary {
28
28
  // default colors
29
- @apply bg-white text-default-black ring-tertiary-dark/20 border-tertiary-dark;
29
+ @apply bg-white text-default-dark ring-tertiary-dark/20 border-tertiary-dark;
30
30
  // default hover state
31
31
  @apply hover:bg-white hover:text-tertiary-dark hover:border-tertiary-dark;
32
32
  // default focus state
@@ -13,9 +13,9 @@ const props = defineProps({
13
13
  })
14
14
 
15
15
  const buttonClass = computed(() => [
16
- 'button-group',
16
+ 'rsui-button-group',
17
17
  {
18
- 'button-group--sm' : props.sm,
18
+ 'rsui-button-group--sm' : props.sm,
19
19
  }
20
20
  ])
21
21
 
@@ -26,10 +26,10 @@ const buttonClass = computed(() => [
26
26
  </div>
27
27
  </template>
28
28
  <style lang="scss">
29
- .button-group {
29
+ .rsui-button-group {
30
30
  @apply whitespace-nowrap;
31
31
  &--sm {
32
- .button-group-item {
32
+ .rsui-button-group-item {
33
33
  @apply text-xs px-2.5 py-1.5;
34
34
  }
35
35
  }
@@ -13,10 +13,10 @@ const props = defineProps({
13
13
  })
14
14
 
15
15
  const buttonClass = computed(() => [
16
- 'button-group-item',
16
+ 'rsui-button-group-item',
17
17
  {
18
- 'button-group-item--selected' : props.selected,
19
- 'button-group-item--icon': slots.icon,
18
+ 'rsui-button-group-item--selected' : props.selected,
19
+ 'rsui-button-group-item--icon': slots.icon,
20
20
  }
21
21
  ])
22
22
  </script>
@@ -26,26 +26,26 @@ const buttonClass = computed(() => [
26
26
  v-bind="$attrs"
27
27
  @click="$emit('click', $event)"
28
28
  >
29
- <span v-if="$slots.icon" class="button-group-item__icon">
29
+ <span v-if="$slots.icon" class="rsui-button-group-item__icon">
30
30
  <slot name="icon"></slot>
31
31
  </span>
32
- <span v-else class="button-group-item__label">
32
+ <span v-else class="rsui-button-group-item__label">
33
33
  <slot></slot>
34
34
  </span>
35
35
  </button>
36
36
  </template>
37
37
  <style lang="scss" scoped>
38
- .button-group-item {
38
+ .rsui-button-group-item {
39
39
  // default shape and control
40
40
  @apply inline-flex justify-center items-center select-none outline-none p-2 font-semibold text-sm transition first:rounded-l first:border-l last:rounded-r last:border-r;
41
41
  // default colors
42
- @apply bg-white border-r text-default-black ring-tertiary border-y border-tertiary ;
42
+ @apply bg-white border-r text-default-dark ring-tertiary border-y border-tertiary ;
43
43
  // default hover state
44
- @apply hover:border-tertiary hover:bg-tertiary/10 hover:text-default-black;
44
+ @apply hover:border-tertiary hover:bg-tertiary/10 hover:text-default-dark;
45
45
  // default focus state unapplied
46
46
  // @apply focus-visible:border-tertiary focus-visible:text-tertiary focus-visible:ring-4 focus-visible:outline-none focus-visible:ring-gray-100 focus-visible:z-10 relative;
47
47
  // default active/pressed state
48
- @apply active:ring-0 active:bg-tertiary-dark/10 active:text-default-black;
48
+ @apply active:ring-0 active:bg-tertiary-dark/10 active:text-default-dark;
49
49
  // default disabled state
50
50
  @apply disabled:text-tertiary-dark/10;
51
51
  :deep(svg) {
@@ -64,8 +64,8 @@ const buttonClass = computed(() => [
64
64
  @apply bg-tertiary-dark/20 hover:bg-tertiary-dark/20 cursor-default;
65
65
  }
66
66
  }
67
- .button-group--sm {
68
- .button-group-item--icon {
67
+ .rsui-button-group--sm {
68
+ .rsui-button-group-item--icon {
69
69
  @apply p-1 ;
70
70
  :deep(svg) {
71
71
  @apply size-4;
@@ -15,12 +15,12 @@ const props = defineProps({
15
15
  const emit = defineEmits(['click'])
16
16
 
17
17
  const cardClass = computed(() => [
18
- 'card',
18
+ 'rsui-card',
19
19
  {
20
- 'card--hoverable': props.hoverable,
20
+ 'rsui-card--hoverable': props.hoverable,
21
21
  },
22
22
  {
23
- 'card--clickable': props.clickable,
23
+ 'rsui-card--clickable': props.clickable,
24
24
  },
25
25
  ])
26
26
 
@@ -33,21 +33,21 @@ function clicked() {
33
33
  v-on="clickable ? { click: clicked } : {}"
34
34
  >
35
35
  <div v-if="$slots.image"
36
- class="card__image"
36
+ class="rsui-card__image"
37
37
  >
38
38
  <slot name="image"></slot>
39
39
  </div>
40
- <div class="card__content">
40
+ <div class="rsui-card__content">
41
41
  <div v-if="$slots.title || $slots.status"
42
- class="card__content__top"
42
+ class="rsui-card__content-top"
43
43
  >
44
44
  <div v-if="$slots.title"
45
- class="card__content__top__title"
45
+ class="rsui-card__content-title"
46
46
  >
47
47
  <slot name="title"></slot>
48
48
  </div>
49
49
  <div v-if="$slots.status"
50
- class="card__content__top__status"
50
+ class="rsui-card__content-status"
51
51
  >
52
52
  <slot name="status"></slot>
53
53
  </div>
@@ -57,7 +57,7 @@ function clicked() {
57
57
  </div>
58
58
  </template>
59
59
  <style lang="scss" scoped>
60
- .card {
60
+ .rsui-card {
61
61
  @apply border border-gray-100 rounded-lg bg-white select-none overflow-hidden shadow-full-light transition duration-200;
62
62
  &--hoverable {
63
63
  @apply hover:shadow-md;
@@ -70,11 +70,11 @@ function clicked() {
70
70
  }
71
71
  &__content {
72
72
  @apply min-h-14 p-3;
73
- &__top {
73
+ &-top {
74
74
  @apply flex justify-between space-x-2 pb-2;
75
- &__title {
76
- @apply h-12 text-lg font-semibold leading-6 line-clamp-2;
77
- }
75
+ }
76
+ &-title {
77
+ @apply h-12 text-lg font-semibold leading-6 line-clamp-2;
78
78
  }
79
79
  }
80
80
  }
@@ -18,11 +18,11 @@ const isOpen = ref(false)
18
18
  const defaultAlignment = computed(() => !props.right && !props.left)
19
19
 
20
20
  const containerClass = computed(() => [
21
- 'dropdown-menu__container',
21
+ 'rsui-dropdown-menu__container',
22
22
  {
23
- 'dropdown-menu__container--open': isOpen.value,
24
- 'dropdown-menu__container--left': props.left || defaultAlignment.value,
25
- 'dropdown-menu__container--right': props.right,
23
+ 'rsui-dropdown-menu__container--open': isOpen.value,
24
+ 'rsui-dropdown-menu__container--left': props.left || defaultAlignment.value,
25
+ 'rsui-dropdown-menu__container--right': props.right,
26
26
  },
27
27
  ])
28
28
 
@@ -44,7 +44,7 @@ onMounted(() => document.addEventListener('keydown', closeOnEscape))
44
44
  onUnmounted(() => document.removeEventListener('keydown', closeOnEscape))
45
45
  </script>
46
46
  <template>
47
- <div class="dropdown-menu">
47
+ <div class="rsui-dropdown-menu">
48
48
  <slot name="trigger" :open="open">
49
49
  <ButtonTertiary @click="open">
50
50
  <template #icon v-if="$slots['trigger-icon']">
@@ -58,7 +58,7 @@ onUnmounted(() => document.removeEventListener('keydown', closeOnEscape))
58
58
 
59
59
  <!-- Full Screen Dropdown Overlay -->
60
60
  <div v-show="isOpen"
61
- class="dropdown-menu__overlay"
61
+ class="rsui-dropdown-menu__overlay"
62
62
  @click="close"
63
63
  ></div>
64
64
 
@@ -100,7 +100,7 @@ onUnmounted(() => document.removeEventListener('keydown', closeOnEscape))
100
100
  @apply transform opacity-0 scale-95;
101
101
  }
102
102
 
103
- .dropdown-menu {
103
+ .rsui-dropdown-menu {
104
104
  @apply w-fit relative;
105
105
  &__overlay {
106
106
  @apply fixed inset-0 z-40;
@@ -2,15 +2,15 @@
2
2
  const emit = defineEmits(['click'])
3
3
  </script>
4
4
  <template>
5
- <div class="dropdown-option"
5
+ <div class="rsui-dropdown-option"
6
6
  @click="$emit('click')"
7
7
  >
8
8
  <slot></slot>
9
9
  </div>
10
10
  </template>
11
11
  <style lang="scss" scoped>
12
- .dropdown-option {
13
- @apply cursor-pointer p-4 bg-white rounded-md text-base text-default-black transition;
12
+ .rsui-dropdown-option {
13
+ @apply cursor-pointer p-4 bg-white rounded-md text-base text-default-dark transition;
14
14
  @apply hover:bg-gray-200;
15
15
  }
16
16
  </style>
@@ -59,7 +59,7 @@ const formRef = ref(props.form)
59
59
  <slot name="bottom-fields" :formRef="formRef"></slot>
60
60
 
61
61
  <FormFieldSlot v-if="$slots.forgot"
62
- class="form-field-forgot"
62
+ class="rsui-form-field-forgot"
63
63
  >
64
64
  <slot name="forgot"></slot>
65
65
  </FormFieldSlot>
@@ -74,12 +74,12 @@ const formRef = ref(props.form)
74
74
  </ButtonPrimaryFull>
75
75
  </slot>
76
76
 
77
- <div v-if="$slots.signup" class="form-login__signup">
77
+ <div v-if="$slots.signup" class="rsui-form-login__signup">
78
78
  <slot name="signup"></slot>
79
79
  </div>
80
80
  </template>
81
81
  <style lang="scss" scoped>
82
- .form-login {
82
+ .rsui-form-login {
83
83
  &__signup {
84
84
  @apply text-sm pt-4;
85
85
  }
@@ -106,24 +106,12 @@ const formRef = ref(props.form)
106
106
  </ButtonPrimaryFull>
107
107
  </slot>
108
108
 
109
- <div v-if="$slots.signin" class="form-register__signin">
109
+ <div v-if="$slots.signin" class="rsui-form-register__signin">
110
110
  <slot name="signin"></slot>
111
111
  </div>
112
112
  </template>
113
113
  <style lang="scss" scoped>
114
- .form-register {
115
- &__or-container {
116
- @apply w-full relative flex justify-center mb-2;
117
- }
118
-
119
- &__or-line {
120
- @apply after:content-[''] after:absolute after:top-1/2 after:left-0 after:bg-gray-300 after:h-px after:w-full;
121
- }
122
-
123
- &__or {
124
- @apply relative z-1 bg-white px-6;
125
- }
126
-
114
+ .rsui-form-register {
127
115
  &__signin {
128
116
  @apply text-sm pt-4;
129
117
  }
@@ -1,12 +1,12 @@
1
1
  <script setup>
2
2
  </script>
3
3
  <template>
4
- <div class="form-slot">
5
- <div v-if="$slots.image" class="form-slot__image">
4
+ <div class="rsui-form-slot">
5
+ <div v-if="$slots.image" class="rsui-form-slot__image">
6
6
  <slot name="image" />
7
7
  </div>
8
8
 
9
- <div class="form-slot__content">
9
+ <div class="rsui-form-slot__content">
10
10
  <div v-if="$slots.top">
11
11
  <slot name="top"></slot>
12
12
  </div>
@@ -14,10 +14,10 @@
14
14
  <slot name="social"></slot>
15
15
 
16
16
  <div v-if="$slots.social"
17
- class="form-slot__social-divider"
17
+ class="rsui-form-slot__social-divider"
18
18
  >
19
- <div class="form-slot__social-divider__line">
20
- <div class="form-slot__social-divider__or">
19
+ <div class="rsui-form-slot__social-divider-line">
20
+ <div class="rsui-form-slot__social-divider-or">
21
21
  <slot name="or">
22
22
  or
23
23
  </slot>
@@ -34,7 +34,7 @@
34
34
  </div>
35
35
  </template>
36
36
  <style lang="scss" scoped>
37
- .form-slot {
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
40
  @apply text-base text-gray-700;
@@ -46,11 +46,11 @@
46
46
  &__social-divider {
47
47
  @apply w-full relative flex justify-center mb-2;
48
48
 
49
- &__line {
49
+ &-line {
50
50
  @apply after:content-[''] after:absolute after:top-1/2 after:left-0 after:bg-gray-300 after:h-px after:w-full;
51
51
  }
52
52
 
53
- &__or {
53
+ &-or {
54
54
  @apply relative z-1 bg-white px-6;
55
55
  }
56
56
  }
@@ -64,7 +64,7 @@
64
64
  }
65
65
  </style>
66
66
  <style lang="scss">
67
- .form-slot {
67
+ .rsui-form-slot {
68
68
  &__content {
69
69
  form {
70
70
  & > * {
@@ -4,9 +4,9 @@ import FormSlot from './FormSlot.vue'
4
4
  import LogoRedSeedBuild from '../Logo/LogoRedSeedBuild.vue'
5
5
  </script>
6
6
  <template>
7
- <FormSlot class="form-wrapper-build">
7
+ <FormSlot class="rsui-form-wrapper-build">
8
8
  <template #image>
9
- <LogoRedSeedBuild class="form-wrapper-build__image"></LogoRedSeedBuild>
9
+ <LogoRedSeedBuild class="rsui-form-wrapper-build__image"></LogoRedSeedBuild>
10
10
  </template>
11
11
 
12
12
  <template #top v-if="$slots.top">
@@ -25,7 +25,7 @@ import LogoRedSeedBuild from '../Logo/LogoRedSeedBuild.vue'
25
25
  </FormSlot>
26
26
  </template>
27
27
  <style lang="scss" scoped>
28
- .form-wrapper-build {
28
+ .rsui-form-wrapper-build {
29
29
  &__image {
30
30
  @apply w-72 sm:w-80;
31
31
  }
@@ -4,9 +4,9 @@ import FormSlot from './FormSlot.vue'
4
4
  import LogoRedSeedLMS from '../Logo/LogoRedSeedLMS.vue'
5
5
  </script>
6
6
  <template>
7
- <FormSlot class="form-wrapper-lms">
7
+ <FormSlot class="rsui-form-wrapper-lms">
8
8
  <template #image>
9
- <LogoRedSeedLMS class="form-wrapper-lms__image"></LogoRedSeedLMS>
9
+ <LogoRedSeedLMS class="rsui-form-wrapper-lms__image"></LogoRedSeedLMS>
10
10
  </template>
11
11
 
12
12
  <template #top v-if="$slots.top">
@@ -25,7 +25,7 @@ import LogoRedSeedLMS from '../Logo/LogoRedSeedLMS.vue'
25
25
  </FormSlot>
26
26
  </template>
27
27
  <style lang="scss" scoped>
28
- .form-wrapper-lms {
28
+ .rsui-form-wrapper-lms {
29
29
  &__image {
30
30
  @apply w-72 sm:w-80;
31
31
  }
@@ -31,11 +31,11 @@ const proxyChecked = computed({
31
31
  })
32
32
  </script>
33
33
  <template>
34
- <FormFieldSlot class="form-field-checkbox">
34
+ <FormFieldSlot class="rsui-form-field-checkbox">
35
35
  <template #label>
36
- <div class="form-field-checkbox__checkbox">
37
- <div class="form-field-checkbox__check">
38
- <CheckIcon v-if="iconChecked" class="form-field-checkbox__icon"></CheckIcon>
36
+ <div class="rsui-form-field-checkbox__checkbox">
37
+ <div class="rsui-form-field-checkbox__check">
38
+ <CheckIcon v-if="iconChecked" class="rsui-form-field-checkbox__icon"></CheckIcon>
39
39
  <input
40
40
  v-model="proxyChecked"
41
41
  v-bind="$attrs"
@@ -44,7 +44,7 @@ const proxyChecked = computed({
44
44
  >
45
45
  </div>
46
46
  <div v-if="$slots.label"
47
- class="form-field-checkbox__label"
47
+ class="rsui-form-field-checkbox__label"
48
48
  >
49
49
  <slot name="label"></slot>
50
50
  </div>
@@ -56,7 +56,7 @@ const proxyChecked = computed({
56
56
  </FormFieldSlot>
57
57
  </template>
58
58
  <style lang="scss" scoped>
59
- .form-field-checkbox {
59
+ .rsui-form-field-checkbox {
60
60
  &__checkbox {
61
61
  @apply flex;
62
62
  }
@@ -20,7 +20,7 @@ const input = ref(null)
20
20
  </script>
21
21
  <template>
22
22
  <FormFieldSlot
23
- class="form-field-email"
23
+ class="rsui-form-field-email"
24
24
  :id="$attrs.id"
25
25
  >
26
26
  <template #label v-if="$slots.label">
@@ -11,7 +11,7 @@ const input = ref(null)
11
11
  </script>
12
12
  <template>
13
13
  <FormFieldSlot
14
- class="form-field-hidden"
14
+ class="rsui-form-field-hidden"
15
15
  >
16
16
  <input ref="input"
17
17
  type="hidden"
@@ -20,7 +20,7 @@ const input = ref(null)
20
20
  </script>
21
21
  <template>
22
22
  <FormFieldSlot
23
- class="form-field-password"
23
+ class="rsui-form-field-password"
24
24
  :id="$attrs.id"
25
25
  >
26
26
  <template #label v-if="$slots.label">
@@ -28,8 +28,8 @@ const input = ref(null)
28
28
  </template>
29
29
 
30
30
  <div :class="{
31
- 'form-field-password__group': true,
32
- 'form-field-password__group--toggle': $slots.toggle,
31
+ 'rsui-form-field-password__group': true,
32
+ 'rsui-form-field-password__group--toggle': $slots.toggle,
33
33
  }">
34
34
  <input ref="input"
35
35
  type="password"
@@ -51,7 +51,7 @@ const input = ref(null)
51
51
  </FormFieldSlot>
52
52
  </template>
53
53
  <style lang="scss" scoped>
54
- .form-field-password {
54
+ .rsui-form-field-password {
55
55
  @apply relative;
56
56
 
57
57
  &__group {
@@ -24,14 +24,14 @@ function togglePassword() {
24
24
  </template>
25
25
 
26
26
  <template #toggle>
27
- <div class="form-field-password__toggle"
27
+ <div class="rsui-form-field-password__toggle"
28
28
  @click="togglePassword"
29
29
  >
30
30
  <EyeIcon v-if="!show"
31
- class="form-field-password__toggle-icon"
31
+ class="rsui-form-field-password__toggle-icon"
32
32
  ></EyeIcon>
33
33
  <EyeSlashIcon v-if="show"
34
- class="form-field-password__toggle-icon"
34
+ class="rsui-form-field-password__toggle-icon"
35
35
  ></EyeSlashIcon>
36
36
  </div>
37
37
  </template>
@@ -46,7 +46,7 @@ function togglePassword() {
46
46
  </FormFieldPassword>
47
47
  </template>
48
48
  <style lang="scss" scoped>
49
- .form-field-password {
49
+ .rsui-form-field-password {
50
50
  &__toggle {
51
51
  @apply absolute top-px bottom-px right-px rounded-tr rounded-br;
52
52
  @apply flex items-center justify-center px-3 select-none cursor-pointer;
@@ -11,15 +11,15 @@ defineOptions({
11
11
  <template>
12
12
  <FormFieldText
13
13
  v-bind="$attrs"
14
- class="search-input"
14
+ class="rsui-form-field-search"
15
15
  >
16
16
  <template #label v-if="$slots.label">
17
17
  <slot name="label"></slot>
18
18
  </template>
19
19
 
20
20
  <template #prefix class="search">
21
- <div class="form-field-text__prefix">
22
- <MagnifyingGlassIcon class="form-field-text__search-icon"></MagnifyingGlassIcon>
21
+ <div class="rsui-form-field-search__prefix">
22
+ <MagnifyingGlassIcon class="rsui-form-field-search__icon"></MagnifyingGlassIcon>
23
23
  </div>
24
24
  </template>
25
25
 
@@ -33,20 +33,20 @@ defineOptions({
33
33
  </FormFieldText>
34
34
  </template>
35
35
  <style lang="scss" scoped>
36
- .form-field-text {
36
+ .rsui-form-field-search {
37
37
  &__prefix {
38
38
  @apply absolute top-px bottom-px left-px rounded-tl rounded-bl;
39
39
  @apply flex items-center justify-center select-none;
40
40
  @apply w-10 pointer-events-none;
41
41
  }
42
- &__search-icon {
42
+ &__icon {
43
43
  @apply w-5 h-5;
44
44
  }
45
45
  }
46
46
  </style>
47
47
  <style lang="scss">
48
- .form-field-text__group--prefix {
49
- input.search-input:not([type='checkbox']):not([type='radio']) {
48
+ .rsui-form-field-text__group--prefix {
49
+ input.rsui-form-field-search:not([type='checkbox']):not([type='radio']) {
50
50
  @apply pl-10;
51
51
  }
52
52
  }
@@ -9,14 +9,14 @@ defineOptions({
9
9
  const attrs = useAttrs()
10
10
 
11
11
  const formFieldSlotClass = computed(() => [
12
- 'form-field-slot',
12
+ 'rsui-form-field-slot',
13
13
  attrs.class
14
14
  ])
15
15
  </script>
16
16
  <template>
17
17
  <div :class="formFieldSlotClass">
18
18
  <div v-if="$slots.label"
19
- class="form-field-slot__label"
19
+ class="rsui-form-field-slot__label"
20
20
  >
21
21
  <label
22
22
  :for="$attrs.id"
@@ -26,19 +26,19 @@ const formFieldSlotClass = computed(() => [
26
26
  </div>
27
27
  <slot></slot>
28
28
  <div v-if="$slots.help"
29
- class="form-field-slot__help"
29
+ class="rsui-form-field-slot__help"
30
30
  >
31
31
  <slot name="help"></slot>
32
32
  </div>
33
33
  <div v-if="$slots.error"
34
- class="form-field-slot__error"
34
+ class="rsui-form-field-slot__error"
35
35
  >
36
36
  <slot name="error"></slot>
37
37
  </div>
38
38
  </div>
39
39
  </template>
40
40
  <style lang="scss" scoped>
41
- .form-field-slot {
41
+ .rsui-form-field-slot {
42
42
  @apply flex flex-col space-y-1 border-0 bg-transparent p-0;
43
43
 
44
44
  &__label {
@@ -57,7 +57,7 @@ const formFieldSlotClass = computed(() => [
57
57
  }
58
58
  </style>
59
59
  <style lang="scss">
60
- .form-field-slot {
60
+ .rsui-form-field-slot {
61
61
  input:not([type='checkbox']):not([type='radio']) {
62
62
  @apply block w-full border rounded shadow-sm text-base transition py-2 px-3;
63
63
  @apply bg-white placeholder-gray-300 border-gray-300;
@@ -20,16 +20,16 @@ const input = ref(null)
20
20
  </script>
21
21
  <template>
22
22
  <FormFieldSlot
23
- class="form-field-text"
23
+ class="rsui-form-field-text"
24
24
  :id="$attrs.id"
25
25
  >
26
26
  <template #label v-if="$slots.label">
27
27
  <slot name="label"></slot>
28
28
  </template>
29
29
  <div :class="{
30
- 'form-field-text__group': true,
31
- 'form-field-text__group--prefix': $slots.prefix,
32
- 'form-field-text__group--suffix': $slots.suffix,
30
+ 'rsui-form-field-text__group': true,
31
+ 'rsui-form-field-text__group--prefix': $slots.prefix,
32
+ 'rsui-form-field-text__group--suffix': $slots.suffix,
33
33
  }">
34
34
  <slot name="prefix"></slot>
35
35
 
@@ -53,7 +53,7 @@ const input = ref(null)
53
53
  </FormFieldSlot>
54
54
  </template>
55
55
  <style lang="scss" scoped>
56
- .form-field-text {
56
+ .rsui-form-field-text {
57
57
  @apply relative;
58
58
 
59
59
  &__group {
@@ -16,7 +16,7 @@ defineOptions({
16
16
  </template>
17
17
 
18
18
  <template #suffix>
19
- <div class="form-field-text__suffix">
19
+ <div class="rsui-form-field-text__suffix">
20
20
  <slot name="suffix"></slot>
21
21
  </div>
22
22
  </template>
@@ -31,7 +31,7 @@ defineOptions({
31
31
  </FormFieldText>
32
32
  </template>
33
33
  <style lang="scss" scoped>
34
- .form-field-text {
34
+ .rsui-form-field-text {
35
35
  &__suffix {
36
36
  @apply absolute top-px bottom-px right-px rounded-tr rounded-br;
37
37
  @apply flex items-center justify-center px-3 select-none;
@@ -76,23 +76,23 @@ const sources = computed(() => {
76
76
  })
77
77
  </script>
78
78
  <template>
79
- <div class="image">
79
+ <div class="rsui-image">
80
80
  <div v-if="!originalUrl"
81
- class="image__empty"
81
+ class="rsui-image__empty"
82
82
  >
83
83
  <slot name="empty-icon">
84
- <PhotoIcon class="icon"></PhotoIcon>
84
+ <PhotoIcon class="rsui-image__empty-icon"></PhotoIcon>
85
85
  </slot>
86
86
  </div>
87
87
  <div v-else-if="isLoading"
88
- class="image__message"
88
+ class="rsui-image__message"
89
89
  >
90
90
  <slot name="loading">
91
91
  Loading...
92
92
  </slot>
93
93
  </div>
94
94
  <div v-else-if="error"
95
- class="image__message"
95
+ class="rsui-image__message"
96
96
  >
97
97
  <slot name="error">
98
98
  Could not load image
@@ -109,13 +109,13 @@ const sources = computed(() => {
109
109
  </div>
110
110
  </template>
111
111
  <style lang="scss" scoped>
112
- .image {
112
+ .rsui-image {
113
113
  @apply w-full h-full flex items-center justify-center bg-gray-100 overflow-hidden;
114
114
  &__empty {
115
115
  @apply flex items-center justify-center text-gray-300;
116
- .icon {
117
- @apply w-1/4;
118
- }
116
+ }
117
+ &__empty-icon {
118
+ @apply w-1/4;
119
119
  }
120
120
  &__message {
121
121
  @apply text-gray-400 text-sm;
@@ -21,38 +21,38 @@ function close() {
21
21
  </script>
22
22
  <template>
23
23
  <div v-if="!isClosed"
24
- class="message-box"
24
+ class="rsui-message-box"
25
25
  >
26
- <div class="message-box__head">
27
- <div class="message-box__head__title">
26
+ <div class="rsui-message-box__head">
27
+ <div class="rsui-message-box__title">
28
28
  <slot name="title"></slot>
29
29
  </div>
30
- <div class="message-box__head__close">
31
- <div class="message-box__head__close__icon">
30
+ <div class="rsui-message-box__close">
31
+ <div class="rsui-message-box__close-icon">
32
32
  <XMarkIcon
33
33
  @click="close"
34
34
  ></XMarkIcon>
35
35
  </div>
36
36
  </div>
37
37
  </div>
38
- <div class="message-box__body">
38
+ <div class="rsui-message-box__body">
39
39
  <slot></slot>
40
40
  </div>
41
41
  </div>
42
42
  </template>
43
43
  <style lang="scss" scoped>
44
- .message-box {
44
+ .rsui-message-box {
45
45
  @apply border border-gray-100 rounded-lg bg-white overflow-hidden shadow-full-light transition duration-200 p-4;
46
46
  &__head {
47
47
  @apply flex justify-between items-center;
48
- &__close {
49
- @apply w-10 h-10;
50
- &__icon {
51
- @apply w-10 h-10 cursor-pointer rounded-lg flex items-center justify-center;
52
- @apply hover:bg-gray-100 transition duration-200;
53
- svg {
54
- @apply w-6 h-6 text-gray-500;
55
- }
48
+ }
49
+ &__close {
50
+ @apply w-10 h-10;
51
+ &-icon {
52
+ @apply w-10 h-10 cursor-pointer rounded-lg flex items-center justify-center;
53
+ @apply hover:bg-gray-100 transition duration-200;
54
+ svg {
55
+ @apply w-6 h-6 text-gray-500;
56
56
  }
57
57
  }
58
58
  }
@@ -0,0 +1,52 @@
1
+ <script setup>
2
+ import { QuestionMarkCircleIcon } from '@heroicons/vue/24/outline'
3
+
4
+ const props = defineProps({
5
+ help: {
6
+ type: Boolean,
7
+ default: false
8
+ }
9
+ })
10
+
11
+ const emit = defineEmits(['click'])
12
+ </script>
13
+ <template>
14
+ <div class="rsui-meta-info">
15
+ <div class="rsui-meta-info__top">
16
+ <div class="rsui-meta-info__label">
17
+ <slot name="label"></slot>
18
+ </div>
19
+ <div v-if="help"
20
+ class="rsui-meta-info__help"
21
+ @click="$emit('click')"
22
+ >
23
+ <slot name="help">
24
+ <QuestionMarkCircleIcon></QuestionMarkCircleIcon>
25
+ </slot>
26
+ </div>
27
+ </div>
28
+ <div class="rsui-meta-info__value">
29
+ <slot name="value"></slot>
30
+ </div>
31
+ </div>
32
+ </template>
33
+ <style lang="scss" scoped>
34
+ .rsui-meta-info {
35
+ @apply flex flex-col space-y-1;
36
+ &__top {
37
+ @apply flex space-x-1 items-center;
38
+ }
39
+ &__label {
40
+ @apply font-semibold text-sm text-default-dark leading-4;
41
+ }
42
+ &__help {
43
+ @apply text-gray-400 size-4;
44
+ svg {
45
+ @apply size-full;
46
+ }
47
+ }
48
+ &__value {
49
+ @apply text-xs text-medium leading-5;
50
+ }
51
+ }
52
+ </style>
@@ -54,15 +54,15 @@ const defaultAlignment = computed(() => !props.top && !props.center && !props.bo
54
54
 
55
55
  const modalContentClass = computed(() => {
56
56
  return [
57
- 'modal__content',
57
+ 'rsui-modal__content',
58
58
  {
59
- 'modal__content--sm': props.sm,
60
- 'modal__content--md': props.md,
61
- 'modal__content--lg': props.lg || defaultMaxWidth.value,
59
+ 'rsui-modal__content--sm': props.sm,
60
+ 'rsui-modal__content--md': props.md,
61
+ 'rsui-modal__content--lg': props.lg || defaultMaxWidth.value,
62
62
 
63
- 'modal__content--top': props.top,
64
- 'modal__content--center': props.center || defaultAlignment.value,
65
- 'modal__content--bottom': props.bottom,
63
+ 'rsui-modal__content--top': props.top,
64
+ 'rsui-modal__content--center': props.center || defaultAlignment.value,
65
+ 'rsui-modal__content--bottom': props.bottom,
66
66
  }
67
67
  ]
68
68
  })
@@ -100,7 +100,7 @@ onUnmounted(() => {
100
100
  <template>
101
101
  <teleport to="body">
102
102
  <transition leave-active-class="duration-200">
103
- <div v-show="show" class="modal" v-bind="$attrs" scroll-region>
103
+ <div v-show="show" class="rsui-modal" v-bind="$attrs" scroll-region>
104
104
  <transition
105
105
  enter-active-class="ease-out duration-300"
106
106
  enter-from-class="opacity-0"
@@ -109,8 +109,8 @@ onUnmounted(() => {
109
109
  leave-from-class="opacity-100"
110
110
  leave-to-class="opacity-0"
111
111
  >
112
- <div v-show="show" class="modal__background-wrapper" @click="close">
113
- <div class="modal__background" />
112
+ <div v-show="show" class="rsui-modal__background-wrapper" @click="close">
113
+ <div class="rsui-modal__background" />
114
114
  </div>
115
115
  </transition>
116
116
 
@@ -126,21 +126,21 @@ onUnmounted(() => {
126
126
  :class="modalContentClass"
127
127
  >
128
128
  <div v-if="$slots.header && show"
129
- class="modal__header"
129
+ class="rsui-modal__header"
130
130
  >
131
131
  <slot name="header"
132
132
  :close="close"
133
133
  ></slot>
134
134
  </div>
135
135
  <div v-if="show"
136
- class="modal__body"
136
+ class="rsui-modal__body"
137
137
  >
138
138
  <slot></slot>
139
139
  </div>
140
140
  <div v-if="$slots.footer && show"
141
141
  :class="{
142
- 'modal__footer': true,
143
- 'modal__footer--start': footerStart,
142
+ 'rsui-modal__footer': true,
143
+ 'rsui-modal__footer--start': footerStart,
144
144
  }"
145
145
  >
146
146
  <slot name="footer"
@@ -173,7 +173,7 @@ onUnmounted(() => {
173
173
  @apply transform opacity-0 scale-95;
174
174
  }
175
175
 
176
- .modal {
176
+ .rsui-modal {
177
177
  @apply fixed inset-0 overflow-y-auto px-4 py-6 md:px-0 z-50;
178
178
  &__background-wrapper {
179
179
  @apply fixed inset-0 transform transition-all backdrop-blur-sm;
@@ -6,10 +6,10 @@ import ButtonTertiary from '../Button/ButtonTertiary.vue'
6
6
  const showMetaModal = ref(false)
7
7
  </script>
8
8
  <template>
9
- <div class="page-heading">
10
- <div class="page-heading__top">
9
+ <div class="rsui-page-heading">
10
+ <div class="rsui-page-heading__top">
11
11
  <div v-if="$slots.title"
12
- class="page-heading__title"
12
+ class="rsui-page-heading__title"
13
13
  >
14
14
  <h1>
15
15
  <slot name="title"></slot>
@@ -17,24 +17,24 @@ const showMetaModal = ref(false)
17
17
  </div>
18
18
 
19
19
  <div v-if="$slots.status || $slots.actions"
20
- class="page-heading__status-actions"
20
+ class="rsui-page-heading__status-actions"
21
21
  >
22
22
  <div v-if="$slots.status"
23
- class="page-heading__status"
23
+ class="rsui-page-heading__status"
24
24
  >
25
25
  <slot name="status"></slot>
26
26
  </div>
27
27
 
28
- <div class="page-heading__actions">
28
+ <div class="rsui-page-heading__actions">
29
29
  <div v-if="$slots['meta-action-label'] && $slots['meta']"
30
- class="page-heading__meta-action"
30
+ class="rsui-page-heading__meta-action"
31
31
  >
32
32
  <ButtonTertiary @click="showMetaModal = true">
33
33
  <slot name="meta-action-label"></slot>
34
34
  </ButtonTertiary>
35
35
 
36
36
  <Modal sm v-if="$slots['meta']"
37
- class="page-heading__meta-modal"
37
+ class="rsui-page-heading__meta-modal"
38
38
  :show="showMetaModal"
39
39
  @close="showMetaModal = false"
40
40
  >
@@ -43,7 +43,7 @@ const showMetaModal = ref(false)
43
43
  </template>
44
44
 
45
45
  <div v-if="$slots.meta"
46
- class="page-heading__meta-modal__body"
46
+ class="rsui-page-heading__meta-modal__body"
47
47
  >
48
48
  <slot name="meta"></slot>
49
49
  </div>
@@ -65,21 +65,21 @@ const showMetaModal = ref(false)
65
65
  </div>
66
66
 
67
67
  <div v-if="$slots.search"
68
- class="page-heading__search"
68
+ class="rsui-page-heading__search"
69
69
  >
70
70
  <slot name="search"></slot>
71
71
  </div>
72
72
  </div>
73
73
 
74
74
  <div v-if="$slots['meta']"
75
- class="page-heading__meta"
75
+ class="rsui-page-heading__meta"
76
76
  >
77
77
  <slot name="meta"></slot>
78
78
  </div>
79
79
  </div>
80
80
  </template>
81
81
  <style lang="scss" scoped>
82
- .page-heading {
82
+ .rsui-page-heading {
83
83
  @apply w-full flex justify-between space-y-4;
84
84
  @apply lg:flex-col;
85
85
  &__top {
@@ -33,11 +33,11 @@ const defaultSize = computed(() => !props.sm && !props.md && !props.lg)
33
33
 
34
34
  // Class for the progress circle
35
35
  const progressCircleClass = computed(() => [
36
- 'progress-circle',
36
+ 'rsui-progress-circle',
37
37
  {
38
- 'progress-circle--sm': props.sm || defaultSize.value,
39
- 'progress-circle--md': props.md,
40
- 'progress-circle--lg': props.lg,
38
+ 'rsui-progress-circle--sm': props.sm || defaultSize.value,
39
+ 'rsui-progress-circle--md': props.md,
40
+ 'rsui-progress-circle--lg': props.lg,
41
41
  },
42
42
  ])
43
43
 
@@ -66,20 +66,20 @@ watchPostEffect(setProgressCircleDash)
66
66
  <div :class="progressCircleClass">
67
67
  <svg viewBox="0 0 100 100">
68
68
  <circle cx="50" cy="50" r="48"
69
- class="progress-circle__background-circle"
69
+ class="rsui-progress-circle__background-circle"
70
70
  ></circle>
71
71
  <circle cx="50" cy="50" r="48"
72
72
  ref="progressCircle"
73
- class="progress-circle__progress-circle"
73
+ class="rsui-progress-circle__progress-circle"
74
74
  ></circle>
75
75
  </svg>
76
- <div class="progress-circle__content">
76
+ <div class="rsui-progress-circle__content">
77
77
  <slot></slot>
78
78
  </div>
79
79
  </div>
80
80
  </template>
81
81
  <style lang="scss" scoped>
82
- .progress-circle {
82
+ .rsui-progress-circle {
83
83
  @apply relative m-0 p-0 bg-white rounded-full;
84
84
  @apply before:hidden after:hidden;
85
85
  &--sm {
@@ -8,19 +8,19 @@ const props = defineProps({
8
8
  </script>
9
9
  <template>
10
10
  <div :class="[
11
- 'two-column-layout',
12
- leftAside ? 'two-column-layout--left-aside' : '',
11
+ 'rsui-two-column-layout',
12
+ leftAside ? 'rsui-two-column-layout--left-aside' : '',
13
13
  ]">
14
- <div class="two-column-layout__main">
14
+ <div class="rsui-two-column-layout__main">
15
15
  <slot name="main"></slot>
16
16
  </div>
17
- <div class="two-column-layout__aside">
17
+ <div class="rsui-two-column-layout__aside">
18
18
  <slot name="aside"></slot>
19
19
  </div>
20
20
  </div>
21
21
  </template>
22
22
  <style lang="scss">
23
- .two-column-layout {
23
+ .rsui-two-column-layout {
24
24
  @apply flex flex-col space-y-6;
25
25
  @apply lg:flex-row lg:space-y-0 lg:space-x-8;
26
26
  &--left-aside {
@@ -1,22 +0,0 @@
1
- <script setup>
2
- </script>
3
- <template>
4
- <div class="meta-item">
5
- <div class="meta-item__label">
6
- <slot name="label"></slot>
7
- </div>
8
- <div class="meta-item__value">
9
- <slot name="value"></slot>
10
- </div>
11
- </div>
12
- </template>
13
- <style lang="scss" scoped>
14
- .meta-item {
15
- &__label {
16
- @apply text-xs text-gray-400;
17
- }
18
- &__value {
19
- @apply text-base;
20
- }
21
- }
22
- </style>