@keenmate/pure-admin-core 1.0.0-rc01

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 (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +172 -0
  3. package/dist/css/main.css +11542 -0
  4. package/dist/fonts/Delivery/Delivery_W_Bd.woff2 +0 -0
  5. package/dist/fonts/Delivery/Delivery_W_BdIt.woff2 +0 -0
  6. package/dist/fonts/Delivery/Delivery_W_CdBlk.woff2 +0 -0
  7. package/dist/fonts/Delivery/Delivery_W_CdLt.woff2 +0 -0
  8. package/dist/fonts/Delivery/Delivery_W_It.woff2 +0 -0
  9. package/dist/fonts/Delivery/Delivery_W_Lt.woff2 +0 -0
  10. package/dist/fonts/Delivery/Delivery_W_LtIt.woff2 +0 -0
  11. package/dist/fonts/Delivery/Delivery_W_Rg.woff2 +0 -0
  12. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2 +0 -0
  13. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.1 +0 -0
  14. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.2 +0 -0
  15. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2 +0 -0
  16. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.1 +0 -0
  17. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.2 +0 -0
  18. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2 +0 -0
  19. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2.1 +0 -0
  20. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2 +0 -0
  21. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.1 +0 -0
  22. package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.2 +0 -0
  23. package/dist/fonts/google/6aez4K2oVqwIvtE2H68T.woff2 +0 -0
  24. package/dist/fonts/google/6aez4K2oVqwIvtU2Hw.woff2 +0 -0
  25. package/dist/fonts/google/6aez4K2oVqwIvtY2H68T.woff2 +0 -0
  26. package/dist/fonts/google/6aez4K2oVqwIvtg2H68T.woff2 +0 -0
  27. package/dist/fonts/google/6aez4K2oVqwIvto2H68T.woff2 +0 -0
  28. package/dist/fonts/google/6aez4K2oVqwIvts2H68T.woff2 +0 -0
  29. package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nejog.woff2 +0 -0
  30. package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nijogp5.woff2 +0 -0
  31. package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nmjogp5.woff2 +0 -0
  32. package/dist/fonts/google/PN_xRfK9oXHga0XdZ8g_vT0.woff2 +0 -0
  33. package/dist/fonts/google/PN_xRfK9oXHga0XdZsg_.woff2 +0 -0
  34. package/dist/fonts/google/PN_xRfK9oXHga0XdaMg_vT0.woff2 +0 -0
  35. package/dist/fonts/google/TK3tWkYFABsmjsphPho.woff2 +0 -0
  36. package/dist/fonts/google/TK3tWkYFABsmjspuPho7vA.woff2 +0 -0
  37. package/dist/fonts/google/TK3tWkYFABsmjspvPho7vA.woff2 +0 -0
  38. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjTYJwQj.woff2 +0 -0
  39. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjXYJwQj.woff2 +0 -0
  40. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6Vj_YJwQj.woff2 +0 -0
  41. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjbYJwQj.woff2 +0 -0
  42. package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjvYJw.woff2 +0 -0
  43. package/dist/fonts/google/fonts-tracklist.txt +48 -0
  44. package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbBjM4.woff2 +0 -0
  45. package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbOjM7sfA.woff2 +0 -0
  46. package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbPjM7sfA.woff2 +0 -0
  47. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfLtrftV.woff2 +0 -0
  48. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfXtrftV.woff2 +0 -0
  49. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfbtrQ.woff2 +0 -0
  50. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfjtrftV.woff2 +0 -0
  51. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfntrftV.woff2 +0 -0
  52. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfrtrftV.woff2 +0 -0
  53. package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfvtrftV.woff2 +0 -0
  54. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_B-bnBeA.woff2 +0 -0
  55. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_C-bk.woff2 +0 -0
  56. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_G-bnBeA.woff2 +0 -0
  57. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_M-bnBeA.woff2 +0 -0
  58. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_N-bnBeA.woff2 +0 -0
  59. package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_P-bnBeA.woff2 +0 -0
  60. package/package.json +60 -0
  61. package/snippets/alerts.html +281 -0
  62. package/snippets/badges.html +212 -0
  63. package/snippets/buttons.html +287 -0
  64. package/snippets/cards.html +393 -0
  65. package/snippets/checkbox-lists.html +490 -0
  66. package/snippets/code.html +225 -0
  67. package/snippets/command-palette.html +210 -0
  68. package/snippets/comparison.html +428 -0
  69. package/snippets/customization.html +142 -0
  70. package/snippets/forms.html +477 -0
  71. package/snippets/grid.html +338 -0
  72. package/snippets/layout.html +598 -0
  73. package/snippets/lists.html +232 -0
  74. package/snippets/loaders.html +183 -0
  75. package/snippets/manifest.json +388 -0
  76. package/snippets/modal-dialogs.html +411 -0
  77. package/snippets/modals.html +310 -0
  78. package/snippets/popconfirm.html +253 -0
  79. package/snippets/profile.html +264 -0
  80. package/snippets/tables.html +317 -0
  81. package/snippets/tabs.html +930 -0
  82. package/snippets/timeline.html +364 -0
  83. package/snippets/toasts.html +154 -0
  84. package/snippets/tooltips.html +411 -0
  85. package/snippets/typography.html +101 -0
  86. package/snippets/utilities.html +595 -0
  87. package/snippets/virtual-scroll.html +322 -0
  88. package/snippets/web-daterangepicker.html +634 -0
  89. package/snippets/web-multiselect.html +362 -0
  90. package/src/scss/.claude/settings.local.json +11 -0
  91. package/src/scss/_base-css-variables.scss +348 -0
  92. package/src/scss/_core.scss +99 -0
  93. package/src/scss/_fonts.scss +67 -0
  94. package/src/scss/_purecss-grid-responsive.scss +138 -0
  95. package/src/scss/_purecss-grid.scss +58 -0
  96. package/src/scss/_variables.scss +14 -0
  97. package/src/scss/core-components/_alerts.scss +212 -0
  98. package/src/scss/core-components/_badges.scss +16 -0
  99. package/src/scss/core-components/_base.scss +124 -0
  100. package/src/scss/core-components/_buttons.scss +473 -0
  101. package/src/scss/core-components/_cards.scss +285 -0
  102. package/src/scss/core-components/_checkbox-lists.scss +289 -0
  103. package/src/scss/core-components/_code.scss +141 -0
  104. package/src/scss/core-components/_command-palette.scss +518 -0
  105. package/src/scss/core-components/_comparison.scss +172 -0
  106. package/src/scss/core-components/_file-selector.scss +780 -0
  107. package/src/scss/core-components/_forms.scss +16 -0
  108. package/src/scss/core-components/_grid.scss +264 -0
  109. package/src/scss/core-components/_layout.scss +15 -0
  110. package/src/scss/core-components/_lists.scss +211 -0
  111. package/src/scss/core-components/_loaders.scss +277 -0
  112. package/src/scss/core-components/_logic-tree.scss +280 -0
  113. package/src/scss/core-components/_modals.scss +209 -0
  114. package/src/scss/core-components/_notifications.scss +253 -0
  115. package/src/scss/core-components/_pagers.scss +141 -0
  116. package/src/scss/core-components/_popconfirm.scss +170 -0
  117. package/src/scss/core-components/_profile.scss +281 -0
  118. package/src/scss/core-components/_settings-panel.scss +128 -0
  119. package/src/scss/core-components/_statistics.scss +200 -0
  120. package/src/scss/core-components/_tables.scss +555 -0
  121. package/src/scss/core-components/_tabs.scss +438 -0
  122. package/src/scss/core-components/_timeline.scss +589 -0
  123. package/src/scss/core-components/_toasts.scss +281 -0
  124. package/src/scss/core-components/_tooltips.scss +503 -0
  125. package/src/scss/core-components/_utilities.scss +241 -0
  126. package/src/scss/core-components/_web-components-theme.scss +294 -0
  127. package/src/scss/core-components/badges/_badge-base.scss +131 -0
  128. package/src/scss/core-components/badges/_badge-group.scss +25 -0
  129. package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -0
  130. package/src/scss/core-components/badges/_composite-badge.scss +70 -0
  131. package/src/scss/core-components/badges/_index.scss +10 -0
  132. package/src/scss/core-components/badges/_labels.scss +155 -0
  133. package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -0
  134. package/src/scss/core-components/forms/_form-inputs.scss +100 -0
  135. package/src/scss/core-components/forms/_form-layout.scss +66 -0
  136. package/src/scss/core-components/forms/_form-states.scss +89 -0
  137. package/src/scss/core-components/forms/_index.scss +12 -0
  138. package/src/scss/core-components/forms/_input-groups.scss +149 -0
  139. package/src/scss/core-components/forms/_input-wrapper.scss +89 -0
  140. package/src/scss/core-components/forms/_query-editor.scss +313 -0
  141. package/src/scss/core-components/layout/_index.scss +11 -0
  142. package/src/scss/core-components/layout/_layout-container.scss +105 -0
  143. package/src/scss/core-components/layout/_layout-responsive.scss +100 -0
  144. package/src/scss/core-components/layout/_navbar-elements.scss +238 -0
  145. package/src/scss/core-components/layout/_navbar.scss +71 -0
  146. package/src/scss/core-components/layout/_sidebar-states.scss +228 -0
  147. package/src/scss/core-components/layout/_sidebar.scss +177 -0
  148. package/src/scss/main.scss +7 -0
  149. package/src/scss/themes/_dark-base.scss +207 -0
  150. package/src/scss/themes/audi-light.scss +311 -0
  151. package/src/scss/themes/audi.scss +288 -0
  152. package/src/scss/themes/corporate.scss +203 -0
  153. package/src/scss/themes/dark-blue.scss +152 -0
  154. package/src/scss/themes/dark-green.scss +156 -0
  155. package/src/scss/themes/dark-red.scss +160 -0
  156. package/src/scss/themes/dark.scss +145 -0
  157. package/src/scss/themes/express.scss +281 -0
  158. package/src/scss/themes/minimal.scss +121 -0
  159. package/src/scss/utilities.scss +481 -0
  160. package/src/scss/variables/_base.scss +81 -0
  161. package/src/scss/variables/_colors.scss +148 -0
  162. package/src/scss/variables/_components.scss +509 -0
  163. package/src/scss/variables/_index.scss +13 -0
  164. package/src/scss/variables/_layout.scss +65 -0
  165. package/src/scss/variables/_spacing.scss +66 -0
  166. package/src/scss/variables/_system.scss +80 -0
  167. package/src/scss/variables/_typography.scss +37 -0
@@ -0,0 +1,396 @@
1
+ /* ========================================
2
+ Composite Badge Variants
3
+ Color variations for composite badges
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+ @use "sass:color";
7
+
8
+ .pa-composite-badge {
9
+ // Standard color variations - all sections match
10
+ &--primary {
11
+ .pa-composite-badge__icon {
12
+ background-color: $btn-primary-bg;
13
+ color: $btn-primary-text;
14
+ }
15
+ .pa-composite-badge__label {
16
+ background-color: $accent-light;
17
+ color: $btn-primary-bg;
18
+ &:hover {
19
+ background-color: $accent-hover;
20
+ }
21
+ }
22
+ .pa-composite-badge__button {
23
+ background-color: $btn-primary-bg;
24
+ color: $btn-primary-text;
25
+ &:hover {
26
+ background-color: $btn-primary-bg-hover;
27
+ }
28
+ &:focus {
29
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
30
+ }
31
+ }
32
+ }
33
+
34
+ &--secondary {
35
+ .pa-composite-badge__icon {
36
+ background-color: $btn-secondary-bg;
37
+ color: $btn-secondary-text;
38
+ }
39
+ .pa-composite-badge__label {
40
+ background-color: $bg-secondary;
41
+ color: var(--pa-text-secondary);
42
+ &:hover {
43
+ background-color: $table-hover-bg;
44
+ }
45
+ }
46
+ .pa-composite-badge__button {
47
+ background-color: $btn-secondary-bg;
48
+ color: $btn-secondary-text;
49
+ &:hover {
50
+ background-color: $btn-secondary-bg-hover;
51
+ }
52
+ &:focus {
53
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
54
+ }
55
+ }
56
+ }
57
+
58
+ &--success {
59
+ .pa-composite-badge__icon {
60
+ background-color: $btn-success-bg;
61
+ color: $btn-success-text;
62
+ }
63
+ .pa-composite-badge__label {
64
+ background-color: $badge-success-bg;
65
+ color: $badge-success-text;
66
+ &:hover {
67
+ background-color: color.adjust($badge-success-bg, $lightness: -5%);
68
+ }
69
+ }
70
+ .pa-composite-badge__button {
71
+ background-color: $btn-success-bg;
72
+ color: $btn-success-text;
73
+ &:hover {
74
+ background-color: $btn-success-bg-hover;
75
+ }
76
+ &:focus {
77
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
78
+ }
79
+ }
80
+ }
81
+
82
+ &--danger {
83
+ .pa-composite-badge__icon {
84
+ background-color: $btn-danger-bg;
85
+ color: $btn-danger-text;
86
+ }
87
+ .pa-composite-badge__label {
88
+ background-color: $badge-danger-bg;
89
+ color: $badge-danger-text;
90
+ &:hover {
91
+ background-color: color.adjust($badge-danger-bg, $lightness: -5%);
92
+ }
93
+ }
94
+ .pa-composite-badge__button {
95
+ background-color: $btn-danger-bg;
96
+ color: $btn-danger-text;
97
+ &:hover {
98
+ background-color: $btn-danger-bg-hover;
99
+ }
100
+ &:focus {
101
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
102
+ }
103
+ }
104
+ }
105
+
106
+ &--warning {
107
+ .pa-composite-badge__icon {
108
+ background-color: $btn-warning-bg;
109
+ color: $btn-warning-text;
110
+ }
111
+ .pa-composite-badge__label {
112
+ background-color: $badge-warning-bg;
113
+ color: $badge-warning-text;
114
+ &:hover {
115
+ background-color: color.adjust($badge-warning-bg, $lightness: -5%);
116
+ }
117
+ }
118
+ .pa-composite-badge__button {
119
+ background-color: $btn-warning-bg;
120
+ color: $btn-warning-text;
121
+ &:hover {
122
+ background-color: $btn-warning-bg-hover;
123
+ }
124
+ &:focus {
125
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
126
+ }
127
+ }
128
+ }
129
+
130
+ &--info {
131
+ .pa-composite-badge__icon {
132
+ background-color: $btn-info-bg;
133
+ color: $btn-info-text;
134
+ }
135
+ .pa-composite-badge__label {
136
+ background-color: $badge-info-bg;
137
+ color: $badge-info-text;
138
+ &:hover {
139
+ background-color: color.adjust($badge-info-bg, $lightness: -5%);
140
+ }
141
+ }
142
+ .pa-composite-badge__button {
143
+ background-color: $btn-info-bg;
144
+ color: $btn-info-text;
145
+ &:hover {
146
+ background-color: $btn-info-bg-hover;
147
+ }
148
+ &:focus {
149
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
150
+ }
151
+ }
152
+ }
153
+
154
+ &--light {
155
+ .pa-composite-badge__icon {
156
+ background-color: $btn-light-bg;
157
+ color: $btn-light-text;
158
+ }
159
+ .pa-composite-badge__label {
160
+ background-color: $header-bg;
161
+ color: $btn-light-text;
162
+ &:hover {
163
+ background-color: $btn-light-bg-hover;
164
+ }
165
+ }
166
+ .pa-composite-badge__button {
167
+ background-color: $btn-light-bg;
168
+ color: $btn-light-text;
169
+ &:hover {
170
+ background-color: $btn-light-bg-hover;
171
+ }
172
+ &:focus {
173
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
174
+ }
175
+ }
176
+ }
177
+
178
+ &--dark {
179
+ .pa-composite-badge__icon {
180
+ background-color: $btn-dark-bg;
181
+ color: $btn-dark-text;
182
+ }
183
+ .pa-composite-badge__label {
184
+ background-color: $table-hover-bg;
185
+ color: var(--pa-text-primary);
186
+ &:hover {
187
+ background-color: $border-color;
188
+ }
189
+ }
190
+ .pa-composite-badge__button {
191
+ background-color: $btn-dark-bg;
192
+ color: $btn-dark-text;
193
+ &:hover {
194
+ background-color: $btn-dark-bg-hover;
195
+ }
196
+ &:focus {
197
+ box-shadow: 0 0 0 $focus-outline-width $accent-hover;
198
+ }
199
+ }
200
+ }
201
+
202
+ // Color variants for icon section only
203
+ &--primary &__icon {
204
+ background-color: $btn-primary-bg;
205
+ }
206
+
207
+ &--secondary &__icon {
208
+ background-color: $btn-secondary-bg;
209
+ }
210
+
211
+ &--success &__icon {
212
+ background-color: $btn-success-bg;
213
+ }
214
+
215
+ &--danger &__icon {
216
+ background-color: $btn-danger-bg;
217
+ }
218
+
219
+ &--warning &__icon {
220
+ background-color: $btn-warning-bg;
221
+ color: $btn-warning-color;
222
+ }
223
+
224
+ &--info &__icon {
225
+ background-color: $btn-info-bg;
226
+ }
227
+
228
+ &--light &__icon {
229
+ background-color: $btn-light-bg;
230
+ color: $btn-light-text;
231
+ }
232
+
233
+ &--dark &__icon {
234
+ background-color: $btn-dark-bg;
235
+ }
236
+
237
+ // Color variants for label section
238
+ &--label-primary &__label {
239
+ background-color: color.adjust($btn-primary-bg, $lightness: 40%);
240
+ color: color.adjust($btn-primary-bg, $lightness: -30%);
241
+
242
+ &:hover {
243
+ background-color: color.adjust($btn-primary-bg, $lightness: 35%);
244
+ }
245
+ }
246
+
247
+ &--label-secondary &__label {
248
+ background-color: color.adjust($btn-secondary-bg, $lightness: 35%);
249
+ color: $secondary-text;
250
+
251
+ &:hover {
252
+ background-color: color.adjust($btn-secondary-bg, $lightness: 30%);
253
+ }
254
+ }
255
+
256
+ &--label-success &__label {
257
+ background-color: $badge-success-bg;
258
+ color: $badge-success-text;
259
+
260
+ &:hover {
261
+ background-color: color.adjust($badge-success-bg, $lightness: -5%);
262
+ }
263
+ }
264
+
265
+ &--label-danger &__label {
266
+ background-color: $badge-danger-bg;
267
+ color: $badge-danger-text;
268
+
269
+ &:hover {
270
+ background-color: color.adjust($badge-danger-bg, $lightness: -5%);
271
+ }
272
+ }
273
+
274
+ &--label-warning &__label {
275
+ background-color: $badge-warning-bg;
276
+ color: $badge-warning-text;
277
+
278
+ &:hover {
279
+ background-color: color.adjust($badge-warning-bg, $lightness: -5%);
280
+ }
281
+ }
282
+
283
+ &--label-info &__label {
284
+ background-color: $badge-info-bg;
285
+ color: $badge-info-text;
286
+
287
+ &:hover {
288
+ background-color: color.adjust($badge-info-bg, $lightness: -5%);
289
+ }
290
+ }
291
+
292
+ &--label-light &__label {
293
+ background-color: color.adjust($btn-light-bg, $lightness: 2%);
294
+ color: $btn-light-text;
295
+
296
+ &:hover {
297
+ background-color: color.adjust($btn-secondary-bg, $lightness: 35%);
298
+ }
299
+ }
300
+
301
+ &--label-dark &__label {
302
+ background-color: color.adjust($btn-dark-bg, $lightness: 50%);
303
+ color: color.adjust($btn-dark-bg, $lightness: 5%);
304
+
305
+ &:hover {
306
+ background-color: color.adjust($btn-dark-bg, $lightness: 45%);
307
+ }
308
+ }
309
+
310
+ // Color variants for button section
311
+ &--btn-primary &__button {
312
+ background-color: $btn-primary-bg;
313
+
314
+ &:hover {
315
+ background-color: $btn-primary-bg-hover;
316
+ }
317
+
318
+ &:focus {
319
+ box-shadow: 0 0 0 $focus-outline-width rgba($btn-primary-bg, $btn-focus-ring-opacity);
320
+ }
321
+ }
322
+
323
+ &--btn-secondary &__button {
324
+ background-color: $btn-secondary-bg;
325
+
326
+ &:hover {
327
+ background-color: $btn-secondary-bg-hover;
328
+ }
329
+
330
+ &:focus {
331
+ box-shadow: 0 0 0 $focus-outline-width rgba($btn-secondary-bg, $btn-focus-ring-opacity);
332
+ }
333
+ }
334
+
335
+ &--btn-success &__button {
336
+ background-color: $btn-success-bg;
337
+
338
+ &:hover {
339
+ background-color: $btn-success-bg-hover;
340
+ }
341
+
342
+ &:focus {
343
+ box-shadow: 0 0 0 $focus-outline-width rgba($btn-success-bg, $btn-focus-ring-opacity);
344
+ }
345
+ }
346
+
347
+ &--btn-warning &__button {
348
+ background-color: $btn-warning-bg;
349
+ color: $btn-warning-color;
350
+
351
+ &:hover {
352
+ background-color: $btn-warning-bg-hover;
353
+ }
354
+
355
+ &:focus {
356
+ box-shadow: 0 0 0 $focus-outline-width rgba($btn-warning-bg, $btn-focus-ring-opacity);
357
+ }
358
+ }
359
+
360
+ &--btn-info &__button {
361
+ background-color: $btn-info-bg;
362
+
363
+ &:hover {
364
+ background-color: $btn-info-bg-hover;
365
+ }
366
+
367
+ &:focus {
368
+ box-shadow: 0 0 0 $focus-outline-width rgba($btn-info-bg, $btn-focus-ring-opacity);
369
+ }
370
+ }
371
+
372
+ &--btn-light &__button {
373
+ background-color: $btn-light-bg;
374
+ color: $btn-light-text;
375
+
376
+ &:hover {
377
+ background-color: $btn-light-bg-hover;
378
+ }
379
+
380
+ &:focus {
381
+ box-shadow: 0 0 0 $focus-outline-width rgba($btn-light-bg, $btn-focus-ring-opacity);
382
+ }
383
+ }
384
+
385
+ &--btn-dark &__button {
386
+ background-color: $btn-dark-bg;
387
+
388
+ &:hover {
389
+ background-color: $btn-dark-bg-hover;
390
+ }
391
+
392
+ &:focus {
393
+ box-shadow: 0 0 0 $focus-outline-width rgba($btn-dark-bg, $btn-focus-ring-opacity);
394
+ }
395
+ }
396
+ }
@@ -0,0 +1,70 @@
1
+ /* ========================================
2
+ Composite Badge
3
+ Multi-part badge with [icon][label][button] structure
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+ @use "sass:color";
7
+
8
+ // Composite Badge - [icon][label][button]
9
+ .pa-composite-badge {
10
+ display: inline-flex;
11
+ align-items: center;
12
+ height: $composite-badge-height;
13
+ font-size: $font-size-xs;
14
+ font-weight: $font-weight-medium;
15
+ border-radius: $border-radius;
16
+ overflow: hidden;
17
+
18
+ &__icon {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ width: $composite-badge-icon-width;
23
+ height: 100%;
24
+ flex-shrink: 0;
25
+ background-color: var(--pa-composite-badge-icon-bg);
26
+ color: var(--pa-btn-primary-text);
27
+ font-size: $font-size-sm;
28
+ }
29
+
30
+ &__label {
31
+ display: flex;
32
+ align-items: center;
33
+ height: 100%;
34
+ padding: 0 $composite-badge-label-padding;
35
+ background-color: var(--pa-composite-badge-label-bg);
36
+ color: var(--pa-composite-badge-label-text);
37
+ cursor: pointer;
38
+ transition: background-color $transition-normal ease;
39
+ user-select: none;
40
+ min-width: $stat-icon-size;
41
+
42
+ &:hover {
43
+ background-color: var(--pa-composite-badge-label-hover-bg);
44
+ }
45
+ }
46
+
47
+ &__button {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ width: $composite-badge-button-width;
52
+ height: 100%;
53
+ flex-shrink: 0;
54
+ background-color: var(--pa-danger-bg);
55
+ color: var(--pa-btn-danger-text);
56
+ border: none;
57
+ cursor: pointer;
58
+ transition: background-color $transition-normal ease;
59
+ font-size: $font-size-xs;
60
+
61
+ &:hover {
62
+ background-color: var(--pa-danger-bg-hover);
63
+ }
64
+
65
+ &:focus {
66
+ outline: none;
67
+ box-shadow: 0 0 0 $focus-outline-width rgba($danger-bg, $btn-focus-ring-opacity);
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,10 @@
1
+ /* ========================================
2
+ Badges Index
3
+ Central import point for all badge component modules
4
+ ======================================== */
5
+
6
+ @forward 'badge-base';
7
+ @forward 'composite-badge';
8
+ @forward 'composite-badge-variants';
9
+ @forward 'badge-group';
10
+ @forward 'labels';
@@ -0,0 +1,155 @@
1
+ /* ========================================
2
+ Label Components
3
+ Tag-like labels with colors and sizes
4
+ ======================================== */
5
+ @use '../../variables' as *;
6
+
7
+ // Label Components
8
+ .pa-label {
9
+ display: inline-flex;
10
+ align-items: center;
11
+ gap: $spacing-xs;
12
+ padding: 0.4rem 0.8rem; // Match badge default
13
+ background-color: var(--pa-accent-light);
14
+ color: var(--pa-text-primary);
15
+ font-size: $font-size-xs; // 1.2rem (12px) - match badge default
16
+ font-weight: $font-weight-medium;
17
+ line-height: $line-height-tight;
18
+ text-decoration: none;
19
+ border-radius: $border-radius;
20
+ border: $border-width-base solid var(--pa-border-color);
21
+ transition: all $transition-fast $easing-snappy;
22
+
23
+ &:hover {
24
+ background-color: var(--pa-accent-hover);
25
+ text-decoration: none;
26
+ }
27
+
28
+ // Size variations (matching badge scale)
29
+ &--xs {
30
+ padding: 0.2rem 0.4rem;
31
+ font-size: $font-size-2xs; // 1rem (10px)
32
+ }
33
+
34
+ &--sm {
35
+ padding: 0.25rem 0.5rem;
36
+ font-size: $font-size-xs; // 1.2rem (12px)
37
+ }
38
+
39
+ &--lg {
40
+ padding: 0.5rem 1rem;
41
+ font-size: $font-size-sm; // 1.4rem (14px)
42
+ }
43
+
44
+ &--xl {
45
+ padding: 0.6rem 1.2rem;
46
+ font-size: $font-size-base; // 1.6rem (16px)
47
+ }
48
+
49
+ // Style variations
50
+ &--outline {
51
+ background-color: transparent;
52
+ border: $border-width-base solid var(--pa-border-color);
53
+
54
+ &:hover {
55
+ background-color: var(--pa-accent-light);
56
+ }
57
+ }
58
+
59
+ // Color variations
60
+ &--primary {
61
+ background-color: var(--pa-accent-light);
62
+ color: var(--pa-accent);
63
+ border-color: var(--pa-accent);
64
+
65
+ &.pa-label--outline {
66
+ background-color: transparent;
67
+ color: var(--pa-accent);
68
+ border-color: var(--pa-accent);
69
+
70
+ &:hover {
71
+ background-color: var(--pa-accent-light);
72
+ }
73
+ }
74
+ }
75
+
76
+ &--secondary {
77
+ background-color: rgba($secondary-bg, $opacity-light);
78
+ color: $secondary-bg;
79
+ border-color: $secondary-bg;
80
+
81
+ &.pa-label--outline {
82
+ background-color: transparent;
83
+ color: $secondary-bg;
84
+ border-color: $secondary-bg;
85
+
86
+ &:hover {
87
+ background-color: rgba($secondary-bg, $opacity-light);
88
+ }
89
+ }
90
+ }
91
+
92
+ &--success {
93
+ background-color: var(--pa-success-bg-light);
94
+ color: var(--pa-success-bg);
95
+ border-color: var(--pa-success-bg);
96
+
97
+ &.pa-label--outline {
98
+ background-color: transparent;
99
+ color: var(--pa-success-bg);
100
+ border-color: var(--pa-success-bg);
101
+
102
+ &:hover {
103
+ background-color: var(--pa-success-bg-light);
104
+ }
105
+ }
106
+ }
107
+
108
+ &--warning {
109
+ background-color: var(--pa-warning-bg-light);
110
+ color: var(--pa-warning-bg);
111
+ border-color: var(--pa-warning-bg);
112
+
113
+ &.pa-label--outline {
114
+ background-color: transparent;
115
+ color: var(--pa-warning-bg);
116
+ border-color: var(--pa-warning-bg);
117
+
118
+ &:hover {
119
+ background-color: var(--pa-warning-bg-light);
120
+ }
121
+ }
122
+ }
123
+
124
+ &--danger {
125
+ background-color: var(--pa-danger-bg-light);
126
+ color: var(--pa-danger-bg);
127
+ border-color: var(--pa-danger-bg);
128
+
129
+ &.pa-label--outline {
130
+ background-color: transparent;
131
+ color: var(--pa-danger-bg);
132
+ border-color: var(--pa-danger-bg);
133
+
134
+ &:hover {
135
+ background-color: var(--pa-danger-bg-light);
136
+ }
137
+ }
138
+ }
139
+
140
+ &--info {
141
+ background-color: var(--pa-info-bg-light);
142
+ color: var(--pa-info-bg);
143
+ border-color: var(--pa-info-bg);
144
+
145
+ &.pa-label--outline {
146
+ background-color: transparent;
147
+ color: var(--pa-info-bg);
148
+ border-color: var(--pa-info-bg);
149
+
150
+ &:hover {
151
+ background-color: var(--pa-info-bg-light);
152
+ }
153
+ }
154
+ }
155
+ }