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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/custom-elements.json +1725 -928
  2. package/dist/app-bar/forge-app-bar.css +20 -3
  3. package/dist/forge.css +2 -2
  4. package/dist/lib.js +20 -20
  5. package/dist/lib.js.map +4 -4
  6. package/dist/table/forge-table.css +2 -2
  7. package/dist/vscode.css-custom-data.json +94 -84
  8. package/dist/vscode.html-custom-data.json +190 -65
  9. package/esm/app-bar/app-bar/app-bar-constants.d.ts +2 -0
  10. package/esm/app-bar/app-bar/app-bar-constants.js +2 -1
  11. package/esm/app-bar/app-bar/app-bar-core.d.ts +5 -1
  12. package/esm/app-bar/app-bar/app-bar-core.js +10 -0
  13. package/esm/app-bar/app-bar/app-bar.d.ts +9 -1
  14. package/esm/app-bar/app-bar/app-bar.js +15 -2
  15. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  16. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  17. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  18. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  19. package/esm/app-bar/search/app-bar-search.js +1 -1
  20. package/esm/autocomplete/autocomplete-core.js +5 -0
  21. package/esm/avatar/avatar.d.ts +7 -4
  22. package/esm/avatar/avatar.js +10 -6
  23. package/esm/badge/badge.d.ts +7 -3
  24. package/esm/badge/badge.js +9 -4
  25. package/esm/button/button-constants.d.ts +1 -1
  26. package/esm/button/button.js +1 -1
  27. package/esm/card/card.d.ts +7 -3
  28. package/esm/card/card.js +8 -3
  29. package/esm/core/base/base-lit-element.d.ts +9 -0
  30. package/esm/core/base/base-lit-element.js +12 -0
  31. package/esm/core/utils/lit-utils.d.ts +11 -0
  32. package/esm/core/utils/lit-utils.js +31 -0
  33. package/esm/dialog/dialog-adapter.d.ts +0 -1
  34. package/esm/dialog/dialog-adapter.js +4 -39
  35. package/esm/dialog/dialog-constants.d.ts +6 -2
  36. package/esm/dialog/dialog-constants.js +4 -4
  37. package/esm/dialog/dialog-core.d.ts +3 -3
  38. package/esm/dialog/dialog-core.js +8 -7
  39. package/esm/dialog/dialog.d.ts +3 -3
  40. package/esm/dialog/dialog.js +3 -3
  41. package/esm/icon-button/icon-button-constants.d.ts +1 -1
  42. package/esm/icon-button/icon-button.js +1 -1
  43. package/esm/key/key/index.js +2 -2
  44. package/esm/key/key/key.d.ts +7 -2
  45. package/esm/key/key/key.js +10 -3
  46. package/esm/key/key-item/index.js +2 -2
  47. package/esm/key/key-item/key-item.d.ts +7 -2
  48. package/esm/key/key-item/key-item.js +10 -3
  49. package/esm/list-dropdown/list-dropdown-aware-core.d.ts +22 -0
  50. package/esm/list-dropdown/list-dropdown-aware-core.js +30 -0
  51. package/esm/list-dropdown/list-dropdown-aware.d.ts +35 -0
  52. package/esm/list-dropdown/list-dropdown-aware.js +35 -16
  53. package/esm/list-dropdown/list-dropdown-constants.d.ts +22 -3
  54. package/esm/list-dropdown/list-dropdown-constants.js +9 -1
  55. package/esm/list-dropdown/list-dropdown-utils.js +6 -0
  56. package/esm/menu/menu-core.js +2 -0
  57. package/esm/menu/menu.js +1 -0
  58. package/esm/meter/meter/meter.d.ts +7 -2
  59. package/esm/meter/meter/meter.js +10 -3
  60. package/esm/meter/meter-group/index.js +2 -2
  61. package/esm/meter/meter-group/meter-group.d.ts +7 -2
  62. package/esm/meter/meter-group/meter-group.js +10 -4
  63. package/esm/overlay/base/overlay-aware.d.ts +4 -4
  64. package/esm/overlay/base/overlay-aware.js +3 -3
  65. package/esm/select/core/base-select-core.js +5 -0
  66. package/esm/select/select/select.d.ts +25 -1
  67. package/esm/select/select/select.js +26 -1
  68. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  69. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  70. package/package.json +1 -1
  71. package/sass/app-bar/app-bar/_core.scss +0 -1
  72. package/sass/app-bar/app-bar/app-bar.scss +51 -7
  73. package/sass/app-bar/forge-app-bar.scss +41 -11
  74. package/sass/app-bar/search/app-bar-search.scss +3 -0
  75. package/sass/button/button.scss +24 -0
  76. package/sass/core/styles/scrollbar/index.scss +14 -0
  77. package/sass/core/styles/tokens/app-bar/app-bar/_tokens.scss +4 -1
  78. package/sass/icon-button/icon-button.scss +14 -0
  79. package/sass/table/_core.scss +1 -1
  80. package/sass/tabs/tab-bar/tab-bar.scss +24 -0
@@ -97,6 +97,31 @@
97
97
  "name": "wrap-option-text",
98
98
  "description": "Gets/sets whether the options will wrap their text or not.\nThis only applies if `constrainPopupWidth` is `true`, if there is an explicit width set via CSS.",
99
99
  "values": []
100
+ },
101
+ {
102
+ "name": "popover-placement",
103
+ "description": "Gets/sets the placement of the popover.",
104
+ "values": [{ "name": "OverlayPlacement" }]
105
+ },
106
+ {
107
+ "name": "popover-offset",
108
+ "description": "Gets/sets the offset of the popover.",
109
+ "values": [{ "name": "IOverlayOffset" }]
110
+ },
111
+ {
112
+ "name": "popover-flip",
113
+ "description": "Gets/sets the flip state of the popover.",
114
+ "values": [{ "name": "OverlayFlipState" }]
115
+ },
116
+ {
117
+ "name": "popover-shift",
118
+ "description": "Gets/sets whether the popover should shift to fit within the viewport.",
119
+ "values": [{ "name": "OverlayShiftState" }]
120
+ },
121
+ {
122
+ "name": "popover-fallback-placements",
123
+ "description": "Gets/sets the fallback placements of the popover.",
124
+ "values": [{ "name": "PositionPlacement[]" }]
100
125
  }
101
126
  ],
102
127
  "references": []
@@ -140,12 +165,6 @@
140
165
  ],
141
166
  "references": []
142
167
  },
143
- {
144
- "name": "forge-badge",
145
- "description": "\n---\n\n\n### **Slots:**\n - _default_ - Default content placed inside the badge.\n- **start** - Content placed before the default content.\n- **end** - Content placed after the default content.\n\n### **CSS Properties:**\n - **--forge-badge-background** - The background color. _(default: undefined)_\n- **--forge-badge-color** - The text color. _(default: undefined)_\n- **--forge-badge-shape** - The shape radius. _(default: undefined)_\n- **--forge-badge-padding-inline** - The inline padding. _(default: undefined)_\n- **--forge-badge-padding-block** - The block padding. _(default: undefined)_\n- **--forge-badge-border-width** - The border width. _(default: undefined)_\n- **--forge-badge-border-color** - The border color. _(default: undefined)_\n- **--forge-badge-border-style** - The border style. _(default: undefined)_\n- **--forge-badge-gap** - The spacing between the content within the badge. _(default: undefined)_",
146
- "attributes": [],
147
- "references": []
148
- },
149
168
  {
150
169
  "name": "forge-banner",
151
170
  "description": "Banners are used to inform users of important information, such as errors, warnings, or success messages.\n---\n\n\n### **Events:**\n - **forge-banner-before-dismiss** - Dispatched before the banner is dismissed. Cancelable to prevent dismissal.\n- **forge-banner-dismissed** - Dispatched when the banner is dismissed.\n\n### **Slots:**\n - _default_ - The content of the banner.\n- **icon** - The icon to display.\n- **button** - The optional button to display.\n\n### **CSS Properties:**\n - **--forge-banner-background** - The background color of the banner. _(default: undefined)_\n- **--forge-banner-color** - The text color of the banner. _(default: undefined)_\n- **--forge-banner-icon-color** - The color of the icon. _(default: undefined)_\n- **--forge-banner-gap** - The gap between the contents. _(default: undefined)_\n- **--forge-banner-padding-inline** - The inline padding. _(default: undefined)_\n- **--forge-banner-padding-block** - The block padding. _(default: undefined)_\n- **--forge-banner-transition-duration** - The transition duration. _(default: undefined)_\n- **--forge-banner-transition-easing** - The transition easing function. _(default: undefined)_",
@@ -195,6 +214,12 @@
195
214
  ],
196
215
  "references": []
197
216
  },
217
+ {
218
+ "name": "forge-badge",
219
+ "description": "\n---\n\n\n### **Slots:**\n - _default_ - Default content placed inside the badge.\n- **start** - Content placed before the default content.\n- **end** - Content placed after the default content.\n\n### **CSS Properties:**\n - **--forge-badge-background** - The background color. _(default: undefined)_\n- **--forge-badge-color** - The text color. _(default: undefined)_\n- **--forge-badge-shape** - The shape radius. _(default: undefined)_\n- **--forge-badge-padding-inline** - The inline padding. _(default: undefined)_\n- **--forge-badge-padding-block** - The block padding. _(default: undefined)_\n- **--forge-badge-border-width** - The border width. _(default: undefined)_\n- **--forge-badge-border-color** - The border color. _(default: undefined)_\n- **--forge-badge-border-style** - The border style. _(default: undefined)_\n- **--forge-badge-gap** - The spacing between the content within the badge. _(default: undefined)_",
220
+ "attributes": [],
221
+ "references": []
222
+ },
198
223
  {
199
224
  "name": "forge-button",
200
225
  "description": "Buttons represent actions that a user can take.\n---\n\n\n### **Events:**\n - **click** - Fires when the button is clicked.\n\n### **Methods:**\n - **click(): _void_** - Clicks the button.\n- **focus(options: _ExperimentalFocusOptions_): _void_** - Focuses the button.\n\n### **Slots:**\n - _default_ - This is a default/unnamed slot for the label text.\n- **start** - Elements to logically render before the label text.\n- **end** - Elements to logically render after the label text.\n\n### **CSS Properties:**\n - **--forge-button-primary-color** - The primary color of the button. _(default: undefined)_\n- **--forge-button-text-color** - The text color of the button. Inherits from primary color. _(default: undefined)_\n- **--forge-button-disabled-color** - The disabled color of the button. _(default: undefined)_\n- **--forge-button-padding** - The padding of the button. _(default: undefined)_\n- **--forge-button-display** - The display of the button. _(default: undefined)_\n- **--forge-button-justify** - The flex justify of the button. _(default: undefined)_\n- **--forge-button-shape** - The shape of the button. _(default: undefined)_\n- **--forge-button-height** - The height of the button. _(default: undefined)_\n- **--forge-button-min-width** - The min-width of the button. _(default: undefined)_\n- **--forge-button-spacing** - The spacing of the button. _(default: undefined)_\n- **--forge-button-border-width** - The border-width of the button. _(default: undefined)_\n- **--forge-button-border-style** - The border style of the button. _(default: undefined)_\n- **--forge-button-border-color** - The border color of the button. _(default: undefined)_\n- **--forge-button-shape-start-start-radius** - The shape start start radius of the button. _(default: undefined)_\n- **--forge-button-shape-start-end-radius** - The shape start end radius of the button. _(default: undefined)_\n- **--forge-button-shape-end-start-radius** - The shape end start radius of the button. _(default: undefined)_\n- **--forge-button-shape-end-end-radius** - The shape end end radius of the button. _(default: undefined)_\n- **--forge-button-padding-block** - The padding block of the button. _(default: undefined)_\n- **--forge-button-padding-inline** - The padding inline of the button. _(default: undefined)_\n- **--forge-button-background** - The background color of the button. _(default: undefined)_\n- **--forge-button-hover-background** - The background color of the button on hover. _(default: undefined)_\n- **--forge-button-active-background** - The background color of the button on active state. _(default: undefined)_\n- **--forge-button-color** - The text color of the button. _(default: undefined)_\n- **--forge-button-icon-size** - The size of the icon in the button. _(default: undefined)_\n- **--forge-button-shadow** - The shadow of the button. _(default: undefined)_\n- **--forge-button-hover-shadow** - The shadow of the button on hover. _(default: undefined)_\n- **--forge-button-active-shadow** - The shadow of the button on active state. _(default: undefined)_\n- **--forge-button-cursor** - The cursor type of the button. _(default: undefined)_\n- **--forge-button-transition-duration** - The transition duration of the button. _(default: undefined)_\n- **--forge-button-transition-timing** - The transition timing of the button. _(default: undefined)_\n- **--forge-button-text-padding-inline** - The inline padding of the button when using the text variant. _(default: undefined)_\n- **--forge-button-filled-background** - The background color of the filled button. _(default: undefined)_\n- **--forge-button-filled-disabled-background** - The background color of the disabled filled button. _(default: undefined)_\n- **--forge-button-filled-color** - The text color of the filled button. _(default: undefined)_\n- **--forge-button-filled-disabled-color** - The text color of the disabled filled button. _(default: undefined)_\n- **--forge-button-raised-background** - The background color of the raised button. _(default: undefined)_\n- **--forge-button-raised-disabled-background** - The background color of the disabled raised button. _(default: undefined)_\n- **--forge-button-raised-color** - The text color of the raised button. _(default: undefined)_\n- **--forge-button-raised-disabled-color** - The text color of the disabled raised button. _(default: undefined)_\n- **--forge-button-raised-shadow** - The shadow of the raised button. _(default: undefined)_\n- **--forge-button-raised-hover-shadow** - The shadow of the raised button on hover. _(default: undefined)_\n- **--forge-button-raised-active-shadow** - The shadow of the raised button on active state. _(default: undefined)_\n- **--forge-button-raised-disabled-shadow** - The shadow of the disabled raised button. _(default: undefined)_\n- **--forge-button-flat-background** - The background color of the flat button. _(default: undefined)_\n- **--forge-button-flat-disabled-background** - The background color of the disabled flat button. _(default: undefined)_\n- **--forge-button-flat-color** - The text color of the flat button. _(default: undefined)_\n- **--forge-button-flat-disabled-color** - The text color of the disabled flat button. _(default: undefined)_\n- **--forge-button-outlined-background** - The background color of the outlined button. _(default: undefined)_\n- **--forge-button-outlined-color** - The text color of the outlined button. _(default: undefined)_\n- **--forge-button-outlined-border-width** - The border width of the outlined button. _(default: undefined)_\n- **--forge-button-outlined-border-style** - The border style of the outlined button. _(default: undefined)_\n- **--forge-button-outlined-border-color** - The border color of the outlined button. _(default: undefined)_\n- **--forge-button-link-color** - The text color of the link button. _(default: undefined)_\n- **--forge-button-link-text-decoration** - The text decoration of the link button. _(default: undefined)_\n- **--forge-button-link-height** - The height of the link button. _(default: undefined)_\n- **--forge-button-link-padding** - The padding of the link button. _(default: undefined)_\n- **--forge-button-link-line-height** - The line height of the link button. _(default: undefined)_\n- **--forge-button-link-width** - The width of the link button. _(default: undefined)_\n- **--forge-button-link-hover-text-decoration** - The text decoration of the link button on hover. _(default: undefined)_\n- **--forge-button-link-active-opacity** - The opacity of the link button on active state. _(default: undefined)_\n- **--forge-button-link-transition-duration** - The transition duration of the link button. _(default: undefined)_\n- **--forge-button-link-transition-timing** - The transition timing of the link button. _(default: undefined)_\n- **--forge-button-disabled-cursor** - The cursor type of the disabled button. _(default: undefined)_\n- **--forge-button-disabled-text-color** - The text color of the disabled button. _(default: undefined)_\n- **--forge-button-disabled-background** - The background color of the disabled button. _(default: undefined)_\n- **--forge-button-disabled-border-color** - The border color of the disabled button. _(default: undefined)_\n- **--forge-button-disabled-shadow** - The shadow of the disabled button. _(default: undefined)_\n- **--forge-button-dense-height** - The height of the dense button. _(default: undefined)_\n- **--forge-button-pill-shape** - The shape of the pill button. _(default: undefined)_\n- **--forge-button-pill-padding-inline** - The inline padding of the pill button. _(default: undefined)_\n\n### **CSS Parts:**\n - **root** - The root container element.\n- **focus-indicator** - The focus-indicator indicator element.\n- **state-layer** - The state-layer surface element.",
@@ -1190,33 +1215,6 @@
1190
1215
  ],
1191
1216
  "references": []
1192
1217
  },
1193
- {
1194
- "name": "forge-label",
1195
- "description": "The Forge Label component is used to associate a text label with a compatible Forge component.\n---\n\n\n### **Methods:**\n - **update(): _void_** - Updates the targeted element with the label's current text content.",
1196
- "attributes": [
1197
- {
1198
- "name": "for",
1199
- "description": "The id of the associated element.",
1200
- "values": []
1201
- },
1202
- {
1203
- "name": "dynamic",
1204
- "description": "Propagates changes in the label's text content to the associated element.",
1205
- "values": []
1206
- },
1207
- {
1208
- "name": "non-interactive",
1209
- "description": "Removes click handling from the label.",
1210
- "values": []
1211
- },
1212
- {
1213
- "name": "legend",
1214
- "description": "Whether or not the label should be associated with an ancestor element.",
1215
- "values": []
1216
- }
1217
- ],
1218
- "references": []
1219
- },
1220
1218
  {
1221
1219
  "name": "forge-keyboard-shortcut",
1222
1220
  "description": "\n---\n\n\n### **Events:**\n - **forge-keyboard-shortcut-activate** - Event fired when the keyboard shortcut is activated.",
@@ -1270,25 +1268,29 @@
1270
1268
  "references": []
1271
1269
  },
1272
1270
  {
1273
- "name": "forge-linear-progress",
1274
- "description": "Linear progress indicators display progress by animating along a linear track in a horizontal direction.\n---\n\n\n### **CSS Properties:**\n - **--forge-linear-progress-height** - The height of the element. _(default: undefined)_\n- **--forge-linear-progress-track-color** - The background color of the indicator. _(default: undefined)_\n- **--forge-linear-progress-track-shape** - The shape of the indicator. _(default: undefined)_\n- **--forge-linear-progress-indicator-color** - The color of the indicator. _(default: undefined)_\n- **--forge-linear-progress-indicator-height** - The height of the indicator only. _(default: undefined)_\n- **--forge-linear-progress-determinate-duration** - The duration of the determinate animation. _(default: undefined)_\n- **--forge-linear-progress-indeterminate-duration** - The duration of the indeterminate animation. _(default: undefined)_\n- **--forge-linear-progress-determinate-easing** - The easing function to use for the determinate animation. _(default: undefined)_\n- **--forge-linear-progress-theme-transition-duration** - The duration of the theme transition. _(default: undefined)_\n- **--forge-linear-progress-theme-transition-timing** - The easing function to use for the theme transition. _(default: undefined)_\n\n### **CSS Parts:**\n - **progressbar** - Styles the progress bar container element",
1271
+ "name": "forge-label",
1272
+ "description": "The Forge Label component is used to associate a text label with a compatible Forge component.\n---\n\n\n### **Methods:**\n - **update(): _void_** - Updates the targeted element with the label's current text content.",
1275
1273
  "attributes": [
1276
1274
  {
1277
- "name": "determinate",
1278
- "description": "Controls the determinate state.",
1275
+ "name": "for",
1276
+ "description": "The id of the associated element.",
1279
1277
  "values": []
1280
1278
  },
1281
1279
  {
1282
- "name": "progress",
1283
- "description": "Controls the progress while in a determinate state. Accepts values from `0` to `1`.",
1280
+ "name": "dynamic",
1281
+ "description": "Propagates changes in the label's text content to the associated element.",
1284
1282
  "values": []
1285
1283
  },
1286
1284
  {
1287
- "name": "buffer",
1288
- "description": "Controls the buffer progress while in a determinate state. Accepts values from `0` to `1`.",
1285
+ "name": "non-interactive",
1286
+ "description": "Removes click handling from the label.",
1289
1287
  "values": []
1290
1288
  },
1291
- { "name": "theme", "description": "Sets the theme.", "values": [] }
1289
+ {
1290
+ "name": "legend",
1291
+ "description": "Whether or not the label should be associated with an ancestor element.",
1292
+ "values": []
1293
+ }
1292
1294
  ],
1293
1295
  "references": []
1294
1296
  },
@@ -1314,6 +1316,29 @@
1314
1316
  ],
1315
1317
  "references": []
1316
1318
  },
1319
+ {
1320
+ "name": "forge-linear-progress",
1321
+ "description": "Linear progress indicators display progress by animating along a linear track in a horizontal direction.\n---\n\n\n### **CSS Properties:**\n - **--forge-linear-progress-height** - The height of the element. _(default: undefined)_\n- **--forge-linear-progress-track-color** - The background color of the indicator. _(default: undefined)_\n- **--forge-linear-progress-track-shape** - The shape of the indicator. _(default: undefined)_\n- **--forge-linear-progress-indicator-color** - The color of the indicator. _(default: undefined)_\n- **--forge-linear-progress-indicator-height** - The height of the indicator only. _(default: undefined)_\n- **--forge-linear-progress-determinate-duration** - The duration of the determinate animation. _(default: undefined)_\n- **--forge-linear-progress-indeterminate-duration** - The duration of the indeterminate animation. _(default: undefined)_\n- **--forge-linear-progress-determinate-easing** - The easing function to use for the determinate animation. _(default: undefined)_\n- **--forge-linear-progress-theme-transition-duration** - The duration of the theme transition. _(default: undefined)_\n- **--forge-linear-progress-theme-transition-timing** - The easing function to use for the theme transition. _(default: undefined)_\n\n### **CSS Parts:**\n - **progressbar** - Styles the progress bar container element",
1322
+ "attributes": [
1323
+ {
1324
+ "name": "determinate",
1325
+ "description": "Controls the determinate state.",
1326
+ "values": []
1327
+ },
1328
+ {
1329
+ "name": "progress",
1330
+ "description": "Controls the progress while in a determinate state. Accepts values from `0` to `1`.",
1331
+ "values": []
1332
+ },
1333
+ {
1334
+ "name": "buffer",
1335
+ "description": "Controls the buffer progress while in a determinate state. Accepts values from `0` to `1`.",
1336
+ "values": []
1337
+ },
1338
+ { "name": "theme", "description": "Sets the theme.", "values": [] }
1339
+ ],
1340
+ "references": []
1341
+ },
1317
1342
  {
1318
1343
  "name": "forge-menu",
1319
1344
  "description": "\n---\n\n\n### **Methods:**\n - **propagateKeyEvent(evt: _KeyboardEvent_): _void_** - Force propagates the key event from another element to this component.\n- **activateFirstOption(): _void_** - Activates the first option in the menu when open.",
@@ -1392,6 +1417,31 @@
1392
1417
  "name": "wrap-option-text",
1393
1418
  "description": "Gets/sets whether the options will wrap their text or not.\nThis only applies if `constrainPopupWidth` is `true`, if there is an explicit width set via CSS.",
1394
1419
  "values": []
1420
+ },
1421
+ {
1422
+ "name": "popover-placement",
1423
+ "description": "Gets/sets the placement of the popover.",
1424
+ "values": [{ "name": "OverlayPlacement" }]
1425
+ },
1426
+ {
1427
+ "name": "popover-offset",
1428
+ "description": "Gets/sets the offset of the popover.",
1429
+ "values": [{ "name": "IOverlayOffset" }]
1430
+ },
1431
+ {
1432
+ "name": "popover-flip",
1433
+ "description": "Gets/sets the flip state of the popover.",
1434
+ "values": [{ "name": "OverlayFlipState" }]
1435
+ },
1436
+ {
1437
+ "name": "popover-shift",
1438
+ "description": "Gets/sets whether the popover should shift to fit within the viewport.",
1439
+ "values": [{ "name": "OverlayShiftState" }]
1440
+ },
1441
+ {
1442
+ "name": "popover-fallback-placements",
1443
+ "description": "Gets/sets the fallback placements of the popover.",
1444
+ "values": [{ "name": "PositionPlacement[]" }]
1395
1445
  }
1396
1446
  ],
1397
1447
  "references": []
@@ -1635,7 +1685,7 @@
1635
1685
  {
1636
1686
  "name": "shift",
1637
1687
  "description": "Whether the overlay should shift to fit within the viewport.",
1638
- "values": []
1688
+ "values": [{ "name": "OverlayShiftState" }]
1639
1689
  },
1640
1690
  {
1641
1691
  "name": "hide",
@@ -2475,7 +2525,7 @@
2475
2525
  },
2476
2526
  {
2477
2527
  "name": "forge-app-bar",
2478
- "description": "\n---\n\n\n### **Events:**\n - **forge-app-bar-navigate** - Fires when the app bar is clicked.\n\n### **Slots:**\n - **logo** - Reserved for the brand logo.\n- **title** - Reserved for the application title. This will overwrite the `titleText` property/attribute.\n- **start** - Places content at the beginning of the app bar.\n- **center** - Places content in the center of the app bar.\n- **end** - Places content at the end of the app bar.\n\n### **CSS Properties:**\n - **--forge-app-bar-background** - The background color of the app bar. _(default: undefined)_\n- **--forge-app-bar-foreground** - The text color of the app bar. _(default: undefined)_\n- **--forge-app-bar-z-index** - The `z-index` of the app bar. _(default: undefined)_\n- **--forge-app-bar-elevation** - The elevation of the app bar. _(default: undefined)_\n- **--forge-app-bar-height** - The height of the app bar. _(default: undefined)_\n- **--forge-app-bar-row-padding** - The inline padding of the app bar. _(default: undefined)_\n- **--forge-app-bar-logo-gap** - The space between the logo and title. _(default: undefined)_\n- **--forge-app-bar-title-padding** - The padding around the title element. _(default: undefined)_\n- **--forge-app-bar-columns** - The grid column track sizes. _(default: undefined)_\n- **--forge-app-bar-transition-duration** - The transition duration for animations. _(default: undefined)_\n- **--forge-app-bar-transition-timing** - The transition timing function for animations. _(default: undefined)_\n\n### **CSS Parts:**\n - **root** - The root container element.\n- **title** - The title element.",
2528
+ "description": "\n---\n\n\n### **Events:**\n - **forge-app-bar-navigate** - Fires when the app bar is clicked.\n\n### **Slots:**\n - **logo** - Reserved for the brand logo.\n- **title** - Reserved for the application title. This will overwrite the `titleText` property/attribute.\n- **start** - Places content at the beginning of the app bar.\n- **center** - Places content in the center of the app bar.\n- **end** - Places content at the end of the app bar.\n\n### **CSS Properties:**\n - **--forge-app-bar-background** - The background color of the app bar. _(default: undefined)_\n- **--forge-app-bar-foreground** - The text color of the app bar. _(default: undefined)_\n- **--forge-app-bar-theme-foreground** - The text color of the app bar when using the **scoped theme mode**. _(default: undefined)_\n- **--forge-app-bar-theme-foreground-muted** - The muted text color of the app bar when using the **scoped theme mode**. _(default: undefined)_\n- **--forge-app-bar-z-index** - The `z-index` of the app bar. _(default: undefined)_\n- **--forge-app-bar-elevation** - The elevation of the app bar. _(default: undefined)_\n- **--forge-app-bar-height** - The height of the app bar. _(default: undefined)_\n- **--forge-app-bar-row-padding** - The inline padding of the app bar. _(default: undefined)_\n- **--forge-app-bar-logo-gap** - The space between the logo and title. _(default: undefined)_\n- **--forge-app-bar-title-padding** - The padding around the title element. _(default: undefined)_\n- **--forge-app-bar-columns** - The grid column track sizes. _(default: undefined)_\n- **--forge-app-bar-transition-duration** - The transition duration for animations. _(default: undefined)_\n- **--forge-app-bar-transition-timing** - The transition timing function for animations. _(default: undefined)_\n\n### **CSS Parts:**\n - **root** - The root container element.\n- **title** - The title element.",
2479
2529
  "attributes": [
2480
2530
  {
2481
2531
  "name": "title-text",
@@ -2501,6 +2551,11 @@
2501
2551
  "name": "target",
2502
2552
  "description": "The `<a>` target of the logo + title area link when `href` is set.",
2503
2553
  "values": []
2554
+ },
2555
+ {
2556
+ "name": "theme-mode",
2557
+ "description": "Controls how the theme is applied. `inherit` will apply the global theme to the app bar and all child components. `scoped` will only apply the theme to the app bar and not set any global tokens.",
2558
+ "values": []
2504
2559
  }
2505
2560
  ],
2506
2561
  "references": []
@@ -2857,14 +2912,14 @@
2857
2912
  "references": []
2858
2913
  },
2859
2914
  {
2860
- "name": "forge-deprecated-button",
2861
- "description": "@deprecated Use the `<forge-button>` element instead.\n\n\n---\n",
2915
+ "name": "forge-deprecated-icon-button",
2916
+ "description": "@deprecated Use the `<forge-icon-button>` element instead.\n\n\n---\n\n\n### **Events:**\n - **forge-icon-button-toggle**",
2862
2917
  "attributes": [],
2863
2918
  "references": []
2864
2919
  },
2865
2920
  {
2866
- "name": "forge-deprecated-icon-button",
2867
- "description": "@deprecated Use the `<forge-icon-button>` element instead.\n\n\n---\n\n\n### **Events:**\n - **forge-icon-button-toggle**",
2921
+ "name": "forge-deprecated-button",
2922
+ "description": "@deprecated Use the `<forge-button>` element instead.\n\n\n---\n",
2868
2923
  "attributes": [],
2869
2924
  "references": []
2870
2925
  },
@@ -3229,6 +3284,23 @@
3229
3284
  ],
3230
3285
  "references": []
3231
3286
  },
3287
+ {
3288
+ "name": "forge-option-group",
3289
+ "description": "\n---\n",
3290
+ "attributes": [
3291
+ {
3292
+ "name": "value",
3293
+ "description": "Gets/sets the optional group value.",
3294
+ "values": []
3295
+ },
3296
+ {
3297
+ "name": "text",
3298
+ "description": "The text content for the group.",
3299
+ "values": []
3300
+ }
3301
+ ],
3302
+ "references": []
3303
+ },
3232
3304
  {
3233
3305
  "name": "forge-option",
3234
3306
  "description": "\n---\n",
@@ -3296,23 +3368,6 @@
3296
3368
  ],
3297
3369
  "references": []
3298
3370
  },
3299
- {
3300
- "name": "forge-option-group",
3301
- "description": "\n---\n",
3302
- "attributes": [
3303
- {
3304
- "name": "value",
3305
- "description": "Gets/sets the optional group value.",
3306
- "values": []
3307
- },
3308
- {
3309
- "name": "text",
3310
- "description": "The text content for the group.",
3311
- "values": []
3312
- }
3313
- ],
3314
- "references": []
3315
- },
3316
3371
  {
3317
3372
  "name": "forge-select",
3318
3373
  "description": "\n---\n\n\n### **Events:**\n - **forge-select-scrolled-bottom** - Dispatched when the dropdown list has scrolled to the bottom.\n- **change** - Dispatched when the user selects a value.\n\n### **Methods:**\n - **floatLabelWithoutAnimation(value: _boolean_): _void_** - Floats the label without an animation. Only applies when the label is inset.\n\n### **Slots:**\n - **value** - The selected text to display\n- **start** - Typically reserved for content/icons that render logically before the default slot content.\n- **end** - Typically reserved content/icons that render logically after the default slot content.\n- **accessory** - Used for content such as a button that is logically connected to the field but should appear distinct from the input.\n- **support-text** - Used for content that provides additional information about the field. Aligns to the inline start of the field.\n- **support-text-end** - Used for content that provides additional information about the field. Aligns to the inline end of the field.\n\n### **CSS Properties:**\n - **--forge-select-placeholder-color** - The color of the placeholder text. _(default: undefined)_\n- **--forge-field-background** - The background of the field surface. _(default: undefined)_\n- **--forge-field-tonal-background** - The background of the field surface in the tonal variant. _(default: undefined)_\n- **--forge-field-tonal-background-hover** - The background of the field surface in the tonal variant on hover. _(default: undefined)_\n- **--forge-field-filled-background** - The background of the field surface in the filled and raised variants. _(default: undefined)_\n- **--forge-field-outline-style** - The style of the field outline. _(default: undefined)_\n- **--forge-field-outline-width** - The width of the field outline. _(default: undefined)_\n- **--forge-field-shape** - The border radius of the field's corners. _(default: undefined)_\n- **--forge-field-height** - The height of the field in its default density. _(default: undefined)_\n- **--forge-field-inset-height** - The height of the field in its default density when the label is inset. _(default: undefined)_\n- **--forge-field-padding-inline** - The inline padding of the field. _(default: undefined)_\n- **--forge-field-padding-inline-start** - The inline start padding of the field. _(default: undefined)_\n- **--forge-field-padding-inline-end** - The inline end padding of the field. _(default: undefined)_\n- **--forge-field-inner-padding-inline** - The padding between elements slotted into the field. _(default: undefined)_\n- **--forge-field-support-text-margin-block** - The margin between the support text and the field. _(default: undefined)_\n- **--forge-field-support-text-gap** - The minimum gap between the support text and the support text end. _(default: undefined)_\n- **--forge-field-support-text-padding-inline** - The inline padding of the support text. _(default: undefined)_\n- **--forge-field-support-text-padding-inline-start** - The inline start padding of the support text. _(default: undefined)_\n- **--forge-field-support-text-padding-inline-end** - The inline end padding of the support text. _(default: undefined)_\n- **--forge-field-label-margin-inline** - The margin between the label and the field when the label is in an inline position. _(default: undefined)_\n- **--forge-field-label-margin-block** - The margin between the label and the field when the label is in the block start position. _(default: undefined)_\n- **--forge-field-required-padding** - The padding between the required indicator and the label. _(default: undefined)_\n- **--forge-field-required-content** - The content of the required indicator. _(default: undefined)_\n- **--forge-field-optional-padding** - The padding between the optional indicator and the label. _(default: undefined)_\n- **--forge-field-optional-content** - The content of the optional indicator. _(default: undefined)_\n- **--forge-field-multiline-resize** - The direction the field can be resized when multiline. _(default: undefined)_\n- **--forge-field-multiline-min-inline-size** - The minimum inline size the field can be resized to when multiline. _(default: undefined)_\n- **--forge-field-multiline-max-inline-size** - The maximum inline size the field can be resized to when multiline. _(default: undefined)_\n- **--forge-field-multiline-min-block-size** - The minimum block size the field can be resized to when multiline. _(default: undefined)_\n- **--forge-field-multiline-max-block-size** - The maximum block size the field can be resized to when multiline. _(default: undefined)_\n- **--forge-field-popover-icon-transition-duration** - The duration of the popover icon animation. _(default: undefined)_\n- **--forge-field-popover-icon-transition-timing** - The timing function of the popover icon animation. _(default: undefined)_\n- **--forge-field-popover-icon-open-rotation** - The rotation of the popover icon when open. _(default: undefined)_\n- **--forge-field-surface-animation-duration** - The duration of background and outline animations. _(default: undefined)_\n- **--forge-field-surface-animation-timing** - The timing function of background and outline animations. _(default: undefined)_\n- **--forge-field-surface-floating-animation-duration** - The duration of the floating label animation. _(default: undefined)_\n- **--forge-field-surface-floating-animation-timing** - The timing function of the floating label animation. _(default: undefined)_\n- **--forge-field-focus-indicator-width** - The width of the focus indicator. _(default: undefined)_\n- **--forge-field-disabled-opacity** - The opacity of the field when disabled. _(default: undefined)_\n- **--forge-field-disabled-background** - The background of the field when disabled. _(default: undefined)_\n\n### **CSS Parts:**\n - **root** - The root container element.\n- **label** - The label element.\n- **text-container** - The element container for the selected text.\n- **text** - The element containing the selected text.\n- **container** - The container element surrounding the input.\n- **input** - The element containing te input slot.\n- **start** - The element containing the start slot.\n- **end** - The element containing the end slot.\n- **popover-icon** - The popover icon element.\n- **accessory** - The element containing the accessory slot.\n- **support-text** - The support text element.\n- **support-text** - The element containing the support text slot.\n- **support-text-end** - The element containing the support text end slot.\n- **outline** - The element containing the forge-focus-indicator element.\n- **focus-indicator** - The focus indicator element.",
@@ -3347,6 +3402,51 @@
3347
3402
  "description": "Gets/sets the open state.",
3348
3403
  "values": []
3349
3404
  },
3405
+ {
3406
+ "name": "sync-popup-width",
3407
+ "description": "Gets/sets whether the popup width is synchronized with the popup target width.",
3408
+ "values": []
3409
+ },
3410
+ {
3411
+ "name": "option-limit",
3412
+ "description": "Gets/sets the maximum number of options to display in the dropdown.",
3413
+ "values": []
3414
+ },
3415
+ {
3416
+ "name": "observe-scroll",
3417
+ "description": "Controls the observation of scroll events on the dropdown.",
3418
+ "values": []
3419
+ },
3420
+ {
3421
+ "name": "observe-scroll-threshold",
3422
+ "description": "The number of pixels from the bottom to trigger the scroll bottom event. Only applicable if `observeScroll` is true.",
3423
+ "values": []
3424
+ },
3425
+ {
3426
+ "name": "wrap-option-text",
3427
+ "description": "Gets/sets whether the options will wrap their text or not. This only applies if `constrainPopupWidth` is `true`, if there is an explicit width set via CSS.",
3428
+ "values": []
3429
+ },
3430
+ {
3431
+ "name": "popover-placement",
3432
+ "description": "Gets/sets the placement of the popover.",
3433
+ "values": [{ "name": "OverlayPlacement" }]
3434
+ },
3435
+ {
3436
+ "name": "popover-offset",
3437
+ "description": "Gets/sets the offset of the popover.",
3438
+ "values": [{ "name": "IOverlayOffset" }]
3439
+ },
3440
+ {
3441
+ "name": "popover-flip",
3442
+ "description": "Gets/sets the flip state of the popover.",
3443
+ "values": [{ "name": "OverlayFlipState" }]
3444
+ },
3445
+ {
3446
+ "name": "popover-shift",
3447
+ "description": "Gets/sets whether the popover should shift to fit within the viewport.",
3448
+ "values": [{ "name": "OverlayShiftState" }]
3449
+ },
3350
3450
  {
3351
3451
  "name": "label-position",
3352
3452
  "description": "The position of the label.",
@@ -3478,6 +3578,31 @@
3478
3578
  "name": "wrap-option-text",
3479
3579
  "description": "Gets/sets whether the options will wrap their text or not.\nThis only applies if `constrainPopupWidth` is `true`, if there is an explicit width set via CSS.",
3480
3580
  "values": []
3581
+ },
3582
+ {
3583
+ "name": "popover-placement",
3584
+ "description": "Gets/sets the placement of the popover.",
3585
+ "values": [{ "name": "OverlayPlacement" }]
3586
+ },
3587
+ {
3588
+ "name": "popover-offset",
3589
+ "description": "Gets/sets the offset of the popover.",
3590
+ "values": [{ "name": "IOverlayOffset" }]
3591
+ },
3592
+ {
3593
+ "name": "popover-flip",
3594
+ "description": "Gets/sets the flip state of the popover.",
3595
+ "values": [{ "name": "OverlayFlipState" }]
3596
+ },
3597
+ {
3598
+ "name": "popover-shift",
3599
+ "description": "Gets/sets whether the popover should shift to fit within the viewport.",
3600
+ "values": [{ "name": "OverlayShiftState" }]
3601
+ },
3602
+ {
3603
+ "name": "popover-fallback-placements",
3604
+ "description": "Gets/sets the fallback placements of the popover.",
3605
+ "values": [{ "name": "PositionPlacement[]" }]
3481
3606
  }
3482
3607
  ],
3483
3608
  "references": []
@@ -18,6 +18,7 @@ export declare const APP_BAR_CONSTANTS: {
18
18
  THEME: string;
19
19
  HREF: string;
20
20
  TARGET: string;
21
+ THEME_MODE: string;
21
22
  };
22
23
  classes: {
23
24
  NO_CENTER: string;
@@ -30,3 +31,4 @@ export declare const APP_BAR_CONSTANTS: {
30
31
  };
31
32
  export type AppBarElevation = 'none' | 'raised';
32
33
  export type AppBarTheme = 'white' | 'custom' | '';
34
+ export type AppBarThemeMode = 'inherit' | 'scoped';
@@ -10,7 +10,8 @@ const observedAttributes = {
10
10
  ELEVATION: 'elevation',
11
11
  THEME: 'theme',
12
12
  HREF: 'href',
13
- TARGET: 'target'
13
+ TARGET: 'target',
14
+ THEME_MODE: 'theme-mode'
14
15
  };
15
16
  const attributes = {
16
17
  ...observedAttributes
@@ -4,11 +4,12 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { IAppBarAdapter } from './app-bar-adapter';
7
- import { AppBarElevation, AppBarTheme } from './app-bar-constants';
7
+ import { AppBarElevation, AppBarTheme, AppBarThemeMode } from './app-bar-constants';
8
8
  export interface IAppBarCore {
9
9
  titleText: string;
10
10
  elevation: AppBarElevation;
11
11
  theme: string;
12
+ themeMode: AppBarThemeMode;
12
13
  href: string;
13
14
  target: string;
14
15
  }
@@ -19,6 +20,7 @@ export declare class AppBarCore implements IAppBarCore {
19
20
  private _theme;
20
21
  private _href;
21
22
  private _target;
23
+ private _themeMode;
22
24
  private _centerSlotListener;
23
25
  private _anchorClickListener;
24
26
  constructor(_adapter: IAppBarAdapter);
@@ -34,4 +36,6 @@ export declare class AppBarCore implements IAppBarCore {
34
36
  set href(value: string);
35
37
  get target(): string;
36
38
  set target(value: string);
39
+ get themeMode(): AppBarThemeMode;
40
+ set themeMode(value: AppBarThemeMode);
37
41
  }
@@ -11,6 +11,7 @@ export class AppBarCore {
11
11
  this._elevation = 'raised';
12
12
  this._href = '';
13
13
  this._target = '';
14
+ this._themeMode = 'inherit';
14
15
  this._centerSlotListener = () => this._adapter.setCenterSlotVisibility();
15
16
  this._anchorClickListener = this._onHrefClick.bind(this);
16
17
  }
@@ -79,4 +80,13 @@ export class AppBarCore {
79
80
  this._adapter.toggleHostAttribute(APP_BAR_CONSTANTS.attributes.TARGET, !!this._target, this._target);
80
81
  }
81
82
  }
83
+ get themeMode() {
84
+ return this._themeMode;
85
+ }
86
+ set themeMode(value) {
87
+ if (this._themeMode !== value) {
88
+ this._themeMode = value;
89
+ this._adapter.toggleHostAttribute(APP_BAR_CONSTANTS.attributes.THEME_MODE, this._themeMode !== 'inherit', this._themeMode);
90
+ }
91
+ }
82
92
  }
@@ -3,12 +3,13 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { AppBarElevation, AppBarTheme } from './app-bar-constants';
6
+ import { AppBarElevation, AppBarTheme, AppBarThemeMode } from './app-bar-constants';
7
7
  import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
8
8
  export interface IAppBarComponent extends IBaseComponent {
9
9
  titleText: string;
10
10
  elevation: AppBarElevation;
11
11
  theme: AppBarTheme;
12
+ themeMode: AppBarThemeMode;
12
13
  href: string;
13
14
  target: string;
14
15
  }
@@ -30,15 +31,19 @@ declare global {
30
31
  * @property {AppBarTheme} theme - The theme of the app bar.
31
32
  * @property {string} href - The href that will be used to make the logo and title area a clickable link.
32
33
  * @property {string} target - The `<a>` target of the logo + title area link when `href` is set.
34
+ * @property {AppBarThemeMode} [themeMode="inherit"] - Controls how the theme is applied. `inherit` will apply the global theme to the app bar and all child components. `scoped` will only apply the theme to the app bar and not set any global tokens.
33
35
  *
34
36
  * @attribute {string} title-text - The text to display in the title.
35
37
  * @attribute {string} [elevation="raised"] - The elevation of the app bar.
36
38
  * @attribute {string} theme - The theme of the app bar.
37
39
  * @attribute {string} href - The href that will be used to make the logo and title area a clickable link
38
40
  * @attribute {string} target - The `<a>` target of the logo + title area link when `href` is set.
41
+ * @attribute {string} [theme-mode="inherit"] - Controls how the theme is applied. `inherit` will apply the global theme to the app bar and all child components. `scoped` will only apply the theme to the app bar and not set any global tokens.
39
42
  *
40
43
  * @cssproperty --forge-app-bar-background - The background color of the app bar.
41
44
  * @cssproperty --forge-app-bar-foreground - The text color of the app bar.
45
+ * @cssproperty --forge-app-bar-theme-foreground - The text color of the app bar when using the **scoped theme mode**.
46
+ * @cssproperty --forge-app-bar-theme-foreground-muted - The muted text color of the app bar when using the **scoped theme mode**.
42
47
  * @cssproperty --forge-app-bar-z-index - The `z-index` of the app bar.
43
48
  * @cssproperty --forge-app-bar-elevation - The elevation of the app bar.
44
49
  * @cssproperty --forge-app-bar-height - The height of the app bar.
@@ -61,6 +66,8 @@ declare global {
61
66
  * @slot end - Places content at the end of the app bar.
62
67
  *
63
68
  * @cssclass forge-app-bar - The app bar container element _(required)_.
69
+ * @cssclass forge-app-bar--scoped - Sets the theme mode to scoped.
70
+ * @cssclass forge-app-bar-theme - Applies the scoped theme from the app bar to the element.
64
71
  * @cssclass forge-app-bar--raised - The app bar container element when raised.
65
72
  * @cssclass forge-app-bar__logo - The logo container element.
66
73
  * @cssclass forge-app-bar__title - The title container element.
@@ -81,4 +88,5 @@ export declare class AppBarComponent extends BaseComponent implements IAppBarCom
81
88
  theme: AppBarTheme;
82
89
  href: string;
83
90
  target: string;
91
+ themeMode: AppBarThemeMode;
84
92
  }
@@ -10,7 +10,7 @@ import { AppBarCore } from './app-bar-core';
10
10
  import { APP_BAR_CONSTANTS } from './app-bar-constants';
11
11
  import { BaseComponent } from '../../core/base/base-component';
12
12
  const template = '<template><div class=\"forge-app-bar\" part=\"root\"><div class=\"row\"><div class=\"section\"><slot name=\"start\"></slot><div class=\"logo-title-container\"><slot name=\"logo\"></slot><slot name=\"title\"></slot></div></div><div id=\"center-section\" class=\"section\"><slot name=\"center\"></slot></div><div class=\"section\"><slot name=\"end\"></slot></div></div><div><slot name=\"bottom\"></slot></div></div></template>';
13
- const styles = ':host{--_app-bar-background:var(--forge-app-bar-background, var(--forge-theme-brand, #283593));--_app-bar-foreground:var(--forge-app-bar-foreground, var(--forge-theme-on-brand, #ffffff))}:host{display:block}:host([hidden]){display:none}:host(:not([theme])){--forge-theme-primary:var(--_app-bar-foreground);--forge-theme-on-primary:rgba(0, 0, 0, 0.87);--forge-theme-text-high:rgba(255, 255, 255, 0.87);--forge-theme-text-medium:rgba(255, 255, 255, 0.54);--forge-theme-text-low:rgba(255, 255, 255, 0.38);--forge-theme-outline-high:rgba(255, 255, 255, 0.87);--forge-theme-outline-medium:rgba(255, 255, 255, 0.54);--forge-theme-outline-low:rgba(255, 255, 255, 0.38)}.forge-app-bar{--_app-bar-z-index:var(--forge-app-bar-z-index, var(--forge-z-index-header, 4));--_app-bar-elevation:var(--forge-app-bar-elevation, 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));--_app-bar-height:var(--forge-app-bar-height, 56px);--_app-bar-row-padding:var(--forge-app-bar-row-padding, var(--forge-spacing-xxsmall, 4px));--_app-bar-logo-gap:var(--forge-app-bar-logo-gap, var(--forge-spacing-medium, 16px));--_app-bar-logo-font-size:var(--forge-app-bar-logo-font-size, calc(var(--forge-typography-font-size, 1rem) * 2.5));--_app-bar-title-padding:var(--forge-app-bar-title-padding, var(--forge-spacing-xsmall, 8px));--_app-bar-columns:var(--forge-app-bar-columns, 1fr 1fr 1fr);--_app-bar-transition-duration:var(--forge-app-bar-transition-duration, var(--forge-animation-duration-short4, 200ms));--_app-bar-transition-timing:var(--forge-app-bar-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-app-bar{background:var(--_app-bar-background);color:var(--_app-bar-foreground);position:relative;z-index:var(--_app-bar-z-index);display:grid;grid-template-rows:1fr auto;transition-property:box-shadow,background-color;transition-duration:var(--_app-bar-transition-duration);transition-timing-function:var(--_app-bar-transition-timing);box-sizing:border-box;width:100%}.forge-app-bar .row{display:grid;align-items:center;grid-template-columns:var(--_app-bar-columns);height:var(--_app-bar-height);padding-inline:var(--_app-bar-row-padding)}.forge-app-bar.no-center .row{grid-template-columns:1fr auto}.forge-app-bar .section{display:inline-flex;flex:1 1 auto;align-items:center;box-sizing:border-box;min-width:0;height:100%}.forge-app-bar .section:not(:last-child):not(:first-child){justify-content:center}.forge-app-bar .section:last-child{justify-self:end}.forge-app-bar h1{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-heading4-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-heading4-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-font-size-scale, 1.25)));font-weight:var(--forge-typography-heading4-font-weight,500);line-height:var(--forge-typography-heading4-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-line-height-scale, 1.5)));letter-spacing:var(--forge-typography-heading4-letter-spacing, .005em);text-transform:var(--forge-typography-heading4-text-transform,inherit);text-decoration:var(--forge-typography-heading4-text-decoration,inherit);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-app-bar a{outline:0;text-decoration:none;color:inherit;box-sizing:border-box;height:100%}.forge-app-bar a forge-state-layer{--forge-state-layer-color:var(--_app-bar-foreground)}.forge-app-bar a forge-focus-indicator{--forge-focus-indicator-color:var(--_app-bar-foreground);--forge-focus-indicator-shape:4px;--forge-focus-indicator-offset-block:4px}.forge-app-bar .logo-title-container{position:relative;display:flex;align-items:center;gap:var(--_app-bar-logo-gap);min-width:0;padding-inline:var(--_app-bar-title-padding)}:host(:is(:not([elevation]),[elevation=raised])) .forge-app-bar{box-shadow:var(--_app-bar-elevation)}::slotted(forge-tab-bar){--forge-tab-bar-divider-thickness:0}::slotted([slot=logo]){font-size:var(--_app-bar-logo-font-size);height:1em;width:1em}::slotted(forge-app-bar-search[slot=center]){width:100%}:host([theme=white]){--forge-theme-primary:black;--forge-theme-on-primary:rgba(255, 255, 255, 0.87);--forge-theme-text-medium:rgba(0, 0, 0, 0.54)}:host([theme=white]) .forge-app-bar{--_app-bar-background:var(--forge-app-bar-background, white);--_app-bar-foreground:var(--forge-app-bar-foreground, black)}';
13
+ const styles = ':host{--_app-bar-background:var(--forge-app-bar-background, var(--forge-theme-brand, #283593));--_app-bar-foreground:var(--forge-app-bar-foreground, var(--forge-theme-on-brand, #ffffff))}:host{display:block}:host([hidden]){display:none}:host(:not([theme]):not([theme-mode=scoped])){--forge-theme-primary:var(--_app-bar-foreground);--forge-theme-on-primary:rgba(0, 0, 0, 0.87);--forge-theme-text-high:rgba(255, 255, 255, 0.87);--forge-theme-text-medium:rgba(255, 255, 255, 0.54);--forge-theme-text-low:rgba(255, 255, 255, 0.38);--forge-theme-outline-high:rgba(255, 255, 255, 0.87);--forge-theme-outline-medium:rgba(255, 255, 255, 0.54);--forge-theme-outline-low:rgba(255, 255, 255, 0.38)}:host([theme-mode=scoped]) .forge-app-bar{color:inherit}:host([theme-mode=scoped]) .forge-app-bar .logo-title-container{color:var(--_app-bar-foreground)}:host{--forge-app-bar-theme-foreground:var(--_app-bar-foreground);--forge-app-bar-theme-foreground-muted:rgba(255, 255, 255, 0.54)}.forge-app-bar{--_app-bar-z-index:var(--forge-app-bar-z-index, var(--forge-z-index-header, 4));--_app-bar-elevation:var(--forge-app-bar-elevation, 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));--_app-bar-height:var(--forge-app-bar-height, 56px);--_app-bar-row-padding:var(--forge-app-bar-row-padding, var(--forge-spacing-xxsmall, 4px));--_app-bar-logo-gap:var(--forge-app-bar-logo-gap, var(--forge-spacing-medium, 16px));--_app-bar-logo-font-size:var(--forge-app-bar-logo-font-size, calc(var(--forge-typography-font-size, 1rem) * 2.5));--_app-bar-title-padding:var(--forge-app-bar-title-padding, var(--forge-spacing-xsmall, 8px));--_app-bar-columns:var(--forge-app-bar-columns, 1fr 1fr 1fr);--_app-bar-transition-duration:var(--forge-app-bar-transition-duration, var(--forge-animation-duration-short4, 200ms));--_app-bar-transition-timing:var(--forge-app-bar-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_app-bar-theme-foreground:var(--forge-app-bar-theme-foreground, var(--_app-bar-foreground));--_app-bar-theme-foreground-muted:var(--forge-app-bar-theme-foreground-muted, rgba(255, 255, 255, 0.54))}.forge-app-bar{background:var(--_app-bar-background);color:var(--_app-bar-foreground);position:relative;z-index:var(--_app-bar-z-index);display:grid;grid-template-rows:1fr auto;transition-property:box-shadow,background-color;transition-duration:var(--_app-bar-transition-duration);transition-timing-function:var(--_app-bar-transition-timing);box-sizing:border-box;width:100%}.forge-app-bar .row{display:grid;align-items:center;grid-template-columns:var(--_app-bar-columns);height:var(--_app-bar-height);padding-inline:var(--_app-bar-row-padding)}.forge-app-bar.no-center .row{grid-template-columns:1fr auto}.forge-app-bar .section{display:inline-flex;flex:1 1 auto;align-items:center;box-sizing:border-box;min-width:0;height:100%}.forge-app-bar .section:not(:last-child):not(:first-child){justify-content:center}.forge-app-bar .section:last-child{justify-self:end}.forge-app-bar h1{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-heading4-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-heading4-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-font-size-scale, 1.25)));font-weight:var(--forge-typography-heading4-font-weight,500);line-height:var(--forge-typography-heading4-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading4-line-height-scale, 1.5)));letter-spacing:var(--forge-typography-heading4-letter-spacing, .005em);text-transform:var(--forge-typography-heading4-text-transform,inherit);text-decoration:var(--forge-typography-heading4-text-decoration,inherit);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forge-app-bar a{outline:0;text-decoration:none;color:inherit;box-sizing:border-box;height:100%}.forge-app-bar a forge-state-layer{--forge-state-layer-color:var(--_app-bar-foreground)}.forge-app-bar a forge-focus-indicator{--forge-focus-indicator-color:var(--_app-bar-foreground);--forge-focus-indicator-shape:4px;--forge-focus-indicator-offset-block:4px}.forge-app-bar .logo-title-container{position:relative;display:flex;align-items:center;gap:var(--_app-bar-logo-gap);min-width:0;padding-inline:var(--_app-bar-title-padding)}:host(:is(:not([elevation]),[elevation=raised])) .forge-app-bar{box-shadow:var(--_app-bar-elevation)}:host([theme-mode=scoped]) ::slotted(:where(forge-tab-bar,forge-icon-button,forge-button)){color:var(--_app-bar-theme-foreground);--forge-tab-active-color:var(--_app-bar-theme-foreground);--forge-tab-inactive-color:var(--_app-bar-theme-foreground-muted)}::slotted(forge-tab-bar){--forge-tab-bar-divider-thickness:0}::slotted([slot=logo]){font-size:var(--_app-bar-logo-font-size);height:1em}::slotted(forge-app-bar-search[slot=center]){width:100%}:host([theme=white]){--_app-bar-background:var(--forge-app-bar-background, white);--_app-bar-foreground:var(--forge-app-bar-foreground, black);--forge-app-bar-theme-foreground-muted:rgba(0, 0, 0, 0.54)}:host([theme=white]:not([theme-mode=scoped])){--forge-theme-primary:black;--forge-theme-on-primary:rgba(255, 255, 255, 0.87);--forge-theme-text-medium:rgba(0, 0, 0, 0.54)}';
14
14
  /**
15
15
  * @tag forge-app-bar
16
16
  *
@@ -21,15 +21,19 @@ const styles = ':host{--_app-bar-background:var(--forge-app-bar-background, var(
21
21
  * @property {AppBarTheme} theme - The theme of the app bar.
22
22
  * @property {string} href - The href that will be used to make the logo and title area a clickable link.
23
23
  * @property {string} target - The `<a>` target of the logo + title area link when `href` is set.
24
+ * @property {AppBarThemeMode} [themeMode="inherit"] - Controls how the theme is applied. `inherit` will apply the global theme to the app bar and all child components. `scoped` will only apply the theme to the app bar and not set any global tokens.
24
25
  *
25
26
  * @attribute {string} title-text - The text to display in the title.
26
27
  * @attribute {string} [elevation="raised"] - The elevation of the app bar.
27
28
  * @attribute {string} theme - The theme of the app bar.
28
29
  * @attribute {string} href - The href that will be used to make the logo and title area a clickable link
29
30
  * @attribute {string} target - The `<a>` target of the logo + title area link when `href` is set.
31
+ * @attribute {string} [theme-mode="inherit"] - Controls how the theme is applied. `inherit` will apply the global theme to the app bar and all child components. `scoped` will only apply the theme to the app bar and not set any global tokens.
30
32
  *
31
33
  * @cssproperty --forge-app-bar-background - The background color of the app bar.
32
34
  * @cssproperty --forge-app-bar-foreground - The text color of the app bar.
35
+ * @cssproperty --forge-app-bar-theme-foreground - The text color of the app bar when using the **scoped theme mode**.
36
+ * @cssproperty --forge-app-bar-theme-foreground-muted - The muted text color of the app bar when using the **scoped theme mode**.
33
37
  * @cssproperty --forge-app-bar-z-index - The `z-index` of the app bar.
34
38
  * @cssproperty --forge-app-bar-elevation - The elevation of the app bar.
35
39
  * @cssproperty --forge-app-bar-height - The height of the app bar.
@@ -52,6 +56,8 @@ const styles = ':host{--_app-bar-background:var(--forge-app-bar-background, var(
52
56
  * @slot end - Places content at the end of the app bar.
53
57
  *
54
58
  * @cssclass forge-app-bar - The app bar container element _(required)_.
59
+ * @cssclass forge-app-bar--scoped - Sets the theme mode to scoped.
60
+ * @cssclass forge-app-bar-theme - Applies the scoped theme from the app bar to the element.
55
61
  * @cssclass forge-app-bar--raised - The app bar container element when raised.
56
62
  * @cssclass forge-app-bar__logo - The logo container element.
57
63
  * @cssclass forge-app-bar__title - The title container element.
@@ -68,7 +74,8 @@ let AppBarComponent = class AppBarComponent extends BaseComponent {
68
74
  APP_BAR_CONSTANTS.attributes.ELEVATION,
69
75
  APP_BAR_CONSTANTS.attributes.THEME,
70
76
  APP_BAR_CONSTANTS.attributes.HREF,
71
- APP_BAR_CONSTANTS.attributes.TARGET
77
+ APP_BAR_CONSTANTS.attributes.TARGET,
78
+ APP_BAR_CONSTANTS.attributes.THEME_MODE
72
79
  ];
73
80
  }
74
81
  constructor() {
@@ -96,6 +103,9 @@ let AppBarComponent = class AppBarComponent extends BaseComponent {
96
103
  case APP_BAR_CONSTANTS.attributes.TARGET:
97
104
  this.target = newValue;
98
105
  break;
106
+ case APP_BAR_CONSTANTS.attributes.THEME_MODE:
107
+ this.themeMode = newValue;
108
+ break;
99
109
  }
100
110
  }
101
111
  };
@@ -114,6 +124,9 @@ __decorate([
114
124
  __decorate([
115
125
  coreProperty()
116
126
  ], AppBarComponent.prototype, "target", void 0);
127
+ __decorate([
128
+ coreProperty()
129
+ ], AppBarComponent.prototype, "themeMode", void 0);
117
130
  AppBarComponent = __decorate([
118
131
  customElement({
119
132
  name: APP_BAR_CONSTANTS.elementName
@@ -14,7 +14,7 @@ import { IconButtonComponent } from '../../icon-button';
14
14
  import { TooltipComponent } from '../../tooltip';
15
15
  import { IconRegistry } from '../../icon';
16
16
  import { BaseComponent } from '../../core/base/base-component';
17
- const template = '<template><forge-menu placement=\"bottom-end\"><forge-icon-button><forge-icon name=\"help\"></forge-icon></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom\">Help</forge-tooltip></forge-menu></template>';
17
+ const template = '<template><forge-menu placement=\"bottom-end\"><forge-icon-button theme=\"app-bar\"><forge-icon name=\"help\"></forge-icon></forge-icon-button><forge-tooltip type=\"label\" placement=\"bottom\">Help</forge-tooltip></forge-menu></template>';
18
18
  /**
19
19
  * @tag forge-app-bar-help-button
20
20
  *