@tylertech/forge 3.9.1 → 3.9.2

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 (74) hide show
  1. package/custom-elements.json +14 -14
  2. package/dist/badge/forge-badge.css +1 -1
  3. package/dist/forge.css +0 -1
  4. package/dist/lib.js +6 -6
  5. package/dist/lib.js.map +3 -3
  6. package/dist/table/forge-table.css +0 -1
  7. package/esm/autocomplete/autocomplete-core.js +9 -12
  8. package/esm/autocomplete/autocomplete-utils.js +3 -2
  9. package/esm/badge/badge.js +1 -1
  10. package/esm/button/base/base-button-adapter.js +6 -5
  11. package/esm/button/base/base-button-constants.d.ts +2 -2
  12. package/esm/button-area/button-area-adapter.d.ts +0 -2
  13. package/esm/button-area/button-area-adapter.js +5 -3
  14. package/esm/button-area/button-area-core.js +0 -1
  15. package/esm/button-area/button-area.js +1 -1
  16. package/esm/button-toggle/button-toggle-group/button-toggle-group-core.js +0 -1
  17. package/esm/calendar/calendar-core.js +6 -4
  18. package/esm/calendar/calendar-dropdown/calendar-dropdown.js +1 -1
  19. package/esm/calendar/calendar-utils.js +1 -3
  20. package/esm/calendar/calendar.js +1 -1
  21. package/esm/color-picker/color-picker-core.js +2 -2
  22. package/esm/core/configuration/global-configuration.js +0 -1
  23. package/esm/core/mixins/form/with-form-associated.js +6 -2
  24. package/esm/core/utils/a11y-utils.d.ts +2 -2
  25. package/esm/core/utils/date-utils.js +1 -1
  26. package/esm/core/utils/dismissible-stack.js +0 -1
  27. package/esm/core/utils/feature-detection.js +2 -2
  28. package/esm/date-picker/base/base-date-picker-adapter.d.ts +2 -1
  29. package/esm/date-picker/base/base-date-picker-adapter.js +4 -0
  30. package/esm/date-picker/base/base-date-picker-core.js +2 -4
  31. package/esm/date-picker/base/base-date-picker-utils.d.ts +2 -1
  32. package/esm/date-picker/date-picker-adapter.js +1 -1
  33. package/esm/date-picker/date-picker-core.js +2 -1
  34. package/esm/date-range-picker/date-range-picker-adapter.d.ts +2 -1
  35. package/esm/date-range-picker/date-range-picker-adapter.js +1 -1
  36. package/esm/date-range-picker/date-range-picker-core.js +4 -5
  37. package/esm/deprecated/icon-button/deprecated-icon-button-component-delegate.js +2 -1
  38. package/esm/dialog/dialog.js +1 -1
  39. package/esm/expansion-panel/expansion-panel-core.d.ts +4 -0
  40. package/esm/expansion-panel/expansion-panel-core.js +19 -11
  41. package/esm/field/field-core.js +2 -1
  42. package/esm/field/field.js +1 -1
  43. package/esm/file-picker/file-picker-core.js +1 -3
  44. package/esm/floating-action-button/floating-action-button-component-delegate.js +2 -1
  45. package/esm/icon/icon-core.js +1 -1
  46. package/esm/icon/icon-registry.js +1 -1
  47. package/esm/icon-button/icon-button-component-delegate.js +2 -1
  48. package/esm/label/label-aware.js +1 -3
  49. package/esm/list-dropdown/list-dropdown-core.js +4 -2
  50. package/esm/list-dropdown/list-dropdown-utils.js +5 -2
  51. package/esm/menu/menu-core.js +5 -6
  52. package/esm/overlay/overlay-constants.d.ts +1 -1
  53. package/esm/overlay/overlay-constants.js +1 -1
  54. package/esm/overlay/overlay.d.ts +2 -2
  55. package/esm/overlay/overlay.js +2 -2
  56. package/esm/select/core/base-select-adapter.js +0 -1
  57. package/esm/select/core/base-select-core.js +70 -74
  58. package/esm/select/core/select-utils.d.ts +1 -1
  59. package/esm/select/core/select-utils.js +2 -2
  60. package/esm/select/select-dropdown/select-dropdown-adapter.js +1 -3
  61. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  62. package/esm/table/table-utils.js +10 -12
  63. package/esm/tabs/tab-bar/tab-bar-core.js +2 -1
  64. package/esm/text-field/text-field-adapter.js +1 -3
  65. package/esm/time-picker/time-picker-core.js +5 -5
  66. package/esm/toast/toast-adapter.js +1 -1
  67. package/esm/toast/toast-core.js +1 -1
  68. package/esm/toast/toast.js +2 -1
  69. package/esm/tooltip/tooltip.js +1 -1
  70. package/esm/view-switcher/view-switcher-core.js +2 -1
  71. package/package.json +1 -1
  72. package/sass/core/styles/tokens/badge/_tokens.scss +1 -1
  73. package/sass/table/forge-table.scss +0 -1
  74. package/sass/utils/_mixins.scss +7 -8
@@ -40,7 +40,7 @@ declare global {
40
40
  * @property {OverlayPositionStrategy} [positionStrategy="fixed"] - The positioning strategy to use for the overlay. Valid values are `'fixed'` and `'absolute'`.
41
41
  * @property {IOverlayPosition} offset - The offset to apply to the overlay position relative to the anchor element.
42
42
  * @property {OverlayShiftState} [shift="auto"] - Whether or not the anchor element should shift along the side of the overlay when scrolling.
43
- * @property {OverlayHideState} [hide="anchor-hidden"] - Whether or not the overlay should hide itself when the anchor element is out of view.
43
+ * @property {OverlayHideState} [hide="never"] - Whether or not the overlay should hide itself when the anchor element is out of view.
44
44
  * @property {boolean} persistent - Whether or not the overlay handles light dismiss itself or not.
45
45
  * @property {OverlayFlipState} [flip="auto"] - Whether or not the overlay should flip to the opposite placement when not enough room.
46
46
  * @property {string} boundary - The id of the element to use as the boundary for the overlay.
@@ -62,7 +62,7 @@ declare global {
62
62
  * @attribute {string} [inline=false] - Whether or not the overlay should be rendered inline (not in the :top-layer).
63
63
  * @attribute {string} [placement="bottom"] - The placement of the overlay relative to the anchor element.
64
64
  * @attribute {string} [position-strategy="fixed"] - The positioning strategy to use for the overlay. Valid values are `'fixed'` and `'absolute'`.
65
- * @attribute {string} [hide="anchor-hidden"] - Whether or not the overlay should hide itself when the anchor element is out of view.
65
+ * @attribute {string} [hide="never"] - Whether or not the overlay should hide itself when the anchor element is out of view.
66
66
  * @attribute {string} persistent - Whether or not the overlay handles light dismiss itself or not.
67
67
  * @attribute {OverlayShiftState} [shift="auto"] - Whether or not the anchor element should shift along the side of the overlay when scrolling.
68
68
  * @attribute {OverlayFlipState} [flip="auto"] - Tells the overlay not to flip to the opposite placement when not enough room.
@@ -34,7 +34,7 @@ const styles = ':host{display:contents}:host([hidden]){display:none}.forge-overl
34
34
  * @property {OverlayPositionStrategy} [positionStrategy="fixed"] - The positioning strategy to use for the overlay. Valid values are `'fixed'` and `'absolute'`.
35
35
  * @property {IOverlayPosition} offset - The offset to apply to the overlay position relative to the anchor element.
36
36
  * @property {OverlayShiftState} [shift="auto"] - Whether or not the anchor element should shift along the side of the overlay when scrolling.
37
- * @property {OverlayHideState} [hide="anchor-hidden"] - Whether or not the overlay should hide itself when the anchor element is out of view.
37
+ * @property {OverlayHideState} [hide="never"] - Whether or not the overlay should hide itself when the anchor element is out of view.
38
38
  * @property {boolean} persistent - Whether or not the overlay handles light dismiss itself or not.
39
39
  * @property {OverlayFlipState} [flip="auto"] - Whether or not the overlay should flip to the opposite placement when not enough room.
40
40
  * @property {string} boundary - The id of the element to use as the boundary for the overlay.
@@ -56,7 +56,7 @@ const styles = ':host{display:contents}:host([hidden]){display:none}.forge-overl
56
56
  * @attribute {string} [inline=false] - Whether or not the overlay should be rendered inline (not in the :top-layer).
57
57
  * @attribute {string} [placement="bottom"] - The placement of the overlay relative to the anchor element.
58
58
  * @attribute {string} [position-strategy="fixed"] - The positioning strategy to use for the overlay. Valid values are `'fixed'` and `'absolute'`.
59
- * @attribute {string} [hide="anchor-hidden"] - Whether or not the overlay should hide itself when the anchor element is out of view.
59
+ * @attribute {string} [hide="never"] - Whether or not the overlay should hide itself when the anchor element is out of view.
60
60
  * @attribute {string} persistent - Whether or not the overlay handles light dismiss itself or not.
61
61
  * @attribute {OverlayShiftState} [shift="auto"] - Whether or not the anchor element should shift along the side of the overlay when scrolling.
62
62
  * @attribute {OverlayFlipState} [flip="auto"] - Tells the overlay not to flip to the opposite placement when not enough room.
@@ -45,7 +45,6 @@ export class BaseSelectAdapter extends BaseAdapter {
45
45
  optionClass = optionClass.split(' ');
46
46
  }
47
47
  return {
48
- // eslint-disable-next-line @typescript-eslint/no-extra-parens
49
48
  label: o.hasAttribute(OPTION_CONSTANTS.attributes.LABEL)
50
49
  ? o.getAttribute(OPTION_CONSTANTS.attributes.LABEL)
51
50
  : isDefined(o.label)
@@ -73,7 +73,7 @@ export class BaseSelectCore extends ListDropdownAwareCore {
73
73
  }
74
74
  get _flatOptions() {
75
75
  if (isSelectOptionType(this._options, SelectOptionType.Group)) {
76
- return [].concat.apply([], this._options.map(g => g.options));
76
+ return this._options.flatMap(g => g.options);
77
77
  }
78
78
  return this._options;
79
79
  }
@@ -162,84 +162,82 @@ export class BaseSelectCore extends ListDropdownAwareCore {
162
162
  * @param {number} optionIndex The index of the selected option.
163
163
  */
164
164
  async _onSelect(option, optionIndex, closeDropdown = true) {
165
- return new Promise(async (resolve) => {
166
- if (this._valueChanging) {
167
- return Promise.resolve(false);
168
- }
169
- const value = option ? option.value : '';
170
- const label = option ? option.label : '';
171
- // Store the current selections in case we need to rollback (if the event was cancelled)
172
- const prevValues = [...this._value];
173
- const prevSelectedValues = [...this._selectedValues];
174
- const prevSelectedLabels = [...this._selectedLabels];
175
- const prevSelectedIndexes = [...this._selectedIndexes];
176
- if (this._multiple) {
177
- if (this._selectedValues.includes(value)) {
178
- const index = this._selectedValues.indexOf(value);
179
- this._selectedValues.splice(index, 1);
180
- this._selectedLabels.splice(index, 1);
181
- this._selectedIndexes.splice(index, 1);
182
- }
183
- else {
184
- this._selectedValues.push(value);
185
- this._selectedLabels.push(label);
186
- this._selectedIndexes.push(optionIndex);
187
- }
165
+ if (this._valueChanging) {
166
+ return false;
167
+ }
168
+ const value = option ? option.value : '';
169
+ const label = option ? option.label : '';
170
+ // Store the current selections in case we need to rollback (if the event was cancelled)
171
+ const prevValues = [...this._value];
172
+ const prevSelectedValues = [...this._selectedValues];
173
+ const prevSelectedLabels = [...this._selectedLabels];
174
+ const prevSelectedIndexes = [...this._selectedIndexes];
175
+ if (this._multiple) {
176
+ if (this._selectedValues.includes(value)) {
177
+ const index = this._selectedValues.indexOf(value);
178
+ this._selectedValues.splice(index, 1);
179
+ this._selectedLabels.splice(index, 1);
180
+ this._selectedIndexes.splice(index, 1);
188
181
  }
189
182
  else {
190
- if (isDefined(value)) {
191
- this._selectedValues[0] = value;
192
- this._selectedLabels[0] = label;
193
- this._selectedIndexes[0] = optionIndex;
194
- }
195
- else {
196
- this._selectedValues = [];
197
- this._selectedLabels = [];
198
- this._selectedIndexes = [];
199
- }
183
+ this._selectedValues.push(value);
184
+ this._selectedLabels.push(label);
185
+ this._selectedIndexes.push(optionIndex);
200
186
  }
201
- this._value = [...this._selectedValues];
202
- const rollbackValue = () => {
203
- this._selectedValues = [...prevSelectedValues];
204
- this._selectedLabels = [...prevSelectedLabels];
205
- this._selectedIndexes = [...prevSelectedIndexes];
206
- this._value = [...prevValues];
207
- };
208
- const applyValue = () => {
209
- // If we're in multiselect mode, we need to toggle the selected option
210
- if (this._multiple) {
211
- const isSelected = this._selectedIndexes.includes(optionIndex);
212
- this._adapter.toggleOptionMultiple(optionIndex, isSelected);
213
- }
214
- this._applySelection();
215
- };
216
- const data = this.multiple ? [...this._selectedValues] : this._selectedValues[0];
217
- // We close the dropdown immediately if in single selection mode
218
- if (this._open && closeDropdown && !this._multiple) {
219
- this._closeDropdown();
187
+ }
188
+ else {
189
+ if (isDefined(value)) {
190
+ this._selectedValues[0] = value;
191
+ this._selectedLabels[0] = label;
192
+ this._selectedIndexes[0] = optionIndex;
220
193
  }
221
- // First we check to see if there is an before change callback and execute that
222
- if (typeof this._beforeValueChange === 'function') {
223
- this._valueChanging = Promise.resolve(this._beforeValueChange.call(null, data));
224
- const shouldContinue = await this._valueChanging;
225
- this._valueChanging = undefined;
226
- if (!shouldContinue) {
227
- rollbackValue();
228
- this._tryUpdateDropdownPosition();
229
- return resolve(false);
230
- }
194
+ else {
195
+ this._selectedValues = [];
196
+ this._selectedLabels = [];
197
+ this._selectedIndexes = [];
231
198
  }
232
- // Now we can emit the change event AFTER the before change callback has been executed and returned true
233
- const cancelled = !this._adapter.emitHostEvent(BASE_SELECT_CONSTANTS.events.CHANGE, data, true, true);
234
- if (!cancelled) {
235
- applyValue();
199
+ }
200
+ this._value = [...this._selectedValues];
201
+ const rollbackValue = () => {
202
+ this._selectedValues = [...prevSelectedValues];
203
+ this._selectedLabels = [...prevSelectedLabels];
204
+ this._selectedIndexes = [...prevSelectedIndexes];
205
+ this._value = [...prevValues];
206
+ };
207
+ const applyValue = () => {
208
+ // If we're in multiselect mode, we need to toggle the selected option
209
+ if (this._multiple) {
210
+ const isSelected = this._selectedIndexes.includes(optionIndex);
211
+ this._adapter.toggleOptionMultiple(optionIndex, isSelected);
236
212
  }
237
- else {
213
+ this._applySelection();
214
+ };
215
+ const data = this.multiple ? [...this._selectedValues] : this._selectedValues[0];
216
+ // We close the dropdown immediately if in single selection mode
217
+ if (this._open && closeDropdown && !this._multiple) {
218
+ this._closeDropdown();
219
+ }
220
+ // First we check to see if there is an before change callback and execute that
221
+ if (typeof this._beforeValueChange === 'function') {
222
+ this._valueChanging = Promise.resolve(this._beforeValueChange.call(null, data));
223
+ const shouldContinue = await this._valueChanging;
224
+ this._valueChanging = undefined;
225
+ if (!shouldContinue) {
238
226
  rollbackValue();
227
+ this._tryUpdateDropdownPosition();
228
+ return false;
239
229
  }
240
- this._tryUpdateDropdownPosition();
241
- resolve(!cancelled);
242
- });
230
+ }
231
+ // Now we can emit the change event AFTER the before change callback has been executed and returned true
232
+ const cancelled = !this._adapter.emitHostEvent(BASE_SELECT_CONSTANTS.events.CHANGE, data, true, true);
233
+ if (!cancelled) {
234
+ applyValue();
235
+ }
236
+ else {
237
+ rollbackValue();
238
+ }
239
+ this._tryUpdateDropdownPosition();
240
+ return !cancelled;
243
241
  }
244
242
  _selectActiveOption() {
245
243
  const activeOptionIndex = this._adapter.getActiveOptionIndex();
@@ -450,9 +448,7 @@ export class BaseSelectCore extends ListDropdownAwareCore {
450
448
  }, 300);
451
449
  this._options = this._adapter.getOptions();
452
450
  // TODO: Enhance this to cycle through closest matches (see the native select)
453
- const matchedOption = this._flatOptions.find(({ disabled, label }) => {
454
- return !disabled && label.trim().toLowerCase().startsWith(this._filterString.trim().toLowerCase());
455
- });
451
+ const matchedOption = this._flatOptions.find(({ disabled, label }) => !disabled && label.trim().toLowerCase().startsWith(this._filterString.trim().toLowerCase()));
456
452
  if (matchedOption) {
457
453
  const optionIndex = this._flatOptions.indexOf(matchedOption);
458
454
  if (this._open) {
@@ -13,6 +13,6 @@ export declare enum SelectOptionType {
13
13
  * @param options The options either grouped or individual.
14
14
  * @param type The type of option to detect.
15
15
  */
16
- export declare function isSelectOptionType(options: ISelectOption[] | ISelectOptionGroup[], type: SelectOptionType): boolean;
16
+ export declare function isSelectOptionType(options: ISelectOption[] | ISelectOptionGroup[], type: SelectOptionType): options is ISelectOptionGroup[];
17
17
  export declare function isOptionGroupObject(o: ISelectOption | ISelectOptionGroup): o is ISelectOptionGroup;
18
18
  export declare function isOptionObject(o: ISelectOption | ISelectOptionGroup): o is ISelectOption;
@@ -20,8 +20,8 @@ export function isSelectOptionType(options, type) {
20
20
  return (isOptionGroups && type === SelectOptionType.Group) || (isOptionTypes && type === SelectOptionType.Option);
21
21
  }
22
22
  export function isOptionGroupObject(o) {
23
- return isDefined(o) && isObject(o) && o.hasOwnProperty('options');
23
+ return isDefined(o) && isObject(o) && Object.prototype.hasOwnProperty.call(o, 'options');
24
24
  }
25
25
  export function isOptionObject(o) {
26
- return isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value');
26
+ return isDefined(o) && isObject(o) && Object.prototype.hasOwnProperty.call(o, 'label') && Object.prototype.hasOwnProperty.call(o, 'value');
27
27
  }
@@ -75,9 +75,7 @@ export class SelectDropdownAdapter extends BaseSelectAdapter {
75
75
  return () => { };
76
76
  }
77
77
  const observer = new MutationObserver(mutations => {
78
- const isTargetRemoved = mutations.some(mutation => {
79
- return Array.from(mutation.removedNodes).some(node => node === this._targetElement);
80
- });
78
+ const isTargetRemoved = mutations.some(mutation => Array.from(mutation.removedNodes).some(node => node === this._targetElement));
81
79
  if (isTargetRemoved) {
82
80
  observer.disconnect();
83
81
  cb();
@@ -14,7 +14,7 @@ import { IconComponent, IconRegistry } from '../../icon';
14
14
  import { StateLayerComponent } from '../../state-layer';
15
15
  import { FocusIndicatorComponent } from '../../focus-indicator';
16
16
  const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-state-layer target=\"handle\" id=\"state-layer\" exportparts=\"surface:state-layer\"></forge-state-layer><forge-focus-indicator inward target=\"handle\" part=\"focus-indicator\"></forge-focus-indicator></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
17
- const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:ujzdjfx;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes ujzdjfx{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:ujzdjg1;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes ujzdjg1{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:ujzdjgi;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes ujzdjgi{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:ujzdjgn;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes ujzdjgn{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:ujzdjhj;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes ujzdjhj{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:ujzdjhm;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes ujzdjhm{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:ujzdjhx;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes ujzdjhx{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:ujzdjir;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes ujzdjir{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
17
+ const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwkwm;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkwm{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:udxwkxa;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkxa{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwky1;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwky1{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:udxwkyf;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwkyf{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwkyt;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkyt{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:udxwkz2;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkz2{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwkz5;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwkz5{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:udxwkzb;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwkzb{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
18
18
  /**
19
19
  * @tag forge-split-view-panel
20
20
  *
@@ -424,18 +424,16 @@ export class TableUtils {
424
424
  * @param {IColumnData[]} data The row data.
425
425
  */
426
426
  static _createColumnDataMap(columnConfigurations, data) {
427
- return columnConfigurations.map(columnConfig => {
428
- return {
429
- config: columnConfig,
430
- data: data.map(item => {
431
- if (columnConfig.property) {
432
- const value = getPropertyValue(item.data, columnConfig.property);
433
- return isDefined(value) ? value : null;
434
- }
435
- return null;
436
- })
437
- };
438
- });
427
+ return columnConfigurations.map(columnConfig => ({
428
+ config: columnConfig,
429
+ data: data.map(item => {
430
+ if (columnConfig.property) {
431
+ const value = getPropertyValue(item.data, columnConfig.property);
432
+ return isDefined(value) ? value : null;
433
+ }
434
+ return null;
435
+ })
436
+ }));
439
437
  }
440
438
  /**
441
439
  * Returns the row data in a column ordered fashion.
@@ -142,8 +142,9 @@ export class TabBarCore {
142
142
  _syncTabState() {
143
143
  this._tabs.forEach((tab, index) => {
144
144
  tab.selected = index === this._activeTab;
145
- if (this._disabled)
145
+ if (this._disabled) {
146
146
  tab.disabled = this._disabled;
147
+ }
147
148
  tab.vertical = this._vertical;
148
149
  tab.stacked = this._stacked;
149
150
  tab.secondary = this._secondary;
@@ -92,9 +92,7 @@ export class TextFieldAdapter extends BaseFieldAdapter {
92
92
  // Destroy the previous value change listeners
93
93
  this._destroyValueChangerListeners.forEach(callback => callback());
94
94
  // Add a new value change listener to each input
95
- this._destroyValueChangerListeners = this._inputElements.map(el => {
96
- return listenOwnProperty(context, el, 'value', listener);
97
- });
95
+ this._destroyValueChangerListeners = this._inputElements.map(el => listenOwnProperty(context, el, 'value', listener));
98
96
  }
99
97
  removeValueChangeListener() {
100
98
  this._destroyValueChangerListeners.forEach(callback => callback());
@@ -95,13 +95,14 @@ export class TimePickerCore {
95
95
  if (evt.shiftKey) {
96
96
  switch (evt.code) {
97
97
  case 'Backspace':
98
- case 'Delete':
98
+ case 'Delete': {
99
99
  evt.preventDefault();
100
100
  const result = this._trySetValue(null);
101
101
  if (result) {
102
102
  this._formatInputValue();
103
103
  }
104
104
  return;
105
+ }
105
106
  }
106
107
  }
107
108
  switch (evt.code) {
@@ -170,7 +171,7 @@ export class TimePickerCore {
170
171
  this._adapter.propagateKey(evt.code);
171
172
  }
172
173
  break;
173
- case 'KeyN':
174
+ case 'KeyN': {
174
175
  evt.preventDefault();
175
176
  const nowMillis = getCurrentTimeOfDayMillis(this._allowSeconds);
176
177
  if (this._value !== nowMillis) {
@@ -182,6 +183,7 @@ export class TimePickerCore {
182
183
  }
183
184
  }
184
185
  break;
186
+ }
185
187
  }
186
188
  }
187
189
  _trySetActiveOption() {
@@ -523,9 +525,7 @@ export class TimePickerCore {
523
525
  return this._findClosestOptionIndex(currentTimeMillis, options);
524
526
  }
525
527
  _findClosestOptionIndex(value, options) {
526
- const closestItem = options.reduce((prev, curr) => {
527
- return Math.abs((curr.value.time || 0) - value) < Math.abs((prev.value.time || 0) - value) ? curr : prev;
528
- });
528
+ const closestItem = options.reduce((prev, curr) => (Math.abs((curr.value.time || 0) - value) < Math.abs((prev.value.time || 0) - value) ? curr : prev));
529
529
  return options.indexOf(closestItem);
530
530
  }
531
531
  _formatInputValue(emitEvents = true) {
@@ -39,7 +39,7 @@ export class ToastAdapter extends BaseAdapter {
39
39
  }
40
40
  setActionText(text) {
41
41
  this._actionButtonElement.textContent = text;
42
- if (!!text) {
42
+ if (text) {
43
43
  this._actionButtonElement.removeAttribute('hidden');
44
44
  }
45
45
  else {
@@ -103,7 +103,7 @@ export class ToastCore {
103
103
  if (this._actionText !== value) {
104
104
  this._actionText = value;
105
105
  this._adapter.setActionText(this._actionText);
106
- if (!!this._actionText) {
106
+ if (this._actionText) {
107
107
  this._adapter.addActionListener(this._actionListener);
108
108
  }
109
109
  else {
@@ -103,10 +103,11 @@ let ToastComponent = class ToastComponent extends WithElementInternals(WithDefau
103
103
  case TOAST_CONSTANTS.attributes.OPEN:
104
104
  this.open = coerceBoolean(newValue);
105
105
  break;
106
- case TOAST_CONSTANTS.attributes.DURATION:
106
+ case TOAST_CONSTANTS.attributes.DURATION: {
107
107
  const value = Number(newValue);
108
108
  this.duration = value && value > 0 ? value : TOAST_CONSTANTS.defaults.DURATION;
109
109
  break;
110
+ }
110
111
  case TOAST_CONSTANTS.attributes.PLACEMENT:
111
112
  this.placement = newValue || TOAST_CONSTANTS.defaults.PLACEMENT;
112
113
  break;
@@ -15,7 +15,7 @@ import { WithDefaultAria } from '../core/mixins/internals/with-default-aria';
15
15
  import { WithElementInternals } from '../core/mixins/internals/with-element-internals';
16
16
  import { tryDismiss } from '../core/utils/dismissible-stack';
17
17
  const template = '<template><div class=\"forge-tooltip\" part=\"surface\"><slot></slot><div class=\"arrow\" part=\"arrow\"></div></div></template>';
18
- const styles = '@keyframes slidein{from{opacity:0;transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y))}to{opacity:1;transform:translateX(0) translateY(0)}}:host{display:contents;pointer-events:none}:host([hidden]){display:none}.forge-tooltip{--_tooltip-background:var(--forge-tooltip-background, var(--forge-theme-surface-inverse, #333333));--_tooltip-color:var(--forge-tooltip-color, var(--forge-theme-on-surface-inverse, #ffffff));--_tooltip-shape:var(--forge-tooltip-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_tooltip-padding:var(--forge-tooltip-padding, var(--forge-spacing-xsmall, 8px));--_tooltip-padding-block:var(--forge-tooltip-padding-block, var(--_tooltip-padding));--_tooltip-padding-inline:var(--forge-tooltip-padding-inline, var(--_tooltip-padding));--_tooltip-width:var(--forge-tooltip-width, max-content);--_tooltip-max-width:var(--forge-tooltip-max-width, 320px);--_tooltip-elevation:var(--forge-tooltip-elevation, var(--forge-theme-surface-bright-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)));--_tooltip-content-align:var(--forge-tooltip-content-align, center);--_tooltip-border-width:var(--forge-tooltip-border-width, 0);--_tooltip-border-style:var(--forge-tooltip-border-style, solid);--_tooltip-border-color:var(--forge-tooltip-border-color, var(--forge-theme-outline, #e0e0e0));--_tooltip-animation-timing:var(--forge-tooltip-animation-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_tooltip-animation-duration:var(--forge-tooltip-animation-duration, var(--forge-animation-duration-short3, 150ms));--_tooltip-animation-offset:var(--forge-tooltip-animation-offset, 24px);--_tooltip-arrow-size:var(--forge-tooltip-arrow-size, 8px);--_tooltip-arrow-height:var(--forge-tooltip-arrow-height, var(--_tooltip-arrow-size));--_tooltip-arrow-width:var(--forge-tooltip-arrow-width, var(--_tooltip-arrow-size));--_tooltip-arrow-shape:var(--forge-tooltip-arrow-shape, calc(var(--forge-shape-small, 2px) * var(--forge-shape-factor, 1)));--_tooltip-arrow-rotation:var(--forge-tooltip-arrow-rotation, 0deg);--_tooltip-arrow-top-rotation:var(--forge-tooltip-arrow-top-rotation, 315deg);--_tooltip-arrow-right-rotation:var(--forge-tooltip-arrow-right-rotation, 45deg);--_tooltip-arrow-bottom-rotation:var(--forge-tooltip-arrow-bottom-rotation, 135deg);--_tooltip-arrow-left-rotation:var(--forge-tooltip-arrow-left-rotation, 225deg)}.forge-tooltip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);position:relative;background:var(--_tooltip-background);color:var(--_tooltip-color);border-radius:var(--_tooltip-shape);border-width:var(--_tooltip-border-width);border-style:var(--_tooltip-border-style);border-color:var(--_tooltip-border-color);padding-block:var(--_tooltip-padding-block);padding-inline:var(--_tooltip-padding-inline);box-shadow:var(--_tooltip-elevation);width:var(--_tooltip-width);max-width:var(--_tooltip-max-width);pointer-events:none;text-align:var(--_tooltip-content-align);line-height:normal;white-space:normal;animation-duration:var(--_tooltip-animation-duration);animation-timing-function:var(--_tooltip-animation-timing);animation-name:slidein;animation-fill-mode:forwards}:host(:not([open])) .forge-tooltip{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:fixed;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.arrow{position:absolute;contain:strict;background-color:inherit;height:var(--_tooltip-arrow-height);width:var(--_tooltip-arrow-width);box-shadow:inherit;border:inherit;border-end-start-radius:var(--_tooltip-arrow-shape);rotate:var(--_tooltip-arrow-rotation);clip-path:var(--_tooltip-arrow-clip-path);--_tooltip-arrow-translate-x:0;--_tooltip-arrow-translate-y:0;--_tooltip-arrow-clip-path:polygon(0 0, 0 100%, 100% 100%)}.forge-tooltip{--_tooltip-slidein-x:0;--_tooltip-slidein-y:0}forge-overlay[open][position-placement^=top] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=top] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-top-rotation);margin-block-end:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=right] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=right] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-right-rotation);margin-inline-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=bottom] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=bottom] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-bottom-rotation);margin-block-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=left] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=left] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-left-rotation);margin-inline-end:var(--_tooltip-border-width)}';
18
+ const styles = '@keyframes slidein{from{opacity:0;transform:translateX(var(--_tooltip-slidein-x)) translateY(var(--_tooltip-slidein-y))}to{opacity:1;transform:translateX(0) translateY(0)}}:host{display:contents;pointer-events:none}:host([hidden]){display:none}.forge-tooltip{--_tooltip-background:var(--forge-tooltip-background, var(--forge-theme-surface-inverse, #333333));--_tooltip-color:var(--forge-tooltip-color, var(--forge-theme-on-surface-inverse, #ffffff));--_tooltip-shape:var(--forge-tooltip-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_tooltip-padding:var(--forge-tooltip-padding, var(--forge-spacing-xsmall, 8px));--_tooltip-padding-block:var(--forge-tooltip-padding-block, var(--_tooltip-padding));--_tooltip-padding-inline:var(--forge-tooltip-padding-inline, var(--_tooltip-padding));--_tooltip-width:var(--forge-tooltip-width, max-content);--_tooltip-max-width:var(--forge-tooltip-max-width, 320px);--_tooltip-elevation:var(--forge-tooltip-elevation, var(--forge-theme-surface-bright-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)));--_tooltip-content-align:var(--forge-tooltip-content-align, center);--_tooltip-border-width:var(--forge-tooltip-border-width, 0);--_tooltip-border-style:var(--forge-tooltip-border-style, solid);--_tooltip-border-color:var(--forge-tooltip-border-color, var(--forge-theme-outline, #e0e0e0));--_tooltip-animation-timing:var(--forge-tooltip-animation-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_tooltip-animation-duration:var(--forge-tooltip-animation-duration, var(--forge-animation-duration-short3, 150ms));--_tooltip-animation-offset:var(--forge-tooltip-animation-offset, 24px);--_tooltip-arrow-size:var(--forge-tooltip-arrow-size, 8px);--_tooltip-arrow-height:var(--forge-tooltip-arrow-height, var(--_tooltip-arrow-size));--_tooltip-arrow-width:var(--forge-tooltip-arrow-width, var(--_tooltip-arrow-size));--_tooltip-arrow-shape:var(--forge-tooltip-arrow-shape, calc(var(--forge-shape-small, 2px) * var(--forge-shape-factor, 1)));--_tooltip-arrow-rotation:var(--forge-tooltip-arrow-rotation, 0deg);--_tooltip-arrow-top-rotation:var(--forge-tooltip-arrow-top-rotation, 315deg);--_tooltip-arrow-right-rotation:var(--forge-tooltip-arrow-right-rotation, 45deg);--_tooltip-arrow-bottom-rotation:var(--forge-tooltip-arrow-bottom-rotation, 135deg);--_tooltip-arrow-left-rotation:var(--forge-tooltip-arrow-left-rotation, 225deg)}.forge-tooltip{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);position:relative;background:var(--_tooltip-background);color:var(--_tooltip-color);border-radius:var(--_tooltip-shape);border-width:var(--_tooltip-border-width);border-style:var(--_tooltip-border-style);border-color:var(--_tooltip-border-color);padding-block:var(--_tooltip-padding-block);padding-inline:var(--_tooltip-padding-inline);box-shadow:var(--_tooltip-elevation);width:var(--_tooltip-width);max-width:var(--_tooltip-max-width);pointer-events:none;text-align:var(--_tooltip-content-align);line-height:normal;white-space:normal;animation-duration:var(--_tooltip-animation-duration);animation-timing-function:var(--_tooltip-animation-timing);animation-name:slidein;animation-fill-mode:forwards}:host(:not([open])) .forge-tooltip{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.arrow{position:absolute;contain:strict;background-color:inherit;height:var(--_tooltip-arrow-height);width:var(--_tooltip-arrow-width);box-shadow:inherit;border:inherit;border-end-start-radius:var(--_tooltip-arrow-shape);rotate:var(--_tooltip-arrow-rotation);clip-path:var(--_tooltip-arrow-clip-path);--_tooltip-arrow-translate-x:0;--_tooltip-arrow-translate-y:0;--_tooltip-arrow-clip-path:polygon(0 0, 0 100%, 100% 100%)}.forge-tooltip{--_tooltip-slidein-x:0;--_tooltip-slidein-y:0}forge-overlay[open][position-placement^=top] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=top] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-top-rotation);margin-block-end:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=right] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=right] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-right-rotation);margin-inline-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=bottom] .forge-tooltip{--_tooltip-slidein-y:var(--forge-tooltip-slidein-y, calc(var(--_tooltip-animation-offset) * -1))}forge-overlay[open][position-placement^=bottom] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-bottom-rotation);margin-block-start:var(--_tooltip-border-width)}forge-overlay[open][position-placement^=left] .forge-tooltip{--_tooltip-slidein-x:var(--forge-tooltip-slidein-x, var(--_tooltip-animation-offset))}forge-overlay[open][position-placement^=left] .arrow{--_tooltip-arrow-rotation:var(--_tooltip-arrow-left-rotation);margin-inline-end:var(--_tooltip-border-width)}';
19
19
  /**
20
20
  * @tag forge-tooltip
21
21
  *
@@ -61,11 +61,12 @@ export class ViewSwitcherCore {
61
61
  return;
62
62
  }
63
63
  switch (this._animationType) {
64
- case 'slide':
64
+ case 'slide': {
65
65
  const animationDirection = this._viewIndex > fromIndex ? ViewAnimationDirection.Left : ViewAnimationDirection.Right;
66
66
  await this._adapter.transitionToView(fromIndex, this._viewIndex, 'slide', animationDirection);
67
67
  this._adapter.initializeSlideViews(this._viewIndex);
68
68
  break;
69
+ }
69
70
  case 'fade':
70
71
  await this._adapter.transitionToView(fromIndex, this._viewIndex, 'fade');
71
72
  this._adapter.initializeFadeViews(this._viewIndex);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tylertech/forge",
3
3
  "description": "Tyler Forge™ Web Components library",
4
- "version": "3.9.1",
4
+ "version": "3.9.2",
5
5
  "author": "Tyler Technologies, Inc.",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -23,7 +23,7 @@ $tokens: (
23
23
  border-width: utils.module-val(badge, border-width, border.variable(thin)),
24
24
  border-style: utils.module-val(badge, border-style, none),
25
25
  border-color: utils.module-ref(badge, border-color, color),
26
- gap: utils.module-val(badge, gap, spacing.variable(xsmall)),
26
+ gap: utils.module-val(badge, gap, spacing.variable(xxsmall)),
27
27
  font-weight: utils.module-val(badge, font-weight, bold),
28
28
  // Dot
29
29
  dot-size: utils.module-val(badge, dot-size, 8px),
@@ -75,7 +75,6 @@ forge-table {
75
75
 
76
76
  .forge-table-head__cell {
77
77
  border: none;
78
- vertical-align: bottom;
79
78
  }
80
79
  }
81
80
  }
@@ -31,15 +31,14 @@
31
31
  }
32
32
 
33
33
  @mixin visually-hidden() {
34
- border: 0;
35
- clip: rect(0 0 0 0);
34
+ position: absolute;
35
+ width: 1px;
36
36
  height: 1px;
37
+ padding: 0;
37
38
  margin: -1px;
38
39
  overflow: hidden;
39
- padding: 0;
40
- position: fixed;
41
- width: 1px;
42
- outline: 0;
43
- -webkit-appearance: none;
44
- -moz-appearance: none;
40
+ clip: rect(0, 0, 0, 0);
41
+ clip-path: inset(50%);
42
+ white-space: nowrap;
43
+ border: 0;
45
44
  }