@tylertech/forge 3.1.3 → 3.3.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 (68) hide show
  1. package/custom-elements.json +239 -60
  2. package/dist/chips/forge-chips.css +1 -0
  3. package/dist/field/forge-field.css +2 -0
  4. package/dist/inline-message/forge-inline-message.css +2 -0
  5. package/dist/lib.js +1 -1
  6. package/dist/lib.js.map +4 -4
  7. package/dist/vscode.css-custom-data.json +5 -0
  8. package/dist/vscode.html-custom-data.json +22 -2
  9. package/esm/app-bar/app-bar/app-bar.d.ts +2 -0
  10. package/esm/app-bar/app-bar/app-bar.js +2 -0
  11. package/esm/autocomplete/autocomplete-adapter.js +1 -7
  12. package/esm/button/base/base-button-adapter.js +1 -1
  13. package/esm/calendar/calendar-adapter.d.ts +6 -6
  14. package/esm/calendar/calendar-adapter.js +45 -11
  15. package/esm/calendar/calendar-constants.d.ts +20 -0
  16. package/esm/calendar/calendar-constants.js +22 -0
  17. package/esm/calendar/calendar-core.d.ts +3 -3
  18. package/esm/calendar/calendar-core.js +5 -17
  19. package/esm/calendar/calendar-dom-utils.js +10 -4
  20. package/esm/calendar/calendar-dropdown/calendar-dropdown-constants.d.ts +2 -0
  21. package/esm/calendar/calendar.d.ts +9 -0
  22. package/esm/calendar/calendar.js +9 -0
  23. package/esm/chip-field/chip-field.js +1 -1
  24. package/esm/chips/chip/chip-core.js +0 -1
  25. package/esm/chips/chip/chip.d.ts +1 -0
  26. package/esm/chips/chip/chip.js +2 -1
  27. package/esm/circular-progress/circular-progress.js +1 -1
  28. package/esm/date-picker/base/base-date-picker-adapter.d.ts +3 -0
  29. package/esm/date-picker/base/base-date-picker-adapter.js +56 -0
  30. package/esm/date-picker/base/base-date-picker-constants.d.ts +11 -0
  31. package/esm/date-picker/base/base-date-picker-constants.js +2 -1
  32. package/esm/date-picker/base/base-date-picker-core.d.ts +4 -1
  33. package/esm/date-picker/base/base-date-picker-core.js +12 -1
  34. package/esm/date-picker/base/base-date-picker.d.ts +5 -1
  35. package/esm/date-picker/base/base-date-picker.js +8 -0
  36. package/esm/field/field-adapter.d.ts +2 -0
  37. package/esm/field/field-adapter.js +4 -0
  38. package/esm/field/field-core.js +1 -0
  39. package/esm/field/field.js +1 -1
  40. package/esm/inline-message/inline-message.js +1 -1
  41. package/esm/paginator/paginator.js +1 -1
  42. package/esm/select/select/select.js +1 -1
  43. package/esm/skip-link/skip-link-constants.d.ts +2 -0
  44. package/esm/skip-link/skip-link-constants.js +2 -1
  45. package/esm/skip-link/skip-link.d.ts +36 -12
  46. package/esm/skip-link/skip-link.js +55 -12
  47. package/esm/tabs/tab/tab-constants.d.ts +1 -3
  48. package/esm/tabs/tab/tab-constants.js +1 -3
  49. package/esm/tabs/tab/tab.d.ts +1 -1
  50. package/esm/tabs/tab/tab.js +1 -1
  51. package/esm/tabs/tab-bar/tab-bar-core.js +2 -1
  52. package/esm/tabs/tab-bar/tab-bar.d.ts +1 -1
  53. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  54. package/esm/text-field/text-field-adapter.d.ts +8 -4
  55. package/esm/text-field/text-field-adapter.js +9 -4
  56. package/esm/text-field/text-field-constants.d.ts +2 -0
  57. package/esm/text-field/text-field-constants.js +2 -0
  58. package/esm/text-field/text-field-core.d.ts +2 -0
  59. package/esm/text-field/text-field-core.js +10 -3
  60. package/package.json +1 -1
  61. package/sass/chip-field/chip-field.scss +2 -1
  62. package/sass/chips/chip/chip.scss +1 -1
  63. package/sass/circular-progress/_core.scss +2 -2
  64. package/sass/core/styles/tokens/chips/chip/_tokens.scss +1 -0
  65. package/sass/field/_core.scss +1 -0
  66. package/sass/field/field.scss +1 -1
  67. package/sass/field/forge-field.scss +3 -1
  68. package/sass/inline-message/_core.scss +2 -0
@@ -3997,6 +3997,11 @@
3997
3997
  "description": "The font size of the chip icon.",
3998
3998
  "values": []
3999
3999
  },
4000
+ {
4001
+ "name": "--forge-chip-focus-indicator-color",
4002
+ "description": "The color of the focus indicator.",
4003
+ "values": []
4004
+ },
4000
4005
  {
4001
4006
  "name": "--forge-chip-disabled-opacity",
4002
4007
  "description": "The opacity of the disabled chip.",
@@ -287,7 +287,7 @@
287
287
  },
288
288
  {
289
289
  "name": "forge-calendar",
290
- "description": "\n---\n\n\n### **Events:**\n - **forge-calendar-date-select** - Event fired when a date is selected.\n- **forge-calendar-focus-change** - Event fired when the focus changes.\n- **forge-calendar-month-change** - Event fired when the month changes.\n- **forge-calendar-view-change** - Event fired when the view changes.\n\n### **Methods:**\n - **clear(): _void_** - Clears the selected date(s).\n- **deselectDate(date: _Date_): _void_** - Deselects a date.\n- **goToDate(date: _Date_, setFocus: _boolean_): _void_** - Navigates to a specific date.\n- **handleKey(evt: _KeyboardEvent_): _void_** - Handles a keyboard event.\n- **layout(): _void_** - Lays out the calendar.\n- **selectDate(date: _Date_): _void_** - Selects a date.\n- **setActiveDate(date: _Date_, setFocus: _boolean_): _boolean_** - Sets the active date.\n- **today(): _void_** - Sets the calendar to today.\n- **toggleDate(date: _Date_, force: _boolean_): _void_** - Toggles a date selection.",
290
+ "description": "\n---\n\n\n### **Events:**\n - **forge-calendar-date-select** - Event fired when a date is selected.\n- **forge-calendar-focus-change** - Event fired when the focus changes.\n- **forge-calendar-month-change** - Event fired when the month changes.\n- **forge-calendar-view-change** - Event fired when the view changes.\n\n### **Methods:**\n - **clear(): _void_** - Clears the selected date(s).\n- **deselectDate(date: _Date_): _void_** - Deselects a date.\n- **goToDate(date: _Date_, setFocus: _boolean_): _void_** - Navigates to a specific date.\n- **handleKey(evt: _KeyboardEvent_): _void_** - Handles a keyboard event.\n- **layout(): _void_** - Lays out the calendar.\n- **selectDate(date: _Date_): _void_** - Selects a date.\n- **setActiveDate(date: _Date_, setFocus: _boolean_): _boolean_** - Sets the active date.\n- **today(): _void_** - Sets the calendar to today.\n- **toggleDate(date: _Date_, force: _boolean_): _void_** - Toggles a date selection.\n\n### **Slots:**\n - **today-button-text** - Text to display in the today button.\n- **clear-button-text** - Text to display in the clear button.\n- **next-month-button-text** - Text to display in the next month button's tooltip.\n- **previous-month-button-text** - Text to display in the previous month button's tooltip.\n- **next-year-button-text** - Text to display in the next year button's tooltip.\n- **previous-year-button-text** - Text to display in the previous year button's tooltip.\n- **next-years-button-text** - Text to display in the next years button's tooltip.\n- **previous-years-button-text** - Text to display in the previous years button's tooltip.",
291
291
  "attributes": [
292
292
  {
293
293
  "name": "allow-single-date-range",
@@ -617,6 +617,11 @@
617
617
  "description": "Whether to allow an invalid date to be input. When true, the date picker will not clear out the value of the input if the date was invalid (i.e. could not be parsed).",
618
618
  "values": []
619
619
  },
620
+ {
621
+ "name": "calendar-text",
622
+ "description": "Customized strings to display in the calendar dropdown UI.",
623
+ "values": [{ "name": "DatePickerCalendarDropdownText" }]
624
+ },
620
625
  {
621
626
  "name": "disabled",
622
627
  "description": "Whether the date picker is disabled or not.",
@@ -691,6 +696,11 @@
691
696
  "description": "Whether to allow an invalid date to be input. When true, the date picker will not clear out the value of the input if the date was invalid (i.e. could not be parsed).",
692
697
  "values": []
693
698
  },
699
+ {
700
+ "name": "calendar-text",
701
+ "description": "Customized strings to display in the calendar dropdown UI.",
702
+ "values": [{ "name": "DatePickerCalendarDropdownText" }]
703
+ },
694
704
  {
695
705
  "name": "disabled",
696
706
  "description": "Whether the date picker is disabled or not.",
@@ -1774,6 +1784,11 @@
1774
1784
  "name": "inline",
1775
1785
  "description": "Whether or not the skip link renders within its container.",
1776
1786
  "values": []
1787
+ },
1788
+ {
1789
+ "name": "skipUrlChange",
1790
+ "description": "Sets the skip link to skip browser navigation and scroll to the target element.",
1791
+ "values": []
1777
1792
  }
1778
1793
  ],
1779
1794
  "references": []
@@ -2381,6 +2396,11 @@
2381
2396
  "name": "href",
2382
2397
  "description": "The href that will be used to make the logo and title area a clickable link",
2383
2398
  "values": []
2399
+ },
2400
+ {
2401
+ "name": "target",
2402
+ "description": "The `<a>` target of the logo + title area link when `href` is set.",
2403
+ "values": []
2384
2404
  }
2385
2405
  ],
2386
2406
  "references": []
@@ -2643,7 +2663,7 @@
2643
2663
  },
2644
2664
  {
2645
2665
  "name": "forge-chip",
2646
- "description": "\n---\n\n\n### **Events:**\n - **forge-chip-delete** - Event fired when the chip is deleted.\n- **forge-chip-select** - Event fired when the chip is selected.\n\n### **Slots:**\n - _default_ - The content of the chip.\n- **start** - The start content of the chip.\n- **end** - The end content of the chip.\n\n### **CSS Properties:**\n - **--forge-chip-background** - The background color of the chip. _(default: undefined)_\n- **--forge-chip-color** - The background color of the chip. _(default: undefined)_\n- **--forge-chip-shape** - The shape of the chip. _(default: undefined)_\n- **--forge-chip-spacing** - The spacing between chips. _(default: undefined)_\n- **--forge-chip-height** - The height of the chip. _(default: undefined)_\n- **--forge-chip-padding-inline** - The inline padding of the chip. _(default: undefined)_\n- **--forge-chip-padding-block** - The block padding of the chip. _(default: undefined)_\n- **--forge-chip-cursor** - The cursor style of the chip. _(default: undefined)_\n- **--forge-chip-icon-font-size** - The font size of the chip icon. _(default: undefined)_\n- **--forge-chip-disabled-opacity** - The opacity of the disabled chip. _(default: undefined)_\n- **--forge-chip-disabled-cursor** - The cursor style of the disabled chip. _(default: undefined)_\n- **--forge-chip-dense-height** - The height of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-padding-inline** - The inline padding of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-spacing** - The spacing between dense chips. _(default: undefined)_\n- **--forge-chip-dense-font-size** - The font size of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-font-weight** - The font weight of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-focus-indicator-offset** - The offset of the focus indicator for dense chips. _(default: undefined)_\n- **--forge-chip-dense-icon-font-size** - The font size of the icon in dense chips. _(default: undefined)_\n- **--forge-chip-remove-button-spacing** - The spacing of the remove button in chips. _(default: undefined)_\n- **--forge-chip-remove-button-height-dense** - The height of the remove button in dense chips. _(default: undefined)_\n- **--forge-chip-remove-button-icon-size-dense** - The icon size of the remove button in dense chips. _(default: undefined)_\n- **--forge-chip-remove-button-spacing-dense** - The spacing of the remove button in dense chips. _(default: undefined)_\n- **--forge-chip-selected-background** - The background color of the selected chip. _(default: undefined)_\n- **--forge-chip-selected-color** - The text color of the selected chip. _(default: undefined)_\n- **--forge-chip-invalid-color** - The text color of the invalid chip. _(default: undefined)_\n- **--forge-chip-invalid-selected-background** - The background color of the invalid selected chip. _(default: undefined)_\n- **--forge-chip-invalid-selected-color** - The text color of the invalid selected chip. _(default: undefined)_\n- **--forge-chip-border-width** - The width of the chip border. _(default: undefined)_\n- **--forge-chip-border-style** - The style of the chip border. _(default: undefined)_\n- **--forge-chip-border-color** - The color of the chip border. _(default: undefined)_\n- **--forge-chip-field-background** - The background color of the chip field. _(default: undefined)_\n- **--forge-chip-field-color** - The text color of the chip field. _(default: undefined)_\n- **--forge-chip-field-shape** - The shape of the chip field. _(default: undefined)_\n- **--forge-chip-field-border-color** - The color of the chip field border. _(default: undefined)_\n- **--forge-chip-field-cursor** - The cursor style of the chip field. _(default: undefined)_\n- **--forge-chip-checkmark-size** - The size of the checkmark in chips. _(default: undefined)_\n- **--forge-chip-checkmark-color** - The color of the checkmark in chips. _(default: undefined)_\n- **--forge-chip-checkmark-spacing** - The spacing of the checkmark in chips. _(default: undefined)_\n- **--forge-chip-avatar-size** - The size of the avatar in chips. _(default: undefined)_\n- **--forge-chip-avatar-size-dense** - The size of the avatar in dense chips. _(default: undefined)_\n- **--forge-chip-avatar-font-size** - The font size of the avatar in chips. _(default: undefined)_\n- **--forge-chip-avatar-font-size-dense** - The font size of the avatar in dense chips. _(default: undefined)_\n- **--forge-chip-avatar-spacing** - The spacing of the avatar in chips. _(default: undefined)_\n- **--forge-chip-avatar-spacing-dense** - The spacing of the avatar in dense chips. _(default: undefined)_\n- **--forge-chip-transition-duration** - The duration of the chip transition. _(default: undefined)_\n- **--forge-chip-transition-easing** - The easing function of the chip transition. _(default: undefined)_\n- **--forge-chip-checkmark-transition-delay** - The delay of the checkmark transition in chips. _(default: undefined)_\n\n### **CSS Parts:**\n - **root** - The component's root element.\n- **trigger** - The trigger element of the chip.\n- **focus-indicator** - The focus indicator of the chip.\n- **state-layer** - The state layer surface.",
2666
+ "description": "\n---\n\n\n### **Events:**\n - **forge-chip-delete** - Event fired when the chip is deleted.\n- **forge-chip-select** - Event fired when the chip is selected.\n\n### **Slots:**\n - _default_ - The content of the chip.\n- **start** - The start content of the chip.\n- **end** - The end content of the chip.\n\n### **CSS Properties:**\n - **--forge-chip-background** - The background color of the chip. _(default: undefined)_\n- **--forge-chip-color** - The background color of the chip. _(default: undefined)_\n- **--forge-chip-shape** - The shape of the chip. _(default: undefined)_\n- **--forge-chip-spacing** - The spacing between chips. _(default: undefined)_\n- **--forge-chip-height** - The height of the chip. _(default: undefined)_\n- **--forge-chip-padding-inline** - The inline padding of the chip. _(default: undefined)_\n- **--forge-chip-padding-block** - The block padding of the chip. _(default: undefined)_\n- **--forge-chip-cursor** - The cursor style of the chip. _(default: undefined)_\n- **--forge-chip-icon-font-size** - The font size of the chip icon. _(default: undefined)_\n- **--forge-chip-focus-indicator-color** - The color of the focus indicator. _(default: undefined)_\n- **--forge-chip-disabled-opacity** - The opacity of the disabled chip. _(default: undefined)_\n- **--forge-chip-disabled-cursor** - The cursor style of the disabled chip. _(default: undefined)_\n- **--forge-chip-dense-height** - The height of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-padding-inline** - The inline padding of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-spacing** - The spacing between dense chips. _(default: undefined)_\n- **--forge-chip-dense-font-size** - The font size of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-font-weight** - The font weight of the dense chip. _(default: undefined)_\n- **--forge-chip-dense-focus-indicator-offset** - The offset of the focus indicator for dense chips. _(default: undefined)_\n- **--forge-chip-dense-icon-font-size** - The font size of the icon in dense chips. _(default: undefined)_\n- **--forge-chip-remove-button-spacing** - The spacing of the remove button in chips. _(default: undefined)_\n- **--forge-chip-remove-button-height-dense** - The height of the remove button in dense chips. _(default: undefined)_\n- **--forge-chip-remove-button-icon-size-dense** - The icon size of the remove button in dense chips. _(default: undefined)_\n- **--forge-chip-remove-button-spacing-dense** - The spacing of the remove button in dense chips. _(default: undefined)_\n- **--forge-chip-selected-background** - The background color of the selected chip. _(default: undefined)_\n- **--forge-chip-selected-color** - The text color of the selected chip. _(default: undefined)_\n- **--forge-chip-invalid-color** - The text color of the invalid chip. _(default: undefined)_\n- **--forge-chip-invalid-selected-background** - The background color of the invalid selected chip. _(default: undefined)_\n- **--forge-chip-invalid-selected-color** - The text color of the invalid selected chip. _(default: undefined)_\n- **--forge-chip-border-width** - The width of the chip border. _(default: undefined)_\n- **--forge-chip-border-style** - The style of the chip border. _(default: undefined)_\n- **--forge-chip-border-color** - The color of the chip border. _(default: undefined)_\n- **--forge-chip-field-background** - The background color of the chip field. _(default: undefined)_\n- **--forge-chip-field-color** - The text color of the chip field. _(default: undefined)_\n- **--forge-chip-field-shape** - The shape of the chip field. _(default: undefined)_\n- **--forge-chip-field-border-color** - The color of the chip field border. _(default: undefined)_\n- **--forge-chip-field-cursor** - The cursor style of the chip field. _(default: undefined)_\n- **--forge-chip-checkmark-size** - The size of the checkmark in chips. _(default: undefined)_\n- **--forge-chip-checkmark-color** - The color of the checkmark in chips. _(default: undefined)_\n- **--forge-chip-checkmark-spacing** - The spacing of the checkmark in chips. _(default: undefined)_\n- **--forge-chip-avatar-size** - The size of the avatar in chips. _(default: undefined)_\n- **--forge-chip-avatar-size-dense** - The size of the avatar in dense chips. _(default: undefined)_\n- **--forge-chip-avatar-font-size** - The font size of the avatar in chips. _(default: undefined)_\n- **--forge-chip-avatar-font-size-dense** - The font size of the avatar in dense chips. _(default: undefined)_\n- **--forge-chip-avatar-spacing** - The spacing of the avatar in chips. _(default: undefined)_\n- **--forge-chip-avatar-spacing-dense** - The spacing of the avatar in dense chips. _(default: undefined)_\n- **--forge-chip-transition-duration** - The duration of the chip transition. _(default: undefined)_\n- **--forge-chip-transition-easing** - The easing function of the chip transition. _(default: undefined)_\n- **--forge-chip-checkmark-transition-delay** - The delay of the checkmark transition in chips. _(default: undefined)_\n\n### **CSS Parts:**\n - **root** - The component's root element.\n- **trigger** - The trigger element of the chip.\n- **focus-indicator** - The focus indicator of the chip.\n- **state-layer** - The state layer surface.",
2647
2667
  "attributes": [
2648
2668
  {
2649
2669
  "name": "type",
@@ -29,11 +29,13 @@ declare global {
29
29
  * @property {AppBarElevation} [elevation="raised"] - The elevation of the app bar.
30
30
  * @property {AppBarTheme} theme - The theme of the app bar.
31
31
  * @property {string} href - The href that will be used to make the logo and title area a clickable link.
32
+ * @property {string} target - The `<a>` target of the logo + title area link when `href` is set.
32
33
  *
33
34
  * @attribute {string} title-text - The text to display in the title.
34
35
  * @attribute {string} [elevation="raised"] - The elevation of the app bar.
35
36
  * @attribute {string} theme - The theme of the app bar.
36
37
  * @attribute {string} href - The href that will be used to make the logo and title area a clickable link
38
+ * @attribute {string} target - The `<a>` target of the logo + title area link when `href` is set.
37
39
  *
38
40
  * @cssproperty --forge-app-bar-background - The background color of the app bar.
39
41
  * @cssproperty --forge-app-bar-foreground - The text color of the app bar.
@@ -20,11 +20,13 @@ const styles = ':host{--_app-bar-background:var(--forge-app-bar-background, var(
20
20
  * @property {AppBarElevation} [elevation="raised"] - The elevation of the app bar.
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
+ * @property {string} target - The `<a>` target of the logo + title area link when `href` is set.
23
24
  *
24
25
  * @attribute {string} title-text - The text to display in the title.
25
26
  * @attribute {string} [elevation="raised"] - The elevation of the app bar.
26
27
  * @attribute {string} theme - The theme of the app bar.
27
28
  * @attribute {string} href - The href that will be used to make the logo and title area a clickable link
29
+ * @attribute {string} target - The `<a>` target of the logo + title area link when `href` is set.
28
30
  *
29
31
  * @cssproperty --forge-app-bar-background - The background color of the app bar.
30
32
  * @cssproperty --forge-app-bar-foreground - The text color of the app bar.
@@ -89,13 +89,7 @@ export class AutocompleteAdapter extends BaseAdapter {
89
89
  this._listDropdown?.setBusyVisibility(isVisible);
90
90
  }
91
91
  setDismissListener(listener) {
92
- if (!this._listDropdown || !this._listDropdown.dropdownElement) {
93
- return;
94
- }
95
- const dropdownElement = this._listDropdown.dropdownElement;
96
- if (dropdownElement.anchorElement && dropdownElement.anchorElement instanceof HTMLElement) {
97
- dropdownElement.anchorElement.addEventListener(POPOVER_CONSTANTS.events.TOGGLE, listener);
98
- }
92
+ this._listDropdown?.dropdownElement?.addEventListener(POPOVER_CONSTANTS.events.TOGGLE, listener);
99
93
  }
100
94
  focus() {
101
95
  window.requestAnimationFrame(() => this._inputElement.focus());
@@ -177,7 +177,7 @@ export class BaseButtonAdapter extends BaseAdapter {
177
177
  }
178
178
  }
179
179
  animateStateLayer() {
180
- if (this._stateLayerElement.disabled) {
180
+ if (this._stateLayerElement.disabled || !this._stateLayerElement.isConnected) {
181
181
  return;
182
182
  }
183
183
  this._stateLayerElement?.playAnimation();
@@ -4,9 +4,9 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { BaseAdapter, IBaseAdapter } from '../core/base';
7
- import { DayOfWeek, ICalendarDateOptions, ICalendarDayOptions, ICalendarEvent, ICalendarDateConfig } from './calendar-constants';
8
7
  import { ICalendarComponent } from './calendar';
9
- import { CalendarDirection, ICalendarMenuOption, CalendarMenuAnimationType } from './calendar-menu';
8
+ import { CalendarView, DayOfWeek, ICalendarDateConfig, ICalendarDateOptions, ICalendarDayOptions, ICalendarEvent } from './calendar-constants';
9
+ import { CalendarDirection, CalendarMenuAnimationType, ICalendarMenuOption } from './calendar-menu';
10
10
  export interface ICalendarAdapter extends IBaseAdapter {
11
11
  animateIntoSelectionMenu(options: ICalendarMenuOption[], direction: CalendarDirection, setFocus: boolean): void;
12
12
  closeMenu(): void;
@@ -54,10 +54,10 @@ export interface ICalendarAdapter extends IBaseAdapter {
54
54
  setMonthButtonPressed(value: boolean): void;
55
55
  setMultiple(value: boolean): void;
56
56
  setNextButtonDisabled(value: boolean): void;
57
- setNextButtonLabel(label: string): void;
57
+ setNextButtonLabel(view: CalendarView): void;
58
58
  setPreventFocusOnMenu(value: boolean): void;
59
59
  setPreviousButtonDisabled(value: boolean): void;
60
- setPreviousButtonLabel(label: string): void;
60
+ setPreviousButtonLabel(view: CalendarView): void;
61
61
  setRange(dates: Date[] | null): void;
62
62
  setRangeEnd(date: Date | null): void;
63
63
  setRangeStart(date: Date | null): void;
@@ -115,8 +115,8 @@ export declare class CalendarAdapter extends BaseAdapter<ICalendarComponent> imp
115
115
  removeHeader(): void;
116
116
  setNextButtonDisabled(value: boolean): void;
117
117
  setPreviousButtonDisabled(value: boolean): void;
118
- setNextButtonLabel(label: string): void;
119
- setPreviousButtonLabel(label: string): void;
118
+ setNextButtonLabel(view: CalendarView): void;
119
+ setPreviousButtonLabel(view: CalendarView): void;
120
120
  setMonthButtonPressed(value: boolean): void;
121
121
  setYearButtonPressed(value: boolean): void;
122
122
  setMonth(month: number, locale?: string): void;
@@ -3,13 +3,13 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { getShadowElement, removeAllChildren, appendToAttribute, toggleAttribute, toggleOnAttribute } from '@tylertech/forge-core';
6
+ import { appendToAttribute, getShadowElement, removeAllChildren, toggleAttribute, toggleOnAttribute } from '@tylertech/forge-core';
7
7
  import { BaseAdapter } from '../core/base';
8
8
  import { CALENDAR_CONSTANTS } from './calendar-constants';
9
- import { splitIntoWeeks } from './calendar-utils';
10
9
  import { getAccessibleHeader, getClearButton, getDateElement, getDateId, getDateRow, getDateSpacerElement, getDayElement, getEventElement, getEventWrapperElement, getEventWrapperId, getFooter, getHeader, getMonthButtonContent, getTodayButton, getTooltip, getYearButtonContent, setTabindexOnElement } from './calendar-dom-utils';
11
10
  import { getLocalizedMonth, getLocalizedYear } from './calendar-locale-utils';
12
11
  import { CALENDAR_MENU_CONSTANTS } from './calendar-menu';
12
+ import { splitIntoWeeks } from './calendar-utils';
13
13
  export class CalendarAdapter extends BaseAdapter {
14
14
  constructor(component) {
15
15
  super(component);
@@ -136,20 +136,54 @@ export class CalendarAdapter extends BaseAdapter {
136
136
  const previousButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON);
137
137
  previousButton?.toggleAttribute('disabled', value);
138
138
  }
139
- setNextButtonLabel(label) {
140
- const nextButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.NEXT_BUTTON);
141
- nextButton?.setAttribute('aria-label', label);
139
+ setNextButtonLabel(view) {
140
+ let label = '';
141
+ let slotName = '';
142
+ switch (view) {
143
+ case 'date':
144
+ label = CALENDAR_CONSTANTS.strings.DEFAULT_NEXT_MONTH_BUTTON_TEXT;
145
+ slotName = CALENDAR_CONSTANTS.slots.NEXT_MONTH_BUTTON_TEXT;
146
+ break;
147
+ case 'month':
148
+ label = CALENDAR_CONSTANTS.strings.DEFAULT_NEXT_YEAR_BUTTON_TEXT;
149
+ slotName = CALENDAR_CONSTANTS.slots.NEXT_YEAR_BUTTON_TEXT;
150
+ break;
151
+ case 'year':
152
+ label = CALENDAR_CONSTANTS.strings.DEFAULT_NEXT_YEARS_BUTTON_TEXT;
153
+ slotName = CALENDAR_CONSTANTS.slots.NEXT_YEARS_BUTTON_TEXT;
154
+ break;
155
+ }
142
156
  const nextTooltip = this._container.querySelector(CALENDAR_CONSTANTS.selectors.NEXT_BUTTON_TOOLTIP);
143
157
  if (nextTooltip) {
144
- nextTooltip.innerHTML = label;
158
+ const slot = document.createElement('slot');
159
+ slot.name = slotName;
160
+ slot.innerText = label;
161
+ nextTooltip.innerHTML = slot.outerHTML;
162
+ }
163
+ }
164
+ setPreviousButtonLabel(view) {
165
+ let label = '';
166
+ let slotName = '';
167
+ switch (view) {
168
+ case 'date':
169
+ label = CALENDAR_CONSTANTS.strings.DEFAULT_PREVIOUS_MONTH_BUTTON_TEXT;
170
+ slotName = CALENDAR_CONSTANTS.slots.PREVIOUS_MONTH_BUTTON_TEXT;
171
+ break;
172
+ case 'month':
173
+ label = CALENDAR_CONSTANTS.strings.DEFAULT_PREVIOUS_YEAR_BUTTON_TEXT;
174
+ slotName = CALENDAR_CONSTANTS.slots.PREVIOUS_YEAR_BUTTON_TEXT;
175
+ break;
176
+ case 'year':
177
+ label = CALENDAR_CONSTANTS.strings.DEFAULT_PREVIOUS_YEARS_BUTTON_TEXT;
178
+ slotName = CALENDAR_CONSTANTS.slots.PREVIOUS_YEARS_BUTTON_TEXT;
179
+ break;
145
180
  }
146
- }
147
- setPreviousButtonLabel(label) {
148
- const previousButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON);
149
- previousButton?.setAttribute('aria-label', label);
150
181
  const previousTooltip = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON_TOOLTIP);
151
182
  if (previousTooltip) {
152
- previousTooltip.innerHTML = label;
183
+ const slot = document.createElement('slot');
184
+ slot.name = slotName;
185
+ slot.innerText = label;
186
+ previousTooltip.innerHTML = slot.outerHTML;
153
187
  }
154
188
  }
155
189
  setMonthButtonPressed(value) {
@@ -84,6 +84,16 @@ export declare const CALENDAR_CONSTANTS: {
84
84
  TODAY_BUTTON: string;
85
85
  YEAR_BUTTON: string;
86
86
  };
87
+ slots: {
88
+ PREVIOUS_MONTH_BUTTON_TEXT: string;
89
+ NEXT_MONTH_BUTTON_TEXT: string;
90
+ PREVIOUS_YEAR_BUTTON_TEXT: string;
91
+ NEXT_YEAR_BUTTON_TEXT: string;
92
+ PREVIOUS_YEARS_BUTTON_TEXT: string;
93
+ NEXT_YEARS_BUTTON_TEXT: string;
94
+ TODAY_BUTTON_TEXT: string;
95
+ CLEAR_BUTTON_TEXT: string;
96
+ };
87
97
  parts: {
88
98
  CLEAR_BUTTON: string;
89
99
  DATE: string;
@@ -154,6 +164,16 @@ export declare const CALENDAR_CONSTANTS: {
154
164
  readonly MONTH_CHANGE: "forge-calendar-month-change";
155
165
  readonly VIEW_CHANGE: "forge-calendar-view-change";
156
166
  };
167
+ strings: {
168
+ DEFAULT_PREVIOUS_MONTH_BUTTON_TEXT: string;
169
+ DEFAULT_NEXT_MONTH_BUTTON_TEXT: string;
170
+ DEFAULT_PREVIOUS_YEAR_BUTTON_TEXT: string;
171
+ DEFAULT_NEXT_YEAR_BUTTON_TEXT: string;
172
+ DEFAULT_PREVIOUS_YEARS_BUTTON_TEXT: string;
173
+ DEFAULT_NEXT_YEARS_BUTTON_TEXT: string;
174
+ DEFAULT_TODAY_BUTTON_TEXT: string;
175
+ DEFAULT_CLEAR_BUTTON_TEXT: string;
176
+ };
157
177
  numbers: {
158
178
  DEFAULT_MAX_YEAR_OFFSET: number;
159
179
  DEFAULT_MIN_YEAR_OFFSET: number;
@@ -88,6 +88,16 @@ const ids = {
88
88
  TODAY_BUTTON: 'today-button',
89
89
  YEAR_BUTTON: 'year-button'
90
90
  };
91
+ const slots = {
92
+ PREVIOUS_MONTH_BUTTON_TEXT: 'previous-month-button-text',
93
+ NEXT_MONTH_BUTTON_TEXT: 'next-month-button-text',
94
+ PREVIOUS_YEAR_BUTTON_TEXT: 'previous-year-button-text',
95
+ NEXT_YEAR_BUTTON_TEXT: 'next-year-button-text',
96
+ PREVIOUS_YEARS_BUTTON_TEXT: 'previous-years-button-text',
97
+ NEXT_YEARS_BUTTON_TEXT: 'next-years-button-text',
98
+ TODAY_BUTTON_TEXT: 'today-button-text',
99
+ CLEAR_BUTTON_TEXT: 'clear-button-text'
100
+ };
91
101
  const weekdayParts = {
92
102
  SUNDAY: 'sunday',
93
103
  MONDAY: 'monday',
@@ -161,6 +171,16 @@ const events = {
161
171
  MONTH_CHANGE: `${elementName}-month-change`,
162
172
  VIEW_CHANGE: `${elementName}-view-change`
163
173
  };
174
+ const strings = {
175
+ DEFAULT_PREVIOUS_MONTH_BUTTON_TEXT: 'Previous month',
176
+ DEFAULT_NEXT_MONTH_BUTTON_TEXT: 'Next month',
177
+ DEFAULT_PREVIOUS_YEAR_BUTTON_TEXT: 'Previous year',
178
+ DEFAULT_NEXT_YEAR_BUTTON_TEXT: 'Next year',
179
+ DEFAULT_PREVIOUS_YEARS_BUTTON_TEXT: 'Previous years',
180
+ DEFAULT_NEXT_YEARS_BUTTON_TEXT: 'Next years',
181
+ DEFAULT_TODAY_BUTTON_TEXT: 'Today',
182
+ DEFAULT_CLEAR_BUTTON_TEXT: 'Clear'
183
+ };
164
184
  const numbers = {
165
185
  DEFAULT_MAX_YEAR_OFFSET: 50,
166
186
  DEFAULT_MIN_YEAR_OFFSET: 50,
@@ -175,9 +195,11 @@ export const CALENDAR_CONSTANTS = {
175
195
  attributes,
176
196
  classes,
177
197
  ids,
198
+ slots,
178
199
  parts,
179
200
  selectors,
180
201
  events,
202
+ strings,
181
203
  numbers
182
204
  };
183
205
  export var DayOfWeek;
@@ -3,11 +3,11 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { CalendarEventBuilder, CalendarMode, CalendarView, DayOfWeek, CalendarDateBuilder, CalendarDayBuilder, CalendarDateSelectCallback, ICalendarEvent, CalendarTooltipBuilder } from './calendar-constants';
7
6
  import { ICalendarAdapter } from './calendar-adapter';
8
- import { DateRange } from './core/date-range';
9
- import { ICalendarBase } from './core/calendar-base';
7
+ import { CalendarDateBuilder, CalendarDateSelectCallback, CalendarDayBuilder, CalendarEventBuilder, CalendarMode, CalendarTooltipBuilder, CalendarView, DayOfWeek, ICalendarEvent } from './calendar-constants';
10
8
  import { CalendarMenuAnimationType } from './calendar-menu';
9
+ import { ICalendarBase } from './core/calendar-base';
10
+ import { DateRange } from './core/date-range';
11
11
  export interface ICalendarCore extends ICalendarBase {
12
12
  mode: CalendarMode;
13
13
  view: CalendarView;
@@ -4,12 +4,12 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { isArray, isDefined, isValidDate } from '@tylertech/forge-core';
7
+ import { getLastDateOfMonth, getMonthLength, isSameDate } from '../core/utils/date-utils';
7
8
  import { CALENDAR_CONSTANTS, CalendarMonthFocus, DayOfWeek } from './calendar-constants';
8
- import { isDisabled, isSelected, getAllYearOptions, getDateRangeFromDates, getDatesFromDateRange, getDatesInRange, getEventDescriptions, getEventsOnDate, getFirstDateOfWeek, getIndexOfDate, getLastDateOfWeek, getMinAndMaxDates, getMonthDates, getMonthOptions, getMultipleFromRange, getSortedDaysOfWeek, getYearOptions, isInMonth, isToday, parseYearRange, sortDates, coerceDateFromValue, shouldHandleEvent } from './calendar-utils';
9
- import { getFirstDayOfWeekForLocale, getLocalizedMonth, getLocalizedYear, getWeekendDaysForLocale, isRtlLocale } from './calendar-locale-utils';
10
9
  import { eventIncludesDate } from './calendar-dom-utils';
10
+ import { getFirstDayOfWeekForLocale, getLocalizedMonth, getLocalizedYear, getWeekendDaysForLocale, isRtlLocale } from './calendar-locale-utils';
11
+ import { coerceDateFromValue, getAllYearOptions, getDateRangeFromDates, getDatesFromDateRange, getDatesInRange, getEventDescriptions, getEventsOnDate, getFirstDateOfWeek, getIndexOfDate, getLastDateOfWeek, getMinAndMaxDates, getMonthDates, getMonthOptions, getMultipleFromRange, getSortedDaysOfWeek, getYearOptions, isDisabled, isInMonth, isSelected, isToday, parseYearRange, shouldHandleEvent, sortDates } from './calendar-utils';
11
12
  import { DateRange } from './core/date-range';
12
- import { getLastDateOfMonth, getMonthLength, isSameDate } from '../core/utils/date-utils';
13
13
  export class CalendarCore {
14
14
  constructor(_adapter) {
15
15
  this._adapter = _adapter;
@@ -880,20 +880,8 @@ export class CalendarCore {
880
880
  * Sets the labels on the previous and next buttons appropriate for the view.
881
881
  */
882
882
  _setNavButtonLabels() {
883
- switch (this._view) {
884
- case 'date':
885
- this._adapter.setPreviousButtonLabel('Previous month');
886
- this._adapter.setNextButtonLabel('Next month');
887
- break;
888
- case 'month':
889
- this._adapter.setPreviousButtonLabel('Previous year');
890
- this._adapter.setNextButtonLabel('Next year');
891
- break;
892
- case 'year':
893
- this._adapter.setPreviousButtonLabel('Previous years');
894
- this._adapter.setNextButtonLabel('Next years');
895
- break;
896
- }
883
+ this._adapter.setPreviousButtonLabel(this._view);
884
+ this._adapter.setNextButtonLabel(this._view);
897
885
  }
898
886
  /**
899
887
  * Rebuilds all dates and resets the date grid.
@@ -168,10 +168,10 @@ export function getHeader() {
168
168
  previousButton.setAttribute('part', CALENDAR_CONSTANTS.parts.PREVIOUS_BUTTON);
169
169
  previousButton.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON;
170
170
  previousButton.type = 'button';
171
- previousButton.setAttribute('aria-label', 'Previous');
172
171
  previousIcon.setAttribute('name', 'keyboard_arrow_left');
173
172
  previousTooltip.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON_TOOLTIP;
174
173
  previousTooltip.setAttribute('aria-hidden', 'true');
174
+ previousTooltip.type = 'label';
175
175
  previousTooltip.innerText = 'Previous';
176
176
  previousButton.appendChild(previousTooltip);
177
177
  previousButton.appendChild(previousIcon);
@@ -181,10 +181,10 @@ export function getHeader() {
181
181
  nextButton.setAttribute('part', CALENDAR_CONSTANTS.parts.NEXT_BUTTON);
182
182
  nextButton.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON;
183
183
  nextButton.type = 'button';
184
- nextButton.setAttribute('aria-label', 'Next');
185
184
  nextIcon.setAttribute('name', 'keyboard_arrow_right');
186
185
  nextTooltip.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON_TOOLTIP;
187
186
  nextTooltip.setAttribute('aria-hidden', 'true');
187
+ nextTooltip.type = 'label';
188
188
  nextTooltip.innerText = 'Next';
189
189
  nextButton.appendChild(nextTooltip);
190
190
  nextButton.appendChild(nextIcon);
@@ -252,7 +252,10 @@ export function getClearButton() {
252
252
  clearButton.id = CALENDAR_CONSTANTS.ids.CLEAR_BUTTON;
253
253
  clearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.CLEAR_BUTTON);
254
254
  clearButton.type = 'button';
255
- clearButton.innerText = 'Clear';
255
+ const slot = document.createElement('slot');
256
+ slot.name = CALENDAR_CONSTANTS.slots.CLEAR_BUTTON_TEXT;
257
+ slot.innerText = CALENDAR_CONSTANTS.strings.DEFAULT_CLEAR_BUTTON_TEXT;
258
+ clearButton.appendChild(slot);
256
259
  return clearButton;
257
260
  }
258
261
  /** Returns a today button. */
@@ -261,7 +264,10 @@ export function getTodayButton() {
261
264
  todayButton.id = CALENDAR_CONSTANTS.ids.TODAY_BUTTON;
262
265
  todayButton.setAttribute('part', CALENDAR_CONSTANTS.parts.TODAY_BUTTON);
263
266
  todayButton.type = 'button';
264
- todayButton.innerText = 'Today';
267
+ const slot = document.createElement('slot');
268
+ slot.name = CALENDAR_CONSTANTS.slots.TODAY_BUTTON_TEXT;
269
+ slot.innerText = CALENDAR_CONSTANTS.strings.DEFAULT_TODAY_BUTTON_TEXT;
270
+ todayButton.appendChild(slot);
265
271
  return todayButton;
266
272
  }
267
273
  /** Checks whether an event originated from a date element, returning the element if it did. */
@@ -3,10 +3,12 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
+ import { IDatePickerCalendarDropdownText } from '../../date-picker/base/base-date-picker-constants';
6
7
  export interface ICalendarDropdownPopupConfig {
7
8
  activeChangeCallback?: (id: string) => void;
8
9
  closeCallback?: () => void;
9
10
  popupClasses?: string | string[] | null;
11
+ calendarText?: IDatePickerCalendarDropdownText;
10
12
  }
11
13
  export declare const CALENDAR_DROPDOWN_CONSTANTS: {
12
14
  classes: {
@@ -108,6 +108,15 @@ declare global {
108
108
  * @fires {CustomEvent<ICalendarFocusChangeEventData>} forge-calendar-focus-change - Event fired when the focus changes.
109
109
  * @fires {CustomEvent<ICalendarMonthChangeEventData>} forge-calendar-month-change - Event fired when the month changes.
110
110
  * @fires {CustomEvent<CalendarView>} forge-calendar-view-change - Event fired when the view changes.
111
+ *
112
+ * @slot today-button-text - Text to display in the today button.
113
+ * @slot clear-button-text - Text to display in the clear button.
114
+ * @slot next-month-button-text - Text to display in the next month button's tooltip.
115
+ * @slot previous-month-button-text - Text to display in the previous month button's tooltip.
116
+ * @slot next-year-button-text - Text to display in the next year button's tooltip.
117
+ * @slot previous-year-button-text - Text to display in the previous year button's tooltip.
118
+ * @slot next-years-button-text - Text to display in the next years button's tooltip.
119
+ * @slot previous-years-button-text - Text to display in the previous years button's tooltip.
111
120
  */
112
121
  export declare class CalendarComponent extends BaseComponent implements ICalendarComponent {
113
122
  static get observedAttributes(): string[];
@@ -86,6 +86,15 @@ const styles = '.forge-calendar{width:var(--forge-calendar-width,100%);height:fi
86
86
  * @fires {CustomEvent<ICalendarFocusChangeEventData>} forge-calendar-focus-change - Event fired when the focus changes.
87
87
  * @fires {CustomEvent<ICalendarMonthChangeEventData>} forge-calendar-month-change - Event fired when the month changes.
88
88
  * @fires {CustomEvent<CalendarView>} forge-calendar-view-change - Event fired when the view changes.
89
+ *
90
+ * @slot today-button-text - Text to display in the today button.
91
+ * @slot clear-button-text - Text to display in the clear button.
92
+ * @slot next-month-button-text - Text to display in the next month button's tooltip.
93
+ * @slot previous-month-button-text - Text to display in the previous month button's tooltip.
94
+ * @slot next-year-button-text - Text to display in the next year button's tooltip.
95
+ * @slot previous-year-button-text - Text to display in the previous year button's tooltip.
96
+ * @slot next-years-button-text - Text to display in the next years button's tooltip.
97
+ * @slot previous-years-button-text - Text to display in the previous years button's tooltip.
89
98
  */
90
99
  let CalendarComponent = class CalendarComponent extends BaseComponent {
91
100
  static get observedAttributes() {
@@ -12,7 +12,7 @@ import { ChipComponent } from '../chips';
12
12
  import { BaseField } from '../field/base/base-field';
13
13
  import { BASE_FIELD_CONSTANTS, FieldComponent } from '../field';
14
14
  const template = '<template><forge-field id=\"field\" multiline><slot slot=\"label\" name=\"label\"></slot><slot slot=\"start\" name=\"start\"></slot><div class=\"container\" data-forge-field-input><slot name=\"member\"></slot><slot></slot></div><slot slot=\"end\" name=\"end\"></slot><slot slot=\"accessory\" name=\"accessory\"></slot><slot slot=\"support-text\" name=\"support-text\"></slot><slot slot=\"support-text-end\" name=\"support-text-end\"></slot><slot slot=\"start\" name=\"leading\"></slot><slot slot=\"end\" name=\"trailing\"></slot><slot slot=\"accessory\" name=\"addon-end\"></slot><slot slot=\"support-text\" name=\"helper-text\"></slot></forge-field></template>';
15
- const styles = '@keyframes float-in-label-animation{from{translate:0;opacity:40%}to{translate:var(--_field-floating-label-translation);opacity:100%}}@keyframes float-out-label-animation{from{translate:var(--_field-floating-label-translation);opacity:40%}to{translate:0;opacity:100%}}@keyframes float-in-input-animation{from{translate:0}to{translate:0 calc(calc(max(var(--forge-typography-body2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-body-line-height-scale,1.375))),var(--forge-typography-label2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-label-line-height-scale,1.25))))/ 2) + calc((var(--_field-height) - 56px)/ 8))}}@keyframes float-out-input-animation{from{translate:0 calc(calc(max(var(--forge-typography-body2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-body-line-height-scale,1.375))),var(--forge-typography-label2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-label-line-height-scale,1.25))))/ 2) + calc((var(--_field-height) - 56px)/ 8))}to{translate:0}}@keyframes multiline-inset-label-background-animation{from{opacity:0%}to{opacity:100%}}:host{display:block}:host([hidden]){display:none}forge-field{--_chip-field-member-spacing:var(--forge-chip-field-member-spacing, var(--forge-spacing-xsmall, 8px));--_chip-field-content-spacing:var(--forge-chip-field-content-spacing, var(--forge-spacing-xxsmall, 4px))}.container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--_chip-field-member-spacing);block-size:auto}.container.has-members{margin-block:var(--_chip-field-content-spacing)}.container.has-members ::slotted(input){block-size:auto;inline-size:auto}::slotted(input){flex-grow:1;cursor:inherit;box-sizing:border-box;margin:0;outline:0;border:none;background-color:transparent;padding-block:0;padding-inline:0;inline-size:100%;block-size:100%;color:inherit;font:inherit;font-size:var(--_field-font-size);text-overflow:ellipsis}forge-field{display:contents;--forge-field-multiline-resize:none}forge-field::part(label)::after{content:none}:host([theme=primary]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-primary, #3f51b5);--forge-chip-field-color:var(--forge-theme-on-primary, #ffffff)}:host([theme=secondary]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-secondary, #ffc107);--forge-chip-field-color:var(--forge-theme-on-secondary, #000000)}:host([theme=tertiary]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-tertiary, #3d5afe);--forge-chip-field-color:var(--forge-theme-on-tertiary, #ffffff)}:host([theme=success]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-success, #2e7d32);--forge-chip-field-color:var(--forge-theme-on-success, #ffffff)}:host([theme=warning]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-warning, #d14900);--forge-chip-field-color:var(--forge-theme-on-warning, #ffffff)}:host([theme=error]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-error, #b00020);--forge-chip-field-color:var(--forge-theme-on-error, #ffffff)}:host([theme=info]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-info, #1565c0);--forge-chip-field-color:var(--forge-theme-on-info, #ffffff)}';
15
+ const styles = '@keyframes float-in-label-animation{from{translate:0;opacity:40%}to{translate:var(--_field-floating-label-translation);opacity:100%}}@keyframes float-out-label-animation{from{translate:var(--_field-floating-label-translation);opacity:40%}to{translate:0;opacity:100%}}@keyframes float-in-input-animation{from{translate:0}to{translate:0 calc(calc(max(var(--forge-typography-body2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-body-line-height-scale,1.375))),var(--forge-typography-label2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-label-line-height-scale,1.25))))/ 2) + calc((var(--_field-height) - 56px)/ 8))}}@keyframes float-out-input-animation{from{translate:0 calc(calc(max(var(--forge-typography-body2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-body-line-height-scale,1.375))),var(--forge-typography-label2-line-height,calc(var(--forge-typography-font-size,1rem) * var(--forge-typography-label-line-height-scale,1.25))))/ 2) + calc((var(--_field-height) - 56px)/ 8))}to{translate:0}}@keyframes multiline-inset-label-background-animation{from{opacity:0%}to{opacity:100%}}:host{display:block}:host([hidden]){display:none}forge-field{--_chip-field-member-spacing:var(--forge-chip-field-member-spacing, var(--forge-spacing-xsmall, 8px));--_chip-field-content-spacing:var(--forge-chip-field-content-spacing, var(--forge-spacing-xxsmall, 4px))}.container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--_chip-field-member-spacing);block-size:auto}.container.has-members{margin-block:var(--_chip-field-content-spacing)}.container.has-members ::slotted(input){block-size:auto;inline-size:auto}::slotted(input){flex-grow:1;cursor:inherit;box-sizing:border-box;margin:0;outline:0;border:none;background-color:transparent;padding-block:0;padding-inline:0;inline-size:100%;block-size:100%;color:inherit;font:inherit;font-size:var(--_field-font-size);text-overflow:ellipsis}forge-field{display:contents;--forge-field-multiline-resize:none}forge-field::part(label)::after{content:none}:host([theme=primary]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-primary, #3f51b5);--forge-chip-field-color:var(--forge-theme-on-primary, #ffffff);--forge-chip-focus-indicator-color:var(--forge-theme-primary, #3f51b5)}:host([theme=secondary]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-secondary, #ffc107);--forge-chip-field-color:var(--forge-theme-on-secondary, #000000);--forge-chip-focus-indicator-color:var(--forge-theme-secondary, #ffc107)}:host([theme=tertiary]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-tertiary, #3d5afe);--forge-chip-field-color:var(--forge-theme-on-tertiary, #ffffff);--forge-chip-focus-indicator-color:var(--forge-theme-tertiary, #3d5afe)}:host([theme=success]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-success, #2e7d32);--forge-chip-field-color:var(--forge-theme-on-success, #ffffff);--forge-chip-focus-indicator-color:var(--forge-theme-success, #2e7d32)}:host([theme=warning]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-warning, #d14900);--forge-chip-field-color:var(--forge-theme-on-warning, #ffffff);--forge-chip-focus-indicator-color:var(--forge-theme-warning, #d14900)}:host([theme=error]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-error, #b00020);--forge-chip-field-color:var(--forge-theme-on-error, #ffffff);--forge-chip-focus-indicator-color:var(--forge-theme-error, #b00020)}:host([theme=info]) ::slotted([slot=member]){--forge-chip-field-background:var(--forge-theme-info, #1565c0);--forge-chip-field-color:var(--forge-theme-on-info, #ffffff);--forge-chip-focus-indicator-color:var(--forge-theme-info, #1565c0)}';
16
16
  /**
17
17
  * @tag forge-chip-field
18
18
  *
@@ -183,7 +183,6 @@ export class ChipCore {
183
183
  set value(value) {
184
184
  if (this._value !== value) {
185
185
  this._value = value;
186
- this._adapter.setHostAttribute(CHIP_CONSTANTS.attributes.VALUE, String(this._value));
187
186
  }
188
187
  }
189
188
  get selected() {
@@ -68,6 +68,7 @@ declare global {
68
68
  * @cssproperty --forge-chip-padding-block - The block padding of the chip.
69
69
  * @cssproperty --forge-chip-cursor - The cursor style of the chip.
70
70
  * @cssproperty --forge-chip-icon-font-size - The font size of the chip icon.
71
+ * @cssproperty --forge-chip-focus-indicator-color - The color of the focus indicator.
71
72
  * @cssproperty --forge-chip-disabled-opacity - The opacity of the disabled chip.
72
73
  * @cssproperty --forge-chip-disabled-cursor - The cursor style of the disabled chip.
73
74
  * @cssproperty --forge-chip-dense-height - The height of the dense chip.