@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.
- package/LICENSE +21 -0
- package/README.md +172 -0
- package/dist/css/main.css +11542 -0
- package/dist/fonts/Delivery/Delivery_W_Bd.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_BdIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdBlk.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_CdLt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_It.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Lt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_LtIt.woff2 +0 -0
- package/dist/fonts/Delivery/Delivery_W_Rg.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8UH-qVHQ.woff2.2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8VH-qVHQ.woff2.2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8bH-o.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.1 +0 -0
- package/dist/fonts/google/3y976aknfjLm_3lMKjiMgmUUYBs04Y8fH-qVHQ.woff2.2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtE2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtU2Hw.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtY2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvtg2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvto2H68T.woff2 +0 -0
- package/dist/fonts/google/6aez4K2oVqwIvts2H68T.woff2 +0 -0
- package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nejog.woff2 +0 -0
- package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nijogp5.woff2 +0 -0
- package/dist/fonts/google/7Auup_AqnyWWAxW2Wk3swUz56MS91Eww8SX21nmjogp5.woff2 +0 -0
- package/dist/fonts/google/PN_xRfK9oXHga0XdZ8g_vT0.woff2 +0 -0
- package/dist/fonts/google/PN_xRfK9oXHga0XdZsg_.woff2 +0 -0
- package/dist/fonts/google/PN_xRfK9oXHga0XdaMg_vT0.woff2 +0 -0
- package/dist/fonts/google/TK3tWkYFABsmjsphPho.woff2 +0 -0
- package/dist/fonts/google/TK3tWkYFABsmjspuPho7vA.woff2 +0 -0
- package/dist/fonts/google/TK3tWkYFABsmjspvPho7vA.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjTYJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjXYJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6Vj_YJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjbYJwQj.woff2 +0 -0
- package/dist/fonts/google/dg45_pLmvrkcOkBnKsOzXyGWTBcmg-X6VjvYJw.woff2 +0 -0
- package/dist/fonts/google/fonts-tracklist.txt +48 -0
- package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbBjM4.woff2 +0 -0
- package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbOjM7sfA.woff2 +0 -0
- package/dist/fonts/google/vEFO2_JTCgwQ5ejvMV0O96D01E8J0tJXHKbPjM7sfA.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfLtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfXtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfbtrQ.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfjtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfntrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfrtrftV.woff2 +0 -0
- package/dist/fonts/google/wEOhEADFm8hSaQTFG18FErVhsC9x-tarUfvtrftV.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_B-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_C-bk.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_G-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_M-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_N-bnBeA.woff2 +0 -0
- package/dist/fonts/google/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_P-bnBeA.woff2 +0 -0
- package/package.json +60 -0
- package/snippets/alerts.html +281 -0
- package/snippets/badges.html +212 -0
- package/snippets/buttons.html +287 -0
- package/snippets/cards.html +393 -0
- package/snippets/checkbox-lists.html +490 -0
- package/snippets/code.html +225 -0
- package/snippets/command-palette.html +210 -0
- package/snippets/comparison.html +428 -0
- package/snippets/customization.html +142 -0
- package/snippets/forms.html +477 -0
- package/snippets/grid.html +338 -0
- package/snippets/layout.html +598 -0
- package/snippets/lists.html +232 -0
- package/snippets/loaders.html +183 -0
- package/snippets/manifest.json +388 -0
- package/snippets/modal-dialogs.html +411 -0
- package/snippets/modals.html +310 -0
- package/snippets/popconfirm.html +253 -0
- package/snippets/profile.html +264 -0
- package/snippets/tables.html +317 -0
- package/snippets/tabs.html +930 -0
- package/snippets/timeline.html +364 -0
- package/snippets/toasts.html +154 -0
- package/snippets/tooltips.html +411 -0
- package/snippets/typography.html +101 -0
- package/snippets/utilities.html +595 -0
- package/snippets/virtual-scroll.html +322 -0
- package/snippets/web-daterangepicker.html +634 -0
- package/snippets/web-multiselect.html +362 -0
- package/src/scss/.claude/settings.local.json +11 -0
- package/src/scss/_base-css-variables.scss +348 -0
- package/src/scss/_core.scss +99 -0
- package/src/scss/_fonts.scss +67 -0
- package/src/scss/_purecss-grid-responsive.scss +138 -0
- package/src/scss/_purecss-grid.scss +58 -0
- package/src/scss/_variables.scss +14 -0
- package/src/scss/core-components/_alerts.scss +212 -0
- package/src/scss/core-components/_badges.scss +16 -0
- package/src/scss/core-components/_base.scss +124 -0
- package/src/scss/core-components/_buttons.scss +473 -0
- package/src/scss/core-components/_cards.scss +285 -0
- package/src/scss/core-components/_checkbox-lists.scss +289 -0
- package/src/scss/core-components/_code.scss +141 -0
- package/src/scss/core-components/_command-palette.scss +518 -0
- package/src/scss/core-components/_comparison.scss +172 -0
- package/src/scss/core-components/_file-selector.scss +780 -0
- package/src/scss/core-components/_forms.scss +16 -0
- package/src/scss/core-components/_grid.scss +264 -0
- package/src/scss/core-components/_layout.scss +15 -0
- package/src/scss/core-components/_lists.scss +211 -0
- package/src/scss/core-components/_loaders.scss +277 -0
- package/src/scss/core-components/_logic-tree.scss +280 -0
- package/src/scss/core-components/_modals.scss +209 -0
- package/src/scss/core-components/_notifications.scss +253 -0
- package/src/scss/core-components/_pagers.scss +141 -0
- package/src/scss/core-components/_popconfirm.scss +170 -0
- package/src/scss/core-components/_profile.scss +281 -0
- package/src/scss/core-components/_settings-panel.scss +128 -0
- package/src/scss/core-components/_statistics.scss +200 -0
- package/src/scss/core-components/_tables.scss +555 -0
- package/src/scss/core-components/_tabs.scss +438 -0
- package/src/scss/core-components/_timeline.scss +589 -0
- package/src/scss/core-components/_toasts.scss +281 -0
- package/src/scss/core-components/_tooltips.scss +503 -0
- package/src/scss/core-components/_utilities.scss +241 -0
- package/src/scss/core-components/_web-components-theme.scss +294 -0
- package/src/scss/core-components/badges/_badge-base.scss +131 -0
- package/src/scss/core-components/badges/_badge-group.scss +25 -0
- package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -0
- package/src/scss/core-components/badges/_composite-badge.scss +70 -0
- package/src/scss/core-components/badges/_index.scss +10 -0
- package/src/scss/core-components/badges/_labels.scss +155 -0
- package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -0
- package/src/scss/core-components/forms/_form-inputs.scss +100 -0
- package/src/scss/core-components/forms/_form-layout.scss +66 -0
- package/src/scss/core-components/forms/_form-states.scss +89 -0
- package/src/scss/core-components/forms/_index.scss +12 -0
- package/src/scss/core-components/forms/_input-groups.scss +149 -0
- package/src/scss/core-components/forms/_input-wrapper.scss +89 -0
- package/src/scss/core-components/forms/_query-editor.scss +313 -0
- package/src/scss/core-components/layout/_index.scss +11 -0
- package/src/scss/core-components/layout/_layout-container.scss +105 -0
- package/src/scss/core-components/layout/_layout-responsive.scss +100 -0
- package/src/scss/core-components/layout/_navbar-elements.scss +238 -0
- package/src/scss/core-components/layout/_navbar.scss +71 -0
- package/src/scss/core-components/layout/_sidebar-states.scss +228 -0
- package/src/scss/core-components/layout/_sidebar.scss +177 -0
- package/src/scss/main.scss +7 -0
- package/src/scss/themes/_dark-base.scss +207 -0
- package/src/scss/themes/audi-light.scss +311 -0
- package/src/scss/themes/audi.scss +288 -0
- package/src/scss/themes/corporate.scss +203 -0
- package/src/scss/themes/dark-blue.scss +152 -0
- package/src/scss/themes/dark-green.scss +156 -0
- package/src/scss/themes/dark-red.scss +160 -0
- package/src/scss/themes/dark.scss +145 -0
- package/src/scss/themes/express.scss +281 -0
- package/src/scss/themes/minimal.scss +121 -0
- package/src/scss/utilities.scss +481 -0
- package/src/scss/variables/_base.scss +81 -0
- package/src/scss/variables/_colors.scss +148 -0
- package/src/scss/variables/_components.scss +509 -0
- package/src/scss/variables/_index.scss +13 -0
- package/src/scss/variables/_layout.scss +65 -0
- package/src/scss/variables/_spacing.scss +66 -0
- package/src/scss/variables/_system.scss +80 -0
- package/src/scss/variables/_typography.scss +37 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/* ========================================
|
|
2
|
+
Utility Components
|
|
3
|
+
Font utilities, compact mode, component showcase
|
|
4
|
+
======================================== */
|
|
5
|
+
@use '../variables' as *;
|
|
6
|
+
|
|
7
|
+
// Font size classes - Apply to <html> element for proportional scaling of all rem units
|
|
8
|
+
// Example: document.documentElement.classList.add('font-size-large');
|
|
9
|
+
html.font-size-2xs {
|
|
10
|
+
font-size: $font-size-2xs;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
html.font-size-xs {
|
|
14
|
+
font-size: $font-size-xs;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
html.font-size-small {
|
|
18
|
+
font-size: $font-size-sm;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
html.font-size-medium {
|
|
22
|
+
font-size: $font-size-md;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
html.font-size-default {
|
|
26
|
+
font-size: $font-size-base;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
html.font-size-large {
|
|
30
|
+
font-size: $font-size-lg;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
html.font-size-xlarge {
|
|
34
|
+
font-size: $font-size-xl;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
html.font-size-2xl {
|
|
38
|
+
font-size: $font-size-2xl;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
html.font-size-3xl {
|
|
42
|
+
font-size: $font-size-3xl;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
html.font-size-4xl {
|
|
46
|
+
font-size: $font-size-4xl;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Font family utilities
|
|
50
|
+
// Only for overriding the theme's default font
|
|
51
|
+
.font-family-serif {
|
|
52
|
+
font-family: $font-stack-serif;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.font-family-mono {
|
|
56
|
+
font-family: $font-stack-mono;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Compact mode
|
|
60
|
+
.compact-mode {
|
|
61
|
+
.pa-card__body {
|
|
62
|
+
padding: $spacing-md;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.pa-table td,
|
|
66
|
+
.pa-table th {
|
|
67
|
+
padding: $btn-padding-v $btn-padding-h;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.pa-sidebar__nav ul li a {
|
|
71
|
+
padding: $sidebar-padding;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.pa-form-group {
|
|
75
|
+
margin-bottom: $form-group-margin-compact;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
// Min-height utilities (rem-based)
|
|
81
|
+
.min-h-2x { min-height: 2rem; } // 32px
|
|
82
|
+
.min-h-3x { min-height: 3rem; } // 48px
|
|
83
|
+
.min-h-5x { min-height: 5rem; } // 80px
|
|
84
|
+
.min-h-8x { min-height: 8rem; } // 128px
|
|
85
|
+
.min-h-10x { min-height: 10rem; } // 160px
|
|
86
|
+
.min-h-12x { min-height: 12rem; } // 192px
|
|
87
|
+
.min-h-15x { min-height: 15rem; } // 240px
|
|
88
|
+
.min-h-20x { min-height: 20rem; } // 320px
|
|
89
|
+
.min-h-25x { min-height: 25rem; } // 400px
|
|
90
|
+
.min-h-30x { min-height: 30rem; } // 480px
|
|
91
|
+
|
|
92
|
+
// Fixed height utilities (rem-based) - for scrollable containers
|
|
93
|
+
.h-2x { height: 2rem; } // 32px
|
|
94
|
+
.h-3x { height: 3rem; } // 48px
|
|
95
|
+
.h-5x { height: 5rem; } // 80px
|
|
96
|
+
.h-8x { height: 8rem; } // 128px
|
|
97
|
+
.h-10x { height: 10rem; } // 160px
|
|
98
|
+
.h-12x { height: 12rem; } // 192px
|
|
99
|
+
.h-15x { height: 15rem; } // 240px
|
|
100
|
+
.h-20x { height: 20rem; } // 320px
|
|
101
|
+
.h-25x { height: 25rem; } // 400px
|
|
102
|
+
.h-30x { height: 30rem; } // 480px
|
|
103
|
+
.h-40x { height: 40rem; } // 640px
|
|
104
|
+
.h-50x { height: 50rem; } // 800px
|
|
105
|
+
|
|
106
|
+
// Max-height utilities (rem-based) - useful for limiting content height
|
|
107
|
+
.max-h-5x { max-height: 5rem; } // 80px
|
|
108
|
+
.max-h-8x { max-height: 8rem; } // 128px
|
|
109
|
+
.max-h-10x { max-height: 10rem; } // 160px
|
|
110
|
+
.max-h-12x { max-height: 12rem; } // 192px
|
|
111
|
+
.max-h-15x { max-height: 15rem; } // 240px
|
|
112
|
+
.max-h-20x { max-height: 20rem; } // 320px
|
|
113
|
+
.max-h-25x { max-height: 25rem; } // 400px
|
|
114
|
+
.max-h-30x { max-height: 30rem; } // 480px
|
|
115
|
+
.max-h-40x { max-height: 40rem; } // 640px
|
|
116
|
+
.max-h-50x { max-height: 50rem; } // 800px
|
|
117
|
+
|
|
118
|
+
// Overflow utilities - pair with height/max-height for scrollable content
|
|
119
|
+
.overflow-auto { overflow: auto; }
|
|
120
|
+
.overflow-y-auto { overflow-y: auto; }
|
|
121
|
+
.overflow-x-auto { overflow-x: auto; }
|
|
122
|
+
.overflow-hidden { overflow: hidden; }
|
|
123
|
+
.overflow-visible { overflow: visible; }
|
|
124
|
+
|
|
125
|
+
// Cursor utilities
|
|
126
|
+
.cursor-pointer { cursor: pointer; }
|
|
127
|
+
.cursor-help { cursor: help; }
|
|
128
|
+
.cursor-wait { cursor: wait; }
|
|
129
|
+
.cursor-not-allowed { cursor: not-allowed; }
|
|
130
|
+
.cursor-text { cursor: text; }
|
|
131
|
+
.cursor-move { cursor: move; }
|
|
132
|
+
.cursor-default { cursor: default; }
|
|
133
|
+
.cursor-grab { cursor: grab; }
|
|
134
|
+
.cursor-grabbing { cursor: grabbing; }
|
|
135
|
+
.cursor-zoom-in { cursor: zoom-in; }
|
|
136
|
+
.cursor-zoom-out { cursor: zoom-out; }
|
|
137
|
+
|
|
138
|
+
// ========================================
|
|
139
|
+
// Text Component (BEM pattern)
|
|
140
|
+
// For paragraph typography across pages
|
|
141
|
+
// ========================================
|
|
142
|
+
.pa-text {
|
|
143
|
+
font-size: $font-size-sm; // 1.4rem (14px) - default
|
|
144
|
+
color: var(--pa-text-primary);
|
|
145
|
+
|
|
146
|
+
// Size modifiers
|
|
147
|
+
&--xs {
|
|
148
|
+
font-size: $font-size-2xs; // 1rem (10px)
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
&--sm {
|
|
152
|
+
font-size: $font-size-xs; // 1.2rem (12px)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&--lg {
|
|
156
|
+
font-size: $font-size-base; // 1.6rem (16px)
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
&--xl {
|
|
160
|
+
font-size: $font-size-lg; // 1.8rem (18px)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Color modifiers
|
|
164
|
+
&--primary {
|
|
165
|
+
color: var(--pa-text-primary);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
&--secondary {
|
|
169
|
+
color: var(--pa-text-secondary);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Alignment modifiers
|
|
173
|
+
&--left {
|
|
174
|
+
text-align: left;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
&--center {
|
|
178
|
+
text-align: center;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
&--right {
|
|
182
|
+
text-align: right;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Semantic variants (compound styles)
|
|
186
|
+
&--caption {
|
|
187
|
+
font-size: $font-size-xs;
|
|
188
|
+
color: var(--pa-text-secondary);
|
|
189
|
+
margin-bottom: $spacing-sm;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
&--lead {
|
|
193
|
+
font-size: $font-size-base;
|
|
194
|
+
line-height: $line-height-relaxed;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// Component showcase styling
|
|
199
|
+
.component-showcase {
|
|
200
|
+
display: flex;
|
|
201
|
+
flex-wrap: wrap;
|
|
202
|
+
gap: $spacing-sm;
|
|
203
|
+
margin-bottom: $spacing-lg;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// Usage example styling
|
|
207
|
+
.usage-example {
|
|
208
|
+
.user-item,
|
|
209
|
+
.project-item {
|
|
210
|
+
display: flex;
|
|
211
|
+
align-items: center;
|
|
212
|
+
justify-content: space-between;
|
|
213
|
+
padding: $spacing-md;
|
|
214
|
+
margin-bottom: $spacing-sm;
|
|
215
|
+
background-color: var(--pa-card-bg);
|
|
216
|
+
border: $border-width-base solid var(--pa-border-color);
|
|
217
|
+
border-radius: $border-radius;
|
|
218
|
+
|
|
219
|
+
.user-name {
|
|
220
|
+
font-weight: $font-weight-medium;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
h5 {
|
|
224
|
+
margin: 0 0 $spacing-sm 0;
|
|
225
|
+
font-size: $font-size-base;
|
|
226
|
+
font-weight: $font-weight-semibold;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.project-tags {
|
|
230
|
+
display: flex;
|
|
231
|
+
flex-wrap: wrap;
|
|
232
|
+
gap: $spacing-xs;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.project-item {
|
|
237
|
+
flex-direction: column;
|
|
238
|
+
align-items: flex-start;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
/* Pure Admin - Web Components Theme Integration
|
|
2
|
+
* Maps Pure Admin SCSS variables to web component CSS custom properties
|
|
3
|
+
*
|
|
4
|
+
* @keenmate/web-multiselect: Uses --base-* variables from _base-css-variables.scss
|
|
5
|
+
* @keenmate/web-daterangepicker: Uses --drp-* variables defined below
|
|
6
|
+
*/
|
|
7
|
+
@use '../variables' as *;
|
|
8
|
+
/*
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/* ========================================
|
|
12
|
+
Date Range Picker Variables (--drp-*)
|
|
13
|
+
v1.3.0+ Semantic Variable Architecture
|
|
14
|
+
|
|
15
|
+
NOTE: Variables set directly on web-daterangepicker
|
|
16
|
+
element to pierce shadow DOM (custom properties
|
|
17
|
+
cascade into shadow DOM when set on host element)
|
|
18
|
+
======================================== */
|
|
19
|
+
|
|
20
|
+
web-daterangepicker {
|
|
21
|
+
/* ===== BASE PRIMITIVES ===== */
|
|
22
|
+
|
|
23
|
+
/* Colors */
|
|
24
|
+
--drp-accent-color: #{$accent-color};
|
|
25
|
+
--drp-primary-bg: #{$btn-primary-bg};
|
|
26
|
+
--drp-primary-bg-hover: #{$btn-primary-bg-hover};
|
|
27
|
+
--drp-text-primary: var(--pa-text-primary);
|
|
28
|
+
--drp-text-secondary: var(--pa-text-secondary);
|
|
29
|
+
--drp-border-color: #{$border-color};
|
|
30
|
+
--drp-card-bg: var(--pa-card-bg);
|
|
31
|
+
--drp-hover-bg: #{$table-hover-bg};
|
|
32
|
+
|
|
33
|
+
/* Spacing */
|
|
34
|
+
--drp-spacing-xs: #{$spacing-xs};
|
|
35
|
+
--drp-spacing-sm: #{$spacing-sm};
|
|
36
|
+
--drp-spacing-md: #{$spacing-md};
|
|
37
|
+
--drp-spacing-base: #{$spacing-base};
|
|
38
|
+
--drp-spacing-lg: #{$spacing-lg};
|
|
39
|
+
--drp-spacing-xl: #{$spacing-xl};
|
|
40
|
+
|
|
41
|
+
/* Typography */
|
|
42
|
+
--drp-font-size-xs: #{$font-size-xs};
|
|
43
|
+
--drp-font-size-sm: #{$font-size-sm};
|
|
44
|
+
--drp-font-size-base: #{$font-size-base};
|
|
45
|
+
--drp-font-size-lg: #{$font-size-lg};
|
|
46
|
+
--drp-font-weight-normal: #{$font-weight-normal};
|
|
47
|
+
--drp-font-weight-medium: #{$font-weight-medium};
|
|
48
|
+
--drp-font-weight-semibold: #{$font-weight-semibold};
|
|
49
|
+
|
|
50
|
+
/* Animations */
|
|
51
|
+
--drp-transition-fast: #{$transition-fast};
|
|
52
|
+
--drp-transition-normal: #{$transition-normal};
|
|
53
|
+
--drp-easing-snappy: #{$easing-snappy};
|
|
54
|
+
--drp-easing-smooth: #{$easing-smooth};
|
|
55
|
+
|
|
56
|
+
/* Shadows */
|
|
57
|
+
--drp-shadow-sm: #{$shadow-sm};
|
|
58
|
+
--drp-shadow-md: #{$shadow-md};
|
|
59
|
+
--drp-shadow-lg: #{$shadow-lg};
|
|
60
|
+
--drp-shadow-xl: #{$shadow-xl};
|
|
61
|
+
|
|
62
|
+
/* Border radius */
|
|
63
|
+
--drp-border-radius: #{$border-radius};
|
|
64
|
+
--drp-border-radius-sm: #{$border-radius-sm};
|
|
65
|
+
--drp-border-radius-lg: #{$border-radius-lg};
|
|
66
|
+
|
|
67
|
+
/* Border width */
|
|
68
|
+
--drp-border-width-base: #{$border-width-base};
|
|
69
|
+
--drp-border-width-medium: #{$border-width-medium};
|
|
70
|
+
|
|
71
|
+
/* ===== INPUT FIELD SEMANTIC VARIABLES ===== */
|
|
72
|
+
|
|
73
|
+
/* Input colors */
|
|
74
|
+
--drp-input-background: var(--pa-input-bg);
|
|
75
|
+
--drp-input-color: var(--pa-text-primary);
|
|
76
|
+
--drp-input-border-color: #{$input-border};
|
|
77
|
+
--drp-input-border-color-hover: #{$accent-color};
|
|
78
|
+
--drp-input-border-color-focus: #{$accent-color};
|
|
79
|
+
--drp-input-placeholder-color: var(--pa-text-secondary);
|
|
80
|
+
--drp-input-disabled-background: var(--pa-input-bg);
|
|
81
|
+
--drp-input-disabled-color: var(--pa-text-secondary);
|
|
82
|
+
|
|
83
|
+
/* Input focus effects */
|
|
84
|
+
--drp-input-focus-shadow-color: #{$accent-light};
|
|
85
|
+
--drp-input-focus-shadow-size: #{$focus-ring-width};
|
|
86
|
+
|
|
87
|
+
/* Input icon */
|
|
88
|
+
--drp-input-icon-color: var(--pa-text-secondary);
|
|
89
|
+
--drp-input-icon-opacity: 1;
|
|
90
|
+
|
|
91
|
+
/* Input size variants - matched to Pure Admin .pa-input sizes (10px base)
|
|
92
|
+
Heights: xs=31px, sm=33px, md=35px, lg=38px, xl=41px */
|
|
93
|
+
|
|
94
|
+
/* Extra Small (31px) */
|
|
95
|
+
--drp-input-size-xs-font: #{$font-size-xs};
|
|
96
|
+
--drp-input-size-xs-padding-v: #{$input-padding-v};
|
|
97
|
+
--drp-input-size-xs-padding-h: #{$input-padding-h};
|
|
98
|
+
--drp-input-size-xs-height: 3.1rem; /* 31px (10px base) */
|
|
99
|
+
--drp-input-size-xs-icon-size: 1.2rem; /* 12px (10px base) */
|
|
100
|
+
|
|
101
|
+
/* Small (33px - same height as xs, slightly larger icon) */
|
|
102
|
+
--drp-input-size-sm-font: #{$font-size-xs};
|
|
103
|
+
--drp-input-size-sm-padding-v: #{$input-padding-v};
|
|
104
|
+
--drp-input-size-sm-padding-h: #{$input-padding-h};
|
|
105
|
+
--drp-input-size-sm-height: 3.3rem; /* 33px (10px base) */
|
|
106
|
+
--drp-input-size-sm-icon-size: 1.4rem; /* 14px (10px base) */
|
|
107
|
+
|
|
108
|
+
/* Medium/Default (maps to pa-input: 35px) */
|
|
109
|
+
--drp-input-size-md-font: #{$font-size-sm};
|
|
110
|
+
--drp-input-size-md-padding-v: #{$input-padding-v};
|
|
111
|
+
--drp-input-size-md-padding-h: #{$input-padding-h};
|
|
112
|
+
--drp-input-size-md-height: 3.5rem; /* 35px (10px base) */
|
|
113
|
+
--drp-input-size-md-icon-size: 1.6rem; /* 16px (10px base) */
|
|
114
|
+
|
|
115
|
+
/* Large (maps to pa-input--lg: 38px) */
|
|
116
|
+
--drp-input-size-lg-font: #{$font-size-base};
|
|
117
|
+
--drp-input-size-lg-padding-v: #{$input-padding-v};
|
|
118
|
+
--drp-input-size-lg-padding-h: #{$input-padding-h};
|
|
119
|
+
--drp-input-size-lg-height: 3.8rem; /* 38px (10px base) */
|
|
120
|
+
--drp-input-size-lg-icon-size: 1.8rem; /* 18px (10px base) */
|
|
121
|
+
|
|
122
|
+
/* Extra Large (maps to pa-input--xl: 41px) */
|
|
123
|
+
--drp-input-size-xl-font: #{$font-size-lg};
|
|
124
|
+
--drp-input-size-xl-padding-v: #{$input-padding-v};
|
|
125
|
+
--drp-input-size-xl-padding-h: #{$input-padding-h};
|
|
126
|
+
--drp-input-size-xl-height: 4.1rem; /* 41px (10px base) */
|
|
127
|
+
--drp-input-size-xl-icon-size: 2rem; /* 20px (10px base) */
|
|
128
|
+
|
|
129
|
+
/* ===== CALENDAR CONTAINER ===== */
|
|
130
|
+
|
|
131
|
+
--drp-calendar-bg: var(--pa-card-bg);
|
|
132
|
+
--drp-calendar-border: #{$border-color};
|
|
133
|
+
--drp-calendar-shadow: #{$shadow-xl};
|
|
134
|
+
--drp-calendar-border-radius: #{$border-radius};
|
|
135
|
+
--drp-calendar-padding: #{$spacing-base};
|
|
136
|
+
--drp-calendar-z-index: #{$z-index-dropdown};
|
|
137
|
+
|
|
138
|
+
/* ===== HEADER ===== */
|
|
139
|
+
|
|
140
|
+
--drp-header-padding: #{$spacing-sm} #{$spacing-md};
|
|
141
|
+
--drp-header-font-size: #{$font-size-base};
|
|
142
|
+
--drp-header-font-weight: #{$font-weight-semibold};
|
|
143
|
+
--drp-header-text-color: var(--pa-text-primary);
|
|
144
|
+
--drp-header-bg-hover: #{$accent-hover};
|
|
145
|
+
--drp-header-bg-active: #{$accent-light};
|
|
146
|
+
|
|
147
|
+
/* ===== NAVIGATION ===== */
|
|
148
|
+
|
|
149
|
+
--drp-nav-btn-size: 3.2rem; /* 32px (10px base) */
|
|
150
|
+
--drp-nav-text-color: var(--pa-text-primary);
|
|
151
|
+
--drp-nav-border-color: #{$border-color};
|
|
152
|
+
--drp-nav-bg-hover: #{$accent-hover};
|
|
153
|
+
--drp-nav-bg-active: #{$accent-light};
|
|
154
|
+
--drp-nav-border-hover: #{$accent-color};
|
|
155
|
+
|
|
156
|
+
/* ===== WEEKDAY HEADER ===== */
|
|
157
|
+
|
|
158
|
+
--drp-weekday-font-size: #{$font-size-xs};
|
|
159
|
+
--drp-weekday-font-weight: #{$font-weight-semibold};
|
|
160
|
+
--drp-weekday-color: var(--pa-text-secondary);
|
|
161
|
+
--drp-weekday-padding: #{$spacing-xs};
|
|
162
|
+
|
|
163
|
+
/* ===== CALENDAR GRID ===== */
|
|
164
|
+
|
|
165
|
+
--drp-day-size: 3.6rem; /* 36px (10px base) */
|
|
166
|
+
--drp-day-font-size: #{$font-size-sm};
|
|
167
|
+
--drp-day-border-radius: #{$border-radius-sm};
|
|
168
|
+
|
|
169
|
+
/* Day states */
|
|
170
|
+
--drp-day-text-color: var(--pa-text-primary);
|
|
171
|
+
--drp-day-bg-hover: #{$accent-hover};
|
|
172
|
+
--drp-day-border-hover: transparent;
|
|
173
|
+
|
|
174
|
+
/* Today indicator */
|
|
175
|
+
--drp-day-today-border: #{$accent-color};
|
|
176
|
+
|
|
177
|
+
/* Selected state */
|
|
178
|
+
--drp-day-selected-bg: #{$accent-color};
|
|
179
|
+
--drp-day-selected-color: #ffffff;
|
|
180
|
+
|
|
181
|
+
/* Range state */
|
|
182
|
+
--drp-day-range-bg: #{$accent-light};
|
|
183
|
+
--drp-day-range-text: var(--pa-text-primary);
|
|
184
|
+
|
|
185
|
+
/* Focused state */
|
|
186
|
+
--drp-day-focused-outline: #{$accent-color};
|
|
187
|
+
|
|
188
|
+
/* Disabled state */
|
|
189
|
+
--drp-day-disabled-color: var(--pa-text-secondary);
|
|
190
|
+
--drp-day-disabled-opacity: #{$opacity-disabled};
|
|
191
|
+
|
|
192
|
+
/* Other month */
|
|
193
|
+
--drp-day-other-month-color: var(--pa-text-secondary);
|
|
194
|
+
--drp-day-other-month-opacity: #{$opacity-muted};
|
|
195
|
+
|
|
196
|
+
/* ===== BADGES ===== */
|
|
197
|
+
|
|
198
|
+
/* Dot badges (original style) */
|
|
199
|
+
--drp-badge-size: 0.6rem; /* 6px (10px base) */
|
|
200
|
+
--drp-badge-primary: #{$btn-primary-bg};
|
|
201
|
+
--drp-badge-success: #{$success-bg};
|
|
202
|
+
--drp-badge-warning: #{$warning-bg};
|
|
203
|
+
--drp-badge-danger: #{$danger-bg};
|
|
204
|
+
--drp-badge-info: #{$info-bg};
|
|
205
|
+
|
|
206
|
+
/* Number badges */
|
|
207
|
+
--drp-badge-number-bg: #{$danger-bg};
|
|
208
|
+
--drp-badge-number-color: #ffffff;
|
|
209
|
+
|
|
210
|
+
/* Count badges */
|
|
211
|
+
--drp-badge-count-bg: #{$accent-color};
|
|
212
|
+
--drp-badge-count-color: #ffffff;
|
|
213
|
+
|
|
214
|
+
/* Text badges */
|
|
215
|
+
--drp-badge-text-bg: #{$accent-light};
|
|
216
|
+
--drp-badge-text-color: var(--pa-text-primary);
|
|
217
|
+
|
|
218
|
+
/* ===== SUMMARY BAR ===== */
|
|
219
|
+
|
|
220
|
+
--drp-summary-bg: #{$card-header-bg};
|
|
221
|
+
--drp-summary-border-color: #{$border-color};
|
|
222
|
+
--drp-summary-text-color: var(--pa-text-primary);
|
|
223
|
+
--drp-summary-count-color: #{$accent-color};
|
|
224
|
+
--drp-summary-padding: #{$spacing-sm} #{$spacing-md};
|
|
225
|
+
--drp-summary-font-size: #{$font-size-sm};
|
|
226
|
+
--drp-summary-font-weight: #{$font-weight-medium};
|
|
227
|
+
|
|
228
|
+
/* ===== BUTTONS ===== */
|
|
229
|
+
|
|
230
|
+
/* Today button */
|
|
231
|
+
--drp-button-today-bg: #{$btn-secondary-bg};
|
|
232
|
+
--drp-button-today-bg-hover: #{$btn-secondary-bg-hover};
|
|
233
|
+
--drp-button-today-color: #{$btn-secondary-text};
|
|
234
|
+
--drp-button-today-border: #{$border-color};
|
|
235
|
+
|
|
236
|
+
/* Clear button */
|
|
237
|
+
--drp-button-clear-bg: #{$btn-secondary-bg};
|
|
238
|
+
--drp-button-clear-bg-hover: #{$btn-secondary-bg-hover};
|
|
239
|
+
--drp-button-clear-color: #{$btn-secondary-text};
|
|
240
|
+
--drp-button-clear-border: #{$border-color};
|
|
241
|
+
|
|
242
|
+
/* Cancel button */
|
|
243
|
+
--drp-button-cancel-bg: #{$btn-secondary-bg};
|
|
244
|
+
--drp-button-cancel-bg-hover: #{$btn-secondary-bg-hover};
|
|
245
|
+
--drp-button-cancel-color: #{$btn-secondary-text};
|
|
246
|
+
--drp-button-cancel-border: #{$border-color};
|
|
247
|
+
|
|
248
|
+
/* Apply button */
|
|
249
|
+
--drp-button-apply-bg: #{$btn-primary-bg};
|
|
250
|
+
--drp-button-apply-bg-hover: #{$btn-primary-bg-hover};
|
|
251
|
+
--drp-button-apply-color: #{$btn-primary-text};
|
|
252
|
+
--drp-button-apply-border: #{$btn-primary-bg};
|
|
253
|
+
|
|
254
|
+
/* Button sizing */
|
|
255
|
+
--drp-button-padding: #{$btn-padding-sm-v} #{$btn-padding-sm-h};
|
|
256
|
+
--drp-button-font-size: #{$font-size-sm};
|
|
257
|
+
--drp-button-border-radius: #{$border-radius};
|
|
258
|
+
--drp-button-gap: #{$spacing-sm};
|
|
259
|
+
|
|
260
|
+
/* ===== UNIFIED NAVIGATION ===== */
|
|
261
|
+
|
|
262
|
+
/* Range selectors in unified nav */
|
|
263
|
+
--drp-unified-range-text-color: var(--pa-text-primary);
|
|
264
|
+
--drp-unified-range-bg-hover: #{$accent-hover};
|
|
265
|
+
--drp-unified-range-bg-active: #{$accent-light};
|
|
266
|
+
|
|
267
|
+
/* Month/Year display */
|
|
268
|
+
--drp-unified-month-color: var(--pa-text-primary);
|
|
269
|
+
|
|
270
|
+
/* Rolling selector disabled state */
|
|
271
|
+
--drp-unified-rolling-disabled-color: var(--pa-text-secondary);
|
|
272
|
+
|
|
273
|
+
/* ===== ROLLING SELECTOR ===== */
|
|
274
|
+
|
|
275
|
+
--drp-rolling-bg: var(--pa-card-bg);
|
|
276
|
+
--drp-rolling-border: #{$border-color};
|
|
277
|
+
--drp-rolling-shadow: #{$shadow-md};
|
|
278
|
+
--drp-rolling-item-hover-bg: #{$accent-hover};
|
|
279
|
+
--drp-rolling-item-selected-bg: #{$accent-color};
|
|
280
|
+
--drp-rolling-item-selected-text: #ffffff;
|
|
281
|
+
--drp-rolling-font-size: #{$font-size-sm};
|
|
282
|
+
--drp-rolling-item-text-color: var(--pa-text-primary);
|
|
283
|
+
--drp-rolling-item-disabled-color: var(--pa-text-secondary);
|
|
284
|
+
|
|
285
|
+
/* ===== LOADING OVERLAY ===== */
|
|
286
|
+
|
|
287
|
+
--drp-loading-bg: rgba(255, 255, 255, 0.8);
|
|
288
|
+
--drp-loading-spinner-color: #{$accent-color};
|
|
289
|
+
--drp-loading-spinner-size: #{$spinner-size};
|
|
290
|
+
|
|
291
|
+
/* ===== MULTIPLE MONTHS ===== */
|
|
292
|
+
|
|
293
|
+
--drp-months-gap: #{$spacing-lg};
|
|
294
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/* ========================================
|
|
2
|
+
Badge Base
|
|
3
|
+
Core badge component with sizes, colors, and modifiers
|
|
4
|
+
======================================== */
|
|
5
|
+
@use '../../variables' as *;
|
|
6
|
+
|
|
7
|
+
// Badge Components
|
|
8
|
+
.pa-badge {
|
|
9
|
+
display: inline-flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
gap: $spacing-xs;
|
|
12
|
+
padding: $spacing-xs $spacing-sm;
|
|
13
|
+
background-color: var(--pa-btn-secondary-bg);
|
|
14
|
+
color: var(--pa-btn-secondary-text);
|
|
15
|
+
font-size: $font-size-xs;
|
|
16
|
+
font-weight: $font-weight-semibold;
|
|
17
|
+
line-height: 1;
|
|
18
|
+
text-align: center;
|
|
19
|
+
white-space: nowrap;
|
|
20
|
+
vertical-align: baseline;
|
|
21
|
+
border-radius: $border-radius;
|
|
22
|
+
border: $border-width-base solid transparent;
|
|
23
|
+
transition: all $transition-fast $easing-snappy;
|
|
24
|
+
|
|
25
|
+
&__icon {
|
|
26
|
+
font-size: $font-size-2xs;
|
|
27
|
+
line-height: 1;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Size variations
|
|
31
|
+
&--xs {
|
|
32
|
+
padding: 0.2rem 0.4rem;
|
|
33
|
+
font-size: $font-size-2xs; // 1rem (10px)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&--sm {
|
|
37
|
+
padding: 0.25rem 0.5rem;
|
|
38
|
+
font-size: $font-size-xs; // 1.2rem (12px)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&--lg {
|
|
42
|
+
padding: 0.5rem 1rem;
|
|
43
|
+
font-size: $font-size-sm; // 1.4rem (14px)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&--xl {
|
|
47
|
+
padding: 0.6rem 1.2rem;
|
|
48
|
+
font-size: $font-size-base; // 1.6rem (16px)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Shape variations
|
|
52
|
+
&--pill {
|
|
53
|
+
border-radius: $badge-pill-radius;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Color variations
|
|
57
|
+
&--primary {
|
|
58
|
+
background-color: var(--pa-btn-primary-bg);
|
|
59
|
+
color: var(--pa-btn-primary-text);
|
|
60
|
+
border-color: var(--pa-btn-primary-bg);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&--secondary {
|
|
64
|
+
background-color: var(--pa-btn-secondary-bg);
|
|
65
|
+
color: var(--pa-btn-secondary-text);
|
|
66
|
+
border-color: var(--pa-btn-secondary-bg);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&--success {
|
|
70
|
+
background-color: var(--pa-btn-success-bg);
|
|
71
|
+
color: var(--pa-btn-success-text);
|
|
72
|
+
border-color: var(--pa-btn-success-bg);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&--warning {
|
|
76
|
+
background-color: var(--pa-btn-warning-bg);
|
|
77
|
+
color: var(--pa-btn-warning-text);
|
|
78
|
+
border-color: var(--pa-btn-warning-bg);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
&--danger {
|
|
82
|
+
background-color: var(--pa-btn-danger-bg);
|
|
83
|
+
color: var(--pa-btn-danger-text);
|
|
84
|
+
border-color: var(--pa-btn-danger-bg);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&--info {
|
|
88
|
+
background-color: var(--pa-btn-info-bg);
|
|
89
|
+
color: var(--pa-btn-info-text);
|
|
90
|
+
border-color: var(--pa-btn-info-bg);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
&--light {
|
|
94
|
+
background-color: var(--pa-btn-light-bg);
|
|
95
|
+
color: var(--pa-btn-light-text);
|
|
96
|
+
border-color: var(--pa-btn-light-bg);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&--dark {
|
|
100
|
+
background-color: var(--pa-btn-dark-bg);
|
|
101
|
+
color: var(--pa-btn-dark-text);
|
|
102
|
+
border-color: var(--pa-btn-dark-bg);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Fixed-width badges with ellipsis
|
|
106
|
+
&--w-1x { min-width: 1.6rem; max-width: 1.6rem; }
|
|
107
|
+
&--w-2x { min-width: 3.2rem; max-width: 3.2rem; }
|
|
108
|
+
&--w-3x { min-width: 4.8rem; max-width: 4.8rem; }
|
|
109
|
+
&--w-4x { min-width: 6.4rem; max-width: 6.4rem; }
|
|
110
|
+
&--w-5x { min-width: 8rem; max-width: 8rem; }
|
|
111
|
+
&--w-6x { min-width: 9.6rem; max-width: 9.6rem; }
|
|
112
|
+
&--w-7x { min-width: 11.2rem; max-width: 11.2rem; }
|
|
113
|
+
&--w-8x { min-width: 12.8rem; max-width: 12.8rem; }
|
|
114
|
+
&--w-9x { min-width: 14.4rem; max-width: 14.4rem; }
|
|
115
|
+
&--w-10x { min-width: 16rem; max-width: 16rem; }
|
|
116
|
+
|
|
117
|
+
// Apply ellipsis to fixed-width badges
|
|
118
|
+
&[class*="--w-"] {
|
|
119
|
+
display: inline-block;
|
|
120
|
+
overflow: hidden;
|
|
121
|
+
text-overflow: ellipsis;
|
|
122
|
+
white-space: nowrap;
|
|
123
|
+
vertical-align: middle;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Left-side ellipsis for paths/hierarchies where end is important
|
|
127
|
+
&--ellipsis-left {
|
|
128
|
+
direction: rtl;
|
|
129
|
+
text-align: left;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* ========================================
|
|
2
|
+
Badge Group
|
|
3
|
+
Container for grouped badges with visibility limits
|
|
4
|
+
======================================== */
|
|
5
|
+
@use '../../variables' as *;
|
|
6
|
+
|
|
7
|
+
// Badge Group - limits visible badges and shows "more" indicator
|
|
8
|
+
.pa-badge-group {
|
|
9
|
+
display: inline-flex;
|
|
10
|
+
flex-wrap: wrap;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: $badge-group-gap;
|
|
13
|
+
|
|
14
|
+
// Hide badges beyond the limit
|
|
15
|
+
.pa-badge:nth-child(n+#{$badge-group-visible-limit + 1}):not(:last-child) {
|
|
16
|
+
display: none;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Show all badges without limit
|
|
20
|
+
&--show-all {
|
|
21
|
+
.pa-badge:nth-child(n+#{$badge-group-visible-limit + 1}):not(:last-child) {
|
|
22
|
+
display: inline-flex;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|