@updevs/components 1.0.0-alpha.1 → 1.0.0-alpha.100

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 (198) hide show
  1. package/README.md +1 -24
  2. package/assets/styles/_bootstrap-components.scss +55 -0
  3. package/assets/styles/_bootstrap-config.scss +7 -0
  4. package/assets/styles/_bootstrap-override.scss +78 -0
  5. package/assets/styles/_config.scss +9 -0
  6. package/assets/styles/_core.scss +80 -0
  7. package/assets/styles/_debug.scss +49 -0
  8. package/assets/styles/_mixins.scss +2 -0
  9. package/assets/styles/_props.scss +91 -0
  10. package/assets/styles/_seven-columns.scss +73 -0
  11. package/assets/styles/_updevs.scss +25 -0
  12. package/assets/styles/_utilities-marketing.scss +209 -0
  13. package/assets/styles/_utilities.scss +133 -0
  14. package/assets/styles/_variables-dark.scss +19 -0
  15. package/assets/styles/_variables.scss +1003 -0
  16. package/assets/styles/fonts/_webfonts.scss +15 -0
  17. package/assets/styles/helpers/_index.scss +143 -0
  18. package/assets/styles/layout/_animations.scss +62 -0
  19. package/assets/styles/layout/_core.scss +62 -0
  20. package/assets/styles/layout/_dark.scss +77 -0
  21. package/assets/styles/layout/_footer.scss +12 -0
  22. package/assets/styles/layout/_navbar.scss +392 -0
  23. package/assets/styles/layout/_page.scss +170 -0
  24. package/assets/styles/layout/_root.scss +64 -0
  25. package/assets/styles/marketing/_browser.scss +67 -0
  26. package/assets/styles/marketing/_core.scss +8 -0
  27. package/assets/styles/marketing/_filters.scss +0 -0
  28. package/assets/styles/marketing/_hero.scss +70 -0
  29. package/assets/styles/marketing/_pricing.scss +111 -0
  30. package/assets/styles/marketing/_sections.scss +124 -0
  31. package/assets/styles/marketing/_shape.scss +31 -0
  32. package/assets/styles/mixins/_functions.scss +96 -0
  33. package/assets/styles/mixins/_mixins.scss +68 -0
  34. package/assets/styles/ui/_accordion.scss +178 -0
  35. package/assets/styles/ui/_alerts.scss +101 -0
  36. package/assets/styles/ui/_avatars.scss +145 -0
  37. package/assets/styles/ui/_badges.scss +113 -0
  38. package/assets/styles/ui/_breadcrumbs.scss +50 -0
  39. package/assets/styles/ui/_button-group.scss +16 -0
  40. package/assets/styles/ui/_buttons.scss +261 -0
  41. package/assets/styles/ui/_calendars.scss +104 -0
  42. package/assets/styles/ui/_cards.scss +595 -0
  43. package/assets/styles/ui/_carousel.scss +68 -0
  44. package/assets/styles/ui/_charts.scss +61 -0
  45. package/assets/styles/ui/_chat.scss +38 -0
  46. package/assets/styles/ui/_chips.scss +0 -0
  47. package/assets/styles/ui/_close.scss +60 -0
  48. package/assets/styles/ui/_datagrid.scss +17 -0
  49. package/assets/styles/ui/_dropdowns.scss +120 -0
  50. package/assets/styles/ui/_empty.scss +60 -0
  51. package/assets/styles/ui/_flags.scss +31 -0
  52. package/assets/styles/ui/_forms.scss +250 -0
  53. package/assets/styles/ui/_grid.scss +115 -0
  54. package/assets/styles/ui/_icons.scss +72 -0
  55. package/assets/styles/ui/_images.scss +19 -0
  56. package/assets/styles/ui/_legend.scss +12 -0
  57. package/assets/styles/ui/_lists.scss +123 -0
  58. package/assets/styles/ui/_loaders.scss +72 -0
  59. package/assets/styles/ui/_login.scss +3 -0
  60. package/assets/styles/ui/_markdown.scss +53 -0
  61. package/assets/styles/ui/_modals.scss +67 -0
  62. package/assets/styles/ui/_nav.scss +106 -0
  63. package/assets/styles/ui/_offcanvas.scss +17 -0
  64. package/assets/styles/ui/_pagination.scss +58 -0
  65. package/assets/styles/ui/_payments.scss +28 -0
  66. package/assets/styles/ui/_placeholder.scss +9 -0
  67. package/assets/styles/ui/_popovers.scss +2 -0
  68. package/assets/styles/ui/_progress.scss +107 -0
  69. package/assets/styles/ui/_ribbons.scss +157 -0
  70. package/assets/styles/ui/_segmented.scss +101 -0
  71. package/assets/styles/ui/_signature.scss +15 -0
  72. package/assets/styles/ui/_social.scss +52 -0
  73. package/assets/styles/ui/_stars.scss +13 -0
  74. package/assets/styles/ui/_status.scss +163 -0
  75. package/assets/styles/ui/_steps.scss +156 -0
  76. package/assets/styles/ui/_switch-icon.scss +211 -0
  77. package/assets/styles/ui/_tables.scss +176 -0
  78. package/assets/styles/ui/_tags.scss +57 -0
  79. package/assets/styles/ui/_timeline.scss +61 -0
  80. package/assets/styles/ui/_toasts.scss +18 -0
  81. package/assets/styles/ui/_toolbar.scss +10 -0
  82. package/assets/styles/ui/_tracking.scss +29 -0
  83. package/assets/styles/ui/_type.scss +330 -0
  84. package/assets/styles/ui/forms/_form-check.scss +91 -0
  85. package/assets/styles/ui/forms/_form-colorinput.scss +54 -0
  86. package/assets/styles/ui/forms/_form-custom.scss +28 -0
  87. package/assets/styles/ui/forms/_form-icon.scss +35 -0
  88. package/assets/styles/ui/forms/_form-imagecheck.scss +105 -0
  89. package/assets/styles/ui/forms/_form-selectgroup.scss +153 -0
  90. package/assets/styles/ui/forms/_validation.scss +13 -0
  91. package/assets/styles/ui/typo/_hr.scss +76 -0
  92. package/assets/styles/utils/_background.scss +15 -0
  93. package/assets/styles/utils/_colors.scss +101 -0
  94. package/assets/styles/utils/_opacity.scss +7 -0
  95. package/assets/styles/utils/_scroll.scss +45 -0
  96. package/assets/styles/utils/_shadow.scss +17 -0
  97. package/assets/styles/utils/_sizing.scss +10 -0
  98. package/assets/styles/utils/_text.scss +14 -0
  99. package/assets/styles/vendor/_apexcharts.scss +52 -0
  100. package/assets/styles/vendor/_coloris.scss +72 -0
  101. package/assets/styles/vendor/_dropzone.scss +27 -0
  102. package/assets/styles/vendor/_fslightbox.scss +13 -0
  103. package/assets/styles/vendor/_jsvectormap.scss +47 -0
  104. package/assets/styles/vendor/_litepicker.scss +69 -0
  105. package/assets/styles/vendor/_nouislider.scss +49 -0
  106. package/assets/styles/vendor/_plyr.scss +3 -0
  107. package/assets/styles/vendor/_stars-rating.scss +22 -0
  108. package/assets/styles/vendor/_tom-select.scss +81 -0
  109. package/assets/styles/vendor/_turbo.scss +3 -0
  110. package/assets/styles/vendor/_typed.scss +4 -0
  111. package/assets/styles/vendor/_wysiwyg.scss +46 -0
  112. package/fesm2022/updevs-components-badge.mjs +89 -0
  113. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  114. package/fesm2022/updevs-components-button.mjs +193 -0
  115. package/fesm2022/updevs-components-button.mjs.map +1 -0
  116. package/fesm2022/updevs-components-calendar.mjs +582 -0
  117. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  118. package/fesm2022/updevs-components-card.mjs +242 -0
  119. package/fesm2022/updevs-components-card.mjs.map +1 -0
  120. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  121. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  122. package/fesm2022/updevs-components-dropdown.mjs +247 -0
  123. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  124. package/fesm2022/updevs-components-form-controls-abstractions.mjs +106 -0
  125. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  126. package/fesm2022/updevs-components-form-controls-checkbox.mjs +99 -0
  127. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  128. package/fesm2022/updevs-components-form-controls-date-picker.mjs +175 -0
  129. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  130. package/fesm2022/updevs-components-form-controls-file-upload.mjs +272 -0
  131. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  132. package/fesm2022/updevs-components-form-controls-input.mjs +281 -0
  133. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  134. package/fesm2022/updevs-components-form-controls-radio.mjs +98 -0
  135. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  136. package/fesm2022/updevs-components-form-controls-select.mjs +600 -0
  137. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  138. package/fesm2022/updevs-components-form-controls-textarea.mjs +79 -0
  139. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  140. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  141. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  142. package/fesm2022/updevs-components-form.mjs +562 -0
  143. package/fesm2022/updevs-components-form.mjs.map +1 -0
  144. package/fesm2022/updevs-components-layout.mjs +1054 -0
  145. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  146. package/fesm2022/updevs-components-link.mjs +79 -0
  147. package/fesm2022/updevs-components-link.mjs.map +1 -0
  148. package/fesm2022/updevs-components-list.mjs +215 -0
  149. package/fesm2022/updevs-components-list.mjs.map +1 -0
  150. package/fesm2022/updevs-components-modal.mjs +505 -0
  151. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  152. package/fesm2022/updevs-components-paginator.mjs +160 -0
  153. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  154. package/fesm2022/updevs-components-popover.mjs +215 -0
  155. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  156. package/fesm2022/updevs-components-pricing.mjs +130 -0
  157. package/fesm2022/updevs-components-pricing.mjs.map +1 -0
  158. package/fesm2022/updevs-components-table.mjs +2060 -0
  159. package/fesm2022/updevs-components-table.mjs.map +1 -0
  160. package/fesm2022/updevs-components.mjs +33 -0
  161. package/fesm2022/updevs-components.mjs.map +1 -0
  162. package/package.json +127 -14
  163. package/types/updevs-components-badge.d.ts +44 -0
  164. package/types/updevs-components-button.d.ts +75 -0
  165. package/types/updevs-components-calendar.d.ts +175 -0
  166. package/types/updevs-components-card.d.ts +92 -0
  167. package/types/updevs-components-drag-and-drop.d.ts +74 -0
  168. package/types/updevs-components-dropdown.d.ts +124 -0
  169. package/types/updevs-components-form-controls-abstractions.d.ts +49 -0
  170. package/types/updevs-components-form-controls-checkbox.d.ts +33 -0
  171. package/types/updevs-components-form-controls-date-picker.d.ts +80 -0
  172. package/types/updevs-components-form-controls-file-upload.d.ts +69 -0
  173. package/types/updevs-components-form-controls-input.d.ts +95 -0
  174. package/types/updevs-components-form-controls-radio.d.ts +32 -0
  175. package/types/updevs-components-form-controls-select.d.ts +200 -0
  176. package/types/updevs-components-form-controls-textarea.d.ts +31 -0
  177. package/types/updevs-components-form-controls-time-picker.d.ts +164 -0
  178. package/types/updevs-components-form.d.ts +356 -0
  179. package/types/updevs-components-layout.d.ts +490 -0
  180. package/types/updevs-components-link.d.ts +34 -0
  181. package/types/updevs-components-list.d.ts +107 -0
  182. package/types/updevs-components-modal.d.ts +155 -0
  183. package/types/updevs-components-paginator.d.ts +58 -0
  184. package/types/updevs-components-popover.d.ts +63 -0
  185. package/types/updevs-components-pricing.d.ts +91 -0
  186. package/types/updevs-components-table.d.ts +619 -0
  187. package/types/updevs-components.d.ts +44 -0
  188. package/CHANGELOG.md +0 -8
  189. package/ng-package.json +0 -7
  190. package/src/lib/components.component.spec.ts +0 -23
  191. package/src/lib/components.component.ts +0 -14
  192. package/src/lib/components.module.ts +0 -17
  193. package/src/lib/components.service.spec.ts +0 -16
  194. package/src/lib/components.service.ts +0 -9
  195. package/src/public-api.ts +0 -7
  196. package/tsconfig.lib.json +0 -14
  197. package/tsconfig.lib.prod.json +0 -10
  198. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,101 @@
1
+ .alert {
2
+ // scss-docs-start alert-variables
3
+ --#{$prefix}alert-color: var(--#{$prefix}body-color);
4
+ --#{$prefix}alert-bg: #{color-transparent(var(--#{$prefix}alert-color), .1)};
5
+ --#{$prefix}alert-padding-x: #{$alert-padding-x};
6
+ --#{$prefix}alert-padding-y: #{$alert-padding-y};
7
+ --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
8
+ --#{$prefix}alert-border-color: #{color-transparent(var(--#{$prefix}alert-color), .2)};
9
+ --#{$prefix}alert-border: var(--#{$prefix}border-width) solid var(--#{$prefix}alert-border-color);
10
+ --#{$prefix}alert-border-radius: var(--#{$prefix}border-radius);
11
+ --#{$prefix}alert-link-color: inherit;
12
+ --#{$prefix}alert-heading-font-weight: var(--#{$prefix}font-weight-medium);
13
+ // scss-docs-end
14
+
15
+ position: relative;
16
+ padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
17
+ margin-bottom: var(--#{$prefix}alert-margin-bottom);
18
+ background-color: color-mix(in srgb, var(--#{$prefix}alert-bg), var(--#{$prefix}bg-surface));
19
+ border-radius: var(--#{$prefix}alert-border-radius);
20
+ border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}alert-border-color);
21
+ display: flex;
22
+ flex-direction: row;
23
+ gap: 1rem;
24
+ }
25
+
26
+ .alert-heading {
27
+ color: inherit;
28
+ margin-bottom: .25rem; // todo: use variable
29
+ font-weight: var(--#{$prefix}alert-heading-font-weight);
30
+ }
31
+
32
+ .alert-description {
33
+ color: var(--#{$prefix}secondary);
34
+ }
35
+
36
+ .alert-icon {
37
+ color: var(--#{$prefix}alert-color);
38
+ width: 1.25rem !important; // todo: use variable
39
+ height: 1.25rem !important;
40
+ }
41
+
42
+ .alert-action {
43
+ color: var(--#{$prefix}alert-color);
44
+ text-decoration: underline;
45
+
46
+ &:hover {
47
+ text-decoration: none;
48
+ }
49
+ }
50
+
51
+ .alert-list {
52
+ margin: 0;
53
+ }
54
+
55
+ .alert-link {
56
+ font-weight: $alert-link-font-weight;
57
+ color: var(--#{$prefix}alert-link-color);
58
+
59
+ &,
60
+ &:hover {
61
+ color: var(--#{$prefix}alert-color);
62
+ }
63
+ }
64
+
65
+
66
+ .alert-dismissible {
67
+ padding-right: 3rem; //todo: use variable
68
+
69
+ .btn-close {
70
+ position: absolute;
71
+ top: calc(var(--#{$prefix}alert-padding-x) / 2 - 1px);
72
+ right: calc(var(--#{$prefix}alert-padding-y) / 2 - 1px);
73
+ z-index: 1;
74
+ padding: calc(var(--#{$prefix}alert-padding-y) * 1.25) var(--#{$prefix}alert-padding-x);
75
+ }
76
+ }
77
+
78
+ .alert-important {
79
+ border-color: var(--#{$prefix}alert-color);
80
+ background-color: var(--#{$prefix}alert-color);
81
+ color: var(--#{$prefix}white);
82
+
83
+ .alert-description {
84
+ color: inherit;
85
+ }
86
+
87
+ .alert-icon {
88
+ color: inherit;
89
+ }
90
+ }
91
+
92
+ .alert-minor {
93
+ background: transparent;
94
+ border-color: var(--tblr-border-color);
95
+ }
96
+
97
+ @each $name, $color in $theme-colors {
98
+ .alert-#{$name} {
99
+ --#{$prefix}alert-color: var(--#{$prefix}#{$name});
100
+ }
101
+ }
@@ -0,0 +1,145 @@
1
+ .avatar {
2
+ --#{$prefix}avatar-size: var(--#{$prefix}avatar-list-size, #{$avatar-size});
3
+ --#{$prefix}avatar-status-size: #{$avatar-status-size};
4
+ --#{$prefix}avatar-bg: #{$avatar-bg};
5
+ --#{$prefix}avatar-box-shadow-color: var(--#{$prefix}border-color-translucent);
6
+ --#{$prefix}avatar-box-shadow: inset 0 0 0 1px var(--#{$prefix}avatar-box-shadow-color);
7
+ --#{$prefix}avatar-font-size: #{$avatar-font-size};
8
+ --#{$prefix}avatar-icon-size: #{$avatar-icon-size};
9
+ --#{$prefix}avatar-brand-size: #{$avatar-brand-size};
10
+ position: relative;
11
+ width: var(--#{$prefix}avatar-size);
12
+ height: var(--#{$prefix}avatar-size);
13
+ font-size: var(--#{$prefix}avatar-font-size);
14
+ font-weight: var(--#{$prefix}font-weight-medium);
15
+ line-height: 1;
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ color: var(--#{$prefix}secondary);
20
+ text-align: center;
21
+ text-transform: uppercase;
22
+ vertical-align: bottom;
23
+ user-select: none;
24
+ background: var(--#{$prefix}avatar-bg) no-repeat center/cover;
25
+ border-radius: $avatar-border-radius;
26
+ box-shadow: var(--#{$prefix}avatar-box-shadow);
27
+ transition: color $transition-time, background-color $transition-time, box-shadow $transition-time;
28
+
29
+ .icon {
30
+ width: var(--#{$prefix}avatar-icon-size);
31
+ height: var(--#{$prefix}avatar-icon-size);
32
+ }
33
+
34
+ .badge {
35
+ position: absolute;
36
+ right: 0;
37
+ bottom: 0;
38
+ border-radius: $border-radius-pill;
39
+ box-shadow: 0 0 0 calc(var(--#{$prefix}avatar-status-size) / 4) $card-bg;
40
+ }
41
+
42
+ @at-root a#{&} {
43
+ cursor: pointer;
44
+
45
+ &:hover {
46
+ color: var(--#{$prefix}primary);
47
+ --#{$prefix}avatar-box-shadow-color: var(--#{$prefix}primary);
48
+ }
49
+ }
50
+ }
51
+
52
+ .avatar-rounded {
53
+ border-radius: $border-radius-pill;
54
+ }
55
+
56
+ @each $avatar-size, $size in $avatar-sizes {
57
+ .avatar-#{$avatar-size} {
58
+ --#{$prefix}avatar-size: #{map-get($size, size)};
59
+ --#{$prefix}avatar-status-size: #{map-get($size, status-size)};
60
+ --#{$prefix}avatar-font-size: #{map-get($size, font-size)};
61
+ --#{$prefix}avatar-icon-size: #{map-get($size, icon-size)};
62
+ --#{$prefix}avatar-brand-size: #{map-get($size, brand-size)};
63
+
64
+ .badge:empty {
65
+ width: map-get($size, status-size);
66
+ height: map-get($size, status-size);
67
+ }
68
+ }
69
+ }
70
+
71
+ //
72
+ // Avatar list
73
+ //
74
+ .avatar-list {
75
+ --#{$prefix}avatar-list-size: #{$avatar-size};
76
+ @include elements-list;
77
+
78
+ a.avatar {
79
+ &:hover {
80
+ z-index: 1;
81
+ }
82
+ }
83
+ }
84
+
85
+ .avatar-list-stacked {
86
+ display: block;
87
+ --#{$prefix}list-gap: 0;
88
+
89
+ .avatar {
90
+ margin-right: calc(#{$avatar-list-spacing} * var(--#{$prefix}avatar-size)) !important;
91
+ box-shadow: var(--#{$prefix}avatar-box-shadow), 0 0 0 2px var(--#{$prefix}card-bg, var(--#{$prefix}bg-surface));
92
+ }
93
+ }
94
+
95
+ @each $avatar-size, $size in $avatar-sizes {
96
+ .avatar-list-#{$avatar-size} {
97
+ --#{$prefix}avatar-list-size: #{map-get($size, size)};
98
+ }
99
+ }
100
+
101
+ //
102
+ // Avatar upload
103
+ //
104
+ .avatar-upload {
105
+ border: var(--#{$prefix}border-width) dashed var(--#{$prefix}border-color);
106
+ background: $form-check-input-bg;
107
+ box-shadow: none;
108
+ flex-direction: column;
109
+ @include transition(color $transition-time, background-color $transition-time);
110
+
111
+ svg {
112
+ width: 1.5rem;
113
+ height: 1.5rem;
114
+ stroke-width: 1;
115
+ }
116
+
117
+ &:hover {
118
+ border-color: var(--#{$prefix}primary);
119
+ color: var(--#{$prefix}primary);
120
+ text-decoration: none;
121
+ }
122
+ }
123
+
124
+ .avatar-upload-text {
125
+ font-size: $h6-font-size;
126
+ line-height: 1;
127
+ margin-top: .25rem;
128
+ }
129
+
130
+ .avatar-cover {
131
+ margin-top: calc(-.5 * var(--#{$prefix}avatar-size));
132
+ box-shadow: 0 0 0 .25rem var(--#{$prefix}card-bg, var(--#{$prefix}body-bg));
133
+ }
134
+
135
+ .avatar-brand {
136
+ width: var(--#{$prefix}avatar-brand-size);
137
+ height: var(--#{$prefix}avatar-brand-size);
138
+ position: absolute;
139
+ right: -2px;
140
+ bottom: -2px;
141
+ z-index: 1000;
142
+ background: var(--#{$prefix}bg-surface);
143
+ border-radius: var(--#{$prefix}border-radius);
144
+ border: 1px solid var(--#{$prefix}border-color);
145
+ }
@@ -0,0 +1,113 @@
1
+ .badge {
2
+ --#{$prefix}badge-padding-x: #{$badge-padding-x};
3
+ --#{$prefix}badge-padding-y: #{$badge-padding-y};
4
+ --#{$prefix}badge-font-size: #{$badge-font-size};
5
+ --#{$prefix}badge-font-weight: #{$badge-font-weight};
6
+ --#{$prefix}badge-color: #{$badge-color};
7
+ --#{$prefix}badge-border-radius: #{$badge-border-radius};
8
+ --#{$prefix}badge-icon-size: 1em;
9
+ --#{$prefix}badge-line-height: 1;
10
+ display: inline-flex;
11
+ padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
12
+ font-weight: var(--#{$prefix}badge-font-weight);
13
+ font-size: var(--#{$prefix}badge-font-size);
14
+ color: var(--#{$prefix}badge-color);
15
+ text-align: center;
16
+ white-space: nowrap;
17
+ justify-content: center;
18
+ align-items: center;
19
+ gap: .25rem;
20
+ background: $badge-bg-color;
21
+ overflow: hidden;
22
+ user-select: none;
23
+ border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) transparent;
24
+ border-radius: var(--#{$prefix}badge-border-radius);
25
+ min-width: calc(1em + var(--#{$prefix}badge-padding-y) * 2 + 2px);
26
+ letter-spacing: 0.04em;
27
+ vertical-align: bottom;
28
+ line-height: var(--#{$prefix}badge-line-height);
29
+
30
+ @at-root a#{&} {
31
+ background: var(--#{$prefix}bg-surface-secondary);
32
+ }
33
+
34
+ .icon {
35
+ width: 1em;
36
+ height: 1em;
37
+ font-size: var(--#{$prefix}badge-icon-size);
38
+ stroke-width: 2;
39
+ }
40
+ }
41
+
42
+ .badge:empty,
43
+ .badge-dot {
44
+ display: inline-block;
45
+ width: $badge-empty-size;
46
+ height: $badge-empty-size;
47
+ min-width: 0;
48
+ min-height: auto;
49
+ padding: 0;
50
+ border-radius: $border-radius-pill;
51
+ vertical-align: baseline;
52
+ }
53
+
54
+ //
55
+ // Outline badge
56
+ //
57
+ .badge-outline {
58
+ background-color: transparent;
59
+ border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) currentColor;
60
+ }
61
+
62
+ //
63
+ // Pill badge
64
+ //
65
+ .badge-pill {
66
+ border-radius: $border-radius-pill;
67
+ }
68
+
69
+ //
70
+ // Badges list
71
+ //
72
+ .badges-list {
73
+ @include elements-list;
74
+ }
75
+
76
+ //
77
+ // Notification badge
78
+ //
79
+ .badge-notification {
80
+ position: absolute !important;
81
+ top: 0 !important;
82
+ right: 0 !important;
83
+ transform: translate(50%, -50%);
84
+ z-index: 1;
85
+ }
86
+
87
+ .badge-blink {
88
+ animation: blink 2s infinite;
89
+ }
90
+
91
+ //
92
+ // Badge sizes
93
+ //
94
+ .badge-sm {
95
+ --#{$prefix}badge-font-size: #{$badge-font-size-sm};
96
+ --#{$prefix}badge-icon-size: 1em;
97
+ --#{$prefix}badge-padding-y: 2px;
98
+ --#{$prefix}badge-padding-x: 0.25rem;
99
+ }
100
+
101
+ .badge-lg {
102
+ --#{$prefix}badge-font-size: #{$badge-font-size-lg};
103
+ --#{$prefix}badge-icon-size: 1em;
104
+ --#{$prefix}badge-padding-y: 0.25rem;
105
+ --#{$prefix}badge-padding-x: 0.5rem;
106
+ }
107
+
108
+ //
109
+ // Badge with only icon
110
+ //
111
+ .badge-icononly {
112
+ --#{$prefix}badge-padding-x: 0;
113
+ }
@@ -0,0 +1,50 @@
1
+ .breadcrumb {
2
+ --#{$prefix}breadcrumb-item-active-font-weight: #{$breadcrumb-active-font-weight};
3
+ --#{$prefix}breadcrumb-item-disabled-color: #{$breadcrumb-disabled-color};
4
+ --#{$prefix}breadcrumb-link-color: #{$breadcrumb-link-color};
5
+ padding: 0;
6
+ margin: 0;
7
+ background: transparent;
8
+
9
+ a {
10
+ color: var(--#{$prefix}breadcrumb-link-color);
11
+
12
+ &:hover {
13
+ text-decoration: underline;
14
+ }
15
+ }
16
+ }
17
+
18
+ .breadcrumb-muted {
19
+ --#{$prefix}breadcrumb-link-color: var(--#{$prefix}secondary);
20
+ }
21
+
22
+ .breadcrumb-item {
23
+ &.active {
24
+ font-weight: var(--#{$prefix}breadcrumb-item-active-font-weight);
25
+
26
+ a {
27
+ color: inherit;
28
+ pointer-events: none;
29
+ }
30
+ }
31
+
32
+ &.disabled {
33
+ color: var(--#{$prefix}breadcrumb-item-disabled-color);
34
+
35
+ &:before {
36
+ color: inherit;
37
+ }
38
+
39
+ a {
40
+ color: inherit;
41
+ pointer-events: none;
42
+ }
43
+ }
44
+ }
45
+
46
+ @each $name, $symbol in $breadcrumb-variants {
47
+ .breadcrumb-#{$name} {
48
+ --#{$prefix}breadcrumb-divider: "#{quote($symbol)}";
49
+ }
50
+ }
@@ -0,0 +1,16 @@
1
+ .btn-group,
2
+ .btn-group-vertical {
3
+ box-shadow: $input-box-shadow;
4
+
5
+ > .btn-check:checked + .btn,
6
+ > .btn:active,
7
+ > .btn.active {
8
+ z-index: 5;
9
+ }
10
+
11
+ > .btn-check:focus + .btn,
12
+ > .btn:hover,
13
+ > .btn:focus {
14
+ z-index: 1;
15
+ }
16
+ }
@@ -0,0 +1,261 @@
1
+ @use "sass:color";
2
+
3
+ //
4
+ // Button
5
+ //
6
+ .btn {
7
+ --#{$prefix}btn-icon-size: #{$input-btn-icon-size};
8
+ --#{$prefix}btn-bg: var(--#{$prefix}bg-surface);
9
+ --#{$prefix}btn-color: var(--#{$prefix}body-color);
10
+ --#{$prefix}btn-border-color: #{$btn-border-color};
11
+ --#{$prefix}btn-hover-bg: var(--#{$prefix}btn-bg);
12
+ --#{$prefix}btn-hover-border-color: var(--#{$prefix}border-active-color);
13
+ --#{$prefix}btn-box-shadow: var(--#{$prefix}shadow-input);
14
+ --#{$prefix}btn-active-color: #{$active-color};
15
+ --#{$prefix}btn-active-bg: #{$active-bg};
16
+ --#{$prefix}btn-active-border-color: #{$active-border-color};
17
+
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ white-space: nowrap;
22
+ box-shadow: var(--#{$prefix}btn-box-shadow);
23
+ position: relative;
24
+
25
+ .icon {
26
+ width: var(--#{$prefix}btn-icon-size);
27
+ height: var(--#{$prefix}btn-icon-size);
28
+ min-width: var(--#{$prefix}btn-icon-size);
29
+ font-size: var(--#{$prefix}btn-icon-size);
30
+ margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
31
+ vertical-align: bottom;
32
+ color: inherit;
33
+ }
34
+
35
+ .avatar {
36
+ width: var(--#{$prefix}btn-icon-size);
37
+ height: var(--#{$prefix}btn-icon-size);
38
+ margin: 0 calc(var(--#{$prefix}btn-padding-x) / 2) 0 calc(var(--#{$prefix}btn-padding-x) / -4);
39
+ }
40
+
41
+ .icon-right {
42
+ margin: 0 calc(var(--#{$prefix}btn-padding-x) / -4) 0 calc(var(--#{$prefix}btn-padding-x) / 2);
43
+ }
44
+
45
+ .badge {
46
+ top: auto;
47
+ }
48
+
49
+ .btn-check + &:hover {
50
+ color: var(--#{$prefix}btn-hover-color);
51
+ background-color: var(--#{$prefix}btn-hover-bg);
52
+ border-color: var(--#{$prefix}btn-hover-border-color);
53
+ }
54
+ }
55
+
56
+ .btn-link {
57
+ color: #{color.adjust($primary, $lightness: 5%)};
58
+ background-color: transparent;
59
+ border-color: transparent;
60
+ box-shadow: none;
61
+
62
+ .icon {
63
+ color: inherit;
64
+ }
65
+
66
+ &:hover {
67
+ color: $link-hover-color;
68
+ border-color: transparent;
69
+ }
70
+ }
71
+
72
+ //
73
+ // Button color variations
74
+ //
75
+ @each $color, $value in map-merge($theme-colors, $social-colors) {
76
+ .btn-#{$color} {
77
+ @if $color == 'dark' {
78
+ --#{$prefix}btn-border-color: var(--#{$prefix}dark-mode-border-color);
79
+ --#{$prefix}btn-hover-border-color: var(--#{$prefix}dark-mode-border-active-color);
80
+ --#{$prefix}btn-active-border-color: var(--#{$prefix}dark-mode-border-active-color);
81
+ } @else {
82
+ --#{$prefix}btn-border-color: transparent;
83
+ --#{$prefix}btn-hover-border-color: transparent;
84
+ --#{$prefix}btn-active-border-color: transparent;
85
+ }
86
+
87
+ --#{$prefix}btn-color: var(--#{$prefix}#{$color}-fg, #{$white});
88
+ --#{$prefix}btn-bg: var(--#{$prefix}#{$color});
89
+ --#{$prefix}btn-hover-color: var(--#{$prefix}#{$color}-fg);
90
+ --#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color}-darken);
91
+ --#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
92
+ --#{$prefix}btn-active-bg: var(--#{$prefix}#{$color}-darken);
93
+ --#{$prefix}btn-disabled-bg: var(--#{$prefix}#{$color});
94
+ --#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color}-fg);
95
+ --#{$prefix}btn-box-shadow: var(--#{$prefix}shadow-input);
96
+ }
97
+
98
+ .btn-outline-#{$color} {
99
+ --#{$prefix}btn-color: var(--#{$prefix}#{$color});
100
+ --#{$prefix}btn-bg: transparent;
101
+ --#{$prefix}btn-border-color: var(--#{$prefix}#{$color});
102
+ --#{$prefix}btn-hover-color: var(--#{$prefix}#{$color}-fg);
103
+ --#{$prefix}btn-hover-border-color: transparent;
104
+ --#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color});
105
+ --#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
106
+ --#{$prefix}btn-active-bg: var(--#{$prefix}#{$color});
107
+ --#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color});
108
+ --#{$prefix}btn-disabled-border-color: var(--#{$prefix}#{$color});
109
+ }
110
+
111
+ .btn-ghost-#{$color} {
112
+ --#{$prefix}btn-color: var(--#{$prefix}#{$color});
113
+ --#{$prefix}btn-bg: transparent;
114
+ --#{$prefix}btn-border-color: transparent;
115
+ --#{$prefix}btn-hover-color: var(--#{$prefix}#{$color}-fg);
116
+ --#{$prefix}btn-hover-bg: var(--#{$prefix}#{$color});
117
+ --#{$prefix}btn-hover-border-color: var(--#{$prefix}#{$color});
118
+ --#{$prefix}btn-active-color: var(--#{$prefix}#{$color}-fg);
119
+ --#{$prefix}btn-active-bg: var(--#{$prefix}#{$color});
120
+ --#{$prefix}btn-active-border-color: transparent;
121
+ --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
122
+ --#{$prefix}btn-disabled-color: var(--#{$prefix}#{$color});
123
+ --#{$prefix}btn-disabled-bg: transparent;
124
+ --#{$prefix}btn-disabled-border-color: transparent;
125
+ --#{$prefix}gradient: none;
126
+ --#{$prefix}btn-box-shadow: none;
127
+ }
128
+ }
129
+
130
+ //
131
+ // Button sizes
132
+ //
133
+ .btn-sm, .btn-group-sm > .btn {
134
+ --#{$prefix}btn-line-height: #{$input-btn-line-height-sm};
135
+ --#{$prefix}btn-icon-size: #{$input-btn-icon-size-sm};
136
+ }
137
+
138
+ .btn-lg, .btn-group-lg > .btn {
139
+ --#{$prefix}btn-line-height: #{$input-btn-line-height-lg};
140
+ --#{$prefix}btn-icon-size: #{$input-btn-icon-size-lg};
141
+ }
142
+
143
+ //
144
+ // Button shapes
145
+ //
146
+ .btn-pill {
147
+ padding-right: 1.5em;
148
+ padding-left: 1.5em;
149
+ border-radius: 10rem;
150
+
151
+ &[class*="btn-icon"] {
152
+ padding: 0.375rem 15px;
153
+ }
154
+ }
155
+
156
+ .btn-square {
157
+ border-radius: 0;
158
+ }
159
+
160
+ //
161
+ // Icon button
162
+ //
163
+ .btn-icon {
164
+ min-width: calc((var(--#{$prefix}btn-line-height) * var(--#{$prefix}btn-font-size)) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
165
+ min-height: calc((var(--#{$prefix}btn-line-height) * var(--#{$prefix}btn-font-size)) + (var(--#{$prefix}btn-padding-y) * 2) + (var(--#{$prefix}btn-border-width) * 2));
166
+ padding-left: 0;
167
+ padding-right: 0;
168
+
169
+ .icon {
170
+ margin: calc(-1 * var(--#{$prefix}btn-padding-x));
171
+ }
172
+ }
173
+
174
+ //
175
+ // Button list
176
+ //
177
+ .btn-list {
178
+ @include elements-list;
179
+ }
180
+
181
+ //
182
+ // Button floating
183
+ //
184
+ .btn-floating {
185
+ position: fixed;
186
+ z-index: $zindex-fixed;
187
+ bottom: 1rem;
188
+ left: 1rem;
189
+ box-shadow: var(--#{$prefix}shadow-dropdown);
190
+ }
191
+
192
+ //
193
+ // Button loading
194
+ //
195
+ .btn-loading {
196
+ position: relative;
197
+ color: transparent !important;
198
+ text-shadow: none !important;
199
+ pointer-events: none;
200
+
201
+ > * {
202
+ opacity: 0;
203
+ }
204
+
205
+ &:after {
206
+ content: "";
207
+ display: inline-block;
208
+ vertical-align: text-bottom;
209
+ border: $spinner-border-width var(--#{$prefix}border-style) currentColor;
210
+ border-right-color: transparent;
211
+ border-radius: $border-radius-pill;
212
+ color: var(--#{$prefix}btn-color);
213
+ position: absolute;
214
+ width: var(--#{$prefix}btn-icon-size);
215
+ height: var(--#{$prefix}btn-icon-size);
216
+ left: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
217
+ top: calc(50% - var(--#{$prefix}btn-icon-size) / 2);
218
+ animation: spinner-border .75s linear infinite;
219
+ }
220
+ }
221
+
222
+ //
223
+ // Action button
224
+ //
225
+ .btn-action {
226
+ --#{$prefix}border-color: transparent;
227
+ padding: 0;
228
+ border: 0;
229
+ color: var(--#{$prefix}secondary);
230
+ display: inline-flex;
231
+ width: 2rem;
232
+ height: 2rem;
233
+ align-items: center;
234
+ justify-content: center;
235
+ border-radius: var(--#{$prefix}border-radius);
236
+ background: transparent;
237
+ box-shadow: none;
238
+
239
+ &:after {
240
+ content: none;
241
+ }
242
+
243
+ &:focus {
244
+ outline: none;
245
+ box-shadow: none;
246
+ }
247
+
248
+ &:hover,
249
+ &.show {
250
+ color: var(--#{$prefix}body-color);
251
+ background: var(--#{$prefix}active-bg);
252
+ }
253
+
254
+ &.show {
255
+ color: var(--#{$prefix}primary);
256
+ }
257
+ }
258
+
259
+ .btn-actions {
260
+ display: flex;
261
+ }