@keenmate/pure-admin-core 1.0.0-rc03 → 1.0.0-rc05

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.
@@ -319,6 +319,203 @@ $spacers: (
319
319
  height: auto !important;
320
320
  }
321
321
 
322
+ // ============================================================================
323
+ // REM-BASED SIZING UTILITIES
324
+ // Use 'r' suffix to distinguish from percentage-based utilities
325
+ // Values: 1-10, 15, 20, 25 (rem)
326
+ // ============================================================================
327
+
328
+ // Width (rem)
329
+ .wr-1 { width: 1rem !important; }
330
+ .wr-2 { width: 2rem !important; }
331
+ .wr-3 { width: 3rem !important; }
332
+ .wr-4 { width: 4rem !important; }
333
+ .wr-5 { width: 5rem !important; }
334
+ .wr-6 { width: 6rem !important; }
335
+ .wr-7 { width: 7rem !important; }
336
+ .wr-8 { width: 8rem !important; }
337
+ .wr-9 { width: 9rem !important; }
338
+ .wr-10 { width: 10rem !important; }
339
+ .wr-15 { width: 15rem !important; }
340
+ .wr-20 { width: 20rem !important; }
341
+ .wr-25 { width: 25rem !important; }
342
+
343
+ // Min-width (rem)
344
+ .minwr-1 { min-width: 1rem !important; }
345
+ .minwr-2 { min-width: 2rem !important; }
346
+ .minwr-3 { min-width: 3rem !important; }
347
+ .minwr-4 { min-width: 4rem !important; }
348
+ .minwr-5 { min-width: 5rem !important; }
349
+ .minwr-6 { min-width: 6rem !important; }
350
+ .minwr-7 { min-width: 7rem !important; }
351
+ .minwr-8 { min-width: 8rem !important; }
352
+ .minwr-9 { min-width: 9rem !important; }
353
+ .minwr-10 { min-width: 10rem !important; }
354
+ .minwr-15 { min-width: 15rem !important; }
355
+ .minwr-20 { min-width: 20rem !important; }
356
+ .minwr-25 { min-width: 25rem !important; }
357
+
358
+ // Max-width (rem)
359
+ .maxwr-1 { max-width: 1rem !important; }
360
+ .maxwr-2 { max-width: 2rem !important; }
361
+ .maxwr-3 { max-width: 3rem !important; }
362
+ .maxwr-4 { max-width: 4rem !important; }
363
+ .maxwr-5 { max-width: 5rem !important; }
364
+ .maxwr-6 { max-width: 6rem !important; }
365
+ .maxwr-7 { max-width: 7rem !important; }
366
+ .maxwr-8 { max-width: 8rem !important; }
367
+ .maxwr-9 { max-width: 9rem !important; }
368
+ .maxwr-10 { max-width: 10rem !important; }
369
+ .maxwr-15 { max-width: 15rem !important; }
370
+ .maxwr-20 { max-width: 20rem !important; }
371
+ .maxwr-25 { max-width: 25rem !important; }
372
+
373
+ // Height (rem)
374
+ .hr-1 { height: 1rem !important; }
375
+ .hr-2 { height: 2rem !important; }
376
+ .hr-3 { height: 3rem !important; }
377
+ .hr-4 { height: 4rem !important; }
378
+ .hr-5 { height: 5rem !important; }
379
+ .hr-6 { height: 6rem !important; }
380
+ .hr-7 { height: 7rem !important; }
381
+ .hr-8 { height: 8rem !important; }
382
+ .hr-9 { height: 9rem !important; }
383
+ .hr-10 { height: 10rem !important; }
384
+ .hr-15 { height: 15rem !important; }
385
+ .hr-20 { height: 20rem !important; }
386
+ .hr-25 { height: 25rem !important; }
387
+
388
+ // Min-height (rem)
389
+ .minhr-1 { min-height: 1rem !important; }
390
+ .minhr-2 { min-height: 2rem !important; }
391
+ .minhr-3 { min-height: 3rem !important; }
392
+ .minhr-4 { min-height: 4rem !important; }
393
+ .minhr-5 { min-height: 5rem !important; }
394
+ .minhr-6 { min-height: 6rem !important; }
395
+ .minhr-7 { min-height: 7rem !important; }
396
+ .minhr-8 { min-height: 8rem !important; }
397
+ .minhr-9 { min-height: 9rem !important; }
398
+ .minhr-10 { min-height: 10rem !important; }
399
+ .minhr-15 { min-height: 15rem !important; }
400
+ .minhr-20 { min-height: 20rem !important; }
401
+ .minhr-25 { min-height: 25rem !important; }
402
+
403
+ // Max-height (rem)
404
+ .maxhr-1 { max-height: 1rem !important; }
405
+ .maxhr-2 { max-height: 2rem !important; }
406
+ .maxhr-3 { max-height: 3rem !important; }
407
+ .maxhr-4 { max-height: 4rem !important; }
408
+ .maxhr-5 { max-height: 5rem !important; }
409
+ .maxhr-6 { max-height: 6rem !important; }
410
+ .maxhr-7 { max-height: 7rem !important; }
411
+ .maxhr-8 { max-height: 8rem !important; }
412
+ .maxhr-9 { max-height: 9rem !important; }
413
+ .maxhr-10 { max-height: 10rem !important; }
414
+ .maxhr-15 { max-height: 15rem !important; }
415
+ .maxhr-20 { max-height: 20rem !important; }
416
+ .maxhr-25 { max-height: 25rem !important; }
417
+
418
+ // ============================================================================
419
+ // PERCENTAGE-BASED MIN/MAX UTILITIES
420
+ // Extends existing w-* and h-* utilities with min/max variants
421
+ // ============================================================================
422
+
423
+ // Min-width (percentage) - 5% increments
424
+ .minw-5 { min-width: 5% !important; }
425
+ .minw-10 { min-width: 10% !important; }
426
+ .minw-15 { min-width: 15% !important; }
427
+ .minw-20 { min-width: 20% !important; }
428
+ .minw-25 { min-width: 25% !important; }
429
+ .minw-30 { min-width: 30% !important; }
430
+ .minw-35 { min-width: 35% !important; }
431
+ .minw-40 { min-width: 40% !important; }
432
+ .minw-45 { min-width: 45% !important; }
433
+ .minw-50 { min-width: 50% !important; }
434
+ .minw-55 { min-width: 55% !important; }
435
+ .minw-60 { min-width: 60% !important; }
436
+ .minw-65 { min-width: 65% !important; }
437
+ .minw-70 { min-width: 70% !important; }
438
+ .minw-75 { min-width: 75% !important; }
439
+ .minw-80 { min-width: 80% !important; }
440
+ .minw-85 { min-width: 85% !important; }
441
+ .minw-90 { min-width: 90% !important; }
442
+ .minw-95 { min-width: 95% !important; }
443
+ .minw-100 { min-width: 100% !important; }
444
+ .minw-1-3 { min-width: 33.333333% !important; }
445
+ .minw-2-3 { min-width: 66.666667% !important; }
446
+
447
+ // Max-width (percentage) - 5% increments
448
+ .maxw-5 { max-width: 5% !important; }
449
+ .maxw-10 { max-width: 10% !important; }
450
+ .maxw-15 { max-width: 15% !important; }
451
+ .maxw-20 { max-width: 20% !important; }
452
+ .maxw-25 { max-width: 25% !important; }
453
+ .maxw-30 { max-width: 30% !important; }
454
+ .maxw-35 { max-width: 35% !important; }
455
+ .maxw-40 { max-width: 40% !important; }
456
+ .maxw-45 { max-width: 45% !important; }
457
+ .maxw-50 { max-width: 50% !important; }
458
+ .maxw-55 { max-width: 55% !important; }
459
+ .maxw-60 { max-width: 60% !important; }
460
+ .maxw-65 { max-width: 65% !important; }
461
+ .maxw-70 { max-width: 70% !important; }
462
+ .maxw-75 { max-width: 75% !important; }
463
+ .maxw-80 { max-width: 80% !important; }
464
+ .maxw-85 { max-width: 85% !important; }
465
+ .maxw-90 { max-width: 90% !important; }
466
+ .maxw-95 { max-width: 95% !important; }
467
+ .maxw-100 { max-width: 100% !important; }
468
+ .maxw-1-3 { max-width: 33.333333% !important; }
469
+ .maxw-2-3 { max-width: 66.666667% !important; }
470
+
471
+ // Min-height (percentage)
472
+ .minh-5 { min-height: 5% !important; }
473
+ .minh-10 { min-height: 10% !important; }
474
+ .minh-15 { min-height: 15% !important; }
475
+ .minh-20 { min-height: 20% !important; }
476
+ .minh-25 { min-height: 25% !important; }
477
+ .minh-30 { min-height: 30% !important; }
478
+ .minh-35 { min-height: 35% !important; }
479
+ .minh-40 { min-height: 40% !important; }
480
+ .minh-45 { min-height: 45% !important; }
481
+ .minh-50 { min-height: 50% !important; }
482
+ .minh-55 { min-height: 55% !important; }
483
+ .minh-60 { min-height: 60% !important; }
484
+ .minh-65 { min-height: 65% !important; }
485
+ .minh-70 { min-height: 70% !important; }
486
+ .minh-75 { min-height: 75% !important; }
487
+ .minh-80 { min-height: 80% !important; }
488
+ .minh-85 { min-height: 85% !important; }
489
+ .minh-90 { min-height: 90% !important; }
490
+ .minh-95 { min-height: 95% !important; }
491
+ .minh-100 { min-height: 100% !important; }
492
+ .minh-1-3 { min-height: 33.333333% !important; }
493
+ .minh-2-3 { min-height: 66.666667% !important; }
494
+
495
+ // Max-height (percentage)
496
+ .maxh-5 { max-height: 5% !important; }
497
+ .maxh-10 { max-height: 10% !important; }
498
+ .maxh-15 { max-height: 15% !important; }
499
+ .maxh-20 { max-height: 20% !important; }
500
+ .maxh-25 { max-height: 25% !important; }
501
+ .maxh-30 { max-height: 30% !important; }
502
+ .maxh-35 { max-height: 35% !important; }
503
+ .maxh-40 { max-height: 40% !important; }
504
+ .maxh-45 { max-height: 45% !important; }
505
+ .maxh-50 { max-height: 50% !important; }
506
+ .maxh-55 { max-height: 55% !important; }
507
+ .maxh-60 { max-height: 60% !important; }
508
+ .maxh-65 { max-height: 65% !important; }
509
+ .maxh-70 { max-height: 70% !important; }
510
+ .maxh-75 { max-height: 75% !important; }
511
+ .maxh-80 { max-height: 80% !important; }
512
+ .maxh-85 { max-height: 85% !important; }
513
+ .maxh-90 { max-height: 90% !important; }
514
+ .maxh-95 { max-height: 95% !important; }
515
+ .maxh-100 { max-height: 100% !important; }
516
+ .maxh-1-3 { max-height: 33.333333% !important; }
517
+ .maxh-2-3 { max-height: 66.666667% !important; }
518
+
322
519
  // Position utilities
323
520
  .position-static {
324
521
  position: static !important;
@@ -3,6 +3,7 @@
3
3
  // Component-specific dimensions, paddings, and settings
4
4
  // ============================================================================
5
5
 
6
+ @use 'base' as *;
6
7
  @use 'layout' as *;
7
8
  @use 'typography' as *;
8
9
  @use 'spacing' as *;
@@ -48,27 +49,20 @@ $composite-badge-label-hover-bg: $secondary-lighter-bg !default;
48
49
  // ============================================================================
49
50
  // BUTTON SYSTEM
50
51
  // ============================================================================
51
- $btn-group-gap: 0.32rem !default; // 3.2px - default gap
52
- $btn-group-gap-compact: 0.16rem !default; // 1.6px - tight grouping
53
- $btn-group-gap-loose: 0.8rem !default; // 8px - spacious grouping
54
-
55
- // Button specific - linear size progression (10px base)
56
- $btn-padding-v: 0.8rem !default; // 8px (was 0.5rem)
57
- $btn-padding-h: 1.2rem !default; // 12px (was 0.75rem)
58
- $btn-padding-xs-v: 0.4rem !default; // 4px (was 0.25rem)
59
- $btn-padding-xs-h: 0.8rem !default; // 8px (was 0.5rem)
60
- $btn-padding-sm-v: 0.6rem !default; // 6px (was 0.375rem)
61
- $btn-padding-sm-h: 1rem !default; // 10px (was 0.625rem)
62
- $btn-padding-lg-v: 1rem !default; // 10px (was 0.625rem)
63
- $btn-padding-lg-h: 1.4rem !default; // 14px (was 0.875rem)
64
- $btn-padding-xl-v: 1.2rem !default; // 12px (was 0.75rem)
65
- $btn-padding-xl-h: 1.6rem !default; // 16px (was 1rem)
52
+ $btn-group-gap: 0.3rem !default; // 3px - default gap (use gap-* utilities for other sizes)
53
+
54
+ // Button specific - vertical padding matches input padding for height alignment
55
+ $btn-padding-v: 0.8rem !default; // 8px - matches input default
56
+ $btn-padding-h: 1.2rem !default; // 12px
57
+ $btn-padding-xs-v: 0.6rem !default; // 6px - matches input-xs
58
+ $btn-padding-xs-h: 0.8rem !default; // 8px
59
+ $btn-padding-sm-v: 0.8rem !default; // 8px - matches input default
60
+ $btn-padding-sm-h: 1rem !default; // 10px
61
+ $btn-padding-lg-v: 0.8rem !default; // 8px - matches input default
62
+ $btn-padding-lg-h: 1.4rem !default; // 14px
63
+ $btn-padding-xl-v: 0.8rem !default; // 8px - matches input default
64
+ $btn-padding-xl-h: 1.6rem !default; // 16px
66
65
  $btn-border-width: 1px !default;
67
- $btn-icon-only-size-xs: 2.8rem !default; // 28px (was 1.75rem)
68
- $btn-icon-only-size-sm: 3.2rem !default; // 32px (was 2rem)
69
- $btn-icon-only-size: 4rem !default; // 40px (was 2.5rem)
70
- $btn-icon-only-size-lg: 4.8rem !default; // 48px (was 3rem)
71
- $btn-icon-only-size-xl: 5.6rem !default; // 56px (was 3.5rem)
72
66
  $btn-icon-margin: 0.8rem !default; // 8px (was 0.5rem)
73
67
  $btn-min-width: 9.6rem !default; // 96px (was 6rem)
74
68
 
@@ -90,6 +84,21 @@ $btn-hover-brightness: 0.9 !default;
90
84
  $btn-disabled-opacity: $opacity-disabled !default;
91
85
  $btn-focus-ring-opacity: 0.25 !default;
92
86
 
87
+ // Button heights - aligned with input heights (source of truth from _base.scss)
88
+ // These are used for icon-only buttons and table cell heights
89
+ $btn-height-xs: #{$base-input-size-xs-height}rem !default; // 31px
90
+ $btn-height-sm: #{$base-input-size-sm-height}rem !default; // 33px
91
+ $btn-height-base: #{$base-input-size-md-height}rem !default; // 35px
92
+ $btn-height-lg: #{$base-input-size-lg-height}rem !default; // 38px
93
+ $btn-height-xl: #{$base-input-size-xl-height}rem !default; // 41px
94
+
95
+ // Icon-only button sizes - match button heights (aligned with inputs)
96
+ $btn-icon-only-size-xs: $btn-height-xs !default;
97
+ $btn-icon-only-size-sm: $btn-height-sm !default;
98
+ $btn-icon-only-size: $btn-height-base !default;
99
+ $btn-icon-only-size-lg: $btn-height-lg !default;
100
+ $btn-icon-only-size-xl: $btn-height-xl !default;
101
+
93
102
  // ============================================================================
94
103
  // MODAL SYSTEM
95
104
  // ============================================================================
@@ -139,13 +148,16 @@ $profile-button-padding-v: $spacing-sm !default;
139
148
  $profile-button-padding-h: $spacing-md !default;
140
149
  $profile-role-letter-spacing: 0.5px !default;
141
150
  $profile-panel-mobile-max-width: 40rem !default; // 400px (was 25rem)
151
+ $profile-panel-content-padding: 1.6rem !default; // Matches sidebar-padding horizontal (16px)
142
152
 
143
153
  // ============================================================================
144
154
  // CARD SYSTEM
145
155
  // ============================================================================
156
+ $card-border-width: $border-width-base !default; // Card outer border (themes can override)
157
+ $card-border-radius: $border-radius-lg !default; // Controls card + header corners
146
158
  $card-body-padding-v: 1.6rem !default; // 16px vertical
147
159
  $card-body-padding-h: 1rem !default; // 10px horizontal
148
- $card-header-padding-v: 0.8rem !default; // 8px vertical
160
+ $card-header-padding-v: 0.5rem !default; // 5px vertical
149
161
  $card-header-padding-h: 1rem !default; // 10px horizontal - matches body
150
162
  $card-header-min-height: 4rem !default; // 40px - fits xs buttons (32px) with padding
151
163
  $card-footer-padding-v: 1.2rem !default; // 12px vertical
@@ -154,13 +166,39 @@ $card-grid-min-width: 280px !default;
154
166
  $card-stat-padding-v: $spacing-lg !default;
155
167
  $card-stat-padding-h: $spacing-base !default;
156
168
 
169
+ // Card inline tabs (tabs inside header)
170
+ $card-tab-inline-padding-v: 0.3rem !default; // 3px - compact for header
171
+ $card-tab-inline-padding-h: 0.8rem !default; // 8px
172
+ $card-tab-hover-opacity: 0.1 !default;
173
+
157
174
  // ============================================================================
158
175
  // TABLE SYSTEM
159
176
  // ============================================================================
160
- $table-padding-base-v: 0.5rem !default; // 5px (was 0.3rem ~ 4.8px)
161
- $table-padding-base-h: 0.8rem !default; // 8px (was 0.5rem)
162
- $table-spacing-2x-multiplier: 2 !default;
163
- $table-spacing-3x-multiplier: 3 !default;
177
+ // Table base padding (matches button/input default)
178
+ $table-padding-base-v: 0.8rem !default; // 8px - matches button SM/default
179
+ $table-padding-base-h: 0.8rem !default; // 8px
180
+
181
+ // Table size variants - synchronized with button/input sizes
182
+ $table-padding-xs-v: $btn-padding-xs-v !default; // 0.6rem
183
+ $table-padding-xs-h: $btn-padding-xs-h !default; // 0.8rem
184
+ $table-padding-sm-v: $btn-padding-sm-v !default; // 0.8rem
185
+ $table-padding-sm-h: $btn-padding-sm-h !default; // 1rem
186
+ $table-padding-lg-v: $btn-padding-lg-v !default; // 0.8rem
187
+ $table-padding-lg-h: $btn-padding-lg-h !default; // 1.4rem
188
+ $table-padding-xl-v: $btn-padding-xl-v !default; // 0.8rem
189
+ $table-padding-xl-h: $btn-padding-xl-h !default; // 1.6rem
190
+
191
+ // Table cell heights - button height + size-specific buffer
192
+ $table-cell-height-buffer-xs: 0.7rem !default;
193
+ $table-cell-height-buffer-sm: 0.8rem !default;
194
+ $table-cell-height-buffer-lg: 0.8rem !default;
195
+ $table-cell-height-buffer-xl: 0.8rem !default;
196
+
197
+ $table-cell-height-xs: $btn-height-xs + $table-cell-height-buffer-xs !default;
198
+ $table-cell-height: $btn-height-base + $table-cell-height-buffer-sm !default;
199
+ $table-cell-height-sm: $btn-height-sm + $table-cell-height-buffer-sm !default;
200
+ $table-cell-height-lg: $btn-height-lg + $table-cell-height-buffer-lg !default;
201
+ $table-cell-height-xl: $btn-height-xl + $table-cell-height-buffer-xl !default;
164
202
 
165
203
  // Virtual table (for large datasets)
166
204
  $virtual-table-cell-padding-v: 0.5rem !default; // 5px (was 0.3rem)
@@ -190,9 +228,9 @@ $input-focus-ring-opacity: 0.1 !default;
190
228
  $input-focus-border-color: $accent-color !default;
191
229
  $select-focus-border-color: $accent-color !default;
192
230
  $textarea-focus-border-color: $accent-color !default;
193
- $input-group-prepend-bg: $primary-bg !default;
231
+ $input-group-prepend-bg: $secondary-bg !default;
194
232
  $input-group-prepend-text: $text-secondary !default;
195
- $input-group-append-bg: $primary-bg !default;
233
+ $input-group-append-bg: $secondary-bg !default;
196
234
  $input-group-append-text: $text-secondary !default;
197
235
  $checkbox-margin-top: 0.2rem !default; // 2px (was 0.125rem)
198
236
  $checkbox-size-xs: 1.2rem !default; // 12px (was 0.75rem)