@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
@@ -132,10 +132,6 @@
132
132
  color: inherit;
133
133
  box-sizing: border-box;
134
134
  height: 100%;
135
- outline: none;
136
- --forge-focus-indicator-color: var(--_app-bar-foreground);
137
- --forge-focus-indicator-offset-block: var(--forge-spacing-xxsmall, 4px);
138
- --forge-focus-indicator-shape: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));
139
135
  }
140
136
  @keyframes forge-focus-indicator-outward-grow {
141
137
  from {
@@ -163,6 +159,9 @@
163
159
  border-width: var(--_focus-indicator-active-width);
164
160
  }
165
161
  }
162
+ .forge-app-bar a.forge-app-bar__title {
163
+ outline: none;
164
+ }
166
165
  .forge-app-bar a.forge-app-bar__title:focus-visible::after {
167
166
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
168
167
  --_focus-indicator-width: var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));
@@ -201,6 +200,11 @@
201
200
  content: "";
202
201
  display: block;
203
202
  }
203
+ .forge-app-bar a.forge-app-bar__title {
204
+ --forge-focus-indicator-color: var(--_app-bar-foreground);
205
+ --forge-focus-indicator-offset-block: var(--forge-spacing-xxsmall, 4px);
206
+ --forge-focus-indicator-shape: calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1));
207
+ }
204
208
  .forge-app-bar__logo-title-container {
205
209
  position: relative;
206
210
  display: flex;
@@ -221,7 +225,6 @@
221
225
  --_state-layer-hover-duration: var(--forge-state-layer-hover-duration, 15ms);
222
226
  --_state-layer-pressed-duration: var(--forge-state-layer-pressed-duration, 105ms);
223
227
  --_state-layer-animation-duration: var(--forge-state-layer-animation-duration, 375ms);
224
- --forge-state-layer-color: var(--_app-bar-foreground);
225
228
  }
226
229
  .forge-app-bar__logo-title-container:has(a.forge-app-bar__title)::before {
227
230
  opacity: 0;
@@ -243,6 +246,9 @@
243
246
  transition-duration: var(--_state-layer-pressed-duration);
244
247
  --_state-layer-pressed-opacity: var(--forge-state-layer-pressed-opacity, 0.18);
245
248
  }
249
+ .forge-app-bar__logo-title-container:has(a.forge-app-bar__title) {
250
+ --forge-state-layer-color: var(--_app-bar-foreground);
251
+ }
246
252
  .forge-app-bar__section {
247
253
  display: inline-flex;
248
254
  flex: 1 1 auto;
@@ -131,9 +131,6 @@
131
131
  transition-property: box-shadow, background;
132
132
  transition-duration: var(--_button-transition-duration);
133
133
  transition-timing-function: var(--_button-transition-timing);
134
- position: relative;
135
- inline-size: auto;
136
- --forge-icon-font-size: var(--_button-icon-size);
137
134
  }
138
135
  .forge-button::-moz-focus-inner {
139
136
  padding: 0;
@@ -147,9 +144,9 @@
147
144
  --_button-shadow: var(--_button-active-shadow);
148
145
  background: var(--_button-active-background);
149
146
  }
150
- .forge-button:not(:disabled) {
151
- outline: none;
152
- --forge-focus-indicator-color: var(--_button-primary-color);
147
+ .forge-button {
148
+ position: relative;
149
+ inline-size: auto;
153
150
  }
154
151
  .forge-button:not(:disabled):not(.forge-button--link) {
155
152
  --_state-layer-display: var(--forge-state-layer-display, flex);
@@ -208,6 +205,9 @@
208
205
  border-width: var(--_focus-indicator-active-width);
209
206
  }
210
207
  }
208
+ .forge-button:not(:disabled) {
209
+ outline: none;
210
+ }
211
211
  .forge-button:not(:disabled):focus-visible::after {
212
212
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
213
213
  --_focus-indicator-width: var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));
@@ -246,6 +246,9 @@
246
246
  content: "";
247
247
  display: block;
248
248
  }
249
+ .forge-button:not(:disabled) {
250
+ --forge-focus-indicator-color: var(--_button-primary-color);
251
+ }
249
252
  .forge-button:disabled {
250
253
  cursor: var(--_button-disabled-cursor);
251
254
  --_button-background: var(--_button-disabled-background);
@@ -321,6 +324,9 @@
321
324
  --_button-padding-inline: var(--_button-pill-padding-inline);
322
325
  --forge-focus-indicator-shape: var(--_button-pill-shape);
323
326
  }
327
+ .forge-button {
328
+ --forge-icon-font-size: var(--_button-icon-size);
329
+ }
324
330
  .forge-button--dense {
325
331
  --_button-height: var(--_button-dense-height);
326
332
  }
@@ -44,14 +44,6 @@
44
44
 
45
45
  .forge-checkbox {
46
46
  outline: none;
47
- --forge-focus-indicator-shape: 0px;
48
- --forge-focus-indicator-outward-offset: 8px;
49
- display: inline grid;
50
- position: relative;
51
- align-items: center;
52
- justify-items: center;
53
- inline-size: var(--_checkbox-state-layer-width);
54
- block-size: var(--_checkbox-state-layer-height);
55
47
  }
56
48
  .forge-checkbox:has(input[type=checkbox]:focus-visible)::after {
57
49
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
@@ -91,6 +83,16 @@
91
83
  content: "";
92
84
  display: block;
93
85
  }
86
+ .forge-checkbox {
87
+ --forge-focus-indicator-shape: 0px;
88
+ --forge-focus-indicator-outward-offset: 8px;
89
+ display: inline grid;
90
+ position: relative;
91
+ align-items: center;
92
+ justify-items: center;
93
+ inline-size: var(--_checkbox-state-layer-width);
94
+ block-size: var(--_checkbox-state-layer-height);
95
+ }
94
96
  .forge-checkbox input[type=checkbox] {
95
97
  appearance: none;
96
98
  grid-column: 1;
@@ -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(--_checkbox-state-layer-shape) !important;
117
118
  }
118
119
  .forge-checkbox input[type=checkbox]: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-checkbox input[type=checkbox]:not(:disabled) {
139
+ border-radius: var(--_checkbox-state-layer-shape) !important;
140
+ }
137
141
  .forge-checkbox__icon {
138
142
  display: none;
139
143
  grid-column: 1;
@@ -189,10 +193,6 @@
189
193
  border-color: var(--_checkbox-checked-border-color);
190
194
  background: var(--_checkbox-checked-background);
191
195
  }
192
- .forge-checkbox:has(input[type=checkbox]:checked) .forge-checkbox__icon {
193
- display: block;
194
- clip-path: polygon(13.101048% 47.903832%, 1.316772% 59.688108%, 33.7527% 92.84076%, 100.858068% 25.018668%, 89.073792% 13.234392%, 33.7527% 68.3388%);
195
- }
196
196
  .forge-checkbox:has(input[type=checkbox]:checked) .forge-checkbox__icon::before {
197
197
  translate: 0;
198
198
  }
@@ -201,6 +201,10 @@
201
201
  translate: -100% 0;
202
202
  }
203
203
  }
204
+ .forge-checkbox:has(input[type=checkbox]:checked) .forge-checkbox__icon {
205
+ display: block;
206
+ clip-path: polygon(13.101048% 47.903832%, 1.316772% 59.688108%, 33.7527% 92.84076%, 100.858068% 25.018668%, 89.073792% 13.234392%, 33.7527% 68.3388%);
207
+ }
204
208
  .forge-checkbox:has(input[type=checkbox]:checked) .forge-checkbox__icon--checked {
205
209
  clip-path: none;
206
210
  }
@@ -213,10 +217,6 @@
213
217
  border-color: var(--_checkbox-checked-border-color);
214
218
  background: var(--_checkbox-checked-background);
215
219
  }
216
- .forge-checkbox:has(input[type=checkbox]:indeterminate) .forge-checkbox__icon {
217
- display: block;
218
- clip-path: polygon(8.334% 41.67%, 8.334% 58.338%, 91.674% 58.338%, 91.674% 41.67%);
219
- }
220
220
  .forge-checkbox:has(input[type=checkbox]:indeterminate) .forge-checkbox__icon::before {
221
221
  translate: 0;
222
222
  }
@@ -225,6 +225,10 @@
225
225
  translate: -100% 0;
226
226
  }
227
227
  }
228
+ .forge-checkbox:has(input[type=checkbox]:indeterminate) .forge-checkbox__icon {
229
+ display: block;
230
+ clip-path: polygon(8.334% 41.67%, 8.334% 58.338%, 91.674% 58.338%, 91.674% 41.67%);
231
+ }
228
232
  .forge-checkbox:has(input[type=checkbox]:indeterminate) .forge-checkbox__icon--indeterminate {
229
233
  clip-path: none;
230
234
  }
@@ -120,10 +120,6 @@
120
120
  --_state-layer-hover-duration: var(--forge-state-layer-hover-duration, 15ms);
121
121
  --_state-layer-pressed-duration: var(--forge-state-layer-pressed-duration, 105ms);
122
122
  --_state-layer-animation-duration: var(--forge-state-layer-animation-duration, 375ms);
123
- --forge-state-layer-color: var(--_chip-color);
124
- outline: none;
125
- --forge-focus-indicator-color: var(--_chip-color);
126
- --forge-focus-indicator-shape: var(--_chip-shape);
127
123
  }
128
124
  .forge-chip:not(:disabled)::before {
129
125
  opacity: 0;
@@ -145,6 +141,9 @@
145
141
  transition-duration: var(--_state-layer-pressed-duration);
146
142
  --_state-layer-pressed-opacity: var(--forge-state-layer-pressed-opacity, 0.18);
147
143
  }
144
+ .forge-chip:not(:disabled) {
145
+ --forge-state-layer-color: var(--_chip-color);
146
+ }
148
147
  @keyframes forge-focus-indicator-outward-grow {
149
148
  from {
150
149
  outline-width: 0;
@@ -171,6 +170,9 @@
171
170
  border-width: var(--_focus-indicator-active-width);
172
171
  }
173
172
  }
173
+ .forge-chip:not(:disabled) {
174
+ outline: none;
175
+ }
174
176
  .forge-chip:not(:disabled):focus-visible::after {
175
177
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
176
178
  --_focus-indicator-width: var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));
@@ -209,6 +211,10 @@
209
211
  content: "";
210
212
  display: block;
211
213
  }
214
+ .forge-chip:not(:disabled) {
215
+ --forge-focus-indicator-color: var(--_chip-color);
216
+ --forge-focus-indicator-shape: var(--_chip-shape);
217
+ }
212
218
  .forge-chip--field {
213
219
  --_chip-background: var(--_chip-field-background);
214
220
  --_chip-color: var(--_chip-field-color);
@@ -156,9 +156,6 @@
156
156
  .forge-field:has(label).forge-field--rounded {
157
157
  padding-inline: var(--forge-spacing-large, 24px);
158
158
  }
159
- .forge-field:has(label).forge-field--float-label-in label {
160
- animation: forge-field-float-label-in var(--forge-animation-duration-short4, 200ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)) forwards;
161
- }
162
159
  @keyframes forge-field-float-label-in {
163
160
  from {
164
161
  transform: translateY(15%);
@@ -169,6 +166,9 @@
169
166
  opacity: 1;
170
167
  }
171
168
  }
169
+ .forge-field:has(label).forge-field--float-label-in label {
170
+ animation: forge-field-float-label-in var(--forge-animation-duration-short4, 200ms) var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)) forwards;
171
+ }
172
172
  @keyframes forge-field-float-label-out {
173
173
  from {
174
174
  opacity: 0;
@@ -235,8 +235,6 @@
235
235
  }
236
236
  .forge-field:has(:where(input, textarea, select, .forge-field__input):focus) {
237
237
  outline: none;
238
- --forge-focus-indicator-color: var(--forge-theme-primary, #3f51b5);
239
- --forge-focus-indicator-outward-offset: 0px;
240
238
  }
241
239
  .forge-field:has(:where(input, textarea, select, .forge-field__input):focus)::after {
242
240
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
@@ -275,6 +273,10 @@
275
273
  display: block;
276
274
  border-radius: inherit;
277
275
  }
276
+ .forge-field:has(:where(input, textarea, select, .forge-field__input):focus) {
277
+ --forge-focus-indicator-color: var(--forge-theme-primary, #3f51b5);
278
+ --forge-focus-indicator-outward-offset: 0px;
279
+ }
278
280
  }
279
281
  @layer textarea {
280
282
  .forge-field:has(textarea:only-child) {
@@ -88,12 +88,6 @@
88
88
  --_state-layer-hover-duration: var(--forge-state-layer-hover-duration, 15ms);
89
89
  --_state-layer-pressed-duration: var(--forge-state-layer-pressed-duration, 105ms);
90
90
  --_state-layer-animation-duration: var(--forge-state-layer-animation-duration, 375ms);
91
- outline: none;
92
- --forge-focus-indicator-color: var(--_fab-background);
93
- --forge-focus-indicator-shape-start-start: var(--_fab-shape-start-start);
94
- --forge-focus-indicator-shape-start-end: var(--_fab-shape-start-end);
95
- --forge-focus-indicator-shape-end-start: var(--_fab-shape-end-start);
96
- --forge-focus-indicator-shape-end-end: var(--_fab-shape-end-end);
97
91
  }
98
92
  .forge-fab:not(:disabled)::before {
99
93
  opacity: 0;
@@ -141,6 +135,9 @@
141
135
  border-width: var(--_focus-indicator-active-width);
142
136
  }
143
137
  }
138
+ .forge-fab:not(:disabled) {
139
+ outline: none;
140
+ }
144
141
  .forge-fab:not(:disabled):focus-visible::after {
145
142
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
146
143
  --_focus-indicator-width: var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));
@@ -179,6 +176,13 @@
179
176
  content: "";
180
177
  display: block;
181
178
  }
179
+ .forge-fab:not(:disabled) {
180
+ --forge-focus-indicator-color: var(--_fab-background);
181
+ --forge-focus-indicator-shape-start-start: var(--_fab-shape-start-start);
182
+ --forge-focus-indicator-shape-start-end: var(--_fab-shape-start-end);
183
+ --forge-focus-indicator-shape-end-start: var(--_fab-shape-end-start);
184
+ --forge-focus-indicator-shape-end-end: var(--_fab-shape-end-end);
185
+ }
182
186
  .forge-fab--extended {
183
187
  --_fab-padding: var(--_fab-extended-padding);
184
188
  min-width: var(--_fab-extended-min-width);
package/dist/forge.css CHANGED
@@ -1619,7 +1619,12 @@ forge-table {
1619
1619
  font: inherit;
1620
1620
  color: inherit;
1621
1621
  width: 100%;
1622
- outline-offset: var(--forge-spacing-xxsmall, 4px);
1622
+ outline: none;
1623
+ position: relative;
1624
+ }
1625
+ .forge-table-head__cell--sortable button forge-focus-indicator {
1626
+ border-radius: 4px;
1627
+ --forge-focus-indicator-offset-inline: -4px;
1623
1628
  }
1624
1629
  .forge-table-head__cell--sortable.forge-table-head__cell--sorted-ascending .forge-table-head__cell-sort-icon {
1625
1630
  transform: rotate(180deg);
@@ -105,10 +105,6 @@
105
105
  --_state-layer-hover-duration: var(--forge-state-layer-hover-duration, 15ms);
106
106
  --_state-layer-pressed-duration: var(--forge-state-layer-pressed-duration, 105ms);
107
107
  --_state-layer-animation-duration: var(--forge-state-layer-animation-duration, 375ms);
108
- --forge-state-layer-color: var(--_icon-button-icon-color);
109
- outline: none;
110
- --forge-focus-indicator-color: var(--_icon-button-focus-indicator-color);
111
- --forge-focus-indicator-shape: var(--_icon-button-shape);
112
108
  }
113
109
  .forge-icon-button:not(:disabled)::before {
114
110
  opacity: 0;
@@ -130,6 +126,9 @@
130
126
  transition-duration: var(--_state-layer-pressed-duration);
131
127
  --_state-layer-pressed-opacity: var(--forge-state-layer-pressed-opacity, 0.18);
132
128
  }
129
+ .forge-icon-button:not(:disabled) {
130
+ --forge-state-layer-color: var(--_icon-button-icon-color);
131
+ }
133
132
  @keyframes forge-focus-indicator-outward-grow {
134
133
  from {
135
134
  outline-width: 0;
@@ -156,6 +155,9 @@
156
155
  border-width: var(--_focus-indicator-active-width);
157
156
  }
158
157
  }
158
+ .forge-icon-button:not(:disabled) {
159
+ outline: none;
160
+ }
159
161
  .forge-icon-button:not(:disabled):focus-visible::after {
160
162
  --_focus-indicator-display: var(--forge-focus-indicator-display, flex);
161
163
  --_focus-indicator-width: var(--forge-focus-indicator-width, var(--forge-border-medium, 2px));
@@ -194,6 +196,10 @@
194
196
  content: "";
195
197
  display: block;
196
198
  }
199
+ .forge-icon-button:not(:disabled) {
200
+ --forge-focus-indicator-color: var(--_icon-button-focus-indicator-color);
201
+ --forge-focus-indicator-shape: var(--_icon-button-shape);
202
+ }
197
203
  .forge-icon-button:not(:disabled):where(.forge-icon-button--text,
198
204
  :not(:where(.forge-icon-button--outlined, .forge-icon-button--tonal, .forge-icon-button--filled, .forge-icon-button--raised))) {
199
205
  --forge-focus-indicator-outward-offset: 0px;