@robuust-digital/vue-components 1.3.2 → 2.0.0-rc.1

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 (73) hide show
  1. package/README.md +47 -52
  2. package/dist/_shared/ButtonBase-CQjlJ85F.js +87 -0
  3. package/dist/_shared/ChevronDownIcon-z-5U4fIb.js +55 -0
  4. package/dist/_shared/FormInput-abFMz_J4.js +82 -0
  5. package/dist/_shared/Modal-COVlUEud.js +193 -0
  6. package/dist/_shared/Tooltip-BKXJoJ1x.js +126 -0
  7. package/dist/_shared/XMarkIcon-90mcPzBs.js +19 -0
  8. package/dist/_shared/icon-spinner-CmxIOqaK.js +26 -0
  9. package/dist/combobox/combobox.css +203 -0
  10. package/dist/combobox/index.js +349 -0
  11. package/dist/combobox/styles.css +1 -0
  12. package/dist/core/accordion.css +47 -0
  13. package/dist/core/alert.css +169 -0
  14. package/dist/core/badge.css +121 -0
  15. package/dist/core/button.css +393 -0
  16. package/dist/core/checkbox.css +60 -0
  17. package/dist/core/empty-state.css +56 -0
  18. package/dist/core/index.js +779 -0
  19. package/dist/core/input.css +92 -0
  20. package/dist/core/pagination.css +48 -0
  21. package/dist/core/radio.css +61 -0
  22. package/dist/core/select.css +81 -0
  23. package/dist/core/styles.css +92 -0
  24. package/dist/core/table.css +87 -0
  25. package/dist/core/tabs.css +74 -0
  26. package/dist/core/textarea.css +48 -0
  27. package/dist/core/theme.css +11 -0
  28. package/dist/dialogs/drawer.css +72 -0
  29. package/dist/dialogs/index.js +200 -0
  30. package/dist/dialogs/modal.css +98 -0
  31. package/dist/dialogs/styles.css +2 -0
  32. package/dist/dropdown/dropdown.css +89 -0
  33. package/dist/dropdown/index.js +136 -0
  34. package/dist/dropdown/styles.css +1 -0
  35. package/dist/lightswitch/index.js +48 -0
  36. package/dist/lightswitch/lightswitch.css +68 -0
  37. package/dist/lightswitch/styles.css +1 -0
  38. package/dist/rich-text-editor/index.js +262 -0
  39. package/dist/rich-text-editor/rich-text.css +83 -0
  40. package/dist/rich-text-editor/styles.css +1 -0
  41. package/dist/toast/index.js +100 -0
  42. package/dist/toast/styles.css +1 -0
  43. package/dist/toast/toast.css +187 -0
  44. package/dist/tooltip/index.js +5 -0
  45. package/dist/tooltip/styles.css +1 -0
  46. package/dist/tooltip/tooltip.css +69 -0
  47. package/package.json +58 -53
  48. package/dist/nuxt-module.js +0 -27
  49. package/dist/style.css +0 -1
  50. package/dist/tailwind/base/index.js +0 -72
  51. package/dist/tailwind/components/accordion.js +0 -59
  52. package/dist/tailwind/components/alert.js +0 -166
  53. package/dist/tailwind/components/badge.js +0 -119
  54. package/dist/tailwind/components/button.js +0 -292
  55. package/dist/tailwind/components/checkbox.js +0 -70
  56. package/dist/tailwind/components/combobox.js +0 -226
  57. package/dist/tailwind/components/drawer.js +0 -104
  58. package/dist/tailwind/components/dropdown.js +0 -97
  59. package/dist/tailwind/components/empty-state.js +0 -69
  60. package/dist/tailwind/components/input.js +0 -101
  61. package/dist/tailwind/components/lightswitch.js +0 -79
  62. package/dist/tailwind/components/modal.js +0 -132
  63. package/dist/tailwind/components/pagination.js +0 -62
  64. package/dist/tailwind/components/radio.js +0 -75
  65. package/dist/tailwind/components/rich-text.js +0 -100
  66. package/dist/tailwind/components/select.js +0 -88
  67. package/dist/tailwind/components/table.js +0 -109
  68. package/dist/tailwind/components/tabs.js +0 -95
  69. package/dist/tailwind/components/textarea.js +0 -53
  70. package/dist/tailwind/components/toast.js +0 -188
  71. package/dist/tailwind/components/tooltip.js +0 -74
  72. package/dist/tailwind/index.js +0 -94
  73. package/dist/vue-components.es.js +0 -2401
@@ -1,132 +0,0 @@
1
- /**
2
- * Modal component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- '--rvc-modal-backdrop-bg-color': 'var(--rvc-dialog-backdrop-bg-color)',
9
- '--rvc-modal-border-color': 'var(--rvc-base-border-color)',
10
- '--rvc-modal-border-width': 'var(--rvc-base-border-width)',
11
- '--rvc-modal-border-style': 'var(--rvc-base-border-style)',
12
- '--rvc-modal-border-radius': 'var(--rvc-base-border-radius)',
13
- '--rvc-modal-padding-x': 'var(--rvc-dialog-padding-x)',
14
- '--rvc-modal-padding-y': 'var(--rvc-dialog-padding-y)',
15
- '--rvc-modal-header-bg-color': 'var(--rvc-dialog-header-bg-color)',
16
- '--rvc-modal-title-font-size': 'var(--rvc-dialog-title-font-size)',
17
- '--rvc-modal-title-font-weight': 'var(--rvc-dialog-title-font-weight)',
18
- '--rvc-modal-title-font-family': 'var(--rvc-dialog-title-font-family)',
19
- '--rvc-modal-title-color': 'var(--rvc-dialog-title-color)',
20
- '--rvc-modal-close-size': 'var(--rvc-dialog-close-size)',
21
- '--rvc-modal-close-color': 'var(--rvc-dialog-close-color)',
22
- '--rvc-modal-close-color-hover': 'var(--rvc-dialog-close-color-hover)',
23
- '--rvc-modal-content-bg-color': 'var(--rvc-dialog-content-bg-color)',
24
- '--rvc-modal-footer-bg-color': 'var(--rvc-dialog-footer-bg-color)',
25
- '--rvc-modal-footer-gap': 'var(--rvc-dialog-footer-gap)',
26
- '--rvc-modal-box-shadow': theme('boxShadow.xl'),
27
- '--rvc-modal-margin-y': 0,
28
- },
29
-
30
- '.rvc-modal': {
31
- zIndex: 600,
32
- position: 'relative',
33
- ...theme('components.modal'),
34
-
35
- // Backdrop
36
- '.rvc-modal-backdrop': {
37
- backgroundColor: 'var(--rvc-modal-backdrop-bg-color)',
38
- ...theme('components.modal[.rvc-modal-backdrop]'),
39
- },
40
-
41
- // Panel
42
- '.rvc-modal-panel': {
43
- borderColor: 'var(--rvc-modal-border-color)',
44
- borderWidth: 'var(--rvc-modal-border-width)',
45
- borderStyle: 'var(--rvc-modal-border-style)',
46
- borderRadius: 'var(--rvc-modal-border-radius)',
47
- boxShadow: 'var(--rvc-modal-box-shadow)',
48
- marginTop: 'var(--rvc-modal-margin-y)',
49
- marginBottom: 'var(--rvc-modal-margin-y)',
50
- display: 'flex',
51
- height: '100%',
52
- flexDirection: 'column',
53
- position: 'relative',
54
- transform: 'translate(0, 0)',
55
- overflow: 'hidden',
56
- width: '100%',
57
- textAlign: 'left',
58
- ...theme('components.modal[.rvc-modal-panel]'),
59
- },
60
-
61
- // Header
62
- '.rvc-modal-header': {
63
- paddingTop: 'var(--rvc-modal-padding-y)',
64
- paddingRight: 'var(--rvc-modal-padding-x)',
65
- paddingBottom: 'var(--rvc-modal-padding-y)',
66
- paddingLeft: 'var(--rvc-modal-padding-x)',
67
- backgroundColor: 'var(--rvc-modal-header-bg-color)',
68
- borderBottomColor: 'var(--rvc-modal-border-color)',
69
- borderBottomWidth: 'var(--rvc-modal-border-width)',
70
- borderBottomStyle: 'var(--rvc-modal-border-style)',
71
- ...theme('components.modal[.rvc-modal-header]'),
72
- },
73
-
74
- // Title
75
- '.rvc-modal-title': {
76
- fontSize: 'var(--rvc-modal-title-font-size)',
77
- fontWeight: 'var(--rvc-modal-title-font-weight)',
78
- fontFamily: 'var(--rvc-modal-title-font-family)',
79
- color: 'var(--rvc-modal-title-color)',
80
- ...theme('components.modal[.rvc-modal-title]'),
81
- },
82
-
83
- // Close
84
- '.rvc-modal-close': {
85
- width: 'var(--rvc-modal-close-size)',
86
- height: 'var(--rvc-modal-close-size)',
87
- color: 'var(--rvc-modal-close-color)',
88
- ...theme('components.modal[.rvc-modal-close]'),
89
-
90
- '&:hover': {
91
- color: 'var(--rvc-modal-close-color-hover)',
92
- ...theme('components.modal[.rvc-modal-close][&:hover]'),
93
- },
94
- },
95
-
96
- // Content
97
- '.rvc-modal-content': {
98
- paddingTop: 'var(--rvc-modal-padding-y)',
99
- paddingRight: 'var(--rvc-modal-padding-x)',
100
- paddingBottom: 'var(--rvc-modal-padding-y)',
101
- paddingLeft: 'var(--rvc-modal-padding-x)',
102
- backgroundColor: 'var(--rvc-modal-content-bg-color)',
103
- ...theme('components.modal[.rvc-modal-content]'),
104
- },
105
-
106
- // Footer
107
- '.rvc-modal-footer': {
108
- paddingTop: 'var(--rvc-modal-padding-y)',
109
- paddingRight: 'var(--rvc-modal-padding-x)',
110
- paddingBottom: 'var(--rvc-modal-padding-y)',
111
- paddingLeft: 'var(--rvc-modal-padding-x)',
112
- gap: 'var(--rvc-modal-footer-gap)',
113
- backgroundColor: 'var(--rvc-modal-footer-bg-color)',
114
- borderTopColor: 'var(--rvc-modal-border-color)',
115
- borderTopWidth: 'var(--rvc-modal-border-width)',
116
- borderTopStyle: 'var(--rvc-modal-border-style)',
117
- display: 'flex',
118
- flexDirection: 'column',
119
- ...theme('components.modal[.rvc-modal-footer]'),
120
-
121
- [`@media (min-width: ${theme('screens.sm')})`]: {
122
- flexDirection: 'row-reverse',
123
- ...theme('components.modal[.rvc-modal-footer][screen-sm]'),
124
- },
125
- },
126
-
127
- // Larger screens
128
- [`@media (min-width: ${theme('screens.sm')})`]: {
129
- ...theme('components.modal[screen-sm]'),
130
- },
131
- },
132
- });
@@ -1,62 +0,0 @@
1
- /**
2
- * Pagination component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- '--rvc-pagination-transition-duration': 'var(--rvc-base-transition-duration)',
9
- '--rvc-pagination-transition-timing-function': 'var(--rvc-base-transition-timing-function)',
10
- '--rvc-pagination-border-radius': theme('borderRadius.md'),
11
- '--rvc-pagination-size': theme('width.6'),
12
- '--rvc-pagination-font-size': theme('fontSize.sm'),
13
- '--rvc-pagination-font-weight': theme('fontWeight.normal'),
14
- '--rvc-pagination-font-weight-active': theme('fontWeight.semibold'),
15
- '--rvc-pagination-color': theme('colors.slate.600'),
16
- '--rvc-pagination-color-active': theme('colors.slate.800'),
17
- '--rvc-pagination-transition-property': theme('transitionProperty.colors'),
18
- '--rvc-pagination-bg-color': 'transparent',
19
- '--rvc-pagination-bg-color-hover': theme('colors.slate.100'),
20
- '--rvc-pagination-info-color': theme('colors.slate.400'),
21
- '--rvc-pagination-info-font-size': theme('fontSize.sm'),
22
- },
23
-
24
- '.rvc-pagination': {
25
- ...theme('components.pagination'),
26
-
27
- '.rvc-pagination-button': {
28
- borderRadius: 'var(--rvc-pagination-border-radius)',
29
- width: 'var(--rvc-pagination-size)',
30
- height: 'var(--rvc-pagination-size)',
31
- fontSize: 'var(--rvc-pagination-font-size)',
32
- fontWeight: 'var(--rvc-pagination-font-weight)',
33
- color: 'var(--rvc-pagination-color)',
34
- transitionProperty: 'var(--rvc-pagination-transition-property)',
35
- transitionDuration: 'var(--rvc-pagination-transition-duration)',
36
- transitionTimingFunction: 'var(--rvc-pagination-transition-timing-function)',
37
- backgroundColor: 'var(--rvc-pagination-bg-color)',
38
- display: 'flex',
39
- alignItems: 'center',
40
- justifyContent: 'center',
41
- textAlign: 'center',
42
- ...theme('components.pagination[.rvc-pagination-button]'),
43
-
44
- '&.rvc-pagination-button-active': {
45
- fontWeight: 'var(--rvc-pagination-font-weight-active)',
46
- color: 'var(--rvc-pagination-color-active)',
47
- ...theme('components.pagination[.rvc-pagination-button-active]'),
48
- },
49
-
50
- '&:not([disabled]):hover': {
51
- backgroundColor: 'var(--rvc-pagination-bg-color-hover)',
52
- ...theme('components.pagination[.rvc-pagination-button]:not([disabled]):hover'),
53
- },
54
- },
55
-
56
- '.rvc-pagination-info': {
57
- fontSize: 'var(--rvc-pagination-info-font-size)',
58
- color: 'var(--rvc-pagination-info-color)',
59
- ...theme('components.pagination[.rvc-pagination-info]'),
60
- },
61
- },
62
- });
@@ -1,75 +0,0 @@
1
- /**
2
- * Radio component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- '--rvc-radio-input-box-shadow': 'var(--rvc-base-box-shadow)',
9
- '--rvc-radio-input-border-color': 'var(--rvc-base-border-color)',
10
- '--rvc-radio-gap': theme('gap.2'),
11
- '--rvc-radio-font-size': theme('fontSize.base.0'),
12
- '--rvc-radio-font-weight': theme('fontWeight.medium'),
13
- '--rvc-radio-color': theme('colors.slate.950'),
14
- '--rvc-radio-input-size': theme('width.4'),
15
- '--rvc-radio-input-border-radius': theme('borderRadius.full'),
16
- '--rvc-radio-input-border-width': theme('borderWidth.DEFAULT'),
17
- '--rvc-radio-input-checked-bg-color': theme('colors.indigo.600'),
18
- '--rvc-radio-input-checked-border-color': theme('colors.indigo.600'),
19
- '--rvc-radio-input-checked-icon-color': theme('colors.white'),
20
- '--rvc-radio-input-checked-icon-border-radius': theme('borderRadius.full'),
21
- },
22
-
23
- '.rvc-radio': {
24
- gap: 'var(--rvc-radio-gap)',
25
- position: 'relative',
26
- display: 'flex',
27
- alignItems: 'flex-start',
28
- cursor: 'pointer',
29
- ...theme('components.radio'),
30
-
31
- input: {
32
- '&:checked': {
33
- '+ .rvc-radio-input': {
34
- backgroundColor: 'var(--rvc-radio-input-checked-bg-color)',
35
- borderColor: 'var(--rvc-radio-input-checked-border-color)',
36
- ...theme('components.radio.input.checked'),
37
- '&::before': {
38
- opacity: '1',
39
- ...theme('components.radio.input.checked.toggle'),
40
- },
41
- },
42
- },
43
- },
44
-
45
- label: {
46
- fontSize: 'var(--rvc-radio-font-size)',
47
- fontWeight: 'var(--rvc-radio-font-weight)',
48
- color: 'var(--rvc-radio-color)',
49
- ...theme('components.radio.label'),
50
- },
51
-
52
- '.rvc-radio-input': {
53
- width: 'var(--rvc-radio-input-size)',
54
- height: 'var(--rvc-radio-input-size)',
55
- borderRadius: 'var(--rvc-radio-input-border-radius)',
56
- borderWidth: 'var(--rvc-radio-input-border-width)',
57
- boxShadow: 'var(--rvc-radio-input-box-shadow)',
58
- borderColor: 'var(--rvc-radio-input-border-color)',
59
- display: 'inline-flex',
60
- alignItems: 'center',
61
- justifyContent: 'center',
62
- marginTop: theme('margin.1'),
63
- ...theme('components.radio.input'),
64
- '&::before': {
65
- backgroundColor: 'var(--rvc-radio-input-checked-icon-color)',
66
- borderRadius: 'var(--rvc-radio-input-checked-icon-border-radius)',
67
- content: '""',
68
- opacity: '0',
69
- width: theme('width[1.5]'),
70
- height: theme('height[1.5]'),
71
- ...theme('components.radio.input.toggle'),
72
- },
73
- },
74
- },
75
- });
@@ -1,100 +0,0 @@
1
- /**
2
- * RichTextEditor component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- '--rvc-rich-text-list-padding': theme('padding[2.5]'),
9
- '--rvc-rich-text-list-position': 'inside',
10
- '--rvc-rich-text-paragraph-spacing': theme('margin.4'),
11
- '--rvc-rich-text-icon-size': theme('width.4'),
12
- '--rvc-rich-text-button-border-radius': 'var(--rvc-base-border-radius)',
13
- '--rvc-rich-text-button-padding': theme('padding.1'),
14
- '--rvc-rich-text-button-bg-color': 'transparent',
15
- '--rvc-rich-text-button-bg-color-hover': theme('colors.slate.100'),
16
- '--rvc-rich-text-button-color': theme('colors.slate.600'),
17
- '--rvc-rich-text-button-color-active': theme('colors.indigo.700'),
18
- '--rvc-rich-text-anchor-color': theme('colors.indigo.700'),
19
- '--rvc-rich-text-anchor-font-weight': theme('fontWeight.bold'),
20
- '--rvc-rich-text-anchor-text-decoration': 'underline',
21
- '--rvc-rich-text-min-height': theme('minHeight.24'),
22
- },
23
-
24
- '.rvc-rich-text': {
25
- position: 'relative',
26
- ...theme('components.richText'),
27
-
28
- '.rvc-rich-text-textarea': {
29
- minHeight: 'var(--rvc-rich-text-min-height)',
30
- paddingTop: 'calc(var(--rvc-textarea-padding-x) + var(--rvc-rich-text-icon-size) + (var(--rvc-rich-text-button-padding) * 2) + var(--rvc-textarea-padding-y))',
31
-
32
- '> *:not(:last-child)': {
33
- marginBottom: 'var(--rvc-rich-text-paragraph-spacing)',
34
- },
35
-
36
- 'ul, ol': {
37
- listStylePosition: 'var(--rvc-rich-text-list-position)',
38
- paddingLeft: 'var(--rvc-rich-text-list-padding)',
39
-
40
- 'li > *': {
41
- display: 'inline',
42
- },
43
- },
44
-
45
- a: {
46
- textDecoration: 'var(--rvc-rich-text-anchor-text-decoration)',
47
- fontWeight: 'var(--rvc-rich-text-anchor-font-weight)',
48
- color: 'var(--rvc-rich-text-anchor-color)',
49
- },
50
-
51
- ul: { listStyleType: 'disc' },
52
- ol: { listStyleType: 'decimal' },
53
-
54
- ...theme('components.richText[.rvc-rich-text-textarea]'),
55
- },
56
-
57
- '.rvc-rich-text-toolbar': {
58
- paddingTop: 'var(--rvc-textarea-padding-x)',
59
- paddingRight: 'var(--rvc-textarea-padding-x)',
60
- paddingBottom: 'var(--rvc-textarea-padding-x)',
61
- paddingLeft: 'var(--rvc-textarea-padding-x)',
62
- gap: theme('gap.1'),
63
- display: 'flex',
64
- alignItems: 'center',
65
- position: 'absolute',
66
- top: '0',
67
- right: '0',
68
- left: '0',
69
- flexWrap: 'wrap',
70
- zIndex: '1',
71
- pointerEvents: 'none',
72
- ...theme('components.richText[.rvc-rich-text-toolbar]'),
73
- },
74
-
75
- '.rvc-rich-text-button': {
76
- borderRadius: 'var(--rvc-rich-text-button-border-radius)',
77
- padding: 'var(--rvc-rich-text-button-padding)',
78
- backgroundColor: 'var(--rvc-rich-text-button-bg-color)',
79
- color: 'var(--rvc-rich-text-button-color)',
80
- pointerEvents: 'auto',
81
- ...theme('components.richText[.rvc-rich-text-button]'),
82
-
83
- '&:hover': {
84
- backgroundColor: 'var(--rvc-rich-text-button-bg-color-hover)',
85
- ...theme('components.richText[.rvc-rich-text-button][&:hover]'),
86
- },
87
-
88
- svg: {
89
- width: 'var(--rvc-rich-text-icon-size)',
90
- height: 'var(--rvc-rich-text-icon-size)',
91
- ...theme('components.richText[.rvc-rich-text-button][svg]'),
92
- },
93
-
94
- '&.rvc-rich-text-button-active': {
95
- color: 'var(--rvc-rich-text-button-color-active)',
96
- ...theme('components.richText[.rvc-rich-text-button][&.rvc-rich-text-button-active]'),
97
- },
98
- },
99
- },
100
- });
@@ -1,88 +0,0 @@
1
- /**
2
- * Select component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- '--rvc-select-border-radius': 'var(--rvc-base-border-radius)',
9
- '--rvc-select-border-width': 'var(--rvc-base-border-width)',
10
- '--rvc-select-border-color': 'var(--rvc-base-border-color)',
11
- '--rvc-select-font-size': 'var(--rvc-base-input-font-size)',
12
- '--rvc-select-font-weight': 'var(--rvc-base-input-font-weight)',
13
- '--rvc-select-box-shadow': 'var(--rvc-base-box-shadow)',
14
- '--rvc-select-color': 'var(--rvc-base-input-color)',
15
- '--rvc-select-bg-color': 'var(--rvc-base-input-bg-color)',
16
- '--rvc-select-icon-size': 'var(--rvc-base-input-icon-size)',
17
- '--rvc-select-icon-color': 'var(--rvc-base-input-icon-color)',
18
- '--rvc-select-padding-x': 'var(--rvc-base-input-padding-x)',
19
- '--rvc-select-height': 'var(--rvc-base-input-height)',
20
- '--rvc-select-placeholder-color': 'var(--rvc-base-input-placeholder-color)',
21
- },
22
-
23
- '.rvc-select': {
24
- display: 'grid',
25
- gridTemplateColumns: theme('gridTemplateColumns.1'),
26
- ...theme('components.select'),
27
-
28
- select: {
29
- borderRadius: 'var(--rvc-select-border-radius)',
30
- borderWidth: 'var(--rvc-select-border-width)',
31
- borderColor: 'var(--rvc-select-border-color)',
32
- paddingRight: 'calc(var(--rvc-select-padding-x) + var(--rvc-select-icon-size) + 0.25rem)',
33
- paddingLeft: 'var(--rvc-select-padding-x)',
34
- backgroundColor: 'var(--rvc-select-bg-color)',
35
- backgroundImage: 'none',
36
- fontSize: 'var(--rvc-select-font-size)',
37
- fontWeight: 'var(--rvc-select-font-weight)',
38
- color: 'var(--rvc-select-color)',
39
- boxShadow: 'var(--rvc-select-box-shadow)',
40
- height: 'var(--rvc-select-height)',
41
- width: '100%',
42
- gridColumnStart: '1',
43
- gridRowStart: '1',
44
- appearance: 'none',
45
- outlineWidth: 0,
46
- ...theme('components.select.select'),
47
-
48
- '&:nth-child(2)': {
49
- paddingLeft: 'calc(var(--rvc-select-padding-x) + var(--rvc-select-icon-size) + 0.25rem)',
50
- ...theme('components.select.select[&:nth-child(2)]'),
51
- },
52
- },
53
-
54
- svg: {
55
- width: 'var(--rvc-select-icon-size)',
56
- height: 'var(--rvc-select-icon-size)',
57
- color: 'var(--rvc-select-icon-color)',
58
- position: 'relative',
59
- gridColumnStart: '1',
60
- gridRowStart: '1',
61
- alignSelf: 'center',
62
- justifySelf: 'end',
63
- pointerEvents: 'none',
64
- zIndex: '1',
65
- ...theme('components.select.svg'),
66
-
67
- '&:first-child': {
68
- justifySelf: 'start',
69
- marginLeft: 'var(--rvc-select-padding-x)',
70
- ...theme('components.select.svg[&:first-child]'),
71
- },
72
-
73
- '&:last-child': {
74
- marginRight: 'var(--rvc-select-padding-x)',
75
- ...theme('components.select.svg[&:last-child]'),
76
- },
77
- },
78
-
79
- // Size variants
80
- '&.rvc-select-sm': {
81
- '--rvc-select-font-size': 'calc(var(--rvc-base-input-font-size) * 0.9)',
82
- '--rvc-select-padding-x': 'calc(var(--rvc-base-input-padding-x) * 0.85)',
83
- '--rvc-select-icon-size': 'calc(var(--rvc-base-input-icon-size) * 0.85)',
84
- '--rvc-select-height': '1.875rem',
85
- ...theme('components.select.sm'),
86
- },
87
- },
88
- });
@@ -1,109 +0,0 @@
1
- /**
2
- * DataTable component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- '--rvc-table-head-border-color': 'var(--rvc-base-border-dark-color)',
9
- '--rvc-table-border-color': 'var(--rvc-base-border-color)',
10
- '--rvc-table-border-style': 'var(--rvc-base-border-style)',
11
- '--rvc-table-border-width': 'var(--rvc-base-border-width)',
12
- '--rvc-table-head-bg-color': theme('colors.slate.200'),
13
- '--rvc-table-bg-color': theme('colors.slate.50'),
14
- '--rvc-table-font-size': '0.875rem',
15
- '--rvc-table-head-font-size': '0.875rem',
16
- '--rvc-table-head-font-weight': theme('fontWeight.medium'),
17
- '--rvc-table-font-weight': theme('fontWeight.normal'),
18
- '--rvc-table-padding-x': theme('padding.2'),
19
- '--rvc-table-padding-y': theme('padding.3'),
20
- '--rvc-table-white-space': 'nowrap',
21
- '--rvc-table-line-height': '1.1',
22
- '--rvc-table-spinner-size': theme('size.5'),
23
- },
24
-
25
- '.rvc-table': {
26
- ...theme('components.table'),
27
-
28
- '&.rvc-table-striped': {
29
- thead: {
30
- th: {
31
- paddingRight: 'var(--rvc-table-padding-x)',
32
- paddingLeft: 'var(--rvc-table-padding-x)',
33
- backgroundColor: 'var(--rvc-table-head-bg-color)',
34
- },
35
- },
36
-
37
- 'tr:nth-of-type(even)': {
38
- td: {
39
- backgroundColor: 'var(--rvc-table-bg-color)',
40
- },
41
- },
42
-
43
- td: {
44
- paddingRight: 'var(--rvc-table-padding-x)',
45
- paddingLeft: 'var(--rvc-table-padding-x)',
46
- },
47
- },
48
-
49
- '&:not(.rvc-table-striped)': {
50
- thead: {
51
- th: {
52
- borderBottomWidth: 'var(--rvc-table-border-width)',
53
- borderBottomColor: 'var(--rvc-table-head-border-color)',
54
- borderBottomStyle: 'var(--rvc-table-border-style)',
55
-
56
- '&:not(:first-child,:last-child)': {
57
- paddingRight: 'var(--rvc-table-padding-x)',
58
- paddingLeft: 'var(--rvc-table-padding-x)',
59
- },
60
- },
61
- },
62
-
63
- 'tr:not(:last-child)': {
64
- td: {
65
- borderBottomWidth: 'var(--rvc-table-border-width)',
66
- borderBottomColor: 'var(--rvc-table-border-color)',
67
- borderBottomStyle: 'var(--rvc-table-border-style)',
68
- },
69
- },
70
-
71
- 'td:not(:first-child,:last-child)': {
72
- paddingRight: 'var(--rvc-table-padding-x)',
73
- paddingLeft: 'var(--rvc-table-padding-x)',
74
- },
75
- },
76
-
77
- thead: {
78
- th: {
79
- paddingTop: 'var(--rvc-table-padding-y)',
80
- paddingBottom: 'var(--rvc-table-padding-y)',
81
- fontSize: 'var(--rvc-table-head-font-size)',
82
- fontWeight: 'var(--rvc-table-head-font-weight)',
83
- lineHeight: 'var(--rvc-table-line-height)',
84
- whiteSpace: 'var(--rvc-table-white-space)',
85
- },
86
- },
87
-
88
- td: {
89
- paddingTop: 'var(--rvc-table-padding-y)',
90
- paddingBottom: 'var(--rvc-table-padding-y)',
91
- fontSize: 'var(--rvc-table-font-size)',
92
- fontWeight: 'var(--rvc-table-font-weight)',
93
- lineHeight: 'var(--rvc-table-line-height)',
94
- whiteSpace: 'var(--rvc-table-white-space)',
95
- },
96
-
97
- '.rvc-table-spinner': {
98
- animation: theme('animation.spin'),
99
- width: 'var(--rvc-table-spinner-size)',
100
- height: 'var(--rvc-table-spinner-size)',
101
- },
102
-
103
- 'td.rvc-table-state': {
104
- borderBottomWidth: 'var(--rvc-table-border-width)',
105
- borderBottomColor: 'var(--rvc-table-border-color)',
106
- borderBottomStyle: 'var(--rvc-table-border-style)',
107
- },
108
- },
109
- });
@@ -1,95 +0,0 @@
1
- /**
2
- * Tabs component
3
- *
4
- * @param {Object} theme - The global theme object
5
- */
6
- export default (theme) => ({
7
- ':root': {
8
- // Custom properties
9
- '--rvc-tabs-border-width': 'var(--rvc-base-border-width)',
10
- '--rvc-tabs-border-color': 'var(--rvc-base-border-color)',
11
- '--rvc-tabs-tab-transition-duration': 'var(--rvc-base-transition-duration)',
12
- '--rvc-tabs-tab-transition-timing-function': 'var(--rvc-base-transition-timing-function)',
13
- '--rvc-tabs-tab-button-border-radius': 'var(--rvc-base-border-radius)',
14
- '--rvc-tabs-gap': theme('gap.10'),
15
- '--rvc-tabs-buttons-gap': theme('gap.4'),
16
- '--rvc-tabs-tab-color': theme('colors.slate.600'),
17
- '--rvc-tabs-tab-font-weight': theme('fontWeight.medium'),
18
- '--rvc-tabs-tab-border-width': theme('borderWidth.2'),
19
- '--rvc-tabs-tab-padding-bottom': theme('padding.4'),
20
- '--rvc-tabs-tab-hover-color': theme('colors.slate.700'),
21
- '--rvc-tabs-tab-hover-border-color': theme('colors.slate.600'),
22
- '--rvc-tabs-tab-active-color': theme('colors.indigo.600'),
23
- '--rvc-tabs-tab-active-border-color': theme('colors.indigo.600'),
24
- '--rvc-tabs-tab-button-height': theme('height.9'),
25
- '--rvc-tabs-tab-button-padding-x': theme('padding.3'),
26
- '--rvc-tabs-tab-active-button-bg-color': theme('colors.indigo.100'),
27
- },
28
-
29
- '.rvc-tabs': {
30
- borderBottomWidth: 'var(--rvc-tabs-border-width)',
31
- borderColor: 'var(--rvc-tabs-border-color)',
32
- ...theme('components.tabs'),
33
-
34
- '&.rvc-tabs-buttons': {
35
- borderBottomWidth: '0',
36
- ...theme('components.tabs.buttons'),
37
-
38
- '.rvc-tabs-nav': {
39
- gap: 'var(--rvc-tabs-buttons-gap)',
40
- marginBottom: '0',
41
- ...theme('components.tabs.nav.buttons'),
42
- },
43
-
44
- '.rvc-tab': {
45
- paddingRight: 'var(--rvc-tabs-tab-button-padding-x)',
46
- paddingLeft: 'var(--rvc-tabs-tab-button-padding-x)',
47
- height: 'var(--rvc-tabs-tab-button-height)',
48
- borderRadius: 'var(--rvc-tabs-tab-button-border-radius)',
49
- display: 'inline-flex',
50
- alignItems: 'center',
51
- justifyContent: 'center',
52
- borderBottomWidth: '0',
53
- paddingBottom: '0',
54
- cursor: 'pointer',
55
- ...theme('components.tabs.tab.button'),
56
-
57
- '&.rvc-tab-active': {
58
- backgroundColor: 'var(--rvc-tabs-tab-active-button-bg-color)',
59
- ...theme('components.tabs.tab.active'),
60
- },
61
- },
62
- },
63
-
64
- '.rvc-tabs-nav': {
65
- display: 'flex',
66
- gap: 'var(--rvc-tabs-gap)',
67
- marginBottom: 'calc(var(--rvc-tabs-border-width) * -1)',
68
- ...theme('components.tabs.nav'),
69
- },
70
-
71
- '.rvc-tab': {
72
- color: 'var(--rvc-tabs-tab-color)',
73
- fontWeight: 'var(--rvc-tabs-tab-font-weight)',
74
- borderBottomWidth: 'var(--rvc-tabs-tab-border-width)',
75
- borderColor: 'transparent',
76
- paddingBottom: 'var(--rvc-tabs-tab-padding-bottom)',
77
- transitionDuration: 'var(--rvc-tabs-tab-transition-duration)',
78
- transitionTimingFunction: 'var(--rvc-tabs-tab-transition-timing-function)',
79
- ...theme('components.tabs.tab'),
80
-
81
- // Hover state
82
- '&:hover': {
83
- color: 'var(--rvc-tabs-tab-hover-color)',
84
- borderColor: 'var(--rvc-tabs-tab-hover-border-color)',
85
- ...theme('components.tabs.tab[&:hover]'),
86
- },
87
-
88
- '&.rvc-tab-active': {
89
- color: 'var(--rvc-tabs-tab-active-color)',
90
- borderColor: 'var(--rvc-tabs-tab-active-border-color)',
91
- ...theme('components.tabs.tab.active'),
92
- },
93
- },
94
- },
95
- });