igniteui-webcomponents 7.2.0 → 7.2.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## [7.2.1] - 2026-05-27
8
+ ### Fixed
9
+ - Internal library metadata issue
10
+
7
11
  ## [7.2.0] - 2026-05-27
8
12
  ### Added
9
13
  - #### Date Range Picker
@@ -1355,6 +1359,7 @@ Initial release of Ignite UI Web Components
1355
1359
  - Ripple component
1356
1360
  - Switch component
1357
1361
 
1362
+ [7.2.1]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.2.0...7.2.1
1358
1363
  [7.2.0]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.1.3...7.2.0
1359
1364
  [7.1.3]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.1.2...7.1.3
1360
1365
  [7.1.2]: https://github.com/IgniteUI/igniteui-webcomponents/compare/7.1.1...7.1.2
@@ -1,6 +1,9 @@
1
1
  import { DatePart, type DatePartDeltas } from './date-part.js';
2
2
  import { IgcDateTimeInputBaseComponent, type IgcDateTimeInputComponentEventMap } from './date-time-input.base.js';
3
3
  import { DateTimeMaskParser } from './datetime-mask-parser.js';
4
+ export interface IgcDateTimeInputEventMap extends Omit<IgcDateTimeInputComponentEventMap, 'igcChange'> {
5
+ igcChange: CustomEvent<Date | null>;
6
+ }
4
7
  /**
5
8
  * A date time input is an input field that lets you set and edit the date and time in a chosen input element
6
9
  * using customizable display and input formats.
@@ -26,9 +29,6 @@ import { DateTimeMaskParser } from './datetime-mask-parser.js';
26
29
  * @csspart suffix - The suffix wrapper.
27
30
  * @csspart helper-text - The helper text wrapper.
28
31
  */
29
- export interface IgcDateTimeInputEventMap extends Omit<IgcDateTimeInputComponentEventMap, 'igcChange'> {
30
- igcChange: CustomEvent<Date | null>;
31
- }
32
32
  export default class IgcDateTimeInputComponent extends IgcDateTimeInputBaseComponent {
33
33
  static readonly tagName = "igc-date-time-input";
34
34
  static styles: import("lit").CSSResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"date-time-input.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { property } from 'lit/decorators.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { convertToDate, isValidDate } from '../calendar/helpers.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { formatDisplayDate } from '../common/i18n/i18n-controller.js';\nimport { FormValueDateTimeTransformers } from '../common/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '../common/mixins/forms/form-value.js';\nimport { equal } from '../common/util.js';\nimport { styles } from '../input/themes/input.base.css.js';\nimport { styles as shared } from '../input/themes/shared/input.common.css.js';\nimport { all } from '../input/themes/themes.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport {\n DatePart,\n type DatePartDeltas,\n DEFAULT_DATE_PARTS_SPIN_DELTAS,\n} from './date-part.js';\nimport {\n IgcDateTimeInputBaseComponent,\n type IgcDateTimeInputComponentEventMap,\n} from './date-time-input.base.js';\nimport {\n createDatePart,\n DateParts,\n DateTimeMaskParser,\n} from './datetime-mask-parser.js';\nimport { dateTimeInputValidators } from './validators.js';\n\n/**\n * A date time input is an input field that lets you set and edit the date and time in a chosen input element\n * using customizable display and input formats.\n *\n * @element igc-date-time-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot range-overflow - Renders content when the max validation fails.\n * @slot range-underflow - Renders content when the min validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport interface IgcDateTimeInputEventMap extends Omit<\n IgcDateTimeInputComponentEventMap,\n 'igcChange'\n> {\n igcChange: CustomEvent<Date | null>;\n}\n\nexport default class IgcDateTimeInputComponent extends IgcDateTimeInputBaseComponent {\n public static readonly tagName = 'igc-date-time-input';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcDateTimeInputComponent,\n IgcValidationContainerComponent\n );\n }\n\n //#region Private state and properties\n\n protected override readonly _themes = addThemingController(this, all);\n protected override readonly _parser = new DateTimeMaskParser();\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: null,\n transformers: FormValueDateTimeTransformers,\n });\n\n protected override get __validators() {\n return dateTimeInputValidators;\n }\n\n protected override get _datePartDeltas(): DatePartDeltas {\n return { ...DEFAULT_DATE_PARTS_SPIN_DELTAS, ...this.spinDelta };\n }\n\n protected _oldValue: Date | null = null;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the input.\n * @attr\n */\n @property({ converter: convertToDate })\n public set value(value: Date | string | null | undefined) {\n this._formValue.setValueAndFormState(value as Date | null);\n this._updateMaskDisplay();\n }\n\n public get value(): Date | null {\n return this._formValue.value;\n }\n\n //#endregion\n\n //#region Event handlers\n\n protected async _handleFocus(): Promise<void> {\n this._focused = true;\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n\n if (!this.value) {\n this._maskedValue = this._parser.emptyMask;\n await this.updateComplete;\n this.select();\n } else if (this.displayFormat !== this.inputFormat) {\n this._updateMaskDisplay();\n }\n }\n\n protected override _handleBlur(): void {\n this._focused = false;\n\n // Handle incomplete mask input\n if (!(this._isMaskComplete() || this._isEmptyMask)) {\n const parsedDate = this._parser.parseDate(this._maskedValue);\n\n if (parsedDate) {\n this.value = parsedDate;\n } else {\n this.clear();\n }\n } else {\n this._updateMaskDisplay();\n }\n\n // Emit change event if value changed\n if (!this.readOnly && !equal(this._oldValue, this.value)) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n super._handleBlur();\n }\n\n //#endregion\n\n //#region Navigation\n\n /**\n * Calculates the new cursor position when navigating between date parts.\n * direction = 0: navigate to start of previous part\n * direction = 1: navigate to start of next part\n */\n protected override _calculatePartNavigationPosition(\n inputValue: string,\n direction: number\n ): number {\n const cursorPos = this._maskSelection.start;\n const dateParts = this._parser.dateParts;\n\n if (direction === 0) {\n // Navigate backwards: find last literal before cursor\n const part = dateParts.findLast(\n (part) => part.type === DateParts.Literal && part.end < cursorPos\n );\n return part?.end ?? 0;\n }\n\n // Navigate forwards: find first literal after cursor\n const part = dateParts.find(\n (part) => part.type === DateParts.Literal && part.start > cursorPos\n );\n return part?.start ?? inputValue.length;\n }\n\n //#endregion\n\n //#region Internal API\n\n /**\n * Gets the date part at the current cursor position.\n * Uses inclusive end to handle cursor at the end of the last part.\n * Returns undefined if cursor is not within a valid date part.\n */\n protected override _getDatePartAtCursor(): DatePart | undefined {\n return this._parser.getDatePartForCursor(this._inputSelection.start)\n ?.type as DatePart | undefined;\n }\n\n /**\n * Gets the default date part to target when the input is not focused.\n * Prioritizes: Date > Hours > First available part\n */\n protected override _getDefaultDatePart(): DatePart | undefined {\n return (this._parser.getPartByType(DateParts.Date)?.type ??\n this._parser.getPartByType(DateParts.Hours)?.type ??\n this._parser.getFirstDatePart()?.type) as DatePart | undefined;\n }\n\n /**\n * Builds the masked value string from the current date value.\n * Returns empty mask if no value, or existing masked value if incomplete.\n */\n protected override _buildMaskedValue(): string {\n return isValidDate(this.value)\n ? this._parser.formatDate(this.value)\n : this._maskedValue || this._parser.emptyMask;\n }\n\n /**\n * Builds the formatted display value shown when the input is not focused.\n */\n protected override _buildDisplayValue(): string {\n return isValidDate(this.value)\n ? formatDisplayDate(this.value, this.locale, this.displayFormat)\n : '';\n }\n\n /**\n * Commits a value produced by spinning a date part.\n */\n protected override _commitSpunValue(value: unknown): void {\n this.value = value as Date;\n }\n\n /**\n * Sets the value to the current date/time.\n */\n protected override _setCurrentDateTime(): void {\n this.value = new Date();\n this._emitInputEvent();\n }\n\n /**\n * Emits an `igcInput` event whose `detail` is the parsed value as an ISO\n * string (preserving the legacy contract for this component).\n */\n protected override _emitInputEvent(): void {\n this._setTouchedState();\n this.emitEvent('igcInput', { detail: this.value?.toISOString() });\n }\n\n /**\n * Calculates the new date value after spinning a date part.\n */\n protected override _calculateSpunValue(\n datePart: DatePart,\n delta: number | undefined,\n isDecrement: boolean\n ): Date {\n // Default to 1 if delta is 0 or undefined\n const effectiveDelta =\n delta || this._datePartDeltas[datePart as keyof DatePartDeltas] || 1;\n\n const spinAmount = isDecrement\n ? -Math.abs(effectiveDelta)\n : Math.abs(effectiveDelta);\n\n return this._spinDatePart(datePart, spinAmount);\n }\n\n /**\n * Spins a specific date part by the given delta.\n */\n protected _spinDatePart(datePart: DatePart, delta: number): Date {\n if (!isValidDate(this.value)) {\n return new Date();\n }\n\n const newDate = new Date(this.value.getTime());\n const partType = datePart as unknown as DateParts;\n\n // Get the part instance from the parser, or create one for explicit spin operations\n let part = this._parser.getPartByType(partType);\n if (!part) {\n // For explicit spin operations (e.g., stepDown(DatePart.Minutes)),\n // create a temporary part even if not in the format\n part = createDatePart(partType, { start: 0, end: 0, format: '' });\n }\n\n // For AM/PM, we need to extract the current AM/PM value from the mask\n let amPmValue: string | undefined;\n if (datePart === DatePart.AmPm) {\n const formatPart = this._parser.getPartByType(DateParts.AmPm);\n if (formatPart) {\n amPmValue = this._maskedValue.substring(\n formatPart.start,\n formatPart.end\n );\n }\n }\n\n part.spin(delta, {\n date: newDate,\n spinLoop: this.spinLoop,\n amPmValue,\n originalDate: this.value,\n });\n\n return newDate;\n }\n\n /**\n * Updates the internal value based on the current masked input.\n * Only sets a value if the mask is complete and parses to a valid date.\n */\n protected override _syncValueFromMask(): void {\n if (!this._isMaskComplete()) {\n this.value = null;\n return;\n }\n\n const parsedDate = this._parser.parseDate(this._maskedValue);\n this.value = isValidDate(parsedDate) ? parsedDate : null;\n }\n\n //#endregion\n\n //#region Public API\n\n /** Increments a date/time portion. */\n public override stepUp(datePart?: DatePart, delta?: number): void {\n super.stepUp(datePart, delta);\n }\n\n /** Decrements a date/time portion. */\n public override stepDown(datePart?: DatePart, delta?: number): void {\n super.stepDown(datePart, delta);\n }\n\n /** Clears the input element of user input. */\n public override clear(): void {\n this._maskedValue = '';\n this.value = null;\n }\n\n /* blazorSuppress */\n /**\n * Checks whether the current format includes date parts (day, month, year).\n * @internal\n */\n public override hasDateParts(): boolean {\n return this._parser.hasDateParts();\n }\n\n /* blazorSuppress */\n /**\n * Checks whether the current format includes time parts (hours, minutes, seconds).\n * @internal\n */\n public override hasTimeParts(): boolean {\n return this._parser.hasTimeParts();\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-time-input': IgcDateTimeInputComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"date-time-input.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,+BAA+B,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EACL,QAAQ,EAER,8BAA8B,GAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,6BAA6B,GAE9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,SAAS,EACT,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAkC1D,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,6BAA6B;IAApF;;QAc8B,YAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,YAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACnC,eAAU,GAAG,oBAAoB,CAAC,IAAI,EAAE;YAClE,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,6BAA6B;SAC5C,CAAC,CAAC;QAUO,cAAS,GAAgB,IAAI,CAAC;IAsR1C,CAAC;aAlTwB,YAAO,GAAG,qBAAqB,AAAxB,CAAyB;aACzC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAGjC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CACf,yBAAyB,EACzB,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAWD,IAAuB,YAAY;QACjC,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,IAAuB,eAAe;QACpC,OAAO,EAAE,GAAG,8BAA8B,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAClE,CAAC;IAcD,IAAW,KAAK,CAAC,KAAuC;QACtD,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAoB,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;IAC/B,CAAC;IAMS,KAAK,CAAC,YAAY;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAC3C,MAAM,IAAI,CAAC,cAAc,CAAC;YAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEkB,WAAW;QAC5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAGtB,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE7D,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAGD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAWkB,gCAAgC,CACjD,UAAkB,EAClB,SAAiB;QAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAEzC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAEpB,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,CAClE,CAAC;YACF,OAAO,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;QAGD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CACzB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,SAAS,CACpE,CAAC;QACF,OAAO,IAAI,EAAE,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC;IAC1C,CAAC;IAWkB,oBAAoB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAClE,EAAE,IAA4B,CAAC;IACnC,CAAC;IAMkB,mBAAmB;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI;YACtD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;YACjD,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAyB,CAAC;IACnE,CAAC;IAMkB,iBAAiB;QAClC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAClD,CAAC;IAKkB,kBAAkB;QACnC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5B,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAKkB,gBAAgB,CAAC,KAAc;QAChD,IAAI,CAAC,KAAK,GAAG,KAAa,CAAC;IAC7B,CAAC;IAKkB,mBAAmB;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAMkB,eAAe;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAKkB,mBAAmB,CACpC,QAAkB,EAClB,KAAyB,EACzB,WAAoB;QAGpB,MAAM,cAAc,GAClB,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAgC,CAAC,IAAI,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,WAAW;YAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE7B,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAKS,aAAa,CAAC,QAAkB,EAAE,KAAa;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,QAAgC,CAAC;QAGlD,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE,CAAC;YAGV,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAGD,IAAI,SAA6B,CAAC;QAClC,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,UAAU,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CACrC,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,GAAG,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS;YACT,YAAY,EAAE,IAAI,CAAC,KAAK;SACzB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAMkB,kBAAkB;QACnC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAOe,MAAM,CAAC,QAAmB,EAAE,KAAc;QACxD,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAGe,QAAQ,CAAC,QAAmB,EAAE,KAAc;QAC1D,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAGe,KAAK;QACnB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAOe,YAAY;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAOe,YAAY;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;;AAvQD;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;sDAItC","sourcesContent":["import { property } from 'lit/decorators.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { convertToDate, isValidDate } from '../calendar/helpers.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { formatDisplayDate } from '../common/i18n/i18n-controller.js';\nimport { FormValueDateTimeTransformers } from '../common/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '../common/mixins/forms/form-value.js';\nimport { equal } from '../common/util.js';\nimport { styles } from '../input/themes/input.base.css.js';\nimport { styles as shared } from '../input/themes/shared/input.common.css.js';\nimport { all } from '../input/themes/themes.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport {\n DatePart,\n type DatePartDeltas,\n DEFAULT_DATE_PARTS_SPIN_DELTAS,\n} from './date-part.js';\nimport {\n IgcDateTimeInputBaseComponent,\n type IgcDateTimeInputComponentEventMap,\n} from './date-time-input.base.js';\nimport {\n createDatePart,\n DateParts,\n DateTimeMaskParser,\n} from './datetime-mask-parser.js';\nimport { dateTimeInputValidators } from './validators.js';\n\nexport interface IgcDateTimeInputEventMap extends Omit<\n IgcDateTimeInputComponentEventMap,\n 'igcChange'\n> {\n igcChange: CustomEvent<Date | null>;\n}\n\n/**\n * A date time input is an input field that lets you set and edit the date and time in a chosen input element\n * using customizable display and input formats.\n *\n * @element igc-date-time-input\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot range-overflow - Renders content when the max validation fails.\n * @slot range-underflow - Renders content when the min validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcInput - Emitted when the control input receives user input.\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart container - The main wrapper that holds all main input elements.\n * @csspart input - The native input element.\n * @csspart label - The native label element.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart helper-text - The helper text wrapper.\n */\nexport default class IgcDateTimeInputComponent extends IgcDateTimeInputBaseComponent {\n public static readonly tagName = 'igc-date-time-input';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(\n IgcDateTimeInputComponent,\n IgcValidationContainerComponent\n );\n }\n\n //#region Private state and properties\n\n protected override readonly _themes = addThemingController(this, all);\n protected override readonly _parser = new DateTimeMaskParser();\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: null,\n transformers: FormValueDateTimeTransformers,\n });\n\n protected override get __validators() {\n return dateTimeInputValidators;\n }\n\n protected override get _datePartDeltas(): DatePartDeltas {\n return { ...DEFAULT_DATE_PARTS_SPIN_DELTAS, ...this.spinDelta };\n }\n\n protected _oldValue: Date | null = null;\n\n //#endregion\n\n //#region Public attributes and properties\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false) */\n /**\n * The value of the input.\n * @attr\n */\n @property({ converter: convertToDate })\n public set value(value: Date | string | null | undefined) {\n this._formValue.setValueAndFormState(value as Date | null);\n this._updateMaskDisplay();\n }\n\n public get value(): Date | null {\n return this._formValue.value;\n }\n\n //#endregion\n\n //#region Event handlers\n\n protected async _handleFocus(): Promise<void> {\n this._focused = true;\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n\n if (!this.value) {\n this._maskedValue = this._parser.emptyMask;\n await this.updateComplete;\n this.select();\n } else if (this.displayFormat !== this.inputFormat) {\n this._updateMaskDisplay();\n }\n }\n\n protected override _handleBlur(): void {\n this._focused = false;\n\n // Handle incomplete mask input\n if (!(this._isMaskComplete() || this._isEmptyMask)) {\n const parsedDate = this._parser.parseDate(this._maskedValue);\n\n if (parsedDate) {\n this.value = parsedDate;\n } else {\n this.clear();\n }\n } else {\n this._updateMaskDisplay();\n }\n\n // Emit change event if value changed\n if (!this.readOnly && !equal(this._oldValue, this.value)) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n super._handleBlur();\n }\n\n //#endregion\n\n //#region Navigation\n\n /**\n * Calculates the new cursor position when navigating between date parts.\n * direction = 0: navigate to start of previous part\n * direction = 1: navigate to start of next part\n */\n protected override _calculatePartNavigationPosition(\n inputValue: string,\n direction: number\n ): number {\n const cursorPos = this._maskSelection.start;\n const dateParts = this._parser.dateParts;\n\n if (direction === 0) {\n // Navigate backwards: find last literal before cursor\n const part = dateParts.findLast(\n (part) => part.type === DateParts.Literal && part.end < cursorPos\n );\n return part?.end ?? 0;\n }\n\n // Navigate forwards: find first literal after cursor\n const part = dateParts.find(\n (part) => part.type === DateParts.Literal && part.start > cursorPos\n );\n return part?.start ?? inputValue.length;\n }\n\n //#endregion\n\n //#region Internal API\n\n /**\n * Gets the date part at the current cursor position.\n * Uses inclusive end to handle cursor at the end of the last part.\n * Returns undefined if cursor is not within a valid date part.\n */\n protected override _getDatePartAtCursor(): DatePart | undefined {\n return this._parser.getDatePartForCursor(this._inputSelection.start)\n ?.type as DatePart | undefined;\n }\n\n /**\n * Gets the default date part to target when the input is not focused.\n * Prioritizes: Date > Hours > First available part\n */\n protected override _getDefaultDatePart(): DatePart | undefined {\n return (this._parser.getPartByType(DateParts.Date)?.type ??\n this._parser.getPartByType(DateParts.Hours)?.type ??\n this._parser.getFirstDatePart()?.type) as DatePart | undefined;\n }\n\n /**\n * Builds the masked value string from the current date value.\n * Returns empty mask if no value, or existing masked value if incomplete.\n */\n protected override _buildMaskedValue(): string {\n return isValidDate(this.value)\n ? this._parser.formatDate(this.value)\n : this._maskedValue || this._parser.emptyMask;\n }\n\n /**\n * Builds the formatted display value shown when the input is not focused.\n */\n protected override _buildDisplayValue(): string {\n return isValidDate(this.value)\n ? formatDisplayDate(this.value, this.locale, this.displayFormat)\n : '';\n }\n\n /**\n * Commits a value produced by spinning a date part.\n */\n protected override _commitSpunValue(value: unknown): void {\n this.value = value as Date;\n }\n\n /**\n * Sets the value to the current date/time.\n */\n protected override _setCurrentDateTime(): void {\n this.value = new Date();\n this._emitInputEvent();\n }\n\n /**\n * Emits an `igcInput` event whose `detail` is the parsed value as an ISO\n * string (preserving the legacy contract for this component).\n */\n protected override _emitInputEvent(): void {\n this._setTouchedState();\n this.emitEvent('igcInput', { detail: this.value?.toISOString() });\n }\n\n /**\n * Calculates the new date value after spinning a date part.\n */\n protected override _calculateSpunValue(\n datePart: DatePart,\n delta: number | undefined,\n isDecrement: boolean\n ): Date {\n // Default to 1 if delta is 0 or undefined\n const effectiveDelta =\n delta || this._datePartDeltas[datePart as keyof DatePartDeltas] || 1;\n\n const spinAmount = isDecrement\n ? -Math.abs(effectiveDelta)\n : Math.abs(effectiveDelta);\n\n return this._spinDatePart(datePart, spinAmount);\n }\n\n /**\n * Spins a specific date part by the given delta.\n */\n protected _spinDatePart(datePart: DatePart, delta: number): Date {\n if (!isValidDate(this.value)) {\n return new Date();\n }\n\n const newDate = new Date(this.value.getTime());\n const partType = datePart as unknown as DateParts;\n\n // Get the part instance from the parser, or create one for explicit spin operations\n let part = this._parser.getPartByType(partType);\n if (!part) {\n // For explicit spin operations (e.g., stepDown(DatePart.Minutes)),\n // create a temporary part even if not in the format\n part = createDatePart(partType, { start: 0, end: 0, format: '' });\n }\n\n // For AM/PM, we need to extract the current AM/PM value from the mask\n let amPmValue: string | undefined;\n if (datePart === DatePart.AmPm) {\n const formatPart = this._parser.getPartByType(DateParts.AmPm);\n if (formatPart) {\n amPmValue = this._maskedValue.substring(\n formatPart.start,\n formatPart.end\n );\n }\n }\n\n part.spin(delta, {\n date: newDate,\n spinLoop: this.spinLoop,\n amPmValue,\n originalDate: this.value,\n });\n\n return newDate;\n }\n\n /**\n * Updates the internal value based on the current masked input.\n * Only sets a value if the mask is complete and parses to a valid date.\n */\n protected override _syncValueFromMask(): void {\n if (!this._isMaskComplete()) {\n this.value = null;\n return;\n }\n\n const parsedDate = this._parser.parseDate(this._maskedValue);\n this.value = isValidDate(parsedDate) ? parsedDate : null;\n }\n\n //#endregion\n\n //#region Public API\n\n /** Increments a date/time portion. */\n public override stepUp(datePart?: DatePart, delta?: number): void {\n super.stepUp(datePart, delta);\n }\n\n /** Decrements a date/time portion. */\n public override stepDown(datePart?: DatePart, delta?: number): void {\n super.stepDown(datePart, delta);\n }\n\n /** Clears the input element of user input. */\n public override clear(): void {\n this._maskedValue = '';\n this.value = null;\n }\n\n /* blazorSuppress */\n /**\n * Checks whether the current format includes date parts (day, month, year).\n * @internal\n */\n public override hasDateParts(): boolean {\n return this._parser.hasDateParts();\n }\n\n /* blazorSuppress */\n /**\n * Checks whether the current format includes time parts (hours, minutes, seconds).\n * @internal\n */\n public override hasTimeParts(): boolean {\n return this._parser.hasTimeParts();\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-time-input': IgcDateTimeInputComponent;\n }\n}\n"]}
@@ -44603,8 +44603,68 @@
44603
44603
  "declarations": [
44604
44604
  {
44605
44605
  "kind": "class",
44606
- "description": "",
44606
+ "description": "A date time input is an input field that lets you set and edit the date and time in a chosen input element\nusing customizable display and input formats.",
44607
44607
  "name": "IgcDateTimeInputComponent",
44608
+ "cssParts": [
44609
+ {
44610
+ "description": "The main wrapper that holds all main input elements.",
44611
+ "name": "container"
44612
+ },
44613
+ {
44614
+ "description": "The native input element.",
44615
+ "name": "input"
44616
+ },
44617
+ {
44618
+ "description": "The native label element.",
44619
+ "name": "label"
44620
+ },
44621
+ {
44622
+ "description": "The prefix wrapper.",
44623
+ "name": "prefix"
44624
+ },
44625
+ {
44626
+ "description": "The suffix wrapper.",
44627
+ "name": "suffix"
44628
+ },
44629
+ {
44630
+ "description": "The helper text wrapper.",
44631
+ "name": "helper-text"
44632
+ }
44633
+ ],
44634
+ "slots": [
44635
+ {
44636
+ "description": "Renders content before the input.",
44637
+ "name": "prefix"
44638
+ },
44639
+ {
44640
+ "description": "Renders content after input.",
44641
+ "name": "suffix"
44642
+ },
44643
+ {
44644
+ "description": "Renders content below the input.",
44645
+ "name": "helper-text"
44646
+ },
44647
+ {
44648
+ "description": "Renders content when the required validation fails.",
44649
+ "name": "value-missing"
44650
+ },
44651
+ {
44652
+ "description": "Renders content when the max validation fails.",
44653
+ "name": "range-overflow"
44654
+ },
44655
+ {
44656
+ "description": "Renders content when the min validation fails.",
44657
+ "name": "range-underflow"
44658
+ },
44659
+ {
44660
+ "description": "Renders content when setCustomValidity(message) is set.",
44661
+ "name": "custom-error"
44662
+ },
44663
+ {
44664
+ "description": "Renders content when the component is in invalid state (validity.valid = false).",
44665
+ "name": "invalid"
44666
+ }
44667
+ ],
44608
44668
  "members": [
44609
44669
  {
44610
44670
  "kind": "field",
@@ -46643,6 +46703,25 @@
46643
46703
  }
46644
46704
  }
46645
46705
  ],
46706
+ "events": [
46707
+ {
46708
+ "description": "Emitted when the control input receives user input.",
46709
+ "name": "igcInput"
46710
+ },
46711
+ {
46712
+ "description": "Emitted when the control's checked state changes.",
46713
+ "name": "igcChange"
46714
+ },
46715
+ {
46716
+ "type": {
46717
+ "text": "CustomEvent"
46718
+ },
46719
+ "inheritedFrom": {
46720
+ "name": "IgcDateTimeInputBaseComponent",
46721
+ "module": "src/components/date-time-input/date-time-input.base.ts"
46722
+ }
46723
+ }
46724
+ ],
46646
46725
  "attributes": [
46647
46726
  {
46648
46727
  "name": "value",
@@ -46886,17 +46965,8 @@
46886
46965
  "name": "IgcDateTimeInputBaseComponent",
46887
46966
  "module": "/src/components/date-time-input/date-time-input.base.js"
46888
46967
  },
46889
- "events": [
46890
- {
46891
- "type": {
46892
- "text": "CustomEvent"
46893
- },
46894
- "inheritedFrom": {
46895
- "name": "IgcDateTimeInputBaseComponent",
46896
- "module": "src/components/date-time-input/date-time-input.base.ts"
46897
- }
46898
- }
46899
- ]
46968
+ "tagName": "igc-date-time-input",
46969
+ "customElement": true
46900
46970
  }
46901
46971
  ],
46902
46972
  "exports": [
@@ -2,5 +2,5 @@
2
2
  "$schema": "https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/main/docs/customData.schema.json",
3
3
  "version": 1.1,
4
4
  "properties": [{"name":"--color","description":"Sets the color of the divider.","values":[]},{"name":"--inset","description":"Shrinks the divider by the given amount from the start. If `middle` is set it will shrink from both sides.","values":[]},{"name":"--column-count","description":"The number of columns for the tile manager. The `column-count` attribute sets this variable.","values":[]},{"name":"--min-col-width","description":"The minimum size of the columns in the tile-manager. The `min-column-width` attribute sets this variable.","values":[]},{"name":"--min-row-height","description":"The minimum size of the rows in the tile-manager. The `min-row-height` attribute sets this variable.","values":[]},{"name":"--grid-gap","description":"The gap size of the underlying CSS grid container. The `gap` attributes sts this variable.","values":[]},{"name":"--symbol-size","description":"The size of the symbols.","values":[]},{"name":"--symbol-full-color","description":"The color of the filled symbol.","values":[]},{"name":"--symbol-empty-color","description":"The color of the empty symbol.","values":[]},{"name":"--symbol-full-filter","description":"The filter(s) used for the filled symbol.","values":[]},{"name":"--symbol-empty-filter","description":"The filter(s) used for the empty symbol.","values":[]},{"name":"--foreground","description":"The text color for a highlighted text node.","values":[]},{"name":"--background","description":"The background color for a highlighted text node.","values":[]},{"name":"--foreground-active","description":"The text color for the active highlighted text node.","values":[]},{"name":"--background-active","description":"The background color for the active highlighted text node.","values":[]}],
5
- "pseudoElements": [{"name":"::part(base)","description":"The native button element of the igc-button component."},{"name":"::part(prefix)","description":"The prefix container of the igc-button component."},{"name":"::part(suffix)","description":"The suffix container of the igc-button component."},{"name":"::part(helper-text)","description":"The base wrapper"},{"name":"::part(validation-message)","description":"The validation error message container"},{"name":"::part(validation-icon)","description":"The validation error icon"},{"name":"::part(container)","description":"The main wrapper that holds all main input elements."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(file-names)","description":"The file names wrapper when input type is 'file'."},{"name":"::part(file-selector-button)","description":"The browse button when input type is 'file'."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(helper-text)","description":"The helper text wrapper."},{"name":"::part(base)","description":"The base wrapper of the avatar."},{"name":"::part(initials)","description":"The initials wrapper of the avatar."},{"name":"::part(image)","description":"The image wrapper of the avatar."},{"name":"::part(icon)","description":"The icon wrapper of the avatar."},{"name":"::part(header)","description":"The container of the expansion indicator, title and subtitle."},{"name":"::part(title)","description":" The title container."},{"name":"::part(subtitle)","description":"The subtitle container."},{"name":"::part(indicator)","description":"The indicator container."},{"name":"::part(content)","description":"The expansion panel's content wrapper."},{"name":"::part(base)","description":"The base wrapper of the badge."},{"name":"::part(icon)","description":"The icon container, present when an igc-icon element is slotted."},{"name":"::part(base)","description":"The root wrapper element of the banner."},{"name":"::part(spacer)","description":"The inner wrapper that controls the spacing around the banner content."},{"name":"::part(message)","description":"The container that holds the illustration and text content."},{"name":"::part(illustration)","description":"The container for the prefix slot (icon/illustration)."},{"name":"::part(content)","description":"The container for the default message slot."},{"name":"::part(actions)","description":"The container for the action buttons slot."},{"name":"::part(toggle)","description":"The native button element."},{"name":"::part(group)","description":"The button group container."},{"name":"::part(days-row)","description":"The days row container."},{"name":"::part(label)","description":"The label container."},{"name":"::part(label-inner)","description":"The inner label container."},{"name":"::part(week-number)","description":"The week number container."},{"name":"::part(week-number-inner)","description":"The inner week number container."},{"name":"::part(months-row)","description":"The months row container."},{"name":"::part(month)","description":"The month container."},{"name":"::part(month-inner)","description":"The inner month container."},{"name":"::part(years-row)","description":"The years row container."},{"name":"::part(year)","description":"The year container."},{"name":"::part(year-inner)","description":"The inner year container."},{"name":"::part(header)","description":"The header element of the calendar."},{"name":"::part(header-title)","description":"The header title element of the calendar."},{"name":"::part(header-date)","description":"The header date element of the calendar."},{"name":"::part(content)","description":"The content element which contains the views and navigation elements of the calendar."},{"name":"::part(content-vertical)","description":"The content element which contains the views and navigation elements of the calendar in vertical orientation."},{"name":"::part(navigation)","description":"The navigation container element of the calendar."},{"name":"::part(months-navigation)","description":"The months navigation button element of the calendar."},{"name":"::part(years-navigation)","description":"The years navigation button element of the calendar."},{"name":"::part(years-range)","description":"The years range element of the calendar."},{"name":"::part(navigation-buttons)","description":"The navigation buttons container of the calendar."},{"name":"::part(navigation-button)","description":"Previous/next navigation button of the calendar."},{"name":"::part(days-view-container)","description":"The days view container element of the calendar."},{"name":"::part(days-view)","description":"Days view element of the calendar."},{"name":"::part(months-view)","description":"The months view element of the calendar."},{"name":"::part(years-view)","description":"The years view element of the calendar."},{"name":"::part(days-row)","description":"Days row element of the calendar."},{"name":"::part(label)","description":"Week header label element of the calendar."},{"name":"::part(week-number)","description":"Week number element of the calendar."},{"name":"::part(week-number-inner)","description":"Week number inner element of the calendar."},{"name":"::part(date)","description":"Date element of the calendar."},{"name":"::part(date-inner)","description":"Date inner element of the calendar."},{"name":"::part(first)","description":"The first selected date element of the calendar in range selection."},{"name":"::part(last)","description":"The last selected date element of the calendar in range selection."},{"name":"::part(inactive)","description":"Inactive date element of the calendar."},{"name":"::part(hidden)","description":"Hidden date element of the calendar."},{"name":"::part(weekend)","description":"Weekend date element of the calendar."},{"name":"::part(range)","description":"Range selected element of the calendar."},{"name":"::part(special)","description":"Special date element of the calendar."},{"name":"::part(disabled)","description":"Disabled date element of the calendar."},{"name":"::part(single)","description":"Single selected date element of the calendar."},{"name":"::part(preview)","description":"Range selection preview date element of the calendar."},{"name":"::part(month)","description":"Month element of the calendar."},{"name":"::part(month-inner)","description":"Month inner element of the calendar."},{"name":"::part(year)","description":"Year element of the calendar."},{"name":"::part(year-inner)","description":"Year inner element of the calendar."},{"name":"::part(selected)","description":"Indicates selected state. Applies to date, month and year elements of the calendar."},{"name":"::part(current)","description":"Indicates current state. Applies to date, month and year elements of the calendar."},{"name":"::part(header)","description":"The card header text container."},{"name":"::part(title)","description":"The title slot wrapper."},{"name":"::part(subtitle)","description":"The subtitle slot wrapper."},{"name":"::part(base)","description":"The base wrapper of the toast."},{"name":"::part(container)","description":"The container wrapping the slotted content in the popover."},{"name":"::part(base)","description":"The wrapping container of the tooltip content."},{"name":"::part(simple-text)","description":"The container where the message property of the tooltip is rendered."},{"name":"::part(start)","description":"The start container."},{"name":"::part(end)","description":"The end container."},{"name":"::part(content)","description":"The header and custom content container."},{"name":"::part(header)","description":"The title and subtitle container."},{"name":"::part(title)","description":"The title container."},{"name":"::part(subtitle)","description":"The subtitle container."},{"name":"::part(base)","description":"The wrapping element of the icon button."},{"name":"::part(icon)","description":"The icon element of the icon button."},{"name":"::part(base)","description":"The base wrapper of the chip."},{"name":"::part(content)","description":"The wrapper element around the default slot of the chip."},{"name":"::part(prefix)","description":"The prefix container of the chip."},{"name":"::part(suffix)","description":"The suffix container of the chip."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements of the textarea."},{"name":"::part(input)","description":"The native input element of the igc-textarea."},{"name":"::part(label)","description":"The native label element of the igc-textarea."},{"name":"::part(prefix)","description":"The prefix wrapper of the igc-textarea."},{"name":"::part(suffix)","description":"The suffix wrapper of the igc-textarea."},{"name":"::part(helper-text)","description":"The helper text wrapper of the igc-textarea."},{"name":"::part(input-container)","description":"Container for the input section"},{"name":"::part(input-wrapper)","description":"Wrapper around the text input"},{"name":"::part(text-input)","description":"The `<igc-textarea>` component"},{"name":"::part(actions-container)","description":"Container for file upload/send buttons"},{"name":"::part(send-button)","description":"The send icon button"},{"name":"::part(attachments)","description":"Container for rendering attachments"},{"name":"::part(attachment-wrapper)","description":"Wrapper for individual attachment"},{"name":"::part(attachment-name)","description":"Display name of an attachment"},{"name":"::part(attachments-container)","description":"Container wrapping all attachments."},{"name":"::part(attachment)","description":"Wrapper for a single attachment."},{"name":"::part(attachment-header)","description":"Wrapper for a single attachment header."},{"name":"::part(attachments-content)","description":"Part representing the attachment preview."},{"name":"::part(attachment-icon)","description":"Icon part representing the attachment type."},{"name":"::part(file-name)","description":"Part representing the attachment's file name."},{"name":"::part(actions)","description":"Container for header action buttons."},{"name":"::part(image-attachment)","description":"Part for the image element inside an image attachment."},{"name":"::part(chat-container)","description":"Styles the main chat container."},{"name":"::part(header)","description":"Styles the chat header container."},{"name":"::part(prefix)","description":"Styles the element before the chat title (e.g., avatar)."},{"name":"::part(title)","description":"Styles the chat header title."},{"name":"::part(message-area-container)","description":"Styles the container holding the messages and (optional) suggestions."},{"name":"::part(message-list)","description":"Styles the message list container."},{"name":"::part(message-item)","description":"Styles each message wrapper."},{"name":"::part(typing-indicator)","description":"Styles the typing indicator container."},{"name":"::part(typing-dot)","description":"Styles individual typing indicator dots."},{"name":"::part(suggestions-container)","description":"Styles the container holding all suggestions."},{"name":"::part(suggestions-header)","description":"Styles the suggestions header."},{"name":"::part(suggestion)","description":"Styles each suggestion item."},{"name":"::part(suggestion-prefix)","description":"Styles the icon or prefix in a suggestion."},{"name":"::part(suggestion-title)","description":"Styles the text/title of a suggestion."},{"name":"::part(empty-state)","description":"Styles the empty state container when there are no messages."},{"name":"::part(input-area-container)","description":"Styles the wrapper around the chat input area."},{"name":"::part(input-area)","description":"Styles the main text input area."},{"name":"::part(input-attachments-container)","description":"Styles the container for attachments in the input."},{"name":"::part(input-attachment-container)","description":"Styles a single attachment in the input area."},{"name":"::part(input-attachment-name)","description":"Styles the file name of an attachment."},{"name":"::part(input-attachment-icon)","description":"Styles the icon of an attachment."},{"name":"::part(text-input)","description":"Styles the text input field for typing messages."},{"name":"::part(input-actions-container)","description":"Styles the container for input actions."},{"name":"::part(input-actions-start)","description":"Styles the group of actions at the start of the input after the default file upload."},{"name":"::part(input-actions-end)","description":"Styles the group of actions at the end of the input."},{"name":"::part(file-upload-container)","description":"Styles the container for the file upload input."},{"name":"::part(file-upload)","description":"Styles the file upload input itself."},{"name":"::part(send-button-container)","description":"Styles the container around the send button."},{"name":"::part(send-button)","description":"Styles the send button."},{"name":"::part(message-container)","description":"Styles the container of a single message."},{"name":"::part(message-list)","description":"(forwarded) - Styles the internal list of messages."},{"name":"::part(message-header)","description":"Styles the header of a message (e.g., sender, timestamp)."},{"name":"::part(message-content)","description":"Styles the text content of a message."},{"name":"::part(message-attachments-container)","description":"Styles the container for message attachments."},{"name":"::part(message-attachment)","description":"Styles a single message attachment."},{"name":"::part(message-actions-container)","description":"Styles the container holding message actions."},{"name":"::part(message-sent)","description":"Styles messages marked as sent by the current user."},{"name":"::part(attachment-header)","description":"Styles the header of an attachment block."},{"name":"::part(attachment-content)","description":"Styles the content of an attachment block."},{"name":"::part(attachment-icon)","description":"Styles the icon of an attachment."},{"name":"::part(file-name)","description":"Styles the file name shown in an attachment."},{"name":"::part(base)","description":"The wrapper for the entire tile content, header and content."},{"name":"::part(header)","description":"The container for the tile header, including title and actions."},{"name":"::part(title)","description":"The title container of the tile."},{"name":"::part(actions)","description":"The actions container of the tile header."},{"name":"::part(content-container)","description":"The container wrapping the tile’s main content."},{"name":"::part(trigger-side)","description":"The part for the side adorner of the encapsulated resize element in the tile."},{"name":"::part(trigger)","description":"The part for the corner adorner of the encapsulated resize element in the tile."},{"name":"::part(trigger-bottom)","description":"The part for the bottom adorner of the encapsulated resize element in the tile."},{"name":"::part(base)","description":"The tile manager CSS Grid container."},{"name":"::part(indicator)","description":"The wrapping container of the carousel dot indicator."},{"name":"::part(inactive)","description":"The wrapping container of the inactive dot indicator."},{"name":"::part(active)","description":"The wrapping container of the active dot indicator."},{"name":"::part(base)","description":"The wrapping container of all carousel indicators."},{"name":"::part(navigation)","description":"The wrapper container of each carousel navigation button."},{"name":"::part(previous)","description":"The wrapper container of the carousel previous navigation button."},{"name":"::part(next)","description":"The wrapper container of the carousel next navigation button."},{"name":"::part(dot)","description":"The carousel dot indicator container."},{"name":"::part(active)","description":"The carousel active dot indicator container."},{"name":"::part(label)","description":"The label container of the carousel indicators."},{"name":"::part(start)","description":"The wrapping container of all carousel indicators when indicators-orientation is set to start."},{"name":"::part(base)","description":"The base wrapper of the checkbox."},{"name":"::part(control)","description":"The checkbox input element."},{"name":"::part(label)","description":"The checkbox label."},{"name":"::part(indicator)","description":"The checkbox indicator icon."},{"name":"::part(svg)","description":"The igc-circular-progress SVG element."},{"name":"::part(gradient_start)","description":"The igc-circular-progress linear-gradient start color."},{"name":"::part(gradient_end)","description":"The igc-circular-progress linear-gradient end color."},{"name":"::part(track)","description":"The igc-circular-progress ring track area."},{"name":"::part(fill)","description":"The igc-circular-progress indicator area."},{"name":"::part(label)","description":"The igc-circular-progress label."},{"name":"::part(value)","description":"The igc-circular-progress label value."},{"name":"::part(indeterminate)","description":"The igc-circular-progress indeterminate state."},{"name":"::part(primary)","description":"The igc-circular-progress primary state."},{"name":"::part(danger)","description":"The igc-circular-progress error state."},{"name":"::part(warning)","description":"The igc-circular-progress warning state."},{"name":"::part(info)","description":"The igc-circular-progress info state."},{"name":"::part(success)","description":"The igc-circular-progress success state."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(helper-text)","description":"The helper text wrapper."},{"name":"::part(label)","description":"The encapsulated text label of the combo."},{"name":"::part(input)","description":"The main input field of the combo."},{"name":"::part(native-input)","description":"The native input of the main input field of the combo."},{"name":"::part(prefix)","description":"The prefix wrapper of the combo."},{"name":"::part(suffix)","description":"The suffix wrapper of the combo."},{"name":"::part(toggle-icon)","description":"The toggle icon wrapper of the combo."},{"name":"::part(clear-icon)","description":"The clear icon wrapper of the combo."},{"name":"::part(case-icon)","description":"The case icon wrapper of the combo."},{"name":"::part(helper-text)","description":"The helper text wrapper of the combo."},{"name":"::part(search-input)","description":"The search input field of the combo."},{"name":"::part(list-wrapper)","description":"The list of options wrapper of the combo."},{"name":"::part(list)","description":"The list of options box of the combo."},{"name":"::part(item)","description":"Represents each item in the list of options of the combo."},{"name":"::part(group-header)","description":"Represents each header in the list of options of the combo."},{"name":"::part(active)","description":"Appended to the item parts list when the item is active of the combo."},{"name":"::part(selected)","description":"Appended to the item parts list when the item is selected of the combo."},{"name":"::part(checkbox)","description":"Represents each checkbox of each list item of the combo."},{"name":"::part(checkbox-indicator)","description":"Represents the checkbox indicator of each list item of the combo."},{"name":"::part(checked)","description":"Appended to checkbox parts list when checkbox is checked in the combo."},{"name":"::part(header)","description":"The container holding the header content of the combo."},{"name":"::part(footer)","description":"The container holding the footer content of the combo."},{"name":"::part(empty)","description":"The container holding the empty content of the combo."},{"name":"::part(base)","description":"The native `<dialog>` element."},{"name":"::part(title)","description":"The `<header>` element wrapping the title slot."},{"name":"::part(content)","description":"The `<section>` element wrapping the message and default slots."},{"name":"::part(footer)","description":"The `<footer>` element wrapping the footer slot."},{"name":"::part(backdrop)","description":"The decorative backdrop overlay element."},{"name":"::part(animating)","description":"Applied to the backdrop while an animation is running."},{"name":"::part(label)","description":"The label wrapper that renders content above the target input."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(calendar-icon)","description":"The calendar icon wrapper for closed state."},{"name":"::part(calendar-icon-open)","description":"The calendar icon wrapper for opened state."},{"name":"::part(clear-icon)","description":"The clear icon wrapper."},{"name":"::part(actions)","description":"The actions wrapper."},{"name":"::part(helper-text)","description":"The helper-text wrapper that renders content below the target input."},{"name":"::part(header)","description":"The calendar header element."},{"name":"::part(header-title)","description":"The calendar header title element."},{"name":"::part(header-date)","description":"The calendar header date element."},{"name":"::part(calendar-content)","description":"The calendar content element which contains the views and navigation elements."},{"name":"::part(navigation)","description":"The calendar navigation container element."},{"name":"::part(months-navigation)","description":"The calendar months navigation button element."},{"name":"::part(years-navigation)","description":"The calendar years navigation button element."},{"name":"::part(years-range)","description":"The calendar years range element."},{"name":"::part(navigation-buttons)","description":"The calendar navigation buttons container."},{"name":"::part(navigation-button)","description":"The calendar previous/next navigation button."},{"name":"::part(days-view-container)","description":"The calendar days view container element."},{"name":"::part(days-view)","description":"The calendar days view element."},{"name":"::part(months-view)","description":"The calendar months view element."},{"name":"::part(years-view)","description":"The calendar years view element."},{"name":"::part(days-row)","description":"The calendar days row element."},{"name":"::part(calendar-label)","description":"The calendar week header label element."},{"name":"::part(week-number)","description":"The calendar week number element."},{"name":"::part(week-number-inner)","description":"The calendar week number inner element."},{"name":"::part(date)","description":"The calendar date element."},{"name":"::part(date-inner)","description":"The calendar date inner element."},{"name":"::part(first)","description":"The calendar first selected date element in range selection."},{"name":"::part(last)","description":"The calendar last selected date element in range selection."},{"name":"::part(inactive)","description":"The calendar inactive date element."},{"name":"::part(hidden)","description":"The calendar hidden date element."},{"name":"::part(weekend)","description":"The calendar weekend date element."},{"name":"::part(range)","description":"The calendar range selected element."},{"name":"::part(special)","description":"The calendar special date element."},{"name":"::part(disabled)","description":"The calendar disabled date element."},{"name":"::part(single)","description":"The calendar single selected date element."},{"name":"::part(preview)","description":"The calendar range selection preview date element."},{"name":"::part(month)","description":"The calendar month element."},{"name":"::part(month-inner)","description":"The calendar month inner element."},{"name":"::part(year)","description":"The calendar year element."},{"name":"::part(year-inner)","description":"The calendar year inner element."},{"name":"::part(selected)","description":"The calendar selected state for element(s). Applies to date, month and year elements."},{"name":"::part(current)","description":"The calendar current state for element(s). Applies to date, month and year elements."},{"name":"::part(separator)","description":"The separator element between the two inputs."},{"name":"::part(ranges)","description":"The wrapper that renders the custom and predefined ranges."},{"name":"::part(label)","description":"The label wrapper that renders content above the target input."},{"name":"::part(calendar-icon)","description":"The calendar icon wrapper for closed state (single input)."},{"name":"::part(calendar-icon-start)","description":"The calendar icon wrapper for closed state for the start input (two inputs)."},{"name":"::part(calendar-icon-end)","description":"The calendar icon wrapper for closed state for the end input (two inputs)."},{"name":"::part(calendar-icon-open)","description":"The calendar icon wrapper for opened state (single input)."},{"name":"::part(calendar-icon-open-start)","description":"The calendar icon wrapper for opened state for the start input (two inputs)."},{"name":"::part(calendar-icon-open-end)","description":"The calendar icon wrapper for opened state for the end input (two inputs)."},{"name":"::part(clear-icon)","description":"The clear icon wrapper (single input)."},{"name":"::part(clear-icon-start)","description":"The clear icon wrapper for the start input (two inputs)."},{"name":"::part(clear-icon-end)","description":"The clear icon wrapper for the end input (two inputs)."},{"name":"::part(actions)","description":"The wrapper for the custom actions area."},{"name":"::part(clear-icon)","description":"The clear icon wrapper."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(helper-text)","description":"The helper-text wrapper that renders content below the target input."},{"name":"::part(header)","description":"The calendar header element."},{"name":"::part(header-title)","description":"The calendar header title element."},{"name":"::part(header-date)","description":"The calendar header date element."},{"name":"::part(calendar-content)","description":"The calendar content element which contains the views and navigation elements."},{"name":"::part(navigation)","description":"The calendar navigation container element."},{"name":"::part(months-navigation)","description":"The calendar months navigation button element."},{"name":"::part(years-navigation)","description":"The calendar years navigation button element."},{"name":"::part(years-range)","description":"The calendar years range element."},{"name":"::part(navigation-buttons)","description":"The calendar navigation buttons container."},{"name":"::part(navigation-button)","description":"The calendar previous/next navigation button."},{"name":"::part(days-view-container)","description":"The calendar days view container element."},{"name":"::part(days-view)","description":"The calendar days view element."},{"name":"::part(months-view)","description":"The calendar months view element."},{"name":"::part(years-view)","description":"The calendar years view element."},{"name":"::part(days-row)","description":"The calendar days row element."},{"name":"::part(calendar-label)","description":"The calendar week header label element."},{"name":"::part(week-number)","description":"The calendar week number element."},{"name":"::part(week-number-inner)","description":"The calendar week number inner element."},{"name":"::part(date)","description":"The calendar date element."},{"name":"::part(date-inner)","description":"The calendar date inner element."},{"name":"::part(first)","description":"The calendar first selected date element in range selection."},{"name":"::part(last)","description":"The calendar last selected date element in range selection."},{"name":"::part(inactive)","description":"The calendar inactive date element."},{"name":"::part(hidden)","description":"The calendar hidden date element."},{"name":"::part(weekend)","description":"The calendar weekend date element."},{"name":"::part(range)","description":"The calendar range selected element."},{"name":"::part(special)","description":"The calendar special date element."},{"name":"::part(disabled)","description":"The calendar disabled date element."},{"name":"::part(single)","description":"The calendar single selected date element."},{"name":"::part(preview)","description":"The calendar range selection preview date element."},{"name":"::part(month)","description":"The calendar month element."},{"name":"::part(month-inner)","description":"The calendar month inner element."},{"name":"::part(year)","description":"The calendar year element."},{"name":"::part(year-inner)","description":"The calendar year inner element."},{"name":"::part(selected)","description":"The calendar selected state for element(s). Applies to date, month and year elements."},{"name":"::part(current)","description":"The calendar current state for element(s). Applies to date, month and year elements."},{"name":"::part(prefix)","description":"The prefix wrapper of the igc-dropdown-item."},{"name":"::part(content)","description":"The main content wrapper of the igc-dropdown-item."},{"name":"::part(suffix)","description":"The suffix wrapper of the igc-dropdown-item."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(base)","description":"The dropdown list wrapper container."},{"name":"::part(list)","description":"The dropdown list element."},{"name":"::part(prefix)","description":"The prefix wrapper of the igc-select-item."},{"name":"::part(content)","description":"The main content wrapper of the igc-select-item."},{"name":"::part(suffix)","description":"The suffix wrapper of the igc-select-item."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(list)","description":"The list wrapping container for the items of the igc-select."},{"name":"::part(input)","description":"The encapsulated igc-input of the igc-select."},{"name":"::part(label)","description":"The encapsulated text label of the igc-select."},{"name":"::part(prefix)","description":"The prefix wrapper of the input of the igc-select."},{"name":"::part(suffix)","description":"The suffix wrapper of the input of the igc-select."},{"name":"::part(toggle-icon)","description":"The toggle icon wrapper of the igc-select."},{"name":"::part(helper-text)","description":"The helper text wrapper of the igc-select."},{"name":"::part(track)","description":"The igc-linear-progress track area."},{"name":"::part(fill)","description":"The igc-linear-progress indicator area."},{"name":"::part(striped)","description":"The igc-linear-progress striped indicator."},{"name":"::part(label)","description":"The igc-linear-progress label."},{"name":"::part(value)","description":"The igc-linear-progress label value."},{"name":"::part(indeterminate)","description":"The igc-linear-progress indeterminate state."},{"name":"::part(primary)","description":"The igc-linear-progress indicator primary state."},{"name":"::part(danger)","description":"The igc-linear-progress indicator error state."},{"name":"::part(warning)","description":"The igc-linear-progress indicator warning state."},{"name":"::part(info)","description":"The igc-linear-progress indicator info state."},{"name":"::part(success)","description":"The igc-linear-progress indicator success state."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements"},{"name":"::part(input)","description":"The native input element"},{"name":"::part(label)","description":"The native label element"},{"name":"::part(prefix)","description":"The prefix wrapper"},{"name":"::part(suffix)","description":"The suffix wrapper"},{"name":"::part(helper-text)","description":"The helper text wrapper"},{"name":"::part(base)","description":"The base wrapper of the drawer item."},{"name":"::part(icon)","description":"The icon container."},{"name":"::part(content)","description":"The content container."},{"name":"::part(base)","description":"The base wrapper of the drawer."},{"name":"::part(main)","description":"The main content container of the drawer."},{"name":"::part(mini)","description":"The mini variant container of the drawer."},{"name":"::part(base)","description":"The base wrapper of the navigation bar."},{"name":"::part(start)","description":"The left aligned icon container."},{"name":"::part(middle)","description":"The navigation bar title container."},{"name":"::part(end)","description":"The right aligned action icons container."},{"name":"::part(base)","description":"The radio control base wrapper."},{"name":"::part(control)","description":"The radio input control."},{"name":"::part(label)","description":"The radio control label."},{"name":"::part(symbol)","description":"The symbol wrapping container."},{"name":"::part(full)","description":"The full symbol wrapping container."},{"name":"::part(empty)","description":"The empty symbol wrapping container."},{"name":"::part(base)","description":"The main wrapper which holds all of the rating elements."},{"name":"::part(label)","description":"The label part."},{"name":"::part(value-label)","description":"The value label part."},{"name":"::part(symbols)","description":"A wrapper for all rating symbols."},{"name":"::part(symbol)","description":"The part of the encapsulated default symbol."},{"name":"::part(full)","description":"The part of the encapsulated full symbols."},{"name":"::part(empty)","description":"The part of the encapsulated empty symbols."},{"name":"::part(base)","description":"The base wrapper of the slider."},{"name":"::part(ticks)","description":"The ticks container."},{"name":"::part(tick-group)","description":"The tick group container."},{"name":"::part(tick)","description":"The tick element."},{"name":"::part(tick-label)","description":"The tick label element."},{"name":"::part(tick-label-inner)","description":"The inner element of the tick label."},{"name":"::part(thumbs)","description":"The thumbs container."},{"name":"::part(thumb)","description":"The thumb element."},{"name":"::part(thumb-label)","description":"The thumb tooltip label container."},{"name":"::part(thumb-label-inner)","description":"The thumb tooltip label inner element."},{"name":"::part(track)","description":"The track container."},{"name":"::part(steps)","description":"The track steps element."},{"name":"::part(inactive)","description":"The inactive element of the track."},{"name":"::part(fill)","description":"The filled part of the track."},{"name":"::part(base)","description":"The base wrapper of the snackbar component."},{"name":"::part(message)","description":"The snackbar message."},{"name":"::part(action)","description":"The default snackbar action button."},{"name":"::part(action-container)","description":"The area holding the actions."},{"name":"::part(base)","description":"The base wrapper of the slider."},{"name":"::part(ticks)","description":"The ticks container."},{"name":"::part(tick-group)","description":"The tick group container."},{"name":"::part(tick)","description":"The tick element."},{"name":"::part(tick-label)","description":"The tick label element."},{"name":"::part(tick-label-inner)","description":"The inner element of the tick label."},{"name":"::part(thumbs)","description":"The thumbs container."},{"name":"::part(thumb)","description":"The thumb element."},{"name":"::part(thumb-label)","description":"The thumb tooltip label container."},{"name":"::part(thumb-label-inner)","description":"The thumb tooltip label inner element."},{"name":"::part(track)","description":"The track container."},{"name":"::part(steps)","description":"The track steps element."},{"name":"::part(inactive)","description":"The inactive element of the track."},{"name":"::part(fill)","description":"The filled part of the track."},{"name":"::part(tab-header)","description":"The header of a single tab."},{"name":"::part(prefix)","description":"Tab header's label prefix."},{"name":"::part(content)","description":"Tab header's label slot container."},{"name":"::part(suffix)","description":"Tab header's label suffix."},{"name":"::part(tab-body)","description":"Holds the body content of a single tab, only the body of the selected tab is visible."},{"name":"::part(start-scroll-button)","description":"The start scroll button displayed when the tabs overflow."},{"name":"::part(end-scroll-button)","description":"The end scroll button displayed when the tabs overflow."},{"name":"::part(selected-indicator)","description":"The indicator that shows which tab is selected."},{"name":"::part(base)","description":"The base wrapper of the switch."},{"name":"::part(control)","description":"The switch input element."},{"name":"::part(thumb)","description":"The position indicator of the switch."},{"name":"::part(label)","description":"The switch label."},{"name":"::part(wrapper)","description":"The wrapper for the tree item."},{"name":"::part(selected)","description":"Indicates selected state. Applies to `wrapper`."},{"name":"::part(focused)","description":"Indicates focused state. Applies to `wrapper`."},{"name":"::part(active)","description":"Indicates an active state. Applies to `wrapper`."},{"name":"::part(indicator)","description":"The expand indicator of the tree item."},{"name":"::part(label)","description":"The tree item content."},{"name":"::part(text)","description":"The tree item displayed text."},{"name":"::part(select)","description":"The checkbox of the tree item when selection is enabled."},{"name":"::part(splitter-bar)","description":"The resizable bar element between the two panels."},{"name":"::part(drag-handle)","description":"The drag handle icon/element on the splitter bar."},{"name":"::part(start-pane)","description":"The container for the start panel content."},{"name":"::part(end-pane)","description":"The container for the end panel content."},{"name":"::part(start-collapse-btn)","description":"The button to collapse the start panel."},{"name":"::part(end-collapse-btn)","description":"The button to collapse the end panel."},{"name":"::part(start-expand-btn)","description":"The button to expand the start panel when collapsed."},{"name":"::part(end-expand-btn)","description":"The button to expand the end panel when collapsed."},{"name":"::part(header-container)","description":"Wrapper of the step's `header` and its separators."},{"name":"::part(disabled)","description":"Indicates a disabled state. Applies to `header-container`."},{"name":"::part(complete-start)","description":"Indicates a complete state of the current step. Applies to `header-container`."},{"name":"::part(complete-end)","description":"Indicates a complete state of the previous step. Applies to `header-container`."},{"name":"::part(optional)","description":"Indicates an optional state. Applies to `header-container`."},{"name":"::part(invalid)","description":"Indicates an invalid state. Applies to `header-container`."},{"name":"::part(top)","description":"Indicates that the title should be above the indicator. Applies to `header-container`."},{"name":"::part(bottom)","description":"Indicates that the title should be below the indicator. Applies to `header-container`."},{"name":"::part(start)","description":"Indicates that the title should be before the indicator. Applies to `header-container`."},{"name":"::part(end)","description":"Indicates that the title should be after the indicator. Applies to `header-container`."},{"name":"::part(header)","description":"Wrapper of the step's `indicator` and `text`."},{"name":"::part(indicator)","description":"The indicator of the step."},{"name":"::part(text)","description":"Wrapper of the step's `title` and `subtitle`."},{"name":"::part(empty)","description":"Indicates that no title and subtitle have been provided to the step. Applies to `text`."},{"name":"::part(title)","description":"The title of the step."},{"name":"::part(subtitle)","description":"The subtitle of the step."},{"name":"::part(body)","description":"Wrapper of the step's `content`."},{"name":"::part(content)","description":"The step's `content`."}]
5
+ "pseudoElements": [{"name":"::part(base)","description":"The native button element of the igc-button component."},{"name":"::part(prefix)","description":"The prefix container of the igc-button component."},{"name":"::part(suffix)","description":"The suffix container of the igc-button component."},{"name":"::part(helper-text)","description":"The base wrapper"},{"name":"::part(validation-message)","description":"The validation error message container"},{"name":"::part(validation-icon)","description":"The validation error icon"},{"name":"::part(container)","description":"The main wrapper that holds all main input elements."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(file-names)","description":"The file names wrapper when input type is 'file'."},{"name":"::part(file-selector-button)","description":"The browse button when input type is 'file'."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(helper-text)","description":"The helper text wrapper."},{"name":"::part(base)","description":"The base wrapper of the avatar."},{"name":"::part(initials)","description":"The initials wrapper of the avatar."},{"name":"::part(image)","description":"The image wrapper of the avatar."},{"name":"::part(icon)","description":"The icon wrapper of the avatar."},{"name":"::part(header)","description":"The container of the expansion indicator, title and subtitle."},{"name":"::part(title)","description":" The title container."},{"name":"::part(subtitle)","description":"The subtitle container."},{"name":"::part(indicator)","description":"The indicator container."},{"name":"::part(content)","description":"The expansion panel's content wrapper."},{"name":"::part(base)","description":"The base wrapper of the badge."},{"name":"::part(icon)","description":"The icon container, present when an igc-icon element is slotted."},{"name":"::part(base)","description":"The root wrapper element of the banner."},{"name":"::part(spacer)","description":"The inner wrapper that controls the spacing around the banner content."},{"name":"::part(message)","description":"The container that holds the illustration and text content."},{"name":"::part(illustration)","description":"The container for the prefix slot (icon/illustration)."},{"name":"::part(content)","description":"The container for the default message slot."},{"name":"::part(actions)","description":"The container for the action buttons slot."},{"name":"::part(toggle)","description":"The native button element."},{"name":"::part(group)","description":"The button group container."},{"name":"::part(days-row)","description":"The days row container."},{"name":"::part(label)","description":"The label container."},{"name":"::part(label-inner)","description":"The inner label container."},{"name":"::part(week-number)","description":"The week number container."},{"name":"::part(week-number-inner)","description":"The inner week number container."},{"name":"::part(months-row)","description":"The months row container."},{"name":"::part(month)","description":"The month container."},{"name":"::part(month-inner)","description":"The inner month container."},{"name":"::part(years-row)","description":"The years row container."},{"name":"::part(year)","description":"The year container."},{"name":"::part(year-inner)","description":"The inner year container."},{"name":"::part(header)","description":"The header element of the calendar."},{"name":"::part(header-title)","description":"The header title element of the calendar."},{"name":"::part(header-date)","description":"The header date element of the calendar."},{"name":"::part(content)","description":"The content element which contains the views and navigation elements of the calendar."},{"name":"::part(content-vertical)","description":"The content element which contains the views and navigation elements of the calendar in vertical orientation."},{"name":"::part(navigation)","description":"The navigation container element of the calendar."},{"name":"::part(months-navigation)","description":"The months navigation button element of the calendar."},{"name":"::part(years-navigation)","description":"The years navigation button element of the calendar."},{"name":"::part(years-range)","description":"The years range element of the calendar."},{"name":"::part(navigation-buttons)","description":"The navigation buttons container of the calendar."},{"name":"::part(navigation-button)","description":"Previous/next navigation button of the calendar."},{"name":"::part(days-view-container)","description":"The days view container element of the calendar."},{"name":"::part(days-view)","description":"Days view element of the calendar."},{"name":"::part(months-view)","description":"The months view element of the calendar."},{"name":"::part(years-view)","description":"The years view element of the calendar."},{"name":"::part(days-row)","description":"Days row element of the calendar."},{"name":"::part(label)","description":"Week header label element of the calendar."},{"name":"::part(week-number)","description":"Week number element of the calendar."},{"name":"::part(week-number-inner)","description":"Week number inner element of the calendar."},{"name":"::part(date)","description":"Date element of the calendar."},{"name":"::part(date-inner)","description":"Date inner element of the calendar."},{"name":"::part(first)","description":"The first selected date element of the calendar in range selection."},{"name":"::part(last)","description":"The last selected date element of the calendar in range selection."},{"name":"::part(inactive)","description":"Inactive date element of the calendar."},{"name":"::part(hidden)","description":"Hidden date element of the calendar."},{"name":"::part(weekend)","description":"Weekend date element of the calendar."},{"name":"::part(range)","description":"Range selected element of the calendar."},{"name":"::part(special)","description":"Special date element of the calendar."},{"name":"::part(disabled)","description":"Disabled date element of the calendar."},{"name":"::part(single)","description":"Single selected date element of the calendar."},{"name":"::part(preview)","description":"Range selection preview date element of the calendar."},{"name":"::part(month)","description":"Month element of the calendar."},{"name":"::part(month-inner)","description":"Month inner element of the calendar."},{"name":"::part(year)","description":"Year element of the calendar."},{"name":"::part(year-inner)","description":"Year inner element of the calendar."},{"name":"::part(selected)","description":"Indicates selected state. Applies to date, month and year elements of the calendar."},{"name":"::part(current)","description":"Indicates current state. Applies to date, month and year elements of the calendar."},{"name":"::part(header)","description":"The card header text container."},{"name":"::part(title)","description":"The title slot wrapper."},{"name":"::part(subtitle)","description":"The subtitle slot wrapper."},{"name":"::part(base)","description":"The base wrapper of the toast."},{"name":"::part(container)","description":"The container wrapping the slotted content in the popover."},{"name":"::part(base)","description":"The wrapping container of the tooltip content."},{"name":"::part(simple-text)","description":"The container where the message property of the tooltip is rendered."},{"name":"::part(start)","description":"The start container."},{"name":"::part(end)","description":"The end container."},{"name":"::part(content)","description":"The header and custom content container."},{"name":"::part(header)","description":"The title and subtitle container."},{"name":"::part(title)","description":"The title container."},{"name":"::part(subtitle)","description":"The subtitle container."},{"name":"::part(base)","description":"The wrapping element of the icon button."},{"name":"::part(icon)","description":"The icon element of the icon button."},{"name":"::part(base)","description":"The base wrapper of the chip."},{"name":"::part(content)","description":"The wrapper element around the default slot of the chip."},{"name":"::part(prefix)","description":"The prefix container of the chip."},{"name":"::part(suffix)","description":"The suffix container of the chip."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements of the textarea."},{"name":"::part(input)","description":"The native input element of the igc-textarea."},{"name":"::part(label)","description":"The native label element of the igc-textarea."},{"name":"::part(prefix)","description":"The prefix wrapper of the igc-textarea."},{"name":"::part(suffix)","description":"The suffix wrapper of the igc-textarea."},{"name":"::part(helper-text)","description":"The helper text wrapper of the igc-textarea."},{"name":"::part(input-container)","description":"Container for the input section"},{"name":"::part(input-wrapper)","description":"Wrapper around the text input"},{"name":"::part(text-input)","description":"The `<igc-textarea>` component"},{"name":"::part(actions-container)","description":"Container for file upload/send buttons"},{"name":"::part(send-button)","description":"The send icon button"},{"name":"::part(attachments)","description":"Container for rendering attachments"},{"name":"::part(attachment-wrapper)","description":"Wrapper for individual attachment"},{"name":"::part(attachment-name)","description":"Display name of an attachment"},{"name":"::part(attachments-container)","description":"Container wrapping all attachments."},{"name":"::part(attachment)","description":"Wrapper for a single attachment."},{"name":"::part(attachment-header)","description":"Wrapper for a single attachment header."},{"name":"::part(attachments-content)","description":"Part representing the attachment preview."},{"name":"::part(attachment-icon)","description":"Icon part representing the attachment type."},{"name":"::part(file-name)","description":"Part representing the attachment's file name."},{"name":"::part(actions)","description":"Container for header action buttons."},{"name":"::part(image-attachment)","description":"Part for the image element inside an image attachment."},{"name":"::part(chat-container)","description":"Styles the main chat container."},{"name":"::part(header)","description":"Styles the chat header container."},{"name":"::part(prefix)","description":"Styles the element before the chat title (e.g., avatar)."},{"name":"::part(title)","description":"Styles the chat header title."},{"name":"::part(message-area-container)","description":"Styles the container holding the messages and (optional) suggestions."},{"name":"::part(message-list)","description":"Styles the message list container."},{"name":"::part(message-item)","description":"Styles each message wrapper."},{"name":"::part(typing-indicator)","description":"Styles the typing indicator container."},{"name":"::part(typing-dot)","description":"Styles individual typing indicator dots."},{"name":"::part(suggestions-container)","description":"Styles the container holding all suggestions."},{"name":"::part(suggestions-header)","description":"Styles the suggestions header."},{"name":"::part(suggestion)","description":"Styles each suggestion item."},{"name":"::part(suggestion-prefix)","description":"Styles the icon or prefix in a suggestion."},{"name":"::part(suggestion-title)","description":"Styles the text/title of a suggestion."},{"name":"::part(empty-state)","description":"Styles the empty state container when there are no messages."},{"name":"::part(input-area-container)","description":"Styles the wrapper around the chat input area."},{"name":"::part(input-area)","description":"Styles the main text input area."},{"name":"::part(input-attachments-container)","description":"Styles the container for attachments in the input."},{"name":"::part(input-attachment-container)","description":"Styles a single attachment in the input area."},{"name":"::part(input-attachment-name)","description":"Styles the file name of an attachment."},{"name":"::part(input-attachment-icon)","description":"Styles the icon of an attachment."},{"name":"::part(text-input)","description":"Styles the text input field for typing messages."},{"name":"::part(input-actions-container)","description":"Styles the container for input actions."},{"name":"::part(input-actions-start)","description":"Styles the group of actions at the start of the input after the default file upload."},{"name":"::part(input-actions-end)","description":"Styles the group of actions at the end of the input."},{"name":"::part(file-upload-container)","description":"Styles the container for the file upload input."},{"name":"::part(file-upload)","description":"Styles the file upload input itself."},{"name":"::part(send-button-container)","description":"Styles the container around the send button."},{"name":"::part(send-button)","description":"Styles the send button."},{"name":"::part(message-container)","description":"Styles the container of a single message."},{"name":"::part(message-list)","description":"(forwarded) - Styles the internal list of messages."},{"name":"::part(message-header)","description":"Styles the header of a message (e.g., sender, timestamp)."},{"name":"::part(message-content)","description":"Styles the text content of a message."},{"name":"::part(message-attachments-container)","description":"Styles the container for message attachments."},{"name":"::part(message-attachment)","description":"Styles a single message attachment."},{"name":"::part(message-actions-container)","description":"Styles the container holding message actions."},{"name":"::part(message-sent)","description":"Styles messages marked as sent by the current user."},{"name":"::part(attachment-header)","description":"Styles the header of an attachment block."},{"name":"::part(attachment-content)","description":"Styles the content of an attachment block."},{"name":"::part(attachment-icon)","description":"Styles the icon of an attachment."},{"name":"::part(file-name)","description":"Styles the file name shown in an attachment."},{"name":"::part(base)","description":"The wrapper for the entire tile content, header and content."},{"name":"::part(header)","description":"The container for the tile header, including title and actions."},{"name":"::part(title)","description":"The title container of the tile."},{"name":"::part(actions)","description":"The actions container of the tile header."},{"name":"::part(content-container)","description":"The container wrapping the tile’s main content."},{"name":"::part(trigger-side)","description":"The part for the side adorner of the encapsulated resize element in the tile."},{"name":"::part(trigger)","description":"The part for the corner adorner of the encapsulated resize element in the tile."},{"name":"::part(trigger-bottom)","description":"The part for the bottom adorner of the encapsulated resize element in the tile."},{"name":"::part(base)","description":"The tile manager CSS Grid container."},{"name":"::part(indicator)","description":"The wrapping container of the carousel dot indicator."},{"name":"::part(inactive)","description":"The wrapping container of the inactive dot indicator."},{"name":"::part(active)","description":"The wrapping container of the active dot indicator."},{"name":"::part(base)","description":"The wrapping container of all carousel indicators."},{"name":"::part(navigation)","description":"The wrapper container of each carousel navigation button."},{"name":"::part(previous)","description":"The wrapper container of the carousel previous navigation button."},{"name":"::part(next)","description":"The wrapper container of the carousel next navigation button."},{"name":"::part(dot)","description":"The carousel dot indicator container."},{"name":"::part(active)","description":"The carousel active dot indicator container."},{"name":"::part(label)","description":"The label container of the carousel indicators."},{"name":"::part(start)","description":"The wrapping container of all carousel indicators when indicators-orientation is set to start."},{"name":"::part(base)","description":"The base wrapper of the checkbox."},{"name":"::part(control)","description":"The checkbox input element."},{"name":"::part(label)","description":"The checkbox label."},{"name":"::part(indicator)","description":"The checkbox indicator icon."},{"name":"::part(svg)","description":"The igc-circular-progress SVG element."},{"name":"::part(gradient_start)","description":"The igc-circular-progress linear-gradient start color."},{"name":"::part(gradient_end)","description":"The igc-circular-progress linear-gradient end color."},{"name":"::part(track)","description":"The igc-circular-progress ring track area."},{"name":"::part(fill)","description":"The igc-circular-progress indicator area."},{"name":"::part(label)","description":"The igc-circular-progress label."},{"name":"::part(value)","description":"The igc-circular-progress label value."},{"name":"::part(indeterminate)","description":"The igc-circular-progress indeterminate state."},{"name":"::part(primary)","description":"The igc-circular-progress primary state."},{"name":"::part(danger)","description":"The igc-circular-progress error state."},{"name":"::part(warning)","description":"The igc-circular-progress warning state."},{"name":"::part(info)","description":"The igc-circular-progress info state."},{"name":"::part(success)","description":"The igc-circular-progress success state."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(helper-text)","description":"The helper text wrapper."},{"name":"::part(label)","description":"The encapsulated text label of the combo."},{"name":"::part(input)","description":"The main input field of the combo."},{"name":"::part(native-input)","description":"The native input of the main input field of the combo."},{"name":"::part(prefix)","description":"The prefix wrapper of the combo."},{"name":"::part(suffix)","description":"The suffix wrapper of the combo."},{"name":"::part(toggle-icon)","description":"The toggle icon wrapper of the combo."},{"name":"::part(clear-icon)","description":"The clear icon wrapper of the combo."},{"name":"::part(case-icon)","description":"The case icon wrapper of the combo."},{"name":"::part(helper-text)","description":"The helper text wrapper of the combo."},{"name":"::part(search-input)","description":"The search input field of the combo."},{"name":"::part(list-wrapper)","description":"The list of options wrapper of the combo."},{"name":"::part(list)","description":"The list of options box of the combo."},{"name":"::part(item)","description":"Represents each item in the list of options of the combo."},{"name":"::part(group-header)","description":"Represents each header in the list of options of the combo."},{"name":"::part(active)","description":"Appended to the item parts list when the item is active of the combo."},{"name":"::part(selected)","description":"Appended to the item parts list when the item is selected of the combo."},{"name":"::part(checkbox)","description":"Represents each checkbox of each list item of the combo."},{"name":"::part(checkbox-indicator)","description":"Represents the checkbox indicator of each list item of the combo."},{"name":"::part(checked)","description":"Appended to checkbox parts list when checkbox is checked in the combo."},{"name":"::part(header)","description":"The container holding the header content of the combo."},{"name":"::part(footer)","description":"The container holding the footer content of the combo."},{"name":"::part(empty)","description":"The container holding the empty content of the combo."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(helper-text)","description":"The helper text wrapper."},{"name":"::part(base)","description":"The native `<dialog>` element."},{"name":"::part(title)","description":"The `<header>` element wrapping the title slot."},{"name":"::part(content)","description":"The `<section>` element wrapping the message and default slots."},{"name":"::part(footer)","description":"The `<footer>` element wrapping the footer slot."},{"name":"::part(backdrop)","description":"The decorative backdrop overlay element."},{"name":"::part(animating)","description":"Applied to the backdrop while an animation is running."},{"name":"::part(label)","description":"The label wrapper that renders content above the target input."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(calendar-icon)","description":"The calendar icon wrapper for closed state."},{"name":"::part(calendar-icon-open)","description":"The calendar icon wrapper for opened state."},{"name":"::part(clear-icon)","description":"The clear icon wrapper."},{"name":"::part(actions)","description":"The actions wrapper."},{"name":"::part(helper-text)","description":"The helper-text wrapper that renders content below the target input."},{"name":"::part(header)","description":"The calendar header element."},{"name":"::part(header-title)","description":"The calendar header title element."},{"name":"::part(header-date)","description":"The calendar header date element."},{"name":"::part(calendar-content)","description":"The calendar content element which contains the views and navigation elements."},{"name":"::part(navigation)","description":"The calendar navigation container element."},{"name":"::part(months-navigation)","description":"The calendar months navigation button element."},{"name":"::part(years-navigation)","description":"The calendar years navigation button element."},{"name":"::part(years-range)","description":"The calendar years range element."},{"name":"::part(navigation-buttons)","description":"The calendar navigation buttons container."},{"name":"::part(navigation-button)","description":"The calendar previous/next navigation button."},{"name":"::part(days-view-container)","description":"The calendar days view container element."},{"name":"::part(days-view)","description":"The calendar days view element."},{"name":"::part(months-view)","description":"The calendar months view element."},{"name":"::part(years-view)","description":"The calendar years view element."},{"name":"::part(days-row)","description":"The calendar days row element."},{"name":"::part(calendar-label)","description":"The calendar week header label element."},{"name":"::part(week-number)","description":"The calendar week number element."},{"name":"::part(week-number-inner)","description":"The calendar week number inner element."},{"name":"::part(date)","description":"The calendar date element."},{"name":"::part(date-inner)","description":"The calendar date inner element."},{"name":"::part(first)","description":"The calendar first selected date element in range selection."},{"name":"::part(last)","description":"The calendar last selected date element in range selection."},{"name":"::part(inactive)","description":"The calendar inactive date element."},{"name":"::part(hidden)","description":"The calendar hidden date element."},{"name":"::part(weekend)","description":"The calendar weekend date element."},{"name":"::part(range)","description":"The calendar range selected element."},{"name":"::part(special)","description":"The calendar special date element."},{"name":"::part(disabled)","description":"The calendar disabled date element."},{"name":"::part(single)","description":"The calendar single selected date element."},{"name":"::part(preview)","description":"The calendar range selection preview date element."},{"name":"::part(month)","description":"The calendar month element."},{"name":"::part(month-inner)","description":"The calendar month inner element."},{"name":"::part(year)","description":"The calendar year element."},{"name":"::part(year-inner)","description":"The calendar year inner element."},{"name":"::part(selected)","description":"The calendar selected state for element(s). Applies to date, month and year elements."},{"name":"::part(current)","description":"The calendar current state for element(s). Applies to date, month and year elements."},{"name":"::part(separator)","description":"The separator element between the two inputs."},{"name":"::part(ranges)","description":"The wrapper that renders the custom and predefined ranges."},{"name":"::part(label)","description":"The label wrapper that renders content above the target input."},{"name":"::part(calendar-icon)","description":"The calendar icon wrapper for closed state (single input)."},{"name":"::part(calendar-icon-start)","description":"The calendar icon wrapper for closed state for the start input (two inputs)."},{"name":"::part(calendar-icon-end)","description":"The calendar icon wrapper for closed state for the end input (two inputs)."},{"name":"::part(calendar-icon-open)","description":"The calendar icon wrapper for opened state (single input)."},{"name":"::part(calendar-icon-open-start)","description":"The calendar icon wrapper for opened state for the start input (two inputs)."},{"name":"::part(calendar-icon-open-end)","description":"The calendar icon wrapper for opened state for the end input (two inputs)."},{"name":"::part(clear-icon)","description":"The clear icon wrapper (single input)."},{"name":"::part(clear-icon-start)","description":"The clear icon wrapper for the start input (two inputs)."},{"name":"::part(clear-icon-end)","description":"The clear icon wrapper for the end input (two inputs)."},{"name":"::part(actions)","description":"The wrapper for the custom actions area."},{"name":"::part(clear-icon)","description":"The clear icon wrapper."},{"name":"::part(input)","description":"The native input element."},{"name":"::part(prefix)","description":"The prefix wrapper."},{"name":"::part(suffix)","description":"The suffix wrapper."},{"name":"::part(helper-text)","description":"The helper-text wrapper that renders content below the target input."},{"name":"::part(header)","description":"The calendar header element."},{"name":"::part(header-title)","description":"The calendar header title element."},{"name":"::part(header-date)","description":"The calendar header date element."},{"name":"::part(calendar-content)","description":"The calendar content element which contains the views and navigation elements."},{"name":"::part(navigation)","description":"The calendar navigation container element."},{"name":"::part(months-navigation)","description":"The calendar months navigation button element."},{"name":"::part(years-navigation)","description":"The calendar years navigation button element."},{"name":"::part(years-range)","description":"The calendar years range element."},{"name":"::part(navigation-buttons)","description":"The calendar navigation buttons container."},{"name":"::part(navigation-button)","description":"The calendar previous/next navigation button."},{"name":"::part(days-view-container)","description":"The calendar days view container element."},{"name":"::part(days-view)","description":"The calendar days view element."},{"name":"::part(months-view)","description":"The calendar months view element."},{"name":"::part(years-view)","description":"The calendar years view element."},{"name":"::part(days-row)","description":"The calendar days row element."},{"name":"::part(calendar-label)","description":"The calendar week header label element."},{"name":"::part(week-number)","description":"The calendar week number element."},{"name":"::part(week-number-inner)","description":"The calendar week number inner element."},{"name":"::part(date)","description":"The calendar date element."},{"name":"::part(date-inner)","description":"The calendar date inner element."},{"name":"::part(first)","description":"The calendar first selected date element in range selection."},{"name":"::part(last)","description":"The calendar last selected date element in range selection."},{"name":"::part(inactive)","description":"The calendar inactive date element."},{"name":"::part(hidden)","description":"The calendar hidden date element."},{"name":"::part(weekend)","description":"The calendar weekend date element."},{"name":"::part(range)","description":"The calendar range selected element."},{"name":"::part(special)","description":"The calendar special date element."},{"name":"::part(disabled)","description":"The calendar disabled date element."},{"name":"::part(single)","description":"The calendar single selected date element."},{"name":"::part(preview)","description":"The calendar range selection preview date element."},{"name":"::part(month)","description":"The calendar month element."},{"name":"::part(month-inner)","description":"The calendar month inner element."},{"name":"::part(year)","description":"The calendar year element."},{"name":"::part(year-inner)","description":"The calendar year inner element."},{"name":"::part(selected)","description":"The calendar selected state for element(s). Applies to date, month and year elements."},{"name":"::part(current)","description":"The calendar current state for element(s). Applies to date, month and year elements."},{"name":"::part(prefix)","description":"The prefix wrapper of the igc-dropdown-item."},{"name":"::part(content)","description":"The main content wrapper of the igc-dropdown-item."},{"name":"::part(suffix)","description":"The suffix wrapper of the igc-dropdown-item."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(base)","description":"The dropdown list wrapper container."},{"name":"::part(list)","description":"The dropdown list element."},{"name":"::part(prefix)","description":"The prefix wrapper of the igc-select-item."},{"name":"::part(content)","description":"The main content wrapper of the igc-select-item."},{"name":"::part(suffix)","description":"The suffix wrapper of the igc-select-item."},{"name":"::part(label)","description":"The native label element."},{"name":"::part(list)","description":"The list wrapping container for the items of the igc-select."},{"name":"::part(input)","description":"The encapsulated igc-input of the igc-select."},{"name":"::part(label)","description":"The encapsulated text label of the igc-select."},{"name":"::part(prefix)","description":"The prefix wrapper of the input of the igc-select."},{"name":"::part(suffix)","description":"The suffix wrapper of the input of the igc-select."},{"name":"::part(toggle-icon)","description":"The toggle icon wrapper of the igc-select."},{"name":"::part(helper-text)","description":"The helper text wrapper of the igc-select."},{"name":"::part(track)","description":"The igc-linear-progress track area."},{"name":"::part(fill)","description":"The igc-linear-progress indicator area."},{"name":"::part(striped)","description":"The igc-linear-progress striped indicator."},{"name":"::part(label)","description":"The igc-linear-progress label."},{"name":"::part(value)","description":"The igc-linear-progress label value."},{"name":"::part(indeterminate)","description":"The igc-linear-progress indeterminate state."},{"name":"::part(primary)","description":"The igc-linear-progress indicator primary state."},{"name":"::part(danger)","description":"The igc-linear-progress indicator error state."},{"name":"::part(warning)","description":"The igc-linear-progress indicator warning state."},{"name":"::part(info)","description":"The igc-linear-progress indicator info state."},{"name":"::part(success)","description":"The igc-linear-progress indicator success state."},{"name":"::part(container)","description":"The main wrapper that holds all main input elements"},{"name":"::part(input)","description":"The native input element"},{"name":"::part(label)","description":"The native label element"},{"name":"::part(prefix)","description":"The prefix wrapper"},{"name":"::part(suffix)","description":"The suffix wrapper"},{"name":"::part(helper-text)","description":"The helper text wrapper"},{"name":"::part(base)","description":"The base wrapper of the drawer item."},{"name":"::part(icon)","description":"The icon container."},{"name":"::part(content)","description":"The content container."},{"name":"::part(base)","description":"The base wrapper of the drawer."},{"name":"::part(main)","description":"The main content container of the drawer."},{"name":"::part(mini)","description":"The mini variant container of the drawer."},{"name":"::part(base)","description":"The base wrapper of the navigation bar."},{"name":"::part(start)","description":"The left aligned icon container."},{"name":"::part(middle)","description":"The navigation bar title container."},{"name":"::part(end)","description":"The right aligned action icons container."},{"name":"::part(base)","description":"The radio control base wrapper."},{"name":"::part(control)","description":"The radio input control."},{"name":"::part(label)","description":"The radio control label."},{"name":"::part(symbol)","description":"The symbol wrapping container."},{"name":"::part(full)","description":"The full symbol wrapping container."},{"name":"::part(empty)","description":"The empty symbol wrapping container."},{"name":"::part(base)","description":"The main wrapper which holds all of the rating elements."},{"name":"::part(label)","description":"The label part."},{"name":"::part(value-label)","description":"The value label part."},{"name":"::part(symbols)","description":"A wrapper for all rating symbols."},{"name":"::part(symbol)","description":"The part of the encapsulated default symbol."},{"name":"::part(full)","description":"The part of the encapsulated full symbols."},{"name":"::part(empty)","description":"The part of the encapsulated empty symbols."},{"name":"::part(base)","description":"The base wrapper of the slider."},{"name":"::part(ticks)","description":"The ticks container."},{"name":"::part(tick-group)","description":"The tick group container."},{"name":"::part(tick)","description":"The tick element."},{"name":"::part(tick-label)","description":"The tick label element."},{"name":"::part(tick-label-inner)","description":"The inner element of the tick label."},{"name":"::part(thumbs)","description":"The thumbs container."},{"name":"::part(thumb)","description":"The thumb element."},{"name":"::part(thumb-label)","description":"The thumb tooltip label container."},{"name":"::part(thumb-label-inner)","description":"The thumb tooltip label inner element."},{"name":"::part(track)","description":"The track container."},{"name":"::part(steps)","description":"The track steps element."},{"name":"::part(inactive)","description":"The inactive element of the track."},{"name":"::part(fill)","description":"The filled part of the track."},{"name":"::part(base)","description":"The base wrapper of the snackbar component."},{"name":"::part(message)","description":"The snackbar message."},{"name":"::part(action)","description":"The default snackbar action button."},{"name":"::part(action-container)","description":"The area holding the actions."},{"name":"::part(base)","description":"The base wrapper of the slider."},{"name":"::part(ticks)","description":"The ticks container."},{"name":"::part(tick-group)","description":"The tick group container."},{"name":"::part(tick)","description":"The tick element."},{"name":"::part(tick-label)","description":"The tick label element."},{"name":"::part(tick-label-inner)","description":"The inner element of the tick label."},{"name":"::part(thumbs)","description":"The thumbs container."},{"name":"::part(thumb)","description":"The thumb element."},{"name":"::part(thumb-label)","description":"The thumb tooltip label container."},{"name":"::part(thumb-label-inner)","description":"The thumb tooltip label inner element."},{"name":"::part(track)","description":"The track container."},{"name":"::part(steps)","description":"The track steps element."},{"name":"::part(inactive)","description":"The inactive element of the track."},{"name":"::part(fill)","description":"The filled part of the track."},{"name":"::part(tab-header)","description":"The header of a single tab."},{"name":"::part(prefix)","description":"Tab header's label prefix."},{"name":"::part(content)","description":"Tab header's label slot container."},{"name":"::part(suffix)","description":"Tab header's label suffix."},{"name":"::part(tab-body)","description":"Holds the body content of a single tab, only the body of the selected tab is visible."},{"name":"::part(start-scroll-button)","description":"The start scroll button displayed when the tabs overflow."},{"name":"::part(end-scroll-button)","description":"The end scroll button displayed when the tabs overflow."},{"name":"::part(selected-indicator)","description":"The indicator that shows which tab is selected."},{"name":"::part(base)","description":"The base wrapper of the switch."},{"name":"::part(control)","description":"The switch input element."},{"name":"::part(thumb)","description":"The position indicator of the switch."},{"name":"::part(label)","description":"The switch label."},{"name":"::part(wrapper)","description":"The wrapper for the tree item."},{"name":"::part(selected)","description":"Indicates selected state. Applies to `wrapper`."},{"name":"::part(focused)","description":"Indicates focused state. Applies to `wrapper`."},{"name":"::part(active)","description":"Indicates an active state. Applies to `wrapper`."},{"name":"::part(indicator)","description":"The expand indicator of the tree item."},{"name":"::part(label)","description":"The tree item content."},{"name":"::part(text)","description":"The tree item displayed text."},{"name":"::part(select)","description":"The checkbox of the tree item when selection is enabled."},{"name":"::part(splitter-bar)","description":"The resizable bar element between the two panels."},{"name":"::part(drag-handle)","description":"The drag handle icon/element on the splitter bar."},{"name":"::part(start-pane)","description":"The container for the start panel content."},{"name":"::part(end-pane)","description":"The container for the end panel content."},{"name":"::part(start-collapse-btn)","description":"The button to collapse the start panel."},{"name":"::part(end-collapse-btn)","description":"The button to collapse the end panel."},{"name":"::part(start-expand-btn)","description":"The button to expand the start panel when collapsed."},{"name":"::part(end-expand-btn)","description":"The button to expand the end panel when collapsed."},{"name":"::part(header-container)","description":"Wrapper of the step's `header` and its separators."},{"name":"::part(disabled)","description":"Indicates a disabled state. Applies to `header-container`."},{"name":"::part(complete-start)","description":"Indicates a complete state of the current step. Applies to `header-container`."},{"name":"::part(complete-end)","description":"Indicates a complete state of the previous step. Applies to `header-container`."},{"name":"::part(optional)","description":"Indicates an optional state. Applies to `header-container`."},{"name":"::part(invalid)","description":"Indicates an invalid state. Applies to `header-container`."},{"name":"::part(top)","description":"Indicates that the title should be above the indicator. Applies to `header-container`."},{"name":"::part(bottom)","description":"Indicates that the title should be below the indicator. Applies to `header-container`."},{"name":"::part(start)","description":"Indicates that the title should be before the indicator. Applies to `header-container`."},{"name":"::part(end)","description":"Indicates that the title should be after the indicator. Applies to `header-container`."},{"name":"::part(header)","description":"Wrapper of the step's `indicator` and `text`."},{"name":"::part(indicator)","description":"The indicator of the step."},{"name":"::part(text)","description":"Wrapper of the step's `title` and `subtitle`."},{"name":"::part(empty)","description":"Indicates that no title and subtitle have been provided to the step. Applies to `text`."},{"name":"::part(title)","description":"The title of the step."},{"name":"::part(subtitle)","description":"The subtitle of the step."},{"name":"::part(body)","description":"Wrapper of the step's `content`."},{"name":"::part(content)","description":"The step's `content`."}]
6
6
  }