@amelharrak/eldo-ui 1.0.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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/css/eldo.css +11683 -0
  4. package/dist/css/eldo.css.map +1 -0
  5. package/dist/css/eldo.min.css +1 -0
  6. package/dist/index.cjs +2 -0
  7. package/dist/index.cjs.map +1 -0
  8. package/dist/index.mjs +64 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/dist/types/__tests__/Alert.test.d.ts +1 -0
  11. package/dist/types/__tests__/Button.test.d.ts +1 -0
  12. package/dist/types/__tests__/Modal.test.d.ts +1 -0
  13. package/dist/types/components/Accordion.d.ts +15 -0
  14. package/dist/types/components/Alert.d.ts +15 -0
  15. package/dist/types/components/Avatar.d.ts +10 -0
  16. package/dist/types/components/Badge.d.ts +7 -0
  17. package/dist/types/components/Box.d.ts +27 -0
  18. package/dist/types/components/Breadcrumb.d.ts +15 -0
  19. package/dist/types/components/Button.d.ts +16 -0
  20. package/dist/types/components/ButtonGroup.d.ts +7 -0
  21. package/dist/types/components/Card.d.ts +15 -0
  22. package/dist/types/components/Carousel.d.ts +21 -0
  23. package/dist/types/components/Checkbox.d.ts +10 -0
  24. package/dist/types/components/Col.d.ts +12 -0
  25. package/dist/types/components/Collapse.d.ts +12 -0
  26. package/dist/types/components/Container.d.ts +8 -0
  27. package/dist/types/components/Dropdown.d.ts +19 -0
  28. package/dist/types/components/FileUpload.d.ts +13 -0
  29. package/dist/types/components/Input.d.ts +20 -0
  30. package/dist/types/components/InputOTP.d.ts +13 -0
  31. package/dist/types/components/ListGroup.d.ts +20 -0
  32. package/dist/types/components/Modal.d.ts +13 -0
  33. package/dist/types/components/Navbar.d.ts +17 -0
  34. package/dist/types/components/NumberInput.d.ts +15 -0
  35. package/dist/types/components/Offcanvas.d.ts +15 -0
  36. package/dist/types/components/Pagination.d.ts +14 -0
  37. package/dist/types/components/Popover.d.ts +14 -0
  38. package/dist/types/components/Progress.d.ts +11 -0
  39. package/dist/types/components/Radio.d.ts +11 -0
  40. package/dist/types/components/Row.d.ts +7 -0
  41. package/dist/types/components/Scrollspy.d.ts +13 -0
  42. package/dist/types/components/Select.d.ts +16 -0
  43. package/dist/types/components/Slider.d.ts +16 -0
  44. package/dist/types/components/Sonner.d.ts +21 -0
  45. package/dist/types/components/Spinner.d.ts +11 -0
  46. package/dist/types/components/Stat.d.ts +24 -0
  47. package/dist/types/components/Switch.d.ts +14 -0
  48. package/dist/types/components/Tabs.d.ts +20 -0
  49. package/dist/types/components/Text.d.ts +13 -0
  50. package/dist/types/components/Timeline.d.ts +41 -0
  51. package/dist/types/components/Toast.d.ts +17 -0
  52. package/dist/types/components/Tooltip.d.ts +12 -0
  53. package/dist/types/index.d.ts +40 -0
  54. package/package.json +106 -0
  55. package/setup.js +260 -0
  56. package/src/scss/abstracts/_functions.scss +19 -0
  57. package/src/scss/abstracts/_mixins.scss +33 -0
  58. package/src/scss/abstracts/_variables.scss +119 -0
  59. package/src/scss/base/_reset.scss +24 -0
  60. package/src/scss/base/_transitions.scss +10 -0
  61. package/src/scss/base/_typography.scss +50 -0
  62. package/src/scss/components/_accordion.scss +238 -0
  63. package/src/scss/components/_alert.scss +85 -0
  64. package/src/scss/components/_alerts.scss +137 -0
  65. package/src/scss/components/_avatar.scss +184 -0
  66. package/src/scss/components/_badge.scss +70 -0
  67. package/src/scss/components/_blockquote.scss +41 -0
  68. package/src/scss/components/_breadcrumb.scss +39 -0
  69. package/src/scss/components/_button-group.scss +43 -0
  70. package/src/scss/components/_button.scss +92 -0
  71. package/src/scss/components/_buttons.scss +66 -0
  72. package/src/scss/components/_calendar.scss +520 -0
  73. package/src/scss/components/_card.scss +52 -0
  74. package/src/scss/components/_cards.scss +123 -0
  75. package/src/scss/components/_carousel.scss +490 -0
  76. package/src/scss/components/_charts.scss +29 -0
  77. package/src/scss/components/_checkbox.scss +194 -0
  78. package/src/scss/components/_code.scss +70 -0
  79. package/src/scss/components/_collapse.scss +13 -0
  80. package/src/scss/components/_combobox.scss +239 -0
  81. package/src/scss/components/_date-picker.scss +102 -0
  82. package/src/scss/components/_divider.scss +55 -0
  83. package/src/scss/components/_dropdown.scss +122 -0
  84. package/src/scss/components/_file-upload.scss +233 -0
  85. package/src/scss/components/_floating-labels.scss +247 -0
  86. package/src/scss/components/_form-select.scss +49 -0
  87. package/src/scss/components/_forms.scss +41 -0
  88. package/src/scss/components/_index.scss +7 -0
  89. package/src/scss/components/_input-otp.scss +338 -0
  90. package/src/scss/components/_list-group.scss +95 -0
  91. package/src/scss/components/_modal.scss +166 -0
  92. package/src/scss/components/_nav.scss +175 -0
  93. package/src/scss/components/_navbar.scss +228 -0
  94. package/src/scss/components/_number-input.scss +67 -0
  95. package/src/scss/components/_offcanvas.scss +123 -0
  96. package/src/scss/components/_pagination.scss +64 -0
  97. package/src/scss/components/_placeholders.scss +52 -0
  98. package/src/scss/components/_popovers.scss +69 -0
  99. package/src/scss/components/_progress.scss +90 -0
  100. package/src/scss/components/_range.scss +82 -0
  101. package/src/scss/components/_scrollspy.scss +239 -0
  102. package/src/scss/components/_skeleton.scss +108 -0
  103. package/src/scss/components/_slider.scss +95 -0
  104. package/src/scss/components/_snippet.scss +79 -0
  105. package/src/scss/components/_spinners.scss +137 -0
  106. package/src/scss/components/_stat.scss +42 -0
  107. package/src/scss/components/_stepper.scss +104 -0
  108. package/src/scss/components/_switch.scss +57 -0
  109. package/src/scss/components/_table.scss +109 -0
  110. package/src/scss/components/_tag.scss +60 -0
  111. package/src/scss/components/_tags-input.scss +60 -0
  112. package/src/scss/components/_timeline.scss +238 -0
  113. package/src/scss/components/_toasts.scss +75 -0
  114. package/src/scss/components/_tooltips.scss +50 -0
  115. package/src/scss/components/_tree-view.scss +72 -0
  116. package/src/scss/components/_user.scss +26 -0
  117. package/src/scss/docs/_examples.scss +148 -0
  118. package/src/scss/docs/_layout.scss +251 -0
  119. package/src/scss/docs/_search.scss +141 -0
  120. package/src/scss/eldo.scss +74 -0
  121. package/src/scss/layout/_container.scss +37 -0
  122. package/src/scss/layout/_grid.scss +49 -0
  123. package/src/scss/pages/_landing-config.scss +135 -0
  124. package/src/scss/pages/_landing-features-enhanced.scss +165 -0
  125. package/src/scss/pages/_landing-hero-enhanced.scss +427 -0
  126. package/src/scss/pages/_landing-setup.scss +264 -0
  127. package/src/scss/pages/_landing.scss +1828 -0
  128. package/src/scss/utilities/_api.scss +66 -0
  129. package/src/scss/utilities/_colors.scss +32 -0
  130. package/src/scss/utilities/_display.scss +70 -0
  131. package/src/scss/utilities/_glass.scss +32 -0
  132. package/src/scss/utilities/_helpers.scss +16 -0
  133. package/src/scss/utilities/_map.scss +224 -0
  134. package/src/scss/utilities/_spacing.scss +58 -0
@@ -0,0 +1,79 @@
1
+ @use "../abstracts/variables" as *;
2
+ @use "sass:color";
3
+
4
+ .snippet {
5
+ position: relative;
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: space-between;
9
+ gap: $spacer;
10
+ padding: $spacer * 0.5 $spacer;
11
+ background-color: $gray-100;
12
+ border-radius: $border-radius-lg; // More rounded like HeroUI
13
+ border: 1px solid $gray-200;
14
+ font-family: $font-family-code;
15
+ font-size: $font-size-sm;
16
+ color: $gray-800;
17
+ min-width: 200px;
18
+
19
+ // Symbol (like $)
20
+ .snippet-symbol {
21
+ user-select: none;
22
+ color: $gray-500;
23
+ margin-right: $spacer * 0.25;
24
+ }
25
+
26
+ // actual code text
27
+ .snippet-text {
28
+ flex: 1;
29
+ overflow: hidden;
30
+ text-overflow: ellipsis;
31
+ white-space: nowrap;
32
+ }
33
+
34
+ // Copy Button (Icon only)
35
+ .snippet-copy-btn {
36
+ background: transparent;
37
+ border: none;
38
+ color: $gray-500;
39
+ cursor: pointer;
40
+ padding: 0.25rem;
41
+ border-radius: $border-radius;
42
+ transition: all 0.2s;
43
+ line-height: 0;
44
+
45
+ &:hover {
46
+ color: $gray-800;
47
+ background-color: rgba(0, 0, 0, 0.05);
48
+ }
49
+
50
+ &.copied {
51
+ color: $success;
52
+ }
53
+ }
54
+
55
+ // Variations
56
+ &.snippet-solid {
57
+ background-color: $gray-900;
58
+ color: $white;
59
+ border-color: $gray-900;
60
+
61
+ .snippet-symbol {
62
+ color: $gray-400;
63
+ }
64
+
65
+ .snippet-copy-btn {
66
+ color: $gray-400;
67
+
68
+ &:hover {
69
+ color: $white;
70
+ background-color: rgba(255, 255, 255, 0.1);
71
+ }
72
+ }
73
+ }
74
+
75
+ &.snippet-flat {
76
+ background-color: transparent;
77
+ border-color: transparent;
78
+ }
79
+ }
@@ -0,0 +1,137 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ @keyframes spinner-border {
5
+ to {
6
+ transform: rotate(360deg);
7
+ }
8
+ }
9
+
10
+ .spinner-border {
11
+ display: inline-block;
12
+ width: 1.5rem; // Slightly smaller default
13
+ height: 1.5rem;
14
+ vertical-align: -0.125em;
15
+ border: 0.15rem solid currentColor; // Refined thin border
16
+ border-right-color: transparent;
17
+ border-radius: 50%;
18
+ animation: spinner-border 0.75s linear infinite;
19
+
20
+ &.text-primary {
21
+ color: $primary;
22
+ }
23
+
24
+ &.text-secondary {
25
+ color: $secondary;
26
+ }
27
+
28
+ &.text-success {
29
+ color: $success;
30
+ }
31
+
32
+ &.text-danger {
33
+ color: $danger;
34
+ }
35
+
36
+ &.text-warning {
37
+ color: $warning;
38
+ }
39
+
40
+ &.text-info {
41
+ color: $info;
42
+ }
43
+
44
+ &.text-light {
45
+ color: $light;
46
+ }
47
+
48
+ &.text-dark {
49
+ color: $dark;
50
+ }
51
+ }
52
+
53
+ .spinner-border-sm {
54
+ width: 1rem;
55
+ height: 1rem;
56
+ border-width: 0.125em;
57
+ }
58
+
59
+ @keyframes spinner-grow {
60
+ 0% {
61
+ transform: scale(0);
62
+ }
63
+
64
+ 50% {
65
+ opacity: 1;
66
+ transform: none;
67
+ }
68
+ }
69
+
70
+ .spinner-grow {
71
+ display: inline-block;
72
+ width: 1.5rem;
73
+ height: 1.5rem;
74
+ vertical-align: -0.125em;
75
+ background-color: currentColor;
76
+ border-radius: 50%;
77
+ opacity: 0;
78
+ animation: spinner-grow 0.75s linear infinite;
79
+ }
80
+
81
+ .spinner-grow-sm {
82
+ width: 1rem;
83
+ height: 1rem;
84
+ }
85
+
86
+ // Dots Spinner (Modern)
87
+ .spinner-dots {
88
+ display: flex;
89
+ justify-content: center;
90
+ align-items: center;
91
+
92
+ div {
93
+ width: 0.5rem;
94
+ height: 0.5rem;
95
+ margin: 0 0.2rem;
96
+ background-color: currentColor;
97
+ border-radius: 50%;
98
+ animation: spinner-dots-bounce 1.4s infinite ease-in-out both;
99
+
100
+ &:nth-child(1) {
101
+ animation-delay: -0.32s;
102
+ }
103
+
104
+ &:nth-child(2) {
105
+ animation-delay: -0.16s;
106
+ }
107
+ }
108
+ }
109
+
110
+ @keyframes spinner-dots-bounce {
111
+
112
+ 0%,
113
+ 80%,
114
+ 100% {
115
+ transform: scale(0);
116
+ }
117
+
118
+ 40% {
119
+ transform: scale(1);
120
+ }
121
+ }
122
+
123
+ // Loading Overlay (New)
124
+ .loader-overlay {
125
+ position: absolute;
126
+ top: 0;
127
+ left: 0;
128
+ width: 100%;
129
+ height: 100%;
130
+ background: rgba(255, 255, 255, 0.8);
131
+ backdrop-filter: blur(2px);
132
+ display: flex;
133
+ justify-content: center;
134
+ align-items: center;
135
+ z-index: 10;
136
+ border-radius: inherit;
137
+ }
@@ -0,0 +1,42 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ .stat {
5
+ display: flex;
6
+ flex-direction: column;
7
+ }
8
+
9
+ .stat-label {
10
+ font-weight: 500;
11
+ font-size: 0.875rem;
12
+ color: $gray-600;
13
+ }
14
+
15
+ .stat-number {
16
+ font-weight: 700;
17
+ font-size: 2.25rem;
18
+ line-height: 1.2;
19
+ color: $body-color;
20
+ font-feature-settings: "tnum";
21
+ font-variant-numeric: tabular-nums;
22
+ }
23
+
24
+ .stat-help-text {
25
+ font-size: 0.875rem;
26
+ color: $gray-500;
27
+ margin-top: 0.25rem;
28
+ display: flex;
29
+ align-items: center;
30
+
31
+ svg {
32
+ margin-right: 0.25rem;
33
+ }
34
+
35
+ &.type-increase {
36
+ color: $success;
37
+ }
38
+
39
+ &.type-decrease {
40
+ color: $danger;
41
+ }
42
+ }
@@ -0,0 +1,104 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ .stepper {
5
+ display: flex;
6
+ justify-content: space-between;
7
+ align-items: center;
8
+ width: 100%;
9
+ margin-bottom: 2rem;
10
+ position: relative;
11
+
12
+ // The connecting line
13
+ &::before {
14
+ content: "";
15
+ position: absolute;
16
+ top: 50%;
17
+ left: 0;
18
+ right: 0;
19
+ height: 2px;
20
+ background-color: $gray-200;
21
+ transform: translateY(-50%);
22
+ z-index: 1;
23
+ }
24
+ }
25
+
26
+ .stepper-item {
27
+ position: relative;
28
+ z-index: 2;
29
+ display: flex;
30
+ flex-direction: column;
31
+ align-items: center;
32
+ gap: 0.5rem;
33
+ background-color: $white;
34
+ padding: 0 0.5rem;
35
+ }
36
+
37
+ .stepper-circle {
38
+ width: 2.5rem;
39
+ height: 2.5rem;
40
+ border-radius: 50%;
41
+ background-color: $white;
42
+ border: 2px solid $gray-200;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ font-weight: $font-weight-bold;
47
+ color: $gray-500;
48
+ transition: all 0.3s ease;
49
+ }
50
+
51
+ .stepper-label {
52
+ font-size: $font-size-sm;
53
+ font-weight: $font-weight-medium;
54
+ color: $gray-500;
55
+ }
56
+
57
+ // States
58
+ .stepper-item.completed {
59
+ .stepper-circle {
60
+ background-color: $success;
61
+ border-color: $success;
62
+ color: $white;
63
+ }
64
+
65
+ .stepper-label {
66
+ color: $success;
67
+ }
68
+ }
69
+
70
+ .stepper-item.active {
71
+ .stepper-circle {
72
+ background-color: $white;
73
+ border-color: $primary;
74
+ color: $primary;
75
+ box-shadow: 0 0 0 4px color.scale($primary, $alpha: -80%);
76
+ }
77
+
78
+ .stepper-label {
79
+ color: $primary;
80
+ font-weight: $font-weight-bold;
81
+ }
82
+ }
83
+
84
+ // Vertical variation
85
+ .stepper-vertical {
86
+ flex-direction: column;
87
+ align-items: flex-start;
88
+ gap: 1.5rem;
89
+
90
+ &::before {
91
+ left: 1.25rem;
92
+ top: 0;
93
+ bottom: 0;
94
+ width: 2px;
95
+ height: 100%;
96
+ transform: translateX(-50%);
97
+ }
98
+
99
+ .stepper-item {
100
+ flex-direction: row;
101
+ padding: 0;
102
+ background: transparent;
103
+ }
104
+ }
@@ -0,0 +1,57 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ .form-switch {
5
+ padding-left: 3.5em;
6
+ margin-bottom: 0.5rem;
7
+
8
+ .form-check-input {
9
+ width: 3em;
10
+ margin-left: -3.5em;
11
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
12
+ background-position: left center;
13
+ border-radius: 3em;
14
+ transition: background-position 0.2s ease-in-out, background-color 0.2s ease-in-out;
15
+ border: 2px solid $gray-300;
16
+
17
+ &:focus {
18
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23adb5bd'/%3e%3c/svg%3e");
19
+ }
20
+
21
+ &:checked {
22
+ background-position: right center;
23
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
24
+ background-color: $primary;
25
+ border-color: $primary;
26
+ }
27
+ }
28
+
29
+ // Switch Sizes
30
+ &.form-switch-sm {
31
+ padding-left: 2.5em;
32
+
33
+ .form-check-input {
34
+ width: 2em;
35
+ margin-left: -2.5em;
36
+ height: 1.25em;
37
+ }
38
+ }
39
+
40
+ &.form-switch-lg {
41
+ padding-left: 4.5em;
42
+
43
+ .form-check-input {
44
+ width: 4em;
45
+ margin-left: -4.5em;
46
+ height: 2em;
47
+ }
48
+ }
49
+ }
50
+
51
+ // Color variations
52
+ @each $color, $value in $theme-colors {
53
+ .form-switch-#{$color} .form-check-input:checked {
54
+ background-color: $value;
55
+ border-color: $value;
56
+ }
57
+ }
@@ -0,0 +1,109 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ // Table Variables
5
+ .table {
6
+ --e-table-bg: transparent;
7
+ --e-table-header-bg: transparent;
8
+ --e-table-header-color: #64748b; // Slate-500
9
+ --e-table-border-color: #e2e8f0; // Slate-200
10
+ --e-table-striped-bg: #f8fafc; // Slate-50
11
+ --e-table-striped-color: #1e293b; // Slate-800
12
+ --e-table-hover-bg: #f1f5f9; // Slate-100
13
+ --e-table-hover-color: #0f172a; // Slate-900
14
+
15
+ width: 100%;
16
+ margin-bottom: 1rem;
17
+ color: #334155; // Slate-700
18
+ vertical-align: top;
19
+ border-color: var(--e-table-border-color);
20
+
21
+ // Header Styling
22
+ > :not(caption)>*>* {
23
+ padding: 1rem 1rem; // Reduced horizontal padding (was 1.5rem)
24
+ background-color: var(--e-table-bg);
25
+ border-bottom-width: 1px;
26
+ box-shadow: inset 0 0 0 9999px var(--e-table-accent-bg);
27
+ }
28
+
29
+ >thead {
30
+ vertical-align: middle; // Vertically center headers
31
+
32
+ th {
33
+ text-align: left; // Default align left matching standard data
34
+ font-weight: 600;
35
+ font-size: 0.8125rem;
36
+ text-transform: uppercase;
37
+ letter-spacing: 0.05em;
38
+ color: #475569;
39
+ background-color: #f8fafc;
40
+ border-bottom: 1px solid #e2e8f0;
41
+ }
42
+ }
43
+
44
+ >tbody {
45
+ vertical-align: middle; // Ensure data is vertically centered
46
+
47
+ tr {
48
+ transition: background-color 0.2s ease;
49
+ }
50
+ }
51
+ }
52
+
53
+ // Clean Variant (Floating Rows)
54
+ .table-clean {
55
+ border-collapse: separate;
56
+ border-spacing: 0 0.5rem; // Row gap
57
+
58
+ >thead th {
59
+ background-color: transparent;
60
+ border-bottom: 0;
61
+ padding-bottom: 0.5rem;
62
+ }
63
+
64
+ >tbody>tr {
65
+ background-color: #fff;
66
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
67
+ border-radius: 0.5rem;
68
+
69
+ >td {
70
+ background-color: transparent; // Let row bg show
71
+ border: 0;
72
+
73
+ &:first-child {
74
+ border-top-left-radius: 0.5rem;
75
+ border-bottom-left-radius: 0.5rem;
76
+ }
77
+
78
+ &:last-child {
79
+ border-top-right-radius: 0.5rem;
80
+ border-bottom-right-radius: 0.5rem;
81
+ }
82
+ }
83
+
84
+ &:hover {
85
+ transform: translateY(-1px);
86
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
87
+ background-color: #fff; // Keep white styling on hover
88
+ z-index: 1;
89
+ position: relative;
90
+ }
91
+ }
92
+ }
93
+
94
+ // Striped
95
+ .table-striped {
96
+ >tbody>tr:nth-of-type(odd)>* {
97
+ --e-table-accent-bg: var(--e-table-striped-bg);
98
+ color: var(--e-table-striped-color);
99
+ }
100
+ }
101
+
102
+ // Hover Effect (Standard)
103
+ .table-hover {
104
+ >tbody>tr:hover>* {
105
+ --e-table-accent-bg: var(--e-table-hover-bg);
106
+ color: var(--e-table-hover-color);
107
+ cursor: pointer;
108
+ }
109
+ }
@@ -0,0 +1,60 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+ @use "../abstracts/functions" as *;
4
+
5
+ // Tags are similar to badges but often have different interaction sizing
6
+ // and are usually 'subtle' by default in the requested style.
7
+
8
+ .tag {
9
+ display: inline-flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ padding: 0.25rem 0.5rem;
13
+ font-size: 0.875rem;
14
+ font-weight: 500;
15
+ line-height: 1.25;
16
+ border-radius: $border-radius-sm;
17
+ white-space: nowrap;
18
+ vertical-align: top;
19
+
20
+ // Default to a subtle gray interaction
21
+ background-color: $gray-200;
22
+ color: $gray-800;
23
+
24
+ .btn-close {
25
+ width: 0.5em;
26
+ height: 0.5em;
27
+ margin-left: 0.5rem;
28
+ padding: 0;
29
+ opacity: 0.5;
30
+
31
+ &:hover {
32
+ opacity: 1;
33
+ }
34
+ }
35
+ }
36
+
37
+ // Rounded tags
38
+ .tag-rounded {
39
+ border-radius: 50rem;
40
+ padding-left: 0.75rem;
41
+ padding-right: 0.75rem;
42
+ }
43
+
44
+ // Tag Variants similar to badges
45
+ @each $state, $value in $theme-colors {
46
+ .tag-#{$state} {
47
+ background-color: color.scale($value, $lightness: 85%);
48
+ color: color.scale($value, $lightness: -40%);
49
+
50
+ @if $state =="dark" {
51
+ background-color: color.scale($value, $lightness: 20%);
52
+ color: #fff;
53
+ }
54
+ }
55
+
56
+ .tag-solid-#{$state} {
57
+ background-color: $value;
58
+ color: color-contrast($value);
59
+ }
60
+ }
@@ -0,0 +1,60 @@
1
+ @use "sass:color";
2
+ @use "../abstracts/variables" as *;
3
+
4
+ .tags-input-container {
5
+ display: flex;
6
+ flex-wrap: wrap;
7
+ align-items: center;
8
+ gap: 0.25rem;
9
+ min-height: calc(1.5em + 0.75rem + 2px);
10
+ padding: 0.375rem 0.75rem;
11
+ font-size: 1rem;
12
+ font-weight: 400;
13
+ line-height: 1.5;
14
+ color: $body-color;
15
+ background-color: #fff;
16
+ background-clip: padding-box;
17
+ border: 1px solid $gray-300;
18
+ border-radius: $border-radius;
19
+ transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
20
+ cursor: text;
21
+
22
+ &.focus-within {
23
+ border-color: color.scale($primary, $lightness: 40%);
24
+ outline: 0;
25
+ box-shadow: 0 0 0 0.25rem rgba($primary, 0.25);
26
+ }
27
+
28
+ .tag-item {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ background-color: $gray-200;
32
+ color: $gray-800;
33
+ border-radius: $border-radius-sm;
34
+ padding: 0.125rem 0.5rem;
35
+ font-size: 0.875rem;
36
+
37
+ .btn-close {
38
+ margin-left: 0.5rem;
39
+ font-size: 0.75rem;
40
+ width: 0.5em;
41
+ height: 0.5em;
42
+ background-size: 0.75em;
43
+ }
44
+ }
45
+
46
+ input.tags-input-field {
47
+ border: none;
48
+ outline: none;
49
+ background: transparent;
50
+ flex-grow: 1;
51
+ min-width: 150px;
52
+ color: inherit;
53
+ padding: 0;
54
+ margin: 0;
55
+
56
+ &::placeholder {
57
+ color: $gray-500;
58
+ }
59
+ }
60
+ }