@keenmate/pure-admin-core 2.1.1 → 2.2.0

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
@@ -2,14 +2,17 @@
2
2
 
3
3
  Lightweight, data-focused CSS/SCSS admin framework with Corporate theme as default.
4
4
 
5
+ ## What's New in 2.2.0
6
+
7
+ - **Theme color slots (1-9) across components** — Alerts, callouts, toasts, and buttons now support `--color-{1-9}` and `--outline-color-{1-9}` variants using the 9 custom theme color slots. Themes that define `$color-1` through `$color-9` get matching component styles automatically
8
+ - **Filled toast variants** — New `pa-toast--filled-*` variants with full-color backgrounds, contrast text, and semi-transparent progress bars. Available for all standard colors and theme color slots
9
+ - **Unified card actions naming** — `pa-card__tools` replaced with `pa-card__actions` across both `pa-card` and `pa-table-card`
10
+ - **Font Tuning Tool** (`/font-test`) — Developer utility for finding the right `@font-face` descriptor values when using custom fonts
11
+
5
12
  ## What's New in 2.1.0
6
13
 
7
- - **Split Button** (`pa-btn-split`) Primary action + dropdown toggle with Floating UI positioning, RTL support, custom icons, upward placement, and size variants
8
- - **Filter Card** (`pa-filter-card`) Expandable filter card with inline filters row, actions, and collapsible advanced section
9
- - **Responsive grid table hover fix** — Card-style tables no longer highlight all cells on hover
10
- - **Mobile sidebar burger fix** — Sidebar behavior modes no longer show X instead of hamburger on mobile
11
- - **Sidebar resize fix** — Resize no longer blocked in icon-collapse mode when sidebar is expanded; disabled on mobile
12
- - **Actions column consistency** — All demo tables now show Actions as the first column
14
+ - **Unified card actions naming** `pa-card__tools` replaced with `pa-card__actions` across both `pa-card` and `pa-table-card`. Header and footer now use the same element name, disambiguated by context
15
+ - **Font Tuning Tool** (`/font-test`) — Developer utility for finding the right `@font-face` descriptor values (`ascent-override`, `descent-override`, `size-adjust`) when using custom fonts. Loads any Google Font, generates variants for visual comparison, and outputs a copyable CSS snippet
13
16
 
14
17
  ## Installation
15
18
 
package/dist/css/main.css CHANGED
@@ -5574,14 +5574,10 @@ body:not(.sidebar-hidden) .pa-layout__sidebar--icon-collapse .pa-sidebar__icon {
5574
5574
  justify-content: space-between;
5575
5575
  align-items: center;
5576
5576
  }
5577
- .pa-card__tools {
5578
- display: flex;
5579
- gap: 0.8rem;
5580
- align-items: center;
5581
- }
5582
5577
  .pa-card__actions {
5583
5578
  display: flex;
5584
5579
  gap: 0.8rem;
5580
+ align-items: center;
5585
5581
  }
5586
5582
  .pa-card__meta {
5587
5583
  color: var(--pa-text-color-2);
@@ -7410,6 +7406,159 @@ a.pa-card p {
7410
7406
  background-color: var(--pa-btn-info-bg);
7411
7407
  color: var(--pa-btn-info-text);
7412
7408
  }
7409
+ .pa-btn--color-1 {
7410
+ background-color: var(--pa-color-1);
7411
+ border-color: var(--pa-color-1);
7412
+ color: var(--pa-color-1-text);
7413
+ }
7414
+ .pa-btn--color-1:hover {
7415
+ filter: brightness(0.9);
7416
+ }
7417
+ .pa-btn--outline-color-1 {
7418
+ background-color: transparent;
7419
+ border-color: var(--pa-color-1);
7420
+ color: var(--pa-color-1);
7421
+ }
7422
+ .pa-btn--outline-color-1:hover {
7423
+ background-color: var(--pa-color-1);
7424
+ color: var(--pa-color-1-text);
7425
+ }
7426
+ .pa-btn--color-2 {
7427
+ background-color: var(--pa-color-2);
7428
+ border-color: var(--pa-color-2);
7429
+ color: var(--pa-color-2-text);
7430
+ }
7431
+ .pa-btn--color-2:hover {
7432
+ filter: brightness(0.9);
7433
+ }
7434
+ .pa-btn--outline-color-2 {
7435
+ background-color: transparent;
7436
+ border-color: var(--pa-color-2);
7437
+ color: var(--pa-color-2);
7438
+ }
7439
+ .pa-btn--outline-color-2:hover {
7440
+ background-color: var(--pa-color-2);
7441
+ color: var(--pa-color-2-text);
7442
+ }
7443
+ .pa-btn--color-3 {
7444
+ background-color: var(--pa-color-3);
7445
+ border-color: var(--pa-color-3);
7446
+ color: var(--pa-color-3-text);
7447
+ }
7448
+ .pa-btn--color-3:hover {
7449
+ filter: brightness(0.9);
7450
+ }
7451
+ .pa-btn--outline-color-3 {
7452
+ background-color: transparent;
7453
+ border-color: var(--pa-color-3);
7454
+ color: var(--pa-color-3);
7455
+ }
7456
+ .pa-btn--outline-color-3:hover {
7457
+ background-color: var(--pa-color-3);
7458
+ color: var(--pa-color-3-text);
7459
+ }
7460
+ .pa-btn--color-4 {
7461
+ background-color: var(--pa-color-4);
7462
+ border-color: var(--pa-color-4);
7463
+ color: var(--pa-color-4-text);
7464
+ }
7465
+ .pa-btn--color-4:hover {
7466
+ filter: brightness(0.9);
7467
+ }
7468
+ .pa-btn--outline-color-4 {
7469
+ background-color: transparent;
7470
+ border-color: var(--pa-color-4);
7471
+ color: var(--pa-color-4);
7472
+ }
7473
+ .pa-btn--outline-color-4:hover {
7474
+ background-color: var(--pa-color-4);
7475
+ color: var(--pa-color-4-text);
7476
+ }
7477
+ .pa-btn--color-5 {
7478
+ background-color: var(--pa-color-5);
7479
+ border-color: var(--pa-color-5);
7480
+ color: var(--pa-color-5-text);
7481
+ }
7482
+ .pa-btn--color-5:hover {
7483
+ filter: brightness(0.9);
7484
+ }
7485
+ .pa-btn--outline-color-5 {
7486
+ background-color: transparent;
7487
+ border-color: var(--pa-color-5);
7488
+ color: var(--pa-color-5);
7489
+ }
7490
+ .pa-btn--outline-color-5:hover {
7491
+ background-color: var(--pa-color-5);
7492
+ color: var(--pa-color-5-text);
7493
+ }
7494
+ .pa-btn--color-6 {
7495
+ background-color: var(--pa-color-6);
7496
+ border-color: var(--pa-color-6);
7497
+ color: var(--pa-color-6-text);
7498
+ }
7499
+ .pa-btn--color-6:hover {
7500
+ filter: brightness(0.9);
7501
+ }
7502
+ .pa-btn--outline-color-6 {
7503
+ background-color: transparent;
7504
+ border-color: var(--pa-color-6);
7505
+ color: var(--pa-color-6);
7506
+ }
7507
+ .pa-btn--outline-color-6:hover {
7508
+ background-color: var(--pa-color-6);
7509
+ color: var(--pa-color-6-text);
7510
+ }
7511
+ .pa-btn--color-7 {
7512
+ background-color: var(--pa-color-7);
7513
+ border-color: var(--pa-color-7);
7514
+ color: var(--pa-color-7-text);
7515
+ }
7516
+ .pa-btn--color-7:hover {
7517
+ filter: brightness(0.9);
7518
+ }
7519
+ .pa-btn--outline-color-7 {
7520
+ background-color: transparent;
7521
+ border-color: var(--pa-color-7);
7522
+ color: var(--pa-color-7);
7523
+ }
7524
+ .pa-btn--outline-color-7:hover {
7525
+ background-color: var(--pa-color-7);
7526
+ color: var(--pa-color-7-text);
7527
+ }
7528
+ .pa-btn--color-8 {
7529
+ background-color: var(--pa-color-8);
7530
+ border-color: var(--pa-color-8);
7531
+ color: var(--pa-color-8-text);
7532
+ }
7533
+ .pa-btn--color-8:hover {
7534
+ filter: brightness(0.9);
7535
+ }
7536
+ .pa-btn--outline-color-8 {
7537
+ background-color: transparent;
7538
+ border-color: var(--pa-color-8);
7539
+ color: var(--pa-color-8);
7540
+ }
7541
+ .pa-btn--outline-color-8:hover {
7542
+ background-color: var(--pa-color-8);
7543
+ color: var(--pa-color-8-text);
7544
+ }
7545
+ .pa-btn--color-9 {
7546
+ background-color: var(--pa-color-9);
7547
+ border-color: var(--pa-color-9);
7548
+ color: var(--pa-color-9-text);
7549
+ }
7550
+ .pa-btn--color-9:hover {
7551
+ filter: brightness(0.9);
7552
+ }
7553
+ .pa-btn--outline-color-9 {
7554
+ background-color: transparent;
7555
+ border-color: var(--pa-color-9);
7556
+ color: var(--pa-color-9);
7557
+ }
7558
+ .pa-btn--outline-color-9:hover {
7559
+ background-color: var(--pa-color-9);
7560
+ color: var(--pa-color-9-text);
7561
+ }
7413
7562
  .pa-btn:disabled {
7414
7563
  opacity: 0.65;
7415
7564
  cursor: not-allowed;
@@ -8671,6 +8820,96 @@ a.pa-card p {
8671
8820
  border-color: var(--pa-info-bg);
8672
8821
  background-color: transparent;
8673
8822
  }
8823
+ .pa-alert--color-1 {
8824
+ color: var(--pa-color-1-text);
8825
+ background-color: var(--pa-color-1);
8826
+ border-color: var(--pa-color-1);
8827
+ }
8828
+ .pa-alert--outline-color-1 {
8829
+ color: var(--pa-color-1);
8830
+ border-color: var(--pa-color-1);
8831
+ background-color: transparent;
8832
+ }
8833
+ .pa-alert--color-2 {
8834
+ color: var(--pa-color-2-text);
8835
+ background-color: var(--pa-color-2);
8836
+ border-color: var(--pa-color-2);
8837
+ }
8838
+ .pa-alert--outline-color-2 {
8839
+ color: var(--pa-color-2);
8840
+ border-color: var(--pa-color-2);
8841
+ background-color: transparent;
8842
+ }
8843
+ .pa-alert--color-3 {
8844
+ color: var(--pa-color-3-text);
8845
+ background-color: var(--pa-color-3);
8846
+ border-color: var(--pa-color-3);
8847
+ }
8848
+ .pa-alert--outline-color-3 {
8849
+ color: var(--pa-color-3);
8850
+ border-color: var(--pa-color-3);
8851
+ background-color: transparent;
8852
+ }
8853
+ .pa-alert--color-4 {
8854
+ color: var(--pa-color-4-text);
8855
+ background-color: var(--pa-color-4);
8856
+ border-color: var(--pa-color-4);
8857
+ }
8858
+ .pa-alert--outline-color-4 {
8859
+ color: var(--pa-color-4);
8860
+ border-color: var(--pa-color-4);
8861
+ background-color: transparent;
8862
+ }
8863
+ .pa-alert--color-5 {
8864
+ color: var(--pa-color-5-text);
8865
+ background-color: var(--pa-color-5);
8866
+ border-color: var(--pa-color-5);
8867
+ }
8868
+ .pa-alert--outline-color-5 {
8869
+ color: var(--pa-color-5);
8870
+ border-color: var(--pa-color-5);
8871
+ background-color: transparent;
8872
+ }
8873
+ .pa-alert--color-6 {
8874
+ color: var(--pa-color-6-text);
8875
+ background-color: var(--pa-color-6);
8876
+ border-color: var(--pa-color-6);
8877
+ }
8878
+ .pa-alert--outline-color-6 {
8879
+ color: var(--pa-color-6);
8880
+ border-color: var(--pa-color-6);
8881
+ background-color: transparent;
8882
+ }
8883
+ .pa-alert--color-7 {
8884
+ color: var(--pa-color-7-text);
8885
+ background-color: var(--pa-color-7);
8886
+ border-color: var(--pa-color-7);
8887
+ }
8888
+ .pa-alert--outline-color-7 {
8889
+ color: var(--pa-color-7);
8890
+ border-color: var(--pa-color-7);
8891
+ background-color: transparent;
8892
+ }
8893
+ .pa-alert--color-8 {
8894
+ color: var(--pa-color-8-text);
8895
+ background-color: var(--pa-color-8);
8896
+ border-color: var(--pa-color-8);
8897
+ }
8898
+ .pa-alert--outline-color-8 {
8899
+ color: var(--pa-color-8);
8900
+ border-color: var(--pa-color-8);
8901
+ background-color: transparent;
8902
+ }
8903
+ .pa-alert--color-9 {
8904
+ color: var(--pa-color-9-text);
8905
+ background-color: var(--pa-color-9);
8906
+ border-color: var(--pa-color-9);
8907
+ }
8908
+ .pa-alert--outline-color-9 {
8909
+ color: var(--pa-color-9);
8910
+ border-color: var(--pa-color-9);
8911
+ background-color: transparent;
8912
+ }
8674
8913
  .pa-alert--sm {
8675
8914
  padding: 1.2rem 1rem;
8676
8915
  font-size: 1.4rem;
@@ -8796,6 +9035,42 @@ a.pa-card p {
8796
9035
  border-inline-start-color: var(--pa-info-bg);
8797
9036
  background-color: var(--pa-info-bg-subtle);
8798
9037
  }
9038
+ .pa-callout--color-1 {
9039
+ border-inline-start-color: var(--pa-color-1);
9040
+ background-color: color-mix(in srgb, var(--pa-color-1) 10%, transparent);
9041
+ }
9042
+ .pa-callout--color-2 {
9043
+ border-inline-start-color: var(--pa-color-2);
9044
+ background-color: color-mix(in srgb, var(--pa-color-2) 10%, transparent);
9045
+ }
9046
+ .pa-callout--color-3 {
9047
+ border-inline-start-color: var(--pa-color-3);
9048
+ background-color: color-mix(in srgb, var(--pa-color-3) 10%, transparent);
9049
+ }
9050
+ .pa-callout--color-4 {
9051
+ border-inline-start-color: var(--pa-color-4);
9052
+ background-color: color-mix(in srgb, var(--pa-color-4) 10%, transparent);
9053
+ }
9054
+ .pa-callout--color-5 {
9055
+ border-inline-start-color: var(--pa-color-5);
9056
+ background-color: color-mix(in srgb, var(--pa-color-5) 10%, transparent);
9057
+ }
9058
+ .pa-callout--color-6 {
9059
+ border-inline-start-color: var(--pa-color-6);
9060
+ background-color: color-mix(in srgb, var(--pa-color-6) 10%, transparent);
9061
+ }
9062
+ .pa-callout--color-7 {
9063
+ border-inline-start-color: var(--pa-color-7);
9064
+ background-color: color-mix(in srgb, var(--pa-color-7) 10%, transparent);
9065
+ }
9066
+ .pa-callout--color-8 {
9067
+ border-inline-start-color: var(--pa-color-8);
9068
+ background-color: color-mix(in srgb, var(--pa-color-8) 10%, transparent);
9069
+ }
9070
+ .pa-callout--color-9 {
9071
+ border-inline-start-color: var(--pa-color-9);
9072
+ background-color: color-mix(in srgb, var(--pa-color-9) 10%, transparent);
9073
+ }
8799
9074
  .pa-callout--sm {
8800
9075
  padding: 0.8rem 1.2rem;
8801
9076
  font-size: 1.2rem;
@@ -12614,6 +12889,385 @@ code {
12614
12889
  color: var(--pa-btn-info-bg);
12615
12890
  }
12616
12891
 
12892
+ .pa-toast--color-1 {
12893
+ border-color: var(--pa-color-1);
12894
+ }
12895
+ .pa-toast--color-1 .pa-toast__icon {
12896
+ background-color: color-mix(in srgb, var(--pa-color-1) 15%, transparent);
12897
+ color: var(--pa-color-1);
12898
+ }
12899
+ .pa-toast--color-1 .pa-toast__progress {
12900
+ color: var(--pa-color-1);
12901
+ }
12902
+
12903
+ .pa-toast--color-2 {
12904
+ border-color: var(--pa-color-2);
12905
+ }
12906
+ .pa-toast--color-2 .pa-toast__icon {
12907
+ background-color: color-mix(in srgb, var(--pa-color-2) 15%, transparent);
12908
+ color: var(--pa-color-2);
12909
+ }
12910
+ .pa-toast--color-2 .pa-toast__progress {
12911
+ color: var(--pa-color-2);
12912
+ }
12913
+
12914
+ .pa-toast--color-3 {
12915
+ border-color: var(--pa-color-3);
12916
+ }
12917
+ .pa-toast--color-3 .pa-toast__icon {
12918
+ background-color: color-mix(in srgb, var(--pa-color-3) 15%, transparent);
12919
+ color: var(--pa-color-3);
12920
+ }
12921
+ .pa-toast--color-3 .pa-toast__progress {
12922
+ color: var(--pa-color-3);
12923
+ }
12924
+
12925
+ .pa-toast--color-4 {
12926
+ border-color: var(--pa-color-4);
12927
+ }
12928
+ .pa-toast--color-4 .pa-toast__icon {
12929
+ background-color: color-mix(in srgb, var(--pa-color-4) 15%, transparent);
12930
+ color: var(--pa-color-4);
12931
+ }
12932
+ .pa-toast--color-4 .pa-toast__progress {
12933
+ color: var(--pa-color-4);
12934
+ }
12935
+
12936
+ .pa-toast--color-5 {
12937
+ border-color: var(--pa-color-5);
12938
+ }
12939
+ .pa-toast--color-5 .pa-toast__icon {
12940
+ background-color: color-mix(in srgb, var(--pa-color-5) 15%, transparent);
12941
+ color: var(--pa-color-5);
12942
+ }
12943
+ .pa-toast--color-5 .pa-toast__progress {
12944
+ color: var(--pa-color-5);
12945
+ }
12946
+
12947
+ .pa-toast--color-6 {
12948
+ border-color: var(--pa-color-6);
12949
+ }
12950
+ .pa-toast--color-6 .pa-toast__icon {
12951
+ background-color: color-mix(in srgb, var(--pa-color-6) 15%, transparent);
12952
+ color: var(--pa-color-6);
12953
+ }
12954
+ .pa-toast--color-6 .pa-toast__progress {
12955
+ color: var(--pa-color-6);
12956
+ }
12957
+
12958
+ .pa-toast--color-7 {
12959
+ border-color: var(--pa-color-7);
12960
+ }
12961
+ .pa-toast--color-7 .pa-toast__icon {
12962
+ background-color: color-mix(in srgb, var(--pa-color-7) 15%, transparent);
12963
+ color: var(--pa-color-7);
12964
+ }
12965
+ .pa-toast--color-7 .pa-toast__progress {
12966
+ color: var(--pa-color-7);
12967
+ }
12968
+
12969
+ .pa-toast--color-8 {
12970
+ border-color: var(--pa-color-8);
12971
+ }
12972
+ .pa-toast--color-8 .pa-toast__icon {
12973
+ background-color: color-mix(in srgb, var(--pa-color-8) 15%, transparent);
12974
+ color: var(--pa-color-8);
12975
+ }
12976
+ .pa-toast--color-8 .pa-toast__progress {
12977
+ color: var(--pa-color-8);
12978
+ }
12979
+
12980
+ .pa-toast--color-9 {
12981
+ border-color: var(--pa-color-9);
12982
+ }
12983
+ .pa-toast--color-9 .pa-toast__icon {
12984
+ background-color: color-mix(in srgb, var(--pa-color-9) 15%, transparent);
12985
+ color: var(--pa-color-9);
12986
+ }
12987
+ .pa-toast--color-9 .pa-toast__progress {
12988
+ color: var(--pa-color-9);
12989
+ }
12990
+
12991
+ .pa-toast--filled-primary {
12992
+ background-color: var(--pa-btn-primary-bg);
12993
+ border-color: var(--pa-btn-primary-bg);
12994
+ color: var(--pa-btn-primary-text);
12995
+ }
12996
+ .pa-toast--filled-primary .pa-toast__title,
12997
+ .pa-toast--filled-primary .pa-toast__message {
12998
+ color: inherit;
12999
+ }
13000
+ .pa-toast--filled-primary .pa-toast__icon {
13001
+ background-color: rgba(255, 255, 255, 0.2);
13002
+ color: inherit;
13003
+ }
13004
+ .pa-toast--filled-primary .pa-toast__close {
13005
+ color: inherit;
13006
+ }
13007
+ .pa-toast--filled-primary .pa-toast__progress {
13008
+ color: rgba(255, 255, 255, 0.5);
13009
+ }
13010
+
13011
+ .pa-toast--filled-success {
13012
+ background-color: var(--pa-btn-success-bg);
13013
+ border-color: var(--pa-btn-success-bg);
13014
+ color: var(--pa-btn-success-text);
13015
+ }
13016
+ .pa-toast--filled-success .pa-toast__title,
13017
+ .pa-toast--filled-success .pa-toast__message {
13018
+ color: inherit;
13019
+ }
13020
+ .pa-toast--filled-success .pa-toast__icon {
13021
+ background-color: rgba(255, 255, 255, 0.2);
13022
+ color: inherit;
13023
+ }
13024
+ .pa-toast--filled-success .pa-toast__close {
13025
+ color: inherit;
13026
+ }
13027
+ .pa-toast--filled-success .pa-toast__progress {
13028
+ color: rgba(255, 255, 255, 0.5);
13029
+ }
13030
+
13031
+ .pa-toast--filled-danger {
13032
+ background-color: var(--pa-btn-danger-bg);
13033
+ border-color: var(--pa-btn-danger-bg);
13034
+ color: var(--pa-btn-danger-text);
13035
+ }
13036
+ .pa-toast--filled-danger .pa-toast__title,
13037
+ .pa-toast--filled-danger .pa-toast__message {
13038
+ color: inherit;
13039
+ }
13040
+ .pa-toast--filled-danger .pa-toast__icon {
13041
+ background-color: rgba(255, 255, 255, 0.2);
13042
+ color: inherit;
13043
+ }
13044
+ .pa-toast--filled-danger .pa-toast__close {
13045
+ color: inherit;
13046
+ }
13047
+ .pa-toast--filled-danger .pa-toast__progress {
13048
+ color: rgba(255, 255, 255, 0.5);
13049
+ }
13050
+
13051
+ .pa-toast--filled-warning {
13052
+ background-color: var(--pa-btn-warning-bg);
13053
+ border-color: var(--pa-btn-warning-bg);
13054
+ color: var(--pa-btn-warning-text);
13055
+ }
13056
+ .pa-toast--filled-warning .pa-toast__title,
13057
+ .pa-toast--filled-warning .pa-toast__message {
13058
+ color: inherit;
13059
+ }
13060
+ .pa-toast--filled-warning .pa-toast__icon {
13061
+ background-color: rgba(255, 255, 255, 0.2);
13062
+ color: inherit;
13063
+ }
13064
+ .pa-toast--filled-warning .pa-toast__close {
13065
+ color: inherit;
13066
+ }
13067
+ .pa-toast--filled-warning .pa-toast__progress {
13068
+ color: rgba(255, 255, 255, 0.5);
13069
+ }
13070
+
13071
+ .pa-toast--filled-info {
13072
+ background-color: var(--pa-btn-info-bg);
13073
+ border-color: var(--pa-btn-info-bg);
13074
+ color: var(--pa-btn-info-text);
13075
+ }
13076
+ .pa-toast--filled-info .pa-toast__title,
13077
+ .pa-toast--filled-info .pa-toast__message {
13078
+ color: inherit;
13079
+ }
13080
+ .pa-toast--filled-info .pa-toast__icon {
13081
+ background-color: rgba(255, 255, 255, 0.2);
13082
+ color: inherit;
13083
+ }
13084
+ .pa-toast--filled-info .pa-toast__close {
13085
+ color: inherit;
13086
+ }
13087
+ .pa-toast--filled-info .pa-toast__progress {
13088
+ color: rgba(255, 255, 255, 0.5);
13089
+ }
13090
+
13091
+ .pa-toast--filled-color-1 {
13092
+ background-color: var(--pa-color-1);
13093
+ border-color: var(--pa-color-1);
13094
+ color: var(--pa-color-1-text);
13095
+ }
13096
+ .pa-toast--filled-color-1 .pa-toast__title,
13097
+ .pa-toast--filled-color-1 .pa-toast__message {
13098
+ color: inherit;
13099
+ }
13100
+ .pa-toast--filled-color-1 .pa-toast__icon {
13101
+ background-color: rgba(255, 255, 255, 0.2);
13102
+ color: inherit;
13103
+ }
13104
+ .pa-toast--filled-color-1 .pa-toast__close {
13105
+ color: inherit;
13106
+ }
13107
+ .pa-toast--filled-color-1 .pa-toast__progress {
13108
+ color: rgba(255, 255, 255, 0.5);
13109
+ }
13110
+
13111
+ .pa-toast--filled-color-2 {
13112
+ background-color: var(--pa-color-2);
13113
+ border-color: var(--pa-color-2);
13114
+ color: var(--pa-color-2-text);
13115
+ }
13116
+ .pa-toast--filled-color-2 .pa-toast__title,
13117
+ .pa-toast--filled-color-2 .pa-toast__message {
13118
+ color: inherit;
13119
+ }
13120
+ .pa-toast--filled-color-2 .pa-toast__icon {
13121
+ background-color: rgba(255, 255, 255, 0.2);
13122
+ color: inherit;
13123
+ }
13124
+ .pa-toast--filled-color-2 .pa-toast__close {
13125
+ color: inherit;
13126
+ }
13127
+ .pa-toast--filled-color-2 .pa-toast__progress {
13128
+ color: rgba(255, 255, 255, 0.5);
13129
+ }
13130
+
13131
+ .pa-toast--filled-color-3 {
13132
+ background-color: var(--pa-color-3);
13133
+ border-color: var(--pa-color-3);
13134
+ color: var(--pa-color-3-text);
13135
+ }
13136
+ .pa-toast--filled-color-3 .pa-toast__title,
13137
+ .pa-toast--filled-color-3 .pa-toast__message {
13138
+ color: inherit;
13139
+ }
13140
+ .pa-toast--filled-color-3 .pa-toast__icon {
13141
+ background-color: rgba(255, 255, 255, 0.2);
13142
+ color: inherit;
13143
+ }
13144
+ .pa-toast--filled-color-3 .pa-toast__close {
13145
+ color: inherit;
13146
+ }
13147
+ .pa-toast--filled-color-3 .pa-toast__progress {
13148
+ color: rgba(255, 255, 255, 0.5);
13149
+ }
13150
+
13151
+ .pa-toast--filled-color-4 {
13152
+ background-color: var(--pa-color-4);
13153
+ border-color: var(--pa-color-4);
13154
+ color: var(--pa-color-4-text);
13155
+ }
13156
+ .pa-toast--filled-color-4 .pa-toast__title,
13157
+ .pa-toast--filled-color-4 .pa-toast__message {
13158
+ color: inherit;
13159
+ }
13160
+ .pa-toast--filled-color-4 .pa-toast__icon {
13161
+ background-color: rgba(255, 255, 255, 0.2);
13162
+ color: inherit;
13163
+ }
13164
+ .pa-toast--filled-color-4 .pa-toast__close {
13165
+ color: inherit;
13166
+ }
13167
+ .pa-toast--filled-color-4 .pa-toast__progress {
13168
+ color: rgba(255, 255, 255, 0.5);
13169
+ }
13170
+
13171
+ .pa-toast--filled-color-5 {
13172
+ background-color: var(--pa-color-5);
13173
+ border-color: var(--pa-color-5);
13174
+ color: var(--pa-color-5-text);
13175
+ }
13176
+ .pa-toast--filled-color-5 .pa-toast__title,
13177
+ .pa-toast--filled-color-5 .pa-toast__message {
13178
+ color: inherit;
13179
+ }
13180
+ .pa-toast--filled-color-5 .pa-toast__icon {
13181
+ background-color: rgba(255, 255, 255, 0.2);
13182
+ color: inherit;
13183
+ }
13184
+ .pa-toast--filled-color-5 .pa-toast__close {
13185
+ color: inherit;
13186
+ }
13187
+ .pa-toast--filled-color-5 .pa-toast__progress {
13188
+ color: rgba(255, 255, 255, 0.5);
13189
+ }
13190
+
13191
+ .pa-toast--filled-color-6 {
13192
+ background-color: var(--pa-color-6);
13193
+ border-color: var(--pa-color-6);
13194
+ color: var(--pa-color-6-text);
13195
+ }
13196
+ .pa-toast--filled-color-6 .pa-toast__title,
13197
+ .pa-toast--filled-color-6 .pa-toast__message {
13198
+ color: inherit;
13199
+ }
13200
+ .pa-toast--filled-color-6 .pa-toast__icon {
13201
+ background-color: rgba(255, 255, 255, 0.2);
13202
+ color: inherit;
13203
+ }
13204
+ .pa-toast--filled-color-6 .pa-toast__close {
13205
+ color: inherit;
13206
+ }
13207
+ .pa-toast--filled-color-6 .pa-toast__progress {
13208
+ color: rgba(255, 255, 255, 0.5);
13209
+ }
13210
+
13211
+ .pa-toast--filled-color-7 {
13212
+ background-color: var(--pa-color-7);
13213
+ border-color: var(--pa-color-7);
13214
+ color: var(--pa-color-7-text);
13215
+ }
13216
+ .pa-toast--filled-color-7 .pa-toast__title,
13217
+ .pa-toast--filled-color-7 .pa-toast__message {
13218
+ color: inherit;
13219
+ }
13220
+ .pa-toast--filled-color-7 .pa-toast__icon {
13221
+ background-color: rgba(255, 255, 255, 0.2);
13222
+ color: inherit;
13223
+ }
13224
+ .pa-toast--filled-color-7 .pa-toast__close {
13225
+ color: inherit;
13226
+ }
13227
+ .pa-toast--filled-color-7 .pa-toast__progress {
13228
+ color: rgba(255, 255, 255, 0.5);
13229
+ }
13230
+
13231
+ .pa-toast--filled-color-8 {
13232
+ background-color: var(--pa-color-8);
13233
+ border-color: var(--pa-color-8);
13234
+ color: var(--pa-color-8-text);
13235
+ }
13236
+ .pa-toast--filled-color-8 .pa-toast__title,
13237
+ .pa-toast--filled-color-8 .pa-toast__message {
13238
+ color: inherit;
13239
+ }
13240
+ .pa-toast--filled-color-8 .pa-toast__icon {
13241
+ background-color: rgba(255, 255, 255, 0.2);
13242
+ color: inherit;
13243
+ }
13244
+ .pa-toast--filled-color-8 .pa-toast__close {
13245
+ color: inherit;
13246
+ }
13247
+ .pa-toast--filled-color-8 .pa-toast__progress {
13248
+ color: rgba(255, 255, 255, 0.5);
13249
+ }
13250
+
13251
+ .pa-toast--filled-color-9 {
13252
+ background-color: var(--pa-color-9);
13253
+ border-color: var(--pa-color-9);
13254
+ color: var(--pa-color-9-text);
13255
+ }
13256
+ .pa-toast--filled-color-9 .pa-toast__title,
13257
+ .pa-toast--filled-color-9 .pa-toast__message {
13258
+ color: inherit;
13259
+ }
13260
+ .pa-toast--filled-color-9 .pa-toast__icon {
13261
+ background-color: rgba(255, 255, 255, 0.2);
13262
+ color: inherit;
13263
+ }
13264
+ .pa-toast--filled-color-9 .pa-toast__close {
13265
+ color: inherit;
13266
+ }
13267
+ .pa-toast--filled-color-9 .pa-toast__progress {
13268
+ color: rgba(255, 255, 255, 0.5);
13269
+ }
13270
+
12617
13271
  @media (max-width: 768px) {
12618
13272
  .pa-toast-container {
12619
13273
  inset-inline: 1.2rem !important;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keenmate/pure-admin-core",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
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": {
@@ -158,6 +158,21 @@
158
158
  </div>
159
159
 
160
160
 
161
+ <!-- THEME COLOR ALERTS (color-1 through color-9) -->
162
+
163
+ <!-- Theme Color 1 Alert (filled) -->
164
+ <div class="pa-alert pa-alert--color-1">
165
+ <strong>Color 1!</strong> Theme color slot 1 alert.
166
+ </div>
167
+
168
+ <!-- Theme Color 1 Alert (outline) -->
169
+ <div class="pa-alert pa-alert--outline-color-1">
170
+ <strong>Color 1 Outline!</strong> Theme color slot 1 outline alert.
171
+ </div>
172
+
173
+ <!-- Pattern: pa-alert--color-{1-9} and pa-alert--outline-color-{1-9} -->
174
+
175
+
161
176
  <!-- ALERT SIZES -->
162
177
 
163
178
  <!-- Small Alert -->
@@ -235,6 +250,10 @@ OUTLINE VARIANTS (border only):
235
250
  - .pa-alert--outline-warning: Orange outline
236
251
  - .pa-alert--outline-info: Cyan outline
237
252
 
253
+ THEME COLOR VARIANTS (1-9):
254
+ - .pa-alert--color-{1-9}: Filled theme color slot
255
+ - .pa-alert--outline-color-{1-9}: Outline theme color slot
256
+
238
257
  SIZES:
239
258
  - .pa-alert--sm: Small alert (reduced padding and font)
240
259
  - (default): Standard size
@@ -176,7 +176,7 @@
176
176
  <span class="pa-card__title-icon">📊</span>
177
177
  <h3 class="pa-card__title-text">Analytics Dashboard</h3>
178
178
  </div>
179
- <div class="pa-card__tools">
179
+ <div class="pa-card__actions">
180
180
  <button class="pa-btn pa-btn--sm pa-btn--secondary">Refresh</button>
181
181
  </div>
182
182
  </div>
@@ -366,8 +366,7 @@ CARD ELEMENTS:
366
366
  - .pa-card__title: Title container
367
367
  - .pa-card__title-icon: Icon in title
368
368
  - .pa-card__title-text: Title text
369
- - .pa-card__tools: Tools/actions container in header
370
- - .pa-card__actions: Actions container in footer
369
+ - .pa-card__actions: Actions container (used in header and footer)
371
370
 
372
371
  CARD TABS:
373
372
  - .pa-card__tabs: Tab container in header
@@ -106,6 +106,21 @@
106
106
  background-color: transparent;
107
107
  }
108
108
 
109
+ // Theme color slot variants (color-1 through color-9)
110
+ @for $i from 1 through 9 {
111
+ &--color-#{$i} {
112
+ color: var(--pa-color-#{$i}-text);
113
+ background-color: var(--pa-color-#{$i});
114
+ border-color: var(--pa-color-#{$i});
115
+ }
116
+
117
+ &--outline-color-#{$i} {
118
+ color: var(--pa-color-#{$i});
119
+ border-color: var(--pa-color-#{$i});
120
+ background-color: transparent;
121
+ }
122
+ }
123
+
109
124
  // Alert sizes (size modifiers only change font-size, padding controlled by theme)
110
125
  &--sm {
111
126
  padding: $alert-padding-v $alert-padding-h;
@@ -204,6 +204,30 @@
204
204
  }
205
205
  }
206
206
 
207
+ // Theme color slot variants (color-1 through color-9)
208
+ @for $i from 1 through 9 {
209
+ &--color-#{$i} {
210
+ background-color: var(--pa-color-#{$i});
211
+ border-color: var(--pa-color-#{$i});
212
+ color: var(--pa-color-#{$i}-text);
213
+
214
+ &:hover {
215
+ filter: brightness($btn-hover-brightness);
216
+ }
217
+ }
218
+
219
+ &--outline-color-#{$i} {
220
+ background-color: transparent;
221
+ border-color: var(--pa-color-#{$i});
222
+ color: var(--pa-color-#{$i});
223
+
224
+ &:hover {
225
+ background-color: var(--pa-color-#{$i});
226
+ color: var(--pa-color-#{$i}-text);
227
+ }
228
+ }
229
+ }
230
+
207
231
  // Button states
208
232
  &:disabled {
209
233
  opacity: $btn-disabled-opacity;
@@ -54,6 +54,14 @@
54
54
  background-color: var(--pa-info-bg-subtle);
55
55
  }
56
56
 
57
+ // Theme color slot variants (color-1 through color-9)
58
+ @for $i from 1 through 9 {
59
+ &--color-#{$i} {
60
+ border-inline-start-color: var(--pa-color-#{$i});
61
+ background-color: color-mix(in srgb, var(--pa-color-#{$i}) 10%, transparent);
62
+ }
63
+ }
64
+
57
65
  // Callout sizes
58
66
  &--sm {
59
67
  padding: $spacing-sm $spacing-md;
@@ -228,15 +228,10 @@
228
228
  align-items: center;
229
229
  }
230
230
 
231
- &__tools {
232
- display: flex;
233
- gap: $spacing-sm;
234
- align-items: center;
235
- }
236
-
237
231
  &__actions {
238
232
  display: flex;
239
233
  gap: $spacing-sm;
234
+ align-items: center;
240
235
  }
241
236
 
242
237
  &__meta {
@@ -291,6 +291,99 @@
291
291
  }
292
292
  }
293
293
 
294
+ // Theme color slot variants (color-1 through color-9)
295
+ @for $i from 1 through 9 {
296
+ .pa-toast--color-#{$i} {
297
+ border-color: var(--pa-color-#{$i});
298
+
299
+ .pa-toast__icon {
300
+ background-color: color-mix(in srgb, var(--pa-color-#{$i}) 15%, transparent);
301
+ color: var(--pa-color-#{$i});
302
+ }
303
+
304
+ .pa-toast__progress {
305
+ color: var(--pa-color-#{$i});
306
+ }
307
+ }
308
+ }
309
+
310
+ // ===== FILLED TOAST VARIANTS =====
311
+
312
+ .pa-toast--filled-primary {
313
+ background-color: var(--pa-btn-primary-bg);
314
+ border-color: var(--pa-btn-primary-bg);
315
+ color: var(--pa-btn-primary-text);
316
+
317
+ .pa-toast__title,
318
+ .pa-toast__message { color: inherit; }
319
+ .pa-toast__icon { background-color: rgba(255, 255, 255, 0.2); color: inherit; }
320
+ .pa-toast__close { color: inherit; }
321
+ .pa-toast__progress { color: rgba(255, 255, 255, 0.5); }
322
+ }
323
+
324
+ .pa-toast--filled-success {
325
+ background-color: var(--pa-btn-success-bg);
326
+ border-color: var(--pa-btn-success-bg);
327
+ color: var(--pa-btn-success-text);
328
+
329
+ .pa-toast__title,
330
+ .pa-toast__message { color: inherit; }
331
+ .pa-toast__icon { background-color: rgba(255, 255, 255, 0.2); color: inherit; }
332
+ .pa-toast__close { color: inherit; }
333
+ .pa-toast__progress { color: rgba(255, 255, 255, 0.5); }
334
+ }
335
+
336
+ .pa-toast--filled-danger {
337
+ background-color: var(--pa-btn-danger-bg);
338
+ border-color: var(--pa-btn-danger-bg);
339
+ color: var(--pa-btn-danger-text);
340
+
341
+ .pa-toast__title,
342
+ .pa-toast__message { color: inherit; }
343
+ .pa-toast__icon { background-color: rgba(255, 255, 255, 0.2); color: inherit; }
344
+ .pa-toast__close { color: inherit; }
345
+ .pa-toast__progress { color: rgba(255, 255, 255, 0.5); }
346
+ }
347
+
348
+ .pa-toast--filled-warning {
349
+ background-color: var(--pa-btn-warning-bg);
350
+ border-color: var(--pa-btn-warning-bg);
351
+ color: var(--pa-btn-warning-text);
352
+
353
+ .pa-toast__title,
354
+ .pa-toast__message { color: inherit; }
355
+ .pa-toast__icon { background-color: rgba(255, 255, 255, 0.2); color: inherit; }
356
+ .pa-toast__close { color: inherit; }
357
+ .pa-toast__progress { color: rgba(255, 255, 255, 0.5); }
358
+ }
359
+
360
+ .pa-toast--filled-info {
361
+ background-color: var(--pa-btn-info-bg);
362
+ border-color: var(--pa-btn-info-bg);
363
+ color: var(--pa-btn-info-text);
364
+
365
+ .pa-toast__title,
366
+ .pa-toast__message { color: inherit; }
367
+ .pa-toast__icon { background-color: rgba(255, 255, 255, 0.2); color: inherit; }
368
+ .pa-toast__close { color: inherit; }
369
+ .pa-toast__progress { color: rgba(255, 255, 255, 0.5); }
370
+ }
371
+
372
+ // Filled theme color slot variants (color-1 through color-9)
373
+ @for $i from 1 through 9 {
374
+ .pa-toast--filled-color-#{$i} {
375
+ background-color: var(--pa-color-#{$i});
376
+ border-color: var(--pa-color-#{$i});
377
+ color: var(--pa-color-#{$i}-text);
378
+
379
+ .pa-toast__title,
380
+ .pa-toast__message { color: inherit; }
381
+ .pa-toast__icon { background-color: rgba(255, 255, 255, 0.2); color: inherit; }
382
+ .pa-toast__close { color: inherit; }
383
+ .pa-toast__progress { color: rgba(255, 255, 255, 0.5); }
384
+ }
385
+ }
386
+
294
387
  // ===== RESPONSIVE =====
295
388
 
296
389
  @media (max-width: $mobile-breakpoint) {