@tylertech/forge 3.10.5 → 3.11.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 (154) hide show
  1. package/custom-elements.json +341 -139
  2. package/dist/app-bar/forge-app-bar.css +11 -5
  3. package/dist/button/forge-button.css +12 -6
  4. package/dist/checkbox/forge-checkbox.css +21 -17
  5. package/dist/chips/forge-chips.css +10 -4
  6. package/dist/field/forge-field.css +7 -5
  7. package/dist/floating-action-button/forge-floating-action-button.css +10 -6
  8. package/dist/forge.css +6 -1
  9. package/dist/icon-button/forge-icon-button.css +10 -4
  10. package/dist/lib.js +22 -22
  11. package/dist/lib.js.map +4 -4
  12. package/dist/list/forge-list.css +57 -3
  13. package/dist/radio/forge-radio.css +20 -12
  14. package/dist/skip-link/forge-skip-link.css +36 -32
  15. package/dist/switch/forge-switch.css +7 -5
  16. package/dist/table/forge-table.css +6 -1
  17. package/dist/vscode.html-custom-data.json +53 -43
  18. package/esm/accordion/accordion.d.ts +2 -0
  19. package/esm/accordion/accordion.js +2 -0
  20. package/esm/app-bar/app-bar/app-bar-adapter.js +2 -2
  21. package/esm/app-bar/app-bar/app-bar.d.ts +1 -1
  22. package/esm/app-bar/app-bar/app-bar.js +1 -1
  23. package/esm/app-bar/help-button/app-bar-help-button.d.ts +1 -1
  24. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  25. package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +1 -1
  26. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  27. package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +2 -0
  28. package/esm/app-bar/notification-button/app-bar-notification-button.js +2 -0
  29. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +2 -1
  30. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +2 -0
  31. package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +2 -0
  32. package/esm/app-bar/profile-button/app-bar-profile-button.js +2 -0
  33. package/esm/app-bar/search/app-bar-search.d.ts +2 -0
  34. package/esm/app-bar/search/app-bar-search.js +2 -0
  35. package/esm/autocomplete/autocomplete.d.ts +2 -0
  36. package/esm/autocomplete/autocomplete.js +2 -0
  37. package/esm/backdrop/backdrop.d.ts +2 -0
  38. package/esm/backdrop/backdrop.js +2 -0
  39. package/esm/badge/badge.d.ts +2 -0
  40. package/esm/badge/badge.js +2 -0
  41. package/esm/button/base/base-button-adapter.js +2 -2
  42. package/esm/button-area/button-area-adapter.js +2 -2
  43. package/esm/button-toggle/button-toggle/button-toggle-adapter.js +2 -2
  44. package/esm/button-toggle/button-toggle/button-toggle.d.ts +2 -0
  45. package/esm/button-toggle/button-toggle/button-toggle.js +2 -0
  46. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +1 -1
  47. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +1 -1
  48. package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
  49. package/esm/calendar/calendar.d.ts +2 -0
  50. package/esm/calendar/calendar.js +3 -1
  51. package/esm/card/card.d.ts +2 -0
  52. package/esm/card/card.js +2 -0
  53. package/esm/chip-field/chip-field.d.ts +2 -0
  54. package/esm/chip-field/chip-field.js +2 -0
  55. package/esm/chips/chip/chip-adapter.js +2 -2
  56. package/esm/chips/chip/chip.d.ts +2 -0
  57. package/esm/chips/chip/chip.js +2 -0
  58. package/esm/color-picker/color-picker.d.ts +2 -0
  59. package/esm/color-picker/color-picker.js +3 -1
  60. package/esm/core/utils/a11y-utils.js +17 -0
  61. package/esm/core/utils/utils.js +8 -2
  62. package/esm/date-picker/date-picker.d.ts +2 -0
  63. package/esm/date-picker/date-picker.js +2 -0
  64. package/esm/date-range-picker/date-range-picker.d.ts +2 -0
  65. package/esm/date-range-picker/date-range-picker.js +2 -0
  66. package/esm/deprecated/button/deprecated-button.js +3 -3
  67. package/esm/deprecated/icon-button/deprecated-icon-button.js +2 -2
  68. package/esm/drawer/drawer/drawer.d.ts +2 -0
  69. package/esm/drawer/drawer/drawer.js +3 -1
  70. package/esm/drawer/mini-drawer/mini-drawer.d.ts +2 -0
  71. package/esm/drawer/mini-drawer/mini-drawer.js +3 -1
  72. package/esm/drawer/modal-drawer/modal-drawer.d.ts +2 -0
  73. package/esm/drawer/modal-drawer/modal-drawer.js +3 -1
  74. package/esm/field/field-adapter.js +2 -2
  75. package/esm/field/field-core.d.ts +3 -3
  76. package/esm/focus-indicator/focus-indicator-constants.d.ts +1 -11
  77. package/esm/focus-indicator/focus-indicator-constants.js +2 -17
  78. package/esm/focus-indicator/focus-indicator.d.ts +52 -25
  79. package/esm/focus-indicator/focus-indicator.js +137 -61
  80. package/esm/focus-indicator/index.d.ts +0 -2
  81. package/esm/focus-indicator/index.js +0 -2
  82. package/esm/icon-button/icon-button.d.ts +2 -0
  83. package/esm/icon-button/icon-button.js +2 -0
  84. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +2 -0
  85. package/esm/keyboard-shortcut/keyboard-shortcut.js +2 -0
  86. package/esm/list/list/list.js +1 -1
  87. package/esm/list/list-item/list-item-constants.js +1 -1
  88. package/esm/list/list-item/list-item-core.d.ts +2 -0
  89. package/esm/list/list-item/list-item-core.js +29 -6
  90. package/esm/list/list-item/list-item.d.ts +1 -0
  91. package/esm/list/list-item/list-item.js +2 -1
  92. package/esm/list-dropdown/list-dropdown-constants.d.ts +6 -0
  93. package/esm/list-dropdown/list-dropdown-constants.js +6 -1
  94. package/esm/list-dropdown/list-dropdown-utils.js +28 -1
  95. package/esm/menu/menu.d.ts +2 -0
  96. package/esm/menu/menu.js +2 -0
  97. package/esm/page-state/page-state.d.ts +2 -1
  98. package/esm/page-state/page-state.js +2 -1
  99. package/esm/paginator/paginator.d.ts +2 -0
  100. package/esm/paginator/paginator.js +2 -0
  101. package/esm/popover/popover.js +1 -1
  102. package/esm/profile-card/profile-card.d.ts +2 -0
  103. package/esm/profile-card/profile-card.js +2 -0
  104. package/esm/select/core/base-select-constants.d.ts +4 -0
  105. package/esm/select/core/base-select-core.d.ts +22 -2
  106. package/esm/select/core/base-select-core.js +217 -40
  107. package/esm/select/option/option.d.ts +2 -0
  108. package/esm/select/option/option.js +2 -0
  109. package/esm/select/option-group/option-group.d.ts +2 -0
  110. package/esm/select/option-group/option-group.js +2 -0
  111. package/esm/select/select/select-constants.d.ts +5 -0
  112. package/esm/select/select/select-constants.js +5 -2
  113. package/esm/select/select/select.d.ts +14 -2
  114. package/esm/select/select/select.js +22 -1
  115. package/esm/select/select-dropdown/select-dropdown.d.ts +2 -0
  116. package/esm/select/select-dropdown/select-dropdown.js +2 -0
  117. package/esm/split-button/split-button.js +1 -1
  118. package/esm/split-view/split-view/split-view.d.ts +2 -0
  119. package/esm/split-view/split-view/split-view.js +2 -0
  120. package/esm/split-view/split-view-panel/split-view-panel.d.ts +2 -0
  121. package/esm/split-view/split-view-panel/split-view-panel.js +3 -1
  122. package/esm/stepper/step/step.d.ts +2 -0
  123. package/esm/stepper/step/step.js +3 -1
  124. package/esm/stepper/stepper/stepper.d.ts +2 -0
  125. package/esm/stepper/stepper/stepper.js +2 -0
  126. package/esm/table/table-utils.js +3 -0
  127. package/esm/table/table.d.ts +2 -0
  128. package/esm/table/table.js +4 -1
  129. package/esm/tabs/tab/tab-adapter.js +2 -2
  130. package/esm/tabs/tab/tab.d.ts +2 -0
  131. package/esm/tabs/tab/tab.js +2 -0
  132. package/esm/time-picker/time-picker.d.ts +2 -0
  133. package/esm/time-picker/time-picker.js +2 -0
  134. package/esm/tooltip/tooltip-adapter.d.ts +6 -0
  135. package/esm/tooltip/tooltip-adapter.js +9 -0
  136. package/esm/tooltip/tooltip-constants.d.ts +1 -0
  137. package/esm/tooltip/tooltip-constants.js +2 -1
  138. package/esm/tooltip/tooltip-core.d.ts +20 -0
  139. package/esm/tooltip/tooltip-core.js +96 -2
  140. package/esm/tooltip/tooltip.js +1 -1
  141. package/esm/view-switcher/view/view.d.ts +2 -0
  142. package/esm/view-switcher/view/view.js +2 -0
  143. package/esm/view-switcher/view-switcher.d.ts +2 -0
  144. package/esm/view-switcher/view-switcher.js +2 -0
  145. package/package.json +4 -4
  146. package/sass/focus-indicator/focus-indicator.scss +1 -1
  147. package/sass/icon-button/forge-icon-button.scss +3 -3
  148. package/sass/list/forge-list.scss +6 -6
  149. package/sass/table/_core.scss +13 -1
  150. package/sass/tooltip/_core.scss +0 -2
  151. package/esm/focus-indicator/focus-indicator-adapter.d.ts +0 -29
  152. package/esm/focus-indicator/focus-indicator-adapter.js +0 -37
  153. package/esm/focus-indicator/focus-indicator-core.d.ts +0 -48
  154. package/esm/focus-indicator/focus-indicator-core.js +0 -129
@@ -243,8 +243,6 @@
243
243
  .forge-list-item--interactive:not(.forge-list-item--disabled),
244
244
  :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) .forge-list-item--interactive {
245
245
  cursor: pointer;
246
- outline: none;
247
- --forge-focus-indicator-shape: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));
248
246
  }
249
247
  @keyframes forge-focus-indicator-outward-grow {
250
248
  from {
@@ -276,6 +274,33 @@
276
274
  a,
277
275
  label,
278
276
  .forge-list-item--interactive:not(.forge-list-item--disabled),
277
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) a,
278
+ .forge-list-item:has(button:not(:disabled),
279
+ a,
280
+ label,
281
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
282
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) button,
283
+ .forge-list-item:has(button:not(:disabled),
284
+ a,
285
+ label,
286
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
287
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) label,
288
+ .forge-list-item:has(button:not(:disabled),
289
+ a,
290
+ label,
291
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
292
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled]),
293
+ .forge-list-item:has(button:not(:disabled),
294
+ a,
295
+ label,
296
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
297
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) .forge-list-item--interactive {
298
+ outline: none;
299
+ }
300
+ .forge-list-item:has(button:not(:disabled),
301
+ a,
302
+ label,
303
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
279
304
  :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) a:focus-visible::after,
280
305
  .forge-list-item:has(button:not(:disabled),
281
306
  a,
@@ -358,6 +383,33 @@
358
383
  content: "";
359
384
  display: block;
360
385
  }
386
+ .forge-list-item:has(button:not(:disabled),
387
+ a,
388
+ label,
389
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
390
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) a,
391
+ .forge-list-item:has(button:not(:disabled),
392
+ a,
393
+ label,
394
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
395
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) button,
396
+ .forge-list-item:has(button:not(:disabled),
397
+ a,
398
+ label,
399
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
400
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) label,
401
+ .forge-list-item:has(button:not(:disabled),
402
+ a,
403
+ label,
404
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
405
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled]),
406
+ .forge-list-item:has(button:not(:disabled),
407
+ a,
408
+ label,
409
+ .forge-list-item--interactive:not(.forge-list-item--disabled),
410
+ :is(forge-checkbox, forge-radio, forge-switch, input):not([disabled])) .forge-list-item--interactive {
411
+ --forge-focus-indicator-shape: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));
412
+ }
361
413
  .forge-list-item__text {
362
414
  -moz-osx-font-smoothing: grayscale;
363
415
  -webkit-font-smoothing: antialiased;
@@ -434,7 +486,6 @@
434
486
  @layer selected {
435
487
  .forge-list-item--selected {
436
488
  color: var(--_list-item-selected-color);
437
- --forge-state-layer-color: var(--_list-item-selected-color);
438
489
  }
439
490
  .forge-list-item--selected::before {
440
491
  content: "";
@@ -445,6 +496,9 @@
445
496
  background-color: var(--_list-item-selected-background);
446
497
  pointer-events: none;
447
498
  }
499
+ .forge-list-item--selected {
500
+ --forge-state-layer-color: var(--_list-item-selected-color);
501
+ }
448
502
  .forge-list-item--selected .forge-list-item__start {
449
503
  color: var(--_list-item-start-selected-color);
450
504
  }
@@ -40,15 +40,6 @@
40
40
 
41
41
  .forge-radio {
42
42
  outline: none;
43
- --forge-focus-indicator-color: var(--_radio-primary-color);
44
- --forge-focus-indicator-outward-offset: 0px;
45
- --forge-focus-indicator-shape: var(--_radio-state-layer-shape);
46
- display: inline flex;
47
- position: relative;
48
- align-items: center;
49
- justify-content: center;
50
- inline-size: var(--_radio-state-layer-width);
51
- block-size: var(--_radio-state-layer-height);
52
43
  }
53
44
  .forge-radio:has(input[type=radio]:focus-visible)::after {
54
45
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
@@ -88,6 +79,17 @@
88
79
  content: "";
89
80
  display: block;
90
81
  }
82
+ .forge-radio {
83
+ --forge-focus-indicator-color: var(--_radio-primary-color);
84
+ --forge-focus-indicator-outward-offset: 0px;
85
+ --forge-focus-indicator-shape: var(--_radio-state-layer-shape);
86
+ display: inline flex;
87
+ position: relative;
88
+ align-items: center;
89
+ justify-content: center;
90
+ inline-size: var(--_radio-state-layer-width);
91
+ block-size: var(--_radio-state-layer-height);
92
+ }
91
93
  .forge-radio input[type=radio] {
92
94
  position: absolute;
93
95
  appearance: none;
@@ -113,7 +115,6 @@
113
115
  --_state-layer-hover-duration: var(--forge-state-layer-hover-duration, 15ms);
114
116
  --_state-layer-pressed-duration: var(--forge-state-layer-pressed-duration, 105ms);
115
117
  --_state-layer-animation-duration: var(--forge-state-layer-animation-duration, 375ms);
116
- border-radius: var(--_radio-state-layer-shape) !important;
117
118
  }
118
119
  .forge-radio input[type=radio]:not(:disabled) {
119
120
  opacity: 0;
@@ -134,6 +135,9 @@
134
135
  transition-duration: var(--_state-layer-pressed-duration);
135
136
  --_state-layer-pressed-opacity: var(--forge-state-layer-pressed-opacity, 0.18);
136
137
  }
138
+ .forge-radio input[type=radio]:not(:disabled) {
139
+ border-radius: var(--_radio-state-layer-shape) !important;
140
+ }
137
141
  .forge-radio::before {
138
142
  position: relative;
139
143
  align-items: center;
@@ -159,7 +163,6 @@
159
163
  inline-size: var(--_radio-width);
160
164
  block-size: var(--_radio-height);
161
165
  background: var(--_radio-background);
162
- content: "";
163
166
  }
164
167
  .forge-radio::before::after {
165
168
  content: "";
@@ -179,14 +182,19 @@
179
182
  scale: 0.5;
180
183
  opacity: 0;
181
184
  }
185
+ .forge-radio::before {
186
+ content: "";
187
+ }
182
188
  .forge-radio:has(input[type=radio]:checked)::before {
183
189
  border-color: var(--_radio-checked-border-color);
184
- background: radial-gradient(circle, var(--_radio-mark-color) 0%, var(--_radio-mark-color) calc(calc(var(--_radio-mark-size) / 1.4) - 0.2px), transparent calc(calc(var(--_radio-mark-size) / 1.4) + 0.2px), transparent 100%);
185
190
  }
186
191
  .forge-radio:has(input[type=radio]:checked)::before::after {
187
192
  scale: 1;
188
193
  opacity: 1;
189
194
  }
195
+ .forge-radio:has(input[type=radio]:checked)::before {
196
+ background: radial-gradient(circle, var(--_radio-mark-color) 0%, var(--_radio-mark-color) calc(calc(var(--_radio-mark-size) / 1.4) - 0.2px), transparent calc(calc(var(--_radio-mark-size) / 1.4) + 0.2px), transparent 100%);
197
+ }
190
198
  .forge-radio:has(input[type=radio]:disabled) {
191
199
  opacity: var(--_radio-disabled-opacity);
192
200
  }
@@ -28,38 +28,6 @@ a.forge-skip-link {
28
28
  --_state-layer-hover-duration: var(--forge-state-layer-hover-duration, 15ms);
29
29
  --_state-layer-pressed-duration: var(--forge-state-layer-pressed-duration, 105ms);
30
30
  --_state-layer-animation-duration: var(--forge-state-layer-animation-duration, 375ms);
31
- outline: none;
32
- --forge-focus-indicator-color: var(--_skip-link-background);
33
- transition-property: opacity, transform;
34
- transition-duration: var(--_skip-link-transition-duration);
35
- transition-timing-function: var(--_skip-link-transition-timing-function);
36
- display: block;
37
- position: fixed;
38
- inset: var(--_skip-link-inset);
39
- z-index: var(--_skip-link-z-index);
40
- block-size: fit-content;
41
- inline-size: fit-content;
42
- opacity: 0;
43
- transform: translateY(-100%);
44
- -moz-osx-font-smoothing: grayscale;
45
- -webkit-font-smoothing: antialiased;
46
- font-family: var(--forge-typography-body2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));
47
- font-size: var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1)));
48
- font-weight: var(--forge-typography-body2-font-weight, 400);
49
- line-height: var(--forge-typography-body2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.375)));
50
- letter-spacing: var(--forge-typography-body2-letter-spacing, 0.015625em);
51
- text-transform: var(--forge-typography-body2-text-transform, inherit);
52
- text-decoration: var(--forge-typography-body2-text-decoration, inherit);
53
- display: block;
54
- outline: none;
55
- box-shadow: var(--_skip-link-elevation);
56
- border-radius: var(--_skip-link-shape);
57
- background: var(--_skip-link-background);
58
- padding-block: var(--_skip-link-padding-block);
59
- padding-inline: var(--_skip-link-padding-inline);
60
- cursor: pointer;
61
- color: var(--_skip-link-color);
62
- text-decoration: underline;
63
31
  }
64
32
  a.forge-skip-link::before {
65
33
  opacity: 0;
@@ -81,6 +49,9 @@ a.forge-skip-link:active::before {
81
49
  transition-duration: var(--_state-layer-pressed-duration);
82
50
  --_state-layer-pressed-opacity: var(--forge-state-layer-pressed-opacity, 0.18);
83
51
  }
52
+ a.forge-skip-link {
53
+ outline: none;
54
+ }
84
55
  a.forge-skip-link:focus-visible::after {
85
56
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
86
57
  --_focus-indicator-width: var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));
@@ -119,6 +90,39 @@ a.forge-skip-link:focus-visible::after {
119
90
  content: "";
120
91
  display: block;
121
92
  }
93
+ a.forge-skip-link {
94
+ --forge-focus-indicator-color: var(--_skip-link-background);
95
+ transition-property: opacity, transform;
96
+ transition-duration: var(--_skip-link-transition-duration);
97
+ transition-timing-function: var(--_skip-link-transition-timing-function);
98
+ display: block;
99
+ position: fixed;
100
+ inset: var(--_skip-link-inset);
101
+ z-index: var(--_skip-link-z-index);
102
+ block-size: fit-content;
103
+ inline-size: fit-content;
104
+ opacity: 0;
105
+ transform: translateY(-100%);
106
+ -moz-osx-font-smoothing: grayscale;
107
+ -webkit-font-smoothing: antialiased;
108
+ font-family: var(--forge-typography-body2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));
109
+ font-size: var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1)));
110
+ font-weight: var(--forge-typography-body2-font-weight, 400);
111
+ line-height: var(--forge-typography-body2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.375)));
112
+ letter-spacing: var(--forge-typography-body2-letter-spacing, 0.015625em);
113
+ text-transform: var(--forge-typography-body2-text-transform, inherit);
114
+ text-decoration: var(--forge-typography-body2-text-decoration, inherit);
115
+ display: block;
116
+ outline: none;
117
+ box-shadow: var(--_skip-link-elevation);
118
+ border-radius: var(--_skip-link-shape);
119
+ background: var(--_skip-link-background);
120
+ padding-block: var(--_skip-link-padding-block);
121
+ padding-inline: var(--_skip-link-padding-inline);
122
+ cursor: pointer;
123
+ color: var(--_skip-link-color);
124
+ text-decoration: underline;
125
+ }
122
126
  a.forge-skip-link:where(:focus-within, .forge-skip-link--persistent) {
123
127
  transition-property: opacity, transform;
124
128
  transition-duration: var(--_skip-link-transition-duration);
@@ -81,11 +81,6 @@
81
81
  block-size: max(var(--_switch-handle-height), var(--_switch-track-height), var(--_switch-current-state-layer-height));
82
82
  cursor: pointer;
83
83
  outline: none;
84
- --forge-focus-indicator-shape: var(--_switch-track-shape);
85
- --forge-focus-indicator-outward-offset: 0px;
86
- --_switch-current-state-layer-width: var(--_switch-state-layer-width);
87
- --_switch-current-state-layer-height: var(--_switch-state-layer-height);
88
- display: inline flex;
89
84
  }
90
85
  .forge-switch:has(input[type=checkbox][switch]:focus-visible)::after {
91
86
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
@@ -125,6 +120,13 @@
125
120
  content: "";
126
121
  display: block;
127
122
  }
123
+ .forge-switch {
124
+ --forge-focus-indicator-shape: var(--_switch-track-shape);
125
+ --forge-focus-indicator-outward-offset: 0px;
126
+ --_switch-current-state-layer-width: var(--_switch-state-layer-width);
127
+ --_switch-current-state-layer-height: var(--_switch-state-layer-height);
128
+ display: inline flex;
129
+ }
128
130
  .forge-switch input[type=checkbox][switch] {
129
131
  display: block;
130
132
  position: absolute;
@@ -111,7 +111,12 @@ forge-table {
111
111
  font: inherit;
112
112
  color: inherit;
113
113
  width: 100%;
114
- outline-offset: var(--forge-spacing-xxsmall, 4px);
114
+ outline: none;
115
+ position: relative;
116
+ }
117
+ .forge-table-head__cell--sortable button forge-focus-indicator {
118
+ border-radius: 4px;
119
+ --forge-focus-indicator-offset-inline: -4px;
115
120
  }
116
121
  .forge-table-head__cell--sortable.forge-table-head__cell--sorted-ascending .forge-table-head__cell-sort-icon {
117
122
  transform: rotate(180deg);