@tylertech/forge 3.6.4 → 3.8.0-dev.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.
- package/custom-elements.json +435 -350
- package/dist/button/forge-button.css +3 -2
- package/dist/dialog/forge-dialog.css +3 -0
- package/dist/lib.js +23 -15
- package/dist/lib.js.map +4 -4
- package/dist/list/forge-list.css +5 -1
- package/dist/switch/forge-switch.css +1 -1
- package/dist/vscode.css-custom-data.json +36 -20
- package/dist/vscode.html-custom-data.json +27 -48
- package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +4 -5
- package/esm/app-bar/notification-button/app-bar-notification-button.js +6 -3
- package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
- package/esm/autocomplete/autocomplete-adapter.js +1 -1
- package/esm/avatar/avatar-constants.d.ts +1 -0
- package/esm/avatar/avatar-constants.js +1 -0
- package/esm/avatar/avatar.d.ts +1 -1
- package/esm/avatar/avatar.js +1 -1
- package/esm/badge/badge-component-delegate.js +1 -2
- package/esm/badge/badge-constants.d.ts +1 -0
- package/esm/badge/badge-constants.js +1 -0
- package/esm/badge/badge.d.ts +20 -23
- package/esm/badge/badge.js +57 -47
- package/esm/badge/index.js +3 -3
- package/esm/bottom-sheet/bottom-sheet-constants.d.ts +1 -1
- package/esm/bottom-sheet/bottom-sheet.d.ts +3 -1
- package/esm/button/button.js +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.js +1 -2
- package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +6 -6
- package/esm/button-toggle/button-toggle-group/button-toggle-group.js +6 -6
- package/esm/card/card-constants.d.ts +1 -0
- package/esm/card/card-constants.js +1 -0
- package/esm/card/card.d.ts +12 -13
- package/esm/card/card.js +25 -34
- package/esm/card/index.js +3 -3
- package/esm/checkbox/checkbox.d.ts +5 -1
- package/esm/chips/chip/chip-constants.d.ts +1 -1
- package/esm/core/delegates/base-component-delegate.d.ts +1 -1
- package/esm/core/mask/date-input-mask.d.ts +3 -3
- package/esm/core/mask/date-input-mask.js +7 -8
- package/esm/core/mask/intermediate-time-parser.d.ts +2 -2
- package/esm/core/mask/intermediate-time-parser.js +2 -3
- package/esm/core/mask/time-input-mask.d.ts +3 -3
- package/esm/core/mask/time-input-mask.js +4 -5
- package/esm/core/mixins/label/with-label-aware.d.ts +4 -1
- package/esm/core/utils/a11y-utils.d.ts +0 -8
- package/esm/core/utils/a11y-utils.js +5 -25
- package/esm/core/utils/dismissible-stack.d.ts +7 -0
- package/esm/core/utils/position-utils.d.ts +1 -2
- package/esm/core/utils/position-utils.js +7 -22
- package/esm/core/utils/utils.d.ts +14 -0
- package/esm/core/utils/utils.js +44 -1
- package/esm/date-picker/base/base-date-picker-constants.d.ts +2 -2
- package/esm/deprecated/button/deprecated-button.js +1 -1
- package/esm/dialog/dialog-core.js +2 -2
- package/esm/dialog/dialog.d.ts +2 -0
- package/esm/dialog/dialog.js +1 -1
- package/esm/expansion-panel/expansion-panel-adapter.d.ts +31 -0
- package/esm/expansion-panel/expansion-panel-adapter.js +60 -1
- package/esm/expansion-panel/expansion-panel-constants.d.ts +4 -0
- package/esm/expansion-panel/expansion-panel-constants.js +4 -1
- package/esm/expansion-panel/expansion-panel-core.d.ts +13 -1
- package/esm/expansion-panel/expansion-panel-core.js +63 -1
- package/esm/expansion-panel/expansion-panel.d.ts +9 -0
- package/esm/expansion-panel/expansion-panel.js +14 -0
- package/esm/field/base/base-field.d.ts +1 -0
- package/esm/field/base/base-field.js +1 -0
- package/esm/field/field-constants.d.ts +1 -0
- package/esm/field/field-constants.js +1 -0
- package/esm/field/field.d.ts +1 -0
- package/esm/field/field.js +3 -2
- package/esm/floating-action-button/floating-action-button-constants.d.ts +1 -1
- package/esm/icon/icon-constants.d.ts +1 -1
- package/esm/icon/icon-registry.d.ts +6 -0
- package/esm/icon-button/icon-button-constants.d.ts +1 -1
- package/esm/label/label-adapter.js +1 -1
- package/esm/list/list-item/list-item.js +1 -1
- package/esm/list-dropdown/list-dropdown-constants.d.ts +11 -0
- package/esm/list-dropdown/list-dropdown-utils.js +18 -0
- package/esm/menu/menu-constants.d.ts +0 -1
- package/esm/menu/menu-constants.js +1 -2
- package/esm/menu/menu-core.js +1 -1
- package/esm/menu/menu.js +2 -1
- package/esm/meter/meter/meter.js +2 -1
- package/esm/meter/meter-group/meter-group.js +2 -1
- package/esm/overlay/base/base-overlay-core.d.ts +3 -3
- package/esm/overlay/base/base-overlay.d.ts +3 -3
- package/esm/overlay/base/base-overlay.js +11 -1
- package/esm/overlay/base/overlay-aware-core.d.ts +3 -3
- package/esm/overlay/base/overlay-aware-core.js +2 -1
- package/esm/overlay/overlay-adapter.d.ts +2 -2
- package/esm/overlay/overlay-adapter.js +6 -14
- package/esm/overlay/overlay-constants.d.ts +2 -5
- package/esm/overlay/overlay-constants.js +2 -23
- package/esm/overlay/overlay-core.d.ts +3 -3
- package/esm/overlay/overlay-core.js +13 -3
- package/esm/overlay/overlay.d.ts +2 -2
- package/esm/overlay/overlay.js +2 -2
- package/esm/popover/popover-adapter.js +2 -2
- package/esm/popover/popover.js +1 -1
- package/esm/profile-card/profile-card-core.js +4 -4
- package/esm/radio/core/radio-group-manager.d.ts +2 -1
- package/esm/radio/radio/radio.d.ts +1 -0
- package/esm/select/core/base-select-adapter.js +2 -1
- package/esm/select/option/option-constants.d.ts +1 -0
- package/esm/select/option/option-constants.js +1 -0
- package/esm/select/option/option-core.d.ts +4 -1
- package/esm/select/option/option-core.js +8 -0
- package/esm/select/option/option.d.ts +5 -1
- package/esm/select/option/option.js +8 -1
- package/esm/select/select/select-core.js +1 -3
- package/esm/select/select/select.d.ts +1 -0
- package/esm/select/select/select.js +1 -0
- package/esm/split-button/split-button-constants.d.ts +2 -2
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/stepper/stepper/stepper-constants.d.ts +15 -1
- package/esm/switch/switch.d.ts +6 -2
- package/esm/switch/switch.js +1 -1
- package/esm/table/table-core.js +10 -2
- package/esm/table/table-utils.js +8 -4
- package/esm/tabs/tab-bar/tab-bar-core.js +3 -0
- package/esm/text-field/text-field.d.ts +1 -0
- package/esm/text-field/text-field.js +1 -0
- package/esm/time-picker/time-picker-adapter.js +0 -1
- package/esm/time-picker/time-picker-constants.d.ts +2 -2
- package/esm/toast/toast-constants.d.ts +1 -1
- package/esm/tooltip/tooltip-constants.d.ts +1 -1
- package/package.json +4 -4
- package/sass/badge/badge.scss +10 -10
- package/sass/button/_core.scss +1 -0
- package/sass/calendar/_variables.scss +3 -2
- package/sass/card/card.scss +1 -1
- package/sass/core/styles/tokens/button/_tokens.scss +2 -2
- package/sass/core/styles/tokens/slider/_tokens.scss +10 -4
- package/sass/core/styles/tokens/switch/_tokens.scss +1 -1
- package/sass/dialog/dialog.scss +8 -0
- package/sass/dialog/forge-dialog.scss +4 -0
- package/sass/field/_core.scss +1 -1
- package/sass/field/field.scss +1 -1
- package/sass/linear-progress/linear-progress.scss +7 -3
- package/sass/list/list-item/_core.scss +9 -1
- package/sass/list/list-item/list-item.scss +5 -1
- package/sass/popover/popover.scss +0 -1
- package/sass/slider/_core.scss +2 -3
|
@@ -42,7 +42,17 @@ export class BaseOverlay extends BaseComponent {
|
|
|
42
42
|
this.persistent = coerceBoolean(newValue);
|
|
43
43
|
break;
|
|
44
44
|
case OVERLAY_CONSTANTS.observedAttributes.SHIFT:
|
|
45
|
-
|
|
45
|
+
// Handle legacy boolean attributes for shift by converting to corresponding type values
|
|
46
|
+
// TODO: Remove support for boolean attribute conversion in v4
|
|
47
|
+
if (newValue === '' || newValue?.trim() === 'true') {
|
|
48
|
+
this.shift = 'auto';
|
|
49
|
+
}
|
|
50
|
+
else if (newValue == null || newValue?.trim() === 'false') {
|
|
51
|
+
this.shift = 'never';
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.shift = newValue;
|
|
55
|
+
}
|
|
46
56
|
break;
|
|
47
57
|
case OVERLAY_CONSTANTS.observedAttributes.FLIP:
|
|
48
58
|
this.flip = newValue;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { IBaseOverlayCore } from './base-overlay-core';
|
|
7
7
|
import { IOverlayComponent } from '../overlay';
|
|
8
8
|
import { IOverlayAwareAdapter } from './overlay-aware-adapter';
|
|
9
|
-
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy } from '../overlay-constants';
|
|
9
|
+
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy, OverlayShiftState } from '../overlay-constants';
|
|
10
10
|
import { PositionPlacement, VirtualElement } from '../../core/utils/position-utils';
|
|
11
11
|
export interface IOverlayAwareCore extends IBaseOverlayCore {
|
|
12
12
|
readonly overlayElement: IOverlayComponent;
|
|
@@ -39,8 +39,8 @@ export declare abstract class OverlayAwareCore<T extends IOverlayAwareAdapter> i
|
|
|
39
39
|
set hide(value: OverlayHideState);
|
|
40
40
|
get persistent(): boolean;
|
|
41
41
|
set persistent(value: boolean);
|
|
42
|
-
get shift():
|
|
43
|
-
set shift(value:
|
|
42
|
+
get shift(): OverlayShiftState;
|
|
43
|
+
set shift(value: OverlayShiftState);
|
|
44
44
|
get flip(): OverlayFlipState;
|
|
45
45
|
set flip(value: OverlayFlipState);
|
|
46
46
|
get boundary(): string | null;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { OVERLAY_CONSTANTS } from '../overlay-constants';
|
|
7
|
+
import { toggleAttribute } from '@tylertech/forge-core';
|
|
7
8
|
export class OverlayAwareCore {
|
|
8
9
|
constructor(_adapter) {
|
|
9
10
|
this._adapter = _adapter;
|
|
@@ -115,7 +116,7 @@ export class OverlayAwareCore {
|
|
|
115
116
|
set shift(value) {
|
|
116
117
|
if (this._adapter.overlayElement.shift !== value) {
|
|
117
118
|
this._adapter.overlayElement.shift = value;
|
|
118
|
-
this._adapter.
|
|
119
|
+
toggleAttribute(this._adapter.hostElement, this._adapter.overlayElement.shift !== OVERLAY_CONSTANTS.defaults.SHIFT, OVERLAY_CONSTANTS.attributes.SHIFT, String(this._adapter.overlayElement.shift));
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
get flip() {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';
|
|
7
7
|
import { PositionPlacement, VirtualElement } from '../core/utils/position-utils';
|
|
8
8
|
import { IOverlayComponent } from './overlay';
|
|
9
|
-
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayLightDismissReason, OverlayPositionStrategy } from './overlay-constants';
|
|
9
|
+
import { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayLightDismissReason, OverlayPositionStrategy, OverlayShiftState } from './overlay-constants';
|
|
10
10
|
export interface IOverlayAdapter extends IBaseAdapter<IOverlayComponent> {
|
|
11
11
|
show(): void;
|
|
12
12
|
hide(): void;
|
|
@@ -24,7 +24,7 @@ export interface IPositionElementConfig {
|
|
|
24
24
|
placement: PositionPlacement;
|
|
25
25
|
hide: OverlayHideState;
|
|
26
26
|
offset: IOverlayOffset;
|
|
27
|
-
shift:
|
|
27
|
+
shift: OverlayShiftState;
|
|
28
28
|
flip: OverlayFlipState;
|
|
29
29
|
boundary: string | null;
|
|
30
30
|
boundaryElement: HTMLElement | null;
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
import { autoUpdate } from '@floating-ui/dom';
|
|
7
7
|
import { getShadowElement } from '@tylertech/forge-core';
|
|
8
8
|
import { BaseAdapter } from '../core/base/base-adapter';
|
|
9
|
-
import {
|
|
10
|
-
import { locateElementById
|
|
9
|
+
import { positionElementAsync, VirtualElement } from '../core/utils/position-utils';
|
|
10
|
+
import { locateElementById } from '../core/utils/utils';
|
|
11
11
|
import { OverlayComponent } from './overlay';
|
|
12
|
-
import {
|
|
12
|
+
import { OVERLAY_CONSTANTS, overlayStack, SUPPORTS_POPOVER } from './overlay-constants';
|
|
13
13
|
export class OverlayAdapter extends BaseAdapter {
|
|
14
14
|
constructor(component) {
|
|
15
15
|
super(component);
|
|
@@ -73,14 +73,14 @@ export class OverlayAdapter extends BaseAdapter {
|
|
|
73
73
|
strategy,
|
|
74
74
|
placement,
|
|
75
75
|
hide: hide !== 'never',
|
|
76
|
-
shift,
|
|
76
|
+
shift: shift !== 'never',
|
|
77
77
|
shiftOptions: {
|
|
78
78
|
boundary: boundaryEl
|
|
79
79
|
},
|
|
80
80
|
flip: flip !== 'never',
|
|
81
81
|
flipOptions: {
|
|
82
|
-
|
|
83
|
-
fallbackPlacements
|
|
82
|
+
boundary: boundaryEl,
|
|
83
|
+
fallbackPlacements,
|
|
84
84
|
crossAxis: flip === 'cross' || flip === 'auto',
|
|
85
85
|
mainAxis: flip === 'main' || flip === 'auto'
|
|
86
86
|
},
|
|
@@ -117,14 +117,6 @@ export class OverlayAdapter extends BaseAdapter {
|
|
|
117
117
|
// Update the clipped attributes to allow for state-based clipping adjustments by consumers
|
|
118
118
|
this._component.toggleAttribute(OVERLAY_CONSTANTS.attributes.CLIPPED_X, isClippedX);
|
|
119
119
|
this._component.toggleAttribute(OVERLAY_CONSTANTS.attributes.CLIPPED_Y, isClippedY);
|
|
120
|
-
// If clipped, adjust the position by the clipping delta on each axis
|
|
121
|
-
if (isClippedX || isClippedY) {
|
|
122
|
-
const { x, y } = result;
|
|
123
|
-
const { height, width } = overlayRect;
|
|
124
|
-
const clippedDeltaX = isClippedX ? x + width - viewportWidth : 0;
|
|
125
|
-
const clippedDeltaY = isClippedY ? y + height - viewportHeight : 0;
|
|
126
|
-
this._rootElement.style.translate = `${roundByDPR(x - clippedDeltaX)}px ${roundByDPR(y - clippedDeltaY)}px`;
|
|
127
|
-
}
|
|
128
120
|
});
|
|
129
121
|
}
|
|
130
122
|
tryCleanupAutoUpdate() {
|
|
@@ -50,6 +50,7 @@ export declare const OVERLAY_CONSTANTS: {
|
|
|
50
50
|
defaults: {
|
|
51
51
|
readonly HIDE: "anchor-hidden";
|
|
52
52
|
readonly FLIP: "auto";
|
|
53
|
+
readonly SHIFT: "auto";
|
|
53
54
|
};
|
|
54
55
|
};
|
|
55
56
|
export declare const SUPPORTS_POPOVER: boolean;
|
|
@@ -62,6 +63,7 @@ export type OverlayPositionStrategy = 'absolute' | 'fixed';
|
|
|
62
63
|
export type OverlayPlacement = PositionPlacement;
|
|
63
64
|
export type OverlayHideState = 'anchor-hidden' | 'never';
|
|
64
65
|
export type OverlayFlipState = 'auto' | 'main' | 'cross' | 'never';
|
|
66
|
+
export type OverlayShiftState = 'auto' | 'never' | boolean;
|
|
65
67
|
export type OverlayLightDismissReason = 'click' | 'escape';
|
|
66
68
|
export interface IOverlayToggleEvent extends Event {
|
|
67
69
|
newState: 'closed' | 'open';
|
|
@@ -71,8 +73,3 @@ export interface OverlayLightDismissEventData {
|
|
|
71
73
|
reason: OverlayLightDismissReason;
|
|
72
74
|
}
|
|
73
75
|
export declare const overlayStack: unique symbol;
|
|
74
|
-
/**
|
|
75
|
-
* This is a map of fallback placements for each placement. The fallback placements are used when the
|
|
76
|
-
* original placement is not possible due to the boundary or other constraints.
|
|
77
|
-
*/
|
|
78
|
-
export declare const OVERLAY_FALLBACK_PLACEMENT_MAP: Record<OverlayPlacement, OverlayPlacement[]>;
|
|
@@ -38,7 +38,8 @@ const events = {
|
|
|
38
38
|
};
|
|
39
39
|
const defaults = {
|
|
40
40
|
HIDE: 'anchor-hidden',
|
|
41
|
-
FLIP: 'auto'
|
|
41
|
+
FLIP: 'auto',
|
|
42
|
+
SHIFT: 'auto'
|
|
42
43
|
};
|
|
43
44
|
export const OVERLAY_CONSTANTS = {
|
|
44
45
|
elementName,
|
|
@@ -51,25 +52,3 @@ export const OVERLAY_CONSTANTS = {
|
|
|
51
52
|
};
|
|
52
53
|
export const SUPPORTS_POPOVER = supportsPopover();
|
|
53
54
|
export const overlayStack = Symbol('overlayStack');
|
|
54
|
-
/**
|
|
55
|
-
* This is a map of fallback placements for each placement. The fallback placements are used when the
|
|
56
|
-
* original placement is not possible due to the boundary or other constraints.
|
|
57
|
-
*/
|
|
58
|
-
export const OVERLAY_FALLBACK_PLACEMENT_MAP = {
|
|
59
|
-
// Left
|
|
60
|
-
left: ['right', 'bottom', 'top', 'top-start', 'top-end', 'left-start', 'left-end', 'right-start', 'right-end'],
|
|
61
|
-
'left-start': ['left-end', 'right-start', 'right-end', 'bottom', 'top'],
|
|
62
|
-
'left-end': ['left-start', 'right-end', 'right-start', 'bottom', 'top', 'bottom-start', 'bottom-end'],
|
|
63
|
-
// Right
|
|
64
|
-
right: ['left', 'bottom', 'top', 'top-start', 'top-end', 'left-start', 'left-end', 'right-start', 'right-end'],
|
|
65
|
-
'right-start': ['right-end', 'left-start', 'left-end', 'bottom', 'top'],
|
|
66
|
-
'right-end': ['right-start', 'left-end', 'left-start', 'bottom', 'top', 'bottom-start', 'bottom-end'],
|
|
67
|
-
// Top
|
|
68
|
-
top: ['bottom', 'left', 'right', 'bottom-start', 'left-start', 'left-end', 'right-start', 'right-end'],
|
|
69
|
-
'top-start': ['bottom-start', 'left', 'right', 'left-start', 'left-end', 'right-start', 'right-end'],
|
|
70
|
-
'top-end': ['bottom-end', 'left', 'right', 'right-start', 'right-end', 'left-start', 'left-end'],
|
|
71
|
-
// Bottom
|
|
72
|
-
bottom: ['top', 'left', 'right', 'top-start', 'left-start', 'left-end', 'right-start', 'right-end'],
|
|
73
|
-
'bottom-start': ['top-start', 'left', 'right', 'left-start', 'left-end', 'right-start', 'right-end'],
|
|
74
|
-
'bottom-end': ['top-end', 'left', 'right', 'right-start', 'right-end', 'left-start', 'left-end']
|
|
75
|
-
};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { PositionPlacement } from '../core/utils/position-utils';
|
|
7
7
|
import { IBaseOverlayCore, BaseOverlayCore } from './base/base-overlay-core';
|
|
8
8
|
import { IOverlayAdapter } from './overlay-adapter';
|
|
9
|
-
import { IOverlayOffset, OverlayPlacement, OverlayPositionStrategy, OverlayFlipState, OverlayHideState } from './overlay-constants';
|
|
9
|
+
import { IOverlayOffset, OverlayPlacement, OverlayPositionStrategy, OverlayFlipState, OverlayHideState, OverlayShiftState } from './overlay-constants';
|
|
10
10
|
export interface IOverlayCore extends IBaseOverlayCore {
|
|
11
11
|
arrowElement: HTMLElement;
|
|
12
12
|
arrowElementOffset: number;
|
|
@@ -59,8 +59,8 @@ export declare class OverlayCore extends BaseOverlayCore<IOverlayAdapter> implem
|
|
|
59
59
|
set positionStrategy(value: OverlayPositionStrategy);
|
|
60
60
|
get offset(): IOverlayOffset;
|
|
61
61
|
set offset(value: IOverlayOffset);
|
|
62
|
-
get shift():
|
|
63
|
-
set shift(value:
|
|
62
|
+
get shift(): OverlayShiftState;
|
|
63
|
+
set shift(value: OverlayShiftState);
|
|
64
64
|
get hide(): OverlayHideState;
|
|
65
65
|
set hide(value: OverlayHideState);
|
|
66
66
|
get persistent(): boolean;
|
|
@@ -14,7 +14,7 @@ export class OverlayCore extends BaseOverlayCore {
|
|
|
14
14
|
this._placement = 'bottom';
|
|
15
15
|
this._positionStrategy = 'fixed';
|
|
16
16
|
this._offset = {};
|
|
17
|
-
this._shift =
|
|
17
|
+
this._shift = OVERLAY_CONSTANTS.defaults.SHIFT;
|
|
18
18
|
this._hide = OVERLAY_CONSTANTS.defaults.HIDE;
|
|
19
19
|
this._flip = OVERLAY_CONSTANTS.defaults.FLIP;
|
|
20
20
|
this._fallbackPlacements = null;
|
|
@@ -215,13 +215,23 @@ export class OverlayCore extends BaseOverlayCore {
|
|
|
215
215
|
return this._shift;
|
|
216
216
|
}
|
|
217
217
|
set shift(value) {
|
|
218
|
-
|
|
218
|
+
// Handle legacy boolean values for shift by converting them to the corresponding type value
|
|
219
|
+
// TODO: Remove support for boolean values in v4
|
|
220
|
+
if (value === true) {
|
|
221
|
+
value = 'auto';
|
|
222
|
+
}
|
|
223
|
+
else if (value === false) {
|
|
224
|
+
value = 'never';
|
|
225
|
+
}
|
|
226
|
+
else if (!['auto', 'never'].includes(value)) {
|
|
227
|
+
value = OVERLAY_CONSTANTS.defaults.SHIFT;
|
|
228
|
+
}
|
|
219
229
|
if (this._shift !== value) {
|
|
220
230
|
this._shift = value;
|
|
221
231
|
if (this._open) {
|
|
222
232
|
this.position();
|
|
223
233
|
}
|
|
224
|
-
this._adapter.
|
|
234
|
+
this._adapter.setHostAttribute(OVERLAY_CONSTANTS.attributes.SHIFT, this._shift);
|
|
225
235
|
}
|
|
226
236
|
}
|
|
227
237
|
get hide() {
|
package/esm/overlay/overlay.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ declare global {
|
|
|
39
39
|
* @property {OverlayPlacement} [placement="bottom"] - The placement of the overlay relative to the anchor element.
|
|
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
|
-
* @property {
|
|
42
|
+
* @property {OverlayShiftState} [shift="auto"] - Whether or not the anchor element should shift along the side of the overlay when scrolling.
|
|
43
43
|
* @property {OverlayHideState} [hide="anchor-hidden"] - 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.
|
|
@@ -64,7 +64,7 @@ declare global {
|
|
|
64
64
|
* @attribute {string} [position-strategy="fixed"] - The positioning strategy to use for the overlay. Valid values are `'fixed'` and `'absolute'`.
|
|
65
65
|
* @attribute {string} [hide="anchor-hidden"] - 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
|
-
* @attribute {
|
|
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.
|
|
69
69
|
* @attribute {string} position-placement - The placement of the overlay around the anchor element **after** dynamic positioning. This is a read-only attribute that is only available when open.
|
|
70
70
|
* @attribute {string} boundary - The id of the element to use as the boundary for the overlay.
|
package/esm/overlay/overlay.js
CHANGED
|
@@ -33,7 +33,7 @@ const styles = ':host{display:contents}:host([hidden]){display:none}.forge-overl
|
|
|
33
33
|
* @property {OverlayPlacement} [placement="bottom"] - The placement of the overlay relative to the anchor element.
|
|
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
|
-
* @property {
|
|
36
|
+
* @property {OverlayShiftState} [shift="auto"] - Whether or not the anchor element should shift along the side of the overlay when scrolling.
|
|
37
37
|
* @property {OverlayHideState} [hide="anchor-hidden"] - 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.
|
|
@@ -58,7 +58,7 @@ const styles = ':host{display:contents}:host([hidden]){display:none}.forge-overl
|
|
|
58
58
|
* @attribute {string} [position-strategy="fixed"] - The positioning strategy to use for the overlay. Valid values are `'fixed'` and `'absolute'`.
|
|
59
59
|
* @attribute {string} [hide="anchor-hidden"] - 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
|
-
* @attribute {
|
|
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.
|
|
63
63
|
* @attribute {string} position-placement - The placement of the overlay around the anchor element **after** dynamic positioning. This is a read-only attribute that is only available when open.
|
|
64
64
|
* @attribute {string} boundary - The id of the element to use as the boundary for the overlay.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { getShadowElement } from '@tylertech/forge-core';
|
|
7
7
|
import { prefersReducedMotion } from '../core/utils/feature-detection';
|
|
8
8
|
import { VirtualElement } from '../core/utils/position-utils';
|
|
9
|
-
import { frame } from '../core/utils/utils';
|
|
9
|
+
import { checkVisibility, frame } from '../core/utils/utils';
|
|
10
10
|
import { OVERLAY_CONSTANTS } from '../overlay';
|
|
11
11
|
import { OverlayAwareAdapter } from '../overlay/base/overlay-aware-adapter';
|
|
12
12
|
import { POPOVER_CONSTANTS } from './popover-constants';
|
|
@@ -63,7 +63,7 @@ export class PopoverAdapter extends OverlayAwareAdapter {
|
|
|
63
63
|
return Promise.resolve();
|
|
64
64
|
}
|
|
65
65
|
await frame();
|
|
66
|
-
if (!this._surfaceElement
|
|
66
|
+
if (!checkVisibility(this._surfaceElement)) {
|
|
67
67
|
this._overlayElement.open = false;
|
|
68
68
|
this._updateAnchorExpandedState(false);
|
|
69
69
|
return Promise.resolve();
|
package/esm/popover/popover.js
CHANGED
|
@@ -13,7 +13,7 @@ import { OverlayAware } from '../overlay/base/overlay-aware';
|
|
|
13
13
|
import { coerceStringToArray } from '../core/utils/utils';
|
|
14
14
|
import { tryDismiss } from '../core/utils/dismissible-stack';
|
|
15
15
|
const template = '<template><forge-overlay exportparts=\"root:overlay\"><div class=\"forge-popover\" part=\"surface\"><slot></slot></div></forge-overlay></template>';
|
|
16
|
-
const styles = '@keyframes zoomin{from{transform:scale(.8)}to{transform:scale(1)}}@keyframes zoomout{from{transform:scale(1)}to{transform:scale(.8)}}@keyframes slidein{from{transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{transform:translateX(0) translateY(0)}}@keyframes slideout{from{transform:translateX(0) translateY(0)}to{transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}}@keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadeout{from{opacity:1}to{opacity:0}}@layer base,animation,preset,reduced-motion; @layer base{:host{display:contents;--forge-theme-surface:var(--forge-theme-surface-bright, #ffffff)}:host([hidden]){display:none}forge-overlay{--_popover-width:var(--forge-popover-width, auto);--_popover-height:var(--forge-popover-height, auto);--_popover-min-width:var(--forge-popover-min-width, none);--_popover-max-width:var(--forge-popover-max-width, none);--_popover-min-height:var(--forge-popover-min-height, none);--_popover-max-height:var(--forge-popover-max-height, none);--_popover-background:var(--forge-popover-background, var(--forge-theme-surface-bright, #ffffff));--_popover-border-radius:var(--forge-popover-border-radius, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_popover-box-shadow:var(--forge-popover-box-shadow, 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)));--_popover-border-width:var(--forge-popover-border-width, 0);--_popover-border-style:var(--forge-popover-border-style, solid);--_popover-border-color:var(--forge-popover-border-color, var(--forge-theme-outline, #e0e0e0));--_popover-overflow:var(--forge-popover-overflow, initial);--_popover-arrow-size:var(--forge-popover-arrow-size, 12px);--_popover-arrow-height:var(--forge-popover-arrow-height, var(--_popover-arrow-size));--_popover-arrow-width:var(--forge-popover-arrow-width, var(--_popover-arrow-size));--_popover-arrow-background-color:var(--forge-popover-arrow-background-color, var(--_popover-background));--_popover-arrow-top-rotation:var(--forge-popover-arrow-top-rotation, 135deg);--_popover-arrow-right-rotation:var(--forge-popover-arrow-right-rotation, 225deg);--_popover-arrow-bottom-rotation:var(--forge-popover-arrow-bottom-rotation, 315deg);--_popover-arrow-left-rotation:var(--forge-popover-arrow-left-rotation, 45deg);--_popover-arrow-border-width:var(--forge-popover-arrow-border-width, var(--forge-border-thin, 1px));--_popover-animation-enter-duration:var(--forge-popover-animation-enter-duration, var(--forge-animation-duration-short3, 150ms));--_popover-animation-enter-timing:var(--forge-popover-animation-enter-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_popover-animation-exit-duration:var(--forge-popover-animation-exit-duration, var(--forge-animation-duration-short2, 100ms));--_popover-animation-exit-timing:var(--forge-popover-animation-exit-timing, var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)));--_popover-zoom-enter-duration:var(--forge-popover-zoom-enter-duration, var(--_popover-animation-enter-duration));--_popover-zoom-enter-timing:var(--forge-popover-zoom-enter-timing, var(--_popover-animation-enter-timing));--_popover-zoom-exit-duration:var(--forge-popover-zoom-exit-duration, var(--_popover-animation-exit-duration));--_popover-zoom-exit-timing:var(--forge-popover-zoom-exit-timing, var(--_popover-animation-exit-timing));--_popover-slide-enter-duration:var(--forge-popover-slide-enter-duration, var(--_popover-animation-enter-duration));--_popover-slide-enter-timing:var(--forge-popover-slide-enter-timing, var(--_popover-animation-enter-timing));--_popover-slide-exit-duration:var(--forge-popover-slide-exit-duration, var(--_popover-animation-exit-duration));--_popover-slide-exit-timing:var(--forge-popover-slide-exit-timing, var(--_popover-animation-exit-timing));--_popover-slide-offset:var(--forge-popover-slide-offset, 24px);--_popover-fade-enter-duration:var(--forge-popover-fade-enter-duration, var(--forge-animation-duration-medium2, 300ms));--_popover-fade-enter-timing:var(--forge-popover-fade-enter-timing, var(--_popover-animation-enter-timing));--_popover-fade-exit-duration:var(--forge-popover-fade-exit-duration, var(--_popover-animation-exit-duration));--_popover-fade-exit-timing:var(--forge-popover-fade-exit-timing, var(--_popover-animation-exit-timing));--_popover-position-inline-start:var(--forge-popover-position-inline-start, auto);--_popover-position-inline-end:var(--forge-popover-position-inline-end, auto);--_popover-position-block-start:var(--forge-popover-position-block-start, auto);--_popover-position-block-end:var(--forge-popover-position-block-end, auto);--_popover-preset-dropdown-max-height:var(--forge-popover-preset-dropdown-max-height, 256px);--_popover-preset-dropdown-overflow:var(--forge-popover-preset-dropdown-overflow, auto visible);--_popover-preset-dropdown-padding-block:var(--forge-popover-preset-dropdown-padding-block, var(--forge-spacing-xsmall, 8px));--_popover-preset-list-padding-block:var(--forge-popover-preset-list-padding-block, var(--forge-spacing-xsmall, 8px))}.forge-popover{--_popover-arrow-translate-x:0;--_popover-arrow-translate-y:0;--_popover-arrow-rotation:0;--_popover-slidein-x:0;--_popover-slidein-y:0;--_popover-zoomin-origin:50% 50% 0;--_popover-arrow-clip-path:polygon(calc(var(--_popover-border-width) * -1) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(100% + var(--_popover-border-width)))}.forge-popover{position:relative;overflow:var(--_popover-overflow);box-sizing:border-box;background:var(--_popover-background);border-radius:var(--_popover-border-radius);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color);width:var(--_popover-width);height:var(--_popover-height);min-width:var(--_popover-min-width);max-width:var(--_popover-max-width);min-height:var(--_popover-min-height);max-height:var(--_popover-max-height)}.forge-popover::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-popover::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popover::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popover::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popover::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,calc(var(--forge-shape-full,9999px) * var(--forge-shape-factor,1)));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-popover::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}:host([open][no-anchor]) forge-overlay{--forge-overlay-position-inline-start:var(--_popover-position-inline-start);--forge-overlay-position-inline-end:var(--_popover-position-inline-end);--forge-overlay-position-block-start:var(--_popover-position-block-start);--forge-overlay-position-block-end:var(--_popover-position-block-end)}:host([arrow]) .forge-popover{--_popover-border-width:var(--_popover-arrow-border-width)}:host([arrow]) .arrow{position:absolute;background-color:var(--_popover-arrow-background-color);height:var(--_popover-arrow-height);width:var(--_popover-arrow-width);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color);transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));clip-path:var(--_popover-arrow-clip-path)}:host([arrow]) forge-overlay[position-placement^=top] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-top-rotation))}:host([arrow]) forge-overlay[position-placement^=right] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-right-rotation))}:host([arrow]) forge-overlay[position-placement^=bottom] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-bottom-rotation))}:host([arrow]) forge-overlay[position-placement^=left] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-left-rotation))}}@layer preset{:host([preset=dropdown]) .forge-popover{--_popover-max-height:var(--_popover-preset-dropdown-max-height);--_popover-overflow:var(--_popover-preset-dropdown-overflow);padding-block:var(--_popover-preset-dropdown-padding-block)}:host([preset=list]) .forge-popover{padding-block:var(--_popover-preset-list-padding-block)}:host([constrain-viewport-width]) .forge-popover{--_popover-max-width:var(--forge-popover-max-width, 100vw)}}@layer animation{:host(:not([animation-type])) .forge-popover,:host([animation-type=zoom]) .forge-popover{animation-duration:var(--_popover-zoom-enter-duration);animation-timing-function:var(--_popover-zoom-enter-timing);animation-name:fadein,zoomin;transform-origin:var(--_popover-zoomin-origin)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left bottom)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right bottom)}:host(:not([animation-type])) forge-overlay[open] .forge-popover.exiting,:host([animation-type=zoom]) forge-overlay[open] .forge-popover.exiting{animation-duration:var(--_popover-zoom-exit-duration);animation-timing-function:var(--_popover-zoom-exit-timing);animation-name:fadeout,zoomout}:host([animation-type=slide]) .forge-popover{animation-duration:var(--_popover-slide-enter-duration);animation-timing-function:var(--_popover-slide-enter-timing);animation-name:fadein,slidein}:host([animation-type=slide]) forge-overlay[open][position-placement^=top] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, var(--_popover-slide-offset))}:host([animation-type=slide]) forge-overlay[open][position-placement^=right] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=bottom] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=left] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, var(--_popover-slide-offset))}:host([animation-type=slide]) forge-overlay[open] .forge-popover.exiting{animation-duration:var(--_popover-slide-exit-duration);animation-timing-function:var(--_popover-slide-exit-timing);animation-name:fadeout,slideout}:host([animation-type=fade]) .forge-popover{animation-duration:var(--_popover-fade-enter-duration);animation-timing-function:var(--_popover-fade-enter-timing);animation-name:fadein}:host([animation-type=fade]) .forge-popover.exiting{animation-duration:var(--_popover-fade-exit-duration);animation-timing-function:var(--_popover-fade-exit-timing);animation-name:fadeout}}forge-overlay[clipped-x] .forge-popover{width:auto;min-width:0;max-width:100vw;overflow-x:auto}forge-overlay[clipped-y] .forge-popover{height:auto;min-height:0;max-height:100vh;overflow-y:auto}@layer reduced-motion{@media (prefers-reduced-motion:reduce){.forge-popover{animation:none}.forge-popover.exiting{animation:none}}}';
|
|
16
|
+
const styles = '@keyframes zoomin{from{transform:scale(.8)}to{transform:scale(1)}}@keyframes zoomout{from{transform:scale(1)}to{transform:scale(.8)}}@keyframes slidein{from{transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{transform:translateX(0) translateY(0)}}@keyframes slideout{from{transform:translateX(0) translateY(0)}to{transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}}@keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadeout{from{opacity:1}to{opacity:0}}@layer base,animation,preset,reduced-motion; @layer base{:host{display:contents;--forge-theme-surface:var(--forge-theme-surface-bright, #ffffff)}:host([hidden]){display:none}forge-overlay{--_popover-width:var(--forge-popover-width, auto);--_popover-height:var(--forge-popover-height, auto);--_popover-min-width:var(--forge-popover-min-width, none);--_popover-max-width:var(--forge-popover-max-width, none);--_popover-min-height:var(--forge-popover-min-height, none);--_popover-max-height:var(--forge-popover-max-height, none);--_popover-background:var(--forge-popover-background, var(--forge-theme-surface-bright, #ffffff));--_popover-border-radius:var(--forge-popover-border-radius, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_popover-box-shadow:var(--forge-popover-box-shadow, 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)));--_popover-border-width:var(--forge-popover-border-width, 0);--_popover-border-style:var(--forge-popover-border-style, solid);--_popover-border-color:var(--forge-popover-border-color, var(--forge-theme-outline, #e0e0e0));--_popover-overflow:var(--forge-popover-overflow, initial);--_popover-arrow-size:var(--forge-popover-arrow-size, 12px);--_popover-arrow-height:var(--forge-popover-arrow-height, var(--_popover-arrow-size));--_popover-arrow-width:var(--forge-popover-arrow-width, var(--_popover-arrow-size));--_popover-arrow-background-color:var(--forge-popover-arrow-background-color, var(--_popover-background));--_popover-arrow-top-rotation:var(--forge-popover-arrow-top-rotation, 135deg);--_popover-arrow-right-rotation:var(--forge-popover-arrow-right-rotation, 225deg);--_popover-arrow-bottom-rotation:var(--forge-popover-arrow-bottom-rotation, 315deg);--_popover-arrow-left-rotation:var(--forge-popover-arrow-left-rotation, 45deg);--_popover-arrow-border-width:var(--forge-popover-arrow-border-width, var(--forge-border-thin, 1px));--_popover-animation-enter-duration:var(--forge-popover-animation-enter-duration, var(--forge-animation-duration-short3, 150ms));--_popover-animation-enter-timing:var(--forge-popover-animation-enter-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_popover-animation-exit-duration:var(--forge-popover-animation-exit-duration, var(--forge-animation-duration-short2, 100ms));--_popover-animation-exit-timing:var(--forge-popover-animation-exit-timing, var(--forge-animation-easing-accelerate, cubic-bezier(0.3, 0, 1, 1)));--_popover-zoom-enter-duration:var(--forge-popover-zoom-enter-duration, var(--_popover-animation-enter-duration));--_popover-zoom-enter-timing:var(--forge-popover-zoom-enter-timing, var(--_popover-animation-enter-timing));--_popover-zoom-exit-duration:var(--forge-popover-zoom-exit-duration, var(--_popover-animation-exit-duration));--_popover-zoom-exit-timing:var(--forge-popover-zoom-exit-timing, var(--_popover-animation-exit-timing));--_popover-slide-enter-duration:var(--forge-popover-slide-enter-duration, var(--_popover-animation-enter-duration));--_popover-slide-enter-timing:var(--forge-popover-slide-enter-timing, var(--_popover-animation-enter-timing));--_popover-slide-exit-duration:var(--forge-popover-slide-exit-duration, var(--_popover-animation-exit-duration));--_popover-slide-exit-timing:var(--forge-popover-slide-exit-timing, var(--_popover-animation-exit-timing));--_popover-slide-offset:var(--forge-popover-slide-offset, 24px);--_popover-fade-enter-duration:var(--forge-popover-fade-enter-duration, var(--forge-animation-duration-medium2, 300ms));--_popover-fade-enter-timing:var(--forge-popover-fade-enter-timing, var(--_popover-animation-enter-timing));--_popover-fade-exit-duration:var(--forge-popover-fade-exit-duration, var(--_popover-animation-exit-duration));--_popover-fade-exit-timing:var(--forge-popover-fade-exit-timing, var(--_popover-animation-exit-timing));--_popover-position-inline-start:var(--forge-popover-position-inline-start, auto);--_popover-position-inline-end:var(--forge-popover-position-inline-end, auto);--_popover-position-block-start:var(--forge-popover-position-block-start, auto);--_popover-position-block-end:var(--forge-popover-position-block-end, auto);--_popover-preset-dropdown-max-height:var(--forge-popover-preset-dropdown-max-height, 256px);--_popover-preset-dropdown-overflow:var(--forge-popover-preset-dropdown-overflow, auto visible);--_popover-preset-dropdown-padding-block:var(--forge-popover-preset-dropdown-padding-block, var(--forge-spacing-xsmall, 8px));--_popover-preset-list-padding-block:var(--forge-popover-preset-list-padding-block, var(--forge-spacing-xsmall, 8px))}.forge-popover{--_popover-arrow-translate-x:0;--_popover-arrow-translate-y:0;--_popover-arrow-rotation:0;--_popover-slidein-x:0;--_popover-slidein-y:0;--_popover-zoomin-origin:50% 50% 0;--_popover-arrow-clip-path:polygon(calc(var(--_popover-border-width) * -1) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(100% + var(--_popover-border-width)))}.forge-popover{position:relative;overflow:var(--_popover-overflow);box-sizing:border-box;background:var(--_popover-background);border-radius:var(--_popover-border-radius);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color);width:var(--_popover-width);height:var(--_popover-height);min-width:var(--_popover-min-width);max-width:var(--_popover-max-width);min-height:var(--_popover-min-height);max-height:var(--_popover-max-height)}.forge-popover::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-popover::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popover::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popover::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popover::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,calc(var(--forge-shape-full,9999px) * var(--forge-shape-factor,1)));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-popover::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}:host([open][no-anchor]) forge-overlay{--forge-overlay-position-inline-start:var(--_popover-position-inline-start);--forge-overlay-position-inline-end:var(--_popover-position-inline-end);--forge-overlay-position-block-start:var(--_popover-position-block-start);--forge-overlay-position-block-end:var(--_popover-position-block-end)}:host([arrow]) .forge-popover{--_popover-border-width:var(--_popover-arrow-border-width)}:host([arrow]) .arrow{position:absolute;background-color:var(--_popover-arrow-background-color);height:var(--_popover-arrow-height);width:var(--_popover-arrow-width);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color);transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));clip-path:var(--_popover-arrow-clip-path)}:host([arrow]) forge-overlay[position-placement^=top] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-top-rotation))}:host([arrow]) forge-overlay[position-placement^=right] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-right-rotation))}:host([arrow]) forge-overlay[position-placement^=bottom] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-bottom-rotation))}:host([arrow]) forge-overlay[position-placement^=left] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-left-rotation))}}@layer preset{:host([preset=dropdown]) .forge-popover{--_popover-max-height:var(--_popover-preset-dropdown-max-height);--_popover-overflow:var(--_popover-preset-dropdown-overflow);padding-block:var(--_popover-preset-dropdown-padding-block)}:host([preset=list]) .forge-popover{padding-block:var(--_popover-preset-list-padding-block)}:host([constrain-viewport-width]) .forge-popover{--_popover-max-width:var(--forge-popover-max-width, 100vw)}}@layer animation{:host(:not([animation-type])) .forge-popover,:host([animation-type=zoom]) .forge-popover{animation-duration:var(--_popover-zoom-enter-duration);animation-timing-function:var(--_popover-zoom-enter-timing);animation-name:fadein,zoomin;transform-origin:var(--_popover-zoomin-origin)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left bottom)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right bottom)}:host(:not([animation-type])) forge-overlay[open] .forge-popover.exiting,:host([animation-type=zoom]) forge-overlay[open] .forge-popover.exiting{animation-duration:var(--_popover-zoom-exit-duration);animation-timing-function:var(--_popover-zoom-exit-timing);animation-name:fadeout,zoomout}:host([animation-type=slide]) .forge-popover{animation-duration:var(--_popover-slide-enter-duration);animation-timing-function:var(--_popover-slide-enter-timing);animation-name:fadein,slidein}:host([animation-type=slide]) forge-overlay[open][position-placement^=top] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, var(--_popover-slide-offset))}:host([animation-type=slide]) forge-overlay[open][position-placement^=right] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=bottom] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=left] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, var(--_popover-slide-offset))}:host([animation-type=slide]) forge-overlay[open] .forge-popover.exiting{animation-duration:var(--_popover-slide-exit-duration);animation-timing-function:var(--_popover-slide-exit-timing);animation-name:fadeout,slideout}:host([animation-type=fade]) .forge-popover{animation-duration:var(--_popover-fade-enter-duration);animation-timing-function:var(--_popover-fade-enter-timing);animation-name:fadein}:host([animation-type=fade]) .forge-popover.exiting{animation-duration:var(--_popover-fade-exit-duration);animation-timing-function:var(--_popover-fade-exit-timing);animation-name:fadeout}}forge-overlay[clipped-x] .forge-popover{width:auto;min-width:0;max-width:100vw;overflow-x:auto}forge-overlay[clipped-y] .forge-popover{height:auto;min-height:0;overflow-y:auto}@layer reduced-motion{@media (prefers-reduced-motion:reduce){.forge-popover{animation:none}.forge-popover.exiting{animation:none}}}';
|
|
17
17
|
/**
|
|
18
18
|
* @tag forge-popover
|
|
19
19
|
*
|
|
@@ -19,12 +19,12 @@ export class ProfileCardCore {
|
|
|
19
19
|
this._adapter.setSignOutButtonListener(this._signOutListener);
|
|
20
20
|
}
|
|
21
21
|
focus(options) {
|
|
22
|
-
if (this.
|
|
23
|
-
this._adapter.requestSignOutButtonFocus({ ...options, focusVisible: true });
|
|
24
|
-
}
|
|
25
|
-
else if (this._showProfileButton) {
|
|
22
|
+
if (this._showProfileButton) {
|
|
26
23
|
this._adapter.requestProfileButtonFocus({ ...options, focusVisible: true });
|
|
27
24
|
}
|
|
25
|
+
else if (this._showSignOutButton) {
|
|
26
|
+
this._adapter.requestSignOutButtonFocus({ ...options, focusVisible: true });
|
|
27
|
+
}
|
|
28
28
|
}
|
|
29
29
|
_setActionVisibility() {
|
|
30
30
|
const showActionToolbar = this._showSignOutButton || this._showProfileButton;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { IRadioComponent } from '../radio';
|
|
7
|
+
import { IRadioGroupComponent } from '../radio-group';
|
|
7
8
|
/**
|
|
8
9
|
* A class for coordinating the states of radio components within a radio group.
|
|
9
10
|
*/
|
|
@@ -47,7 +48,7 @@ export declare class RadioGroupManager {
|
|
|
47
48
|
* @param el A radio component within the group.
|
|
48
49
|
* @returns The radio group element containing the given radio component or null if there is none.
|
|
49
50
|
*/
|
|
50
|
-
static getRadioGroupElement(el: IRadioComponent):
|
|
51
|
+
static getRadioGroupElement(el: IRadioComponent): IRadioGroupComponent | null;
|
|
51
52
|
/**
|
|
52
53
|
* Sets the selected radio in a radio group.
|
|
53
54
|
*
|
|
@@ -81,7 +81,8 @@ export class BaseSelectAdapter extends BaseAdapter {
|
|
|
81
81
|
: o.trailingIconType,
|
|
82
82
|
trailingIconComponentProps: o.trailingIconComponentProps,
|
|
83
83
|
leadingBuilder: o.leadingBuilder,
|
|
84
|
-
trailingBuilder: o.trailingBuilder
|
|
84
|
+
trailingBuilder: o.trailingBuilder,
|
|
85
|
+
tooltip: o.tooltip
|
|
85
86
|
};
|
|
86
87
|
});
|
|
87
88
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { IIconComponent } from '../../icon/icon';
|
|
7
|
-
import { IBaseListDropdownOption, ListDropdownIconType } from '../../list-dropdown/list-dropdown-constants';
|
|
7
|
+
import { IBaseListDropdownOption, ListDropdownIconType, ListDropdownTooltipConfig } from '../../list-dropdown/list-dropdown-constants';
|
|
8
8
|
import { IOptionAdapter } from './option-adapter';
|
|
9
9
|
export interface IOptionCore extends Required<IBaseListDropdownOption> {
|
|
10
10
|
}
|
|
@@ -26,6 +26,7 @@ export declare class OptionCore implements IOptionCore {
|
|
|
26
26
|
private _trailingIconComponentProps;
|
|
27
27
|
private _leadingBuilder;
|
|
28
28
|
private _trailingBuilder;
|
|
29
|
+
private _tooltip;
|
|
29
30
|
constructor(_adapter: IOptionAdapter);
|
|
30
31
|
/** Gets/sets the value of this option. */
|
|
31
32
|
get value(): any;
|
|
@@ -75,4 +76,6 @@ export declare class OptionCore implements IOptionCore {
|
|
|
75
76
|
/** Gets/sets the trailing builder of this option. */
|
|
76
77
|
get trailingBuilder(): () => HTMLElement;
|
|
77
78
|
set trailingBuilder(value: () => HTMLElement);
|
|
79
|
+
get tooltip(): ListDropdownTooltipConfig;
|
|
80
|
+
set tooltip(value: ListDropdownTooltipConfig);
|
|
78
81
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { IIconComponent } from '../../icon';
|
|
7
7
|
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
|
|
8
|
-
import { IBaseListDropdownOption, ListDropdownIconType } from '../../list-dropdown/list-dropdown-constants';
|
|
8
|
+
import { IBaseListDropdownOption, ListDropdownIconType, ListDropdownTooltipConfig } from '../../list-dropdown/list-dropdown-constants';
|
|
9
9
|
export interface IOptionComponent extends IBaseComponent, Required<IBaseListDropdownOption> {
|
|
10
10
|
}
|
|
11
11
|
declare global {
|
|
@@ -101,4 +101,8 @@ export declare class OptionComponent extends BaseComponent implements IOptionCom
|
|
|
101
101
|
* Gets/sets the trailing builder of this option.
|
|
102
102
|
*/
|
|
103
103
|
trailingBuilder: () => HTMLElement;
|
|
104
|
+
/**
|
|
105
|
+
* Gets/sets the tooltip configuration for this option.
|
|
106
|
+
*/
|
|
107
|
+
tooltip: ListDropdownTooltipConfig;
|
|
104
108
|
}
|
|
@@ -26,7 +26,8 @@ let OptionComponent = class OptionComponent extends BaseComponent {
|
|
|
26
26
|
OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE,
|
|
27
27
|
OPTION_CONSTANTS.attributes.TRAILING_ICON,
|
|
28
28
|
OPTION_CONSTANTS.attributes.TRAILING_ICON_CLASS,
|
|
29
|
-
OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE
|
|
29
|
+
OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE,
|
|
30
|
+
OPTION_CONSTANTS.attributes.TOOLTIP
|
|
30
31
|
];
|
|
31
32
|
}
|
|
32
33
|
constructor() {
|
|
@@ -71,6 +72,9 @@ let OptionComponent = class OptionComponent extends BaseComponent {
|
|
|
71
72
|
case OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE:
|
|
72
73
|
this.trailingIconType = newValue;
|
|
73
74
|
break;
|
|
75
|
+
case OPTION_CONSTANTS.attributes.TOOLTIP:
|
|
76
|
+
this.tooltip = newValue ? { text: newValue } : undefined;
|
|
77
|
+
break;
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
};
|
|
@@ -122,6 +126,9 @@ __decorate([
|
|
|
122
126
|
__decorate([
|
|
123
127
|
coreProperty()
|
|
124
128
|
], OptionComponent.prototype, "trailingBuilder", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
coreProperty()
|
|
131
|
+
], OptionComponent.prototype, "tooltip", void 0);
|
|
125
132
|
OptionComponent = __decorate([
|
|
126
133
|
customElement({
|
|
127
134
|
name: OPTION_CONSTANTS.elementName
|
|
@@ -119,9 +119,7 @@ export class SelectCore extends BaseSelectCore {
|
|
|
119
119
|
// Update the state of the component based on the existence of a selected value
|
|
120
120
|
const text = this._getSelectedText();
|
|
121
121
|
this._adapter.setSelectedText(text);
|
|
122
|
-
|
|
123
|
-
this._tryFloatLabel();
|
|
124
|
-
}
|
|
122
|
+
this._tryFloatLabel();
|
|
125
123
|
}
|
|
126
124
|
/** Gets/sets the label text. */
|
|
127
125
|
get label() {
|
|
@@ -125,6 +125,7 @@ declare const SelectComponent_base: import("../../constants").AbstractConstructo
|
|
|
125
125
|
* @csspart support-text - The support text element.
|
|
126
126
|
* @csspart support-text - The element containing the support text slot.
|
|
127
127
|
* @csspart support-text-end - The element containing the support text end slot.
|
|
128
|
+
* @csspart outline - The element containing the forge-focus-indicator element.
|
|
128
129
|
* @csspart focus-indicator - The focus indicator element.
|
|
129
130
|
*
|
|
130
131
|
* @slot value - The selected text to display
|
|
@@ -122,6 +122,7 @@ const styles = ':host{display:block;outline:0}:host([hidden]){display:none}forge
|
|
|
122
122
|
* @csspart support-text - The support text element.
|
|
123
123
|
* @csspart support-text - The element containing the support text slot.
|
|
124
124
|
* @csspart support-text-end - The element containing the support text end slot.
|
|
125
|
+
* @csspart outline - The element containing the forge-focus-indicator element.
|
|
125
126
|
* @csspart focus-indicator - The focus indicator element.
|
|
126
127
|
*
|
|
127
128
|
* @slot value - The selected text to display
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { ButtonVariant } from '../button';
|
|
6
|
+
import { ButtonTheme, ButtonVariant } from '../button';
|
|
7
7
|
export declare const SPLIT_BUTTON_CONSTANTS: {
|
|
8
8
|
elementName: "forge-split-button";
|
|
9
9
|
attributes: {
|
|
@@ -15,7 +15,7 @@ export declare const SPLIT_BUTTON_CONSTANTS: {
|
|
|
15
15
|
};
|
|
16
16
|
defaults: {
|
|
17
17
|
DEFAULT_VARIANT: SplitButtonVariant;
|
|
18
|
-
DEFAULT_THEME:
|
|
18
|
+
DEFAULT_THEME: ButtonTheme;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
export type SplitButtonVariant = Extract<ButtonVariant, 'text' | 'outlined' | 'tonal' | 'filled' | 'raised'>;
|