@keenmate/pure-admin-core 2.3.0 → 2.3.2
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/README.md +7 -5
- package/dist/css/main.css +207 -181
- package/package.json +1 -1
- package/snippets/buttons.html +375 -365
- package/src/scss/_base-css-variables.scss +8 -0
- package/src/scss/_core.scss +121 -121
- package/src/scss/core-components/_alerts.scss +227 -227
- package/src/scss/core-components/_badges.scss +16 -16
- package/src/scss/core-components/_base.scss +125 -125
- package/src/scss/core-components/_buttons.scss +580 -548
- package/src/scss/core-components/_callouts.scss +152 -152
- package/src/scss/core-components/_cards.scss +488 -488
- package/src/scss/core-components/_checkbox-lists.scss +289 -289
- package/src/scss/core-components/_code.scss +141 -141
- package/src/scss/core-components/_command-palette.scss +509 -509
- package/src/scss/core-components/_comparison.scss +172 -172
- package/src/scss/core-components/_data-display.scss +9 -9
- package/src/scss/core-components/_data-viz.scss +9 -9
- package/src/scss/core-components/_detail-panel.scss +1 -1
- package/src/scss/core-components/_file-selector.scss +780 -780
- package/src/scss/core-components/_filter-card.scss +58 -58
- package/src/scss/core-components/_forms.scss +16 -16
- package/src/scss/core-components/_grid.scss +293 -293
- package/src/scss/core-components/_layout.scss +15 -15
- package/src/scss/core-components/_lists.scss +211 -211
- package/src/scss/core-components/_loaders.scss +277 -277
- package/src/scss/core-components/_logic-tree.scss +280 -280
- package/src/scss/core-components/_modals.scss +203 -203
- package/src/scss/core-components/_notifications.scss +320 -320
- package/src/scss/core-components/_pagers.scss +141 -141
- package/src/scss/core-components/_popconfirm.scss +170 -170
- package/src/scss/core-components/_profile.scss +405 -405
- package/src/scss/core-components/_scrollbars.scss +40 -40
- package/src/scss/core-components/_settings-panel.scss +141 -141
- package/src/scss/core-components/_statistics.scss +200 -201
- package/src/scss/core-components/_tables.scss +900 -900
- package/src/scss/core-components/_tabs.scss +504 -504
- package/src/scss/core-components/_timeline.scss +589 -589
- package/src/scss/core-components/_toasts.scss +425 -425
- package/src/scss/core-components/_tooltips.scss +605 -605
- package/src/scss/core-components/_utilities.scss +1 -1
- package/src/scss/core-components/_web-components-theme.scss +21 -21
- package/src/scss/core-components/badges/_badge-base.scss +121 -121
- package/src/scss/core-components/badges/_badge-group.scss +25 -25
- package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -396
- package/src/scss/core-components/badges/_composite-badge.scss +70 -70
- package/src/scss/core-components/badges/_index.scss +10 -10
- package/src/scss/core-components/badges/_labels.scss +155 -155
- package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -205
- package/src/scss/core-components/forms/_form-inputs.scss +136 -135
- package/src/scss/core-components/forms/_form-layout.scss +66 -66
- package/src/scss/core-components/forms/_form-states.scss +115 -115
- package/src/scss/core-components/forms/_index.scss +12 -12
- package/src/scss/core-components/forms/_input-groups.scss +154 -154
- package/src/scss/core-components/forms/_input-wrapper.scss +89 -89
- package/src/scss/core-components/forms/_query-editor.scss +313 -313
- package/src/scss/core-components/layout/_index.scss +11 -11
- package/src/scss/core-components/layout/_layout-container.scss +168 -168
- package/src/scss/core-components/layout/_layout-responsive.scss +99 -99
- package/src/scss/core-components/layout/_navbar-elements.scss +250 -250
- package/src/scss/core-components/layout/_navbar.scss +83 -83
- package/src/scss/core-components/layout/_sidebar-states.scss +237 -237
- package/src/scss/core-components/layout/_sidebar.scss +234 -234
- package/src/scss/main.scss +7 -7
- package/src/scss/utilities.scss +740 -740
- package/src/scss/variables/_base.scss +228 -228
- package/src/scss/variables/_components.scss +748 -748
- package/src/scss/variables/_layout.scss +65 -65
- package/src/scss/variables/_typography.scss +37 -37
|
@@ -1,203 +1,203 @@
|
|
|
1
|
-
/* ========================================
|
|
2
|
-
Modal Components
|
|
3
|
-
Modal windows with overlay, sizes, and themed headers
|
|
4
|
-
======================================== */
|
|
5
|
-
@use '../variables' as *;
|
|
6
|
-
|
|
7
|
-
// ===== MODAL COMPONENTS =====
|
|
8
|
-
|
|
9
|
-
// Modal wrapper
|
|
10
|
-
.pa-modal {
|
|
11
|
-
position: fixed;
|
|
12
|
-
inset: 0; // RTL: full screen works in both directions
|
|
13
|
-
display: none;
|
|
14
|
-
justify-content: center;
|
|
15
|
-
align-items: center;
|
|
16
|
-
z-index: $z-index-modal;
|
|
17
|
-
|
|
18
|
-
&.pa-modal--show {
|
|
19
|
-
display: flex;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// Top-aligned modifier - positions modal near top instead of center
|
|
23
|
-
&.pa-modal--top {
|
|
24
|
-
align-items: flex-start;
|
|
25
|
-
padding-top: 5vh; // Small offset from top
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Modal backdrop (the dark overlay)
|
|
30
|
-
.pa-modal__backdrop {
|
|
31
|
-
position: fixed;
|
|
32
|
-
inset: 0; // RTL: full screen works in both directions
|
|
33
|
-
background-color: var(--pa-modal-overlay-bg);
|
|
34
|
-
z-index: $z-index-modal-backdrop;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Modal container (the actual dialog)
|
|
38
|
-
.pa-modal__container {
|
|
39
|
-
background-color: var(--pa-modal-content-bg);
|
|
40
|
-
border-radius:
|
|
41
|
-
box-shadow: $modal-box-shadow;
|
|
42
|
-
width: 100%;
|
|
43
|
-
max-width: $modal-md-width;
|
|
44
|
-
max-height: 90vh;
|
|
45
|
-
margin: $spacing-base;
|
|
46
|
-
position: relative;
|
|
47
|
-
z-index: $z-index-modal;
|
|
48
|
-
display: flex;
|
|
49
|
-
flex-direction: column;
|
|
50
|
-
|
|
51
|
-
// Size variations
|
|
52
|
-
&--sm {
|
|
53
|
-
max-width: $modal-sm-width;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
&--lg {
|
|
57
|
-
max-width: $modal-lg-width;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
&--xl {
|
|
61
|
-
max-width: $modal-xl-width;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
&--xxl {
|
|
65
|
-
max-width: $modal-xxl-width;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
&--fw {
|
|
69
|
-
max-width: calc(100vw - ($modal-fw-margin * 2));
|
|
70
|
-
width: calc(100vw - ($modal-fw-margin * 2));
|
|
71
|
-
max-height: calc(100vh - ($modal-fw-margin * 2));
|
|
72
|
-
margin: $modal-fw-margin;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Modal header
|
|
77
|
-
.pa-modal__header {
|
|
78
|
-
padding: $modal-header-padding;
|
|
79
|
-
border-bottom: $border-width-base solid var(--pa-border-color);
|
|
80
|
-
border-radius:
|
|
81
|
-
display: flex;
|
|
82
|
-
justify-content: space-between;
|
|
83
|
-
align-items: center;
|
|
84
|
-
flex-shrink: 0;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.pa-modal__title {
|
|
88
|
-
margin: 0;
|
|
89
|
-
font-size: $modal-title-font-size;
|
|
90
|
-
font-weight: $font-weight-semibold;
|
|
91
|
-
color: var(--pa-text-color-1);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Close button uses standard .pa-btn classes
|
|
95
|
-
// No custom styling needed - handled by button component
|
|
96
|
-
|
|
97
|
-
// Modal body
|
|
98
|
-
.pa-modal__body {
|
|
99
|
-
padding: $modal-body-padding;
|
|
100
|
-
flex: 1;
|
|
101
|
-
overflow-y: auto;
|
|
102
|
-
color: var(--pa-text-color-1);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Modal footer
|
|
106
|
-
.pa-modal__footer {
|
|
107
|
-
padding: $modal-footer-padding;
|
|
108
|
-
border-top: $border-width-base solid var(--pa-border-color);
|
|
109
|
-
display: flex;
|
|
110
|
-
justify-content: flex-end;
|
|
111
|
-
gap: $spacing-md;
|
|
112
|
-
flex-shrink: 0;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// Modal color variations
|
|
116
|
-
.pa-modal--primary .pa-modal__header {
|
|
117
|
-
background-color: var(--pa-btn-primary-bg);
|
|
118
|
-
color: var(--pa-modal-content-bg);
|
|
119
|
-
border-bottom-color: var(--pa-btn-primary-bg);
|
|
120
|
-
|
|
121
|
-
.pa-modal__title {
|
|
122
|
-
color: var(--pa-modal-content-bg);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.pa-modal--success .pa-modal__header {
|
|
127
|
-
background-color: var(--pa-btn-success-bg);
|
|
128
|
-
color: var(--pa-btn-success-text);
|
|
129
|
-
border-bottom-color: var(--pa-btn-success-bg);
|
|
130
|
-
|
|
131
|
-
.pa-modal__title {
|
|
132
|
-
color: var(--pa-btn-success-text);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.pa-modal--warning .pa-modal__header {
|
|
137
|
-
background-color: var(--pa-btn-warning-bg);
|
|
138
|
-
color: var(--pa-btn-warning-text);
|
|
139
|
-
border-bottom-color: var(--pa-btn-warning-bg);
|
|
140
|
-
|
|
141
|
-
.pa-modal__title {
|
|
142
|
-
color: var(--pa-btn-warning-text);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.pa-modal--danger .pa-modal__header {
|
|
147
|
-
background-color: var(--pa-btn-danger-bg);
|
|
148
|
-
color: var(--pa-btn-danger-text);
|
|
149
|
-
border-bottom-color: var(--pa-btn-danger-bg);
|
|
150
|
-
|
|
151
|
-
.pa-modal__title {
|
|
152
|
-
color: var(--pa-btn-danger-text);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// Modal scrollable content
|
|
157
|
-
.pa-modal__body--scrollable {
|
|
158
|
-
max-height: $modal-body-scrollable-max-height;
|
|
159
|
-
overflow-y: auto;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// Modal form styles use the same .pa-form-group as regular forms
|
|
163
|
-
// No additional styling needed - proper grid spacing handles alignment
|
|
164
|
-
|
|
165
|
-
// Modal backdrop click handling
|
|
166
|
-
.pa-modal[data-backdrop="static"] {
|
|
167
|
-
// For static modals that don't close on backdrop click
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Responsive modal behavior
|
|
171
|
-
@media (max-width: $mobile-breakpoint) {
|
|
172
|
-
.pa-modal__container {
|
|
173
|
-
margin: $modal-mobile-margin;
|
|
174
|
-
max-height: $modal-mobile-max-height;
|
|
175
|
-
|
|
176
|
-
&--lg,
|
|
177
|
-
&--xl,
|
|
178
|
-
&--xxl {
|
|
179
|
-
max-width: calc(100vw - #{$spacing-base});
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
&--fw {
|
|
183
|
-
--modal-fw-margin: $modal-mobile-margin;
|
|
184
|
-
max-width: calc(100vw - ($modal-fw-margin * 2));
|
|
185
|
-
width: calc(100vw - ($modal-fw-margin * 2));
|
|
186
|
-
max-height: calc(100vh - ($modal-fw-margin * 2));
|
|
187
|
-
margin: $modal-fw-margin;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
.pa-modal__header {
|
|
192
|
-
padding: $modal-header-padding;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
.pa-modal__body {
|
|
196
|
-
padding: $modal-body-padding;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
.pa-modal__footer {
|
|
200
|
-
padding: $modal-footer-padding;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
1
|
+
/* ========================================
|
|
2
|
+
Modal Components
|
|
3
|
+
Modal windows with overlay, sizes, and themed headers
|
|
4
|
+
======================================== */
|
|
5
|
+
@use '../variables' as *;
|
|
6
|
+
|
|
7
|
+
// ===== MODAL COMPONENTS =====
|
|
8
|
+
|
|
9
|
+
// Modal wrapper
|
|
10
|
+
.pa-modal {
|
|
11
|
+
position: fixed;
|
|
12
|
+
inset: 0; // RTL: full screen works in both directions
|
|
13
|
+
display: none;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
align-items: center;
|
|
16
|
+
z-index: $z-index-modal;
|
|
17
|
+
|
|
18
|
+
&.pa-modal--show {
|
|
19
|
+
display: flex;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Top-aligned modifier - positions modal near top instead of center
|
|
23
|
+
&.pa-modal--top {
|
|
24
|
+
align-items: flex-start;
|
|
25
|
+
padding-top: 5vh; // Small offset from top
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Modal backdrop (the dark overlay)
|
|
30
|
+
.pa-modal__backdrop {
|
|
31
|
+
position: fixed;
|
|
32
|
+
inset: 0; // RTL: full screen works in both directions
|
|
33
|
+
background-color: var(--pa-modal-overlay-bg);
|
|
34
|
+
z-index: $z-index-modal-backdrop;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Modal container (the actual dialog)
|
|
38
|
+
.pa-modal__container {
|
|
39
|
+
background-color: var(--pa-modal-content-bg);
|
|
40
|
+
border-radius: var(--pa-border-radius);
|
|
41
|
+
box-shadow: $modal-box-shadow;
|
|
42
|
+
width: 100%;
|
|
43
|
+
max-width: $modal-md-width;
|
|
44
|
+
max-height: 90vh;
|
|
45
|
+
margin: $spacing-base;
|
|
46
|
+
position: relative;
|
|
47
|
+
z-index: $z-index-modal;
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
|
|
51
|
+
// Size variations
|
|
52
|
+
&--sm {
|
|
53
|
+
max-width: $modal-sm-width;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&--lg {
|
|
57
|
+
max-width: $modal-lg-width;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&--xl {
|
|
61
|
+
max-width: $modal-xl-width;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&--xxl {
|
|
65
|
+
max-width: $modal-xxl-width;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&--fw {
|
|
69
|
+
max-width: calc(100vw - ($modal-fw-margin * 2));
|
|
70
|
+
width: calc(100vw - ($modal-fw-margin * 2));
|
|
71
|
+
max-height: calc(100vh - ($modal-fw-margin * 2));
|
|
72
|
+
margin: $modal-fw-margin;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Modal header
|
|
77
|
+
.pa-modal__header {
|
|
78
|
+
padding: $modal-header-padding;
|
|
79
|
+
border-bottom: $border-width-base solid var(--pa-border-color);
|
|
80
|
+
border-radius: var(--pa-border-radius) var(--pa-border-radius) 0 0; // Match container's top corners
|
|
81
|
+
display: flex;
|
|
82
|
+
justify-content: space-between;
|
|
83
|
+
align-items: center;
|
|
84
|
+
flex-shrink: 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.pa-modal__title {
|
|
88
|
+
margin: 0;
|
|
89
|
+
font-size: $modal-title-font-size;
|
|
90
|
+
font-weight: $font-weight-semibold;
|
|
91
|
+
color: var(--pa-text-color-1);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Close button uses standard .pa-btn classes
|
|
95
|
+
// No custom styling needed - handled by button component
|
|
96
|
+
|
|
97
|
+
// Modal body
|
|
98
|
+
.pa-modal__body {
|
|
99
|
+
padding: $modal-body-padding;
|
|
100
|
+
flex: 1;
|
|
101
|
+
overflow-y: auto;
|
|
102
|
+
color: var(--pa-text-color-1);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Modal footer
|
|
106
|
+
.pa-modal__footer {
|
|
107
|
+
padding: $modal-footer-padding;
|
|
108
|
+
border-top: $border-width-base solid var(--pa-border-color);
|
|
109
|
+
display: flex;
|
|
110
|
+
justify-content: flex-end;
|
|
111
|
+
gap: $spacing-md;
|
|
112
|
+
flex-shrink: 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Modal color variations
|
|
116
|
+
.pa-modal--primary .pa-modal__header {
|
|
117
|
+
background-color: var(--pa-btn-primary-bg);
|
|
118
|
+
color: var(--pa-modal-content-bg);
|
|
119
|
+
border-bottom-color: var(--pa-btn-primary-bg);
|
|
120
|
+
|
|
121
|
+
.pa-modal__title {
|
|
122
|
+
color: var(--pa-modal-content-bg);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.pa-modal--success .pa-modal__header {
|
|
127
|
+
background-color: var(--pa-btn-success-bg);
|
|
128
|
+
color: var(--pa-btn-success-text);
|
|
129
|
+
border-bottom-color: var(--pa-btn-success-bg);
|
|
130
|
+
|
|
131
|
+
.pa-modal__title {
|
|
132
|
+
color: var(--pa-btn-success-text);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.pa-modal--warning .pa-modal__header {
|
|
137
|
+
background-color: var(--pa-btn-warning-bg);
|
|
138
|
+
color: var(--pa-btn-warning-text);
|
|
139
|
+
border-bottom-color: var(--pa-btn-warning-bg);
|
|
140
|
+
|
|
141
|
+
.pa-modal__title {
|
|
142
|
+
color: var(--pa-btn-warning-text);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.pa-modal--danger .pa-modal__header {
|
|
147
|
+
background-color: var(--pa-btn-danger-bg);
|
|
148
|
+
color: var(--pa-btn-danger-text);
|
|
149
|
+
border-bottom-color: var(--pa-btn-danger-bg);
|
|
150
|
+
|
|
151
|
+
.pa-modal__title {
|
|
152
|
+
color: var(--pa-btn-danger-text);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Modal scrollable content
|
|
157
|
+
.pa-modal__body--scrollable {
|
|
158
|
+
max-height: $modal-body-scrollable-max-height;
|
|
159
|
+
overflow-y: auto;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Modal form styles use the same .pa-form-group as regular forms
|
|
163
|
+
// No additional styling needed - proper grid spacing handles alignment
|
|
164
|
+
|
|
165
|
+
// Modal backdrop click handling
|
|
166
|
+
.pa-modal[data-backdrop="static"] {
|
|
167
|
+
// For static modals that don't close on backdrop click
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Responsive modal behavior
|
|
171
|
+
@media (max-width: $mobile-breakpoint) {
|
|
172
|
+
.pa-modal__container {
|
|
173
|
+
margin: $modal-mobile-margin;
|
|
174
|
+
max-height: $modal-mobile-max-height;
|
|
175
|
+
|
|
176
|
+
&--lg,
|
|
177
|
+
&--xl,
|
|
178
|
+
&--xxl {
|
|
179
|
+
max-width: calc(100vw - #{$spacing-base});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
&--fw {
|
|
183
|
+
--modal-fw-margin: $modal-mobile-margin;
|
|
184
|
+
max-width: calc(100vw - ($modal-fw-margin * 2));
|
|
185
|
+
width: calc(100vw - ($modal-fw-margin * 2));
|
|
186
|
+
max-height: calc(100vh - ($modal-fw-margin * 2));
|
|
187
|
+
margin: $modal-fw-margin;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.pa-modal__header {
|
|
192
|
+
padding: $modal-header-padding;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.pa-modal__body {
|
|
196
|
+
padding: $modal-body-padding;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.pa-modal__footer {
|
|
200
|
+
padding: $modal-footer-padding;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|