@keenmate/pure-admin-core 1.5.0 → 1.5.1

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 CHANGED
@@ -180,6 +180,13 @@ Sizes: `0`, `xs`, `sm`, `md`, `base`, `lg`, `xl`, `2xl`, `auto`
180
180
  - **Theme color variants:** `.pa-card--color-1` through `.pa-card--color-9`
181
181
  - Uses `--pa-color-N` for header background and border
182
182
  - Text color automatically adjusts via `--pa-color-N-text` for readability
183
+ - `.pa-card--ghost` - Invisible container (no background, border, or shadow) — layout wrapper only
184
+ - `.pa-card--stat` - Compact padding for stat cards
185
+ - **Card tabs:**
186
+ - `.pa-card__tabs` - Tab navigation below header
187
+ - `.pa-card__tab` / `.pa-card__tab--active` - Tab buttons
188
+ - `.pa-card__tab-content` / `.pa-card__tab-content--active` - Tab panels
189
+ - `.pa-card__tabs--inline` - Pill-style tabs inside header
183
190
 
184
191
  ### Layout & Sidebar
185
192
  - `.pa-layout` - Main layout container
@@ -380,6 +387,88 @@ Works with both `pa-table` and `web-grid` component. First/last columns automati
380
387
  - `.pa-profile-panel__favorite-item` - Favorite link (with remove button)
381
388
  - `.pa-profile-panel__actions` - Action buttons (Sign Out, etc.)
382
389
 
390
+ ### Data Display
391
+
392
+ Read-only label-value patterns for displaying structured data. All patterns support RTL via CSS logical properties and respond to container width via CSS Container Queries.
393
+
394
+ #### Fields (label-value pairs)
395
+ - `.pa-field` - Single label-value pair
396
+ - `.pa-field__label` - Label element
397
+ - `.pa-field__value` - Value element
398
+ - `.pa-fields` - Container for multiple fields (stacked list)
399
+ - `.pa-fields--cols-2/3/4` - Multi-column grid layout
400
+ - `.pa-fields--horizontal` - Side-by-side label/value layout
401
+ - `.pa-fields--table` - Table-like alignment with fixed label width
402
+ - `.pa-fields--bordered` - Bottom borders between fields
403
+ - `.pa-fields--striped` - Alternating row backgrounds
404
+ - `.pa-fields--compact` - Reduced spacing
405
+ - `.pa-fields--inline` - Inline horizontal flow
406
+ - `.pa-fields--relaxed` - Extra spacing
407
+ - `.pa-fields--row` - Horizontal row with wrapping
408
+ - `.pa-fields--filled` - Tinted label backgrounds
409
+ - `.pa-fields--no-border` - Remove all borders
410
+ - `.pa-fields--linear` - Underline-style fields (label above, value with bottom border)
411
+ - `.pa-fields--chips` - Chip/tag style values with color variants
412
+ - `.pa-fields--color-1` through `--color-9` - Theme color accents
413
+ - `.pa-field--full` - Full-width field spanning all columns
414
+ - `.pa-field--copy-btn/--copy-click/--copy-hover` - Copy-to-clipboard patterns
415
+ - `.pa-field-group` - Group fields under a titled section
416
+ - `.pa-field__value--success/warning/danger` - Semantic chip color variants (with `--chips`)
417
+
418
+ #### Desc Table (CSS Grid description list)
419
+ - `.pa-desc-table` - Grid-based label-value table (auto label width)
420
+ - `.pa-desc-table--cols-2` - Two-column layout
421
+ - `.pa-desc-table--fixed` - Fixed label width (configurable via `--label-width`)
422
+ - `.pa-desc-table--middle` - Vertically center labels and values
423
+ - `.pa-desc-table--label-end` - Right-align labels
424
+ - `.pa-desc-table--label-center` - Center-align labels
425
+ - `.pa-desc-table--truncate` - Truncate overflow with ellipsis
426
+ - `.pa-desc-table__label` - Label cell
427
+ - `.pa-desc-table__value` - Value cell
428
+ - `.pa-desc-table__value--full` - Value spanning full row width
429
+
430
+ #### Dot Leaders (receipt/invoice style)
431
+ - `.pa-dot-leaders` - Container for dot-leader items
432
+ - `.pa-dot-leaders__item` - Single row
433
+ - `.pa-dot-leaders__item--total` - Bold total row with top border
434
+ - `.pa-dot-leaders__label` - Label text
435
+ - `.pa-dot-leaders__leader` - Dotted fill between label and value
436
+ - `.pa-dot-leaders__value` - Right-aligned value
437
+
438
+ #### Property Card (grouped key-value card)
439
+ - `.pa-prop-card` - Self-contained card with header + rows
440
+ - `.pa-prop-card__header` - Colored header bar
441
+ - `.pa-prop-card__row` - Key-value row with bottom border
442
+ - `.pa-prop-card__label` - Row label
443
+ - `.pa-prop-card__value` - Row value
444
+ - `.pa-prop-card__value--bold` - Bold value text
445
+
446
+ #### Banded (label column with tinted background)
447
+ - `.pa-banded` - Container for banded rows
448
+ - `.pa-banded__row` - Horizontal label-value row
449
+ - `.pa-banded__label` - Label with tinted background band
450
+ - `.pa-banded__value` - Value cell
451
+ - `.pa-banded--narrow` - Narrower label column
452
+ - `.pa-banded--wide` - Wider label column
453
+ - `.pa-banded--middle` - Vertically center content
454
+ - `.pa-banded--label-end` - Right-align labels
455
+ - `.pa-banded--label-center` - Center-align labels
456
+ - `.pa-banded--truncate` - Truncate overflow with ellipsis
457
+
458
+ #### Accent Grid (color-coded items)
459
+ - `.pa-accent-grid` - Grid container with color-coded left borders
460
+ - `.pa-accent-grid__item` - Grid item with accent border
461
+ - `.pa-accent-grid__item--success/warning/danger/info` - Semantic color variants
462
+ - `.pa-accent-grid__label` - Item label
463
+ - `.pa-accent-grid__value` - Item value
464
+
465
+ #### Container Query Wrappers
466
+ Wrap data display components in these containers to enable responsive behavior based on the container width (not viewport):
467
+ - `.pa-fields-container` - Container for `.pa-fields` (collapses multi-column to single column)
468
+ - `.pa-desc-container` - Container for `.pa-desc-table` (collapses to narrower layout)
469
+ - `.pa-banded-container` - Container for `.pa-banded` (stacks label above value)
470
+ - `.pa-cq` - General-purpose container query utility (`container-type: inline-size`)
471
+
383
472
  ## Utility Classes
384
473
 
385
474
  ### Flexbox Alignment
package/dist/css/main.css CHANGED
@@ -1935,6 +1935,26 @@
1935
1935
  min-height: 50rem !important;
1936
1936
  }
1937
1937
 
1938
+ .minhr-60 {
1939
+ min-height: 60rem !important;
1940
+ }
1941
+
1942
+ .minhr-70 {
1943
+ min-height: 70rem !important;
1944
+ }
1945
+
1946
+ .minhr-80 {
1947
+ min-height: 80rem !important;
1948
+ }
1949
+
1950
+ .minhr-90 {
1951
+ min-height: 90rem !important;
1952
+ }
1953
+
1954
+ .minhr-100 {
1955
+ min-height: 100rem !important;
1956
+ }
1957
+
1938
1958
  .maxhr-1 {
1939
1959
  max-height: 1rem !important;
1940
1960
  }
@@ -2579,6 +2599,10 @@
2579
2599
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15) !important;
2580
2600
  }
2581
2601
 
2602
+ .pa-cq {
2603
+ container-type: inline-size;
2604
+ }
2605
+
2582
2606
  /* Pure Admin Visual Framework - Core Styles */
2583
2607
  /* ========================================
2584
2608
  Component Imports
@@ -5514,6 +5538,22 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
5514
5538
  .pa-card--stat .pa-card__body {
5515
5539
  padding: 2.4rem 1.6rem;
5516
5540
  }
5541
+ .pa-card--ghost {
5542
+ background: transparent !important;
5543
+ border: none !important;
5544
+ box-shadow: none !important;
5545
+ }
5546
+ .pa-card--ghost:hover {
5547
+ box-shadow: none !important;
5548
+ }
5549
+ .pa-card--ghost .pa-card__header {
5550
+ background: transparent !important;
5551
+ border-bottom: none !important;
5552
+ }
5553
+ .pa-card--ghost .pa-card__footer {
5554
+ background: transparent !important;
5555
+ border-top: none !important;
5556
+ }
5517
5557
  .pa-card--color-1 {
5518
5558
  border-color: var(--pa-color-1);
5519
5559
  }
@@ -10528,6 +10568,11 @@ web-multiselect {
10528
10568
  .pa-table-card:has(.pa-detail-view) .pa-table-card__body {
10529
10569
  position: relative;
10530
10570
  overflow: hidden;
10571
+ display: flex;
10572
+ flex-direction: column;
10573
+ }
10574
+ .pa-table-card:has(.pa-detail-view) .pa-table-card__body .pa-detail-view {
10575
+ flex: 1;
10531
10576
  }
10532
10577
  .pa-table-card__header {
10533
10578
  padding: 0.5rem 1rem;
@@ -13868,6 +13913,9 @@ code {
13868
13913
  background-color: var(--pa-card-bg);
13869
13914
  position: relative;
13870
13915
  }
13916
+ .pa-detail-panel__content--bordered {
13917
+ border-block: 1px solid var(--pa-border-color);
13918
+ }
13871
13919
  .pa-detail-panel--overlay .pa-detail-panel__content {
13872
13920
  position: absolute;
13873
13921
  top: 0;
@@ -13961,6 +14009,7 @@ code {
13961
14009
  .pa-detail-panel__body {
13962
14010
  flex: 1;
13963
14011
  overflow-y: auto;
14012
+ overscroll-behavior: contain;
13964
14013
  padding: 1.2rem 1.6rem;
13965
14014
  }
13966
14015
 
@@ -14283,6 +14332,10 @@ code {
14283
14332
  margin-top: 2.4rem;
14284
14333
  }
14285
14334
 
14335
+ .pa-fields-container {
14336
+ container-type: inline-size;
14337
+ }
14338
+
14286
14339
  .pa-fields {
14287
14340
  display: flex;
14288
14341
  flex-direction: column;
@@ -14303,6 +14356,11 @@ code {
14303
14356
  .pa-fields--cols-4 {
14304
14357
  grid-template-columns: repeat(4, 1fr);
14305
14358
  }
14359
+ @container (max-width: 768px) {
14360
+ .pa-fields--cols-2, .pa-fields--cols-3, .pa-fields--cols-4 {
14361
+ grid-template-columns: 1fr;
14362
+ }
14363
+ }
14306
14364
  @media (max-width: 768px) {
14307
14365
  .pa-fields--cols-2, .pa-fields--cols-3, .pa-fields--cols-4 {
14308
14366
  grid-template-columns: 1fr;
@@ -14376,6 +14434,11 @@ code {
14376
14434
  flex: 1;
14377
14435
  min-width: 0;
14378
14436
  }
14437
+ @container (max-width: 768px) {
14438
+ .pa-fields--row {
14439
+ flex-direction: column;
14440
+ }
14441
+ }
14379
14442
  @media (max-width: 768px) {
14380
14443
  .pa-fields--row {
14381
14444
  flex-direction: column;
@@ -14444,6 +14507,374 @@ code {
14444
14507
  border-inline-start: none;
14445
14508
  padding-inline-start: 0;
14446
14509
  }
14510
+ .pa-fields--linear {
14511
+ gap: 0.8rem;
14512
+ border-inline-start: none;
14513
+ padding-inline-start: 0;
14514
+ }
14515
+ .pa-fields--linear .pa-field {
14516
+ flex-direction: row;
14517
+ align-items: center;
14518
+ gap: 1.2rem;
14519
+ font-size: 1.4rem;
14520
+ line-height: 1.5;
14521
+ min-height: 2.8rem;
14522
+ }
14523
+ .pa-fields--linear .pa-field__label {
14524
+ flex: 0 0 10rem;
14525
+ font-size: 1.4rem;
14526
+ text-transform: none;
14527
+ letter-spacing: normal;
14528
+ opacity: 1;
14529
+ font-weight: 400;
14530
+ color: var(--pa-text-color-2);
14531
+ }
14532
+ .pa-fields--linear .pa-field__value {
14533
+ flex: 1;
14534
+ min-width: 0;
14535
+ font-size: 1.4rem;
14536
+ font-weight: 500;
14537
+ color: var(--pa-text-color-1);
14538
+ }
14539
+ .pa-fields--chips {
14540
+ flex-direction: row;
14541
+ flex-wrap: wrap;
14542
+ gap: 0.6rem 1.4rem;
14543
+ padding: 0.4rem 0;
14544
+ border-inline-start: none;
14545
+ padding-inline-start: 0;
14546
+ }
14547
+ .pa-fields--chips .pa-field {
14548
+ flex-direction: row;
14549
+ align-items: center;
14550
+ gap: 0.5rem;
14551
+ font-size: 1.4rem;
14552
+ }
14553
+ .pa-fields--chips .pa-field__label {
14554
+ font-size: 1.4rem;
14555
+ text-transform: none;
14556
+ letter-spacing: normal;
14557
+ opacity: 1;
14558
+ font-weight: 400;
14559
+ color: var(--pa-text-color-2);
14560
+ }
14561
+ .pa-fields--chips .pa-field__value {
14562
+ background: rgba(128, 128, 128, 0.1);
14563
+ color: var(--pa-text-color-1);
14564
+ font-weight: 500;
14565
+ padding: 0.2rem 0.8rem;
14566
+ border-radius: 4px;
14567
+ font-size: 1.3rem;
14568
+ }
14569
+ .pa-fields--chips .pa-field__value--success {
14570
+ background: var(--pa-success-bg-light, rgba(0, 200, 80, 0.12));
14571
+ color: var(--pa-success-color, #28a745);
14572
+ }
14573
+ .pa-fields--chips .pa-field__value--warning {
14574
+ background: var(--pa-warning-bg-light, rgba(255, 165, 0, 0.12));
14575
+ color: var(--pa-warning-color, #e68a00);
14576
+ }
14577
+ .pa-fields--chips .pa-field__value--danger {
14578
+ background: var(--pa-danger-bg-light, rgba(255, 0, 0, 0.12));
14579
+ color: var(--pa-danger-color, #dc3545);
14580
+ }
14581
+
14582
+ .pa-desc-container {
14583
+ container-type: inline-size;
14584
+ }
14585
+
14586
+ .pa-desc-table {
14587
+ display: grid;
14588
+ grid-template-columns: repeat(3, auto 1fr);
14589
+ border: 1px solid var(--pa-border-color);
14590
+ border-radius: 4px;
14591
+ overflow: hidden;
14592
+ }
14593
+ .pa-desc-table--cols-2 {
14594
+ grid-template-columns: repeat(2, auto 1fr);
14595
+ }
14596
+ .pa-desc-table--fixed {
14597
+ grid-template-columns: repeat(3, minmax(0, var(--label-width, 14rem)) minmax(0, 1fr));
14598
+ }
14599
+ .pa-desc-table--fixed.pa-desc-table--cols-2 {
14600
+ grid-template-columns: repeat(2, minmax(0, var(--label-width, 14rem)) minmax(0, 1fr));
14601
+ }
14602
+ .pa-desc-table__label, .pa-desc-table__value {
14603
+ padding: 1.2rem 1.6rem;
14604
+ border-bottom: 1px solid var(--pa-border-color);
14605
+ font-size: 1.4rem;
14606
+ line-height: 1.5;
14607
+ }
14608
+ .pa-desc-table__label {
14609
+ background: rgba(128, 128, 128, 0.06);
14610
+ color: var(--pa-text-color-2);
14611
+ font-weight: 400;
14612
+ white-space: nowrap;
14613
+ border-inline-end: 1px solid var(--pa-border-color);
14614
+ }
14615
+ .pa-desc-table__label::after {
14616
+ content: ":";
14617
+ margin-inline-start: 2px;
14618
+ }
14619
+ .pa-desc-table__value {
14620
+ color: var(--pa-text-color-1);
14621
+ font-weight: 500;
14622
+ border-inline-end: 1px solid var(--pa-border-color);
14623
+ min-width: 0;
14624
+ }
14625
+ .pa-desc-table__value--full {
14626
+ grid-column: 2/-1;
14627
+ }
14628
+ .pa-desc-table--middle .pa-desc-table__label, .pa-desc-table--middle .pa-desc-table__value {
14629
+ display: flex;
14630
+ align-items: center;
14631
+ }
14632
+ .pa-desc-table--label-end .pa-desc-table__label {
14633
+ text-align: end;
14634
+ justify-content: flex-end;
14635
+ }
14636
+ .pa-desc-table--label-center .pa-desc-table__label {
14637
+ text-align: center;
14638
+ justify-content: center;
14639
+ }
14640
+ .pa-desc-table--truncate .pa-desc-table__label, .pa-desc-table--truncate .pa-desc-table__value {
14641
+ overflow: hidden;
14642
+ text-overflow: ellipsis;
14643
+ white-space: nowrap;
14644
+ }
14645
+ @container (max-width: 768px) {
14646
+ .pa-desc-table, .pa-desc-table--cols-2 {
14647
+ grid-template-columns: auto 1fr;
14648
+ }
14649
+ .pa-desc-table--fixed, .pa-desc-table--fixed.pa-desc-table--cols-2 {
14650
+ grid-template-columns: minmax(0, var(--label-width, 14rem)) minmax(0, 1fr);
14651
+ }
14652
+ .pa-desc-table .pa-desc-table__value--full {
14653
+ grid-column: 2;
14654
+ }
14655
+ }
14656
+ @media (max-width: 768px) {
14657
+ .pa-desc-table, .pa-desc-table--cols-2 {
14658
+ grid-template-columns: auto 1fr;
14659
+ }
14660
+ .pa-desc-table--fixed, .pa-desc-table--fixed.pa-desc-table--cols-2 {
14661
+ grid-template-columns: minmax(0, var(--label-width, 14rem)) minmax(0, 1fr);
14662
+ }
14663
+ .pa-desc-table .pa-desc-table__value--full {
14664
+ grid-column: 2;
14665
+ }
14666
+ }
14667
+
14668
+ .pa-dot-leaders {
14669
+ display: flex;
14670
+ flex-direction: column;
14671
+ gap: 0;
14672
+ }
14673
+ .pa-dot-leaders__item {
14674
+ display: flex;
14675
+ align-items: baseline;
14676
+ padding: 0.6rem 0;
14677
+ }
14678
+ .pa-dot-leaders__item--total {
14679
+ margin-top: 0.4rem;
14680
+ padding-top: 0.8rem;
14681
+ border-top: 2px solid var(--pa-text-color-1);
14682
+ }
14683
+ .pa-dot-leaders__label {
14684
+ font-size: 1.4rem;
14685
+ font-weight: 500;
14686
+ color: var(--pa-text-color-2);
14687
+ white-space: nowrap;
14688
+ flex-shrink: 0;
14689
+ }
14690
+ .pa-dot-leaders__leader {
14691
+ flex: 1;
14692
+ border-bottom: 2px dotted var(--pa-border-color);
14693
+ margin: 0 0.8rem;
14694
+ margin-bottom: 0.25em;
14695
+ min-width: 2rem;
14696
+ }
14697
+ .pa-dot-leaders__value {
14698
+ font-size: 1.4rem;
14699
+ font-weight: 600;
14700
+ color: var(--pa-text-color-1);
14701
+ white-space: nowrap;
14702
+ text-align: end;
14703
+ font-variant-numeric: tabular-nums;
14704
+ }
14705
+ .pa-dot-leaders__item--total .pa-dot-leaders__label {
14706
+ font-weight: 700;
14707
+ color: var(--pa-text-color-1);
14708
+ }
14709
+ .pa-dot-leaders__item--total .pa-dot-leaders__value {
14710
+ font-size: 1.6rem;
14711
+ font-weight: 700;
14712
+ }
14713
+
14714
+ .pa-prop-card {
14715
+ border: 1px solid var(--pa-border-color);
14716
+ border-radius: 6px;
14717
+ overflow: hidden;
14718
+ }
14719
+ .pa-prop-card__header {
14720
+ padding: 1rem 1.6rem;
14721
+ font-weight: 600;
14722
+ font-size: 1.3rem;
14723
+ text-transform: uppercase;
14724
+ letter-spacing: 0.04em;
14725
+ color: var(--pa-text-color-2);
14726
+ background: rgba(128, 128, 128, 0.04);
14727
+ border-bottom: 1px solid var(--pa-border-color);
14728
+ }
14729
+ .pa-prop-card__row {
14730
+ display: flex;
14731
+ justify-content: space-between;
14732
+ align-items: center;
14733
+ padding: 1rem 1.6rem;
14734
+ border-bottom: 1px solid rgba(128, 128, 128, 0.08);
14735
+ font-size: 1.4rem;
14736
+ gap: 1.6rem;
14737
+ }
14738
+ .pa-prop-card__row:last-child {
14739
+ border-bottom: none;
14740
+ }
14741
+ .pa-prop-card__label {
14742
+ color: var(--pa-text-color-2);
14743
+ font-weight: 400;
14744
+ flex-shrink: 0;
14745
+ }
14746
+ .pa-prop-card__value {
14747
+ color: var(--pa-text-color-1);
14748
+ font-weight: 500;
14749
+ text-align: end;
14750
+ overflow-wrap: anywhere;
14751
+ }
14752
+ .pa-prop-card__value--bold {
14753
+ font-weight: 700;
14754
+ }
14755
+
14756
+ .pa-banded-container {
14757
+ container-type: inline-size;
14758
+ }
14759
+
14760
+ .pa-banded {
14761
+ border: 1px solid var(--pa-border-color);
14762
+ border-radius: 4px;
14763
+ overflow: hidden;
14764
+ }
14765
+ .pa-banded__row {
14766
+ display: flex;
14767
+ border-bottom: 1px solid var(--pa-border-color);
14768
+ font-size: 1.4rem;
14769
+ align-items: stretch;
14770
+ }
14771
+ .pa-banded__row:last-child {
14772
+ border-bottom: none;
14773
+ }
14774
+ .pa-banded__label {
14775
+ flex: 0 0 auto;
14776
+ width: 14rem;
14777
+ padding: 0.8rem 1.2rem;
14778
+ background: rgba(128, 128, 128, 0.06);
14779
+ color: var(--pa-text-color-2);
14780
+ font-weight: 500;
14781
+ border-inline-end: 1px solid var(--pa-border-color);
14782
+ display: flex;
14783
+ align-items: flex-start;
14784
+ }
14785
+ .pa-banded__value {
14786
+ flex: 1;
14787
+ padding: 0.8rem 1.2rem;
14788
+ color: var(--pa-text-color-1);
14789
+ font-weight: 400;
14790
+ display: flex;
14791
+ align-items: flex-start;
14792
+ overflow-wrap: anywhere;
14793
+ min-width: 0;
14794
+ }
14795
+ .pa-banded--narrow .pa-banded__label {
14796
+ width: 10rem;
14797
+ }
14798
+ .pa-banded--wide .pa-banded__label {
14799
+ width: 20rem;
14800
+ }
14801
+ .pa-banded--middle .pa-banded__label, .pa-banded--middle .pa-banded__value {
14802
+ align-items: center;
14803
+ }
14804
+ .pa-banded--label-end .pa-banded__label {
14805
+ justify-content: flex-end;
14806
+ }
14807
+ .pa-banded--label-center .pa-banded__label {
14808
+ justify-content: center;
14809
+ }
14810
+ .pa-banded--truncate .pa-banded__label, .pa-banded--truncate .pa-banded__value {
14811
+ overflow: hidden;
14812
+ text-overflow: ellipsis;
14813
+ white-space: nowrap;
14814
+ }
14815
+ @container (max-width: 768px) {
14816
+ .pa-banded__row {
14817
+ flex-direction: column;
14818
+ }
14819
+ .pa-banded .pa-banded__label {
14820
+ width: auto !important;
14821
+ border-inline-end: none;
14822
+ border-bottom: 1px solid var(--pa-border-color);
14823
+ }
14824
+ .pa-banded .pa-banded__label, .pa-banded .pa-banded__value {
14825
+ display: block;
14826
+ }
14827
+ }
14828
+ @media (max-width: 768px) {
14829
+ .pa-banded__row {
14830
+ flex-direction: column;
14831
+ }
14832
+ .pa-banded .pa-banded__label {
14833
+ width: auto !important;
14834
+ border-inline-end: none;
14835
+ border-bottom: 1px solid var(--pa-border-color);
14836
+ }
14837
+ .pa-banded .pa-banded__label, .pa-banded .pa-banded__value {
14838
+ display: block;
14839
+ }
14840
+ }
14841
+
14842
+ .pa-accent-grid {
14843
+ display: grid;
14844
+ grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
14845
+ gap: 0.8rem;
14846
+ }
14847
+ .pa-accent-grid__item {
14848
+ padding: 0.8rem 1.2rem;
14849
+ padding-inline-start: 1.4rem;
14850
+ border-inline-start: 3px solid var(--pa-accent, #3b82f6);
14851
+ }
14852
+ .pa-accent-grid__item--success {
14853
+ border-inline-start-color: var(--pa-success-color, #28a745);
14854
+ }
14855
+ .pa-accent-grid__item--warning {
14856
+ border-inline-start-color: var(--pa-warning-color, #e68a00);
14857
+ }
14858
+ .pa-accent-grid__item--danger {
14859
+ border-inline-start-color: var(--pa-danger-color, #dc3545);
14860
+ }
14861
+ .pa-accent-grid__item--info {
14862
+ border-inline-start-color: var(--pa-info-color, #17a2b8);
14863
+ }
14864
+ .pa-accent-grid__label {
14865
+ font-size: 1.1rem;
14866
+ font-weight: 500;
14867
+ color: var(--pa-text-color-2);
14868
+ margin-bottom: 0.2rem;
14869
+ text-transform: uppercase;
14870
+ letter-spacing: 0.03em;
14871
+ }
14872
+ .pa-accent-grid__value {
14873
+ font-size: 1.5rem;
14874
+ font-weight: 600;
14875
+ color: var(--pa-text-color-1);
14876
+ line-height: 1.2;
14877
+ }
14447
14878
 
14448
14879
  /* ========================================
14449
14880
  Utility Components
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keenmate/pure-admin-core",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "Lightweight, data-focused HTML/CSS admin framework built with PureCSS foundation and comprehensive component system",
5
5
  "style": "dist/css/main.css",
6
6
  "exports": {
@@ -254,6 +254,29 @@
254
254
  }
255
255
  }
256
256
 
257
+ // Ghost card - invisible container, same spacing/sizing behavior
258
+ // Uses !important to beat dark-mode scoped overrides like
259
+ // `.pa-mode-dark .pa-card { box-shadow: ... }` which have (0,2,0) specificity
260
+ &--ghost {
261
+ background: transparent !important;
262
+ border: none !important;
263
+ box-shadow: none !important;
264
+
265
+ &:hover {
266
+ box-shadow: none !important;
267
+ }
268
+
269
+ .pa-card__header {
270
+ background: transparent !important;
271
+ border-bottom: none !important;
272
+ }
273
+
274
+ .pa-card__footer {
275
+ background: transparent !important;
276
+ border-top: none !important;
277
+ }
278
+ }
279
+
257
280
  // Theme color variants (color-1 through color-9)
258
281
  // These use theme-customizable colors from --pa-color-* CSS variables
259
282
  @for $i from 1 through 9 {