zenkit-css 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +182 -0
  2. package/dist/zenkit.css +33721 -0
  3. package/dist/zenkit.css.map +1 -0
  4. package/dist/zenkit.min.css +1 -0
  5. package/dist/zenkit.min.css.map +1 -0
  6. package/package.json +41 -0
  7. package/scss/abstracts/_functions.scss +174 -0
  8. package/scss/abstracts/_mixins.scss +272 -0
  9. package/scss/abstracts/_variables.scss +216 -0
  10. package/scss/base/_reset.scss +130 -0
  11. package/scss/base/_root.scss +194 -0
  12. package/scss/base/_typography.scss +271 -0
  13. package/scss/components/_accordion.scss +200 -0
  14. package/scss/components/_affix.scss +278 -0
  15. package/scss/components/_alerts.scss +175 -0
  16. package/scss/components/_anchor.scss +438 -0
  17. package/scss/components/_autocomplete.scss +530 -0
  18. package/scss/components/_avatar.scss +256 -0
  19. package/scss/components/_backtop.scss +329 -0
  20. package/scss/components/_badges.scss +266 -0
  21. package/scss/components/_breadcrumb.scss +102 -0
  22. package/scss/components/_buttons.scss +340 -0
  23. package/scss/components/_calendar.scss +787 -0
  24. package/scss/components/_cards.scss +265 -0
  25. package/scss/components/_carousel.scss +306 -0
  26. package/scss/components/_cascader.scss +510 -0
  27. package/scss/components/_close-button.scss +106 -0
  28. package/scss/components/_colorpicker.scss +593 -0
  29. package/scss/components/_datepicker.scss +625 -0
  30. package/scss/components/_descriptions.scss +453 -0
  31. package/scss/components/_divider.scss +253 -0
  32. package/scss/components/_drawer.scss +485 -0
  33. package/scss/components/_dropdown.scss +323 -0
  34. package/scss/components/_empty.scss +321 -0
  35. package/scss/components/_floatbutton.scss +400 -0
  36. package/scss/components/_forms.scss +753 -0
  37. package/scss/components/_image.scss +497 -0
  38. package/scss/components/_inputnumber.scss +475 -0
  39. package/scss/components/_layout.scss +538 -0
  40. package/scss/components/_list-group.scss +227 -0
  41. package/scss/components/_list.scss +528 -0
  42. package/scss/components/_mentions.scss +479 -0
  43. package/scss/components/_menu.scss +510 -0
  44. package/scss/components/_message.scss +412 -0
  45. package/scss/components/_modal.scss +304 -0
  46. package/scss/components/_navbar.scss +329 -0
  47. package/scss/components/_notification.scss +499 -0
  48. package/scss/components/_offcanvas.scss +274 -0
  49. package/scss/components/_pagination.scss +176 -0
  50. package/scss/components/_placeholder.scss +237 -0
  51. package/scss/components/_popconfirm.scss +393 -0
  52. package/scss/components/_popover.scss +298 -0
  53. package/scss/components/_progress.scss +225 -0
  54. package/scss/components/_rating.scss +314 -0
  55. package/scss/components/_result.scss +383 -0
  56. package/scss/components/_segmented.scss +441 -0
  57. package/scss/components/_select.scss +412 -0
  58. package/scss/components/_spinners.scss +229 -0
  59. package/scss/components/_statistic.scss +336 -0
  60. package/scss/components/_steps.scss +343 -0
  61. package/scss/components/_tabs.scss +239 -0
  62. package/scss/components/_tag.scss +317 -0
  63. package/scss/components/_timeline.scss +341 -0
  64. package/scss/components/_timepicker.scss +468 -0
  65. package/scss/components/_toast.scss +279 -0
  66. package/scss/components/_tooltip.scss +305 -0
  67. package/scss/components/_tour.scss +488 -0
  68. package/scss/components/_transfer.scss +556 -0
  69. package/scss/components/_tree.scss +518 -0
  70. package/scss/components/_treeselect.scss +531 -0
  71. package/scss/components/_upload.scss +510 -0
  72. package/scss/components/_watermark.scss +314 -0
  73. package/scss/content/_figures.scss +38 -0
  74. package/scss/content/_images.scss +138 -0
  75. package/scss/content/_tables.scss +232 -0
  76. package/scss/layout/_container.scss +71 -0
  77. package/scss/layout/_grid.scss +258 -0
  78. package/scss/utilities/_animations.scss +494 -0
  79. package/scss/utilities/_borders.scss +246 -0
  80. package/scss/utilities/_colors.scss +194 -0
  81. package/scss/utilities/_display.scss +263 -0
  82. package/scss/utilities/_filters.scss +328 -0
  83. package/scss/utilities/_flex.scss +178 -0
  84. package/scss/utilities/_float.scss +70 -0
  85. package/scss/utilities/_grid-utils.scss +151 -0
  86. package/scss/utilities/_helpers.scss +479 -0
  87. package/scss/utilities/_interactions.scss +249 -0
  88. package/scss/utilities/_overflow.scss +204 -0
  89. package/scss/utilities/_position.scss +245 -0
  90. package/scss/utilities/_shadows.scss +67 -0
  91. package/scss/utilities/_sizing.scss +217 -0
  92. package/scss/utilities/_spacing.scss +207 -0
  93. package/scss/utilities/_text.scss +237 -0
  94. package/scss/utilities/_transforms.scss +368 -0
  95. package/scss/utilities/_visibility.scss +251 -0
  96. package/scss/zenkit.scss +121 -0
@@ -0,0 +1,393 @@
1
+ // ========================================
2
+ // ZenKit - Popconfirm Component
3
+ // Confirmation popover dialog
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // Popconfirm Wrapper (Popover-like)
10
+ // ----------------------------------------
11
+ .popconfirm {
12
+ position: absolute;
13
+ z-index: $z-popover;
14
+ display: none;
15
+ max-width: 280px;
16
+ background-color: var(--bg-primary);
17
+ border-radius: $border-radius;
18
+ box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
19
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
20
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05);
21
+ animation: popconfirm-fade-in 0.15s ease;
22
+
23
+ &.is-open {
24
+ display: block;
25
+ }
26
+ }
27
+
28
+ @keyframes popconfirm-fade-in {
29
+ from {
30
+ opacity: 0;
31
+ transform: scale(0.95);
32
+ }
33
+ to {
34
+ opacity: 1;
35
+ transform: scale(1);
36
+ }
37
+ }
38
+
39
+ // ----------------------------------------
40
+ // Popconfirm Arrow
41
+ // ----------------------------------------
42
+ .popconfirm-arrow {
43
+ position: absolute;
44
+ width: 16px;
45
+ height: 16px;
46
+ overflow: hidden;
47
+ pointer-events: none;
48
+
49
+ &::before {
50
+ content: '';
51
+ position: absolute;
52
+ width: 8px;
53
+ height: 8px;
54
+ background-color: var(--bg-primary);
55
+ transform: rotate(45deg);
56
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
57
+ }
58
+ }
59
+
60
+ // Arrow positions
61
+ .popconfirm-placement-top .popconfirm-arrow,
62
+ .popconfirm-placement-top-left .popconfirm-arrow,
63
+ .popconfirm-placement-top-right .popconfirm-arrow {
64
+ bottom: -8px;
65
+ left: 50%;
66
+ transform: translateX(-50%);
67
+
68
+ &::before {
69
+ top: -4px;
70
+ left: 4px;
71
+ }
72
+ }
73
+
74
+ .popconfirm-placement-bottom .popconfirm-arrow,
75
+ .popconfirm-placement-bottom-left .popconfirm-arrow,
76
+ .popconfirm-placement-bottom-right .popconfirm-arrow {
77
+ top: -8px;
78
+ left: 50%;
79
+ transform: translateX(-50%);
80
+
81
+ &::before {
82
+ bottom: -4px;
83
+ left: 4px;
84
+ }
85
+ }
86
+
87
+ .popconfirm-placement-left .popconfirm-arrow,
88
+ .popconfirm-placement-left-top .popconfirm-arrow,
89
+ .popconfirm-placement-left-bottom .popconfirm-arrow {
90
+ right: -8px;
91
+ top: 50%;
92
+ transform: translateY(-50%);
93
+
94
+ &::before {
95
+ right: -4px;
96
+ top: 4px;
97
+ }
98
+ }
99
+
100
+ .popconfirm-placement-right .popconfirm-arrow,
101
+ .popconfirm-placement-right-top .popconfirm-arrow,
102
+ .popconfirm-placement-right-bottom .popconfirm-arrow {
103
+ left: -8px;
104
+ top: 50%;
105
+ transform: translateY(-50%);
106
+
107
+ &::before {
108
+ left: -4px;
109
+ top: 4px;
110
+ }
111
+ }
112
+
113
+ // ----------------------------------------
114
+ // Popconfirm Content
115
+ // ----------------------------------------
116
+ .popconfirm-inner {
117
+ padding: 0.75rem 1rem;
118
+ }
119
+
120
+ .popconfirm-message {
121
+ display: flex;
122
+ align-items: flex-start;
123
+ gap: 0.5rem;
124
+ margin-bottom: 0.75rem;
125
+ }
126
+
127
+ .popconfirm-icon {
128
+ flex-shrink: 0;
129
+ display: flex;
130
+ align-items: center;
131
+ font-size: 1rem;
132
+ line-height: 1.5;
133
+ }
134
+
135
+ // Icon colors
136
+ .popconfirm-warning .popconfirm-icon {
137
+ color: var(--warning);
138
+ }
139
+
140
+ .popconfirm-danger .popconfirm-icon,
141
+ .popconfirm-error .popconfirm-icon {
142
+ color: var(--danger);
143
+ }
144
+
145
+ .popconfirm-info .popconfirm-icon {
146
+ color: var(--info);
147
+ }
148
+
149
+ .popconfirm-success .popconfirm-icon {
150
+ color: var(--success);
151
+ }
152
+
153
+ .popconfirm-title {
154
+ font-size: 0.875rem;
155
+ font-weight: 500;
156
+ color: var(--text-primary);
157
+ line-height: 1.5;
158
+ }
159
+
160
+ .popconfirm-description {
161
+ margin-top: 0.25rem;
162
+ margin-left: 1.5rem;
163
+ font-size: 0.8125rem;
164
+ color: var(--text-muted);
165
+ line-height: 1.5;
166
+ }
167
+
168
+ // ----------------------------------------
169
+ // Popconfirm Buttons
170
+ // ----------------------------------------
171
+ .popconfirm-buttons {
172
+ display: flex;
173
+ align-items: center;
174
+ justify-content: flex-end;
175
+ gap: 0.5rem;
176
+ }
177
+
178
+ .popconfirm-btn {
179
+ padding: 0.25rem 0.75rem;
180
+ font-size: 0.8125rem;
181
+ font-weight: 500;
182
+ border-radius: $border-radius-sm;
183
+ cursor: pointer;
184
+ transition: all 0.15s ease;
185
+ }
186
+
187
+ .popconfirm-btn-cancel {
188
+ color: var(--text-primary);
189
+ background-color: transparent;
190
+ border: 1px solid var(--border-color);
191
+
192
+ &:hover {
193
+ border-color: var(--primary);
194
+ color: var(--primary);
195
+ }
196
+ }
197
+
198
+ .popconfirm-btn-confirm {
199
+ color: #fff;
200
+ background-color: var(--primary);
201
+ border: 1px solid var(--primary);
202
+
203
+ &:hover {
204
+ background-color: var(--primary-dark);
205
+ border-color: var(--primary-dark);
206
+ }
207
+
208
+ &:disabled {
209
+ opacity: 0.5;
210
+ cursor: not-allowed;
211
+ }
212
+ }
213
+
214
+ // Danger confirm button
215
+ .popconfirm-danger .popconfirm-btn-confirm {
216
+ background-color: var(--danger);
217
+ border-color: var(--danger);
218
+
219
+ &:hover {
220
+ background-color: var(--danger-dark, #c0392b);
221
+ border-color: var(--danger-dark, #c0392b);
222
+ }
223
+ }
224
+
225
+ // ----------------------------------------
226
+ // Popconfirm Loading
227
+ // ----------------------------------------
228
+ .popconfirm-btn-loading {
229
+ position: relative;
230
+ pointer-events: none;
231
+
232
+ &::before {
233
+ content: '';
234
+ position: absolute;
235
+ top: 50%;
236
+ left: 50%;
237
+ width: 12px;
238
+ height: 12px;
239
+ margin: -6px 0 0 -6px;
240
+ border: 2px solid currentColor;
241
+ border-top-color: transparent;
242
+ border-radius: 50%;
243
+ animation: spin 0.8s linear infinite;
244
+ }
245
+
246
+ > * {
247
+ visibility: hidden;
248
+ }
249
+ }
250
+
251
+ @keyframes spin {
252
+ to { transform: rotate(360deg); }
253
+ }
254
+
255
+ // ----------------------------------------
256
+ // Popconfirm Sizes
257
+ // ----------------------------------------
258
+ .popconfirm-sm {
259
+ max-width: 220px;
260
+
261
+ .popconfirm-inner {
262
+ padding: 0.5rem 0.75rem;
263
+ }
264
+
265
+ .popconfirm-title {
266
+ font-size: 0.8125rem;
267
+ }
268
+
269
+ .popconfirm-btn {
270
+ padding: 0.125rem 0.5rem;
271
+ font-size: 0.75rem;
272
+ }
273
+ }
274
+
275
+ .popconfirm-lg {
276
+ max-width: 360px;
277
+
278
+ .popconfirm-inner {
279
+ padding: 1rem 1.25rem;
280
+ }
281
+
282
+ .popconfirm-title {
283
+ font-size: 1rem;
284
+ }
285
+
286
+ .popconfirm-btn {
287
+ padding: 0.375rem 1rem;
288
+ font-size: 0.875rem;
289
+ }
290
+ }
291
+
292
+ // ----------------------------------------
293
+ // Popconfirm Variants
294
+ // ----------------------------------------
295
+ // Bordered
296
+ .popconfirm-bordered {
297
+ border: 1px solid var(--border-color);
298
+ }
299
+
300
+ // Dark theme
301
+ .popconfirm-dark {
302
+ background-color: #1f1f1f;
303
+ color: rgba(255, 255, 255, 0.85);
304
+
305
+ .popconfirm-arrow::before {
306
+ background-color: #1f1f1f;
307
+ }
308
+
309
+ .popconfirm-title {
310
+ color: rgba(255, 255, 255, 0.85);
311
+ }
312
+
313
+ .popconfirm-description {
314
+ color: rgba(255, 255, 255, 0.65);
315
+ }
316
+
317
+ .popconfirm-btn-cancel {
318
+ color: rgba(255, 255, 255, 0.85);
319
+ border-color: rgba(255, 255, 255, 0.2);
320
+
321
+ &:hover {
322
+ border-color: var(--primary);
323
+ }
324
+ }
325
+ }
326
+
327
+ // ----------------------------------------
328
+ // Popconfirm Without Icon
329
+ // ----------------------------------------
330
+ .popconfirm-no-icon {
331
+ .popconfirm-icon {
332
+ display: none;
333
+ }
334
+
335
+ .popconfirm-description {
336
+ margin-left: 0;
337
+ }
338
+ }
339
+
340
+ // ----------------------------------------
341
+ // Popconfirm Custom Buttons Layout
342
+ // ----------------------------------------
343
+ .popconfirm-buttons-left {
344
+ justify-content: flex-start;
345
+ }
346
+
347
+ .popconfirm-buttons-center {
348
+ justify-content: center;
349
+ }
350
+
351
+ .popconfirm-buttons-space-between {
352
+ justify-content: space-between;
353
+ }
354
+
355
+ // ----------------------------------------
356
+ // Popconfirm with Input
357
+ // ----------------------------------------
358
+ .popconfirm-with-input {
359
+ max-width: 320px;
360
+ }
361
+
362
+ .popconfirm-input {
363
+ width: 100%;
364
+ margin: 0.5rem 0;
365
+ padding: 0.375rem 0.75rem;
366
+ font-size: 0.875rem;
367
+ border: 1px solid var(--border-color);
368
+ border-radius: $border-radius-sm;
369
+ background-color: var(--bg-primary);
370
+ color: var(--text-primary);
371
+
372
+ &::placeholder {
373
+ color: var(--text-muted);
374
+ }
375
+
376
+ &:focus {
377
+ border-color: var(--primary);
378
+ outline: 0;
379
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.2);
380
+ }
381
+ }
382
+
383
+ // ----------------------------------------
384
+ // Popconfirm Trigger States
385
+ // ----------------------------------------
386
+ .popconfirm-trigger {
387
+ display: inline-block;
388
+ }
389
+
390
+ .popconfirm-trigger-disabled {
391
+ cursor: not-allowed;
392
+ opacity: 0.5;
393
+ }
@@ -0,0 +1,298 @@
1
+ // ========================================
2
+ // ZenKit - Popover
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+
7
+ // ----------------------------------------
8
+ // Popover Variables
9
+ // ----------------------------------------
10
+ .popover {
11
+ --popover-zindex: #{$z-tooltip};
12
+ --popover-max-width: 276px;
13
+ --popover-font-size: var(--text-sm);
14
+ --popover-bg: var(--bg-card);
15
+ --popover-border-width: #{$border-width};
16
+ --popover-border-color: var(--border);
17
+ --popover-border-radius: var(--radius-lg);
18
+ --popover-inner-border-radius: calc(var(--radius-lg) - #{$border-width});
19
+ --popover-box-shadow: #{$shadow-lg};
20
+ --popover-header-font-size: var(--text-base);
21
+ --popover-header-bg: var(--bg-muted);
22
+ --popover-header-color: var(--text);
23
+ --popover-header-padding-x: 1rem;
24
+ --popover-header-padding-y: 0.5rem;
25
+ --popover-body-color: var(--text);
26
+ --popover-body-padding-x: 1rem;
27
+ --popover-body-padding-y: 1rem;
28
+ --popover-arrow-width: 1rem;
29
+ --popover-arrow-height: 0.5rem;
30
+
31
+ position: absolute;
32
+ top: 0;
33
+ left: 0;
34
+ z-index: var(--popover-zindex);
35
+ display: block;
36
+ max-width: var(--popover-max-width);
37
+ font-family: var(--font-family);
38
+ font-style: normal;
39
+ font-weight: $font-weight-normal;
40
+ line-height: $line-height-normal;
41
+ text-align: left;
42
+ text-decoration: none;
43
+ text-shadow: none;
44
+ text-transform: none;
45
+ letter-spacing: normal;
46
+ word-break: normal;
47
+ white-space: normal;
48
+ word-spacing: normal;
49
+ line-break: auto;
50
+ font-size: var(--popover-font-size);
51
+ word-wrap: break-word;
52
+ background-color: var(--popover-bg);
53
+ background-clip: padding-box;
54
+ border: var(--popover-border-width) solid var(--popover-border-color);
55
+ border-radius: var(--popover-border-radius);
56
+ box-shadow: var(--popover-box-shadow);
57
+
58
+ &.show {
59
+ opacity: 1;
60
+ }
61
+ }
62
+
63
+ // ----------------------------------------
64
+ // Popover Arrow
65
+ // ----------------------------------------
66
+ .popover-arrow {
67
+ position: absolute;
68
+ display: block;
69
+ width: var(--popover-arrow-width);
70
+ height: var(--popover-arrow-height);
71
+
72
+ &::before,
73
+ &::after {
74
+ position: absolute;
75
+ display: block;
76
+ content: "";
77
+ border-color: transparent;
78
+ border-style: solid;
79
+ border-width: 0;
80
+ }
81
+ }
82
+
83
+ // ----------------------------------------
84
+ // Popover Positions
85
+ // ----------------------------------------
86
+ // Top
87
+ .popover-top,
88
+ .popover[data-popper-placement^="top"] {
89
+ > .popover-arrow {
90
+ bottom: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));
91
+
92
+ &::before {
93
+ bottom: 0;
94
+ border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;
95
+ border-top-color: var(--popover-border-color);
96
+ }
97
+
98
+ &::after {
99
+ bottom: var(--popover-border-width);
100
+ border-width: var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;
101
+ border-top-color: var(--popover-bg);
102
+ }
103
+ }
104
+ }
105
+
106
+ // Bottom
107
+ .popover-bottom,
108
+ .popover[data-popper-placement^="bottom"] {
109
+ > .popover-arrow {
110
+ top: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));
111
+
112
+ &::before {
113
+ top: 0;
114
+ border-width: 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);
115
+ border-bottom-color: var(--popover-border-color);
116
+ }
117
+
118
+ &::after {
119
+ top: var(--popover-border-width);
120
+ border-width: 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);
121
+ border-bottom-color: var(--popover-bg);
122
+ }
123
+ }
124
+
125
+ // Special header style for bottom popover
126
+ .popover-header::before {
127
+ position: absolute;
128
+ top: 0;
129
+ left: 50%;
130
+ display: block;
131
+ width: var(--popover-arrow-width);
132
+ margin-left: calc(-0.5 * var(--popover-arrow-width));
133
+ content: "";
134
+ border-bottom: var(--popover-border-width) solid var(--popover-header-bg);
135
+ }
136
+ }
137
+
138
+ // Start (Left)
139
+ .popover-start,
140
+ .popover[data-popper-placement^="left"] {
141
+ > .popover-arrow {
142
+ right: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));
143
+ width: var(--popover-arrow-height);
144
+ height: var(--popover-arrow-width);
145
+
146
+ &::before {
147
+ right: 0;
148
+ border-width: calc(var(--popover-arrow-width) * 0.5) 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);
149
+ border-left-color: var(--popover-border-color);
150
+ }
151
+
152
+ &::after {
153
+ right: var(--popover-border-width);
154
+ border-width: calc(var(--popover-arrow-width) * 0.5) 0 calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height);
155
+ border-left-color: var(--popover-bg);
156
+ }
157
+ }
158
+ }
159
+
160
+ // End (Right)
161
+ .popover-end,
162
+ .popover[data-popper-placement^="right"] {
163
+ > .popover-arrow {
164
+ left: calc(-1 * (var(--popover-arrow-height)) - var(--popover-border-width));
165
+ width: var(--popover-arrow-height);
166
+ height: var(--popover-arrow-width);
167
+
168
+ &::before {
169
+ left: 0;
170
+ border-width: calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;
171
+ border-right-color: var(--popover-border-color);
172
+ }
173
+
174
+ &::after {
175
+ left: var(--popover-border-width);
176
+ border-width: calc(var(--popover-arrow-width) * 0.5) var(--popover-arrow-height) calc(var(--popover-arrow-width) * 0.5) 0;
177
+ border-right-color: var(--popover-bg);
178
+ }
179
+ }
180
+ }
181
+
182
+ // ----------------------------------------
183
+ // Popover Header
184
+ // ----------------------------------------
185
+ .popover-header {
186
+ padding: var(--popover-header-padding-y) var(--popover-header-padding-x);
187
+ margin-bottom: 0;
188
+ font-size: var(--popover-header-font-size);
189
+ font-weight: $font-weight-semibold;
190
+ color: var(--popover-header-color);
191
+ background-color: var(--popover-header-bg);
192
+ border-bottom: var(--popover-border-width) solid var(--popover-border-color);
193
+ border-top-left-radius: var(--popover-inner-border-radius);
194
+ border-top-right-radius: var(--popover-inner-border-radius);
195
+
196
+ &:empty {
197
+ display: none;
198
+ }
199
+ }
200
+
201
+ // ----------------------------------------
202
+ // Popover Body
203
+ // ----------------------------------------
204
+ .popover-body {
205
+ padding: var(--popover-body-padding-y) var(--popover-body-padding-x);
206
+ color: var(--popover-body-color);
207
+ }
208
+
209
+ // ----------------------------------------
210
+ // Popover Fade Animation
211
+ // ----------------------------------------
212
+ .popover.fade {
213
+ opacity: 0;
214
+ transition: opacity $transition-fast linear;
215
+ }
216
+
217
+ .popover.fade.show {
218
+ opacity: 1;
219
+ }
220
+
221
+ // ----------------------------------------
222
+ // Popover Variants
223
+ // ----------------------------------------
224
+ .popover-primary {
225
+ --popover-bg: var(--primary);
226
+ --popover-border-color: var(--primary);
227
+ --popover-header-bg: #{darken($primary, 5%)};
228
+ --popover-header-color: var(--white);
229
+ --popover-body-color: var(--white);
230
+ }
231
+
232
+ .popover-secondary {
233
+ --popover-bg: var(--gray-600);
234
+ --popover-border-color: var(--gray-600);
235
+ --popover-header-bg: var(--gray-700);
236
+ --popover-header-color: var(--white);
237
+ --popover-body-color: var(--white);
238
+ }
239
+
240
+ .popover-success {
241
+ --popover-bg: var(--success);
242
+ --popover-border-color: var(--success);
243
+ --popover-header-bg: #{darken($success, 5%)};
244
+ --popover-header-color: var(--white);
245
+ --popover-body-color: var(--white);
246
+ }
247
+
248
+ .popover-danger {
249
+ --popover-bg: var(--danger);
250
+ --popover-border-color: var(--danger);
251
+ --popover-header-bg: #{darken($danger, 5%)};
252
+ --popover-header-color: var(--white);
253
+ --popover-body-color: var(--white);
254
+ }
255
+
256
+ .popover-warning {
257
+ --popover-bg: var(--warning);
258
+ --popover-border-color: var(--warning);
259
+ --popover-header-bg: #{darken($warning, 5%)};
260
+ --popover-header-color: var(--gray-900);
261
+ --popover-body-color: var(--gray-900);
262
+ }
263
+
264
+ .popover-info {
265
+ --popover-bg: var(--info);
266
+ --popover-border-color: var(--info);
267
+ --popover-header-bg: #{darken($info, 5%)};
268
+ --popover-header-color: var(--white);
269
+ --popover-body-color: var(--white);
270
+ }
271
+
272
+ .popover-dark {
273
+ --popover-bg: var(--gray-800);
274
+ --popover-border-color: var(--gray-700);
275
+ --popover-header-bg: var(--gray-900);
276
+ --popover-header-color: var(--gray-100);
277
+ --popover-body-color: var(--gray-300);
278
+ }
279
+
280
+ // ----------------------------------------
281
+ // Popover Sizes
282
+ // ----------------------------------------
283
+ .popover-sm {
284
+ --popover-max-width: 200px;
285
+ --popover-header-padding-x: 0.75rem;
286
+ --popover-header-padding-y: 0.375rem;
287
+ --popover-body-padding-x: 0.75rem;
288
+ --popover-body-padding-y: 0.75rem;
289
+ --popover-font-size: var(--text-xs);
290
+ }
291
+
292
+ .popover-lg {
293
+ --popover-max-width: 400px;
294
+ --popover-header-padding-x: 1.25rem;
295
+ --popover-header-padding-y: 0.75rem;
296
+ --popover-body-padding-x: 1.25rem;
297
+ --popover-body-padding-y: 1.25rem;
298
+ }