@keenmate/pure-admin-core 2.3.1 → 2.3.3

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 (70) hide show
  1. package/README.md +30 -9
  2. package/dist/css/main.css +205 -190
  3. package/package.json +1 -1
  4. package/snippets/buttons.html +375 -365
  5. package/snippets/command-palette.html +15 -13
  6. package/src/scss/_base-css-variables.scss +10 -0
  7. package/src/scss/_core.scss +121 -121
  8. package/src/scss/core-components/_alerts.scss +227 -227
  9. package/src/scss/core-components/_badges.scss +16 -16
  10. package/src/scss/core-components/_base.scss +125 -125
  11. package/src/scss/core-components/_buttons.scss +31 -16
  12. package/src/scss/core-components/_callouts.scss +152 -152
  13. package/src/scss/core-components/_cards.scss +488 -488
  14. package/src/scss/core-components/_checkbox-lists.scss +289 -289
  15. package/src/scss/core-components/_code.scss +141 -141
  16. package/src/scss/core-components/_command-palette.scss +518 -509
  17. package/src/scss/core-components/_comparison.scss +172 -172
  18. package/src/scss/core-components/_data-display.scss +9 -9
  19. package/src/scss/core-components/_data-viz.scss +9 -9
  20. package/src/scss/core-components/_detail-panel.scss +1 -1
  21. package/src/scss/core-components/_file-selector.scss +780 -780
  22. package/src/scss/core-components/_filter-card.scss +58 -58
  23. package/src/scss/core-components/_forms.scss +16 -16
  24. package/src/scss/core-components/_grid.scss +293 -293
  25. package/src/scss/core-components/_layout.scss +15 -15
  26. package/src/scss/core-components/_lists.scss +211 -211
  27. package/src/scss/core-components/_loaders.scss +277 -277
  28. package/src/scss/core-components/_logic-tree.scss +280 -280
  29. package/src/scss/core-components/_modals.scss +203 -203
  30. package/src/scss/core-components/_notifications.scss +320 -320
  31. package/src/scss/core-components/_pagers.scss +141 -141
  32. package/src/scss/core-components/_popconfirm.scss +170 -170
  33. package/src/scss/core-components/_profile.scss +405 -405
  34. package/src/scss/core-components/_scrollbars.scss +40 -40
  35. package/src/scss/core-components/_settings-panel.scss +141 -141
  36. package/src/scss/core-components/_statistics.scss +200 -201
  37. package/src/scss/core-components/_tables.scss +900 -900
  38. package/src/scss/core-components/_tabs.scss +504 -504
  39. package/src/scss/core-components/_timeline.scss +589 -589
  40. package/src/scss/core-components/_toasts.scss +425 -425
  41. package/src/scss/core-components/_tooltips.scss +605 -605
  42. package/src/scss/core-components/_utilities.scss +1 -1
  43. package/src/scss/core-components/_web-components-theme.scss +21 -21
  44. package/src/scss/core-components/badges/_badge-base.scss +121 -121
  45. package/src/scss/core-components/badges/_badge-group.scss +25 -25
  46. package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -396
  47. package/src/scss/core-components/badges/_composite-badge.scss +70 -70
  48. package/src/scss/core-components/badges/_index.scss +10 -10
  49. package/src/scss/core-components/badges/_labels.scss +155 -155
  50. package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -205
  51. package/src/scss/core-components/forms/_form-inputs.scss +3 -3
  52. package/src/scss/core-components/forms/_form-layout.scss +66 -66
  53. package/src/scss/core-components/forms/_form-states.scss +115 -115
  54. package/src/scss/core-components/forms/_index.scss +12 -12
  55. package/src/scss/core-components/forms/_input-groups.scss +154 -154
  56. package/src/scss/core-components/forms/_input-wrapper.scss +89 -89
  57. package/src/scss/core-components/forms/_query-editor.scss +313 -313
  58. package/src/scss/core-components/layout/_index.scss +11 -11
  59. package/src/scss/core-components/layout/_layout-container.scss +168 -168
  60. package/src/scss/core-components/layout/_layout-responsive.scss +99 -99
  61. package/src/scss/core-components/layout/_navbar-elements.scss +250 -250
  62. package/src/scss/core-components/layout/_navbar.scss +83 -83
  63. package/src/scss/core-components/layout/_sidebar-states.scss +237 -237
  64. package/src/scss/core-components/layout/_sidebar.scss +234 -234
  65. package/src/scss/main.scss +7 -7
  66. package/src/scss/utilities.scss +740 -740
  67. package/src/scss/variables/_base.scss +228 -228
  68. package/src/scss/variables/_components.scss +748 -748
  69. package/src/scss/variables/_layout.scss +65 -65
  70. package/src/scss/variables/_typography.scss +37 -37
@@ -1,289 +1,289 @@
1
- /* ========================================
2
- Checkbox Lists
3
- Styled checkbox lists with various layouts and features
4
- Uses new .pa-checkbox component for custom tri-state checkboxes
5
- ======================================== */
6
- @use '../variables' as *;
7
-
8
- // Basic checkbox list (vertical stack)
9
- .pa-checkbox-list {
10
- list-style: none;
11
- margin: 0;
12
- padding: 0;
13
- display: flex;
14
- flex-direction: column;
15
-
16
- &__item {
17
- position: relative;
18
- border-bottom: $border-width-base solid var(--pa-border-color);
19
- transition: background-color $transition-fast $easing-snappy;
20
-
21
- &:hover {
22
- background-color: var(--pa-table-hover-bg);
23
- }
24
-
25
- &:last-child {
26
- border-bottom: none;
27
- }
28
- }
29
-
30
- // Label wraps everything for full hitbox - now uses .pa-checkbox internally
31
- &__label {
32
- display: flex;
33
- align-items: center;
34
- padding: $spacing-sm $spacing-md;
35
- margin: 0;
36
- cursor: pointer;
37
- font-size: $font-size-sm;
38
- color: var(--pa-text-color-1);
39
- user-select: none;
40
- width: 100%;
41
-
42
- // When using .pa-checkbox component inside label
43
- .pa-checkbox {
44
- margin-inline-end: $spacing-md; // RTL: flips to left
45
-
46
- // Reset gap since label already provides spacing
47
- gap: 0;
48
- }
49
- }
50
-
51
- // Legacy: Checkbox input (for backwards compatibility)
52
- // New pattern uses .pa-checkbox component inside .pa-checkbox-list__label
53
- &__checkbox {
54
- margin: 0;
55
- margin-inline-end: $spacing-md; // RTL: flips to left
56
- width: $spinner-size;
57
- height: $spinner-size;
58
- cursor: pointer;
59
- flex-shrink: 0;
60
- }
61
-
62
- // Label text wrapper (for description support)
63
- &__text {
64
- flex: 1;
65
- }
66
-
67
- // Optional description/metadata
68
- &__description {
69
- display: block;
70
- margin-top: $spacing-xs;
71
- font-size: $font-size-xs;
72
- color: var(--pa-text-color-2);
73
- }
74
-
75
- // Optional action buttons (outside label, positioned absolutely)
76
- &__actions {
77
- position: absolute;
78
- inset-inline-end: $spacing-md; // RTL: flips to left
79
- top: 50%;
80
- transform: translateY(-50%);
81
- display: flex;
82
- gap: $spacing-xs;
83
- z-index: 1;
84
-
85
- // Prevent label from overlapping actions
86
- pointer-events: none;
87
-
88
- // Re-enable pointer events on buttons
89
- button {
90
- pointer-events: auto;
91
- }
92
- }
93
-
94
- // When item has actions, add padding to label to prevent text overlap
95
- &__item:has(.pa-checkbox-list__actions) &__label {
96
- padding-inline-end: 6rem; // RTL: flips to left - Adjust based on number of action buttons
97
- }
98
- }
99
-
100
- // Compact variant (less padding)
101
- .pa-checkbox-list--compact {
102
- .pa-checkbox-list__label {
103
- padding: $spacing-xs $spacing-sm;
104
- }
105
- }
106
-
107
- // Bordered variant (border around entire list)
108
- .pa-checkbox-list--bordered {
109
- border: $border-width-base solid var(--pa-border-color);
110
- border-radius: $border-radius;
111
-
112
- .pa-checkbox-list__item {
113
- &:first-child {
114
- border-top-left-radius: $border-radius;
115
- border-top-right-radius: $border-radius;
116
- }
117
-
118
- &:last-child {
119
- border-bottom-left-radius: $border-radius;
120
- border-bottom-right-radius: $border-radius;
121
- }
122
- }
123
- }
124
-
125
- // Striped variant (alternating row colors)
126
- .pa-checkbox-list--striped {
127
- .pa-checkbox-list__item:nth-child(even) {
128
- background-color: var(--pa-table-stripe);
129
- }
130
- }
131
-
132
- // Selected state styling
133
- .pa-checkbox-list__item--selected {
134
- background-color: var(--pa-accent-light);
135
-
136
- &:hover {
137
- background-color: var(--pa-accent-light);
138
- }
139
- }
140
-
141
- // Disabled state styling (feature not available)
142
- .pa-checkbox-list__item--disabled {
143
- opacity: 0.5;
144
- cursor: not-allowed;
145
-
146
- &:hover {
147
- background-color: transparent;
148
- }
149
-
150
- .pa-checkbox-list__checkbox,
151
- .pa-checkbox-list__label {
152
- cursor: not-allowed;
153
- }
154
- }
155
-
156
- // Locked state styling (requires permission/authorization)
157
- .pa-checkbox-list__item--locked {
158
- cursor: not-allowed;
159
-
160
- &:hover {
161
- background-color: rgba($warning-bg, 0.05);
162
- }
163
-
164
- .pa-checkbox-list__checkbox {
165
- cursor: not-allowed;
166
- opacity: 0.5;
167
- }
168
-
169
- .pa-checkbox-list__label {
170
- cursor: not-allowed;
171
- position: relative;
172
-
173
- // Add lock icon before text
174
- .pa-checkbox-list__text {
175
- color: $warning-bg;
176
-
177
- &::before {
178
- content: '🔒 ';
179
- font-style: normal;
180
- }
181
- }
182
- }
183
- }
184
-
185
- // Inline layout (horizontal, wrapping)
186
- .pa-checkbox-list--inline {
187
- flex-direction: row;
188
- flex-wrap: wrap;
189
- gap: $spacing-md;
190
-
191
- .pa-checkbox-list__item {
192
- border: $border-width-base solid var(--pa-border-color);
193
- border-radius: $border-radius;
194
- flex: 0 1 auto;
195
-
196
- &:hover {
197
- border-color: var(--pa-accent);
198
- background-color: var(--pa-accent-light);
199
- }
200
- }
201
-
202
- .pa-checkbox-list__label {
203
- padding: $spacing-xs $spacing-sm;
204
- }
205
- }
206
-
207
- // Grid layout (fixed columns)
208
- .pa-checkbox-list--grid {
209
- display: grid;
210
- grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
211
- gap: $spacing-sm;
212
-
213
- .pa-checkbox-list__item {
214
- border: $border-width-base solid var(--pa-border-color);
215
- border-radius: $border-radius;
216
-
217
- &:hover {
218
- border-color: var(--pa-accent);
219
- background-color: var(--pa-accent-light);
220
- }
221
- }
222
- }
223
-
224
- // Two-column layout
225
- .pa-checkbox-list--2col {
226
- display: grid;
227
- grid-template-columns: repeat(2, 1fr);
228
- gap: 0;
229
-
230
- .pa-checkbox-list__item {
231
- &:nth-child(odd) {
232
- border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to left
233
- }
234
- }
235
- }
236
-
237
- // Three-column layout
238
- .pa-checkbox-list--3col {
239
- display: grid;
240
- grid-template-columns: repeat(3, 1fr);
241
- gap: 0;
242
-
243
- .pa-checkbox-list__item {
244
- &:not(:nth-child(3n)) {
245
- border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to left
246
- }
247
- }
248
- }
249
-
250
- // Checkbox in tables (special handling for first column)
251
- .pa-table {
252
- // Checkbox column styling
253
- .pa-table__checkbox-col {
254
- width: 1%;
255
- white-space: nowrap;
256
- text-align: center;
257
- }
258
-
259
- // Custom checkbox (.pa-checkbox) in table cells
260
- th .pa-checkbox,
261
- td .pa-checkbox {
262
- // Remove default gap since table already provides spacing
263
- gap: 0;
264
-
265
- // Hide label text if any (checkbox only in tables)
266
- .pa-checkbox__label {
267
- display: none;
268
- }
269
- }
270
-
271
- // Legacy: Checkbox in header (select all)
272
- th .pa-checkbox-list__checkbox,
273
- th input[type="checkbox"] {
274
- margin: 0;
275
- cursor: pointer;
276
- }
277
-
278
- // Legacy: Checkbox in body cells
279
- td .pa-checkbox-list__checkbox,
280
- td input[type="checkbox"] {
281
- margin: 0;
282
- cursor: pointer;
283
- }
284
-
285
- // Row selection styling
286
- tr.pa-table__row--selected {
287
- background-color: var(--pa-accent-light);
288
- }
289
- }
1
+ /* ========================================
2
+ Checkbox Lists
3
+ Styled checkbox lists with various layouts and features
4
+ Uses new .pa-checkbox component for custom tri-state checkboxes
5
+ ======================================== */
6
+ @use '../variables' as *;
7
+
8
+ // Basic checkbox list (vertical stack)
9
+ .pa-checkbox-list {
10
+ list-style: none;
11
+ margin: 0;
12
+ padding: 0;
13
+ display: flex;
14
+ flex-direction: column;
15
+
16
+ &__item {
17
+ position: relative;
18
+ border-bottom: $border-width-base solid var(--pa-border-color);
19
+ transition: background-color $transition-fast $easing-snappy;
20
+
21
+ &:hover {
22
+ background-color: var(--pa-table-hover-bg);
23
+ }
24
+
25
+ &:last-child {
26
+ border-bottom: none;
27
+ }
28
+ }
29
+
30
+ // Label wraps everything for full hitbox - now uses .pa-checkbox internally
31
+ &__label {
32
+ display: flex;
33
+ align-items: center;
34
+ padding: $spacing-sm $spacing-md;
35
+ margin: 0;
36
+ cursor: pointer;
37
+ font-size: $font-size-sm;
38
+ color: var(--pa-text-color-1);
39
+ user-select: none;
40
+ width: 100%;
41
+
42
+ // When using .pa-checkbox component inside label
43
+ .pa-checkbox {
44
+ margin-inline-end: $spacing-md; // RTL: flips to left
45
+
46
+ // Reset gap since label already provides spacing
47
+ gap: 0;
48
+ }
49
+ }
50
+
51
+ // Legacy: Checkbox input (for backwards compatibility)
52
+ // New pattern uses .pa-checkbox component inside .pa-checkbox-list__label
53
+ &__checkbox {
54
+ margin: 0;
55
+ margin-inline-end: $spacing-md; // RTL: flips to left
56
+ width: $spinner-size;
57
+ height: $spinner-size;
58
+ cursor: pointer;
59
+ flex-shrink: 0;
60
+ }
61
+
62
+ // Label text wrapper (for description support)
63
+ &__text {
64
+ flex: 1;
65
+ }
66
+
67
+ // Optional description/metadata
68
+ &__description {
69
+ display: block;
70
+ margin-top: $spacing-xs;
71
+ font-size: $font-size-xs;
72
+ color: var(--pa-text-color-2);
73
+ }
74
+
75
+ // Optional action buttons (outside label, positioned absolutely)
76
+ &__actions {
77
+ position: absolute;
78
+ inset-inline-end: $spacing-md; // RTL: flips to left
79
+ top: 50%;
80
+ transform: translateY(-50%);
81
+ display: flex;
82
+ gap: $spacing-xs;
83
+ z-index: 1;
84
+
85
+ // Prevent label from overlapping actions
86
+ pointer-events: none;
87
+
88
+ // Re-enable pointer events on buttons
89
+ button {
90
+ pointer-events: auto;
91
+ }
92
+ }
93
+
94
+ // When item has actions, add padding to label to prevent text overlap
95
+ &__item:has(.pa-checkbox-list__actions) &__label {
96
+ padding-inline-end: 6rem; // RTL: flips to left - Adjust based on number of action buttons
97
+ }
98
+ }
99
+
100
+ // Compact variant (less padding)
101
+ .pa-checkbox-list--compact {
102
+ .pa-checkbox-list__label {
103
+ padding: $spacing-xs $spacing-sm;
104
+ }
105
+ }
106
+
107
+ // Bordered variant (border around entire list)
108
+ .pa-checkbox-list--bordered {
109
+ border: $border-width-base solid var(--pa-border-color);
110
+ border-radius: var(--pa-border-radius);
111
+
112
+ .pa-checkbox-list__item {
113
+ &:first-child {
114
+ border-top-left-radius: var(--pa-border-radius);
115
+ border-top-right-radius: var(--pa-border-radius);
116
+ }
117
+
118
+ &:last-child {
119
+ border-bottom-left-radius: var(--pa-border-radius);
120
+ border-bottom-right-radius: var(--pa-border-radius);
121
+ }
122
+ }
123
+ }
124
+
125
+ // Striped variant (alternating row colors)
126
+ .pa-checkbox-list--striped {
127
+ .pa-checkbox-list__item:nth-child(even) {
128
+ background-color: var(--pa-table-stripe);
129
+ }
130
+ }
131
+
132
+ // Selected state styling
133
+ .pa-checkbox-list__item--selected {
134
+ background-color: var(--pa-accent-light);
135
+
136
+ &:hover {
137
+ background-color: var(--pa-accent-light);
138
+ }
139
+ }
140
+
141
+ // Disabled state styling (feature not available)
142
+ .pa-checkbox-list__item--disabled {
143
+ opacity: 0.5;
144
+ cursor: not-allowed;
145
+
146
+ &:hover {
147
+ background-color: transparent;
148
+ }
149
+
150
+ .pa-checkbox-list__checkbox,
151
+ .pa-checkbox-list__label {
152
+ cursor: not-allowed;
153
+ }
154
+ }
155
+
156
+ // Locked state styling (requires permission/authorization)
157
+ .pa-checkbox-list__item--locked {
158
+ cursor: not-allowed;
159
+
160
+ &:hover {
161
+ background-color: rgba($warning-bg, 0.05);
162
+ }
163
+
164
+ .pa-checkbox-list__checkbox {
165
+ cursor: not-allowed;
166
+ opacity: 0.5;
167
+ }
168
+
169
+ .pa-checkbox-list__label {
170
+ cursor: not-allowed;
171
+ position: relative;
172
+
173
+ // Add lock icon before text
174
+ .pa-checkbox-list__text {
175
+ color: $warning-bg;
176
+
177
+ &::before {
178
+ content: '🔒 ';
179
+ font-style: normal;
180
+ }
181
+ }
182
+ }
183
+ }
184
+
185
+ // Inline layout (horizontal, wrapping)
186
+ .pa-checkbox-list--inline {
187
+ flex-direction: row;
188
+ flex-wrap: wrap;
189
+ gap: $spacing-md;
190
+
191
+ .pa-checkbox-list__item {
192
+ border: $border-width-base solid var(--pa-border-color);
193
+ border-radius: var(--pa-border-radius);
194
+ flex: 0 1 auto;
195
+
196
+ &:hover {
197
+ border-color: var(--pa-accent);
198
+ background-color: var(--pa-accent-light);
199
+ }
200
+ }
201
+
202
+ .pa-checkbox-list__label {
203
+ padding: $spacing-xs $spacing-sm;
204
+ }
205
+ }
206
+
207
+ // Grid layout (fixed columns)
208
+ .pa-checkbox-list--grid {
209
+ display: grid;
210
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
211
+ gap: $spacing-sm;
212
+
213
+ .pa-checkbox-list__item {
214
+ border: $border-width-base solid var(--pa-border-color);
215
+ border-radius: var(--pa-border-radius);
216
+
217
+ &:hover {
218
+ border-color: var(--pa-accent);
219
+ background-color: var(--pa-accent-light);
220
+ }
221
+ }
222
+ }
223
+
224
+ // Two-column layout
225
+ .pa-checkbox-list--2col {
226
+ display: grid;
227
+ grid-template-columns: repeat(2, 1fr);
228
+ gap: 0;
229
+
230
+ .pa-checkbox-list__item {
231
+ &:nth-child(odd) {
232
+ border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to left
233
+ }
234
+ }
235
+ }
236
+
237
+ // Three-column layout
238
+ .pa-checkbox-list--3col {
239
+ display: grid;
240
+ grid-template-columns: repeat(3, 1fr);
241
+ gap: 0;
242
+
243
+ .pa-checkbox-list__item {
244
+ &:not(:nth-child(3n)) {
245
+ border-inline-end: $border-width-base solid var(--pa-border-color); // RTL: flips to left
246
+ }
247
+ }
248
+ }
249
+
250
+ // Checkbox in tables (special handling for first column)
251
+ .pa-table {
252
+ // Checkbox column styling
253
+ .pa-table__checkbox-col {
254
+ width: 1%;
255
+ white-space: nowrap;
256
+ text-align: center;
257
+ }
258
+
259
+ // Custom checkbox (.pa-checkbox) in table cells
260
+ th .pa-checkbox,
261
+ td .pa-checkbox {
262
+ // Remove default gap since table already provides spacing
263
+ gap: 0;
264
+
265
+ // Hide label text if any (checkbox only in tables)
266
+ .pa-checkbox__label {
267
+ display: none;
268
+ }
269
+ }
270
+
271
+ // Legacy: Checkbox in header (select all)
272
+ th .pa-checkbox-list__checkbox,
273
+ th input[type="checkbox"] {
274
+ margin: 0;
275
+ cursor: pointer;
276
+ }
277
+
278
+ // Legacy: Checkbox in body cells
279
+ td .pa-checkbox-list__checkbox,
280
+ td input[type="checkbox"] {
281
+ margin: 0;
282
+ cursor: pointer;
283
+ }
284
+
285
+ // Row selection styling
286
+ tr.pa-table__row--selected {
287
+ background-color: var(--pa-accent-light);
288
+ }
289
+ }