@konce-pt/styles 0.9.0 → 0.10.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.
Files changed (2) hide show
  1. package/components.css +405 -55
  2. package/package.json +2 -2
package/components.css CHANGED
@@ -974,6 +974,17 @@
974
974
  .kpt-autocomplete-host {
975
975
  display: block;
976
976
  }
977
+ .kpt-autocomplete__live {
978
+ position: absolute;
979
+ width: 1px;
980
+ height: 1px;
981
+ margin: -1px;
982
+ padding: 0;
983
+ overflow: hidden;
984
+ clip-path: inset(50%);
985
+ white-space: nowrap;
986
+ border: 0;
987
+ }
977
988
  .kpt-autocomplete__input {
978
989
  display: block;
979
990
  width: 100%;
@@ -1087,7 +1098,7 @@
1087
1098
  box-shadow: 0 0 0 2px var(--kpt-color-surface);
1088
1099
  }
1089
1100
  .kpt-avatar-group__item:not(:first-child) {
1090
- margin-left: -0.6rem;
1101
+ margin-inline-start: -0.6rem;
1091
1102
  }
1092
1103
  .kpt-avatar-group__more {
1093
1104
  align-items: center;
@@ -1110,8 +1121,8 @@
1110
1121
  height: 3rem;
1111
1122
  }
1112
1123
  .kpt-avatar-group__more[data-size=xl] {
1113
- width: 3.5rem;
1114
- height: 3.5rem;
1124
+ width: 4rem;
1125
+ height: 4rem;
1115
1126
  }
1116
1127
  }
1117
1128
 
@@ -1193,19 +1204,19 @@
1193
1204
  }
1194
1205
  .kpt-badge[data-variant=success] {
1195
1206
  --_bg: var(--kpt-color-success);
1196
- --_fg: var(--kpt-color-surface);
1207
+ --_fg: var(--kpt-color-success-contrast);
1197
1208
  }
1198
1209
  .kpt-badge[data-variant=danger] {
1199
1210
  --_bg: var(--kpt-color-danger);
1200
- --_fg: var(--kpt-color-on-danger);
1211
+ --_fg: var(--kpt-color-danger-contrast);
1201
1212
  }
1202
1213
  .kpt-badge[data-variant=warning] {
1203
1214
  --_bg: var(--kpt-color-warning);
1204
- --_fg: var(--kpt-color-surface);
1215
+ --_fg: var(--kpt-color-warning-contrast);
1205
1216
  }
1206
1217
  .kpt-badge[data-variant=info] {
1207
1218
  --_bg: var(--kpt-color-info);
1208
- --_fg: var(--kpt-color-surface);
1219
+ --_fg: var(--kpt-color-info-contrast);
1209
1220
  }
1210
1221
  .kpt-badge--dot {
1211
1222
  min-width: 0;
@@ -1220,6 +1231,17 @@
1220
1231
  transform: translate(35%, -35%);
1221
1232
  box-shadow: 0 0 0 2px var(--kpt-color-surface);
1222
1233
  }
1234
+ .kpt-badge__label {
1235
+ position: absolute;
1236
+ width: 1px;
1237
+ height: 1px;
1238
+ margin: -1px;
1239
+ padding: 0;
1240
+ overflow: hidden;
1241
+ clip-path: inset(50%);
1242
+ white-space: nowrap;
1243
+ border: 0;
1244
+ }
1223
1245
  }
1224
1246
 
1225
1247
  /* src/lib/bottom-sheet/bottom-sheet.component.scss */
@@ -1231,7 +1253,7 @@
1231
1253
  position: fixed;
1232
1254
  inset: 0;
1233
1255
  z-index: var(--kpt-z-overlay, 1000);
1234
- background: color-mix(in oklch, black 45%, transparent);
1256
+ background: var(--kpt-color-overlay-scrim);
1235
1257
  opacity: 0;
1236
1258
  visibility: hidden;
1237
1259
  transition: opacity 0.2s, visibility 0.2s;
@@ -1294,11 +1316,21 @@
1294
1316
  display: block;
1295
1317
  }
1296
1318
  .kpt-breadcrumb {
1319
+ font-size: var(--kpt-font-size-sm, 0.875rem);
1320
+ }
1321
+ .kpt-breadcrumb__list {
1297
1322
  display: flex;
1298
1323
  flex-wrap: wrap;
1299
1324
  align-items: center;
1300
1325
  gap: 0.4rem;
1301
- font-size: var(--kpt-font-size-sm, 0.875rem);
1326
+ margin: 0;
1327
+ padding: 0;
1328
+ list-style: none;
1329
+ }
1330
+ .kpt-breadcrumb__item {
1331
+ display: inline-flex;
1332
+ align-items: center;
1333
+ gap: 0.4rem;
1302
1334
  }
1303
1335
  .kpt-breadcrumb__link {
1304
1336
  color: var(--kpt-color-on-surface-muted);
@@ -1673,6 +1705,7 @@
1673
1705
  display: block;
1674
1706
  }
1675
1707
  .kpt-carousel {
1708
+ --_kpt-carousel-dir: 1;
1676
1709
  position: relative;
1677
1710
  border-radius: var(--kpt-radius-lg, 0.75rem);
1678
1711
  overflow: hidden;
@@ -1710,32 +1743,52 @@
1710
1743
  .kpt-carousel__nav--next {
1711
1744
  inset-inline-end: 0.5rem;
1712
1745
  }
1713
- .kpt-carousel__nav:hover:not(:disabled) {
1746
+ .kpt-carousel__nav:hover:not([aria-disabled=true]) {
1714
1747
  background: var(--kpt-color-surface);
1715
1748
  }
1716
- .kpt-carousel__nav:disabled {
1749
+ .kpt-carousel__nav[aria-disabled=true] {
1717
1750
  opacity: 0.4;
1718
1751
  cursor: not-allowed;
1719
1752
  }
1720
1753
  .kpt-carousel__dots {
1721
1754
  position: absolute;
1722
- inset-block-end: 0.6rem;
1755
+ inset-block-end: 0.1rem;
1723
1756
  inset-inline: 0;
1724
1757
  display: flex;
1725
1758
  justify-content: center;
1726
- gap: 0.4rem;
1727
1759
  }
1728
1760
  .kpt-carousel__dot {
1761
+ display: grid;
1762
+ place-items: center;
1763
+ width: 1.5rem;
1764
+ height: 1.5rem;
1765
+ padding: 0;
1766
+ border: 0;
1767
+ border-radius: 50%;
1768
+ background: none;
1769
+ cursor: pointer;
1770
+ }
1771
+ .kpt-carousel__dot::before {
1772
+ content: "";
1729
1773
  width: 0.5rem;
1730
1774
  height: 0.5rem;
1731
- border: 0;
1732
1775
  border-radius: 50%;
1733
1776
  background: color-mix(in oklch, var(--kpt-color-on-surface) 40%, transparent);
1734
- cursor: pointer;
1735
1777
  }
1736
- .kpt-carousel__dot.is-active {
1778
+ .kpt-carousel__dot.is-active::before {
1737
1779
  background: var(--kpt-color-primary);
1738
1780
  }
1781
+ .kpt-carousel:dir(rtl) {
1782
+ --_kpt-carousel-dir: -1;
1783
+ }
1784
+ .kpt-carousel:dir(rtl) .kpt-carousel__nav .kpt-icon-host {
1785
+ transform: scaleX(-1);
1786
+ }
1787
+ @media (prefers-reduced-motion: reduce) {
1788
+ .kpt-carousel__track {
1789
+ transition: none;
1790
+ }
1791
+ }
1739
1792
  }
1740
1793
 
1741
1794
  /* src/lib/checkbox/checkbox.component.scss */
@@ -1782,13 +1835,28 @@
1782
1835
  opacity: 0;
1783
1836
  transition: opacity var(--kpt-motion-duration-fast, 120ms) var(--kpt-motion-easing-standard);
1784
1837
  }
1785
- .kpt-checkbox__input:checked + .kpt-checkbox__box {
1838
+ .kpt-checkbox__dash {
1839
+ display: none;
1840
+ width: 0.9rem;
1841
+ height: 0.9rem;
1842
+ fill: none;
1843
+ stroke: var(--kpt-color-on-primary);
1844
+ stroke-width: 2.25;
1845
+ stroke-linecap: round;
1846
+ }
1847
+ .kpt-checkbox__input:checked + .kpt-checkbox__box, .kpt-checkbox__input:indeterminate + .kpt-checkbox__box {
1786
1848
  background: var(--kpt-color-primary);
1787
1849
  border-color: var(--kpt-color-primary);
1788
1850
  }
1789
1851
  .kpt-checkbox__input:checked + .kpt-checkbox__box .kpt-checkbox__check {
1790
1852
  opacity: 1;
1791
1853
  }
1854
+ .kpt-checkbox__input:indeterminate + .kpt-checkbox__box .kpt-checkbox__check {
1855
+ display: none;
1856
+ }
1857
+ .kpt-checkbox__input:indeterminate + .kpt-checkbox__box .kpt-checkbox__dash {
1858
+ display: block;
1859
+ }
1792
1860
  .kpt-checkbox__input:focus-visible + .kpt-checkbox__box {
1793
1861
  outline: var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);
1794
1862
  outline-offset: 2px;
@@ -1878,6 +1946,21 @@
1878
1946
 
1879
1947
  /* src/lib/chips-input/chips-input.component.scss */
1880
1948
  @layer kpt.components {
1949
+ .kpt-chips-input__list,
1950
+ .kpt-chips-input__item {
1951
+ display: contents;
1952
+ }
1953
+ .kpt-chips-input__live {
1954
+ position: absolute;
1955
+ width: 1px;
1956
+ height: 1px;
1957
+ margin: -1px;
1958
+ padding: 0;
1959
+ overflow: hidden;
1960
+ clip-path: inset(50%);
1961
+ white-space: nowrap;
1962
+ border: 0;
1963
+ }
1881
1964
  .kpt-chips-input-host {
1882
1965
  display: block;
1883
1966
  }
@@ -2582,6 +2665,17 @@
2582
2665
  .kpt-date-range__clear:hover {
2583
2666
  color: var(--kpt-color-on-surface);
2584
2667
  }
2668
+ .kpt-calendar__live {
2669
+ position: absolute;
2670
+ width: 1px;
2671
+ height: 1px;
2672
+ margin: -1px;
2673
+ padding: 0;
2674
+ overflow: hidden;
2675
+ clip-path: inset(50%);
2676
+ white-space: nowrap;
2677
+ border: 0;
2678
+ }
2585
2679
  .kpt-calendar {
2586
2680
  width: 17rem;
2587
2681
  padding: var(--kpt-space-3, 0.75rem);
@@ -2655,6 +2749,10 @@
2655
2749
  .kpt-calendar__day:hover:not(:disabled) {
2656
2750
  background: var(--kpt-color-muted);
2657
2751
  }
2752
+ .kpt-calendar__day:disabled {
2753
+ opacity: 0.3;
2754
+ cursor: not-allowed;
2755
+ }
2658
2756
  .kpt-calendar__day--muted {
2659
2757
  color: var(--kpt-color-on-surface-muted);
2660
2758
  opacity: 0.5;
@@ -3229,7 +3327,7 @@
3229
3327
  position: fixed;
3230
3328
  inset: 0;
3231
3329
  z-index: var(--kpt-z-overlay, 1100);
3232
- background: color-mix(in oklch, black 45%, transparent);
3330
+ background: var(--kpt-color-overlay-scrim);
3233
3331
  opacity: 0;
3234
3332
  visibility: hidden;
3235
3333
  transition: opacity 0.2s, visibility 0.2s;
@@ -3507,6 +3605,13 @@
3507
3605
  opacity: 0.6;
3508
3606
  cursor: not-allowed;
3509
3607
  }
3608
+ .kpt-file-upload__zone[data-invalid] {
3609
+ border-color: var(--kpt-color-danger);
3610
+ }
3611
+ .kpt-file-upload__zone:focus-visible {
3612
+ outline: var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);
3613
+ outline-offset: 2px;
3614
+ }
3510
3615
  .kpt-file-upload__icon {
3511
3616
  font-size: 1.75rem;
3512
3617
  color: var(--kpt-color-on-surface-muted);
@@ -3683,20 +3788,21 @@
3683
3788
  height: 2.25rem;
3684
3789
  border: 0;
3685
3790
  border-radius: 999px;
3686
- background: color-mix(in oklch, black 45%, transparent);
3687
- color: #fff;
3791
+ background: color-mix(in oklch, var(--kpt-color-surface) 85%, transparent);
3792
+ color: var(--kpt-color-on-surface);
3793
+ box-shadow: var(--kpt-elevation-2);
3688
3794
  cursor: pointer;
3689
3795
  }
3690
3796
  .kpt-galleria__nav--prev {
3691
- left: var(--kpt-space-2, 0.5rem);
3797
+ inset-inline-start: var(--kpt-space-2, 0.5rem);
3692
3798
  }
3693
3799
  .kpt-galleria__nav--next {
3694
- right: var(--kpt-space-2, 0.5rem);
3800
+ inset-inline-end: var(--kpt-space-2, 0.5rem);
3695
3801
  }
3696
- .kpt-galleria__nav:hover:not(:disabled) {
3697
- background: color-mix(in oklch, black 65%, transparent);
3802
+ .kpt-galleria__nav:hover:not([aria-disabled=true]) {
3803
+ background: var(--kpt-color-surface);
3698
3804
  }
3699
- .kpt-galleria__nav:disabled {
3805
+ .kpt-galleria__nav[aria-disabled=true] {
3700
3806
  opacity: 0.4;
3701
3807
  cursor: default;
3702
3808
  }
@@ -3733,6 +3839,20 @@
3733
3839
  opacity: 1;
3734
3840
  border-color: var(--kpt-color-primary);
3735
3841
  }
3842
+ .kpt-galleria:dir(rtl) .kpt-galleria__nav .kpt-icon-host {
3843
+ transform: scaleX(-1);
3844
+ }
3845
+ .kpt-galleria__live {
3846
+ position: absolute;
3847
+ width: 1px;
3848
+ height: 1px;
3849
+ margin: -1px;
3850
+ padding: 0;
3851
+ overflow: hidden;
3852
+ clip-path: inset(50%);
3853
+ white-space: nowrap;
3854
+ border: 0;
3855
+ }
3736
3856
  }
3737
3857
 
3738
3858
  /* src/lib/icon/icon.component.scss */
@@ -3855,6 +3975,11 @@
3855
3975
  display: block;
3856
3976
  }
3857
3977
  .kpt-image--preview {
3978
+ padding: 0;
3979
+ border: 0;
3980
+ background: none;
3981
+ font: inherit;
3982
+ color: inherit;
3858
3983
  cursor: zoom-in;
3859
3984
  }
3860
3985
  .kpt-image__mask {
@@ -3863,35 +3988,52 @@
3863
3988
  display: flex;
3864
3989
  align-items: center;
3865
3990
  justify-content: center;
3866
- color: #fff;
3867
- font-size: 1.5rem;
3868
- background: color-mix(in oklch, black 40%, transparent);
3991
+ font-size: 1.25rem;
3992
+ background: var(--kpt-color-overlay-scrim);
3869
3993
  opacity: 0;
3870
3994
  transition: opacity 0.2s;
3871
3995
  }
3872
- .kpt-image--preview:hover .kpt-image__mask {
3996
+ .kpt-image__mask .kpt-icon-host {
3997
+ width: 2.5rem;
3998
+ height: 2.5rem;
3999
+ border-radius: 999px;
4000
+ background: var(--kpt-color-surface);
4001
+ color: var(--kpt-color-on-surface);
4002
+ box-shadow: var(--kpt-elevation-2);
4003
+ }
4004
+ .kpt-image--preview:hover .kpt-image__mask, .kpt-image--preview:focus-visible .kpt-image__mask {
3873
4005
  opacity: 1;
3874
4006
  }
3875
4007
  .kpt-image__overlay {
3876
- position: fixed;
3877
- inset: 0;
3878
- z-index: calc(var(--kpt-z-overlay, 1000) + 5);
4008
+ box-sizing: border-box;
4009
+ width: 100%;
4010
+ height: 100%;
4011
+ max-width: none;
4012
+ max-height: none;
4013
+ margin: 0;
4014
+ padding: var(--kpt-space-6, 1.5rem);
4015
+ border: 0;
4016
+ background: transparent;
4017
+ cursor: zoom-out;
4018
+ }
4019
+ .kpt-image__overlay[open] {
3879
4020
  display: flex;
3880
4021
  align-items: center;
3881
4022
  justify-content: center;
3882
- padding: var(--kpt-space-6, 1.5rem);
3883
- background: color-mix(in oklch, black 80%, transparent);
3884
- cursor: zoom-out;
4023
+ }
4024
+ .kpt-image__overlay::backdrop {
4025
+ background: var(--kpt-color-overlay-scrim);
3885
4026
  }
3886
4027
  .kpt-image__full {
3887
4028
  max-width: 90vw;
3888
4029
  max-height: 90vh;
3889
4030
  border-radius: var(--kpt-radius-md, 0.5rem);
4031
+ cursor: default;
3890
4032
  }
3891
4033
  .kpt-image__close {
3892
4034
  position: absolute;
3893
- top: var(--kpt-space-4, 1rem);
3894
- right: var(--kpt-space-4, 1rem);
4035
+ inset-block-start: var(--kpt-space-4, 1rem);
4036
+ inset-inline-end: var(--kpt-space-4, 1rem);
3895
4037
  display: inline-flex;
3896
4038
  width: 2.5rem;
3897
4039
  height: 2.5rem;
@@ -3899,12 +4041,13 @@
3899
4041
  justify-content: center;
3900
4042
  border: 0;
3901
4043
  border-radius: 999px;
3902
- background: color-mix(in oklch, white 15%, transparent);
3903
- color: #fff;
4044
+ background: var(--kpt-color-surface);
4045
+ color: var(--kpt-color-on-surface);
4046
+ box-shadow: var(--kpt-elevation-2);
3904
4047
  cursor: pointer;
3905
4048
  }
3906
4049
  .kpt-image__close:hover {
3907
- background: color-mix(in oklch, white 25%, transparent);
4050
+ background: var(--kpt-color-muted);
3908
4051
  }
3909
4052
  }
3910
4053
 
@@ -4132,6 +4275,13 @@
4132
4275
  .kpt-listbox--invalid {
4133
4276
  border-color: var(--kpt-form-field-border-error);
4134
4277
  }
4278
+ .kpt-listbox--disabled {
4279
+ opacity: 0.6;
4280
+ }
4281
+ .kpt-listbox:has(.kpt-listbox__items:focus-visible) {
4282
+ border-color: var(--kpt-form-field-border-focus);
4283
+ box-shadow: 0 0 0 2px color-mix(in oklch, var(--kpt-form-field-border-focus) 30%, transparent);
4284
+ }
4135
4285
  .kpt-listbox__filter {
4136
4286
  display: flex;
4137
4287
  align-items: center;
@@ -4155,6 +4305,9 @@
4155
4305
  overflow-y: auto;
4156
4306
  padding: var(--kpt-space-1, 0.25rem);
4157
4307
  }
4308
+ .kpt-listbox__items:focus {
4309
+ outline: none;
4310
+ }
4158
4311
  .kpt-listbox__item {
4159
4312
  display: flex;
4160
4313
  align-items: center;
@@ -4170,15 +4323,18 @@
4170
4323
  text-align: left;
4171
4324
  cursor: pointer;
4172
4325
  }
4173
- .kpt-listbox__item:hover:not(:disabled) {
4326
+ .kpt-listbox__item:hover:not([aria-disabled=true]) {
4174
4327
  background: var(--kpt-color-muted);
4175
4328
  }
4329
+ .kpt-listbox__items:focus-visible .kpt-listbox__item.is-active {
4330
+ box-shadow: inset 0 0 0 2px var(--kpt-form-field-border-focus);
4331
+ }
4176
4332
  .kpt-listbox__item.is-selected {
4177
4333
  background: color-mix(in oklch, var(--kpt-color-primary) 12%, transparent);
4178
4334
  color: var(--kpt-color-primary);
4179
4335
  font-weight: var(--kpt-font-weight-medium, 500);
4180
4336
  }
4181
- .kpt-listbox__item:disabled {
4337
+ .kpt-listbox__item[aria-disabled=true] {
4182
4338
  opacity: 0.5;
4183
4339
  cursor: not-allowed;
4184
4340
  }
@@ -4206,6 +4362,8 @@
4206
4362
  border-radius: var(--kpt-radius-md, 0.5rem);
4207
4363
  }
4208
4364
  .kpt-megamenu__top {
4365
+ box-sizing: border-box;
4366
+ text-decoration: none;
4209
4367
  display: inline-flex;
4210
4368
  align-items: center;
4211
4369
  gap: var(--kpt-space-2, 0.5rem);
@@ -4245,6 +4403,8 @@
4245
4403
  color: var(--kpt-color-on-surface-muted);
4246
4404
  }
4247
4405
  .kpt-megamenu__link {
4406
+ box-sizing: border-box;
4407
+ text-decoration: none;
4248
4408
  display: flex;
4249
4409
  align-items: center;
4250
4410
  gap: var(--kpt-space-2, 0.5rem);
@@ -4429,6 +4589,8 @@
4429
4589
  display: inline-flex;
4430
4590
  }
4431
4591
  .kpt-menubar__top {
4592
+ box-sizing: border-box;
4593
+ text-decoration: none;
4432
4594
  display: inline-flex;
4433
4595
  align-items: center;
4434
4596
  gap: var(--kpt-space-2, 0.5rem);
@@ -4459,6 +4621,8 @@
4459
4621
  box-shadow: var(--kpt-elevation-3);
4460
4622
  }
4461
4623
  .kpt-menubar__item {
4624
+ box-sizing: border-box;
4625
+ text-decoration: none;
4462
4626
  display: flex;
4463
4627
  align-items: center;
4464
4628
  gap: var(--kpt-space-2, 0.5rem);
@@ -5130,6 +5294,11 @@
5130
5294
  flex-direction: column;
5131
5295
  gap: var(--kpt-space-2, 0.5rem);
5132
5296
  }
5297
+ .kpt-radio-group--horizontal {
5298
+ flex-direction: row;
5299
+ flex-wrap: wrap;
5300
+ column-gap: var(--kpt-space-4, 1rem);
5301
+ }
5133
5302
  .kpt-radio {
5134
5303
  display: inline-flex;
5135
5304
  position: relative;
@@ -5194,23 +5363,66 @@
5194
5363
  font-size: 1.4rem;
5195
5364
  }
5196
5365
  .kpt-rating__star {
5366
+ position: relative;
5197
5367
  display: inline-flex;
5198
- border: 0;
5199
- background: none;
5200
5368
  padding: 0.1rem;
5201
- cursor: pointer;
5202
5369
  color: var(--kpt-color-border-strong);
5203
5370
  transition: color var(--kpt-motion-duration-fast, 120ms) var(--kpt-motion-easing-standard);
5204
5371
  }
5205
- .kpt-rating__star.is-filled {
5372
+ .kpt-rating__star[data-fill=full] {
5373
+ color: var(--kpt-color-warning);
5374
+ }
5375
+ .kpt-rating__star[data-fill=full] svg {
5376
+ fill: currentColor;
5377
+ }
5378
+ .kpt-rating__fill {
5379
+ position: absolute;
5380
+ inset: 0;
5381
+ display: none;
5382
+ padding: inherit;
5206
5383
  color: var(--kpt-color-warning);
5384
+ clip-path: inset(0 50% 0 0);
5385
+ pointer-events: none;
5207
5386
  }
5208
- .kpt-rating__star.is-filled svg {
5387
+ .kpt-rating__fill svg {
5209
5388
  fill: currentColor;
5210
5389
  }
5211
- .kpt-rating__star:disabled {
5390
+ .kpt-rating__star[data-fill=half] > .kpt-rating__fill {
5391
+ display: inline-flex;
5392
+ }
5393
+ .kpt-rating__fill:dir(rtl) {
5394
+ clip-path: inset(0 0 0 50%);
5395
+ }
5396
+ .kpt-rating__hit {
5397
+ position: absolute;
5398
+ inset-block: 0;
5399
+ padding: 0;
5400
+ border: 0;
5401
+ background: none;
5402
+ cursor: pointer;
5403
+ }
5404
+ .kpt-rating__hit--full {
5405
+ inset-inline: 0;
5406
+ }
5407
+ .kpt-rating__hit--start {
5408
+ inset-inline-start: 0;
5409
+ width: 50%;
5410
+ }
5411
+ .kpt-rating__hit--end {
5412
+ inset-inline-end: 0;
5413
+ width: 50%;
5414
+ }
5415
+ .kpt-rating__hit[aria-disabled=true] {
5212
5416
  cursor: default;
5213
5417
  }
5418
+ .kpt-rating__hit:focus-visible {
5419
+ outline: var(--kpt-border-width-medium, 2px) solid var(--kpt-form-field-border-focus);
5420
+ outline-offset: 1px;
5421
+ border-radius: var(--kpt-radius-sm, 0.25rem);
5422
+ }
5423
+ .kpt-rating--disabled {
5424
+ opacity: 0.6;
5425
+ }
5214
5426
  }
5215
5427
 
5216
5428
  /* src/lib/rich-text/rich-text.component.scss */
@@ -5498,6 +5710,50 @@
5498
5710
  border-radius: var(--kpt-radius-md, 0.5rem);
5499
5711
  box-shadow: var(--kpt-elevation-3);
5500
5712
  }
5713
+ .kpt-rt-link {
5714
+ display: grid;
5715
+ grid-template-columns: 1fr auto;
5716
+ gap: var(--kpt-space-2, 0.5rem);
5717
+ width: min(22rem, 90vw);
5718
+ padding: var(--kpt-space-3, 0.75rem);
5719
+ background: var(--kpt-color-surface-raised);
5720
+ border: var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);
5721
+ border-radius: var(--kpt-radius-md, 0.5rem);
5722
+ box-shadow: var(--kpt-elevation-3);
5723
+ font-size: var(--kpt-font-size-sm, 0.875rem);
5724
+ }
5725
+ .kpt-rt-link__label {
5726
+ grid-column: 1/-1;
5727
+ color: var(--kpt-color-on-surface-muted);
5728
+ }
5729
+ .kpt-rt-link__input {
5730
+ min-width: 0;
5731
+ height: 2rem;
5732
+ padding-inline: var(--kpt-space-2, 0.5rem);
5733
+ border: var(--kpt-border-width-thin, 1px) solid var(--kpt-form-field-border);
5734
+ border-radius: var(--kpt-radius-sm, 0.25rem);
5735
+ background: var(--kpt-form-field-bg);
5736
+ color: var(--kpt-form-field-text);
5737
+ font: inherit;
5738
+ }
5739
+ .kpt-rt-link__input:focus-visible {
5740
+ outline: none;
5741
+ border-color: var(--kpt-form-field-border-focus);
5742
+ }
5743
+ .kpt-rt-link__apply {
5744
+ height: 2rem;
5745
+ padding-inline: var(--kpt-space-3, 0.75rem);
5746
+ border: 0;
5747
+ border-radius: var(--kpt-radius-sm, 0.25rem);
5748
+ background: var(--kpt-color-primary);
5749
+ color: var(--kpt-color-on-primary);
5750
+ font: inherit;
5751
+ cursor: pointer;
5752
+ }
5753
+ .kpt-rt-link__apply:focus-visible {
5754
+ outline: var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);
5755
+ outline-offset: 2px;
5756
+ }
5501
5757
  .kpt-rich-text__swatches {
5502
5758
  display: grid;
5503
5759
  grid-template-columns: repeat(7, 1fr);
@@ -5709,8 +5965,8 @@
5709
5965
  }
5710
5966
  .kpt-scroll-top {
5711
5967
  position: fixed;
5712
- right: var(--kpt-space-6, 1.5rem);
5713
- bottom: var(--kpt-space-6, 1.5rem);
5968
+ inset-inline-end: var(--kpt-space-6, 1.5rem);
5969
+ inset-block-end: var(--kpt-space-6, 1.5rem);
5714
5970
  z-index: var(--kpt-z-overlay, 1000);
5715
5971
  display: inline-flex;
5716
5972
  align-items: center;
@@ -5736,6 +5992,12 @@
5736
5992
  .kpt-scroll-top:hover {
5737
5993
  background: var(--kpt-color-primary-hover, var(--kpt-color-primary));
5738
5994
  }
5995
+ @media (prefers-reduced-motion: reduce) {
5996
+ .kpt-scroll-top {
5997
+ transition: none;
5998
+ transform: none;
5999
+ }
6000
+ }
5739
6001
  }
5740
6002
 
5741
6003
  /* src/lib/select/select.component.scss */
@@ -5936,16 +6198,21 @@
5936
6198
  overflow-y: auto;
5937
6199
  }
5938
6200
  .kpt-sidenav__scroll a {
5939
- display: block;
6201
+ display: flex;
6202
+ align-items: center;
6203
+ gap: var(--kpt-space-3, 0.75rem);
5940
6204
  padding: var(--kpt-space-2, 0.5rem) var(--kpt-space-3, 0.75rem);
5941
6205
  border-radius: var(--kpt-radius-md, 0.5rem);
5942
6206
  color: inherit;
5943
6207
  text-decoration: none;
5944
6208
  font-size: var(--kpt-font-size-sm, 0.875rem);
5945
6209
  }
5946
- .kpt-sidenav__scroll a:hover {
6210
+ .kpt-sidenav__scroll a:hover, .kpt-sidenav__scroll a[aria-current=page] {
5947
6211
  background: var(--kpt-color-muted);
5948
6212
  }
6213
+ .kpt-sidenav__scroll a[aria-current=page] {
6214
+ font-weight: var(--kpt-font-weight-medium, 500);
6215
+ }
5949
6216
  .kpt-sidenav [kptSidenavFooter] {
5950
6217
  flex: 0 0 auto;
5951
6218
  box-sizing: border-box;
@@ -5961,7 +6228,7 @@
5961
6228
  }
5962
6229
  .kpt-skeleton {
5963
6230
  display: block;
5964
- background: linear-gradient(90deg, var(--kpt-color-surface-variant) 25%, color-mix(in oklab, var(--kpt-color-surface-variant) 60%, var(--kpt-color-surface)) 50%, var(--kpt-color-surface-variant) 75%);
6231
+ background: linear-gradient(90deg, var(--kpt-color-muted) 25%, color-mix(in oklab, var(--kpt-color-muted) 45%, var(--kpt-color-surface)) 50%, var(--kpt-color-muted) 75%);
5965
6232
  background-size: 200% 100%;
5966
6233
  border-radius: var(--kpt-radius-md, 0.5rem);
5967
6234
  animation: kpt-skeleton-shimmer 1.4s ease-in-out infinite;
@@ -6049,6 +6316,17 @@
6049
6316
  opacity: 0.5;
6050
6317
  cursor: not-allowed;
6051
6318
  }
6319
+ .kpt-slider__sr {
6320
+ position: absolute;
6321
+ width: 1px;
6322
+ height: 1px;
6323
+ margin: -1px;
6324
+ padding: 0;
6325
+ overflow: hidden;
6326
+ clip-path: inset(50%);
6327
+ white-space: nowrap;
6328
+ border: 0;
6329
+ }
6052
6330
  .kpt-slider__value {
6053
6331
  min-width: 2.5rem;
6054
6332
  text-align: end;
@@ -6156,11 +6434,14 @@
6156
6434
  gap: var(--kpt-space-2, 0.5rem);
6157
6435
  opacity: 0;
6158
6436
  pointer-events: none;
6159
- transition: opacity 0.15s ease;
6437
+ visibility: hidden;
6438
+ transition: opacity 0.15s ease, visibility 0s linear 0.15s;
6160
6439
  }
6161
6440
  .kpt-speed-dial.is-open .kpt-speed-dial__actions {
6162
6441
  opacity: 1;
6163
6442
  pointer-events: auto;
6443
+ visibility: visible;
6444
+ transition: opacity 0.15s ease, visibility 0s;
6164
6445
  }
6165
6446
  .kpt-speed-dial[data-direction=up] .kpt-speed-dial__actions {
6166
6447
  flex-direction: column-reverse;
@@ -6241,6 +6522,17 @@
6241
6522
  animation-duration: 1.4s;
6242
6523
  }
6243
6524
  }
6525
+ .kpt-spinner__label {
6526
+ position: absolute;
6527
+ width: 1px;
6528
+ height: 1px;
6529
+ margin: -1px;
6530
+ padding: 0;
6531
+ overflow: hidden;
6532
+ clip-path: inset(50%);
6533
+ white-space: nowrap;
6534
+ border: 0;
6535
+ }
6244
6536
  }
6245
6537
 
6246
6538
  /* src/lib/split-button/split-button.component.scss */
@@ -6262,6 +6554,22 @@
6262
6554
  --_fg: var(--kpt-color-on-muted);
6263
6555
  --_bg-hover: var(--kpt-color-muted-hover);
6264
6556
  }
6557
+ .kpt-split-button[data-variant=outline] {
6558
+ --_bg: transparent;
6559
+ --_fg: var(--kpt-button-outline-fg);
6560
+ --_bg-hover: var(--kpt-button-outline-bg-hover);
6561
+ --_divider: var(--kpt-button-outline-border);
6562
+ border: var(--kpt-border-width-thin, 1px) solid var(--kpt-button-outline-border);
6563
+ }
6564
+ .kpt-split-button[data-variant=outline] .kpt-split-button__main,
6565
+ .kpt-split-button[data-variant=outline] .kpt-split-button__toggle {
6566
+ height: calc(2.5rem - 2 * var(--kpt-border-width-thin, 1px));
6567
+ }
6568
+ .kpt-split-button[data-variant=text] {
6569
+ --_bg: transparent;
6570
+ --_fg: var(--kpt-button-text-fg);
6571
+ --_bg-hover: var(--kpt-button-text-bg-hover);
6572
+ }
6265
6573
  .kpt-split-button__main, .kpt-split-button__toggle {
6266
6574
  border: 0;
6267
6575
  background: var(--_bg);
@@ -6304,7 +6612,7 @@
6304
6612
  align-items: center;
6305
6613
  justify-content: center;
6306
6614
  width: 2.25rem;
6307
- border-inline-start: 1px solid color-mix(in oklch, var(--_fg) 25%, transparent);
6615
+ border-inline-start: 1px solid var(--_divider, color-mix(in oklch, var(--_fg) 25%, transparent));
6308
6616
  }
6309
6617
  .kpt-split-button__panel {
6310
6618
  min-width: 11rem;
@@ -6387,6 +6695,7 @@
6387
6695
  @layer kpt.components {
6388
6696
  .kpt-splitter-host {
6389
6697
  display: block;
6698
+ height: 100%;
6390
6699
  }
6391
6700
  .kpt-splitter {
6392
6701
  display: flex;
@@ -6704,6 +7013,14 @@
6704
7013
  opacity: 0.6;
6705
7014
  background: var(--kpt-color-surface-variant);
6706
7015
  }
7016
+ .kpt-textarea__counter {
7017
+ display: block;
7018
+ margin-top: var(--kpt-space-1, 0.25rem);
7019
+ text-align: end;
7020
+ font-size: var(--kpt-font-size-xs, 0.75rem);
7021
+ font-variant-numeric: tabular-nums;
7022
+ color: var(--kpt-color-on-surface-muted);
7023
+ }
6707
7024
  }
6708
7025
 
6709
7026
  /* src/lib/timeline/timeline.component.scss */
@@ -6842,6 +7159,21 @@
6842
7159
  font-weight: var(--kpt-font-weight-semibold, 600);
6843
7160
  margin-bottom: 0.1rem;
6844
7161
  }
7162
+ .kpt-toast__action {
7163
+ flex: none;
7164
+ align-self: center;
7165
+ padding: var(--kpt-space-1, 0.25rem) var(--kpt-space-2, 0.5rem);
7166
+ border: 0;
7167
+ border-radius: var(--kpt-radius-sm, 0.25rem);
7168
+ background: none;
7169
+ color: var(--kpt-color-primary);
7170
+ font: inherit;
7171
+ font-weight: var(--kpt-font-weight-semibold, 600);
7172
+ cursor: pointer;
7173
+ }
7174
+ .kpt-toast__action:hover {
7175
+ background: var(--kpt-color-muted);
7176
+ }
6845
7177
  .kpt-toast__close {
6846
7178
  background: none;
6847
7179
  border: 0;
@@ -6854,6 +7186,17 @@
6854
7186
  .kpt-toast__close:hover {
6855
7187
  color: var(--kpt-color-on-surface);
6856
7188
  }
7189
+ .kpt-toast-container__live {
7190
+ position: absolute;
7191
+ width: 1px;
7192
+ height: 1px;
7193
+ margin: -1px;
7194
+ padding: 0;
7195
+ overflow: hidden;
7196
+ clip-path: inset(50%);
7197
+ white-space: nowrap;
7198
+ border: 0;
7199
+ }
6857
7200
  @keyframes kpt-toast-in {
6858
7201
  from {
6859
7202
  opacity: 0;
@@ -6919,6 +7262,13 @@
6919
7262
  margin: 0;
6920
7263
  padding: 0;
6921
7264
  }
7265
+ .kpt-tree__node {
7266
+ outline: none;
7267
+ }
7268
+ .kpt-tree__node:focus-visible > .kpt-tree__row {
7269
+ outline: var(--kpt-border-width-medium, 2px) solid var(--kpt-color-focus-ring);
7270
+ outline-offset: -2px;
7271
+ }
6922
7272
  .kpt-tree__row {
6923
7273
  display: flex;
6924
7274
  align-items: center;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@konce-pt/styles",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "Base CSS for Koncept UI — reset, cascade @layer ordering and neutral light/dark theme (SCSS source).",
5
5
  "license": "MIT",
6
6
  "author": "konce.pt",
@@ -52,7 +52,7 @@
52
52
  "src"
53
53
  ],
54
54
  "peerDependencies": {
55
- "@konce-pt/tokens": "0.9.0"
55
+ "@konce-pt/tokens": "0.10.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "sass": "^1.77.0"