@tylertech/forge 3.6.4 → 3.8.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/custom-elements.json +435 -350
  2. package/dist/button/forge-button.css +3 -2
  3. package/dist/dialog/forge-dialog.css +3 -0
  4. package/dist/lib.js +23 -15
  5. package/dist/lib.js.map +4 -4
  6. package/dist/list/forge-list.css +5 -1
  7. package/dist/switch/forge-switch.css +1 -1
  8. package/dist/vscode.css-custom-data.json +36 -20
  9. package/dist/vscode.html-custom-data.json +27 -48
  10. package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +4 -5
  11. package/esm/app-bar/notification-button/app-bar-notification-button.js +6 -3
  12. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  13. package/esm/autocomplete/autocomplete-adapter.js +1 -1
  14. package/esm/avatar/avatar-constants.d.ts +1 -0
  15. package/esm/avatar/avatar-constants.js +1 -0
  16. package/esm/avatar/avatar.d.ts +1 -1
  17. package/esm/avatar/avatar.js +1 -1
  18. package/esm/badge/badge-component-delegate.js +1 -2
  19. package/esm/badge/badge-constants.d.ts +1 -0
  20. package/esm/badge/badge-constants.js +1 -0
  21. package/esm/badge/badge.d.ts +20 -23
  22. package/esm/badge/badge.js +57 -47
  23. package/esm/badge/index.js +3 -3
  24. package/esm/bottom-sheet/bottom-sheet-constants.d.ts +1 -1
  25. package/esm/bottom-sheet/bottom-sheet.d.ts +3 -1
  26. package/esm/button/button.js +1 -1
  27. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.js +1 -2
  28. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +6 -6
  29. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +6 -6
  30. package/esm/card/card-constants.d.ts +1 -0
  31. package/esm/card/card-constants.js +1 -0
  32. package/esm/card/card.d.ts +12 -13
  33. package/esm/card/card.js +25 -34
  34. package/esm/card/index.js +3 -3
  35. package/esm/checkbox/checkbox.d.ts +5 -1
  36. package/esm/chips/chip/chip-constants.d.ts +1 -1
  37. package/esm/core/delegates/base-component-delegate.d.ts +1 -1
  38. package/esm/core/mask/date-input-mask.d.ts +3 -3
  39. package/esm/core/mask/date-input-mask.js +7 -8
  40. package/esm/core/mask/intermediate-time-parser.d.ts +2 -2
  41. package/esm/core/mask/intermediate-time-parser.js +2 -3
  42. package/esm/core/mask/time-input-mask.d.ts +3 -3
  43. package/esm/core/mask/time-input-mask.js +4 -5
  44. package/esm/core/mixins/label/with-label-aware.d.ts +4 -1
  45. package/esm/core/utils/a11y-utils.d.ts +0 -8
  46. package/esm/core/utils/a11y-utils.js +5 -25
  47. package/esm/core/utils/dismissible-stack.d.ts +7 -0
  48. package/esm/core/utils/position-utils.d.ts +1 -2
  49. package/esm/core/utils/position-utils.js +7 -22
  50. package/esm/core/utils/utils.d.ts +14 -0
  51. package/esm/core/utils/utils.js +44 -1
  52. package/esm/date-picker/base/base-date-picker-constants.d.ts +2 -2
  53. package/esm/deprecated/button/deprecated-button.js +1 -1
  54. package/esm/dialog/dialog-core.js +2 -2
  55. package/esm/dialog/dialog.d.ts +2 -0
  56. package/esm/dialog/dialog.js +1 -1
  57. package/esm/expansion-panel/expansion-panel-adapter.d.ts +31 -0
  58. package/esm/expansion-panel/expansion-panel-adapter.js +60 -1
  59. package/esm/expansion-panel/expansion-panel-constants.d.ts +4 -0
  60. package/esm/expansion-panel/expansion-panel-constants.js +4 -1
  61. package/esm/expansion-panel/expansion-panel-core.d.ts +13 -1
  62. package/esm/expansion-panel/expansion-panel-core.js +63 -1
  63. package/esm/expansion-panel/expansion-panel.d.ts +9 -0
  64. package/esm/expansion-panel/expansion-panel.js +14 -0
  65. package/esm/field/base/base-field.d.ts +1 -0
  66. package/esm/field/base/base-field.js +1 -0
  67. package/esm/field/field-constants.d.ts +1 -0
  68. package/esm/field/field-constants.js +1 -0
  69. package/esm/field/field.d.ts +1 -0
  70. package/esm/field/field.js +3 -2
  71. package/esm/floating-action-button/floating-action-button-constants.d.ts +1 -1
  72. package/esm/icon/icon-constants.d.ts +1 -1
  73. package/esm/icon/icon-registry.d.ts +6 -0
  74. package/esm/icon-button/icon-button-constants.d.ts +1 -1
  75. package/esm/label/label-adapter.js +1 -1
  76. package/esm/list/list-item/list-item.js +1 -1
  77. package/esm/list-dropdown/list-dropdown-constants.d.ts +11 -0
  78. package/esm/list-dropdown/list-dropdown-utils.js +18 -0
  79. package/esm/menu/menu-constants.d.ts +0 -1
  80. package/esm/menu/menu-constants.js +1 -2
  81. package/esm/menu/menu-core.js +1 -1
  82. package/esm/menu/menu.js +2 -1
  83. package/esm/meter/meter/meter.js +2 -1
  84. package/esm/meter/meter-group/meter-group.js +2 -1
  85. package/esm/overlay/base/base-overlay-core.d.ts +3 -3
  86. package/esm/overlay/base/base-overlay.d.ts +3 -3
  87. package/esm/overlay/base/base-overlay.js +11 -1
  88. package/esm/overlay/base/overlay-aware-core.d.ts +3 -3
  89. package/esm/overlay/base/overlay-aware-core.js +2 -1
  90. package/esm/overlay/overlay-adapter.d.ts +2 -2
  91. package/esm/overlay/overlay-adapter.js +6 -14
  92. package/esm/overlay/overlay-constants.d.ts +2 -5
  93. package/esm/overlay/overlay-constants.js +2 -23
  94. package/esm/overlay/overlay-core.d.ts +3 -3
  95. package/esm/overlay/overlay-core.js +13 -3
  96. package/esm/overlay/overlay.d.ts +2 -2
  97. package/esm/overlay/overlay.js +2 -2
  98. package/esm/popover/popover-adapter.js +2 -2
  99. package/esm/popover/popover.js +1 -1
  100. package/esm/profile-card/profile-card-core.js +4 -4
  101. package/esm/radio/core/radio-group-manager.d.ts +2 -1
  102. package/esm/radio/radio/radio.d.ts +1 -0
  103. package/esm/select/core/base-select-adapter.js +2 -1
  104. package/esm/select/option/option-constants.d.ts +1 -0
  105. package/esm/select/option/option-constants.js +1 -0
  106. package/esm/select/option/option-core.d.ts +4 -1
  107. package/esm/select/option/option-core.js +8 -0
  108. package/esm/select/option/option.d.ts +5 -1
  109. package/esm/select/option/option.js +8 -1
  110. package/esm/select/select/select-core.js +1 -3
  111. package/esm/select/select/select.d.ts +1 -0
  112. package/esm/select/select/select.js +1 -0
  113. package/esm/split-button/split-button-constants.d.ts +2 -2
  114. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  115. package/esm/stepper/stepper/stepper-constants.d.ts +15 -1
  116. package/esm/switch/switch.d.ts +6 -2
  117. package/esm/switch/switch.js +1 -1
  118. package/esm/table/table-core.js +10 -2
  119. package/esm/table/table-utils.js +8 -4
  120. package/esm/tabs/tab-bar/tab-bar-core.js +3 -0
  121. package/esm/text-field/text-field.d.ts +1 -0
  122. package/esm/text-field/text-field.js +1 -0
  123. package/esm/time-picker/time-picker-adapter.js +0 -1
  124. package/esm/time-picker/time-picker-constants.d.ts +2 -2
  125. package/esm/toast/toast-constants.d.ts +1 -1
  126. package/esm/tooltip/tooltip-constants.d.ts +1 -1
  127. package/package.json +4 -4
  128. package/sass/badge/badge.scss +10 -10
  129. package/sass/button/_core.scss +1 -0
  130. package/sass/calendar/_variables.scss +3 -2
  131. package/sass/card/card.scss +1 -1
  132. package/sass/core/styles/tokens/button/_tokens.scss +2 -2
  133. package/sass/core/styles/tokens/slider/_tokens.scss +10 -4
  134. package/sass/core/styles/tokens/switch/_tokens.scss +1 -1
  135. package/sass/dialog/dialog.scss +8 -0
  136. package/sass/dialog/forge-dialog.scss +4 -0
  137. package/sass/field/_core.scss +1 -1
  138. package/sass/field/field.scss +1 -1
  139. package/sass/linear-progress/linear-progress.scss +7 -3
  140. package/sass/list/list-item/_core.scss +9 -1
  141. package/sass/list/list-item/list-item.scss +5 -1
  142. package/sass/popover/popover.scss +0 -1
  143. package/sass/slider/_core.scss +2 -3
@@ -3,9 +3,9 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { BaseComponent, IBaseComponent } from '../core/base/base-component';
6
+ import { LitElement, PropertyValues, TemplateResult } from 'lit';
7
7
  import { BadgeTheme } from './badge-constants';
8
- export interface IBadgeComponent extends IBaseComponent {
8
+ export interface IBadgeComponent extends LitElement {
9
9
  dot: boolean;
10
10
  theme: BadgeTheme;
11
11
  strong: boolean;
@@ -16,21 +16,10 @@ declare global {
16
16
  'forge-badge': IBadgeComponent;
17
17
  }
18
18
  }
19
+ export declare const BADGE_TAG_NAME: keyof HTMLElementTagNameMap;
19
20
  /**
20
21
  * @tag forge-badge
21
22
  *
22
- * @summary Badges are non-interactive components used to inform status, counts, or as a descriptive label.
23
- *
24
- * @property {boolean} [dot=false] - Controls whether the badge will be a small dot without any content visible.
25
- * @property {BadgeTheme} [theme="default"] - The theme of the badge.
26
- * @property {boolean} [strong=false] - Controls whether the badge will have a stronger visual appearance.
27
- * @property {boolean} [hide=false] - Controls whether the badge is visible.
28
- *
29
- * @attribute {boolean} [dot=false] - When present, the badge will be a small dot without any content visible.
30
- * @attribute {BadgeTheme} [theme="default"] - The theme of the badge.
31
- * @attribute {boolean} [strong=false] - Controls whether the badge will have a stronger visual appearance.
32
- * @attribute {boolean} [hide=false] - Controls whether the badge is visible.
33
- *
34
23
  * @cssproperty --forge-badge-background - The background color.
35
24
  * @cssproperty --forge-badge-color - The text color.
36
25
  * @cssproperty --forge-badge-shape - The shape radius.
@@ -45,18 +34,26 @@ declare global {
45
34
  * @slot start - Content placed before the default content.
46
35
  * @slot end - Content placed after the default content.
47
36
  *
37
+ * @state dot - The badge is rendered as a dot.
38
+ * @state strong - The badge has a stronger visual appearance.
39
+ * @state hide - The badge is hidden.
40
+ *
48
41
  * @cssclass forge-badge - The badge class _(required)_.
49
42
  * @cssclass forge-badge--dot - Renders the badge as a dot.
50
43
  * @cssclass forge-badge__icon - Styles a child element as an icon.
51
44
  */
52
- export declare class BadgeComponent extends BaseComponent implements IBadgeComponent {
45
+ export declare class BadgeComponent extends LitElement implements IBadgeComponent {
46
+ #private;
47
+ static styles: import("lit").CSSResult;
53
48
  constructor();
54
- get dot(): boolean;
55
- set dot(value: boolean);
56
- get theme(): BadgeTheme;
57
- set theme(value: BadgeTheme);
58
- get strong(): boolean;
59
- set strong(value: boolean);
60
- get hide(): boolean;
61
- set hide(value: boolean);
49
+ /** Controls whether the badge will be a small dot without any content visible. */
50
+ dot: boolean;
51
+ /** The theme of the badge. */
52
+ theme: BadgeTheme;
53
+ /** Controls whether the badge will have a stronger visual appearance. */
54
+ strong: boolean;
55
+ /** Controls whether the badge is visible. */
56
+ hide: boolean;
57
+ willUpdate(changedProperties: PropertyValues<this>): void;
58
+ render(): TemplateResult;
62
59
  }
@@ -3,27 +3,16 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { __decorate } from "tslib";
7
- import { attachShadowTemplate, customElement } from '@tylertech/forge-core';
8
- import { BaseComponent } from '../core/base/base-component';
9
- import { BADGE_CONSTANTS } from './badge-constants';
10
- const template = '<template><div class=\"forge-badge\" part=\"root\"><slot name=\"start\"></slot><div class=\"content\" part=\"content\"><slot></slot></div><slot name=\"end\"></slot></div></template>';
11
- 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([hide]) .forge-badge{transform:scale(0)}:host([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([dot]) .forge-badge>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([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([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([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([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([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([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([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([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([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([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([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))}';
6
+ var _BadgeComponent_internals;
7
+ import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
8
+ import { html, LitElement, unsafeCSS } from 'lit';
9
+ import { customElement, property } from 'lit/decorators.js';
10
+ 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
+ export const BADGE_TAG_NAME = 'forge-badge';
12
13
  /**
13
14
  * @tag forge-badge
14
15
  *
15
- * @summary Badges are non-interactive components used to inform status, counts, or as a descriptive label.
16
- *
17
- * @property {boolean} [dot=false] - Controls whether the badge will be a small dot without any content visible.
18
- * @property {BadgeTheme} [theme="default"] - The theme of the badge.
19
- * @property {boolean} [strong=false] - Controls whether the badge will have a stronger visual appearance.
20
- * @property {boolean} [hide=false] - Controls whether the badge is visible.
21
- *
22
- * @attribute {boolean} [dot=false] - When present, the badge will be a small dot without any content visible.
23
- * @attribute {BadgeTheme} [theme="default"] - The theme of the badge.
24
- * @attribute {boolean} [strong=false] - Controls whether the badge will have a stronger visual appearance.
25
- * @attribute {boolean} [hide=false] - Controls whether the badge is visible.
26
- *
27
16
  * @cssproperty --forge-badge-background - The background color.
28
17
  * @cssproperty --forge-badge-color - The text color.
29
18
  * @cssproperty --forge-badge-shape - The shape radius.
@@ -38,45 +27,66 @@ const styles = ':host{display:flex;box-sizing:border-box}:host([hidden]){display
38
27
  * @slot start - Content placed before the default content.
39
28
  * @slot end - Content placed after the default content.
40
29
  *
30
+ * @state dot - The badge is rendered as a dot.
31
+ * @state strong - The badge has a stronger visual appearance.
32
+ * @state hide - The badge is hidden.
33
+ *
41
34
  * @cssclass forge-badge - The badge class _(required)_.
42
35
  * @cssclass forge-badge--dot - Renders the badge as a dot.
43
36
  * @cssclass forge-badge__icon - Styles a child element as an icon.
44
37
  */
45
- let BadgeComponent = class BadgeComponent extends BaseComponent {
38
+ let BadgeComponent = class BadgeComponent extends LitElement {
46
39
  constructor() {
47
40
  super();
48
- attachShadowTemplate(this, template, styles);
49
- }
50
- get dot() {
51
- return this.hasAttribute(BADGE_CONSTANTS.attributes.DOT);
52
- }
53
- set dot(value) {
54
- this.toggleAttribute(BADGE_CONSTANTS.attributes.DOT, value);
55
- }
56
- get theme() {
57
- return this.getAttribute(BADGE_CONSTANTS.attributes.THEME) ?? BADGE_CONSTANTS.defaults.THEME;
41
+ _BadgeComponent_internals.set(this, void 0);
42
+ /** Controls whether the badge will be a small dot without any content visible. */
43
+ this.dot = false;
44
+ /** The theme of the badge. */
45
+ this.theme = 'default';
46
+ /** Controls whether the badge will have a stronger visual appearance. */
47
+ this.strong = false;
48
+ /** Controls whether the badge is visible. */
49
+ this.hide = false;
50
+ __classPrivateFieldSet(this, _BadgeComponent_internals, this.attachInternals(), "f");
58
51
  }
59
- set theme(value) {
60
- this.setAttribute(BADGE_CONSTANTS.attributes.THEME, value);
61
- }
62
- get strong() {
63
- return this.hasAttribute(BADGE_CONSTANTS.attributes.STRONG);
64
- }
65
- set strong(value) {
66
- this.toggleAttribute(BADGE_CONSTANTS.attributes.STRONG, value);
67
- }
68
- get hide() {
69
- return this.hasAttribute(BADGE_CONSTANTS.attributes.HIDE);
70
- }
71
- set hide(value) {
72
- if (this.hasAttribute(BADGE_CONSTANTS.attributes.HIDE) !== value) {
73
- this.toggleAttribute(BADGE_CONSTANTS.attributes.HIDE, value);
52
+ willUpdate(changedProperties) {
53
+ if (changedProperties.has('dot')) {
54
+ toggleState(__classPrivateFieldGet(this, _BadgeComponent_internals, "f"), 'dot', this.dot);
74
55
  }
56
+ if (changedProperties.has('strong')) {
57
+ toggleState(__classPrivateFieldGet(this, _BadgeComponent_internals, "f"), 'strong', this.strong);
58
+ }
59
+ if (changedProperties.has('hide')) {
60
+ toggleState(__classPrivateFieldGet(this, _BadgeComponent_internals, "f"), 'hide', this.hide);
61
+ }
62
+ }
63
+ render() {
64
+ return html `
65
+ <div class="forge-badge" part="root">
66
+ <slot name="start"></slot>
67
+ <div class="content" part="content">
68
+ <slot></slot>
69
+ </div>
70
+ <slot name="end"></slot>
71
+ </div>
72
+ `;
75
73
  }
76
74
  };
75
+ _BadgeComponent_internals = new WeakMap();
76
+ BadgeComponent.styles = unsafeCSS(styles);
77
+ __decorate([
78
+ property({ type: Boolean, reflect: true })
79
+ ], BadgeComponent.prototype, "dot", void 0);
80
+ __decorate([
81
+ property({ type: String, reflect: true })
82
+ ], BadgeComponent.prototype, "theme", void 0);
83
+ __decorate([
84
+ property({ type: Boolean, reflect: true })
85
+ ], BadgeComponent.prototype, "strong", void 0);
86
+ __decorate([
87
+ property({ type: Boolean, reflect: true })
88
+ ], BadgeComponent.prototype, "hide", void 0);
77
89
  BadgeComponent = __decorate([
78
- customElement({
79
- name: BADGE_CONSTANTS.elementName
80
- })
90
+ customElement(BADGE_TAG_NAME)
81
91
  ], BadgeComponent);
82
92
  export { BadgeComponent };
@@ -3,11 +3,11 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { defineCustomElement } from '@tylertech/forge-core';
7
- import { BadgeComponent } from './badge';
6
+ import { tryDefine } from '@tylertech/forge-core';
7
+ import { BADGE_TAG_NAME, BadgeComponent } from './badge';
8
8
  export * from './badge-component-delegate';
9
9
  export * from './badge-constants';
10
10
  export * from './badge';
11
11
  export function defineBadgeComponent() {
12
- defineCustomElement(BadgeComponent);
12
+ tryDefine(BADGE_TAG_NAME, BadgeComponent);
13
13
  }
@@ -40,7 +40,7 @@ export declare const BOTTOM_SHEET_CONSTANTS: {
40
40
  FULLSCREEN: string;
41
41
  };
42
42
  defaults: {
43
- mode: DialogMode;
43
+ mode: BottomSheetMode;
44
44
  };
45
45
  };
46
46
  export interface IBottomSheetDragEventData {
@@ -4,8 +4,10 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { BaseComponent, IBaseComponent } from '../core/base/base-component';
7
+ import { IWithDefaultAria } from '../core/mixins/internals/with-default-aria';
8
+ import { IWithElementInternals } from '../core/mixins/internals/with-element-internals';
7
9
  import { BottomSheetMode, IBottomSheetDragEventData, IBottomSheetDragStartEventData } from './bottom-sheet-constants';
8
- export interface IBottomSheetComponent extends IBaseComponent {
10
+ export interface IBottomSheetComponent extends IBaseComponent, IWithDefaultAria, IWithElementInternals {
9
11
  mode: BottomSheetMode;
10
12
  persistent: boolean;
11
13
  open: boolean;
@@ -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-flex);--_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-padding));--_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);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(: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
  *
@@ -4,7 +4,7 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { getShadowElement } from '@tylertech/forge-core';
7
- import { getFormState, getFormValue, getValidationMessage, internals, isFocusable } from '../../constants';
7
+ import { getFormState, getFormValue, getValidationMessage, internals } from '../../constants';
8
8
  import { BaseAdapter } from '../../core/base/base-adapter';
9
9
  import { BUTTON_TOGGLE_CONSTANTS } from '../button-toggle/button-toggle-constants';
10
10
  import { BUTTON_TOGGLE_GROUP_CONSTANTS } from './button-toggle-group-constants';
@@ -31,7 +31,6 @@ export class ButtonToggleGroupAdapter extends BaseAdapter {
31
31
  toggles.filter(t => t !== selectedToggle).forEach(t => (t.selected = false));
32
32
  }
33
33
  setDisabled(value) {
34
- this._component[isFocusable] = !value;
35
34
  const toggles = this._getButtonToggleElements();
36
35
  toggles.forEach(t => (t.disabled = value));
37
36
  }
@@ -3,15 +3,15 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
+ import { getFormState, getFormValue } from '../../constants';
7
+ import { BaseComponent } from '../../core/base/base-component';
6
8
  import { IWithFormAssociation } from '../../core/mixins/form/with-form-associated';
7
- import { IWithLabelAwareness } from '../../core/mixins/label/with-label-aware';
8
- import { IWithElementInternals } from '../../core/mixins/internals/with-element-internals';
9
9
  import { IWithFormValidity } from '../../core/mixins/form/with-form-validity';
10
- import { BaseComponent } from '../../core/base/base-component';
11
- import { ButtonToggleGroupTheme, IButtonToggleGroupChangeEventData } from './button-toggle-group-constants';
12
- import { getFormState, getFormValue } from '../../constants';
13
- import { FormValue, FormRestoreState, FormRestoreReason } from '../../core/utils/form-utils';
14
10
  import { IWithDefaultAria } from '../../core/mixins/internals/with-default-aria';
11
+ import { IWithElementInternals } from '../../core/mixins/internals/with-element-internals';
12
+ import { IWithLabelAwareness } from '../../core/mixins/label/with-label-aware';
13
+ import { FormRestoreReason, FormRestoreState, FormValue } from '../../core/utils/form-utils';
14
+ import { ButtonToggleGroupTheme, IButtonToggleGroupChangeEventData } from './button-toggle-group-constants';
15
15
  export interface IButtonToggleGroupComponent extends IWithLabelAwareness, IWithFormAssociation, IWithFormValidity, IWithElementInternals, IWithDefaultAria {
16
16
  value: any;
17
17
  outlined: boolean;
@@ -4,18 +4,18 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { __decorate } from "tslib";
7
- import { attachShadowTemplate, coerceBoolean, customElement, coreProperty } from '@tylertech/forge-core';
7
+ import { attachShadowTemplate, coerceBoolean, coreProperty, customElement } from '@tylertech/forge-core';
8
+ import { getFormState, getFormValue, inputType, setDefaultAria } from '../../constants';
9
+ import { BaseComponent } from '../../core/base/base-component';
8
10
  import { WithFormAssociation } from '../../core/mixins/form/with-form-associated';
9
- import { WithLabelAwareness } from '../../core/mixins/label/with-label-aware';
10
- import { WithElementInternals } from '../../core/mixins/internals/with-element-internals';
11
11
  import { WithFormValidity } from '../../core/mixins/form/with-form-validity';
12
- import { BaseComponent } from '../../core/base/base-component';
12
+ import { WithDefaultAria } from '../../core/mixins/internals/with-default-aria';
13
+ import { WithElementInternals } from '../../core/mixins/internals/with-element-internals';
14
+ import { WithLabelAwareness } from '../../core/mixins/label/with-label-aware';
13
15
  import { ButtonToggleComponent } from '../button-toggle/button-toggle';
14
16
  import { ButtonToggleGroupAdapter } from './button-toggle-group-adapter';
15
17
  import { BUTTON_TOGGLE_GROUP_CONSTANTS } from './button-toggle-group-constants';
16
18
  import { ButtonToggleGroupCore } from './button-toggle-group-core';
17
- import { getFormState, getFormValue, inputType, setDefaultAria } from '../../constants';
18
- import { WithDefaultAria } from '../../core/mixins/internals/with-default-aria';
19
19
  const template = '<template><div class=\"forge-button-toggle-group\" part=\"root\"><slot></slot></div></template>';
20
20
  const styles = ':host{--_button-toggle-group-display:var(--forge-button-toggle-group-display, inline-flex)}:host{display:var(--_button-toggle-group-display)}:host([hidden]){display:none}.forge-button-toggle-group{--_button-toggle-group-gap:var(--forge-button-toggle-group-gap, 4px);--_button-toggle-group-padding:var(--forge-button-toggle-group-padding, 4px);--_button-toggle-group-padding-block:var(--forge-button-toggle-group-padding-block, var(--_button-toggle-group-padding));--_button-toggle-group-padding-inline:var(--forge-button-toggle-group-padding-inline, var(--_button-toggle-group-padding));--_button-toggle-group-height:var(--forge-button-toggle-group-height, var(--forge-button-height, 36px));--_button-toggle-group-dense-height:var(--forge-button-toggle-group-dense-height, var(--forge-button-dense-height, 24px));--_button-toggle-group-outline-width:var(--forge-button-toggle-group-outline-width, var(--forge-border-thin, 1px));--_button-toggle-group-outline-style:var(--forge-button-toggle-group-outline-style, solid);--_button-toggle-group-outline-color:var(--forge-button-toggle-group-outline-color, var(--forge-theme-outline-low, #9e9e9e));--_button-toggle-group-outline-color-active:var(--forge-button-toggle-group-outline-color-active, var(--forge-theme-outline-medium, #757575));--_button-toggle-group-shape:var(--forge-button-toggle-group-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_button-toggle-group-shape-start-start:var(--forge-button-toggle-group-shape-start-start, var(--_button-toggle-group-shape));--_button-toggle-group-shape-start-end:var(--forge-button-toggle-group-shape-start-end, var(--_button-toggle-group-shape));--_button-toggle-group-shape-end-start:var(--forge-button-toggle-group-shape-end-start, var(--_button-toggle-group-shape));--_button-toggle-group-shape-end-end:var(--forge-button-toggle-group-shape-end-end, var(--_button-toggle-group-shape));--_button-toggle-group-transition-duration:var(--forge-button-toggle-group-transition-duration, var(--forge-button-toggle-transition-duration, var(--forge-animation-duration-short3, 150ms)));--_button-toggle-group-transition-timing:var(--forge-button-toggle-group-transition-timing, var(--forge-button-toggle-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))))}.forge-button-toggle-group{display:flex;align-items:center;gap:var(--_button-toggle-group-gap);height:var(--_button-toggle-group-height);border-width:var(--_button-toggle-group-outline-width);border-style:var(--_button-toggle-group-outline-style);border-color:var(--_button-toggle-group-outline-color);border-start-start-radius:var(--_button-toggle-group-shape-start-start);border-start-end-radius:var(--_button-toggle-group-shape-start-end);border-end-start-radius:var(--_button-toggle-group-shape-end-start);border-end-end-radius:var(--_button-toggle-group-shape-end-end);padding-block:var(--_button-toggle-group-padding-block);padding-inline:var(--_button-toggle-group-padding-inline);transition-property:border-color;transition-duration:var(--_button-toggle-group-transition-duration);transition-timing-function:var(--_button-toggle-group-transition-timing)}:host(:not([disabled]):not([no-outline])) .forge-button-toggle-group:focus-within,:host(:not([disabled]):not([no-outline])) .forge-button-toggle-group:hover{--_button-toggle-group-outline-color:var(--_button-toggle-group-outline-color-active)}:host([no-outline]) .forge-button-toggle-group{--_button-toggle-group-padding:var(--forge-button-toggle-group-padding, 0);--_button-toggle-group-outline-style:var(--forge-button-toggle-group-outline-style, none)}:host(:is([dense],[density=dense])) .forge-button-toggle-group{--_button-toggle-group-height:var(--_button-toggle-group-dense-height)}:host([vertical]) .forge-button-toggle-group{height:auto;flex-direction:column}:host([vertical]) ::slotted(forge-button-toggle){height:var(--_button-toggle-group-height);width:100%}:host([vertical]) ::slotted(forge-divider:not([vertical])){margin-inline:4px;width:100%}::slotted(forge-divider[vertical]){margin-block:4px}:host([stretch]){display:block}:host([stretch]) .forge-button-toggle-group{width:100%}:host(:not([vertical])[stretch]) ::slotted(forge-button-toggle){flex:1}:host([theme=primary]) ::slotted(forge-button-toggle){--forge-button-toggle-selected-background:var(--forge-theme-primary-container, #d1d5ed);--forge-button-toggle-selected-color:var(--forge-theme-on-primary-container, #222c62);--forge-button-toggle-focus-indicator-color:var(--forge-theme-primary, #3f51b5)}:host([theme=secondary]) ::slotted(forge-button-toggle){--forge-button-toggle-selected-background:var(--forge-theme-secondary-container, #fff0c3);--forge-button-toggle-selected-color:var(--forge-theme-on-secondary-container, #8a6804);--forge-button-toggle-focus-indicator-color:var(--forge-theme-secondary, #ffc107)}:host([theme=success]) ::slotted(forge-button-toggle){--forge-button-toggle-selected-background:var(--forge-theme-success-container, #cde0ce);--forge-button-toggle-selected-color:var(--forge-theme-on-success-container, #19441b);--forge-button-toggle-focus-indicator-color:var(--forge-theme-success, #2e7d32)}:host([theme=error]) ::slotted(forge-button-toggle){--forge-button-toggle-selected-background:var(--forge-theme-error-container, #ecc2c9);--forge-button-toggle-selected-color:var(--forge-theme-on-error-container, #5f0011);--forge-button-toggle-focus-indicator-color:var(--forge-theme-error, #b00020)}:host([theme=warning]) ::slotted(forge-button-toggle){--forge-button-toggle-selected-background:var(--forge-theme-warning-container, #f4d3c2);--forge-button-toggle-selected-color:var(--forge-theme-on-warning-container, #712700);--forge-button-toggle-focus-indicator-color:var(--forge-theme-warning, #d14900)}:host([theme=info]) ::slotted(forge-button-toggle){--forge-button-toggle-selected-background:var(--forge-theme-info-container, #c7daf0);--forge-button-toggle-selected-color:var(--forge-theme-on-info-container, #0b3768);--forge-button-toggle-focus-indicator-color:var(--forge-theme-info, #1565c0)}';
21
21
  /**
@@ -3,6 +3,7 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
+ /** @deprecated - These are internal constants that will be removed/moved in the future. Please avoid using them. */
6
7
  export declare const CARD_CONSTANTS: {
7
8
  elementName: "forge-card";
8
9
  observedAttributes: {
@@ -11,6 +11,7 @@ const observedAttributes = {
11
11
  const attributes = {
12
12
  ...observedAttributes
13
13
  };
14
+ /** @deprecated - These are internal constants that will be removed/moved in the future. Please avoid using them. */
14
15
  export const CARD_CONSTANTS = {
15
16
  elementName,
16
17
  observedAttributes,
@@ -3,8 +3,8 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { BaseComponent, IBaseComponent } from '../core/base/base-component';
7
- export interface ICardComponent extends IBaseComponent {
6
+ import { LitElement, PropertyValues, TemplateResult } from 'lit';
7
+ export interface ICardComponent extends LitElement {
8
8
  raised: boolean;
9
9
  }
10
10
  declare global {
@@ -12,14 +12,10 @@ declare global {
12
12
  'forge-card': ICardComponent;
13
13
  }
14
14
  }
15
+ export declare const CARD_TAG_NAME: keyof HTMLElementTagNameMap;
15
16
  /**
16
17
  * @tag forge-card
17
18
  *
18
- * @summary Cards are used to group related information and actions about a single subject.
19
- *
20
- * @property {boolean} [raised=false] - Whether the card has elevation or not.
21
- *
22
- * @attribute {boolean} [raised=false] - Whether the card has elevation or not.
23
19
  * @attribute {boolean} [no-padding=false] - Removes the default padding from the card.
24
20
  *
25
21
  * @cssproperty --forge-card-background - The background color of the card.
@@ -37,14 +33,17 @@ declare global {
37
33
  *
38
34
  * @csspart root - The root container element.
39
35
  *
36
+ * @state raised - The state of the card when raised.
37
+ *
40
38
  * @cssclass forge-card - The card container element _(required)_.
41
39
  * @cssclass forge-card--raised - The card container element when raised _(required)_.
42
40
  */
43
- export declare class CardComponent extends BaseComponent implements ICardComponent {
44
- static get observedAttributes(): string[];
45
- private _raised;
41
+ export declare class CardComponent extends LitElement implements ICardComponent {
42
+ #private;
43
+ static styles: import("lit").CSSResult;
44
+ /** Whether the card has elevation or not. */
45
+ raised: boolean;
46
46
  constructor();
47
- attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
48
- get raised(): boolean;
49
- set raised(value: boolean);
47
+ willUpdate(changedProperties: PropertyValues<this>): void;
48
+ render(): TemplateResult;
50
49
  }
package/esm/card/card.js CHANGED
@@ -3,20 +3,16 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { __decorate } from "tslib";
7
- import { customElement, attachShadowTemplate, coerceBoolean } from '@tylertech/forge-core';
8
- import { BaseComponent } from '../core/base/base-component';
9
- import { CARD_CONSTANTS } from './card-constants';
10
- const template = '<template><div class=\"forge-card\" part=\"root\"><slot></slot></div></template>';
11
- 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([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)}';
6
+ var _CardComponent_internals;
7
+ import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
8
+ import { html, LitElement, unsafeCSS } from 'lit';
9
+ import { customElement, property } from 'lit/decorators.js';
10
+ import { toggleState } from '../core/utils/utils';
11
+ 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
+ export const CARD_TAG_NAME = 'forge-card';
12
13
  /**
13
14
  * @tag forge-card
14
15
  *
15
- * @summary Cards are used to group related information and actions about a single subject.
16
- *
17
- * @property {boolean} [raised=false] - Whether the card has elevation or not.
18
- *
19
- * @attribute {boolean} [raised=false] - Whether the card has elevation or not.
20
16
  * @attribute {boolean} [no-padding=false] - Removes the default padding from the card.
21
17
  *
22
18
  * @cssproperty --forge-card-background - The background color of the card.
@@ -34,39 +30,34 @@ const styles = ':host{display:block}:host([hidden]){display:none}.forge-card{--_
34
30
  *
35
31
  * @csspart root - The root container element.
36
32
  *
33
+ * @state raised - The state of the card when raised.
34
+ *
37
35
  * @cssclass forge-card - The card container element _(required)_.
38
36
  * @cssclass forge-card--raised - The card container element when raised _(required)_.
39
37
  */
40
- let CardComponent = class CardComponent extends BaseComponent {
41
- static get observedAttributes() {
42
- return Object.values(CARD_CONSTANTS.observedAttributes);
43
- }
38
+ let CardComponent = class CardComponent extends LitElement {
44
39
  constructor() {
45
40
  super();
46
- this._raised = false;
47
- attachShadowTemplate(this, template, styles);
41
+ _CardComponent_internals.set(this, void 0);
42
+ /** Whether the card has elevation or not. */
43
+ this.raised = false; // TODO: remove reflect in v4 in favor of :state
44
+ __classPrivateFieldSet(this, _CardComponent_internals, this.attachInternals(), "f");
48
45
  }
49
- attributeChangedCallback(name, oldValue, newValue) {
50
- switch (name) {
51
- case CARD_CONSTANTS.attributes.RAISED:
52
- this.raised = coerceBoolean(newValue);
53
- break;
46
+ willUpdate(changedProperties) {
47
+ if (changedProperties.has('raised')) {
48
+ toggleState(__classPrivateFieldGet(this, _CardComponent_internals, "f"), 'raised', this.raised);
54
49
  }
55
50
  }
56
- get raised() {
57
- return this._raised;
58
- }
59
- set raised(value) {
60
- value = Boolean(value);
61
- if (this._raised !== value) {
62
- this._raised = value;
63
- this.toggleAttribute(CARD_CONSTANTS.attributes.RAISED, this._raised);
64
- }
51
+ render() {
52
+ return html `<div class="forge-card" part="root"><slot></slot></div>`;
65
53
  }
66
54
  };
55
+ _CardComponent_internals = new WeakMap();
56
+ CardComponent.styles = unsafeCSS(styles);
57
+ __decorate([
58
+ property({ type: Boolean, reflect: true })
59
+ ], CardComponent.prototype, "raised", void 0);
67
60
  CardComponent = __decorate([
68
- customElement({
69
- name: CARD_CONSTANTS.elementName
70
- })
61
+ customElement(CARD_TAG_NAME)
71
62
  ], CardComponent);
72
63
  export { CardComponent };
package/esm/card/index.js CHANGED
@@ -3,10 +3,10 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { defineCustomElement } from '@tylertech/forge-core';
7
- import { CardComponent } from './card';
6
+ import { tryDefine } from '@tylertech/forge-core';
7
+ import { CARD_TAG_NAME, CardComponent } from './card';
8
8
  export * from './card-constants';
9
9
  export * from './card';
10
10
  export function defineCardComponent() {
11
- defineCustomElement(CardComponent);
11
+ tryDefine(CARD_TAG_NAME, CardComponent);
12
12
  }