@tylertech/forge 3.4.1 → 3.5.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 (93) hide show
  1. package/custom-elements.json +1163 -134
  2. package/dist/avatar/forge-avatar.css +0 -1
  3. package/dist/dialog/forge-dialog.css +0 -1
  4. package/dist/divider/forge-divider.css +0 -1
  5. package/dist/label-value/forge-label-value.css +2 -0
  6. package/dist/lib.js +174 -1
  7. package/dist/lib.js.map +4 -4
  8. package/dist/vscode.css-custom-data.json +164 -3
  9. package/dist/vscode.html-custom-data.json +144 -2
  10. package/esm/app-bar/search/app-bar-search.js +1 -1
  11. package/esm/autocomplete/autocomplete-core.js +4 -2
  12. package/esm/autocomplete/autocomplete.js +1 -5
  13. package/esm/avatar/avatar.js +1 -1
  14. package/esm/backdrop/backdrop.js +1 -1
  15. package/esm/button-toggle/button-toggle/button-toggle-core.js +0 -1
  16. package/esm/chips/chip/chip.js +1 -1
  17. package/esm/core/utils/a11y-utils.d.ts +20 -1
  18. package/esm/core/utils/a11y-utils.js +26 -1
  19. package/esm/divider/divider.js +1 -1
  20. package/esm/drawer/drawer/drawer.js +1 -1
  21. package/esm/drawer/mini-drawer/mini-drawer.d.ts +1 -0
  22. package/esm/drawer/mini-drawer/mini-drawer.js +2 -1
  23. package/esm/file-picker/file-picker-adapter.d.ts +2 -0
  24. package/esm/file-picker/file-picker-adapter.js +6 -0
  25. package/esm/file-picker/file-picker-core.js +1 -0
  26. package/esm/icon-button/icon-button.js +1 -1
  27. package/esm/index.d.ts +2 -0
  28. package/esm/index.js +8 -0
  29. package/esm/key/index.d.ts +7 -0
  30. package/esm/key/index.js +7 -0
  31. package/esm/key/key/index.d.ts +7 -0
  32. package/esm/key/key/index.js +11 -0
  33. package/esm/key/key/key.d.ts +30 -0
  34. package/esm/key/key/key.js +43 -0
  35. package/esm/key/key-item/index.d.ts +7 -0
  36. package/esm/key/key-item/index.js +11 -0
  37. package/esm/key/key-item/key-item.d.ts +47 -0
  38. package/esm/key/key-item/key-item.js +86 -0
  39. package/esm/label-value/label-value.js +1 -1
  40. package/esm/linear-progress/linear-progress.js +1 -1
  41. package/esm/list-dropdown/list-dropdown-aware.d.ts +1 -0
  42. package/esm/list-dropdown/list-dropdown-aware.js +11 -0
  43. package/esm/meter/index.d.ts +7 -0
  44. package/esm/meter/index.js +7 -0
  45. package/esm/meter/meter/index.d.ts +7 -0
  46. package/esm/meter/meter/index.js +11 -0
  47. package/esm/meter/meter/meter.d.ts +187 -0
  48. package/esm/meter/meter/meter.js +359 -0
  49. package/esm/meter/meter-group/index.d.ts +7 -0
  50. package/esm/meter/meter-group/index.js +11 -0
  51. package/esm/meter/meter-group/meter-group.d.ts +108 -0
  52. package/esm/meter/meter-group/meter-group.js +198 -0
  53. package/esm/select/select/select.d.ts +3 -1
  54. package/esm/split-view/split-view/split-view.js +1 -1
  55. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  56. package/esm/toolbar/toolbar.d.ts +2 -2
  57. package/esm/toolbar/toolbar.js +3 -3
  58. package/package.json +2 -1
  59. package/sass/avatar/_core.scss +0 -2
  60. package/sass/backdrop/_core.scss +0 -1
  61. package/sass/core/styles/tokens/app-bar/search/_tokens.scss +1 -1
  62. package/sass/core/styles/tokens/drawer/mini/_tokens.scss +1 -0
  63. package/sass/core/styles/tokens/key/key/_tokens.scss +17 -0
  64. package/sass/core/styles/tokens/key/key-item/_tokens.scss +22 -0
  65. package/sass/core/styles/tokens/meter/meter/_tokens.scss +30 -0
  66. package/sass/core/styles/tokens/meter/meter-group/_tokens.scss +26 -0
  67. package/sass/core/styles/typography/index.scss +1 -1
  68. package/sass/divider/_core.scss +0 -1
  69. package/sass/drawer/base/_core.scss +1 -2
  70. package/sass/drawer/drawer/drawer.scss +3 -9
  71. package/sass/drawer/mini-drawer/_core.scss +1 -0
  72. package/sass/icon-button/icon-button.scss +20 -1
  73. package/sass/key/key/_core.scss +20 -0
  74. package/sass/key/key/_token-utils.scss +30 -0
  75. package/sass/key/key/index.scss +6 -0
  76. package/sass/key/key/key.scss +26 -0
  77. package/sass/key/key-item/_core.scss +69 -0
  78. package/sass/key/key-item/_token-utils.scss +30 -0
  79. package/sass/key/key-item/index.scss +6 -0
  80. package/sass/key/key-item/key-item.scss +60 -0
  81. package/sass/label-value/_core.scss +2 -0
  82. package/sass/linear-progress/_core.scss +4 -1
  83. package/sass/meter/meter/_core.scss +206 -0
  84. package/sass/meter/meter/_token-utils.scss +30 -0
  85. package/sass/meter/meter/index.scss +6 -0
  86. package/sass/meter/meter/meter.scss +218 -0
  87. package/sass/meter/meter-group/_core.scss +83 -0
  88. package/sass/meter/meter-group/_token-utils.scss +30 -0
  89. package/sass/meter/meter-group/index.scss +6 -0
  90. package/sass/meter/meter-group/meter-group.scss +111 -0
  91. package/sass/split-view/split-view/_mixins.scss +0 -1
  92. package/sass/split-view/split-view-panel/_mixins.scss +2 -2
  93. package/sass/toolbar/_core.scss +0 -1
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import { LitElement, html, unsafeCSS } from 'lit';
8
+ import { customElement, property, queryAssignedNodes, state } from 'lit/decorators.js';
9
+ import { classMap } from 'lit/directives/class-map.js';
10
+ import { setDefaultAria } from '../../core/utils/a11y-utils';
11
+ const styles = ':host{display:inline}.forge-key-item{--_key-item-icon-color:var(--forge-key-item-icon-color, var(--forge-theme-tertiary, #3d5afe));--_key-item-label-color:var(--forge-key-item-label-color, var(--forge-theme-text-high, rgba(0, 0, 0, 0.87)));--_key-item-value-color:var(--forge-key-item-value-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_key-item-gap:var(--forge-key-item-gap, var(--forge-spacing-xsmall, 8px));--_key-item-icon-size:var(--forge-key-item-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1))}.forge-key-item{-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);box-sizing:border-box;display:grid;grid-template:\"icon label\" \"icon value\";column-gap:var(--_key-item-gap);inline-size:fit-content;line-height:normal}.forge-key-item.inline{grid-template:\"icon label value\";grid-template-columns:auto 1fr auto;align-items:center;inline-size:auto}.forge-key-item.no-value{grid-template:\"icon label\";align-items:center}.forge-key-item.no-value .value{display:none}.forge-key-item:not(.inline,.no-value) .label{padding-block-start:1px}.icon{--forge-icon-size:var(--_key-item-icon-size);grid-area:icon;color:var(--_key-item-icon-color)}.label{grid-area:label;color:var(--_key-item-label-color)}.value{grid-area:value;color:var(--_key-item-value-color)}.default-icon{block-size:calc(var(--_key-item-icon-size) - 1px);inline-size:calc(var(--_key-item-icon-size) - 1px);border-radius:50%;background:currentColor}';
12
+ /**
13
+ * @tag forge-key-item
14
+ *
15
+ * @summary Key items label a chart or data visualization.
16
+ *
17
+ * @slot - The default slot for the label.
18
+ * @slot icon - The icon to display.
19
+ * @slot value - The value to display.
20
+ *
21
+ * @cssproperty --forge-key-item-icon-color - The color of the icon.
22
+ * @cssproperty --forge-key-item-label-color - The color of the label.
23
+ * @cssproperty --forge-key-item-value-color - The color of the value.
24
+ * @cssproperty --forge-key-item-gap - The spacing between the icon and label.
25
+ * @cssproperty --forge-key-item-icon-size - The size of the icon.
26
+ *
27
+ * @csspart root - The root element.
28
+ * @csspart icon - The icon element.
29
+ * @csspart label - The label element.
30
+ * @csspart value - The value element.
31
+ */
32
+ let KeyItemComponent = class KeyItemComponent extends LitElement {
33
+ constructor() {
34
+ super();
35
+ /**
36
+ * Whether the label and value dislay on one line.
37
+ * @default false
38
+ * @attribute
39
+ */
40
+ this.inline = false;
41
+ this._hasValue = false;
42
+ this._internals = this.attachInternals();
43
+ }
44
+ connectedCallback() {
45
+ super.connectedCallback();
46
+ setDefaultAria(this, this._internals, {
47
+ role: 'listitem'
48
+ });
49
+ this._handleSlotChange();
50
+ }
51
+ render() {
52
+ return html `
53
+ <div part="root" class=${classMap({ 'forge-key-item': true, inline: this.inline, 'no-value': !this._hasValue })}>
54
+ <div part="icon" class="icon">
55
+ <slot name="icon">
56
+ <div class="default-icon"></div>
57
+ </slot>
58
+ </div>
59
+ <div part="label" class="label">
60
+ <slot></slot>
61
+ </div>
62
+ <div part="value" class="value" @slotchange=${this._handleSlotChange}>
63
+ <slot name="value"></slot>
64
+ </div>
65
+ </div>
66
+ `;
67
+ }
68
+ _handleSlotChange() {
69
+ const nodes = this._valueNodes.filter(node => !!node.textContent?.trim());
70
+ this._hasValue = !!nodes.length;
71
+ }
72
+ };
73
+ KeyItemComponent.styles = unsafeCSS(styles);
74
+ __decorate([
75
+ property({ type: Boolean })
76
+ ], KeyItemComponent.prototype, "inline", void 0);
77
+ __decorate([
78
+ state()
79
+ ], KeyItemComponent.prototype, "_hasValue", void 0);
80
+ __decorate([
81
+ queryAssignedNodes({ slot: 'value' })
82
+ ], KeyItemComponent.prototype, "_valueNodes", void 0);
83
+ KeyItemComponent = __decorate([
84
+ customElement('forge-key-item')
85
+ ], KeyItemComponent);
86
+ export { KeyItemComponent };
@@ -8,7 +8,7 @@ import { customElement, attachShadowTemplate, coerceBoolean } from '@tylertech/f
8
8
  import { LABEL_VALUE_CONSTANTS } from './label-value-constants';
9
9
  import { BaseComponent } from '../core/base/base-component';
10
10
  const template = '<template><div class=\"forge-label-value\" part=\"root\"><div class=\"icon\" part=\"icon\"><slot name=\"icon\"></slot></div><div class=\"label\" part=\"label\"><slot name=\"label\"></slot></div><div class=\"value\" part=\"value\"><slot name=\"value\"></slot></div></div></template>';
11
- const styles = ':host{display:inline-block;min-width:0}:host([hidden]){display:none}.forge-label-value{--_label-value-align:var(--forge-label-value-align, start);--_label-value-label-spacing:var(--forge-label-value-label-spacing, var(--forge-spacing-xxsmall, 4px));--_label-value-label-block-start-spacing:var(--forge-label-value-label-block-start-spacing, var(--_label-value-label-spacing));--_label-value-label-block-end-spacing:var(--forge-label-value-label-block-end-spacing, var(--_label-value-label-spacing));--_label-value-label-color:var(--forge-label-value-label-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_label-value-icon-spacing:var(--forge-label-value-icon-spacing, var(--forge-spacing-xxsmall, 4px));--_label-value-inline-label-spacing:var(--forge-label-value-inline-label-spacing, var(--forge-spacing-xsmall, 8px));--_label-value-empty-color:var(--forge-label-value-empty-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_label-value-empty-style:var(--forge-label-value-empty-style, italic)}.forge-label-value{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"icon label\" \"icon value\"}.label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .8125)));font-weight:var(--forge-typography-label2-font-weight,400);line-height:var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label2-letter-spacing, .0096153846em);text-transform:var(--forge-typography-label2-text-transform,inherit);text-decoration:var(--forge-typography-label2-text-decoration,inherit);grid-area:label;justify-self:var(--_label-value-align);margin-block-start:var(--_label-value-label-block-start-spacing);margin-block-end:var(--_label-value-label-block-end-spacing);line-height:normal;text-align:var(--_label-value-align);color:var(--_label-value-label-color)}.value{-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);grid-area:value;display:grid;align-items:center;justify-self:var(--_label-value-align);line-height:normal;text-align:var(--_label-value-align)}.icon{display:inline-flex;grid-area:icon}::slotted([slot=icon]){margin-inline-end:var(--_label-value-icon-spacing)}:host(:is([inline],[dense])) .forge-label-value{display:flex;align-items:center}:host(:is([inline],[dense])) .label{margin-block:0;margin-inline-end:var(--_label-value-inline-label-spacing)}:host([ellipsis]) ::slotted([slot=value]){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([empty]) .value{color:var(--_label-value-empty-color);font-style:var(--_label-value-empty-style)}';
11
+ const styles = ':host{display:inline-block;min-width:0}:host([hidden]){display:none}.forge-label-value{--_label-value-align:var(--forge-label-value-align, start);--_label-value-label-spacing:var(--forge-label-value-label-spacing, var(--forge-spacing-xxsmall, 4px));--_label-value-label-block-start-spacing:var(--forge-label-value-label-block-start-spacing, var(--_label-value-label-spacing));--_label-value-label-block-end-spacing:var(--forge-label-value-label-block-end-spacing, var(--_label-value-label-spacing));--_label-value-label-color:var(--forge-label-value-label-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_label-value-icon-spacing:var(--forge-label-value-icon-spacing, var(--forge-spacing-xxsmall, 4px));--_label-value-inline-label-spacing:var(--forge-label-value-inline-label-spacing, var(--forge-spacing-xsmall, 8px));--_label-value-empty-color:var(--forge-label-value-empty-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_label-value-empty-style:var(--forge-label-value-empty-style, italic)}.forge-label-value{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"icon label\" \"icon value\"}.label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .8125)));font-weight:var(--forge-typography-label2-font-weight,400);line-height:var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label2-letter-spacing, .0096153846em);text-transform:var(--forge-typography-label2-text-transform,inherit);text-decoration:var(--forge-typography-label2-text-decoration,inherit);grid-area:label;justify-self:var(--_label-value-align);margin-block-start:var(--_label-value-label-block-start-spacing);margin-block-end:var(--_label-value-label-block-end-spacing);line-height:normal;text-align:var(--_label-value-align);overflow-wrap:anywhere;color:var(--_label-value-label-color)}.value{-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);grid-area:value;display:grid;align-items:center;justify-self:var(--_label-value-align);line-height:normal;text-align:var(--_label-value-align);overflow-wrap:anywhere}.icon{display:inline-flex;grid-area:icon}::slotted([slot=icon]){margin-inline-end:var(--_label-value-icon-spacing)}:host(:is([inline],[dense])) .forge-label-value{display:flex;align-items:center}:host(:is([inline],[dense])) .label{margin-block:0;margin-inline-end:var(--_label-value-inline-label-spacing)}:host([ellipsis]) ::slotted([slot=value]){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([empty]) .value{color:var(--_label-value-empty-color);font-style:var(--_label-value-empty-style)}';
12
12
  /**
13
13
  * @tag forge-label-value
14
14
  *
@@ -12,7 +12,7 @@ import { LinearProgressAdapter } from './linear-progress-adapter';
12
12
  import { LINEAR_PROGRESS_CONSTANTS } from './linear-progress-constants';
13
13
  import { LinearProgressCore } from './linear-progress-core';
14
14
  const template = '<template><div class=\"forge-linear-progress forge-linear-progress--indeterminate\" part=\"progressbar\"><div class=\"dots\"></div><div class=\"track\"></div><div class=\"bar primary-bar\"><div class=\"bar-inner\"></div></div><div class=\"bar secondary-bar\"><div class=\"bar-inner\"></div></div></div></template>';
15
- const styles = ':host{--_linear-progress-track-height:var(--forge-linear-progress-track-height, 4px)}:host{display:block;position:relative;min-inline-size:80px;block-size:var(--_linear-progress-track-height);content-visibility:auto;contain:strict}:host([hidden]){display:none}.forge-linear-progress{--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-tertiary-container, #d0d7ff));--_linear-progress-track-shape:var(--forge-linear-progress-track-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-tertiary, #3d5afe));--_linear-progress-indicator-height:var(--forge-linear-progress-indicator-height, var(--_linear-progress-track-height));--_linear-progress-determinate-duration:var(--forge-linear-progress-determinate-duration, var(--forge-animation-duration-medium1, 250ms));--_linear-progress-determinate-easing:var(--forge-linear-progress-determinate-easing, cubic-bezier(0.4, 0, 0.6, 1));--_linear-progress-indeterminate-duration:var(--forge-linear-progress-indeterminate-duration, 2s);--_linear-progress-buffer-duration:var(--forge-linear-progress-buffer-duration, var(--forge-animation-duration-short4, 200ms));--_linear-progress-theme-transition-duration:var(--forge-linear-progress-theme-transition-duration, var(--forge-animation-duration-short3, 150ms));--_linear-progress-theme-transition-timing:var(--forge-linear-progress-theme-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_linear-progress-track-dot-size:calc(var(--_linear-progress-track-height) / 2);--_linear-progress-track-background-width:calc(var(--_linear-progress-track-dot-size) * 5);--_linear-progress-track-background:0/var(--_linear-progress-track-background-width) 100% radial-gradient(circle at calc(var(--_linear-progress-track-dot-size) * 2), var(--_linear-progress-track-color) 0, var(--_linear-progress-track-color) var(--_linear-progress-track-dot-size), transparent var(--_linear-progress-track-dot-size))}.forge-linear-progress{inset:0;outline:transparent solid 1px;border-radius:var(--_linear-progress-track-shape);overflow:hidden;display:flex;align-items:center}.bar,.bar-inner,.dots,.forge-linear-progress,.track{position:absolute}.dots{inset:0;animation:linear infinite var(--_linear-progress-buffer-duration);animation-name:buffering;background-color:var(--_linear-progress-track-color);background-repeat:repeat-x;mask-image:url(\"data:image/svg+xml,%3Csvg version=\'1.1\' xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 5 2\' preserveAspectRatio=\'xMinYMin slice\'%3E%3Ccircle cx=\'1\' cy=\'1\' r=\'1\'/%3E%3C/svg%3E\");z-index:-1}.bar{animation:none;inline-size:100%;block-size:var(--_linear-progress-indicator-height);transform-origin:left center;will-change:transform;transition:transform var(--_linear-progress-determinate-duration) var(--_linear-progress-determinate-easing)}.secondary-bar{display:none}.bar-inner{inset:0;animation:none;transition:background-color var(--_linear-progress-theme-transition-duration) var(--_linear-progress-theme-transition-timing);background:var(--_linear-progress-indicator-color)}.track{inset:0;will-change:transform;background:var(--_linear-progress-track-color);transition:transform var(--_linear-progress-determinate-duration) var(--_linear-progress-determinate-easing),background-color var(--_linear-progress-theme-transition-duration) var(--_linear-progress-theme-transition-timing);transform-origin:left center}.forge-linear-progress--indeterminate .bar{transition:none}.forge-linear-progress--indeterminate .primary-bar{inset-inline-start:-145.167%;will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration);animation-name:primary-indeterminate-translate}.forge-linear-progress--indeterminate .secondary-bar{inset-inline-start:-54.8889%;display:block;will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration);animation-name:secondary-indeterminate-translate}.forge-linear-progress--indeterminate .dots{display:none}.forge-linear-progress--indeterminate .primary-bar>.bar-inner{will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration) primary-indeterminate-scale}.forge-linear-progress--indeterminate .secondary-bar>.bar-inner{will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration) secondary-indeterminate-scale}:host-context([dir=rtl]) .forge-linear-progress .bar{transform-origin:right center}:host-context([dir=rtl]) .forge-linear-progress .track{transform-origin:right center}:host-context([dir=rtl]) .forge-linear-progress .dots{animation-name:buffering-rtl}:host-context([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .primary-bar{animation-name:primary-indeterminate-translate-rtl}:host-context([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}:host([dir=rtl]) .forge-linear-progress .bar{transform-origin:right center}:host([dir=rtl]) .forge-linear-progress .track{transform-origin:right center}:host([dir=rtl]) .forge-linear-progress .dots{animation-name:buffering-rtl}:host([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .primary-bar{animation-name:primary-indeterminate-translate-rtl}:host([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}.forge-linear-progress:dir(rtl) .bar{transform-origin:right center}.forge-linear-progress:dir(rtl) .track{transform-origin:right center}.forge-linear-progress:dir(rtl) .dots{animation-name:buffering-rtl}.forge-linear-progress:dir(rtl).forge-linear-progress--indeterminate .primary-bar{animation-name:primary-indeterminate-translate-rtl}.forge-linear-progress:dir(rtl).forge-linear-progress--indeterminate .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}:host([theme=primary]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-primary, #3f51b5));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-primary-container, #d1d5ed))}:host([theme=secondary]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-secondary, #ffc107));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-secondary-container, #fff0c3))}:host([theme=success]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-success, #2e7d32));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-success-container, #cde0ce))}:host([theme=error]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-error, #b00020));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-error-container, #ecc2c9))}:host([theme=warning]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-warning, #d14900));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-warning-container, #f4d3c2))}:host([theme=info]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-info, #1565c0));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-info-container, #c7daf0))}@media screen and (forced-colors:active){.forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, CanvasText);--_linear-progress-track-color:var(--forge-linear-progress-track-color, GrayText);border:1px solid CanvasText}.forge-linear-progress.forge-linear-progress--indeterminate{--_linear-progress-track-color:var(--forge-linear-progress-track-color, Canvas)}}@keyframes buffering{0%{transform:translateX(calc(1 * var(--_linear-progress-track-background-width)))}}@keyframes primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5,0,0.701732,0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435,0.381352,0.55,0.956352);transform:translateX(calc(1 * 83.6714%))}100%{transform:translateX(calc(1 * 200.611%))}}@keyframes secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15,0,0.515058,0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033,0.284058,0.8,0.733712);transform:translateX(calc(1 * 37.6519%))}48.35%{animation-timing-function:cubic-bezier(0.4,0.627035,0.6,0.902026);transform:translateX(calc(1 * 84.3862%))}100%{transform:translateX(calc(1 * 160.278%))}}@keyframes buffering-rtl{0%{transform:translateX(calc(-1 * var(--_linear-progress-track-background-width)))}}@keyframes primary-indeterminate-translate-rtl{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5,0,0.701732,0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435,0.381352,0.55,0.956352);transform:translateX(calc(-1 * 83.6714%))}100%{transform:translateX(calc(-1 * 200.611%))}}@keyframes secondary-indeterminate-translate-rtl{0%{animation-timing-function:cubic-bezier(0.15,0,0.515058,0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033,0.284058,0.8,0.733712);transform:translateX(calc(-1 * 37.6519%))}48.35%{animation-timing-function:cubic-bezier(0.4,0.627035,0.6,0.902026);transform:translateX(calc(-1 * 84.3862%))}100%{transform:translateX(calc(-1 * 160.278%))}}@keyframes primary-indeterminate-scale{0%{transform:scaleX(.08)}36.65%{animation-timing-function:cubic-bezier(0.334731,0.12482,0.785844,1);transform:scaleX(.08)}69.15%{animation-timing-function:cubic-bezier(0.06,0.11,0.6,1);transform:scaleX(.661479)}100%{transform:scaleX(.08)}}@keyframes secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028,0.057051,0.57661,0.453971);transform:scaleX(.08)}19.15%{animation-timing-function:cubic-bezier(0.152313,0.196432,0.648374,1.00432);transform:scaleX(.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759,-0.003163,0.211762,1.38179);transform:scaleX(.72796)}100%{transform:scaleX(.08)}}';
15
+ const styles = ':host{--_linear-progress-track-height:var(--forge-linear-progress-track-height, 4px)}:host{display:block;position:relative;min-inline-size:80px;block-size:var(--_linear-progress-track-height);contain:strict;content-visibility:auto}:host([hidden]){display:none}.forge-linear-progress{--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-tertiary-container, #d0d7ff));--_linear-progress-track-shape:var(--forge-linear-progress-track-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-tertiary, #3d5afe));--_linear-progress-indicator-height:var(--forge-linear-progress-indicator-height, var(--_linear-progress-track-height));--_linear-progress-determinate-duration:var(--forge-linear-progress-determinate-duration, var(--forge-animation-duration-medium1, 250ms));--_linear-progress-determinate-easing:var(--forge-linear-progress-determinate-easing, cubic-bezier(0.4, 0, 0.6, 1));--_linear-progress-indeterminate-duration:var(--forge-linear-progress-indeterminate-duration, 2s);--_linear-progress-buffer-duration:var(--forge-linear-progress-buffer-duration, var(--forge-animation-duration-short4, 200ms));--_linear-progress-theme-transition-duration:var(--forge-linear-progress-theme-transition-duration, var(--forge-animation-duration-short3, 150ms));--_linear-progress-theme-transition-timing:var(--forge-linear-progress-theme-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_linear-progress-track-dot-size:calc(var(--_linear-progress-track-height) / 2);--_linear-progress-track-background-width:calc(var(--_linear-progress-track-dot-size) * 5);--_linear-progress-track-background:0/var(--_linear-progress-track-background-width) 100% radial-gradient(circle at calc(var(--_linear-progress-track-dot-size) * 2), var(--_linear-progress-track-color) 0, var(--_linear-progress-track-color) var(--_linear-progress-track-dot-size), transparent var(--_linear-progress-track-dot-size))}.forge-linear-progress{inset:0;outline:transparent solid 1px;border-radius:var(--_linear-progress-track-shape);overflow:hidden;display:flex;align-items:center}.bar,.bar-inner,.dots,.forge-linear-progress,.track{position:absolute}.dots{inset:0;animation:linear infinite var(--_linear-progress-buffer-duration);animation-name:buffering;background-color:var(--_linear-progress-track-color);background-repeat:repeat-x;mask-image:url(\"data:image/svg+xml,%3Csvg version=\'1.1\' xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 5 2\' preserveAspectRatio=\'xMinYMin slice\'%3E%3Ccircle cx=\'1\' cy=\'1\' r=\'1\'/%3E%3C/svg%3E\");z-index:-1}.bar{animation:none;inline-size:100%;block-size:var(--_linear-progress-indicator-height);transform-origin:left center;will-change:transform;transition:transform var(--_linear-progress-determinate-duration) var(--_linear-progress-determinate-easing)}.secondary-bar{display:none}.bar-inner{inset:0;animation:none;transition:background-color var(--_linear-progress-theme-transition-duration) var(--_linear-progress-theme-transition-timing);background:var(--_linear-progress-indicator-color)}.track{inset:0;will-change:transform;background:var(--_linear-progress-track-color);transition:transform var(--_linear-progress-determinate-duration) var(--_linear-progress-determinate-easing),background-color var(--_linear-progress-theme-transition-duration) var(--_linear-progress-theme-transition-timing);transform-origin:left center}.forge-linear-progress--indeterminate .bar{transition:none}.forge-linear-progress--indeterminate .primary-bar{inset-inline-start:-145.167%;will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration);animation-name:primary-indeterminate-translate}.forge-linear-progress--indeterminate .secondary-bar{inset-inline-start:-54.8889%;display:block;will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration);animation-name:secondary-indeterminate-translate}.forge-linear-progress--indeterminate .dots{display:none}.forge-linear-progress--indeterminate .primary-bar>.bar-inner{will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration) primary-indeterminate-scale}.forge-linear-progress--indeterminate .secondary-bar>.bar-inner{will-change:transform;animation:linear infinite var(--_linear-progress-indeterminate-duration) secondary-indeterminate-scale}:host-context([dir=rtl]) .forge-linear-progress .bar{transform-origin:right center}:host-context([dir=rtl]) .forge-linear-progress .track{transform-origin:right center}:host-context([dir=rtl]) .forge-linear-progress .dots{animation-name:buffering-rtl}:host-context([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .primary-bar{animation-name:primary-indeterminate-translate-rtl}:host-context([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}:host([dir=rtl]) .forge-linear-progress .bar{transform-origin:right center}:host([dir=rtl]) .forge-linear-progress .track{transform-origin:right center}:host([dir=rtl]) .forge-linear-progress .dots{animation-name:buffering-rtl}:host([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .primary-bar{animation-name:primary-indeterminate-translate-rtl}:host([dir=rtl]) .forge-linear-progress.forge-linear-progress--indeterminate .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}.forge-linear-progress:dir(rtl) .bar{transform-origin:right center}.forge-linear-progress:dir(rtl) .track{transform-origin:right center}.forge-linear-progress:dir(rtl) .dots{animation-name:buffering-rtl}.forge-linear-progress:dir(rtl).forge-linear-progress--indeterminate .primary-bar{animation-name:primary-indeterminate-translate-rtl}.forge-linear-progress:dir(rtl).forge-linear-progress--indeterminate .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}:host([theme=primary]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-primary, #3f51b5));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-primary-container, #d1d5ed))}:host([theme=secondary]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-secondary, #ffc107));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-secondary-container, #fff0c3))}:host([theme=success]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-success, #2e7d32));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-success-container, #cde0ce))}:host([theme=error]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-error, #b00020));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-error-container, #ecc2c9))}:host([theme=warning]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-warning, #d14900));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-warning-container, #f4d3c2))}:host([theme=info]) .forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, var(--forge-theme-info, #1565c0));--_linear-progress-track-color:var(--forge-linear-progress-track-color, var(--forge-theme-info-container, #c7daf0))}@media screen and (forced-colors:active){.forge-linear-progress{--_linear-progress-indicator-color:var(--forge-linear-progress-indicator-color, CanvasText);--_linear-progress-track-color:var(--forge-linear-progress-track-color, GrayText);border:1px solid CanvasText}.forge-linear-progress.forge-linear-progress--indeterminate{--_linear-progress-track-color:var(--forge-linear-progress-track-color, Canvas)}}@keyframes buffering{0%{transform:translateX(calc(1 * var(--_linear-progress-track-background-width)))}}@keyframes primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5,0,0.701732,0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435,0.381352,0.55,0.956352);transform:translateX(calc(1 * 83.6714%))}100%{transform:translateX(calc(1 * 200.611%))}}@keyframes secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15,0,0.515058,0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033,0.284058,0.8,0.733712);transform:translateX(calc(1 * 37.6519%))}48.35%{animation-timing-function:cubic-bezier(0.4,0.627035,0.6,0.902026);transform:translateX(calc(1 * 84.3862%))}100%{transform:translateX(calc(1 * 160.278%))}}@keyframes buffering-rtl{0%{transform:translateX(calc(-1 * var(--_linear-progress-track-background-width)))}}@keyframes primary-indeterminate-translate-rtl{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5,0,0.701732,0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435,0.381352,0.55,0.956352);transform:translateX(calc(-1 * 83.6714%))}100%{transform:translateX(calc(-1 * 200.611%))}}@keyframes secondary-indeterminate-translate-rtl{0%{animation-timing-function:cubic-bezier(0.15,0,0.515058,0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033,0.284058,0.8,0.733712);transform:translateX(calc(-1 * 37.6519%))}48.35%{animation-timing-function:cubic-bezier(0.4,0.627035,0.6,0.902026);transform:translateX(calc(-1 * 84.3862%))}100%{transform:translateX(calc(-1 * 160.278%))}}@keyframes primary-indeterminate-scale{0%{transform:scaleX(.08)}36.65%{animation-timing-function:cubic-bezier(0.334731,0.12482,0.785844,1);transform:scaleX(.08)}69.15%{animation-timing-function:cubic-bezier(0.06,0.11,0.6,1);transform:scaleX(.661479)}100%{transform:scaleX(.08)}}@keyframes secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028,0.057051,0.57661,0.453971);transform:scaleX(.08)}19.15%{animation-timing-function:cubic-bezier(0.152313,0.196432,0.648374,1.00432);transform:scaleX(.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759,-0.003163,0.211762,1.38179);transform:scaleX(.72796)}100%{transform:scaleX(.08)}}';
16
16
  /**
17
17
  * @tag forge-linear-progress
18
18
  *
@@ -17,6 +17,7 @@ export interface IListDropdownAware extends IBaseComponent {
17
17
  wrapOptionText: boolean;
18
18
  }
19
19
  export declare class ListDropdownAware extends BaseComponent {
20
+ static get observedAttributes(): string[];
20
21
  constructor();
21
22
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
22
23
  /**
@@ -8,6 +8,17 @@ import { coreProperty, coerceNumber, coerceBoolean } from '@tylertech/forge-core
8
8
  import { BaseComponent } from '../core/base/base-component';
9
9
  import { LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';
10
10
  export class ListDropdownAware extends BaseComponent {
11
+ static get observedAttributes() {
12
+ return [
13
+ LIST_DROPDOWN_CONSTANTS.attributes.POPUP_CLASSES,
14
+ LIST_DROPDOWN_CONSTANTS.attributes.OPTION_LIMIT,
15
+ LIST_DROPDOWN_CONSTANTS.attributes.OBSERVE_SCROLL,
16
+ LIST_DROPDOWN_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD,
17
+ LIST_DROPDOWN_CONSTANTS.attributes.SYNC_POPUP_WIDTH,
18
+ LIST_DROPDOWN_CONSTANTS.attributes.CONSTRAIN_POPUP_WIDTH,
19
+ LIST_DROPDOWN_CONSTANTS.attributes.WRAP_OPTION_TEXT
20
+ ];
21
+ }
11
22
  constructor() {
12
23
  super();
13
24
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export * from './meter';
7
+ export * from './meter-group';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export * from './meter';
7
+ export * from './meter-group';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export * from './meter';
7
+ export declare function defineMeterComponent(): void;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { tryDefine } from '@tylertech/forge-core';
7
+ import { MeterComponent } from './meter';
8
+ export * from './meter';
9
+ export function defineMeterComponent() {
10
+ tryDefine('forge-meter', MeterComponent);
11
+ }
@@ -0,0 +1,187 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { LitElement, PropertyValues, TemplateResult } from 'lit';
7
+ import { Theme } from '../../constants';
8
+ export type MeterDirection = 'horizontal' | 'vertical';
9
+ export type MeterDensity = 'default' | 'small' | 'medium' | 'large';
10
+ export type MeterShape = 'default' | 'round' | 'squared';
11
+ export type MeterInnerShape = 'default' | 'inherit';
12
+ export type MeterStatus = 'optimal' | 'suboptimal' | 'least-optimal';
13
+ export type MeterTheme = Theme | 'default';
14
+ export type MeterValueMode = 'manual' | 'percentage' | 'value';
15
+ /**
16
+ * @tag forge-meter
17
+ *
18
+ * @summary Meters display a scalar value within a defined range.
19
+ *
20
+ * @attribute {string} aria-valuetext - Defines a text alternative for the current value. Set this if it would be inaccurate to read the value as a percentage.
21
+ *
22
+ * @state vertical - Applied when the meter is oriented vertically.
23
+ * @state optimum-value - Applied when the value is within the optimum range.
24
+ * @state suboptimum-value - Applied when the value is within the suboptimum range.
25
+ * @state least-optimum-value - Applied when the value is within the least optimum range.
26
+ *
27
+ * @cssproperty --forge-meter-background - The background color of the meter.
28
+ * @cssproperty --forge-meter-color - The color of the meter's bar.
29
+ * @cssproperty --forge-meter-height - The block size of the meter.
30
+ * @cssproperty --forge-meter-shape - The border radius of the meter.
31
+ * @cssproperty --forge-meter-bar-inner-shape - The border radius of the meter's bar.
32
+ * @cssproperty --forge-meter-tickmarks - The number of tickmarks to display.
33
+ * @cssproperty --forge-meter-tickmark-opacity - The opacity of the tickmarks.
34
+ * @cssproperty --forge-meter-transition-duration - The duration of transitions.
35
+ * @cssproperty --forge-meter-transition-timing - The timing function of transitions.
36
+ * @cssproperty --forge-theme-success - The color of the bar when the value is optimal.
37
+ * @cssproperty --forge-theme-success-container-low - The color of the track when the value is optimal.
38
+ * @cssproperty --forge-theme-warning - The color of the bar when the value is suboptimal.
39
+ * @cssproperty --forge-theme-warning-container-low - The color of the track when the value is suboptimal.
40
+ * @cssproperty --forge-theme-error - The color of the bar when the value is least optimal.
41
+ * @cssproperty --forge-theme-error-container-low - The color of the track when the value is least optimal.
42
+ *
43
+ * @csspart root - The root container element.
44
+ * @csspart track - The element comprising the meter's background.
45
+ * @csspart bar - The bar representing the value.
46
+ *
47
+ * @slot - The default slot for the meter's label.
48
+ * @slot value - A textual representation of the meter's value.
49
+ */
50
+ export declare class MeterComponent extends LitElement {
51
+ static styles: import("lit").CSSResult;
52
+ static formAssociated: boolean;
53
+ /**
54
+ * The current value of the meter.
55
+ * @default 0
56
+ * @attribute
57
+ */
58
+ value: number;
59
+ /**
60
+ * The minimum value of the meter.
61
+ * @default 0
62
+ * @attribute
63
+ */
64
+ min: number;
65
+ /**
66
+ * The maximum value of the meter.
67
+ * @default 1
68
+ * @attribute
69
+ */
70
+ max: number;
71
+ /**
72
+ * The low value threshold.
73
+ * @default 0
74
+ * @attribute
75
+ */
76
+ low: number | null | undefined;
77
+ /**
78
+ * The high value threshold.
79
+ * @default 1
80
+ * @attribute
81
+ */
82
+ high: number | null | undefined;
83
+ /**
84
+ * Indicates the region of the optimum value.
85
+ * @default 1
86
+ * @attribute
87
+ */
88
+ optimum: number | null | undefined;
89
+ /**
90
+ * Whether to display tickmarks.
91
+ * @default false
92
+ * @attribute
93
+ */
94
+ tickmarks: boolean;
95
+ /**
96
+ * Whether the current value is displayed as a percentage or raw value. When set to `'manual'`
97
+ * the value text is not shown automatically but can still be set manually via the value slot.
98
+ * @default 'manual'
99
+ * @attribute value-mode
100
+ */
101
+ valueMode: MeterValueMode;
102
+ /**
103
+ * Whether the meter is oriented horizontally or vertically.
104
+ * @default 'horizontal'
105
+ * @attribute
106
+ */
107
+ direction: MeterDirection;
108
+ /**
109
+ * The shape of the meter.
110
+ * @default 'default'
111
+ * @attribute
112
+ */
113
+ shape: MeterShape;
114
+ /**
115
+ * The shape of the bar.
116
+ * @default 'default'
117
+ * @attribute inner-shape
118
+ */
119
+ innerShape: MeterInnerShape;
120
+ /**
121
+ * The density of the meter.
122
+ * @default 'medium'
123
+ * @attribute
124
+ */
125
+ density: MeterDensity;
126
+ /**
127
+ * The theme of the meter.
128
+ * @default 'default'
129
+ * @attribute
130
+ */
131
+ theme: MeterTheme;
132
+ /**
133
+ * Whether the theme is muted.
134
+ * @default false
135
+ * @attribute
136
+ */
137
+ muted: boolean;
138
+ /**
139
+ * Gets the percentage of the meter that's filled.
140
+ * @readonly
141
+ */
142
+ get percentage(): number;
143
+ get labels(): NodeList;
144
+ get form(): HTMLFormElement | null;
145
+ private _percentage;
146
+ private _status;
147
+ private _segmented;
148
+ private _grouped;
149
+ private _hasSlottedContent;
150
+ private _defaultNodes;
151
+ private _valueNodes;
152
+ private _internals;
153
+ constructor();
154
+ connectedCallback(): void;
155
+ willUpdate(changedProperties: PropertyValues<this>): void;
156
+ render(): TemplateResult;
157
+ /**
158
+ * Determines the percentage of the meter that's filled and whether the value is optimal,
159
+ * suboptimal, or least optimal.
160
+ */
161
+ private _getStatus;
162
+ /**
163
+ * Determines whether low and high ranges are set. The meter is segmented if either the low or
164
+ * high property is defined.
165
+ *
166
+ * When the meter is segmented the default or themed color scheme is replaced by semantic colors
167
+ * corresponding to optimal, suboptimal, and least optimal values.
168
+ */
169
+ private _getSegmented;
170
+ /**
171
+ * Checks if the meter is part of a group and inherits the min and max values.
172
+ */
173
+ private _getGrouped;
174
+ /**
175
+ * Checks whether the meter has any slotted content.
176
+ */
177
+ private _handleSlotChange;
178
+ /**
179
+ * Updates the internal state of the meter based on the current status.
180
+ */
181
+ private _setValueState;
182
+ }
183
+ declare global {
184
+ interface HTMLElementTagNameMap {
185
+ 'forge-meter': MeterComponent;
186
+ }
187
+ }