@digiko-npm/designsystem 0.3.34 → 0.4.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.
@@ -1,4 +1,4 @@
1
- /* @ds/designsystem v0.3.34 */
1
+ /* @ds/designsystem v0.4.0 */
2
2
  /* ==========================================================================
3
3
  @digiko-npm/designsystem
4
4
 
@@ -711,8 +711,8 @@ hr {
711
711
  }
712
712
 
713
713
  .ds-btn:focus-visible {
714
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
715
- outline-offset: var(--ds-ring-offset);
714
+ outline: none;
715
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
716
716
  }
717
717
 
718
718
  .ds-btn:disabled,
@@ -895,8 +895,11 @@ hr {
895
895
  transform: translateY(-4px);
896
896
  }
897
897
  .ds-card--interactive:focus-visible {
898
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
899
- outline-offset: var(--ds-ring-offset);
898
+ outline: none;
899
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
900
+ }
901
+ .ds-card--interactive:hover:focus-visible {
902
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color), var(--ds-shadow-lg);
900
903
  }
901
904
 
902
905
  /* Elevated card — visible shadow */
@@ -948,6 +951,9 @@ hr {
948
951
  object-fit: cover;
949
952
  background-color: var(--ds-color-bg-elevated);
950
953
  }
954
+ .ds-card__media--square { aspect-ratio: 1; }
955
+ .ds-card__media--video { aspect-ratio: 16/9; }
956
+ .ds-card__media--auto { aspect-ratio: auto; }
951
957
 
952
958
  /* Compact */
953
959
  .ds-card--compact .ds-card__header,
@@ -1011,10 +1017,14 @@ hr {
1011
1017
  margin-bottom: var(--ds-space-1-5);
1012
1018
  }
1013
1019
 
1020
+ .ds-input,
1021
+ .ds-textarea {
1022
+ width: 100%;
1023
+ }
1024
+
1014
1025
  .ds-input,
1015
1026
  .ds-textarea,
1016
1027
  .ds-select {
1017
- width: 100%;
1018
1028
  padding: 0 var(--ds-space-4);
1019
1029
  font-family: var(--ds-font-sans);
1020
1030
  font-size: var(--ds-text-base); /* 16px — prevents iOS auto-zoom on focus */
@@ -1130,6 +1140,50 @@ hr {
1130
1140
  padding-right: var(--ds-space-8);
1131
1141
  }
1132
1142
 
1143
+ /* --- Layout Modifiers ---
1144
+ Override default width/display/chrome assumptions. */
1145
+
1146
+ /* Full width (opt-in for select, already default for input/textarea) */
1147
+ .ds-select--full {
1148
+ width: 100%;
1149
+ }
1150
+
1151
+ /* Flush — naked input inside a styled container.
1152
+ No border, no background, no padding, no focus ring.
1153
+ The container handles visual chrome. */
1154
+ .ds-input--flush {
1155
+ background: transparent;
1156
+ border: none;
1157
+ padding: 0;
1158
+ border-radius: 0;
1159
+ box-shadow: none;
1160
+ height: auto;
1161
+ }
1162
+ .ds-input--flush:hover {
1163
+ border-color: transparent;
1164
+ }
1165
+ .ds-input--flush:focus-visible {
1166
+ border-color: transparent;
1167
+ box-shadow: none;
1168
+ }
1169
+
1170
+ /* Inline — auto-width for use in flex rows */
1171
+ .ds-input--inline {
1172
+ width: auto;
1173
+ display: inline-flex;
1174
+ }
1175
+
1176
+ /* --- Input Group: icon-right ---
1177
+ Move icon to the right side, flip input padding. */
1178
+ .ds-input-group--icon-right .ds-input-group__icon {
1179
+ left: auto;
1180
+ right: var(--ds-space-3);
1181
+ }
1182
+ .ds-input-group--icon-right .ds-input {
1183
+ padding-left: var(--ds-space-4);
1184
+ padding-right: calc(var(--ds-space-3) + 1rem + var(--ds-space-2));
1185
+ }
1186
+
1133
1187
  /* Help text */
1134
1188
  .ds-help {
1135
1189
  font-size: var(--ds-text-xs);
@@ -1336,8 +1390,8 @@ hr {
1336
1390
  }
1337
1391
 
1338
1392
  .ds-nav__link:focus-visible {
1339
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
1340
- outline-offset: var(--ds-ring-offset);
1393
+ outline: none;
1394
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
1341
1395
  }
1342
1396
 
1343
1397
  .ds-nav__link--active {
@@ -1370,8 +1424,8 @@ hr {
1370
1424
  }
1371
1425
 
1372
1426
  .ds-nav__icon-btn:focus-visible {
1373
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
1374
- outline-offset: var(--ds-ring-offset);
1427
+ outline: none;
1428
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
1375
1429
  }
1376
1430
 
1377
1431
  /* --- Mobile nav overlay --- */
@@ -1449,8 +1503,8 @@ hr {
1449
1503
  }
1450
1504
 
1451
1505
  .ds-sidebar__link:focus-visible {
1452
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
1453
- outline-offset: calc(-1 * var(--ds-ring-offset));
1506
+ outline: none;
1507
+ box-shadow: inset 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
1454
1508
  }
1455
1509
 
1456
1510
  .ds-sidebar__link--active {
@@ -1543,8 +1597,8 @@ hr {
1543
1597
  color: var(--ds-color-text);
1544
1598
  }
1545
1599
  .ds-modal__close:focus-visible {
1546
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
1547
- outline-offset: var(--ds-ring-offset);
1600
+ outline: none;
1601
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
1548
1602
  }
1549
1603
 
1550
1604
  .ds-modal__body {
@@ -1624,8 +1678,8 @@ hr {
1624
1678
  color: var(--ds-color-text);
1625
1679
  }
1626
1680
  .ds-toast__close:focus-visible {
1627
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
1628
- outline-offset: var(--ds-ring-offset);
1681
+ outline: none;
1682
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
1629
1683
  }
1630
1684
 
1631
1685
  @keyframes ds-toast-in {
@@ -1805,8 +1859,8 @@ hr {
1805
1859
  }
1806
1860
 
1807
1861
  .ds-tab:focus-visible {
1808
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
1809
- outline-offset: var(--ds-ring-offset);
1862
+ outline: none;
1863
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
1810
1864
  border-radius: var(--ds-radius-sm);
1811
1865
  }
1812
1866
 
@@ -1970,8 +2024,8 @@ hr {
1970
2024
  }
1971
2025
 
1972
2026
  .ds-alert__close:focus-visible {
1973
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
1974
- outline-offset: var(--ds-ring-offset);
2027
+ outline: none;
2028
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
1975
2029
  }
1976
2030
 
1977
2031
  /* --- Compact Variant --- */
@@ -2144,6 +2198,11 @@ hr {
2144
2198
  transform-origin: bottom right;
2145
2199
  }
2146
2200
 
2201
+ /* --- Width variants --- */
2202
+ .ds-dropdown__menu--sm { min-width: 8rem; }
2203
+ .ds-dropdown__menu--lg { min-width: 20rem; }
2204
+ .ds-dropdown__menu--auto { min-width: auto; }
2205
+
2147
2206
  /* --- Menu item --- */
2148
2207
 
2149
2208
  .ds-dropdown__item {
@@ -2167,8 +2226,8 @@ hr {
2167
2226
  color: var(--ds-color-text);
2168
2227
  }
2169
2228
  .ds-dropdown__item:focus-visible {
2170
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
2171
- outline-offset: calc(-1 * var(--ds-ring-offset));
2229
+ outline: none;
2230
+ box-shadow: inset 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
2172
2231
  }
2173
2232
 
2174
2233
  .ds-dropdown__item--active {
@@ -2666,6 +2725,12 @@ hr {
2666
2725
  border-radius: var(--ds-radius-xl);
2667
2726
  }
2668
2727
 
2728
+ /* --- Left-aligned variant --- */
2729
+ .ds-empty-state--left {
2730
+ align-items: flex-start;
2731
+ text-align: left;
2732
+ }
2733
+
2669
2734
 
2670
2735
  /* === Tier 2 — Common === */
2671
2736
  /* ==========================================================================
@@ -2728,8 +2793,8 @@ hr {
2728
2793
  }
2729
2794
 
2730
2795
  .ds-datepicker__trigger:focus-visible {
2731
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
2732
- outline-offset: var(--ds-ring-offset);
2796
+ outline: none;
2797
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
2733
2798
  }
2734
2799
 
2735
2800
  /* Calendar panel */
@@ -2795,8 +2860,8 @@ hr {
2795
2860
  color: var(--ds-color-text);
2796
2861
  }
2797
2862
  .ds-datepicker__nav:focus-visible {
2798
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
2799
- outline-offset: calc(-1 * var(--ds-ring-offset));
2863
+ outline: none;
2864
+ box-shadow: inset 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
2800
2865
  }
2801
2866
 
2802
2867
  /* Weekday header row */
@@ -2844,8 +2909,8 @@ hr {
2844
2909
  background-color: var(--ds-color-bg-elevated);
2845
2910
  }
2846
2911
  .ds-datepicker__day:focus-visible {
2847
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
2848
- outline-offset: calc(-1 * var(--ds-ring-offset));
2912
+ outline: none;
2913
+ box-shadow: inset 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
2849
2914
  }
2850
2915
 
2851
2916
  /* Today — subtle ring */
@@ -2899,8 +2964,8 @@ hr {
2899
2964
  border-color: var(--ds-color-border-hover);
2900
2965
  }
2901
2966
  .ds-datepicker__today:focus-visible {
2902
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
2903
- outline-offset: var(--ds-ring-offset);
2967
+ outline: none;
2968
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
2904
2969
  }
2905
2970
 
2906
2971
  /* Step arrows — prev/next day buttons beside the date text */
@@ -2926,8 +2991,8 @@ hr {
2926
2991
  color: var(--ds-color-text);
2927
2992
  }
2928
2993
  .ds-datepicker__step:focus-visible {
2929
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
2930
- outline-offset: calc(-1 * var(--ds-ring-offset));
2994
+ outline: none;
2995
+ box-shadow: inset 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
2931
2996
  }
2932
2997
 
2933
2998
  /* Compact mode — for inline table cells */
@@ -3049,8 +3114,8 @@ hr {
3049
3114
  --------------------------------------------------------------------------- */
3050
3115
 
3051
3116
  .ds-toggle:focus-visible {
3052
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
3053
- outline-offset: var(--ds-ring-offset);
3117
+ outline: none;
3118
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3054
3119
  }
3055
3120
 
3056
3121
  /* ---------------------------------------------------------------------------
@@ -3169,8 +3234,8 @@ hr {
3169
3234
  }
3170
3235
 
3171
3236
  .ds-breadcrumb__link:focus-visible {
3172
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
3173
- outline-offset: var(--ds-ring-offset);
3237
+ outline: none;
3238
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3174
3239
  border-radius: var(--ds-radius-sm);
3175
3240
  }
3176
3241
 
@@ -3255,8 +3320,8 @@ hr {
3255
3320
  }
3256
3321
 
3257
3322
  .ds-pagination__item:focus-visible {
3258
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
3259
- outline-offset: var(--ds-ring-offset);
3323
+ outline: none;
3324
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3260
3325
  }
3261
3326
 
3262
3327
  /* ---------------------------------------------------------------------------
@@ -3314,8 +3379,8 @@ hr {
3314
3379
 
3315
3380
  .ds-pagination__prev:focus-visible,
3316
3381
  .ds-pagination__next:focus-visible {
3317
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
3318
- outline-offset: var(--ds-ring-offset);
3382
+ outline: none;
3383
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3319
3384
  }
3320
3385
 
3321
3386
  .ds-pagination__prev:disabled,
@@ -3407,6 +3472,7 @@ hr {
3407
3472
  /* Tags used as <button> for selection — no focus ring on click */
3408
3473
  button.ds-tag:focus-visible {
3409
3474
  outline: none;
3475
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3410
3476
  }
3411
3477
 
3412
3478
  /* ---------------------------------------------------------------------------
@@ -3489,8 +3555,8 @@ button.ds-tag:focus-visible {
3489
3555
  }
3490
3556
 
3491
3557
  .ds-tag__remove:focus-visible {
3492
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
3493
- outline-offset: var(--ds-ring-offset);
3558
+ outline: none;
3559
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3494
3560
  opacity: 1;
3495
3561
  }
3496
3562
 
@@ -3611,8 +3677,8 @@ button.ds-tag:focus-visible {
3611
3677
  background-color: var(--ds-color-overlay);
3612
3678
  }
3613
3679
  .ds-accordion__trigger:focus-visible {
3614
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
3615
- outline-offset: var(--ds-ring-offset);
3680
+ outline: none;
3681
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3616
3682
  }
3617
3683
 
3618
3684
  /* Open state – rotate chevron */
@@ -3875,8 +3941,8 @@ button.ds-tag:focus-visible {
3875
3941
  color: var(--ds-color-text);
3876
3942
  }
3877
3943
  .ds-drawer__close:focus-visible {
3878
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
3879
- outline-offset: var(--ds-ring-offset);
3944
+ outline: none;
3945
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
3880
3946
  }
3881
3947
 
3882
3948
  /* ==========================================================================
@@ -4163,8 +4229,8 @@ button.ds-tag:focus-visible {
4163
4229
  background-color var(--ds-duration-fast) var(--ds-ease-default);
4164
4230
  }
4165
4231
  .ds-drop-zone:focus-visible {
4166
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
4167
- outline-offset: var(--ds-ring-offset);
4232
+ outline: none;
4233
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
4168
4234
  }
4169
4235
 
4170
4236
  :root:not(.dark) .ds-drop-zone {
@@ -4299,8 +4365,8 @@ button.ds-tag:focus-visible {
4299
4365
 
4300
4366
  .ds-custom-select__trigger:focus-visible {
4301
4367
  border-color: var(--ds-color-border-active);
4302
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
4303
- outline-offset: -1px;
4368
+ outline: none;
4369
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
4304
4370
  }
4305
4371
 
4306
4372
  .ds-custom-select__trigger--open {
@@ -4467,8 +4533,8 @@ button.ds-tag:focus-visible {
4467
4533
  color: var(--ds-color-text);
4468
4534
  }
4469
4535
  .ds-custom-select__option:focus-visible {
4470
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
4471
- outline-offset: calc(-1 * var(--ds-ring-offset));
4536
+ outline: none;
4537
+ box-shadow: inset 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
4472
4538
  }
4473
4539
 
4474
4540
  .ds-custom-select__option--selected {
@@ -4621,6 +4687,12 @@ tr:hover .ds-sortable__handle,
4621
4687
  opacity: 1;
4622
4688
  }
4623
4689
 
4690
+ .ds-sortable__handle:focus-visible {
4691
+ outline: none;
4692
+ box-shadow: 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
4693
+ border-radius: var(--ds-radius-sm);
4694
+ }
4695
+
4624
4696
  tr:hover .ds-sortable__handle,
4625
4697
  .ds-sortable-row:hover .ds-sortable__handle {
4626
4698
  color: var(--ds-color-text-secondary);
@@ -4831,12 +4903,12 @@ tr:hover .ds-sortable__handle,
4831
4903
  /* Focus ring */
4832
4904
  .ds-slider input[type="range"]:focus-visible::-webkit-slider-thumb {
4833
4905
  outline: var(--ds-ring-width) solid var(--ds-ring-color);
4834
- outline-offset: var(--ds-ring-offset);
4906
+ outline-offset: 0;
4835
4907
  }
4836
4908
 
4837
4909
  .ds-slider input[type="range"]:focus-visible::-moz-range-thumb {
4838
4910
  outline: var(--ds-ring-width) solid var(--ds-ring-color);
4839
- outline-offset: var(--ds-ring-offset);
4911
+ outline-offset: 0;
4840
4912
  }
4841
4913
 
4842
4914
  /* Labels row */
@@ -5215,8 +5287,8 @@ tr:hover .ds-sortable__handle,
5215
5287
  color: var(--ds-color-text);
5216
5288
  }
5217
5289
  .ds-command__item:focus-visible {
5218
- outline: var(--ds-ring-width) solid var(--ds-ring-color);
5219
- outline-offset: calc(-1 * var(--ds-ring-offset));
5290
+ outline: none;
5291
+ box-shadow: inset 0 0 0 var(--ds-ring-width) var(--ds-ring-color);
5220
5292
  }
5221
5293
 
5222
5294
  /* Item icon */