@tylertech/forge 3.9.2 → 3.10.1

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 (31) hide show
  1. package/custom-elements.json +169 -11
  2. package/dist/lib.js +22 -22
  3. package/dist/lib.js.map +3 -3
  4. package/dist/vscode.html-custom-data.json +20 -0
  5. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +1 -1
  6. package/esm/core/mask/date-input-mask.js +18 -1
  7. package/esm/core/utils/date-utils.d.ts +14 -5
  8. package/esm/core/utils/date-utils.js +228 -69
  9. package/esm/date-picker/base/base-date-picker-constants.d.ts +19 -4
  10. package/esm/date-picker/base/base-date-picker-constants.js +20 -1
  11. package/esm/date-picker/base/base-date-picker-core.d.ts +11 -3
  12. package/esm/date-picker/base/base-date-picker-core.js +68 -13
  13. package/esm/date-picker/base/base-date-picker.d.ts +10 -2
  14. package/esm/date-picker/base/base-date-picker.js +17 -1
  15. package/esm/date-picker/date-picker-core.js +1 -1
  16. package/esm/date-range-picker/date-range-picker-core.d.ts +1 -0
  17. package/esm/date-range-picker/date-range-picker-core.js +14 -4
  18. package/esm/floating-action-button/floating-action-button-adapter.d.ts +0 -4
  19. package/esm/floating-action-button/floating-action-button-adapter.js +3 -24
  20. package/esm/floating-action-button/floating-action-button-core.d.ts +0 -1
  21. package/esm/floating-action-button/floating-action-button-core.js +0 -3
  22. package/esm/floating-action-button/floating-action-button.d.ts +0 -1
  23. package/esm/floating-action-button/floating-action-button.js +0 -3
  24. package/esm/list/list/list.js +1 -1
  25. package/esm/list/list-item/list-item.js +1 -1
  26. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  27. package/esm/time-picker/time-picker-core.d.ts +1 -0
  28. package/esm/time-picker/time-picker-core.js +80 -16
  29. package/package.json +1 -1
  30. package/sass/list/list/list.scss +4 -2
  31. package/sass/list/list-item/list-item.scss +3 -1
@@ -20,6 +20,7 @@ export class BaseDatePickerCore {
20
20
  this._masked = true;
21
21
  this._maskFormat = DEFAULT_DATE_MASK;
22
22
  this._showMaskFormat = false;
23
+ this._dateFormat = BASE_DATE_PICKER_CONSTANTS.defaults.DATE_FORMAT;
23
24
  this._valueMode = 'object';
24
25
  this._notifyInputValueChanges = true;
25
26
  this._allowInvalidDate = false;
@@ -160,6 +161,24 @@ export class BaseDatePickerCore {
160
161
  this._emitCloseEvent();
161
162
  }
162
163
  }
164
+ _getDefaultShortcuts() {
165
+ const handleTodayShortcut = () => {
166
+ this._onToday();
167
+ if (this._open) {
168
+ this._closeCalendar(true);
169
+ }
170
+ };
171
+ const formatAllowsMonthAbbreviations = this._dateFormat.toUpperCase().includes('MMM');
172
+ // We only allow "t" shortcut for today if the date format allows month abbreviations
173
+ // because otherwise it could conflict with the "n" shortcut for month names
174
+ if (formatAllowsMonthAbbreviations) {
175
+ return { t: handleTodayShortcut };
176
+ }
177
+ return {
178
+ n: handleTodayShortcut,
179
+ t: handleTodayShortcut
180
+ };
181
+ }
163
182
  _onInputKeydown(evt) {
164
183
  // Handle keyboard shortcuts that make use of the shift key first
165
184
  if (evt.shiftKey) {
@@ -188,6 +207,24 @@ export class BaseDatePickerCore {
188
207
  break;
189
208
  }
190
209
  }
210
+ // Handle date entry shortcuts
211
+ const shortcuts = Object.entries(this._shortcuts ?? this._getDefaultShortcuts());
212
+ if (shortcuts.length && !evt.shiftKey && evt.key.length === 1) {
213
+ const key = evt.key.toLowerCase();
214
+ const shortcut = shortcuts.find(([k]) => k === key);
215
+ if (shortcut) {
216
+ evt.preventDefault();
217
+ const [_k, callback] = shortcut;
218
+ if (typeof callback === 'function') {
219
+ const date = callback({ instance: this._adapter.hostElement });
220
+ if (isValidDate(date)) {
221
+ this._onDateSelected({ date, selected: true, type: 'date' });
222
+ }
223
+ }
224
+ return;
225
+ }
226
+ }
227
+ // Handle shortcuts that do not require the shift key
191
228
  switch (evt.key) {
192
229
  case 'Escape':
193
230
  if (this._open) {
@@ -230,14 +267,6 @@ export class BaseDatePickerCore {
230
267
  this._adapter.propagateCalendarKey(evt);
231
268
  }
232
269
  break;
233
- case 'n':
234
- case 't':
235
- evt.preventDefault();
236
- this._onToday();
237
- if (this._open) {
238
- this._closeCalendar(true);
239
- }
240
- break;
241
270
  case 'PageUp':
242
271
  case 'PageDown':
243
272
  if (this._open) {
@@ -260,7 +289,7 @@ export class BaseDatePickerCore {
260
289
  }
261
290
  }
262
291
  _getSanitizedDateString(value) {
263
- return value.replace(/_|[a-z]|[A-Z]/g, '').replace(/\/$|\/\/$/, '');
292
+ return value.replace(/_/g, '').replace(/\/$|\/\/$/, '');
264
293
  }
265
294
  _onToggleMousedown(evt) {
266
295
  if (this._disabled) {
@@ -312,16 +341,16 @@ export class BaseDatePickerCore {
312
341
  }
313
342
  _formatDate(date) {
314
343
  if (!isValidDate(date)) {
315
- return '';
344
+ return null;
316
345
  }
317
- return typeof this._formatCallback === 'function' ? this._formatCallback(date) : formatDate(date);
346
+ return typeof this._formatCallback === 'function' ? this._formatCallback(date) : formatDate(date, this._dateFormat);
318
347
  }
319
348
  _parseDateString(value) {
320
- value = value.replace(/_|\s/g, '');
349
+ value = value.replace(/_/g, '');
321
350
  if (!value || !value.length) {
322
351
  return null;
323
352
  }
324
- const parsedDate = typeof this._parseCallback === 'function' ? this._parseCallback(value) : parseDateString(value);
353
+ const parsedDate = typeof this._parseCallback === 'function' ? this._parseCallback(value) : parseDateString(value, this._dateFormat);
325
354
  return isValidDate(parsedDate) ? parsedDate : null;
326
355
  }
327
356
  _coerceDateValue(value) {
@@ -408,6 +437,16 @@ export class BaseDatePickerCore {
408
437
  this._adapter.setHostAttribute(BASE_DATE_PICKER_CONSTANTS.observedAttributes.VALUE_MODE, this._valueMode);
409
438
  }
410
439
  }
440
+ get shortcuts() {
441
+ return this._shortcuts;
442
+ }
443
+ set shortcuts(value) {
444
+ if (value === 'off') {
445
+ this._shortcuts = {};
446
+ return;
447
+ }
448
+ this._shortcuts = Object.prototype.toString.call(value) === '[object Object]' ? value : undefined;
449
+ }
411
450
  get min() {
412
451
  return this._min ? new Date(this._min.getTime()) : null;
413
452
  }
@@ -536,6 +575,22 @@ export class BaseDatePickerCore {
536
575
  this._showMaskFormat = value;
537
576
  }
538
577
  }
578
+ get dateFormat() {
579
+ return this._dateFormat;
580
+ }
581
+ set dateFormat(value) {
582
+ if (typeof value !== 'string' || !BASE_DATE_PICKER_CONSTANTS.supportedDateFormats.includes(value)) {
583
+ this._dateFormat = BASE_DATE_PICKER_CONSTANTS.defaults.DATE_FORMAT;
584
+ }
585
+ if (this._dateFormat !== value) {
586
+ this._dateFormat = value;
587
+ // Automatically set the mask format based on the date format
588
+ this._maskFormat = value === BASE_DATE_PICKER_CONSTANTS.defaults.DATE_FORMAT ? DEFAULT_DATE_MASK : value;
589
+ if (this._isInitialized) {
590
+ this._applyMask();
591
+ }
592
+ }
593
+ }
539
594
  get notifyInputValueChanges() {
540
595
  return this._notifyInputValueChanges;
541
596
  }
@@ -5,9 +5,9 @@
5
5
  */
6
6
  import { DayOfWeek } from '../../calendar/calendar-constants';
7
7
  import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
8
- import { DatePickerFormatCallback, DatePickerParseCallback, DatePickerPrepareMaskCallback, DatePickerValueMode, IDatePickerCalendarDropdownText } from './base-date-picker-constants';
9
- import { BaseDatePickerCore } from './base-date-picker-core';
10
8
  import { IBaseDatePickerAdapter } from './base-date-picker-adapter';
9
+ import { DatePickerDateFormat, DatePickerFormatCallback, DatePickerParseCallback, DatePickerPrepareMaskCallback, DatePickerShortcuts, DatePickerValueMode, IDatePickerCalendarDropdownText } from './base-date-picker-constants';
10
+ import { BaseDatePickerCore } from './base-date-picker-core';
11
11
  export interface IBaseDatePickerComponent<TValue> extends IBaseComponent {
12
12
  value: TValue | null | undefined;
13
13
  min: Date | string | null | undefined;
@@ -23,7 +23,9 @@ export interface IBaseDatePickerComponent<TValue> extends IBaseComponent {
23
23
  masked: boolean;
24
24
  maskFormat: string;
25
25
  showMaskFormat: boolean;
26
+ dateFormat: DatePickerDateFormat;
26
27
  valueMode: DatePickerValueMode;
28
+ shortcuts: DatePickerShortcuts;
27
29
  notifyInputValueChanges: boolean;
28
30
  allowInvalidDate: boolean;
29
31
  showToday: boolean;
@@ -53,9 +55,11 @@ export interface IBaseDatePickerComponent<TValue> extends IBaseComponent {
53
55
  * @property {DatePickerPrepareMaskCallback} prepareMaskCallback - The callback to use when altering default mask entry.
54
56
  * @property {boolean} [showClear=false] - Whether the clear button is visible in the popup.
55
57
  * @property {boolean} [showMaskFormat=false] - Whether the mask format is displayed in the input or not. Only applies if `masked` is `true`.
58
+ * @property {DatePickerDateFormat} [dateFormat='MM/DD/YYYY'] - The date format to use for the date picker.
56
59
  * @property {boolean} [showToday=false] - Whether the today button is visible in the popup.
57
60
  * @property {TValue} value - The value of the date picker.
58
61
  * @property {DatePickerValueMode} valueMode - The type for the `value` property and `forge-date-picker-change` event.
62
+ * @property {DatePickerShortcuts} shortcuts - The shortcuts to use for the date picker. Can be an object with key-value pairs where the key is the shortcut name and the value is a function that returns a `Date` object.
59
63
  * @property {string} yearRange - The year range.
60
64
  *
61
65
  * @attribute {boolean} [allow-invalid-date=false] - 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).
@@ -71,8 +75,10 @@ export interface IBaseDatePickerComponent<TValue> extends IBaseComponent {
71
75
  * @attribute {string} [popup-classes] - The CSS classes that are applied to the popup element.
72
76
  * @attribute {boolean} [show-clear=false] - Whether the clear button is visible in the popup.
73
77
  * @attribute {boolean} [show-mask-format=false] - Whether the mask format is displayed in the input or not. Only applies if `masked` is `true`.
78
+ * @attribute {DatePickerDateFormat} [date-format=MM/DD/YYYY] - The date format to use for the date picker.
74
79
  * @attribute {boolean} [show-today=false] - Whether the today button is visible in the popup.
75
80
  * @attribute {DatePickerValueMode} [value-mode=string] - The type for the `value` property and `forge-date-picker-change` event.
81
+ * @attribute {DatePickerShortcuts} shortcuts - When specifies as an attribute you can only use the `off` value to disable shortcuts. Otherwise, you can use the `shortcuts` property to set your own shortcuts.
76
82
  * @attribute {string} [year-range] - The year range.
77
83
  */
78
84
  export declare abstract class BaseDatePickerComponent<TPublicValue, TPrivateValue, TCore extends BaseDatePickerCore<IBaseDatePickerAdapter, TPublicValue, TPrivateValue>> extends BaseComponent implements IBaseDatePickerComponent<TPublicValue> {
@@ -91,7 +97,9 @@ export declare abstract class BaseDatePickerComponent<TPublicValue, TPrivateValu
91
97
  masked: boolean;
92
98
  maskFormat: string;
93
99
  showMaskFormat: boolean;
100
+ dateFormat: DatePickerDateFormat;
94
101
  valueMode: DatePickerValueMode;
102
+ shortcuts: DatePickerShortcuts;
95
103
  notifyInputValueChanges: boolean;
96
104
  allowInvalidDate: boolean;
97
105
  showToday: boolean;
@@ -4,7 +4,7 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { __decorate } from "tslib";
7
- import { coerceBoolean, ensureChild, coreProperty, coerceNumberArray } from '@tylertech/forge-core';
7
+ import { coerceBoolean, coerceNumberArray, coreProperty, ensureChild } from '@tylertech/forge-core';
8
8
  import { BaseComponent } from '../../core/base/base-component';
9
9
  import { BASE_DATE_PICKER_CONSTANTS } from './base-date-picker-constants';
10
10
  /**
@@ -27,9 +27,11 @@ import { BASE_DATE_PICKER_CONSTANTS } from './base-date-picker-constants';
27
27
  * @property {DatePickerPrepareMaskCallback} prepareMaskCallback - The callback to use when altering default mask entry.
28
28
  * @property {boolean} [showClear=false] - Whether the clear button is visible in the popup.
29
29
  * @property {boolean} [showMaskFormat=false] - Whether the mask format is displayed in the input or not. Only applies if `masked` is `true`.
30
+ * @property {DatePickerDateFormat} [dateFormat='MM/DD/YYYY'] - The date format to use for the date picker.
30
31
  * @property {boolean} [showToday=false] - Whether the today button is visible in the popup.
31
32
  * @property {TValue} value - The value of the date picker.
32
33
  * @property {DatePickerValueMode} valueMode - The type for the `value` property and `forge-date-picker-change` event.
34
+ * @property {DatePickerShortcuts} shortcuts - The shortcuts to use for the date picker. Can be an object with key-value pairs where the key is the shortcut name and the value is a function that returns a `Date` object.
33
35
  * @property {string} yearRange - The year range.
34
36
  *
35
37
  * @attribute {boolean} [allow-invalid-date=false] - 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).
@@ -45,8 +47,10 @@ import { BASE_DATE_PICKER_CONSTANTS } from './base-date-picker-constants';
45
47
  * @attribute {string} [popup-classes] - The CSS classes that are applied to the popup element.
46
48
  * @attribute {boolean} [show-clear=false] - Whether the clear button is visible in the popup.
47
49
  * @attribute {boolean} [show-mask-format=false] - Whether the mask format is displayed in the input or not. Only applies if `masked` is `true`.
50
+ * @attribute {DatePickerDateFormat} [date-format=MM/DD/YYYY] - The date format to use for the date picker.
48
51
  * @attribute {boolean} [show-today=false] - Whether the today button is visible in the popup.
49
52
  * @attribute {DatePickerValueMode} [value-mode=string] - The type for the `value` property and `forge-date-picker-change` event.
53
+ * @attribute {DatePickerShortcuts} shortcuts - When specifies as an attribute you can only use the `off` value to disable shortcuts. Otherwise, you can use the `shortcuts` property to set your own shortcuts.
50
54
  * @attribute {string} [year-range] - The year range.
51
55
  */
52
56
  export class BaseDatePickerComponent extends BaseComponent {
@@ -89,12 +93,18 @@ export class BaseDatePickerComponent extends BaseComponent {
89
93
  case BASE_DATE_PICKER_CONSTANTS.observedAttributes.SHOW_MASK_FORMAT:
90
94
  this.showMaskFormat = coerceBoolean(newValue);
91
95
  break;
96
+ case BASE_DATE_PICKER_CONSTANTS.observedAttributes.DATE_FORMAT:
97
+ this.dateFormat = newValue;
98
+ break;
92
99
  case BASE_DATE_PICKER_CONSTANTS.observedAttributes.MASK_FORMAT:
93
100
  this.maskFormat = newValue;
94
101
  break;
95
102
  case BASE_DATE_PICKER_CONSTANTS.observedAttributes.VALUE_MODE:
96
103
  this.valueMode = newValue;
97
104
  break;
105
+ case BASE_DATE_PICKER_CONSTANTS.observedAttributes.SHORTCUTS:
106
+ this.shortcuts = newValue === 'off' ? {} : undefined;
107
+ break;
98
108
  case BASE_DATE_PICKER_CONSTANTS.observedAttributes.ALLOW_INVALID_DATE:
99
109
  this.allowInvalidDate = coerceBoolean(newValue);
100
110
  break;
@@ -149,9 +159,15 @@ __decorate([
149
159
  __decorate([
150
160
  coreProperty()
151
161
  ], BaseDatePickerComponent.prototype, "showMaskFormat", void 0);
162
+ __decorate([
163
+ coreProperty()
164
+ ], BaseDatePickerComponent.prototype, "dateFormat", void 0);
152
165
  __decorate([
153
166
  coreProperty()
154
167
  ], BaseDatePickerComponent.prototype, "valueMode", void 0);
168
+ __decorate([
169
+ coreProperty()
170
+ ], BaseDatePickerComponent.prototype, "shortcuts", void 0);
155
171
  __decorate([
156
172
  coreProperty()
157
173
  ], BaseDatePickerComponent.prototype, "notifyInputValueChanges", void 0);
@@ -70,7 +70,7 @@ export class DatePickerCore extends BaseDatePickerCore {
70
70
  return;
71
71
  }
72
72
  const formattedValue = this._formatDate(value);
73
- this._adapter.setInputValue(formattedValue, this._notifyInputValueChanges);
73
+ this._adapter.setInputValue(formattedValue ?? '', this._notifyInputValueChanges);
74
74
  this._formatInputValue();
75
75
  if (!Platform.isMobile) {
76
76
  this._adapter.selectInputText();
@@ -44,6 +44,7 @@ export declare class DateRangePickerCore extends BaseDatePickerCore<IDateRangePi
44
44
  protected _onDateSelected(event: ICalendarDateSelectEventData): void;
45
45
  protected _applyMin(): void;
46
46
  protected _applyMax(): void;
47
+ protected _applyMask(): void;
47
48
  protected _initializeToMask(): void;
48
49
  protected _applyDisabledDates(): void;
49
50
  protected _applyDisabledDaysOfWeek(): void;
@@ -126,14 +126,14 @@ export class DateRangePickerCore extends BaseDatePickerCore {
126
126
  }
127
127
  }
128
128
  _setFormattedInputValue(suppressValueChanges) {
129
- let formattedDate = this._formatDate(this._from);
129
+ let formattedDate = this._formatDate(this._from) ?? '';
130
130
  if (!formattedDate && !this._allowInvalidDate) {
131
131
  formattedDate = '';
132
132
  }
133
133
  this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);
134
134
  }
135
135
  _setFormattedToInputValue(suppressValueChanges) {
136
- let formattedDate = this._formatDate(this._to);
136
+ let formattedDate = this._formatDate(this._to) ?? '';
137
137
  if (!formattedDate && !this._allowInvalidDate) {
138
138
  formattedDate = '';
139
139
  }
@@ -181,8 +181,8 @@ export class DateRangePickerCore extends BaseDatePickerCore {
181
181
  }
182
182
  const formattedFromValue = this._formatDate((value && value.from) || null);
183
183
  const formattedToValue = this._formatDate((value && value.to) || null);
184
- this._adapter.setInputValue(formattedFromValue, this._notifyInputValueChanges);
185
- this._adapter.setToInputValue(formattedToValue, this._notifyInputValueChanges);
184
+ this._adapter.setInputValue(formattedFromValue ?? '', this._notifyInputValueChanges);
185
+ this._adapter.setToInputValue(formattedToValue ?? '', this._notifyInputValueChanges);
186
186
  this._formatInputValue();
187
187
  this._formatToInputValue();
188
188
  this._from = (value && value.from) || null;
@@ -218,6 +218,16 @@ export class DateRangePickerCore extends BaseDatePickerCore {
218
218
  }
219
219
  super._applyMax();
220
220
  }
221
+ _applyMask() {
222
+ super._applyMask();
223
+ if (this._masked) {
224
+ this._initializeToMask();
225
+ }
226
+ else {
227
+ this._adapter.destroyToMask();
228
+ this._formatToInputValue();
229
+ }
230
+ }
221
231
  _initializeToMask() {
222
232
  if (!this._masked) {
223
233
  return;
@@ -6,15 +6,11 @@
6
6
  import { BaseButtonAdapter, IBaseButtonAdapter } from '../button/base/base-button-adapter';
7
7
  import { IFloatingActionButtonComponent } from './floating-action-button';
8
8
  export interface IFloatingActionButtonAdapter extends IBaseButtonAdapter<IFloatingActionButtonComponent> {
9
- destroy(): void;
10
9
  }
11
10
  export declare class FloatingActionButtonAdapter extends BaseButtonAdapter<IFloatingActionButtonComponent> implements IFloatingActionButtonAdapter {
12
11
  private _labelSlotElement;
13
- private _extendedObserver;
14
12
  constructor(component: IFloatingActionButtonComponent);
15
13
  initialize(): void;
16
- destroy(): void;
17
14
  toggleDefaultPopoverIcon(value: boolean): void;
18
- private _startExtendedWatcher;
19
15
  private _detectExtendedState;
20
16
  }
@@ -13,36 +13,15 @@ export class FloatingActionButtonAdapter extends BaseButtonAdapter {
13
13
  }
14
14
  initialize() {
15
15
  super.initialize();
16
- if (!this._extendedObserver) {
17
- this._startExtendedWatcher();
18
- }
16
+ this._labelSlotElement.addEventListener('slotchange', () => this._detectExtendedState());
19
17
  this._detectExtendedState();
20
18
  }
21
- destroy() {
22
- this._extendedObserver?.disconnect();
23
- this._extendedObserver = undefined;
24
- }
25
19
  toggleDefaultPopoverIcon(value) {
26
20
  super.toggleDefaultPopoverIcon(value);
27
21
  this._detectExtendedState();
28
22
  }
29
- _startExtendedWatcher() {
30
- this._extendedObserver = new MutationObserver(() => this._detectExtendedState());
31
- this._extendedObserver.observe(this._component, { childList: true, subtree: true, characterData: true });
32
- }
33
23
  _detectExtendedState() {
34
- // If there are nodes in the "label" slot, then we always assume the extended state
35
- const hasLabel = this._labelSlotElement.assignedNodes().length > 0;
36
- if (hasLabel) {
37
- this._rootElement.classList.add(FLOATING_ACTION_BUTTON_CONSTANTS.classes.EXTENDED);
38
- return;
39
- }
40
- // Remove the extended class first so we can compare the width without it affecting the styles
41
- this._rootElement.classList.remove(FLOATING_ACTION_BUTTON_CONSTANTS.classes.EXTENDED);
42
- // When the width is greater than the height, we assume the button is in the extended state
43
- const isExtended = this._component.clientWidth > this._component.clientHeight;
44
- if (isExtended) {
45
- this._rootElement.classList.add(FLOATING_ACTION_BUTTON_CONSTANTS.classes.EXTENDED);
46
- }
24
+ const isExtended = this._labelSlotElement.assignedNodes().length > 0 || this._component.popoverIcon;
25
+ this._rootElement.classList.toggle(FLOATING_ACTION_BUTTON_CONSTANTS.classes.EXTENDED, isExtended);
47
26
  }
48
27
  }
@@ -17,7 +17,6 @@ export declare class FloatingActionButtonCore extends BaseButtonCore<IFloatingAc
17
17
  private _density;
18
18
  private _elevation;
19
19
  constructor(adapter: IFloatingActionButtonAdapter);
20
- destroy(): void;
21
20
  get theme(): ButtonTheme;
22
21
  set theme(value: ButtonTheme);
23
22
  get density(): FloatingActionButtonDensity;
@@ -12,9 +12,6 @@ export class FloatingActionButtonCore extends BaseButtonCore {
12
12
  this._density = FLOATING_ACTION_BUTTON_CONSTANTS.defaults.DEFAULT_DENSITY;
13
13
  this._elevation = FLOATING_ACTION_BUTTON_CONSTANTS.defaults.DEFAULT_ELEVATION;
14
14
  }
15
- destroy() {
16
- this._adapter.destroy();
17
- }
18
15
  get theme() {
19
16
  return this._theme;
20
17
  }
@@ -84,7 +84,6 @@ export declare class FloatingActionButtonComponent extends BaseButton<FloatingAc
84
84
  static get observedAttributes(): string[];
85
85
  protected readonly _core: FloatingActionButtonCore;
86
86
  constructor();
87
- disconnectedCallback(): void;
88
87
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
89
88
  theme: ButtonTheme;
90
89
  density: FloatingActionButtonDensity;
@@ -87,9 +87,6 @@ let FloatingActionButtonComponent = class FloatingActionButtonComponent extends
87
87
  attachShadowTemplate(this, template, styles);
88
88
  this._core = new FloatingActionButtonCore(new FloatingActionButtonAdapter(this));
89
89
  }
90
- disconnectedCallback() {
91
- this._core.destroy();
92
- }
93
90
  attributeChangedCallback(name, oldValue, newValue) {
94
91
  switch (name) {
95
92
  case FLOATING_ACTION_BUTTON_CONSTANTS.attributes.THEME:
@@ -14,7 +14,7 @@ import { setDefaultAria } from '../../constants';
14
14
  import { WithElementInternals } from '../../core/mixins/internals/with-element-internals';
15
15
  import { WithDefaultAria } from '../../core/mixins/internals/with-default-aria';
16
16
  const template = '<template><div class=\"forge-list\" part=\"root\"><div class=\"inner\"><slot></slot></div></div></template>';
17
- const styles = ':host{--_list-navlist-spacing:var(--forge-list-navlist-spacing, var(--forge-spacing-xxsmall, 4px));--_list-navlist-margin:var(--forge-list-navlist-margin, var(--forge-spacing-xxsmall, 4px) var(--forge-spacing-xsmall, 8px));--_list-navlist-height:var(--forge-list-navlist-height, 40px);--_list-navlist-padding:var(--forge-list-navlist-padding, 0 var(--forge-spacing-xsmall, 8px));--_list-navlist-shape:var(--forge-list-navlist-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_list-navlist-font-size:var(--forge-list-navlist-font-size, calc(var(--forge-typography-font-size, 1rem) * 0.875));--_list-navlist-font-weight:var(--forge-list-navlist-font-weight, 500)}:host{display:block}:host([hidden]){display:none}:host([navlist]){margin-block:var(--_list-navlist-spacing);--forge-list-item-height:var(--_list-navlist-height);--forge-list-item-margin:var(--_list-navlist-margin);--forge-list-item-padding:var(--_list-navlist-padding);--forge-list-item-shape:var(--_list-navlist-shape);--forge-list-item-text-font-size:var(--_list-navlist-font-size);--forge-list-item-text-font-weight:var(--_list-navlist-font-weight)}.forge-list{--_list-spacing:var(--forge-list-spacing, 0);--_list-container-color:var(--forge-list-container-color, transparent)}.forge-list{outline:0;background-color:var(--_list-container-color);margin:0;border-radius:inherit;min-width:inherit}.inner{display:grid;gap:var(--_list-spacing);min-width:0}.inner ::slotted(*){min-width:0}';
17
+ const styles = ':host{--_list-navlist-spacing:var(--forge-list-navlist-spacing, var(--forge-spacing-xxsmall, 4px));--_list-navlist-margin:var(--forge-list-navlist-margin, var(--forge-spacing-xxsmall, 4px) var(--forge-spacing-xsmall, 8px));--_list-navlist-height:var(--forge-list-navlist-height, 40px);--_list-navlist-padding:var(--forge-list-navlist-padding, 0 var(--forge-spacing-xsmall, 8px));--_list-navlist-shape:var(--forge-list-navlist-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_list-navlist-font-size:var(--forge-list-navlist-font-size, calc(var(--forge-typography-font-size, 1rem) * 0.875));--_list-navlist-font-weight:var(--forge-list-navlist-font-weight, 500)}:host{display:block}:host([hidden]){display:none}:host([navlist]){--forge-list-item-height:var(--_list-navlist-height);--forge-list-item-margin:var(--_list-navlist-margin);--forge-list-item-padding:var(--_list-navlist-padding);--forge-list-item-shape:var(--_list-navlist-shape);--forge-list-item-text-font-size:var(--_list-navlist-font-size);--forge-list-item-text-font-weight:var(--_list-navlist-font-weight)}:host([navlist]) .forge-list{margin-block:var(--_list-navlist-spacing)}.forge-list{--_list-spacing:var(--forge-list-spacing, 0);--_list-container-color:var(--forge-list-container-color, transparent)}.forge-list{outline:0;background-color:var(--_list-container-color);margin:0;border-radius:inherit;min-width:inherit}.inner{display:grid;gap:var(--_list-spacing);min-width:0}.inner ::slotted(*){min-width:0}';
18
18
  /**
19
19
  * @tag forge-list
20
20
  *
@@ -14,7 +14,7 @@ import { WithElementInternals } from '../../core/mixins/internals/with-element-i
14
14
  import { WithDefaultAria } from '../../core/mixins/internals/with-default-aria';
15
15
  import { BaseComponent } from '../../core/base/base-component';
16
16
  const template = '<template><div class=\"forge-list-item\" part=\"root\"><slot name=\"start\"><slot name=\"leading\"></slot></slot><div class=\"text-container\" part=\"text-container\"><slot></slot><slot name=\"secondary-text\"></slot><slot name=\"tertiary-text\"></slot></div><slot name=\"end\"><slot name=\"trailing\"></slot></slot></div></template>';
17
- const styles = ':host{--_list-item-indent:var(--forge-list-item-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-dense-indent:var(--forge-list-item-dense-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-disabled-cursor:var(--forge-list-item-disabled-cursor, not-allowed)}:host{display:block;outline:0}:host([hidden]){display:none}.forge-list-item{--_list-item-background:var(--forge-list-item-background, transparent);--_list-item-shape:var(--forge-list-item-shape, 0);--_list-item-padding:var(--forge-list-item-padding, 0 var(--forge-spacing-medium, 16px));--_list-item-margin:var(--forge-list-item-margin, 0);--_list-item-height:var(--forge-list-item-height, 48px);--_list-item-dense-height:var(--forge-list-item-dense-height, 32px);--_list-item-cursor:var(--forge-list-item-cursor, pointer);--_list-item-gap:var(--forge-list-item-gap, var(--forge-spacing-large, 24px));--_list-item-text-color:var(--forge-list-item-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-text-font-size:var(--forge-list-item-text-font-size, var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1))));--_list-item-text-font-weight:var(--forge-list-item-text-font-weight, var(--forge-typography-body2-font-weight, 400));--_list-item-text-line-height:var(--forge-list-item-text-line-height, 1.5rem);--_list-item-selected-color:var(--forge-list-item-selected-color, var(--forge-theme-primary, #3f51b5));--_list-item-selected-background:var(--forge-list-item-selected-background, var(--_list-item-selected-color));--_list-item-selected-opacity:var(--forge-list-item-selected-opacity, 0.08);--_list-item-selected-start-color:var(--forge-list-item-selected-start-color, var(--_list-item-selected-color));--_list-item-selected-end-color:var(--forge-list-item-selected-end-color, var(--_list-item-selected-color));--_list-item-selected-text-color:var(--forge-list-item-selected-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-disabled-opacity:var(--forge-list-item-disabled-opacity, 0.38);--_list-item-one-line-height:var(--forge-list-item-one-line-height, var(--_list-item-height));--_list-item-two-line-height:var(--forge-list-item-two-line-height, var(--forge-list-item-height, 72px));--_list-item-three-line-height:var(--forge-list-item-three-line-height, var(--forge-list-item-height, 88px));--_list-item-dense-one-line-height:var(--forge-list-item-dense-one-line-height, var(--_list-item-dense-height));--_list-item-dense-two-line-height:var(--forge-list-item-dense-two-line-height, var(--forge-list-item-dense-height, 56px));--_list-item-dense-three-line-height:var(--forge-list-item-dense-three-line-height, var(--forge-list-item-dense-height, 72px));--_list-item-dense-font-size:var(--forge-list-item-dense-font-size, 0.875rem);--_list-item-dense-gap:var(--forge-list-item-dense-gap, var(--forge-spacing-xsmall, 8px));--_list-item-start-selected-color:var(--forge-list-item-start-selected-color, var(--_list-item-selected-color));--_list-item-end-selected-color:var(--forge-list-item-end-selected-color, var(--_list-item-selected-color));--_list-item-wrap-padding:var(--forge-list-item-wrap-padding, var(--forge-spacing-xsmall, 8px) var(--forge-spacing-medium, 16px))}.forge-list-item{position:relative;display:flex;gap:var(--_list-item-gap);align-items:center;box-sizing:border-box;outline:0;text-decoration:none;border-radius:var(--_list-item-shape);-webkit-tap-highlight-color:transparent;background-color:var(--_list-item-background);height:var(--_list-item-height);min-height:var(--_list-item-height);padding:var(--_list-item-padding);margin:var(--_list-item-margin)}.forge-list-item.interactive{cursor:var(--_list-item-cursor)}.forge-list-item.disabled{cursor:var(--_list-item-disabled-cursor);opacity:var(--_list-item-disabled-opacity)}.forge-list-item.disabled ::slotted(button){cursor:var(--_list-item-disabled-cursor)}.anchor{position:absolute;inset:0}:host([two-line]) .forge-list-item{height:var(--_list-item-two-line-height);min-height:var(--_list-item-two-line-height)}:host([three-line]) .forge-list-item{height:var(--_list-item-three-line-height);min-height:var(--_list-item-three-line-height)}:host([dense]) .forge-list-item{--_list-item-gap:var(--_list-item-dense-gap);height:var(--_list-item-dense-one-line-height);min-height:var(--_list-item-dense-one-line-height)}:host([dense]) .text-container{font-size:var(--_list-item-dense-font-size)}:host([dense][indented]){margin-inline-start:var(--_list-item-dense-indent)}:host([dense][two-line]) .forge-list-item{height:var(--_list-item-dense-two-line-height);min-height:var(--_list-item-dense-two-line-height)}:host([dense][three-line]) .forge-list-item{height:var(--_list-item-dense-three-line-height);min-height:var(--_list-item-dense-three-line-height)}:host([selected]) .forge-list-item{color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item::before{content:\"\";position:absolute;inset:0;border-radius:inherit;opacity:var(--_list-item-selected-opacity);background-color:var(--_list-item-selected-background);pointer-events:none}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-selected-color);isolation:isolate}:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]){color:var(--_list-item-start-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-end-selected-color)}:host([selected]) .text-container{color:var(--_list-item-selected-color)}:host([selected]) forge-state-layer{--forge-state-layer-color:var(--_list-item-selected-color)}:host([indented]){margin-inline-start:var(--_list-item-indent)}.text-container{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));letter-spacing:var(--forge-typography-body2-letter-spacing, .015625em);text-transform:var(--forge-typography-body2-text-transform,inherit);text-decoration:var(--forge-typography-body2-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;isolation:isolate;font-size:var(--_list-item-text-font-size);font-weight:var(--_list-item-text-font-weight);line-height:var(--_list-item-text-line-height);flex:1;contain:layout}slot[name=secondary-text]::slotted(*),slot[name=tertiary-text]::slotted(*){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_list-item-text-color);display:block}:host([selected]) slot[name=secondary-text]::slotted(*),:host([selected]) slot[name=tertiary-text]::slotted(*){color:var(--_list-item-selected-text-color)}::slotted(:is(button:not([slot]),[forge-list-item-button])){appearance:none;cursor:var(--_list-item-cursor);border:none;padding-block:0;padding-inline:0;margin:0;box-sizing:border-box;width:100%;background:0 0;color:inherit;outline:0;font:inherit;user-select:auto;text-align:inherit;letter-spacing:inherit;word-spacing:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}::slotted(a){outline:0;color:inherit!important;text-decoration:none!important}::slotted([slot=end]),::slotted([slot=leading]),::slotted([slot=start]),::slotted([slot=trailing]){color:var(--_list-item-text-color);display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;fill:currentColor}:host(:not([noninteractive])) ::slotted(:is(forge-checkbox,forge-radio,forge-switch):is([slot=start],[slot=end],[slot=leading],[slot=trailing]):not([forge-ignore])){--forge-focus-indicator-display:none;--forge-state-layer-display:none}:host([selected]) ::slotted([slot=leading]),:host([selected]) ::slotted([slot=start]){color:var(--_list-item-start-selected-color)}:host([selected]) ::slotted([slot=end]),:host([selected]) ::slotted([slot=trailing]){color:var(--_list-item-end-selected-color)}:host([wrap]) .forge-list-item{--_list-item-padding:var(--_list-item-wrap-padding);height:auto}:host([wrap]) .text-container{white-space:normal;overflow:visible;text-overflow:clip;line-height:normal}:host([wrap]) ::slotted(:is(button,[role=button][tabindex],[forge-list-item-button])){white-space:normal}:host([wrap]) slot[name=secondary-text]::slotted(*),:host([wrap]) slot[name=tertiary-text]::slotted(*){white-space:normal;overflow:visible;text-overflow:clip;line-height:normal}forge-focus-indicator{z-index:1;--forge-focus-indicator-shape:calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1))}forge-state-layer{border-radius:inherit}';
17
+ const styles = ':host{--_list-item-indent:var(--forge-list-item-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-dense-indent:var(--forge-list-item-dense-indent, var(--forge-spacing-xxlarge, 48px));--_list-item-disabled-cursor:var(--forge-list-item-disabled-cursor, not-allowed)}:host{display:block;outline:0}:host([hidden]){display:none}.forge-list-item{--_list-item-background:var(--forge-list-item-background, transparent);--_list-item-shape:var(--forge-list-item-shape, 0);--_list-item-padding:var(--forge-list-item-padding, 0 var(--forge-spacing-medium, 16px));--_list-item-margin:var(--forge-list-item-margin, 0);--_list-item-height:var(--forge-list-item-height, 48px);--_list-item-dense-height:var(--forge-list-item-dense-height, 32px);--_list-item-cursor:var(--forge-list-item-cursor, pointer);--_list-item-gap:var(--forge-list-item-gap, var(--forge-spacing-large, 24px));--_list-item-text-color:var(--forge-list-item-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-text-font-size:var(--forge-list-item-text-font-size, var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1))));--_list-item-text-font-weight:var(--forge-list-item-text-font-weight, var(--forge-typography-body2-font-weight, 400));--_list-item-text-line-height:var(--forge-list-item-text-line-height, 1.5rem);--_list-item-selected-color:var(--forge-list-item-selected-color, var(--forge-theme-primary, #3f51b5));--_list-item-selected-background:var(--forge-list-item-selected-background, var(--_list-item-selected-color));--_list-item-selected-opacity:var(--forge-list-item-selected-opacity, 0.08);--_list-item-selected-start-color:var(--forge-list-item-selected-start-color, var(--_list-item-selected-color));--_list-item-selected-end-color:var(--forge-list-item-selected-end-color, var(--_list-item-selected-color));--_list-item-selected-text-color:var(--forge-list-item-selected-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6)));--_list-item-disabled-opacity:var(--forge-list-item-disabled-opacity, 0.38);--_list-item-one-line-height:var(--forge-list-item-one-line-height, var(--_list-item-height));--_list-item-two-line-height:var(--forge-list-item-two-line-height, var(--forge-list-item-height, 72px));--_list-item-three-line-height:var(--forge-list-item-three-line-height, var(--forge-list-item-height, 88px));--_list-item-dense-one-line-height:var(--forge-list-item-dense-one-line-height, var(--_list-item-dense-height));--_list-item-dense-two-line-height:var(--forge-list-item-dense-two-line-height, var(--forge-list-item-dense-height, 56px));--_list-item-dense-three-line-height:var(--forge-list-item-dense-three-line-height, var(--forge-list-item-dense-height, 72px));--_list-item-dense-font-size:var(--forge-list-item-dense-font-size, 0.875rem);--_list-item-dense-gap:var(--forge-list-item-dense-gap, var(--forge-spacing-xsmall, 8px));--_list-item-start-selected-color:var(--forge-list-item-start-selected-color, var(--_list-item-selected-color));--_list-item-end-selected-color:var(--forge-list-item-end-selected-color, var(--_list-item-selected-color));--_list-item-wrap-padding:var(--forge-list-item-wrap-padding, var(--forge-spacing-xsmall, 8px) var(--forge-spacing-medium, 16px))}.forge-list-item{position:relative;display:flex;gap:var(--_list-item-gap);align-items:center;box-sizing:border-box;outline:0;text-decoration:none;border-radius:var(--_list-item-shape);-webkit-tap-highlight-color:transparent;background-color:var(--_list-item-background);height:var(--_list-item-height);min-height:var(--_list-item-height);padding:var(--_list-item-padding);margin:var(--_list-item-margin)}.forge-list-item.interactive{cursor:var(--_list-item-cursor)}.forge-list-item.disabled{cursor:var(--_list-item-disabled-cursor);opacity:var(--_list-item-disabled-opacity)}.forge-list-item.disabled ::slotted(button){cursor:var(--_list-item-disabled-cursor)}.anchor{position:absolute;inset:0}:host([two-line]) .forge-list-item{height:var(--_list-item-two-line-height);min-height:var(--_list-item-two-line-height)}:host([three-line]) .forge-list-item{height:var(--_list-item-three-line-height);min-height:var(--_list-item-three-line-height)}:host([dense]) .forge-list-item{--_list-item-gap:var(--_list-item-dense-gap);height:var(--_list-item-dense-one-line-height);min-height:var(--_list-item-dense-one-line-height)}:host([dense]) .text-container{font-size:var(--_list-item-dense-font-size)}:host([dense][indented]){margin-inline-start:var(--_list-item-dense-indent)}:host([dense][two-line]) .forge-list-item{height:var(--_list-item-dense-two-line-height);min-height:var(--_list-item-dense-two-line-height)}:host([dense][three-line]) .forge-list-item{height:var(--_list-item-dense-three-line-height);min-height:var(--_list-item-dense-three-line-height)}:host([selected]) .forge-list-item{color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item::before{content:\"\";position:absolute;inset:0;border-radius:inherit;opacity:var(--_list-item-selected-opacity);background-color:var(--_list-item-selected-background);pointer-events:none}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-selected-color);isolation:isolate}:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=start]){color:var(--_list-item-start-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=end]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-end-selected-color)}:host([selected]) .text-container{color:var(--_list-item-selected-color)}:host([selected]) forge-state-layer{--forge-state-layer-color:var(--_list-item-selected-color)}:host([indented]) .forge-list-item{margin-inline-start:var(--_list-item-indent)}.text-container{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));letter-spacing:var(--forge-typography-body2-letter-spacing, .015625em);text-transform:var(--forge-typography-body2-text-transform,inherit);text-decoration:var(--forge-typography-body2-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;isolation:isolate;font-size:var(--_list-item-text-font-size);font-weight:var(--_list-item-text-font-weight);line-height:var(--_list-item-text-line-height);flex:1;contain:layout}slot[name=secondary-text]::slotted(*),slot[name=tertiary-text]::slotted(*){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_list-item-text-color);display:block}:host([selected]) slot[name=secondary-text]::slotted(*),:host([selected]) slot[name=tertiary-text]::slotted(*){color:var(--_list-item-selected-text-color)}::slotted(:is(button:not([slot]),[forge-list-item-button])){appearance:none;cursor:var(--_list-item-cursor);border:none;padding-block:0;padding-inline:0;margin:0;box-sizing:border-box;width:100%;background:0 0;color:inherit;outline:0;font:inherit;user-select:auto;text-align:inherit;letter-spacing:inherit;word-spacing:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}::slotted(a){outline:0;color:inherit!important;text-decoration:none!important}::slotted([slot=end]),::slotted([slot=leading]),::slotted([slot=start]),::slotted([slot=trailing]){color:var(--_list-item-text-color);display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;fill:currentColor}:host(:not([noninteractive])) ::slotted(:is(forge-checkbox,forge-radio,forge-switch):is([slot=start],[slot=end],[slot=leading],[slot=trailing]):not([forge-ignore])){--forge-focus-indicator-display:none;--forge-state-layer-display:none}:host([selected]) ::slotted([slot=leading]),:host([selected]) ::slotted([slot=start]){color:var(--_list-item-start-selected-color)}:host([selected]) ::slotted([slot=end]),:host([selected]) ::slotted([slot=trailing]){color:var(--_list-item-end-selected-color)}:host([wrap]) .forge-list-item{--_list-item-padding:var(--_list-item-wrap-padding);height:auto}:host([wrap]) .text-container{white-space:normal;overflow:visible;text-overflow:clip;line-height:normal}:host([wrap]) ::slotted(:is(button,[role=button][tabindex],[forge-list-item-button])){white-space:normal}:host([wrap]) slot[name=secondary-text]::slotted(*),:host([wrap]) slot[name=tertiary-text]::slotted(*){white-space:normal;overflow:visible;text-overflow:clip;line-height:normal}forge-focus-indicator{z-index:1;--forge-focus-indicator-shape:calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1))}forge-state-layer{border-radius:inherit}';
18
18
  /**
19
19
  * @tag forge-list-item
20
20
  *
@@ -14,7 +14,7 @@ import { IconComponent, IconRegistry } from '../../icon';
14
14
  import { StateLayerComponent } from '../../state-layer';
15
15
  import { FocusIndicatorComponent } from '../../focus-indicator';
16
16
  const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-state-layer target=\"handle\" id=\"state-layer\" exportparts=\"surface:state-layer\"></forge-state-layer><forge-focus-indicator inward target=\"handle\" part=\"focus-indicator\"></forge-focus-indicator></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
17
- const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwkwm;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkwm{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:udxwkxa;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkxa{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwky1;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwky1{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:udxwkyf;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwkyf{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwkyt;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkyt{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:udxwkz2;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes udxwkz2{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:udxwkz5;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwkz5{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:udxwkzb;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes udxwkzb{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
17
+ const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:u79y01n;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u79y01n{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:u79y02l;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u79y02l{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:u79y02v;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes u79y02v{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:u79y03q;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes u79y03q{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:u79y04i;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u79y04i{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:u79y04t;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes u79y04t{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:u79y05l;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes u79y05l{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:u79y06f;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes u79y06f{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
18
18
  /**
19
19
  * @tag forge-split-view-panel
20
20
  *
@@ -89,6 +89,7 @@ export declare class TimePickerCore implements ITimePickerCore {
89
89
  private _trySetValue;
90
90
  private _setValue;
91
91
  private _validateMillis;
92
+ private _isTimeInRange;
92
93
  private _isValidTimeFormat;
93
94
  private _isValidInputValue;
94
95
  private _onSelect;