@tylertech/forge 3.8.0-dev.2 → 3.8.0-dev.4

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 (80) hide show
  1. package/custom-elements.json +1725 -928
  2. package/dist/app-bar/forge-app-bar.css +20 -3
  3. package/dist/forge.css +2 -2
  4. package/dist/lib.js +20 -20
  5. package/dist/lib.js.map +4 -4
  6. package/dist/table/forge-table.css +2 -2
  7. package/dist/vscode.css-custom-data.json +94 -84
  8. package/dist/vscode.html-custom-data.json +190 -65
  9. package/esm/app-bar/app-bar/app-bar-constants.d.ts +2 -0
  10. package/esm/app-bar/app-bar/app-bar-constants.js +2 -1
  11. package/esm/app-bar/app-bar/app-bar-core.d.ts +5 -1
  12. package/esm/app-bar/app-bar/app-bar-core.js +10 -0
  13. package/esm/app-bar/app-bar/app-bar.d.ts +9 -1
  14. package/esm/app-bar/app-bar/app-bar.js +15 -2
  15. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  16. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  17. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  18. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  19. package/esm/app-bar/search/app-bar-search.js +1 -1
  20. package/esm/autocomplete/autocomplete-core.js +5 -0
  21. package/esm/avatar/avatar.d.ts +7 -4
  22. package/esm/avatar/avatar.js +10 -6
  23. package/esm/badge/badge.d.ts +7 -3
  24. package/esm/badge/badge.js +9 -4
  25. package/esm/button/button-constants.d.ts +1 -1
  26. package/esm/button/button.js +1 -1
  27. package/esm/card/card.d.ts +7 -3
  28. package/esm/card/card.js +8 -3
  29. package/esm/core/base/base-lit-element.d.ts +9 -0
  30. package/esm/core/base/base-lit-element.js +12 -0
  31. package/esm/core/utils/lit-utils.d.ts +11 -0
  32. package/esm/core/utils/lit-utils.js +31 -0
  33. package/esm/dialog/dialog-adapter.d.ts +0 -1
  34. package/esm/dialog/dialog-adapter.js +4 -39
  35. package/esm/dialog/dialog-constants.d.ts +6 -2
  36. package/esm/dialog/dialog-constants.js +4 -4
  37. package/esm/dialog/dialog-core.d.ts +3 -3
  38. package/esm/dialog/dialog-core.js +8 -7
  39. package/esm/dialog/dialog.d.ts +3 -3
  40. package/esm/dialog/dialog.js +3 -3
  41. package/esm/icon-button/icon-button-constants.d.ts +1 -1
  42. package/esm/icon-button/icon-button.js +1 -1
  43. package/esm/key/key/index.js +2 -2
  44. package/esm/key/key/key.d.ts +7 -2
  45. package/esm/key/key/key.js +10 -3
  46. package/esm/key/key-item/index.js +2 -2
  47. package/esm/key/key-item/key-item.d.ts +7 -2
  48. package/esm/key/key-item/key-item.js +10 -3
  49. package/esm/list-dropdown/list-dropdown-aware-core.d.ts +22 -0
  50. package/esm/list-dropdown/list-dropdown-aware-core.js +30 -0
  51. package/esm/list-dropdown/list-dropdown-aware.d.ts +35 -0
  52. package/esm/list-dropdown/list-dropdown-aware.js +35 -16
  53. package/esm/list-dropdown/list-dropdown-constants.d.ts +22 -3
  54. package/esm/list-dropdown/list-dropdown-constants.js +9 -1
  55. package/esm/list-dropdown/list-dropdown-utils.js +6 -0
  56. package/esm/menu/menu-core.js +2 -0
  57. package/esm/menu/menu.js +1 -0
  58. package/esm/meter/meter/meter.d.ts +7 -2
  59. package/esm/meter/meter/meter.js +10 -3
  60. package/esm/meter/meter-group/index.js +2 -2
  61. package/esm/meter/meter-group/meter-group.d.ts +7 -2
  62. package/esm/meter/meter-group/meter-group.js +10 -4
  63. package/esm/overlay/base/overlay-aware.d.ts +4 -4
  64. package/esm/overlay/base/overlay-aware.js +3 -3
  65. package/esm/select/core/base-select-core.js +5 -0
  66. package/esm/select/select/select.d.ts +25 -1
  67. package/esm/select/select/select.js +26 -1
  68. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  69. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  70. package/package.json +1 -1
  71. package/sass/app-bar/app-bar/_core.scss +0 -1
  72. package/sass/app-bar/app-bar/app-bar.scss +51 -7
  73. package/sass/app-bar/forge-app-bar.scss +41 -11
  74. package/sass/app-bar/search/app-bar-search.scss +3 -0
  75. package/sass/button/button.scss +24 -0
  76. package/sass/core/styles/scrollbar/index.scss +14 -0
  77. package/sass/core/styles/tokens/app-bar/app-bar/_tokens.scss +4 -1
  78. package/sass/icon-button/icon-button.scss +14 -0
  79. package/sass/table/_core.scss +1 -1
  80. package/sass/tabs/tab-bar/tab-bar.scss +24 -0
@@ -12,7 +12,7 @@ import { IconRegistry, ICON_CONSTANTS } from '../../icon';
12
12
  import { tylIconMenu } from '@tylertech/tyler-icons/standard';
13
13
  import { BaseComponent } from '../../core/base/base-component';
14
14
  import { forwardAttributes } from '../../core/utils/reflect-utils';
15
- const template = '<template><forge-icon-button><forge-icon name=\"menu\"></forge-icon></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom\">Menu</forge-tooltip></template>';
15
+ const template = '<template><forge-icon-button theme=\"app-bar\"><forge-icon name=\"menu\"></forge-icon></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom\">Menu</forge-tooltip></template>';
16
16
  /**
17
17
  * @tag forge-app-bar-menu-button
18
18
  *
@@ -14,7 +14,7 @@ import { TooltipComponent } from '../../tooltip';
14
14
  import { AppBarNotificationButtonAdapter } from './app-bar-notification-button-adapter';
15
15
  import { APP_BAR_NOTIFICATION_BUTTON_CONSTANTS } from './app-bar-notification-button-constants';
16
16
  import { AppBarNotificationButtonCore } from './app-bar-notification-button-core';
17
- const template = '<template><forge-icon-button><forge-icon></forge-icon><forge-badge slot=\"badge\"></forge-badge></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom\">Notifications</forge-tooltip></template>';
17
+ const template = '<template><forge-icon-button theme=\"app-bar\"><forge-icon></forge-icon><forge-badge slot=\"badge\"></forge-badge></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom\">Notifications</forge-tooltip></template>';
18
18
  /**
19
19
  * @tag forge-app-bar-notification-button
20
20
  *
@@ -14,7 +14,7 @@ import { defineAvatarComponent } from '../../avatar';
14
14
  import { TooltipComponent } from '../../tooltip';
15
15
  import { BaseComponent } from '../../core/base/base-component';
16
16
  import { PopoverComponent } from '../../popover/popover';
17
- const template = '<template><forge-icon-button><forge-avatar aria-hidden=\"true\"></forge-avatar></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom-end\">View profile</forge-tooltip></template>';
17
+ const template = '<template><forge-icon-button theme=\"app-bar\"><forge-avatar aria-hidden=\"true\"></forge-avatar></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom-end\">View profile</forge-tooltip></template>';
18
18
  /**
19
19
  * @tag forge-app-bar-profile-button
20
20
  *
@@ -13,7 +13,7 @@ import { FocusIndicatorComponent } from '../../focus-indicator';
13
13
  import { IconComponent, IconRegistry } from '../../icon';
14
14
  import { BaseComponent } from '../../core/base/base-component';
15
15
  const template = '<template><div class=\"forge-app-bar-search\" part=\"root\"><slot name=\"start\"><forge-icon name=\"search\" class=\"icon\" part=\"icon\"></forge-icon></slot><slot name=\"input\"></slot><slot></slot><slot name=\"end\"></slot></div></template>';
16
- const styles = ':host{display:block}:host([hidden]){display:none}.forge-app-bar-search{--_app-bar-search-color:var(--forge-app-bar-search-color, currentColor);--_app-bar-search-height:var(--forge-app-bar-search-height, 36px);--_app-bar-search-padding:var(--forge-app-bar-search-padding, 8px);--_app-bar-search-shape:var(--forge-app-bar-search-shape, calc(var(--forge-shape-small, 2px) * var(--forge-shape-factor, 1)));--_app-bar-search-gap:var(--forge-app-bar-search-gap, 4px);--_app-bar-search-input-placeholder-color:var(--forge-app-bar-search-input-placeholder-color, var(--_app-bar-search-color));--_app-bar-search-input-placeholder-opacity:var(--forge-app-bar-search-input-placeholder-opacity, 0.7);--_app-bar-search-background-color:var(--forge-app-bar-search-background-color, var(--_app-bar-search-color));--_app-bar-search-background-color-opacity:var(--forge-app-bar-search-background-color-opacity, 0.08);--_app-bar-search-border-color:var(--forge-app-bar-search-border-color, var(--_app-bar-search-color));--_app-bar-search-border-opacity:var(--forge-app-bar-search-border-opacity, 0.54);--_app-bar-search-border-hover-opacity:var(--forge-app-bar-search-border-hover-opacity, 0.87);--_app-bar-search-transition-duration:var(--forge-app-bar-search-transition-duration, var(--forge-animation-duration-short3, 150ms));--_app-bar-search-transition-timing-function:var(--forge-app-bar-search-transition-timing-function, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-app-bar-search{position:relative;display:flex;align-items:center;flex:1 1 auto;gap:var(--_app-bar-search-gap);height:var(--_app-bar-search-height);width:100%;padding-inline:var(--_app-bar-search-padding);box-sizing:border-box;border-radius:var(--_app-bar-search-shape)}.forge-app-bar-search:hover::after{opacity:var(--_app-bar-search-border-hover-opacity)}.forge-app-bar-search::before{content:\"\";position:absolute;inset:0;pointer-events:none;background-color:var(--_app-bar-search-background-color);opacity:var(--_app-bar-search-background-color-opacity)}.forge-app-bar-search::after{content:\"\";position:absolute;inset:0;pointer-events:none;opacity:var(--_app-bar-search-border-opacity);border-radius:var(--_app-bar-search-shape);outline:1px solid var(--_app-bar-search-border-color);transition-property:opacity;transition-duration:var(--_app-bar-search-transition-duration);transition-timing-function:var(--_app-bar-search-transition-timing-function)}:host([disabled]){cursor:not-allowed}:host([disabled]) .forge-app-bar-search{pointer-events:none;opacity:38%}:host([disabled]) ::slotted(input){pointer-events:none}forge-focus-indicator{--forge-focus-indicator-color:currentColor;--forge-focus-indicator-outward-offset:0px}::slotted(input){-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));font-size:var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1)));font-weight:var(--forge-typography-body2-font-weight,400);line-height:var(--forge-typography-body2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.375)));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);display:block;overflow:hidden;background:0 0;color:currentColor;border:none;width:100%;margin:0;outline:0}::slotted(input)::placeholder{color:currentColor;opacity:var(--_app-bar-search-input-placeholder-opacity)}';
16
+ const styles = ':host{display:block;color:var(--_app-bar-theme-foreground)}:host([hidden]){display:none}.forge-app-bar-search{--_app-bar-search-color:var(--forge-app-bar-search-color, currentColor);--_app-bar-search-height:var(--forge-app-bar-search-height, 36px);--_app-bar-search-padding:var(--forge-app-bar-search-padding, 8px);--_app-bar-search-shape:var(--forge-app-bar-search-shape, calc(var(--forge-shape-small, 2px) * var(--forge-shape-factor, 1)));--_app-bar-search-gap:var(--forge-app-bar-search-gap, 4px);--_app-bar-search-input-placeholder-color:var(--forge-app-bar-search-input-placeholder-color, var(--_app-bar-search-color));--_app-bar-search-input-placeholder-opacity:var(--forge-app-bar-search-input-placeholder-opacity, 0.7);--_app-bar-search-background-color:var(--forge-app-bar-search-background-color, var(--_app-bar-search-color));--_app-bar-search-background-color-opacity:var(--forge-app-bar-search-background-color-opacity, 0.08);--_app-bar-search-border-color:var(--forge-app-bar-search-border-color, var(--_app-bar-search-color));--_app-bar-search-border-opacity:var(--forge-app-bar-search-border-opacity, 0.54);--_app-bar-search-border-hover-opacity:var(--forge-app-bar-search-border-hover-opacity, 0.87);--_app-bar-search-transition-duration:var(--forge-app-bar-search-transition-duration, var(--forge-animation-duration-short3, 150ms));--_app-bar-search-transition-timing-function:var(--forge-app-bar-search-transition-timing-function, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-app-bar-search{position:relative;display:flex;align-items:center;flex:1 1 auto;gap:var(--_app-bar-search-gap);height:var(--_app-bar-search-height);width:100%;padding-inline:var(--_app-bar-search-padding);box-sizing:border-box;border-radius:var(--_app-bar-search-shape)}.forge-app-bar-search:hover::after{opacity:var(--_app-bar-search-border-hover-opacity)}.forge-app-bar-search::before{content:\"\";position:absolute;inset:0;pointer-events:none;background-color:var(--_app-bar-search-background-color);opacity:var(--_app-bar-search-background-color-opacity)}.forge-app-bar-search::after{content:\"\";position:absolute;inset:0;pointer-events:none;opacity:var(--_app-bar-search-border-opacity);border-radius:var(--_app-bar-search-shape);outline:1px solid var(--_app-bar-search-border-color);transition-property:opacity;transition-duration:var(--_app-bar-search-transition-duration);transition-timing-function:var(--_app-bar-search-transition-timing-function)}:host([disabled]){cursor:not-allowed}:host([disabled]) .forge-app-bar-search{pointer-events:none;opacity:38%}:host([disabled]) ::slotted(input){pointer-events:none}forge-focus-indicator{--forge-focus-indicator-color:currentColor;--forge-focus-indicator-outward-offset:0px}::slotted(input){-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));font-size:var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1)));font-weight:var(--forge-typography-body2-font-weight,400);line-height:var(--forge-typography-body2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.375)));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);display:block;overflow:hidden;background:0 0;color:currentColor;border:none;width:100%;margin:0;outline:0}::slotted(input)::placeholder{color:currentColor;opacity:var(--_app-bar-search-input-placeholder-opacity)}';
17
17
  /**
18
18
  * @tag forge-app-bar-search
19
19
  *
@@ -374,6 +374,11 @@ export class AutocompleteCore extends ListDropdownAwareCore {
374
374
  wrapOptionText: this._wrapOptionText,
375
375
  observeScroll: this._observeScroll,
376
376
  observeScrollThreshold: this._observeScrollThreshold,
377
+ popupPlacement: this._popoverPlacement,
378
+ popupOffset: this._popoverOffset,
379
+ popupFlip: this._popoverFlip,
380
+ popupShift: this._popoverShift,
381
+ popupFallbackPlacements: this._popoverFallbackPlacements,
377
382
  scrollEndListener: this._dropdownScrollEndListener,
378
383
  activeChangeCallback: this._activeChangeListener,
379
384
  targetWidthCallback: this._targetWidthCallback,
@@ -3,8 +3,10 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { LitElement, PropertyValues, TemplateResult } from 'lit';
7
- export interface IAvatarComponent extends LitElement {
6
+ import { PropertyValues, TemplateResult } from 'lit';
7
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
8
+ import { BaseLitElement } from '../core/base/base-lit-element';
9
+ export interface IAvatarComponent extends BaseLitElement {
8
10
  text: string;
9
11
  letterCount: number;
10
12
  imageUrl: string;
@@ -33,8 +35,10 @@ export declare const AVATAR_TAG_NAME: keyof HTMLElementTagNameMap;
33
35
  *
34
36
  * @cssclass forge-avatar - The avatar class _(required)_.
35
37
  */
36
- export declare class AvatarComponent extends LitElement implements IAvatarComponent {
38
+ export declare class AvatarComponent extends BaseLitElement implements IAvatarComponent {
37
39
  static styles: import("lit").CSSResult;
40
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
41
+ static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
38
42
  /**
39
43
  * The text to display in the avatar.
40
44
  * @default ''
@@ -43,7 +47,6 @@ export declare class AvatarComponent extends LitElement implements IAvatarCompon
43
47
  text: string;
44
48
  /**
45
49
  * Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used.
46
- * @default 2
47
50
  * @attribute letter-count
48
51
  */
49
52
  letterCount: number;
@@ -3,12 +3,14 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
+ var _a;
6
7
  import { __decorate } from "tslib";
7
- import { LitElement, html, nothing, unsafeCSS } from 'lit';
8
+ import { html, nothing, unsafeCSS } from 'lit';
8
9
  import { customElement, property, state } from 'lit/decorators.js';
9
10
  import { styleMap } from 'lit/directives/style-map.js';
10
11
  import { classMap } from 'lit/directives/class-map.js';
11
- import { AVATAR_CONSTANTS } from './avatar-constants';
12
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
13
+ import { BaseLitElement } from '../core/base/base-lit-element';
12
14
  const styles = ':host{display:inline-block}:host([hidden]){display:none}.forge-avatar{--_avatar-size:var(--forge-avatar-size, 40px);--_avatar-background:var(--forge-avatar-background, var(--forge-theme-tertiary, #3d5afe));--_avatar-color:var(--forge-avatar-color, var(--forge-theme-on-tertiary, #ffffff));--_avatar-transition-duration:var(--forge-avatar-transition-duration, var(--forge-animation-duration-short4, 200ms));--_avatar-transition-timing:var(--forge-avatar-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_avatar-shape:var(--forge-avatar-shape, calc(var(--forge-shape-round, 50%) * var(--forge-shape-factor, 1)))}.forge-avatar{display:flex;align-items:center;justify-content:center;overflow:hidden;transition:height var(--_avatar-transition-duration) var(--_avatar-transition-timing),width var(--_avatar-transition-duration) var(--_avatar-transition-timing);border-radius:var(--_avatar-shape);box-sizing:border-box;width:var(--_avatar-size);height:var(--_avatar-size);background-color:var(--_avatar-background);background-position:center;background-repeat:no-repeat;background-size:cover;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-subheading2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-subheading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-font-size-scale, 1)));font-weight:var(--forge-typography-subheading2-font-weight,400);line-height:var(--forge-typography-subheading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-subheading2-letter-spacing, normal);text-transform:var(--forge-typography-subheading2-text-transform,inherit);text-decoration:var(--forge-typography-subheading2-text-decoration,inherit);color:var(--_avatar-color)}.forge-avatar--image{background-color:inherit}';
13
15
  const charsByLetterCount = (text, count) => {
14
16
  if (!text?.trim()) {
@@ -41,7 +43,7 @@ export const AVATAR_TAG_NAME = 'forge-avatar';
41
43
  *
42
44
  * @cssclass forge-avatar - The avatar class _(required)_.
43
45
  */
44
- let AvatarComponent = class AvatarComponent extends LitElement {
46
+ let AvatarComponent = class AvatarComponent extends BaseLitElement {
45
47
  constructor() {
46
48
  super(...arguments);
47
49
  /**
@@ -52,10 +54,9 @@ let AvatarComponent = class AvatarComponent extends LitElement {
52
54
  this.text = '';
53
55
  /**
54
56
  * Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used.
55
- * @default 2
56
57
  * @attribute letter-count
57
58
  */
58
- this.letterCount = AVATAR_CONSTANTS.numbers.DEFAULT_LETTER_COUNT;
59
+ this.letterCount = 2;
59
60
  /**
60
61
  * The background image URL to use.
61
62
  * @default ''
@@ -75,7 +76,7 @@ let AvatarComponent = class AvatarComponent extends LitElement {
75
76
  part="root"
76
77
  class=${classMap({ 'forge-avatar': true, 'forge-avatar--image': !!this._image })}
77
78
  style=${this._image ? styleMap({ backgroundImage: `url(${this._image.src})` }) : nothing}>
78
- <slot>${this._image ? nothing : charsByLetterCount(this.text, this.letterCount ?? AVATAR_CONSTANTS.numbers.DEFAULT_LETTER_COUNT)}</slot>
79
+ <slot>${this._image ? nothing : charsByLetterCount(this.text, this.letterCount)}</slot>
79
80
  </div>
80
81
  `;
81
82
  }
@@ -91,7 +92,10 @@ let AvatarComponent = class AvatarComponent extends LitElement {
91
92
  }
92
93
  }
93
94
  };
95
+ _a = CUSTOM_ELEMENT_NAME_PROPERTY;
94
96
  AvatarComponent.styles = unsafeCSS(styles);
97
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
98
+ AvatarComponent[_a] = AVATAR_TAG_NAME;
95
99
  __decorate([
96
100
  property()
97
101
  ], AvatarComponent.prototype, "text", void 0);
@@ -3,9 +3,11 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { LitElement, PropertyValues, TemplateResult } from 'lit';
6
+ import { PropertyValues, TemplateResult } from 'lit';
7
7
  import { BadgeTheme } from './badge-constants';
8
- export interface IBadgeComponent extends LitElement {
8
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
9
+ import { BaseLitElement } from '../core/base/base-lit-element';
10
+ export interface IBadgeComponent extends BaseLitElement {
9
11
  dot: boolean;
10
12
  theme: BadgeTheme;
11
13
  strong: boolean;
@@ -42,9 +44,11 @@ export declare const BADGE_TAG_NAME: keyof HTMLElementTagNameMap;
42
44
  * @cssclass forge-badge--dot - Renders the badge as a dot.
43
45
  * @cssclass forge-badge__icon - Styles a child element as an icon.
44
46
  */
45
- export declare class BadgeComponent extends LitElement implements IBadgeComponent {
47
+ export declare class BadgeComponent extends BaseLitElement implements IBadgeComponent {
46
48
  #private;
47
49
  static styles: import("lit").CSSResult;
50
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
51
+ static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
48
52
  constructor();
49
53
  /** Controls whether the badge will be a small dot without any content visible. */
50
54
  dot: boolean;
@@ -3,12 +3,14 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- var _BadgeComponent_internals;
6
+ var _BadgeComponent_internals, _a;
7
7
  import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
8
- import { html, LitElement, unsafeCSS } from 'lit';
8
+ import { html, unsafeCSS } from 'lit';
9
9
  import { customElement, property } from 'lit/decorators.js';
10
+ import { toggleState } from '../core/utils/utils';
11
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
12
+ import { BaseLitElement } from '../core/base/base-lit-element';
10
13
  const styles = ':host{display:flex;box-sizing:border-box}:host([hidden]){display:none}.forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary, #ffc107));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary, #000000));--_badge-shape:var(--forge-badge-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_badge-height:var(--forge-badge-height, 20px);--_badge-min-width:var(--forge-badge-min-width, 0);--_badge-max-width:var(--forge-badge-max-width, auto);--_badge-padding-inline:var(--forge-badge-padding-inline, var(--forge-spacing-xsmall, 8px));--_badge-padding-block:var(--forge-badge-padding-block, 0);--_badge-border-width:var(--forge-badge-border-width, var(--forge-border-thin, 1px));--_badge-border-style:var(--forge-badge-border-style, none);--_badge-border-color:var(--forge-badge-border-color, var(--_badge-color));--_badge-gap:var(--forge-badge-gap, var(--forge-spacing-xsmall, 8px));--_badge-font-weight:var(--forge-badge-font-weight, bold);--_badge-dot-size:var(--forge-badge-dot-size, 8px);--_badge-dot-height:var(--forge-badge-dot-height, var(--_badge-dot-size));--_badge-dot-width:var(--forge-badge-dot-width, var(--_badge-dot-size));--_badge-dot-padding:var(--forge-badge-dot-padding, 0);--_badge-transition-duration:var(--forge-badge-transition-duration, var(--forge-animation-duration-short4, 200ms));--_badge-transition-easing:var(--forge-badge-transition-easing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)))}.forge-badge{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label1-font-weight,400);line-height:var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label1-text-transform,inherit);text-decoration:var(--forge-typography-label1-text-decoration,inherit);background:var(--_badge-background);color:var(--_badge-color);height:var(--_badge-height);min-width:var(--_badge-min-width);max-width:var(--_badge-max-width);border-width:var(--_badge-border-width);border-style:var(--_badge-border-style);border-color:var(--_badge-border-color);display:inline-flex;align-items:center;gap:var(--_badge-gap);border-radius:var(--_badge-shape);padding-inline:var(--_badge-padding-inline);padding-block:var(--_badge-padding-block);overflow:hidden;box-sizing:border-box;pointer-events:none;transition:transform var(--_badge-transition-duration) var(--_badge-transition-easing);font-weight:var(--_badge-font-weight);text-overflow:ellipsis;white-space:nowrap}.forge-badge .content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}::slotted(:is([slot=start],[slot=end])){font-size:inherit}:host(:where([hide],:state(hidden))) .forge-badge{transform:scale(0)}:host(:where([dot],:state(dot))) .forge-badge{--_badge-height:var(--_badge-dot-height);--_badge-min-width:var(--forge-badge-min-width, auto);padding:var(--_badge-dot-padding);width:var(--_badge-dot-width)}:host(:where([dot],:state(dot))) .content>slot{display:none}:host([theme=primary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-primary-container, #d1d5ed));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-primary-container, #222c62))}:host(:where([strong],:state(strong))[theme=primary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-primary, #3f51b5));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-primary, #ffffff))}:host([theme=secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary-container, #fff0c3));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary-container, #8a6804))}:host(:where([strong],:state(strong))[theme=secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary, #ffc107));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary, #000000))}:host([theme=tertiary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-tertiary-container, #d0d7ff));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-tertiary-container, #213189))}:host(:where([strong],:state(strong))[theme=tertiary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-tertiary, #3d5afe));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=success]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-success-container, #cde0ce));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-success-container, #19441b))}:host(:where([strong],:state(strong))[theme=success]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-success, #2e7d32));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-success, #ffffff))}:host([theme=warning]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-warning-container, #f4d3c2));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-warning-container, #712700))}:host(:where([strong],:state(strong))[theme=warning]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-warning, #d14900));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-warning, #ffffff))}:host(:not(:where([strong],:state(strong))):is([theme=error],[theme=danger])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-error-container-low, #f6e0e4));--_badge-color:var(--forge-badge-color, var(--forge-theme-error, #b00020))}:host(:where([strong],:state(strong)):is([theme=error],[theme=danger])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-error, #b00020));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-error, #ffffff))}:host(:not(:where([strong],:state(strong))):is([theme=info],[theme=info-primary])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-info-container, #c7daf0));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-info-container, #0b3768))}:host(:where([strong],:state(strong)):is([theme=info],[theme=info-primary])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-info, #1565c0));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-info, #ffffff))}:host(:not(:where([strong],:state(strong)))[theme=info-secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-surface-container-low, #ebebeb));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-surface-container-low, #000000))}:host(:where([strong],:state(strong))[theme=info-secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-surface-inverse, #333333));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-surface-inverse, #ffffff))}';
11
- import { toggleState } from '../core';
12
14
  export const BADGE_TAG_NAME = 'forge-badge';
13
15
  /**
14
16
  * @tag forge-badge
@@ -35,7 +37,7 @@ export const BADGE_TAG_NAME = 'forge-badge';
35
37
  * @cssclass forge-badge--dot - Renders the badge as a dot.
36
38
  * @cssclass forge-badge__icon - Styles a child element as an icon.
37
39
  */
38
- let BadgeComponent = class BadgeComponent extends LitElement {
40
+ let BadgeComponent = class BadgeComponent extends BaseLitElement {
39
41
  constructor() {
40
42
  super();
41
43
  _BadgeComponent_internals.set(this, void 0);
@@ -73,7 +75,10 @@ let BadgeComponent = class BadgeComponent extends LitElement {
73
75
  }
74
76
  };
75
77
  _BadgeComponent_internals = new WeakMap();
78
+ _a = CUSTOM_ELEMENT_NAME_PROPERTY;
76
79
  BadgeComponent.styles = unsafeCSS(styles);
80
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
81
+ BadgeComponent[_a] = BADGE_TAG_NAME;
77
82
  __decorate([
78
83
  property({ type: Boolean, reflect: true })
79
84
  ], BadgeComponent.prototype, "dot", void 0);
@@ -20,4 +20,4 @@ export declare const BUTTON_CONSTANTS: {
20
20
  };
21
21
  };
22
22
  export type ButtonVariant = 'text' | 'outlined' | 'tonal' | 'filled' | 'raised' | 'link';
23
- export type ButtonTheme = Theme;
23
+ export type ButtonTheme = Theme | 'app-bar';
@@ -14,7 +14,7 @@ import { BUTTON_CONSTANTS } from './button-constants';
14
14
  import { ButtonCore } from './button-core';
15
15
  import { BASE_BUTTON_CONSTANTS } from './base/base-button-constants';
16
16
  const template = '<template><div class=\"forge-button\" part=\"root\"><slot name=\"start\"></slot><slot></slot><slot name=\"end\"></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
- const styles = ':host{--_button-display:var(--forge-button-display, inline-grid);--_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed)}:host{display:var(--_button-display);position:relative;outline:0;vertical-align:middle;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}.forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));--_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));--_button-disabled-color:var(--forge-button-disabled-color, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, var(--forge-spacing-medium, 16px));--_button-justify:var(--forge-button-justify, center);--_button-shape:var(--forge-button-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_button-height:var(--forge-button-height, 36px);--_button-min-width:var(--forge-button-min-width, 64px);--_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));--_button-border-width:var(--forge-button-border-width, medium);--_button-border-style:var(--forge-button-border-style, none);--_button-border-color:var(--forge-button-border-color, currentColor);--_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));--_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));--_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));--_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));--_button-padding-block:var(--forge-button-padding-block, var(--_button-0));--_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));--_button-background:var(--forge-button-background, transparent);--_button-hover-background:var(--forge-button-hover-background, var(--_button-background));--_button-active-background:var(--forge-button-active-background, var(--_button-background));--_button-color:var(--forge-button-color, var(--_button-text-color));--_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));--_button-shadow:var(--forge-button-shadow, none);--_button-hover-shadow:var(--forge-button-hover-shadow, none);--_button-active-shadow:var(--forge-button-active-shadow, none);--_button-cursor:var(--forge-button-cursor, pointer);--_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-text-padding-inline:var(--forge-button-text-padding-inline, var(--forge-spacing-xsmall, 8px));--_button-outlined-background:var(--forge-button-outlined-background, transparent);--_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));--_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));--_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);--_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));--_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-primary-container, #222c62));--_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));--_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));--_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));--_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));--_button-raised-background:var(--forge-button-raised-background, var(--_button-primary-color));--_button-raised-disabled-background:var(--forge-button-raised-disabled-background, var(--_button-disabled-color));--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-primary, #ffffff));--_button-raised-disabled-color:var(--forge-button-raised-disabled-color, var(--_button-disabled-text-color));--_button-raised-shadow:var(--forge-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));--_button-raised-hover-shadow:var(--forge-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));--_button-raised-active-shadow:var(--forge-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));--_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);--_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));--_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);--_button-link-height:var(--forge-button-link-height, auto);--_button-link-padding:var(--forge-button-link-padding, 0);--_button-link-line-height:var(--forge-button-link-line-height, normal);--_button-link-width:var(--forge-button-link-width, auto);--_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);--_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);--_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));--_button-disabled-background:var(--forge-button-disabled-background, transparent);--_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));--_button-disabled-shadow:var(--forge-button-disabled-shadow, none);--_button-dense-height:var(--forge-button-dense-height, 24px);--_button-pill-shape:var(--forge-button-pill-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));--_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);--_button-text-focus-indicator-offset:var(--forge-button-text-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-link-focus-indicator-offset, 2px);--_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);position:relative;display:var(--_button-display);grid-auto-flow:column;align-items:center;justify-content:var(--_button-justify);gap:var(--_button-spacing);z-index:0;box-sizing:border-box;min-inline-size:var(--_button-min-width);height:var(--_button-height);inline-size:100%;border-width:var(--_button-border-width);border-style:var(--_button-border-style);border-color:var(--_button-border-color);border-start-start-radius:var(--_button-shape-start-start-radius);border-start-end-radius:var(--_button-shape-start-end-radius);border-end-start-radius:var(--_button-shape-end-start-radius);border-end-end-radius:var(--_button-shape-end-end-radius);padding-block:var(--_button-padding-block);padding-inline:var(--_button-padding-inline);box-shadow:var(--_button-shadow);outline:0;user-select:none;-webkit-appearance:none;vertical-align:middle;text-decoration:none;white-space:nowrap;background:var(--_button-background);color:var(--_button-color);cursor:var(--_button-cursor);transition-property:box-shadow,background;transition-duration:var(--_button-transition-duration);transition-timing-function:var(--_button-transition-timing)}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}.forge-button:active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}.forge-button ::slotted(:is([slot=start],[slot=end])){font-size:var(--_button-icon-size)}.with-anchor{display:flex;justify-content:stretch;align-items:stretch;padding:0}::slotted(a){display:flex;align-items:center;justify-content:center;gap:var(--_button-spacing);width:100%;padding:var(--_button-padding);color:var(--_button-color);outline:0;border-radius:var(--_button-shape);text-decoration:none;--forge-icon-font-size:var(--_button-icon-size)}:host([variant=link]) ::slotted(a){position:relative;inset:auto}forge-state-layer{--forge-state-layer-color:var(--_button-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_button-primary-color);--forge-focus-indicator-outward-offset:var(--_button-focus-indicator-offset)}:host([theme=secondary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-secondary, #000000))}:host([theme=secondary][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-secondary, #000000))}:host([theme=secondary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-secondary-container, #fff0c3));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-secondary-container, #8a6804))}:host([theme=tertiary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=tertiary][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=tertiary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-tertiary-container, #d0d7ff));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-tertiary-container, #213189))}:host([theme=success]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-success, #2e7d32))}:host([theme=success][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-success, #ffffff))}:host([theme=success][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-success, #ffffff))}:host([theme=success][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-success-container, #cde0ce));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-success-container, #19441b))}:host([theme=error]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-error, #b00020))}:host([theme=error][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-error, #ffffff))}:host([theme=error][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-error, #ffffff))}:host([theme=error][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-error-container, #ecc2c9));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-error-container, #5f0011))}:host([theme=warning]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-warning, #d14900))}:host([theme=warning][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-warning, #ffffff))}:host([theme=warning][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-warning, #ffffff))}:host([theme=warning][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-warning-container, #f4d3c2));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-warning-container, #712700))}:host([theme=info]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-info, #1565c0))}:host([theme=info][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-info, #ffffff))}:host([theme=info][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-info, #ffffff))}:host([theme=info][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-info-container, #c7daf0));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-info-container, #0b3768))}:host(:where(:not([variant]),[variant=text])) .forge-button{--_button-padding-inline:var(--_button-text-padding-inline)}:host([variant=filled]) .forge-button{--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host([variant=filled]) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([variant=raised]) .forge-button{--_button-background:var(--_button-raised-background);--_button-color:var(--_button-raised-color);--_button-shadow:var(--_button-raised-shadow)}:host([variant=raised]) .forge-button:hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([variant=raised]) .forge-button:active{--_button-shadow:var(--_button-raised-active-shadow)}:host([variant=raised]) forge-state-layer{--forge-state-layer-color:var(--_button-raised-color)}:host([variant=tonal]) .forge-button{--_button-background:var(--_button-tonal-background);--_button-color:var(--_button-tonal-color)}:host([variant=tonal]) forge-state-layer{--forge-state-layer-color:var(--_button-tonal-color)}:host([variant=outlined]) .forge-button{--_button-background:var(--_button-outlined-background);--_button-color:var(--_button-outlined-color);--_button-border-width:var(--_button-outlined-border-width);--_button-border-style:var(--_button-outlined-border-style);--_button-border-color:var(--_button-outlined-border-color)}:host([variant=link]) .forge-button{--_button-color:var(--_button-link-color);--_button-height:var(--_button-link-height);--_button-padding:var(--_button-link-padding);--_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);text-decoration:var(--_button-link-text-decoration);line-height:var(--_button-link-line-height);transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);inline-size:var(--_button-link-width)}:host([variant=link]) .forge-button:hover{text-decoration:var(--_button-link-hover-text-decoration)}:host([variant=link]) .forge-button:active{opacity:var(--_button-link-active-opacity)}:host([full-width]){width:100%}:host([dense]) .forge-button{--_button-height:var(--_button-dense-height)}:host([pill]) .forge-button{--_button-shape:var(--_button-pill-shape);--_button-padding-inline:var(--_button-pill-padding-inline)}:host([pill]) forge-focus-indicator{--forge-focus-indicator-shape:var(--_button-pill-shape)}:host(:not([anchor])[disabled]){cursor:var(--_button-disabled-cursor)}:host(:not([anchor])[disabled]) .forge-button{--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host(:not([anchor])[variant=outlined][disabled]) .forge-button{--_button-border-color:var(--_button-disabled-border-color)}:host(:not([anchor])[variant=tonal][disabled]) .forge-button{--_button-background:var(--_button-tonal-disabled-background);--_button-color:var(--_button-tonal-disabled-color)}:host(:not([anchor])[variant=filled][disabled]) .forge-button{--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host(:not([anchor])[variant=raised][disabled]) .forge-button{--_button-background:var(--_button-raised-disabled-background);--_button-color:var(--_button-raised-disabled-color);--_button-shadow:var(--_button-raised-disabled-shadow)}:host([popover-icon]) .forge-button__popover-icon{transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing)}:host([popover-icon][aria-expanded=true]) .forge-button__popover-icon{rotate:var(--_button-popover-icon-open-rotation)}::slotted(forge-circular-progress){--forge-circular-progress-indicator-color:var(--_button-color);--forge-circular-progress-track-color:transparent;--forge-circular-progress-size:1em}';
17
+ const styles = ':host{--_button-display:var(--forge-button-display, inline-grid);--_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed)}:host{display:var(--_button-display);position:relative;outline:0;vertical-align:middle;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}.forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));--_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));--_button-disabled-color:var(--forge-button-disabled-color, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, var(--forge-spacing-medium, 16px));--_button-justify:var(--forge-button-justify, center);--_button-shape:var(--forge-button-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_button-height:var(--forge-button-height, 36px);--_button-min-width:var(--forge-button-min-width, 64px);--_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));--_button-border-width:var(--forge-button-border-width, medium);--_button-border-style:var(--forge-button-border-style, none);--_button-border-color:var(--forge-button-border-color, currentColor);--_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));--_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));--_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));--_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));--_button-padding-block:var(--forge-button-padding-block, var(--_button-0));--_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));--_button-background:var(--forge-button-background, transparent);--_button-hover-background:var(--forge-button-hover-background, var(--_button-background));--_button-active-background:var(--forge-button-active-background, var(--_button-background));--_button-color:var(--forge-button-color, var(--_button-text-color));--_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));--_button-shadow:var(--forge-button-shadow, none);--_button-hover-shadow:var(--forge-button-hover-shadow, none);--_button-active-shadow:var(--forge-button-active-shadow, none);--_button-cursor:var(--forge-button-cursor, pointer);--_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-text-padding-inline:var(--forge-button-text-padding-inline, var(--forge-spacing-xsmall, 8px));--_button-outlined-background:var(--forge-button-outlined-background, transparent);--_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));--_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));--_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);--_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));--_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-primary-container, #222c62));--_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));--_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));--_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));--_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));--_button-raised-background:var(--forge-button-raised-background, var(--_button-primary-color));--_button-raised-disabled-background:var(--forge-button-raised-disabled-background, var(--_button-disabled-color));--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-primary, #ffffff));--_button-raised-disabled-color:var(--forge-button-raised-disabled-color, var(--_button-disabled-text-color));--_button-raised-shadow:var(--forge-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));--_button-raised-hover-shadow:var(--forge-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));--_button-raised-active-shadow:var(--forge-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));--_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);--_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));--_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);--_button-link-height:var(--forge-button-link-height, auto);--_button-link-padding:var(--forge-button-link-padding, 0);--_button-link-line-height:var(--forge-button-link-line-height, normal);--_button-link-width:var(--forge-button-link-width, auto);--_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);--_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);--_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));--_button-disabled-background:var(--forge-button-disabled-background, transparent);--_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));--_button-disabled-shadow:var(--forge-button-disabled-shadow, none);--_button-dense-height:var(--forge-button-dense-height, 24px);--_button-pill-shape:var(--forge-button-pill-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));--_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);--_button-text-focus-indicator-offset:var(--forge-button-text-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-link-focus-indicator-offset, 2px);--_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);position:relative;display:var(--_button-display);grid-auto-flow:column;align-items:center;justify-content:var(--_button-justify);gap:var(--_button-spacing);z-index:0;box-sizing:border-box;min-inline-size:var(--_button-min-width);height:var(--_button-height);inline-size:100%;border-width:var(--_button-border-width);border-style:var(--_button-border-style);border-color:var(--_button-border-color);border-start-start-radius:var(--_button-shape-start-start-radius);border-start-end-radius:var(--_button-shape-start-end-radius);border-end-start-radius:var(--_button-shape-end-start-radius);border-end-end-radius:var(--_button-shape-end-end-radius);padding-block:var(--_button-padding-block);padding-inline:var(--_button-padding-inline);box-shadow:var(--_button-shadow);outline:0;user-select:none;-webkit-appearance:none;vertical-align:middle;text-decoration:none;white-space:nowrap;background:var(--_button-background);color:var(--_button-color);cursor:var(--_button-cursor);transition-property:box-shadow,background;transition-duration:var(--_button-transition-duration);transition-timing-function:var(--_button-transition-timing)}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}.forge-button:active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}.forge-button ::slotted(:is([slot=start],[slot=end])){font-size:var(--_button-icon-size)}.with-anchor{display:flex;justify-content:stretch;align-items:stretch;padding:0}::slotted(a){display:flex;align-items:center;justify-content:center;gap:var(--_button-spacing);width:100%;padding:var(--_button-padding);color:var(--_button-color);outline:0;border-radius:var(--_button-shape);text-decoration:none;--forge-icon-font-size:var(--_button-icon-size)}:host([variant=link]) ::slotted(a){position:relative;inset:auto}forge-state-layer{--forge-state-layer-color:var(--_button-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_button-primary-color);--forge-focus-indicator-outward-offset:var(--_button-focus-indicator-offset)}:host([theme=secondary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-secondary, #000000))}:host([theme=secondary][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-secondary, #000000))}:host([theme=secondary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-secondary-container, #fff0c3));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-secondary-container, #8a6804))}:host([theme=tertiary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=tertiary][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=tertiary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-tertiary-container, #d0d7ff));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-tertiary-container, #213189))}:host([theme=success]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-success, #2e7d32))}:host([theme=success][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-success, #ffffff))}:host([theme=success][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-success, #ffffff))}:host([theme=success][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-success-container, #cde0ce));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-success-container, #19441b))}:host([theme=error]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-error, #b00020))}:host([theme=error][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-error, #ffffff))}:host([theme=error][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-error, #ffffff))}:host([theme=error][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-error-container, #ecc2c9));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-error-container, #5f0011))}:host([theme=warning]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-warning, #d14900))}:host([theme=warning][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-warning, #ffffff))}:host([theme=warning][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-warning, #ffffff))}:host([theme=warning][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-warning-container, #f4d3c2));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-warning-container, #712700))}:host([theme=info]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-info, #1565c0))}:host([theme=info][variant=filled]) .forge-button{--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-info, #ffffff))}:host([theme=info][variant=raised]) .forge-button{--_button-raised-color:var(--forge-button-raised-color, var(--forge-theme-on-info, #ffffff))}:host([theme=info][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-info-container, #c7daf0));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-info-container, #0b3768))}:host([theme=app-bar]){--forge-button-text-color:var(--_app-bar-theme-foreground);--forge-button-outlined-color:var(--_app-bar-theme-foreground);--forge-button-outlined-border-color:var(--_app-bar-theme-foreground);--forge-button-link-color:var(--_app-bar-theme-foreground)}:host([theme=app-bar]) forge-focus-indicator{--forge-focus-indicator-color:var(--_app-bar-theme-foreground)}:host(:where(:not([variant]),[variant=text])) .forge-button{--_button-padding-inline:var(--_button-text-padding-inline)}:host([variant=filled]) .forge-button{--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host([variant=filled]) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([variant=raised]) .forge-button{--_button-background:var(--_button-raised-background);--_button-color:var(--_button-raised-color);--_button-shadow:var(--_button-raised-shadow)}:host([variant=raised]) .forge-button:hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([variant=raised]) .forge-button:active{--_button-shadow:var(--_button-raised-active-shadow)}:host([variant=raised]) forge-state-layer{--forge-state-layer-color:var(--_button-raised-color)}:host([variant=tonal]) .forge-button{--_button-background:var(--_button-tonal-background);--_button-color:var(--_button-tonal-color)}:host([variant=tonal]) forge-state-layer{--forge-state-layer-color:var(--_button-tonal-color)}:host([variant=outlined]) .forge-button{--_button-background:var(--_button-outlined-background);--_button-color:var(--_button-outlined-color);--_button-border-width:var(--_button-outlined-border-width);--_button-border-style:var(--_button-outlined-border-style);--_button-border-color:var(--_button-outlined-border-color)}:host([variant=link]) .forge-button{--_button-color:var(--_button-link-color);--_button-height:var(--_button-link-height);--_button-padding:var(--_button-link-padding);--_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);text-decoration:var(--_button-link-text-decoration);line-height:var(--_button-link-line-height);transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);inline-size:var(--_button-link-width)}:host([variant=link]) .forge-button:hover{text-decoration:var(--_button-link-hover-text-decoration)}:host([variant=link]) .forge-button:active{opacity:var(--_button-link-active-opacity)}:host([full-width]){width:100%}:host([dense]) .forge-button{--_button-height:var(--_button-dense-height)}:host([pill]) .forge-button{--_button-shape:var(--_button-pill-shape);--_button-padding-inline:var(--_button-pill-padding-inline)}:host([pill]) forge-focus-indicator{--forge-focus-indicator-shape:var(--_button-pill-shape)}:host(:not([anchor])[disabled]){cursor:var(--_button-disabled-cursor)}:host(:not([anchor])[disabled]) .forge-button{--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host(:not([anchor])[variant=outlined][disabled]) .forge-button{--_button-border-color:var(--_button-disabled-border-color)}:host(:not([anchor])[variant=tonal][disabled]) .forge-button{--_button-background:var(--_button-tonal-disabled-background);--_button-color:var(--_button-tonal-disabled-color)}:host(:not([anchor])[variant=filled][disabled]) .forge-button{--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host(:not([anchor])[variant=raised][disabled]) .forge-button{--_button-background:var(--_button-raised-disabled-background);--_button-color:var(--_button-raised-disabled-color);--_button-shadow:var(--_button-raised-disabled-shadow)}:host([popover-icon]) .forge-button__popover-icon{transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing)}:host([popover-icon][aria-expanded=true]) .forge-button__popover-icon{rotate:var(--_button-popover-icon-open-rotation)}::slotted(forge-circular-progress){--forge-circular-progress-indicator-color:var(--_button-color);--forge-circular-progress-track-color:transparent;--forge-circular-progress-size:1em}';
18
18
  /**
19
19
  * @tag forge-button
20
20
  *
@@ -3,8 +3,10 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { LitElement, PropertyValues, TemplateResult } from 'lit';
7
- export interface ICardComponent extends LitElement {
6
+ import { PropertyValues, TemplateResult } from 'lit';
7
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
8
+ import { BaseLitElement } from '../core/base/base-lit-element';
9
+ export interface ICardComponent extends BaseLitElement {
8
10
  raised: boolean;
9
11
  }
10
12
  declare global {
@@ -38,9 +40,11 @@ export declare const CARD_TAG_NAME: keyof HTMLElementTagNameMap;
38
40
  * @cssclass forge-card - The card container element _(required)_.
39
41
  * @cssclass forge-card--raised - The card container element when raised _(required)_.
40
42
  */
41
- export declare class CardComponent extends LitElement implements ICardComponent {
43
+ export declare class CardComponent extends BaseLitElement implements ICardComponent {
42
44
  #private;
43
45
  static styles: import("lit").CSSResult;
46
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
47
+ static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
44
48
  /** Whether the card has elevation or not. */
45
49
  raised: boolean;
46
50
  constructor();
package/esm/card/card.js CHANGED
@@ -3,11 +3,13 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- var _CardComponent_internals;
6
+ var _CardComponent_internals, _a;
7
7
  import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
8
- import { html, LitElement, unsafeCSS } from 'lit';
8
+ import { html, unsafeCSS } from 'lit';
9
9
  import { customElement, property } from 'lit/decorators.js';
10
10
  import { toggleState } from '../core/utils/utils';
11
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
12
+ import { BaseLitElement } from '../core/base/base-lit-element';
11
13
  const styles = ':host{display:block}:host([hidden]){display:none}.forge-card{--_card-background:var(--forge-card-background, var(--forge-theme-surface, #ffffff));--_card-height:var(--forge-card-height, 100%);--_card-width:var(--forge-card-width, 100%);--_card-outline-color:var(--forge-card-outline-color, var(--forge-theme-outline, #e0e0e0));--_card-outline-width:var(--forge-card-outline-width, var(--forge-border-thin, 1px));--_card-outline-style:var(--forge-card-outline-style, solid);--_card-elevation:var(--forge-card-elevation, none);--_card-padding:var(--forge-card-padding, var(--forge-spacing-medium, 16px));--_card-shape:var(--forge-card-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_card-overflow:var(--forge-card-overflow, initial);--_card-raised-elevation:var(--forge-card-raised-elevation, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12));--_card-raised-outline-width:var(--forge-card-raised-outline-width, 0)}.forge-card{background:var(--_card-background);border-color:var(--_card-outline-color);border-width:var(--_card-outline-width);border-style:var(--_card-outline-style);border-radius:var(--_card-shape);box-shadow:var(--_card-elevation);box-sizing:border-box;padding:var(--_card-padding);overflow:var(--_card-overflow);height:var(--_card-height);width:var(--_card-width);-webkit-tap-highlight-color:transparent}:host(:where([raised],:state(raised))) .forge-card{--_card-elevation:var(--_card-raised-elevation);--_card-outline-width:var(--_card-raised-outline-width)}:host([no-padding]) .forge-card{--_card-padding:var(--forge-card-padding, 0)}';
12
14
  export const CARD_TAG_NAME = 'forge-card';
13
15
  /**
@@ -35,7 +37,7 @@ export const CARD_TAG_NAME = 'forge-card';
35
37
  * @cssclass forge-card - The card container element _(required)_.
36
38
  * @cssclass forge-card--raised - The card container element when raised _(required)_.
37
39
  */
38
- let CardComponent = class CardComponent extends LitElement {
40
+ let CardComponent = class CardComponent extends BaseLitElement {
39
41
  constructor() {
40
42
  super();
41
43
  _CardComponent_internals.set(this, void 0);
@@ -53,7 +55,10 @@ let CardComponent = class CardComponent extends LitElement {
53
55
  }
54
56
  };
55
57
  _CardComponent_internals = new WeakMap();
58
+ _a = CUSTOM_ELEMENT_NAME_PROPERTY;
56
59
  CardComponent.styles = unsafeCSS(styles);
60
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
61
+ CardComponent[_a] = CARD_TAG_NAME;
57
62
  __decorate([
58
63
  property({ type: Boolean, reflect: true })
59
64
  ], CardComponent.prototype, "raised", void 0);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { LitElement } from 'lit';
7
+ export declare class BaseLitElement extends LitElement {
8
+ adoptedCallback(): void;
9
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { LitElement } from 'lit';
7
+ import { readoptLitElementStyles } from '../utils/lit-utils';
8
+ export class BaseLitElement extends LitElement {
9
+ adoptedCallback() {
10
+ readoptLitElementStyles(this);
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { LitElement } from 'lit';
7
+ /**
8
+ * Readopts styles for the given element in the context of its new window.
9
+ * @param element The element to readopt styles for.
10
+ */
11
+ export declare function readoptLitElementStyles(element: LitElement): void;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { supportsAdoptingStyleSheets } from 'lit';
7
+ /**
8
+ * Readopts styles for the given element in the context of its new window.
9
+ * @param element The element to readopt styles for.
10
+ */
11
+ export function readoptLitElementStyles(element) {
12
+ const shadowRoot = element.shadowRoot;
13
+ const styles = element.constructor.styles;
14
+ const defaultView = element.ownerDocument.defaultView;
15
+ if (!supportsAdoptingStyleSheets || !shadowRoot || !styles || !defaultView) {
16
+ return;
17
+ }
18
+ if (Array.isArray(styles) && styles.length) {
19
+ const sheets = styles.map(s => {
20
+ const sheet = new defaultView.CSSStyleSheet();
21
+ sheet.replaceSync(s.toString());
22
+ return sheet;
23
+ });
24
+ shadowRoot.adoptedStyleSheets = sheets;
25
+ }
26
+ else {
27
+ const sheet = new defaultView.CSSStyleSheet();
28
+ sheet.replaceSync(styles.toString());
29
+ shadowRoot.adoptedStyleSheets = [sheet];
30
+ }
31
+ }
@@ -63,6 +63,5 @@ export declare class DialogAdapter extends BaseAdapter<IDialogComponent> impleme
63
63
  removeFullscreenListener(listener: (value: boolean) => void): void;
64
64
  setAccessibleLabel(label: string): void;
65
65
  setAccessibleDescription(description: string): void;
66
- private _createOrUpdateVisuallyHiddenElement;
67
66
  private _forceClose;
68
67
  }
@@ -18,6 +18,8 @@ export class DialogAdapter extends BaseAdapter {
18
18
  constructor(component) {
19
19
  super(component);
20
20
  this._dialogElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.DIALOG);
21
+ this._accessibleLabelElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.ACCESSIBLE_LABEL);
22
+ this._accessibleDescriptionElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.ACCESSIBLE_DESCRIPTION);
21
23
  this._surfaceElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.SURFACE);
22
24
  this._moveHandleElement = getShadowElement(component, DIALOG_CONSTANTS.selectors.MOVE_HANDLE);
23
25
  this._backdropElement = getShadowElement(component, BACKDROP_CONSTANTS.elementName);
@@ -143,47 +145,10 @@ export class DialogAdapter extends BaseAdapter {
143
145
  this._fullscreenMediaQuery = undefined;
144
146
  }
145
147
  setAccessibleLabel(label) {
146
- if (label?.trim()) {
147
- this._accessibleLabelElement = this._createOrUpdateVisuallyHiddenElement(DIALOG_CONSTANTS.attributes.ARIA_LABEL_ID, label);
148
- if (this._accessibleLabelElement.isConnected) {
149
- return;
150
- }
151
- this._dialogElement.appendChild(this._accessibleLabelElement);
152
- this._dialogElement.setAttribute('aria-labelledby', this._accessibleLabelElement.id);
153
- }
154
- else if (this._accessibleLabelElement?.isConnected) {
155
- this._dialogElement.removeAttribute('aria-labelledby');
156
- this._accessibleLabelElement?.remove();
157
- this._accessibleLabelElement = undefined;
158
- }
148
+ this._accessibleLabelElement.textContent = label;
159
149
  }
160
150
  setAccessibleDescription(description) {
161
- if (description?.trim()) {
162
- this._accessibleDescriptionElement = this._createOrUpdateVisuallyHiddenElement(DIALOG_CONSTANTS.attributes.ARIA_DESCRIPTION_ID, description);
163
- if (this._accessibleDescriptionElement.isConnected) {
164
- return;
165
- }
166
- this._dialogElement.appendChild(this._accessibleDescriptionElement);
167
- this._dialogElement.setAttribute('aria-describedby', this._accessibleDescriptionElement.id);
168
- }
169
- else if (this._accessibleDescriptionElement?.isConnected) {
170
- this._dialogElement.removeAttribute('aria-describedby');
171
- this._accessibleDescriptionElement?.remove();
172
- this._accessibleDescriptionElement = undefined;
173
- }
174
- }
175
- _createOrUpdateVisuallyHiddenElement(id, text) {
176
- const content = text.trim();
177
- let element = this._dialogElement.querySelector(`#${id}`);
178
- if (element) {
179
- element.textContent = content;
180
- return element;
181
- }
182
- element = document.createElement('div');
183
- element.classList.add('visually-hidden');
184
- element.id = id;
185
- element.textContent = content;
186
- return element;
151
+ this._accessibleDescriptionElement.textContent = description;
187
152
  }
188
153
  _forceClose() {
189
154
  this._surfaceElement.classList.remove(BACKDROP_CONSTANTS.classes.EXITING);
@@ -29,8 +29,6 @@ export declare const DIALOG_CONSTANTS: {
29
29
  MOVING: string;
30
30
  };
31
31
  attributes: {
32
- ARIA_LABEL_ID: string;
33
- ARIA_DESCRIPTION_ID: string;
34
32
  OPEN: string;
35
33
  VISIBLE: string;
36
34
  MODE: string;
@@ -54,6 +52,8 @@ export declare const DIALOG_CONSTANTS: {
54
52
  SURFACE: string;
55
53
  MOVE_HANDLE: string;
56
54
  AUTOFOCUS: string;
55
+ ACCESSIBLE_LABEL: string;
56
+ ACCESSIBLE_DESCRIPTION: string;
57
57
  };
58
58
  events: {
59
59
  BEFORE_CLOSE: string;
@@ -87,6 +87,9 @@ export interface IDialogMoveContext {
87
87
  }
88
88
  export interface IDialogMoveStartEventData extends IDialogMoveEventData {
89
89
  }
90
+ export interface IDialogBeforeCloseEventData {
91
+ reason: DialogCloseReason;
92
+ }
90
93
  export type DialogMode = 'modal' | 'inline-modal' | 'nonmodal';
91
94
  export type DialogType = 'dialog' | 'alertdialog';
92
95
  export type DialogAnimationType = 'none' | 'zoom' | 'fade' | 'slide' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right';
@@ -94,6 +97,7 @@ export type DialogPositionStrategy = 'viewport' | 'container';
94
97
  export type DialogPlacement = 'custom' | 'center' | 'top' | 'right' | 'bottom' | 'left' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
95
98
  export type DialogSizeStrategy = 'content' | 'container-inline' | 'container-block';
96
99
  export type DialogPreset = 'dialog' | 'bottom-sheet' | 'top-sheet' | 'left-sheet' | 'right-sheet';
100
+ export type DialogCloseReason = 'backdrop' | 'escape' | 'submit' | 'dismiss';
97
101
  export declare const hideBackdrop: unique symbol;
98
102
  export declare const showBackdrop: unique symbol;
99
103
  export declare const dialogStack: unique symbol;
@@ -25,9 +25,7 @@ const observedAttributes = {
25
25
  DESCRIPTION: 'description'
26
26
  };
27
27
  const attributes = {
28
- ...observedAttributes,
29
- ARIA_LABEL_ID: 'forge-dialog-label',
30
- ARIA_DESCRIPTION_ID: 'forge-dialog-description'
28
+ ...observedAttributes
31
29
  };
32
30
  const classes = {
33
31
  MOVED: 'moved',
@@ -37,7 +35,9 @@ const selectors = {
37
35
  DIALOG: '.forge-dialog',
38
36
  SURFACE: '.surface',
39
37
  MOVE_HANDLE: '.move-handle',
40
- AUTOFOCUS: ':is([autofocus],[forge-dialog-focus])'
38
+ AUTOFOCUS: ':is([autofocus],[forge-dialog-focus])',
39
+ ACCESSIBLE_LABEL: '#forge-dialog-label',
40
+ ACCESSIBLE_DESCRIPTION: '#forge-dialog-description'
41
41
  };
42
42
  const events = {
43
43
  BEFORE_CLOSE: `${elementName}-before-close`,