@tylertech/forge 3.11.0 → 3.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/custom-elements.json +315 -145
  2. package/dist/app-bar/forge-app-bar.css +2 -0
  3. package/dist/button/forge-button.css +2 -0
  4. package/dist/checkbox/forge-checkbox.css +2 -0
  5. package/dist/chips/forge-chips.css +2 -0
  6. package/dist/floating-action-button/forge-floating-action-button.css +2 -0
  7. package/dist/icon-button/forge-icon-button.css +2 -0
  8. package/dist/lib.js +17 -17
  9. package/dist/lib.js.map +3 -3
  10. package/dist/list/forge-list.css +2 -0
  11. package/dist/radio/forge-radio.css +2 -0
  12. package/dist/skip-link/forge-skip-link.css +2 -0
  13. package/dist/state-layer/forge-state-layer.css +2 -0
  14. package/dist/switch/forge-switch.css +2 -0
  15. package/dist/vscode.html-custom-data.json +74 -59
  16. package/esm/accordion/accordion.d.ts +1 -1
  17. package/esm/accordion/accordion.js +1 -1
  18. package/esm/app-bar/app-bar/app-bar.d.ts +1 -1
  19. package/esm/app-bar/app-bar/app-bar.js +1 -1
  20. package/esm/autocomplete/autocomplete-core.js +16 -3
  21. package/esm/autocomplete/autocomplete.d.ts +1 -1
  22. package/esm/autocomplete/autocomplete.js +1 -1
  23. package/esm/avatar/avatar.d.ts +1 -1
  24. package/esm/avatar/avatar.js +1 -1
  25. package/esm/backdrop/backdrop.d.ts +1 -1
  26. package/esm/backdrop/backdrop.js +1 -1
  27. package/esm/badge/badge.d.ts +1 -1
  28. package/esm/badge/badge.js +1 -1
  29. package/esm/banner/banner.d.ts +1 -1
  30. package/esm/banner/banner.js +1 -1
  31. package/esm/button/button.d.ts +1 -6
  32. package/esm/button/button.js +1 -6
  33. package/esm/button-area/button-area.d.ts +1 -4
  34. package/esm/button-area/button-area.js +1 -4
  35. package/esm/button-toggle/button-toggle/button-toggle.d.ts +1 -1
  36. package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
  37. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +1 -1
  38. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +1 -1
  39. package/esm/chip-field/chip-field.d.ts +1 -1
  40. package/esm/chip-field/chip-field.js +1 -1
  41. package/esm/chips/chip/chip-adapter.d.ts +3 -0
  42. package/esm/chips/chip/chip-adapter.js +12 -2
  43. package/esm/chips/chip/chip-constants.d.ts +2 -0
  44. package/esm/chips/chip/chip-constants.js +2 -1
  45. package/esm/chips/chip/chip-core.d.ts +4 -0
  46. package/esm/chips/chip/chip-core.js +9 -0
  47. package/esm/chips/chip/chip.d.ts +4 -0
  48. package/esm/chips/chip/chip.js +8 -0
  49. package/esm/chips/chip-set/chip-set.d.ts +1 -1
  50. package/esm/chips/chip-set/chip-set.js +1 -1
  51. package/esm/circular-progress/circular-progress.d.ts +1 -2
  52. package/esm/circular-progress/circular-progress.js +1 -2
  53. package/esm/color-picker/color-picker.d.ts +1 -1
  54. package/esm/color-picker/color-picker.js +1 -1
  55. package/esm/core/testing/test-harness.d.ts +11 -0
  56. package/esm/core/testing/test-harness.js +14 -0
  57. package/esm/core/testing/utils.d.ts +7 -0
  58. package/esm/core/testing/utils.js +14 -0
  59. package/esm/date-picker/date-picker.d.ts +1 -1
  60. package/esm/date-picker/date-picker.js +1 -1
  61. package/esm/dialog/dialog.d.ts +1 -1
  62. package/esm/dialog/dialog.js +1 -1
  63. package/esm/divider/divider.d.ts +1 -1
  64. package/esm/divider/divider.js +1 -1
  65. package/esm/drawer/base/base-drawer-adapter.d.ts +2 -0
  66. package/esm/drawer/base/base-drawer-adapter.js +3 -0
  67. package/esm/drawer/base/base-drawer-core.js +3 -0
  68. package/esm/drawer/drawer/drawer.d.ts +1 -1
  69. package/esm/drawer/drawer/drawer.js +1 -1
  70. package/esm/drawer/modal-drawer/modal-drawer.d.ts +1 -1
  71. package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
  72. package/esm/expansion-panel/expansion-panel.d.ts +1 -1
  73. package/esm/expansion-panel/expansion-panel.js +1 -1
  74. package/esm/field/field.d.ts +1 -2
  75. package/esm/field/field.js +1 -2
  76. package/esm/file-picker/file-picker.d.ts +2 -3
  77. package/esm/file-picker/file-picker.js +2 -3
  78. package/esm/floating-action-button/floating-action-button.d.ts +1 -1
  79. package/esm/floating-action-button/floating-action-button.js +1 -1
  80. package/esm/focus-indicator/focus-indicator.d.ts +1 -1
  81. package/esm/focus-indicator/focus-indicator.js +22 -21
  82. package/esm/icon/icon.d.ts +1 -1
  83. package/esm/icon/icon.js +1 -1
  84. package/esm/icon-button/icon-button.d.ts +1 -1
  85. package/esm/icon-button/icon-button.js +1 -1
  86. package/esm/inline-message/inline-message.d.ts +1 -1
  87. package/esm/inline-message/inline-message.js +1 -1
  88. package/esm/label/label.d.ts +1 -1
  89. package/esm/label/label.js +1 -1
  90. package/esm/label-value/label-value.d.ts +1 -1
  91. package/esm/label-value/label-value.js +1 -1
  92. package/esm/linear-progress/linear-progress.d.ts +1 -2
  93. package/esm/linear-progress/linear-progress.js +1 -2
  94. package/esm/list/list/list.d.ts +1 -1
  95. package/esm/list/list/list.js +1 -1
  96. package/esm/list/list-item/list-item-constants.js +1 -1
  97. package/esm/list-dropdown/list-dropdown-constants.d.ts +5 -1
  98. package/esm/list-dropdown/list-dropdown-core.js +1 -1
  99. package/esm/list-dropdown/list-dropdown-utils.d.ts +3 -1
  100. package/esm/list-dropdown/list-dropdown-utils.js +41 -20
  101. package/esm/list-dropdown/list-dropdown.js +1 -1
  102. package/esm/menu/menu-adapter.d.ts +2 -0
  103. package/esm/menu/menu-adapter.js +12 -8
  104. package/esm/menu/menu-constants.d.ts +1 -0
  105. package/esm/menu/menu-constants.js +3 -2
  106. package/esm/menu/menu-core.d.ts +5 -0
  107. package/esm/menu/menu-core.js +41 -2
  108. package/esm/menu/menu.d.ts +16 -1
  109. package/esm/menu/menu.js +14 -2
  110. package/esm/open-icon/open-icon.d.ts +2 -1
  111. package/esm/open-icon/open-icon.js +2 -1
  112. package/esm/overlay/overlay.d.ts +1 -2
  113. package/esm/overlay/overlay.js +1 -2
  114. package/esm/page-state/page-state.d.ts +1 -1
  115. package/esm/page-state/page-state.js +1 -1
  116. package/esm/paginator/paginator-core.d.ts +16 -0
  117. package/esm/paginator/paginator-core.js +29 -9
  118. package/esm/paginator/paginator.d.ts +37 -1
  119. package/esm/paginator/paginator.js +45 -1
  120. package/esm/popover/popover-adapter.js +1 -1
  121. package/esm/popover/popover-constants.d.ts +4 -0
  122. package/esm/popover/popover-constants.js +4 -2
  123. package/esm/popover/popover-core.d.ts +5 -1
  124. package/esm/popover/popover-core.js +13 -0
  125. package/esm/popover/popover.d.ts +6 -2
  126. package/esm/popover/popover.js +9 -1
  127. package/esm/profile-card/profile-card.d.ts +2 -1
  128. package/esm/profile-card/profile-card.js +2 -1
  129. package/esm/radio/radio/radio.d.ts +1 -2
  130. package/esm/radio/radio/radio.js +1 -2
  131. package/esm/scaffold/scaffold.d.ts +1 -1
  132. package/esm/scaffold/scaffold.js +1 -1
  133. package/esm/select/option/option.d.ts +1 -1
  134. package/esm/select/option/option.js +1 -1
  135. package/esm/select/select/select.d.ts +1 -1
  136. package/esm/select/select/select.js +2 -2
  137. package/esm/skeleton/skeleton.d.ts +1 -1
  138. package/esm/skeleton/skeleton.js +1 -1
  139. package/esm/skip-link/skip-link.d.ts +1 -1
  140. package/esm/skip-link/skip-link.js +1 -1
  141. package/esm/slider/slider.d.ts +1 -1
  142. package/esm/slider/slider.js +1 -1
  143. package/esm/split-button/split-button.d.ts +1 -1
  144. package/esm/split-button/split-button.js +1 -1
  145. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  146. package/esm/stack/stack.d.ts +1 -8
  147. package/esm/stack/stack.js +1 -8
  148. package/esm/state-layer/state-layer.d.ts +1 -1
  149. package/esm/state-layer/state-layer.js +2 -2
  150. package/esm/table/table-adapter.d.ts +4 -4
  151. package/esm/table/table-adapter.js +4 -4
  152. package/esm/table/table-core.js +2 -2
  153. package/esm/table/table-utils.d.ts +2 -2
  154. package/esm/table/table-utils.js +22 -18
  155. package/esm/table/table.d.ts +2 -2
  156. package/esm/table/table.js +1 -1
  157. package/esm/tabs/tab/tab.d.ts +1 -1
  158. package/esm/tabs/tab/tab.js +1 -1
  159. package/esm/tabs/tab-bar/tab-bar.d.ts +1 -1
  160. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  161. package/esm/text-field/text-field-adapter.d.ts +6 -4
  162. package/esm/text-field/text-field-adapter.js +11 -4
  163. package/esm/text-field/text-field-core.d.ts +4 -0
  164. package/esm/text-field/text-field-core.js +13 -2
  165. package/esm/text-field/text-field.d.ts +1 -1
  166. package/esm/text-field/text-field.js +1 -1
  167. package/esm/time-picker/time-picker-adapter.js +1 -0
  168. package/esm/time-picker/time-picker-core.js +3 -3
  169. package/esm/toast/toast-adapter.d.ts +20 -0
  170. package/esm/toast/toast-adapter.js +30 -0
  171. package/esm/toast/toast-core.d.ts +17 -0
  172. package/esm/toast/toast-core.js +66 -0
  173. package/esm/toast/toast.d.ts +9 -2
  174. package/esm/toast/toast.js +10 -1
  175. package/esm/toolbar/toolbar.d.ts +1 -3
  176. package/esm/toolbar/toolbar.js +1 -3
  177. package/esm/tooltip/tooltip.d.ts +1 -1
  178. package/esm/tooltip/tooltip.js +1 -1
  179. package/esm/view-switcher/view/view.d.ts +1 -1
  180. package/esm/view-switcher/view/view.js +1 -1
  181. package/esm/view-switcher/view-switcher.d.ts +1 -1
  182. package/esm/view-switcher/view-switcher.js +1 -1
  183. package/package.json +1 -1
  184. package/sass/state-layer/_core.scss +2 -0
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export declare function tryCleanupPopovers(): void;
7
+ export declare function isVisibleInScrollContainer(scrollContainer: HTMLElement, element: HTMLElement): boolean;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export function tryCleanupPopovers() {
7
+ const popovers = Array.from(document.querySelectorAll('forge-popover'));
8
+ popovers.forEach(p => p.remove());
9
+ }
10
+ export function isVisibleInScrollContainer(scrollContainer, element) {
11
+ const elemTop = element.offsetTop - scrollContainer.offsetTop;
12
+ const elemBottom = elemTop + element.offsetHeight;
13
+ return elemTop >= scrollContainer.scrollTop && elemBottom <= scrollContainer.scrollTop + scrollContainer.offsetHeight;
14
+ }
@@ -19,7 +19,7 @@ declare global {
19
19
  }
20
20
  }
21
21
  /**
22
- * @summary A date input component with an integrated calendar popup for selecting single dates with keyboard and mouse interaction support.
22
+ * @summary A date input component with an integrated calendar popup for selecting single dates.
23
23
  *
24
24
  * @tag forge-date-picker
25
25
  *
@@ -18,7 +18,7 @@ import { DatePickerCore } from './date-picker-core';
18
18
  const template = '<template><slot></slot></template>';
19
19
  const styles = ':host{display:block}:host([hidden]){display:none}';
20
20
  /**
21
- * @summary A date input component with an integrated calendar popup for selecting single dates with keyboard and mouse interaction support.
21
+ * @summary A date input component with an integrated calendar popup for selecting single dates.
22
22
  *
23
23
  * @tag forge-date-picker
24
24
  *
@@ -50,7 +50,7 @@ declare const DialogComponent_base: import("..").AbstractConstructor<import("../
50
50
  /**
51
51
  * @tag forge-dialog
52
52
  *
53
- * @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions.
53
+ * @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions. Dialogs can be modal or non-modal.
54
54
  *
55
55
  * @dependency forge-backdrop
56
56
  *
@@ -19,7 +19,7 @@ const styles = '@keyframes forge-dialog-zoom-in{from{opacity:var(--_dialog-zoom-
19
19
  /**
20
20
  * @tag forge-dialog
21
21
  *
22
- * @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions.
22
+ * @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions. Dialogs can be modal or non-modal.
23
23
  *
24
24
  * @dependency forge-backdrop
25
25
  *
@@ -15,7 +15,7 @@ declare global {
15
15
  /**
16
16
  * @tag forge-divider
17
17
  *
18
- * @summary Divider is used to separate elements.
18
+ * @summary Dividers are used to separate elements with a thin line, either vertically or horizontally.
19
19
  *
20
20
  * @property {boolean} [vertical=false] - Controls if the divider is displayed vertically or horizontally.
21
21
  *
@@ -12,7 +12,7 @@ const styles = ':host{--_divider-margin:var(--forge-divider-margin, 0)}:host{dis
12
12
  /**
13
13
  * @tag forge-divider
14
14
  *
15
- * @summary Divider is used to separate elements.
15
+ * @summary Dividers are used to separate elements with a thin line, either vertically or horizontally.
16
16
  *
17
17
  * @property {boolean} [vertical=false] - Controls if the divider is displayed vertically or horizontally.
18
18
  *
@@ -13,6 +13,7 @@ export interface IBaseDrawerAdapter extends IBaseAdapter {
13
13
  removeDrawerClass(className: string | string[]): void;
14
14
  setDrawerClass(className: string | string[]): void;
15
15
  listenTransitionComplete(listener: () => void): void;
16
+ setInert(value: boolean): void;
16
17
  }
17
18
  export declare class BaseDrawerAdapter extends BaseAdapter<IBaseDrawerComponent> implements IBaseDrawerAdapter {
18
19
  protected _component: IBaseDrawerComponent;
@@ -26,4 +27,5 @@ export declare class BaseDrawerAdapter extends BaseAdapter<IBaseDrawerComponent>
26
27
  removeDrawerClass(className: string | string[]): void;
27
28
  setDrawerClass(className: string | string[]): void;
28
29
  listenTransitionComplete(listener: () => void): void;
30
+ setInert(value: boolean): void;
29
31
  }
@@ -58,4 +58,7 @@ export class BaseDrawerAdapter extends BaseAdapter {
58
58
  };
59
59
  this._drawerElement.addEventListener('transitionend', this._activeTransitionListener);
60
60
  }
61
+ setInert(value) {
62
+ this._drawerElement.inert = value;
63
+ }
61
64
  }
@@ -22,6 +22,7 @@ export class BaseDrawerCore {
22
22
  this._setClosed();
23
23
  }
24
24
  this._applyDirection();
25
+ this._adapter.setInert(!this._open);
25
26
  this._adapter.proxyScrollEvent();
26
27
  }
27
28
  destroy() {
@@ -58,10 +59,12 @@ export class BaseDrawerCore {
58
59
  }
59
60
  _applyOpen() {
60
61
  if (this._open) {
62
+ this._adapter.setInert(false);
61
63
  this._triggerDrawerOpen();
62
64
  this._adapter.setHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
63
65
  }
64
66
  else {
67
+ this._adapter.setInert(true);
65
68
  this._triggerDrawerClose();
66
69
  this._adapter.removeHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
67
70
  }
@@ -18,7 +18,7 @@ declare global {
18
18
  /**
19
19
  * @tag forge-drawer
20
20
  *
21
- * @summary A persistent side navigation drawer component that provides a sliding panel for navigation content.
21
+ * @summary A persistent side navigation drawer component that provides the ability to dismiss and open the drawer with smooth animations. Use for navigation or to display additional content alongside the main application content.
22
22
  *
23
23
  * @slot - The content to display in the scrollable content container.
24
24
  * @slot header - The header content above the main content.
@@ -12,7 +12,7 @@ const styles = ':host{display:grid;box-sizing:border-box;height:100%;overflow:hi
12
12
  /**
13
13
  * @tag forge-drawer
14
14
  *
15
- * @summary A persistent side navigation drawer component that provides a sliding panel for navigation content.
15
+ * @summary A persistent side navigation drawer component that provides the ability to dismiss and open the drawer with smooth animations. Use for navigation or to display additional content alongside the main application content.
16
16
  *
17
17
  * @slot - The content to display in the scrollable content container.
18
18
  * @slot header - The header content above the main content.
@@ -18,7 +18,7 @@ declare global {
18
18
  /**
19
19
  * @tag forge-modal-drawer
20
20
  *
21
- * @summary A modal navigation drawer component that slides in from the side with a backdrop overlay, typically used for temporary navigation panels.
21
+ * @summary A modal navigation drawer component that slides in from the side with a backdrop overlay, typically used for temporary navigation panels. Prefer to use the dialog component with the preset options for sidesheet styles drawers.
22
22
  *
23
23
  * @dependency forge-backdrop
24
24
  *
@@ -15,7 +15,7 @@ const styles = ':host{--forge-divider-margin:4px 0}.forge-drawer{--_drawer-backg
15
15
  /**
16
16
  * @tag forge-modal-drawer
17
17
  *
18
- * @summary A modal navigation drawer component that slides in from the side with a backdrop overlay, typically used for temporary navigation panels.
18
+ * @summary A modal navigation drawer component that slides in from the side with a backdrop overlay, typically used for temporary navigation panels. Prefer to use the dialog component with the preset options for sidesheet styles drawers.
19
19
  *
20
20
  * @dependency forge-backdrop
21
21
  *
@@ -54,7 +54,7 @@ declare global {
54
54
  * @cssclass forge-expansion-panel--open - The open state of the panel.
55
55
  *
56
56
  * @slot - The content of the panel.
57
- * @slot header - The header of the panel.
57
+ * @slot header - The header of the panel. This is deprecated, prefer using the trigger property instead, or manually associating a button with the panel.
58
58
  */
59
59
  export declare class ExpansionPanelComponent extends BaseComponent implements IExpansionPanelComponent {
60
60
  static get observedAttributes(): string[];
@@ -42,7 +42,7 @@ const styles = ':host{display:block}:host([hidden]){display:none}.forge-expansio
42
42
  * @cssclass forge-expansion-panel--open - The open state of the panel.
43
43
  *
44
44
  * @slot - The content of the panel.
45
- * @slot header - The header of the panel.
45
+ * @slot header - The header of the panel. This is deprecated, prefer using the trigger property instead, or manually associating a button with the panel.
46
46
  */
47
47
  let ExpansionPanelComponent = class ExpansionPanelComponent extends BaseComponent {
48
48
  static get observedAttributes() {
@@ -39,8 +39,7 @@ declare global {
39
39
  /**
40
40
  * @tag forge-field
41
41
  *
42
- * @summary The Forge Field component is a basic component that handles the layout and theming of
43
- * form elements that can include a label, various states, and a border around an input area.
42
+ * @description The field component is a building block component that handles the layout and theming of other form elements. Avoid using this component directly unless part of a larger component. Instead, use one of the specific field type components such as `<forge-text-field>` and `<forge-select>` for example.
44
43
  *
45
44
  * @property {FieldLabelPosition} [labelPosition="inset"] - The position of the label relative to the input area.
46
45
  * @property {FieldLabelAlignment} [labelAlignment="start"] - The alignment of the label relative to the input area.
@@ -15,8 +15,7 @@ const styles = '@keyframes float-in-label-animation{from{translate:0;opacity:40%
15
15
  /**
16
16
  * @tag forge-field
17
17
  *
18
- * @summary The Forge Field component is a basic component that handles the layout and theming of
19
- * form elements that can include a label, various states, and a border around an input area.
18
+ * @description The field component is a building block component that handles the layout and theming of other form elements. Avoid using this component directly unless part of a larger component. Instead, use one of the specific field type components such as `<forge-text-field>` and `<forge-select>` for example.
20
19
  *
21
20
  * @property {FieldLabelPosition} [labelPosition="inset"] - The position of the label relative to the input area.
22
21
  * @property {FieldLabelAlignment} [labelAlignment="start"] - The alignment of the label relative to the input area.
@@ -25,9 +25,8 @@ declare global {
25
25
  /**
26
26
  * @tag forge-file-picker
27
27
  *
28
- * @summary
29
- * The file-picker component allows for a user to upload files of their own to the system. The component provides a slot for a
30
- * button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual queues to let the
28
+ * @summary The file picker component allows for a user to upload files of their own to the system. The component provides a slot for a
29
+ * button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual cues to let the
31
30
  * user know when files they are dragging can be dropped, as well as events that are relayed to the developer to handle files
32
31
  * that are legal and/or illegal based on the parameters set on the component.
33
32
  *
@@ -15,9 +15,8 @@ const styles = ':host{--_file-picker-background:var(--forge-file-picker-backgrou
15
15
  /**
16
16
  * @tag forge-file-picker
17
17
  *
18
- * @summary
19
- * The file-picker component allows for a user to upload files of their own to the system. The component provides a slot for a
20
- * button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual queues to let the
18
+ * @summary The file picker component allows for a user to upload files of their own to the system. The component provides a slot for a
19
+ * button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual cues to let the
21
20
  * user know when files they are dragging can be dropped, as well as events that are relayed to the developer to handle files
22
21
  * that are legal and/or illegal based on the parameters set on the component.
23
22
  *
@@ -20,7 +20,7 @@ declare global {
20
20
  /**
21
21
  * @tag forge-fab
22
22
  *
23
- * @summary Floating action buttons are used to represent the most important action on a page.
23
+ * @summary Floating action buttons are used to represent the most important action on a page. They are typically used in mobile applications, and are positioned above other content in a way that draws attention to them.
24
24
  *
25
25
  * @dependency forge-focus-indicator
26
26
  * @dependency forge-state-layer
@@ -18,7 +18,7 @@ const styles = ':host{--_fab-display:var(--forge-fab-display, inline-flex);--_fa
18
18
  /**
19
19
  * @tag forge-fab
20
20
  *
21
- * @summary Floating action buttons are used to represent the most important action on a page.
21
+ * @summary Floating action buttons are used to represent the most important action on a page. They are typically used in mobile applications, and are positioned above other content in a way that draws attention to them.
22
22
  *
23
23
  * @dependency forge-focus-indicator
24
24
  * @dependency forge-state-layer
@@ -26,7 +26,7 @@ export declare const FOCUS_INDICATOR_TAG_NAME: keyof HTMLElementTagNameMap;
26
26
  /**
27
27
  * @tag forge-focus-indicator
28
28
  *
29
- * @summary Renders a focus indicator when an attached element matches `:focus-visible`.
29
+ * @summary Focus indicators show a "focus ring" around an attached element that matches `:focus-visible`. These are building block components used by other components to show focus state, and are not typically used directly.
30
30
  *
31
31
  * @cssproperty --forge-focus-indicator-display - The `display` style. Defaults to `flex`.
32
32
  * @cssproperty --forge-focus-indicator-width - The width of the focus indicator when resting.
@@ -15,7 +15,7 @@ export const FOCUS_INDICATOR_TAG_NAME = 'forge-focus-indicator';
15
15
  /**
16
16
  * @tag forge-focus-indicator
17
17
  *
18
- * @summary Renders a focus indicator when an attached element matches `:focus-visible`.
18
+ * @summary Focus indicators show a "focus ring" around an attached element that matches `:focus-visible`. These are building block components used by other components to show focus state, and are not typically used directly.
19
19
  *
20
20
  * @cssproperty --forge-focus-indicator-display - The `display` style. Defaults to `flex`.
21
21
  * @cssproperty --forge-focus-indicator-width - The width of the focus indicator when resting.
@@ -96,6 +96,20 @@ let FocusIndicatorComponent = class FocusIndicatorComponent extends BaseLitEleme
96
96
  this.focusMode = 'focusin';
97
97
  _FocusIndicatorComponent_targetElement.set(this, void 0);
98
98
  _FocusIndicatorComponent_internals.set(this, void 0);
99
+ _FocusIndicatorComponent_handleTargetInteraction.set(this, (evt) => {
100
+ const target = evt.target;
101
+ switch (evt.type) {
102
+ case this.focusMode:
103
+ this.active = __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_isActive).call(this, this.allowFocus ? ':focus' : ':focus-visible', target);
104
+ break;
105
+ case 'focusout':
106
+ this.active = false;
107
+ break;
108
+ case 'pointerdown':
109
+ this.active = this.allowFocus ? __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_isActive).call(this, ':focus', target) : __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_isActive).call(this, ':focus-visible', target);
110
+ break;
111
+ }
112
+ });
99
113
  __classPrivateFieldSet(this, _FocusIndicatorComponent_internals, this.attachInternals(), "f");
100
114
  }
101
115
  connectedCallback() {
@@ -126,31 +140,18 @@ let FocusIndicatorComponent = class FocusIndicatorComponent extends BaseLitEleme
126
140
  };
127
141
  _FocusIndicatorComponent_targetElement = new WeakMap();
128
142
  _FocusIndicatorComponent_internals = new WeakMap();
143
+ _FocusIndicatorComponent_handleTargetInteraction = new WeakMap();
129
144
  _FocusIndicatorComponent_instances = new WeakSet();
130
145
  _a = CUSTOM_ELEMENT_NAME_PROPERTY;
131
146
  _FocusIndicatorComponent_detachTargetListeners = function _FocusIndicatorComponent_detachTargetListeners() {
132
- __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.removeEventListener(this.focusMode, __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_handleTargetInteraction).bind(this));
133
- __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.removeEventListener('focusout', __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_handleTargetInteraction).bind(this));
134
- __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.removeEventListener('pointerdown', __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_handleTargetInteraction).bind(this));
147
+ __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.removeEventListener(this.focusMode, __classPrivateFieldGet(this, _FocusIndicatorComponent_handleTargetInteraction, "f"));
148
+ __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.removeEventListener('focusout', __classPrivateFieldGet(this, _FocusIndicatorComponent_handleTargetInteraction, "f"));
149
+ __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.removeEventListener('pointerdown', __classPrivateFieldGet(this, _FocusIndicatorComponent_handleTargetInteraction, "f"));
135
150
  };
136
151
  _FocusIndicatorComponent_attachTargetListeners = function _FocusIndicatorComponent_attachTargetListeners() {
137
- __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.addEventListener(this.focusMode, __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_handleTargetInteraction).bind(this));
138
- __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.addEventListener('focusout', __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_handleTargetInteraction).bind(this));
139
- __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.addEventListener('pointerdown', __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_handleTargetInteraction).bind(this));
140
- };
141
- _FocusIndicatorComponent_handleTargetInteraction = function _FocusIndicatorComponent_handleTargetInteraction(evt) {
142
- const target = evt.target;
143
- switch (evt.type) {
144
- case this.focusMode:
145
- this.active = __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_isActive).call(this, this.allowFocus ? ':focus' : ':focus-visible', target);
146
- break;
147
- case 'focusout':
148
- this.active = false;
149
- break;
150
- case 'pointerdown':
151
- this.active = this.allowFocus ? __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_isActive).call(this, ':focus', target) : __classPrivateFieldGet(this, _FocusIndicatorComponent_instances, "m", _FocusIndicatorComponent_isActive).call(this, ':focus-visible', target);
152
- break;
153
- }
152
+ __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.addEventListener(this.focusMode, __classPrivateFieldGet(this, _FocusIndicatorComponent_handleTargetInteraction, "f"));
153
+ __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.addEventListener('focusout', __classPrivateFieldGet(this, _FocusIndicatorComponent_handleTargetInteraction, "f"));
154
+ __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f")?.addEventListener('pointerdown', __classPrivateFieldGet(this, _FocusIndicatorComponent_handleTargetInteraction, "f"));
154
155
  };
155
156
  _FocusIndicatorComponent_isActive = function _FocusIndicatorComponent_isActive(selector, el) {
156
157
  const targetedEl = el ?? __classPrivateFieldGet(this, _FocusIndicatorComponent_targetElement, "f");
@@ -27,7 +27,7 @@ declare global {
27
27
  /**
28
28
  * @tag forge-icon
29
29
  *
30
- * @summary Icons are used to represent information visually
30
+ * @summary Icons are used to represent information visually. The icon component is a wrapper around SVG icons that are registered in the icon registry.
31
31
  *
32
32
  * @property {string} name - The name of the icon to render.
33
33
  * @property {string} src - Provides the ability to set the SVG string content directly.
package/esm/icon/icon.js CHANGED
@@ -14,7 +14,7 @@ const styles = ':host{--_icon-color:var(--forge-icon-color, currentColor);--_ico
14
14
  /**
15
15
  * @tag forge-icon
16
16
  *
17
- * @summary Icons are used to represent information visually
17
+ * @summary Icons are used to represent information visually. The icon component is a wrapper around SVG icons that are registered in the icon registry.
18
18
  *
19
19
  * @property {string} name - The name of the icon to render.
20
20
  * @property {string} src - Provides the ability to set the SVG string content directly.
@@ -25,7 +25,7 @@ declare global {
25
25
  }
26
26
  }
27
27
  /**
28
- * @summary A clickable button component that displays an icon with support for different variants, themes, toggle states, and accessibility features.
28
+ * @summary Icon buttons are buttons that contain **only** an icon, and are used to represent actions or commands. Always provide an accessible label when using icon buttons.
29
29
  *
30
30
  * @tag forge-icon-button
31
31
  *
@@ -16,7 +16,7 @@ import { IconButtonAdapter } from './icon-button-adapter';
16
16
  const template = '<template><div class=\"forge-icon-button\" part=\"root\"><slot name=\"start\"></slot><slot></slot><slot name=\"on\"></slot><slot name=\"end\"></slot><slot name=\"badge\"></slot><forge-focus-indicator target=\":host\" part=\"focus-indicator\"></forge-focus-indicator><forge-state-layer target=\":host\" exportparts=\"surface:state-layer\"></forge-state-layer></div></template>';
17
17
  const styles = ':host{--_icon-button-display:var(--forge-icon-button-display, inline-flex);--_icon-button-disabled-cursor:var(--forge-icon-button-disabled-cursor, not-allowed)}:host{display:var(--_icon-button-display);position:relative;outline:0;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}.forge-icon-button{--_icon-button-size:var(--forge-icon-button-size, 48px);--_icon-button-gap:var(--forge-icon-button-gap, 0);--_icon-button-icon-color:var(--forge-icon-button-icon-color, currentColor);--_icon-button-background-color:var(--forge-icon-button-background-color, none);--_icon-button-icon-size:var(--forge-icon-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.5));--_icon-button-cursor:var(--forge-icon-button-cursor, pointer);--_icon-button-padding:var(--forge-icon-button-padding, var(--forge-spacing-xxsmall, 4px));--_icon-button-border:var(--forge-icon-button-border, none);--_icon-button-shadow:var(--forge-icon-button-shadow, none);--_icon-button-transition-duration:var(--forge-icon-button-transition-duration, var(--forge-animation-duration-short3, 150ms));--_icon-button-transition-timing:var(--forge-icon-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_icon-button-shape:var(--forge-icon-button-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_icon-button-shape-start-start:var(--forge-icon-button-shape-start-start, var(--_icon-button-shape));--_icon-button-shape-start-end:var(--forge-icon-button-shape-start-end, var(--_icon-button-shape));--_icon-button-shape-end-start:var(--forge-icon-button-shape-end-start, var(--_icon-button-shape));--_icon-button-shape-end-end:var(--forge-icon-button-shape-end-end, var(--_icon-button-shape));--_icon-button-shape-squared:var(--forge-icon-button-shape-squared, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_icon-button-outlined-border-width:var(--forge-icon-button-outlined-border-width, 1px);--_icon-button-outlined-border-style:var(--forge-icon-button-outlined-border-style, solid);--_icon-button-outlined-border-color:var(--forge-icon-button-outlined-border-color, var(--_icon-button-icon-color));--_icon-button-tonal-icon-color:var(--forge-icon-button-tonal-icon-color, var(--forge-theme-on-primary-container, #222c62));--_icon-button-tonal-background-color:var(--forge-icon-button-tonal-background-color, var(--forge-theme-primary-container, #d1d5ed));--_icon-button-filled-icon-color:var(--forge-icon-button-filled-icon-color, var(--forge-theme-on-primary, #ffffff));--_icon-button-filled-background-color:var(--forge-icon-button-filled-background-color, var(--forge-theme-primary, #3f51b5));--_icon-button-raised-shadow:var(--forge-icon-button-raised-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));--_icon-button-raised-hover-shadow:var(--forge-icon-button-raised-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));--_icon-button-raised-active-shadow:var(--forge-icon-button-raised-active-shadow, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12));--_icon-button-raised-disabled-shadow:var(--forge-icon-button-raised-disabled-shadow, none);--_icon-button-density-small-size:var(--forge-icon-button-density-small-size, 24px);--_icon-button-density-small-padding:var(--forge-icon-button-density-small-padding, var(--forge-spacing-xxxsmall, 2px));--_icon-button-density-small-icon-size:var(--forge-icon-button-density-small-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));--_icon-button-density-medium-size:var(--forge-icon-button-density-medium-size, 36px);--_icon-button-density-medium-padding:var(--forge-icon-button-density-medium-padding, var(--forge-spacing-xxsmall, 4px));--_icon-button-density-large-size:var(--forge-icon-button-density-large-size, var(--_icon-button-size));--_icon-button-toggle-on-background-color:var(--forge-icon-button-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));--_icon-button-tonal-toggle-background-color:var(--forge-icon-button-tonal-toggle-background-color, var(--forge-theme-surface-container-low, #ebebeb));--_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));--_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5));--_icon-button-filled-toggle-background-color:var(--forge-icon-button-filled-toggle-background-color, var(--forge-theme-surface-container-low, #ebebeb));--_icon-button-filled-toggle-icon-color:var(--forge-icon-button-filled-toggle-icon-color, var(--forge-theme-primary, #3f51b5));--_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-primary, #3f51b5));--_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-primary, #ffffff));--_icon-button-disabled-opacity:var(--forge-icon-button-disabled-opacity, 0.38);--_icon-button-popover-icon-padding:var(--forge-icon-button-popover-icon-padding, var(--forge-spacing-xsmall, 8px));--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-primary, #3f51b5))}.forge-icon-button{position:relative;z-index:0;display:var(--_icon-button-display);align-items:center;justify-content:center;gap:var(--_icon-button-gap);box-sizing:border-box;height:var(--_icon-button-density-large-size);min-width:var(--_icon-button-density-large-size);border:var(--_icon-button-border);border-start-start-radius:var(--_icon-button-shape-start-start);border-start-end-radius:var(--_icon-button-shape-start-end);border-end-start-radius:var(--_icon-button-shape-end-start);border-end-end-radius:var(--_icon-button-shape-end-end);padding:var(--_icon-button-padding);box-shadow:var(--_icon-button-shadow);color:var(--_icon-button-icon-color);background:var(--_icon-button-background-color);font-size:var(--_icon-button-icon-size);cursor:var(--_icon-button-cursor);user-select:none;transition-property:box-shadow,background;transition-duration:var(--_icon-button-transition-duration);transition-timing-function:var(--_icon-button-transition-timing)}.forge-icon-button ::slotted(:is([slot=start],[slot=end])){font-size:var(--_icon-button-icon-size);height:var(--_icon-button-icon-size);width:var(--_icon-button-icon-size);font-weight:inherit}::slotted(a){height:100%;width:100%;outline:0;border-radius:var(--_icon-button-shape);padding-inline:var(--_icon-button-padding);display:flex;align-items:center;justify-content:center;gap:var(--_icon-button-gap);color:var(--_icon-button-icon-color);text-decoration:none}forge-focus-indicator{--forge-focus-indicator-color:var(--_icon-button-focus-indicator-color);--forge-focus-indicator-shape-start-start:var(--_icon-button-shape-start-start);--forge-focus-indicator-shape-start-end:var(--_icon-button-shape-start-end);--forge-focus-indicator-shape-end-start:var(--_icon-button-shape-end-start);--forge-focus-indicator-shape-end-end:var(--_icon-button-shape-end-end)}:host(:is([variant=icon],:not([variant]))){--forge-focus-indicator-outward-offset:0px}forge-state-layer{--forge-state-layer-color:var(--_icon-button-icon-color)}:host([popover-icon]) .forge-icon-button{--_icon-button-padding:var(--_icon-button-popover-icon-padding)}:host([variant=outlined]) .forge-icon-button{border-width:var(--_icon-button-outlined-border-width);border-style:var(--_icon-button-outlined-border-style);border-color:var(--_icon-button-outlined-border-color)}:host([variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--_icon-button-tonal-icon-color);--_icon-button-background-color:var(--_icon-button-tonal-background-color)}:host(:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--_icon-button-filled-icon-color);--_icon-button-background-color:var(--_icon-button-filled-background-color)}:host([variant=raised]) .forge-icon-button{--_icon-button-shadow:var(--_icon-button-raised-shadow)}:host([variant=raised]) .forge-icon-button:hover{--_icon-button-raised-shadow:var(--_icon-button-raised-hover-shadow)}:host([variant=raised]) .forge-icon-button:active{--_icon-button-raised-shadow:var(--_icon-button-raised-active-shadow)}:host(:is(:not([toggle]),[toggle]:not([pressed]))) slot[name=on]{display:none}:host([toggle][pressed]) slot:not([name]){display:none}:host([toggle][pressed]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-background-color:var(--_icon-button-toggle-on-background-color);--_icon-button-icon-color:var(--_icon-button-toggle-on-icon-color)}:host([toggle][pressed][variant=outlined]) .forge-icon-button{--_icon-button-background-color:var(--_icon-button-outlined-toggle-on-background-color);--_icon-button-icon-color:var(--_icon-button-outlined-toggle-on-icon-color)}:host([toggle]:not([pressed])[variant=tonal]) .forge-icon-button{--_icon-button-background-color:var(--_icon-button-tonal-toggle-background-color)}:host([toggle][pressed][variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--_icon-button-tonal-toggle-on-icon-color);--_icon-button-background-color:var(--_icon-button-tonal-toggle-on-background-color)}:host([toggle]:not([pressed]):is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--_icon-button-filled-toggle-icon-color);--_icon-button-background-color:var(--_icon-button-filled-toggle-background-color)}:host([toggle][pressed]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--_icon-button-filled-toggle-on-icon-color);--_icon-button-background-color:var(--_icon-button-filled-toggle-on-background-color)}::slotted([slot=badge]){position:absolute;top:0;left:60%;z-index:1;pointer-events:none}::slotted(forge-badge[slot=badge][dot]){top:8px}:host(:is([dense],[density=small],[density=medium])) ::slotted(forge-badge[slot=badge]:not([dot])){top:-25%}:host(:is([dense],[density=small],[density=medium])) ::slotted(forge-badge[slot=badge][dot]){top:0}:host(:is([dense],[density=small])) ::slotted(forge-badge[slot=badge]){--forge-typography-label1-line-height:normal;--forge-badge-height:auto}::slotted(forge-circular-progress){--forge-circular-progress-indicator-color:var(--_icon-button-icon-color);--forge-circular-progress-track-color:transparent;--forge-circular-progress-size:1em}:host(:is([dense],[density=small])) .forge-icon-button{--_icon-button-size:var(--_icon-button-density-small-size);--_icon-button-icon-size:var(--_icon-button-density-small-icon-size);--_icon-button-padding:var(--_icon-button-density-small-padding)}:host(:is([dense],[density=small])) ::slotted(*){font-size:var(--_icon-button-density-small-icon-size)}:host([density=medium]) .forge-icon-button{--_icon-button-size:var(--_icon-button-density-medium-size);--_icon-button-padding:var(--_icon-button-density-medium-padding)}:host([shape=squared]) .forge-icon-button{--_icon-button-shape:var(--_icon-button-shape-squared)}:host([disabled]){cursor:var(--_icon-button-disabled-cursor)}:host([disabled]) .forge-icon-button{pointer-events:none;opacity:var(--_icon-button-disabled-opacity)}:host([disabled][variant=raised]) .forge-icon-button{--_icon-button-raised-shadow:var(--_icon-button-raised-disabled-shadow)}:host(:not([toggle])[theme=primary]:is(:not([variant]),[variant=icon],[variant=outlined])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-primary, #3f51b5))}:host([toggle][theme=primary]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5))}:host([toggle][theme=primary][variant=outlined]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-primary, #3f51b5));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-primary-container, #d1d5ed));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-primary, #3f51b5))}:host([theme=primary]) .forge-icon-button{--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-primary, #3f51b5))}:host(:not([toggle])[theme=secondary]:is(:not([variant]),[variant=icon],[variant=outlined])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-secondary, #ffc107))}:host([toggle][theme=secondary]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-secondary, #ffc107))}:host([toggle][theme=secondary][variant=outlined]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-secondary, #ffc107));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-secondary-container, #fff0c3));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-secondary, #ffc107))}:host(:not([toggle])[theme=secondary][variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-secondary-container, #8a6804));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-secondary-container, #fff0c3))}:host([toggle]:not([pressed])[theme=secondary][variant=tonal]) .forge-icon-button{--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-secondary-container, #fff0c3))}:host([toggle][theme=secondary][variant=tonal]) .forge-icon-button{--_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-secondary-container, #fff0c3));--_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-on-secondary-container, #8a6804))}:host(:not([toggle])[theme=secondary]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-secondary, #000000));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-secondary, #ffc107))}:host([toggle]:not([pressed])[theme=secondary]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-secondary, #ffc107));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-secondary-container, #fff0c3))}:host([toggle][theme=secondary]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-secondary, #ffc107));--_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-secondary, #000000))}:host([theme=secondary]) .forge-icon-button{--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-secondary, #ffc107))}:host(:not([toggle])[theme=tertiary]:is(:not([variant]),[variant=icon],[variant=outlined])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-tertiary, #3d5afe))}:host([toggle][theme=tertiary]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-tertiary, #3d5afe))}:host([toggle][theme=tertiary][variant=outlined]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-tertiary, #3d5afe));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-tertiary-container, #d0d7ff));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-tertiary, #3d5afe))}:host(:not([toggle])[theme=tertiary][variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-tertiary-container, #213189));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-tertiary-container, #d0d7ff))}:host([toggle]:not([pressed])[theme=tertiary][variant=tonal]) .forge-icon-button{--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-tertiary-container, #d0d7ff))}:host([toggle][theme=tertiary][variant=tonal]) .forge-icon-button{--_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-tertiary-container, #d0d7ff));--_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-on-tertiary-container, #213189))}:host(:not([toggle])[theme=tertiary]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-tertiary, #ffffff));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-tertiary, #3d5afe))}:host([toggle]:not([pressed])[theme=tertiary]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-tertiary, #3d5afe));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-tertiary-container, #d0d7ff))}:host([toggle][theme=tertiary]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-tertiary, #3d5afe));--_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=tertiary]) .forge-icon-button{--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-tertiary, #3d5afe))}:host(:not([toggle])[theme=success]:is(:not([variant]),[variant=icon],[variant=outlined])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-success, #2e7d32))}:host([toggle][theme=success]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-success, #2e7d32))}:host([toggle][theme=success][variant=outlined]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-success, #2e7d32));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-success-container, #cde0ce));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-success, #2e7d32))}:host(:not([toggle])[theme=success][variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-success-container, #19441b));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-success-container, #cde0ce))}:host([toggle]:not([pressed])[theme=success][variant=tonal]) .forge-icon-button{--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-success-container, #cde0ce))}:host([toggle][theme=success][variant=tonal]) .forge-icon-button{--_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-success-container, #cde0ce));--_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-on-success-container, #19441b))}:host(:not([toggle])[theme=success]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-success, #ffffff));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-success, #2e7d32))}:host([toggle]:not([pressed])[theme=success]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-success, #2e7d32));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-success-container, #cde0ce))}:host([toggle][theme=success]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-success, #2e7d32));--_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-success, #ffffff))}:host([theme=success]) .forge-icon-button{--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-success, #2e7d32))}:host(:not([toggle])[theme=error]:is(:not([variant]),[variant=icon],[variant=outlined])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-error, #b00020))}:host([toggle][theme=error]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-error, #b00020))}:host([toggle][theme=error][variant=outlined]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-error, #b00020));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-error-container, #ecc2c9));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-error, #b00020))}:host(:not([toggle])[theme=error][variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-error-container, #5f0011));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-error-container, #ecc2c9))}:host([toggle]:not([pressed])[theme=error][variant=tonal]) .forge-icon-button{--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-error-container, #ecc2c9))}:host([toggle][theme=error][variant=tonal]) .forge-icon-button{--_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-error-container, #ecc2c9));--_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-on-error-container, #5f0011))}:host(:not([toggle])[theme=error]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-error, #ffffff));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-error, #b00020))}:host([toggle]:not([pressed])[theme=error]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-error, #b00020));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-error-container, #ecc2c9))}:host([toggle][theme=error]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-error, #b00020));--_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-error, #ffffff))}:host([theme=error]) .forge-icon-button{--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-error, #b00020))}:host(:not([toggle])[theme=warning]:is(:not([variant]),[variant=icon],[variant=outlined])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-warning, #d14900))}:host([toggle][theme=warning]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-warning, #d14900))}:host([toggle][theme=warning][variant=outlined]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-warning, #d14900));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-warning-container, #f4d3c2));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-warning, #d14900))}:host(:not([toggle])[theme=warning][variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-warning-container, #712700));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-warning-container, #f4d3c2))}:host([toggle]:not([pressed])[theme=warning][variant=tonal]) .forge-icon-button{--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-warning-container, #f4d3c2))}:host([toggle][theme=warning][variant=tonal]) .forge-icon-button{--_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-warning-container, #f4d3c2));--_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-on-warning-container, #712700))}:host(:not([toggle])[theme=warning]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-warning, #ffffff));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-warning, #d14900))}:host([toggle]:not([pressed])[theme=warning]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-warning, #d14900));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-warning-container, #f4d3c2))}:host([toggle][theme=warning]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-warning, #d14900));--_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-warning, #ffffff))}:host([theme=warning]) .forge-icon-button{--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-warning, #d14900))}:host(:not([toggle])[theme=info]:is(:not([variant]),[variant=icon],[variant=outlined])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-info, #1565c0))}:host([toggle][theme=info]:is(:not([variant]),[variant=icon])) .forge-icon-button{--_icon-button-toggle-on-icon-color:var(--forge-icon-button-toggle-on-icon-color, var(--forge-theme-info, #1565c0))}:host([toggle][theme=info][variant=outlined]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-info, #1565c0));--_icon-button-outlined-toggle-on-background-color:var(--forge-icon-button-outlined-toggle-on-background-color, var(--forge-theme-info-container, #c7daf0));--_icon-button-outlined-toggle-on-icon-color:var(--forge-icon-button-outlined-toggle-on-icon-color, var(--forge-theme-info, #1565c0))}:host(:not([toggle])[theme=info][variant=tonal]) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-info-container, #0b3768));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-info-container, #c7daf0))}:host([toggle]:not([pressed])[theme=info][variant=tonal]) .forge-icon-button{--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-info-container, #c7daf0))}:host([toggle][theme=info][variant=tonal]) .forge-icon-button{--_icon-button-tonal-toggle-on-background-color:var(--forge-icon-button-tonal-toggle-on-background-color, var(--forge-theme-info-container, #c7daf0));--_icon-button-tonal-toggle-on-icon-color:var(--forge-icon-button-tonal-toggle-on-icon-color, var(--forge-theme-on-info-container, #0b3768))}:host(:not([toggle])[theme=info]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-on-info, #ffffff));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-info, #1565c0))}:host([toggle]:not([pressed])[theme=info]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-icon-color:var(--forge-icon-button-icon-color, var(--forge-theme-info, #1565c0));--_icon-button-background-color:var(--forge-icon-button-background-color, var(--forge-theme-info-container, #c7daf0))}:host([toggle][theme=info]:is([variant=filled],[variant=raised])) .forge-icon-button{--_icon-button-filled-toggle-on-background-color:var(--forge-icon-button-filled-toggle-on-background-color, var(--forge-theme-info, #1565c0));--_icon-button-filled-toggle-on-icon-color:var(--forge-icon-button-filled-toggle-on-icon-color, var(--forge-theme-on-info, #ffffff))}:host([theme=info]) .forge-icon-button{--_icon-button-focus-indicator-color:var(--forge-icon-button-focus-indicator-color, var(--forge-theme-info, #1565c0))}:host([theme=app-bar]){--forge-icon-button-icon-color:var(--_app-bar-theme-foreground);--forge-icon-button-focus-indicator-color:var(--_app-bar-theme-foreground)}';
18
18
  /**
19
- * @summary A clickable button component that displays an icon with support for different variants, themes, toggle states, and accessibility features.
19
+ * @summary Icon buttons are buttons that contain **only** an icon, and are used to represent actions or commands. Always provide an accessible label when using icon buttons.
20
20
  *
21
21
  * @tag forge-icon-button
22
22
  *
@@ -16,7 +16,7 @@ declare global {
16
16
  /**
17
17
  * @tag forge-inline-message
18
18
  *
19
- * @summary Inline messages are used to provide feedback to the user about a specific action or state.
19
+ * @summary Inline messages are used to provide feedback to the user about a specific action or state. Use inline messages to communicate information such as errors, warnings, or success messages in a way that is contextual to the content on the page.
20
20
  *
21
21
  * @property {InlineMessageTheme} [theme="info"] - The theme to apply.
22
22
  *
@@ -12,7 +12,7 @@ const styles = ':host{display:block}:host([hidden]){display:none}.forge-inline-m
12
12
  /**
13
13
  * @tag forge-inline-message
14
14
  *
15
- * @summary Inline messages are used to provide feedback to the user about a specific action or state.
15
+ * @summary Inline messages are used to provide feedback to the user about a specific action or state. Use inline messages to communicate information such as errors, warnings, or success messages in a way that is contextual to the content on the page.
16
16
  *
17
17
  * @property {InlineMessageTheme} [theme="info"] - The theme to apply.
18
18
  *
@@ -23,7 +23,7 @@ declare global {
23
23
  /**
24
24
  * @tag forge-label
25
25
  *
26
- * @summary The Forge Label component is used to associate a text label with a compatible Forge component.
26
+ * @summary The Label component is used to associate a text label with a compatible Forge component.
27
27
  *
28
28
  * @cssclass forge-label - Apply to the root element of the label to align the label and associated element horizontally.
29
29
  * @cssclass forge-label-block - Apply to the root element instead of `forge-label` to align the label and associated element vertically.
@@ -15,7 +15,7 @@ const style = ':host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:an
15
15
  /**
16
16
  * @tag forge-label
17
17
  *
18
- * @summary The Forge Label component is used to associate a text label with a compatible Forge component.
18
+ * @summary The Label component is used to associate a text label with a compatible Forge component.
19
19
  *
20
20
  * @cssclass forge-label - Apply to the root element of the label to align the label and associated element horizontally.
21
21
  * @cssclass forge-label-block - Apply to the root element instead of `forge-label` to align the label and associated element vertically.
@@ -19,7 +19,7 @@ declare global {
19
19
  /**
20
20
  * @tag forge-label-value
21
21
  *
22
- * @summary Label-value pairs are used to display a label and a value in a compact format.
22
+ * @summary Label values are used to display a label and value pair in a compact format with the proper typography and spacing styles applied.
23
23
  *
24
24
  * @property {boolean} [empty=false] - If true, the value will be displayed in an alternative emphasized style.
25
25
  * @property {boolean} [ellipsis=false] - If true, the value will be truncated with an ellipsis if it overflows its container.
@@ -12,7 +12,7 @@ const styles = ':host{display:inline-block;min-width:0}:host([hidden]){display:n
12
12
  /**
13
13
  * @tag forge-label-value
14
14
  *
15
- * @summary Label-value pairs are used to display a label and a value in a compact format.
15
+ * @summary Label values are used to display a label and value pair in a compact format with the proper typography and spacing styles applied.
16
16
  *
17
17
  * @property {boolean} [empty=false] - If true, the value will be displayed in an alternative emphasized style.
18
18
  * @property {boolean} [ellipsis=false] - If true, the value will be truncated with an ellipsis if it overflows its container.
@@ -22,8 +22,7 @@ declare const LinearProgressComponent_base: import("..").AbstractConstructor<imp
22
22
  /**
23
23
  * @tag forge-linear-progress
24
24
  *
25
- * @summary
26
- * Linear progress indicators display progress by animating along a linear track in a horizontal direction.
25
+ * @summary Linear progress indicators display progress by animating along a linear track in a horizontal direction. They can be used to show determinate or indeterminate progress.
27
26
  *
28
27
  * @description
29
28
  * Progress indicators inform users about the status of ongoing processes.
@@ -16,8 +16,7 @@ const styles = ':host{--_linear-progress-track-height:var(--forge-linear-progres
16
16
  /**
17
17
  * @tag forge-linear-progress
18
18
  *
19
- * @summary
20
- * Linear progress indicators display progress by animating along a linear track in a horizontal direction.
19
+ * @summary Linear progress indicators display progress by animating along a linear track in a horizontal direction. They can be used to show determinate or indeterminate progress.
21
20
  *
22
21
  * @description
23
22
  * Progress indicators inform users about the status of ongoing processes.
@@ -24,7 +24,7 @@ declare const ListComponent_base: import("../../constants").AbstractConstructor<
24
24
  /**
25
25
  * @tag forge-list
26
26
  *
27
- * @summary Lists are vertical groupings of related content.
27
+ * @summary Lists are vertically oriented groups of related content that allow users to select or view one or more items from a set.
28
28
  *
29
29
  * @csspart root - The component's root container element.
30
30
  *
@@ -18,7 +18,7 @@ const styles = ':host{--_list-navlist-spacing:var(--forge-list-navlist-spacing,
18
18
  /**
19
19
  * @tag forge-list
20
20
  *
21
- * @summary Lists are vertical groupings of related content.
21
+ * @summary Lists are vertically oriented groups of related content that allow users to select or view one or more items from a set.
22
22
  *
23
23
  * @csspart root - The component's root container element.
24
24
  *
@@ -33,7 +33,7 @@ const selectors = {
33
33
  ROOT: `.${classes.ROOT}`,
34
34
  FORM_CONTROL_LIKE: ':is([forge-list-item-interactive],forge-radio,forge-checkbox,forge-switch,input[type=checkbox],input[type=radio]):is([slot=start],[slot=end],[slot=leading],[slot=trailing]):not([forge-ignore])',
35
35
  BUTTON_LIKE: ':is(button,[role=button][tabindex]:not([tabindex=-1]),[forge-list-item-interactive]):not([forge-ignore])',
36
- IGNORE: '[forge-ignore],[data-forge-ignore],[slot="additional-content"]',
36
+ IGNORE: '[forge-ignore],[data-forge-ignore],[slot="additional-content"],forge-menu *',
37
37
  INTERNAL_ANCHOR: `#${ids.INTERNAL_ANCHOR}`,
38
38
  SLOTTED_START_END: ':is([slot=start],[slot=end],[slot=leading],[slot=trailing])'
39
39
  };
@@ -7,6 +7,7 @@ import type { IIconComponent } from '../icon';
7
7
  import type { IOverlayOffset, OverlayFlipState, OverlayShiftState } from '../overlay/overlay-constants';
8
8
  import { PositionPlacement } from '../core/utils/position-utils';
9
9
  import { TooltipPlacement, TooltipType } from '../tooltip';
10
+ import type { PopoverAnchorAccessibility } from '../popover/popover-constants';
10
11
  export declare const LIST_DROPDOWN_CONSTANTS: {
11
12
  observedAttributes: {
12
13
  POPUP_CLASSES: string;
@@ -48,7 +49,7 @@ export type ListDropdownOptionBuilder<T = HTMLElement> = (option: IListDropdownO
48
49
  export type ListDropdownHeaderBuilder = () => HTMLElement;
49
50
  export type ListDropdownFooterBuilder = () => HTMLElement;
50
51
  export type ListDropdownOptionGroupBuilder<T = any> = (option: IListDropdownOptionGroup<T>) => HTMLElement | string;
51
- export type ListDropdownTransformCallback = (label: string) => string | HTMLElement;
52
+ export type ListDropdownTransformCallback = (label: string, option?: IListDropdownOption, isSelected?: boolean) => string | HTMLElement;
52
53
  export type ListDropdownIconType = 'font' | 'component';
53
54
  export interface IBaseListDropdownOption<T = any> {
54
55
  value: T;
@@ -121,6 +122,7 @@ export interface IListDropdownConfig<T = any> {
121
122
  footerBuilder?: ListDropdownFooterBuilder;
122
123
  cascade?: boolean;
123
124
  cascadingElementFactory?: (config: IListDropdownCascadingElementFactoryConfig) => HTMLElement;
125
+ anchorAccessibility?: PopoverAnchorAccessibility;
124
126
  }
125
127
  export interface IListDropdownCascadingElementFactoryConfig {
126
128
  index: number;
@@ -147,4 +149,6 @@ export interface ListDropdownTooltipConfig {
147
149
  offset?: number;
148
150
  anchor?: string;
149
151
  anchorElement?: HTMLElement;
152
+ visibilityMode?: ListDropdownTooltipVisibilityMode;
150
153
  }
154
+ export type ListDropdownTooltipVisibilityMode = 'always' | 'overflow-only';