@tylertech/forge 3.6.3 → 3.7.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 +69 -28
- package/dist/expansion-panel/forge-expansion-panel.css +2 -0
- package/dist/lib.js +8 -8
- package/dist/lib.js.map +3 -3
- package/dist/list/forge-list.css +5 -1
- package/dist/vscode.css-custom-data.json +16 -0
- package/dist/vscode.html-custom-data.json +4 -4
- package/esm/core/utils/utils.d.ts +6 -0
- package/esm/core/utils/utils.js +18 -0
- package/esm/expansion-panel/expansion-panel.js +1 -1
- 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/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/popover/popover-adapter.js +2 -2
- 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-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/switch/switch.d.ts +1 -1
- 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/package.json +1 -1
- package/sass/expansion-panel/_core.scss +3 -0
- package/sass/field/_core.scss +1 -1
- package/sass/field/field.scss +1 -1
- package/sass/list/list-item/_core.scss +9 -1
- package/sass/list/list-item/list-item.scss +4 -0
|
@@ -14,7 +14,7 @@ import { WithElementInternals } from '../../core/mixins/internals/with-element-i
|
|
|
14
14
|
import { WithDefaultAria } from '../../core/mixins/internals/with-default-aria';
|
|
15
15
|
import { BaseComponent } from '../../core/base/base-component';
|
|
16
16
|
const template = '<template><div class=\"forge-list-item\" part=\"root\"><slot name=\"start\"><slot name=\"leading\"></slot></slot><div class=\"text-container\" part=\"text-container\"><slot></slot><slot name=\"secondary-text\"></slot><slot name=\"tertiary-text\"></slot></div><slot name=\"end\"><slot name=\"trailing\"></slot></slot></div></template>';
|
|
17
|
-
const styles = ':host{--_list-item-indent:var(--forge-list-item-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-dense-indent:var(--forge-list-item-dense-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-disabled-cursor:var(--forge-list-item-disabled-cursor, not-allowed)}:host{display:block;outline:0}:host([hidden]){display:none}.forge-list-item{--_list-item-background:var(--forge-list-item-background, transparent);--_list-item-shape:var(--forge-list-item-shape, 0);--_list-item-padding:var(--forge-list-item-padding, 0 var(--forge-spacing-medium, 16px));--_list-item-margin:var(--forge-list-item-margin, 0);--_list-item-height:var(--forge-list-item-height, 48px);--_list-item-dense-height:var(--forge-list-item-dense-height, 32px);--_list-item-cursor:var(--forge-list-item-cursor, pointer);--_list-item-gap:var(--forge-list-item-gap, var(--forge-spacing-large, 24px));--_list-item-text-color:var(--forge-list-item-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-text-font-size:var(--forge-list-item-text-font-size, var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1))));--_list-item-text-font-weight:var(--forge-list-item-text-font-weight, var(--forge-typography-body2-font-weight, 400));--_list-item-text-line-height:var(--forge-list-item-text-line-height, 1.5rem);--_list-item-selected-color:var(--forge-list-item-selected-color, var(--forge-theme-primary, #3f51b5));--_list-item-selected-background:var(--forge-list-item-selected-background, var(--_list-item-selected-color));--_list-item-selected-opacity:var(--forge-list-item-selected-opacity, 0.08);--_list-item-selected-start-color:var(--forge-list-item-selected-start-color, var(--_list-item-selected-color));--_list-item-selected-end-color:var(--forge-list-item-selected-end-color, var(--_list-item-selected-color));--_list-item-selected-text-color:var(--forge-list-item-selected-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-disabled-opacity:var(--forge-list-item-disabled-opacity, 0.38);--_list-item-one-line-height:var(--forge-list-item-one-line-height, var(--_list-item-height));--_list-item-two-line-height:var(--forge-list-item-two-line-height, var(--forge-list-item-height, 72px));--_list-item-three-line-height:var(--forge-list-item-three-line-height, var(--forge-list-item-height, 88px));--_list-item-dense-one-line-height:var(--forge-list-item-dense-one-line-height, var(--_list-item-dense-height));--_list-item-dense-two-line-height:var(--forge-list-item-dense-two-line-height, var(--forge-list-item-dense-height, 56px));--_list-item-dense-three-line-height:var(--forge-list-item-dense-three-line-height, var(--forge-list-item-dense-height, 72px));--_list-item-dense-font-size:var(--forge-list-item-dense-font-size, 0.875rem);--_list-item-dense-gap:var(--forge-list-item-dense-gap, var(--forge-spacing-xsmall, 8px));--_list-item-start-selected-color:var(--forge-list-item-start-selected-color, var(--_list-item-selected-color));--_list-item-end-selected-color:var(--forge-list-item-end-selected-color, var(--_list-item-selected-color));--_list-item-wrap-padding:var(--forge-list-item-wrap-padding, var(--forge-spacing-xsmall, 8px) var(--forge-spacing-medium, 16px))}.forge-list-item{position:relative;display:flex;gap:var(--_list-item-gap);align-items:center;box-sizing:border-box;outline:0;text-decoration:none;border-radius:var(--_list-item-shape);-webkit-tap-highlight-color:transparent;background-color:var(--_list-item-background);height:var(--_list-item-height);min-height:var(--_list-item-height);padding:var(--_list-item-padding);margin:var(--_list-item-margin)}.forge-list-item.interactive{cursor:var(--_list-item-cursor)}.forge-list-item.disabled{cursor:var(--_list-item-disabled-cursor);opacity:var(--_list-item-disabled-opacity)}.forge-list-item.disabled ::slotted(button){cursor:var(--_list-item-disabled-cursor)}.anchor{position:absolute;inset:0}:host([two-line]) .forge-list-item{height:var(--_list-item-two-line-height);min-height:var(--_list-item-two-line-height)}:host([three-line]) .forge-list-item{height:var(--_list-item-three-line-height);min-height:var(--_list-item-three-line-height)}:host([dense]) .forge-list-item{--_list-item-gap:var(--_list-item-dense-gap);height:var(--_list-item-dense-one-line-height);min-height:var(--_list-item-dense-one-line-height)}:host([dense]) .text-container{font-size:var(--_list-item-dense-font-size)}:host([dense][indented]){margin-inline-start:var(--_list-item-dense-indent)}:host([dense][two-line]) .forge-list-item{height:var(--_list-item-dense-two-line-height);min-height:var(--_list-item-dense-two-line-height)}:host([dense][three-line]) .forge-list-item{height:var(--_list-item-dense-three-line-height);min-height:var(--_list-item-dense-three-line-height)}:host([selected]) .forge-list-item{color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item::before{content:\"\";position:absolute;inset:0;border-radius:inherit;opacity:var(--_list-item-selected-opacity);background-color:var(--_list-item-selected-background);pointer-events:none}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-selected-color);isolation:isolate}:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]){color:var(--_list-item-start-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-end-selected-color)}:host([selected]) .text-container{color:var(--_list-item-selected-color)}:host([selected]) forge-state-layer{--forge-state-layer-color:var(--_list-item-selected-color)}:host([indented]){margin-inline-start:var(--_list-item-indent)}.text-container{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));letter-spacing:var(--forge-typography-body2-letter-spacing, .015625em);text-transform:var(--forge-typography-body2-text-transform,inherit);text-decoration:var(--forge-typography-body2-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;isolation:isolate;font-size:var(--_list-item-text-font-size);font-weight:var(--_list-item-text-font-weight);line-height:var(--_list-item-text-line-height);flex:1;contain:layout}slot[name=secondary-text]::slotted(*),slot[name=tertiary-text]::slotted(*){-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);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_list-item-text-color);display:block}:host([selected]) slot[name=secondary-text]::slotted(*),:host([selected]) slot[name=tertiary-text]::slotted(*){color:var(--_list-item-selected-text-color)}::slotted(:is(button,[role=button][tabindex],[forge-list-item-button])){appearance:none;cursor:var(--_list-item-cursor);border:none;padding-block:0;padding-inline:0;margin:0;box-sizing:border-box;background:0 0;color:inherit;outline:0;font:inherit;user-select:auto;text-align:inherit;letter-spacing:inherit;word-spacing:inherit;display:
|
|
17
|
+
const styles = ':host{--_list-item-indent:var(--forge-list-item-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-dense-indent:var(--forge-list-item-dense-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-disabled-cursor:var(--forge-list-item-disabled-cursor, not-allowed)}:host{display:block;outline:0}:host([hidden]){display:none}.forge-list-item{--_list-item-background:var(--forge-list-item-background, transparent);--_list-item-shape:var(--forge-list-item-shape, 0);--_list-item-padding:var(--forge-list-item-padding, 0 var(--forge-spacing-medium, 16px));--_list-item-margin:var(--forge-list-item-margin, 0);--_list-item-height:var(--forge-list-item-height, 48px);--_list-item-dense-height:var(--forge-list-item-dense-height, 32px);--_list-item-cursor:var(--forge-list-item-cursor, pointer);--_list-item-gap:var(--forge-list-item-gap, var(--forge-spacing-large, 24px));--_list-item-text-color:var(--forge-list-item-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-text-font-size:var(--forge-list-item-text-font-size, var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1))));--_list-item-text-font-weight:var(--forge-list-item-text-font-weight, var(--forge-typography-body2-font-weight, 400));--_list-item-text-line-height:var(--forge-list-item-text-line-height, 1.5rem);--_list-item-selected-color:var(--forge-list-item-selected-color, var(--forge-theme-primary, #3f51b5));--_list-item-selected-background:var(--forge-list-item-selected-background, var(--_list-item-selected-color));--_list-item-selected-opacity:var(--forge-list-item-selected-opacity, 0.08);--_list-item-selected-start-color:var(--forge-list-item-selected-start-color, var(--_list-item-selected-color));--_list-item-selected-end-color:var(--forge-list-item-selected-end-color, var(--_list-item-selected-color));--_list-item-selected-text-color:var(--forge-list-item-selected-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-disabled-opacity:var(--forge-list-item-disabled-opacity, 0.38);--_list-item-one-line-height:var(--forge-list-item-one-line-height, var(--_list-item-height));--_list-item-two-line-height:var(--forge-list-item-two-line-height, var(--forge-list-item-height, 72px));--_list-item-three-line-height:var(--forge-list-item-three-line-height, var(--forge-list-item-height, 88px));--_list-item-dense-one-line-height:var(--forge-list-item-dense-one-line-height, var(--_list-item-dense-height));--_list-item-dense-two-line-height:var(--forge-list-item-dense-two-line-height, var(--forge-list-item-dense-height, 56px));--_list-item-dense-three-line-height:var(--forge-list-item-dense-three-line-height, var(--forge-list-item-dense-height, 72px));--_list-item-dense-font-size:var(--forge-list-item-dense-font-size, 0.875rem);--_list-item-dense-gap:var(--forge-list-item-dense-gap, var(--forge-spacing-xsmall, 8px));--_list-item-start-selected-color:var(--forge-list-item-start-selected-color, var(--_list-item-selected-color));--_list-item-end-selected-color:var(--forge-list-item-end-selected-color, var(--_list-item-selected-color));--_list-item-wrap-padding:var(--forge-list-item-wrap-padding, var(--forge-spacing-xsmall, 8px) var(--forge-spacing-medium, 16px))}.forge-list-item{position:relative;display:flex;gap:var(--_list-item-gap);align-items:center;box-sizing:border-box;outline:0;text-decoration:none;border-radius:var(--_list-item-shape);-webkit-tap-highlight-color:transparent;background-color:var(--_list-item-background);height:var(--_list-item-height);min-height:var(--_list-item-height);padding:var(--_list-item-padding);margin:var(--_list-item-margin)}.forge-list-item.interactive{cursor:var(--_list-item-cursor)}.forge-list-item.disabled{cursor:var(--_list-item-disabled-cursor);opacity:var(--_list-item-disabled-opacity)}.forge-list-item.disabled ::slotted(button){cursor:var(--_list-item-disabled-cursor)}.anchor{position:absolute;inset:0}:host([two-line]) .forge-list-item{height:var(--_list-item-two-line-height);min-height:var(--_list-item-two-line-height)}:host([three-line]) .forge-list-item{height:var(--_list-item-three-line-height);min-height:var(--_list-item-three-line-height)}:host([dense]) .forge-list-item{--_list-item-gap:var(--_list-item-dense-gap);height:var(--_list-item-dense-one-line-height);min-height:var(--_list-item-dense-one-line-height)}:host([dense]) .text-container{font-size:var(--_list-item-dense-font-size)}:host([dense][indented]){margin-inline-start:var(--_list-item-dense-indent)}:host([dense][two-line]) .forge-list-item{height:var(--_list-item-dense-two-line-height);min-height:var(--_list-item-dense-two-line-height)}:host([dense][three-line]) .forge-list-item{height:var(--_list-item-dense-three-line-height);min-height:var(--_list-item-dense-three-line-height)}:host([selected]) .forge-list-item{color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item::before{content:\"\";position:absolute;inset:0;border-radius:inherit;opacity:var(--_list-item-selected-opacity);background-color:var(--_list-item-selected-background);pointer-events:none}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-selected-color);isolation:isolate}:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]){color:var(--_list-item-start-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-end-selected-color)}:host([selected]) .text-container{color:var(--_list-item-selected-color)}:host([selected]) forge-state-layer{--forge-state-layer-color:var(--_list-item-selected-color)}:host([indented]){margin-inline-start:var(--_list-item-indent)}.text-container{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));letter-spacing:var(--forge-typography-body2-letter-spacing, .015625em);text-transform:var(--forge-typography-body2-text-transform,inherit);text-decoration:var(--forge-typography-body2-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;isolation:isolate;font-size:var(--_list-item-text-font-size);font-weight:var(--_list-item-text-font-weight);line-height:var(--_list-item-text-line-height);flex:1;contain:layout}slot[name=secondary-text]::slotted(*),slot[name=tertiary-text]::slotted(*){-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);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_list-item-text-color);display:block}:host([selected]) slot[name=secondary-text]::slotted(*),:host([selected]) slot[name=tertiary-text]::slotted(*){color:var(--_list-item-selected-text-color)}::slotted(:is(button,[role=button][tabindex],[forge-list-item-button])){appearance:none;cursor:var(--_list-item-cursor);border:none;padding-block:0;padding-inline:0;margin:0;box-sizing:border-box;width:100%;background:0 0;color:inherit;outline:0;font:inherit;user-select:auto;text-align:inherit;letter-spacing:inherit;word-spacing:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}::slotted(a){outline:0;color:inherit!important;text-decoration:none!important}::slotted([slot=end]),::slotted([slot=leading]),::slotted([slot=start]),::slotted([slot=trailing]){color:var(--_list-item-text-color);display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;fill:currentColor}:host(:not([noninteractive])) ::slotted(:is(forge-checkbox,forge-radio,forge-switch):is([slot=start],[slot=end],[slot=leading],[slot=trailing]):not([forge-ignore])){--forge-focus-indicator-display:none;--forge-state-layer-display:none}:host([selected]) ::slotted([slot=leading]),:host([selected]) ::slotted([slot=start]){color:var(--_list-item-start-selected-color)}:host([selected]) ::slotted([slot=end]),:host([selected]) ::slotted([slot=trailing]){color:var(--_list-item-end-selected-color)}:host([wrap]) .forge-list-item{--_list-item-padding:var(--_list-item-wrap-padding);height:auto}:host([wrap]) .text-container{white-space:normal;overflow:visible;text-overflow:clip;line-height:normal}:host([wrap]) ::slotted(:is(button,[role=button][tabindex],[forge-list-item-button])){white-space:normal}:host([wrap]) slot[name=secondary-text]::slotted(*),:host([wrap]) slot[name=tertiary-text]::slotted(*){white-space:normal;overflow:visible;text-overflow:clip;line-height:normal}forge-focus-indicator{z-index:1;--forge-focus-indicator-shape:calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1))}forge-state-layer{border-radius:inherit}';
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-list-item
|
|
20
20
|
*
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import type { IIconComponent } from '../icon';
|
|
7
7
|
import type { IOverlayOffset } from '../overlay/overlay-constants';
|
|
8
8
|
import { PositionPlacement } from '../core/utils/position-utils';
|
|
9
|
+
import { TooltipPlacement, TooltipType } from '../tooltip';
|
|
9
10
|
export declare const LIST_DROPDOWN_CONSTANTS: {
|
|
10
11
|
attributes: {
|
|
11
12
|
POPUP_CLASSES: string;
|
|
@@ -45,6 +46,7 @@ export interface IBaseListDropdownOption<T = any> {
|
|
|
45
46
|
trailingIconComponentProps?: Partial<IIconComponent>;
|
|
46
47
|
leadingBuilder?: () => HTMLElement;
|
|
47
48
|
trailingBuilder?: () => HTMLElement;
|
|
49
|
+
tooltip?: ListDropdownTooltipConfig;
|
|
48
50
|
}
|
|
49
51
|
export interface IListDropdownOption<T = any> extends IBaseListDropdownOption<T> {
|
|
50
52
|
options?: Array<IListDropdownOption | IListDropdownOptionGroup>;
|
|
@@ -112,3 +114,12 @@ export declare enum ListDropdownAsyncStyle {
|
|
|
112
114
|
Spinner = "spinner",
|
|
113
115
|
Skeleton = "skeleton"
|
|
114
116
|
}
|
|
117
|
+
export interface ListDropdownTooltipConfig {
|
|
118
|
+
text: string;
|
|
119
|
+
placement?: TooltipPlacement;
|
|
120
|
+
type?: TooltipType;
|
|
121
|
+
delay?: number;
|
|
122
|
+
offset?: number;
|
|
123
|
+
anchor?: string;
|
|
124
|
+
anchorElement?: HTMLElement;
|
|
125
|
+
}
|
|
@@ -196,6 +196,24 @@ export function createListItems(config, listElement, options, startIndex = 0, re
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
+
// Check for a tooltip configuration
|
|
200
|
+
if (option.tooltip) {
|
|
201
|
+
const { text, type = 'presentation', ...restConfig } = option.tooltip;
|
|
202
|
+
const tooltipElement = document.createElement('forge-tooltip');
|
|
203
|
+
tooltipElement.id = `list-dropdown-option-${config.id}-${optionIdIndex++}-tooltip`;
|
|
204
|
+
tooltipElement.textContent = option.tooltip.text;
|
|
205
|
+
// We always anchor to the list item element unless an anchor element is provided
|
|
206
|
+
if (!option.tooltip.anchor && !option.tooltip.anchorElement) {
|
|
207
|
+
tooltipElement.anchorElement = listItemElement;
|
|
208
|
+
}
|
|
209
|
+
// We need to attach the tooltip ARIA attributes to the button element, not the anchor element
|
|
210
|
+
if (type === 'label' || type === 'description') {
|
|
211
|
+
const a11yAttr = type === 'label' ? 'aria-labelledby' : 'aria-describedby';
|
|
212
|
+
buttonElement.setAttribute(a11yAttr, tooltipElement.id);
|
|
213
|
+
}
|
|
214
|
+
Object.assign(tooltipElement, restConfig);
|
|
215
|
+
listItemElement.appendChild(tooltipElement);
|
|
216
|
+
}
|
|
199
217
|
// Check for secondary (subtitle) text
|
|
200
218
|
if (option.secondaryLabel) {
|
|
201
219
|
const secondaryLabelElement = document.createElement('span');
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
import { COMPONENT_NAME_PREFIX } from '../constants';
|
|
7
7
|
const elementName = `${COMPONENT_NAME_PREFIX}menu`;
|
|
8
8
|
const classes = {
|
|
9
|
-
POPUP: 'forge-menu__popup'
|
|
10
|
-
MENU: 'mdc-menu'
|
|
9
|
+
POPUP: 'forge-menu__popup'
|
|
11
10
|
};
|
|
12
11
|
const selectors = {
|
|
13
12
|
TOGGLE: `.${elementName}__toggle,[${elementName}-toggle],forge-button,forge-icon-button,forge-fab,button,[type=button],[role=button],a,forge-list-item,[tabindex]:not([tabindex^="-"])`,
|
package/esm/menu/menu-core.js
CHANGED
|
@@ -240,7 +240,7 @@ export class MenuCore extends CascadingListDropdownAwareCore {
|
|
|
240
240
|
popupPlacement: this._placement,
|
|
241
241
|
popupFallbackPlacements: this._fallbackPlacements,
|
|
242
242
|
activeStartIndex: fromKeyboard ? 0 : undefined,
|
|
243
|
-
popupClasses: [MENU_CONSTANTS.classes.POPUP,
|
|
243
|
+
popupClasses: [MENU_CONSTANTS.classes.POPUP, ...this._popupClasses],
|
|
244
244
|
syncWidth: this._syncPopupWidth,
|
|
245
245
|
activeChangeCallback: this._activeChangeListener,
|
|
246
246
|
selectCallback: this._selectListener,
|
package/esm/menu/menu.js
CHANGED
|
@@ -13,6 +13,7 @@ import { PopoverComponent } from '../popover';
|
|
|
13
13
|
import { MenuAdapter } from './menu-adapter';
|
|
14
14
|
import { MENU_CONSTANTS } from './menu-constants';
|
|
15
15
|
import { MenuCore } from './menu-core';
|
|
16
|
+
import { TooltipComponent } from '../tooltip';
|
|
16
17
|
const template = '<template><slot></slot></template>';
|
|
17
18
|
const styles = ':host{display:inline-flex}:host([hidden]){display:none}';
|
|
18
19
|
/**
|
|
@@ -140,7 +141,7 @@ __decorate([
|
|
|
140
141
|
MenuComponent = __decorate([
|
|
141
142
|
customElement({
|
|
142
143
|
name: MENU_CONSTANTS.elementName,
|
|
143
|
-
dependencies: [PopoverComponent, ListComponent]
|
|
144
|
+
dependencies: [PopoverComponent, ListComponent, TooltipComponent]
|
|
144
145
|
})
|
|
145
146
|
], MenuComponent);
|
|
146
147
|
export { MenuComponent };
|
|
@@ -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();
|
|
@@ -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
|
|
@@ -13,7 +13,7 @@ import { SplitViewPanelCore } from './split-view-panel-core';
|
|
|
13
13
|
import { SplitViewPanelAdapter } from './split-view-panel-adapter';
|
|
14
14
|
import { IconComponent, IconRegistry } from '../../icon';
|
|
15
15
|
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>';
|
|
16
|
-
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:
|
|
16
|
+
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:u58y6y0;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u58y6y0{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:u58y6y5;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u58y6y5{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:u58y6yu;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 u58y6yu{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:u58y6z1;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 u58y6z1{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:u58y6zf;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u58y6zf{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:u58y706;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u58y706{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:u58y713;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 u58y713{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:u58y722;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 u58y722{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
17
|
import { StateLayerComponent } from '../../state-layer';
|
|
18
18
|
import { FocusIndicatorComponent } from '../../focus-indicator';
|
|
19
19
|
/**
|
package/esm/switch/switch.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface ISwitchComponent extends IWithFormAssociation, IWithFocusable,
|
|
|
16
16
|
checked: boolean;
|
|
17
17
|
/** @deprecated use `checked` instead */
|
|
18
18
|
on: boolean;
|
|
19
|
-
/** @deprecated use `
|
|
19
|
+
/** @deprecated use `checked` instead */
|
|
20
20
|
selected: boolean;
|
|
21
21
|
defaultChecked: boolean;
|
|
22
22
|
/** @deprecated use `defaultChecked` instead */
|
|
@@ -49,6 +49,9 @@ export class TabBarCore {
|
|
|
49
49
|
async _onTabsChanged() {
|
|
50
50
|
this._tabs = this._adapter.getTabs();
|
|
51
51
|
this._syncTabState();
|
|
52
|
+
if (this._scrollButtons) {
|
|
53
|
+
this._detectScrollableStatus();
|
|
54
|
+
}
|
|
52
55
|
this._tryScrollActiveTabIntoView();
|
|
53
56
|
}
|
|
54
57
|
_onTabSelected(evt) {
|
|
@@ -47,6 +47,7 @@ declare global {
|
|
|
47
47
|
* @csspart support-text - The support text element.
|
|
48
48
|
* @csspart support-text - The element containing the support text slot.
|
|
49
49
|
* @csspart support-text-end - The element containing the support text end slot.
|
|
50
|
+
* @csspart outline - The element containing the forge-focus-indicator element.
|
|
50
51
|
* @csspart focus-indicator - The focus indicator element.
|
|
51
52
|
*
|
|
52
53
|
* @slot - The default/unnamed slot for the field's input.
|
|
@@ -46,6 +46,7 @@ const styles = ':host{display:block}:host([hidden]){display:none}forge-field{dis
|
|
|
46
46
|
* @csspart support-text - The support text element.
|
|
47
47
|
* @csspart support-text - The element containing the support text slot.
|
|
48
48
|
* @csspart support-text-end - The element containing the support text end slot.
|
|
49
|
+
* @csspart outline - The element containing the forge-focus-indicator element.
|
|
49
50
|
* @csspart focus-indicator - The focus indicator element.
|
|
50
51
|
*
|
|
51
52
|
* @slot - The default/unnamed slot for the field's input.
|
|
@@ -85,7 +85,6 @@ export class TimePickerAdapter extends BaseAdapter {
|
|
|
85
85
|
iconButtonElement.density = 'medium';
|
|
86
86
|
iconButtonElement.type = 'button';
|
|
87
87
|
iconButtonElement.tabIndex = -1;
|
|
88
|
-
iconButtonElement.style.marginRight = '4px'; // Override default trailing slot margin in text-field
|
|
89
88
|
iconButtonElement.setAttribute('aria-label', 'Toggle time dropdown');
|
|
90
89
|
const iconElement = document.createElement(ICON_CONSTANTS.elementName);
|
|
91
90
|
iconElement.name = 'clock_outline';
|
package/package.json
CHANGED
package/sass/field/_core.scss
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
@mixin base {
|
|
26
26
|
/* Internal custom properties */
|
|
27
|
-
@include override(disableable-cursor,
|
|
27
|
+
@include override(disableable-cursor, auto, value);
|
|
28
28
|
@include override(disableable-opacity, 1, value);
|
|
29
29
|
@include override(inner-border-block-size, 100%, value);
|
|
30
30
|
@include override(inner-border-color, #{token(outline-color, custom)}, value);
|
package/sass/field/field.scss
CHANGED
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
padding-inline: 0;
|
|
44
44
|
margin: 0;
|
|
45
45
|
box-sizing: border-box;
|
|
46
|
+
width: 100%;
|
|
46
47
|
|
|
47
48
|
background: transparent;
|
|
48
49
|
color: inherit;
|
|
@@ -53,8 +54,15 @@
|
|
|
53
54
|
text-align: inherit;
|
|
54
55
|
letter-spacing: inherit;
|
|
55
56
|
word-spacing: inherit;
|
|
57
|
+
white-space: nowrap;
|
|
58
|
+
text-overflow: ellipsis;
|
|
59
|
+
overflow: hidden;
|
|
56
60
|
|
|
57
|
-
display:
|
|
61
|
+
display: block;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@mixin button-wrap {
|
|
65
|
+
white-space: normal;
|
|
58
66
|
}
|
|
59
67
|
|
|
60
68
|
@mixin anchor {
|
|
@@ -216,6 +216,10 @@ slot[name='tertiary-text'] {
|
|
|
216
216
|
@include text-container-wrap;
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
+
::slotted(:is(button, [role='button'][tabindex], [forge-list-item-button])) {
|
|
220
|
+
@include button-wrap;
|
|
221
|
+
}
|
|
222
|
+
|
|
219
223
|
slot[name='secondary-text'],
|
|
220
224
|
slot[name='tertiary-text'] {
|
|
221
225
|
&::slotted(*) {
|