igniteui-webcomponents 4.1.1 → 4.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.
Files changed (108) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/animations/easings.d.ts +31 -0
  3. package/animations/easings.js +35 -0
  4. package/animations/easings.js.map +1 -0
  5. package/animations/index.d.ts +3 -0
  6. package/animations/index.js +4 -0
  7. package/animations/index.js.map +1 -0
  8. package/animations/player.d.ts +9 -0
  9. package/animations/player.js +47 -0
  10. package/animations/player.js.map +1 -0
  11. package/animations/presets/grow/index.d.ts +3 -0
  12. package/animations/presets/grow/index.js +18 -0
  13. package/animations/presets/grow/index.js.map +1 -0
  14. package/animations/presets/index.d.ts +1 -0
  15. package/animations/presets/index.js +2 -0
  16. package/animations/presets/index.js.map +1 -0
  17. package/animations/types.d.ts +5 -0
  18. package/animations/types.js +7 -0
  19. package/animations/types.js.map +1 -0
  20. package/components/accordion/accordion.js +4 -4
  21. package/components/accordion/accordion.js.map +1 -1
  22. package/components/accordion/themes/accordion.base.css.js +10 -0
  23. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  24. package/components/badge/themes/light/badge.base.css.js +15 -11
  25. package/components/badge/themes/light/badge.base.css.js.map +1 -1
  26. package/components/badge/themes/light/badge.bootstrap.css.js +4 -5
  27. package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
  28. package/components/combo/combo-item.d.ts +2 -0
  29. package/components/combo/combo-item.js +16 -9
  30. package/components/combo/combo-item.js.map +1 -1
  31. package/components/combo/combo.d.ts +56 -8
  32. package/components/combo/combo.js +99 -17
  33. package/components/combo/combo.js.map +1 -1
  34. package/components/combo/controllers/navigation.d.ts +7 -4
  35. package/components/combo/controllers/navigation.js +37 -5
  36. package/components/combo/controllers/navigation.js.map +1 -1
  37. package/components/combo/controllers/selection.d.ts +4 -3
  38. package/components/combo/controllers/selection.js +21 -10
  39. package/components/combo/controllers/selection.js.map +1 -1
  40. package/components/combo/themes/light/combo.base.css.js +23 -16
  41. package/components/combo/themes/light/combo.base.css.js.map +1 -1
  42. package/components/combo/themes/light/combo.bootstrap.css.js +32 -0
  43. package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -1
  44. package/components/combo/themes/light/combo.fluent.css.js +35 -2
  45. package/components/combo/themes/light/combo.fluent.css.js.map +1 -1
  46. package/components/combo/themes/light/combo.indigo.css.js +22 -12
  47. package/components/combo/themes/light/combo.indigo.css.js.map +1 -1
  48. package/components/combo/themes/light/combo.material.css.js +47 -3
  49. package/components/combo/themes/light/combo.material.css.js.map +1 -1
  50. package/components/combo/types.d.ts +1 -0
  51. package/components/combo/types.js.map +1 -1
  52. package/components/expansion-panel/expansion-panel.d.ts +4 -0
  53. package/components/expansion-panel/expansion-panel.js +32 -6
  54. package/components/expansion-panel/expansion-panel.js.map +1 -1
  55. package/components/expansion-panel/themes/light/expansion-panel.base.css.js +49 -2
  56. package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -1
  57. package/components/input/themes/light/input.bootstrap.css.js +20 -3
  58. package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
  59. package/components/input/themes/light/input.fluent.css.js +19 -5
  60. package/components/input/themes/light/input.fluent.css.js.map +1 -1
  61. package/components/input/themes/light/input.indigo.css.js +31 -7
  62. package/components/input/themes/light/input.indigo.css.js.map +1 -1
  63. package/components/input/themes/light/input.material.css.js +5 -7
  64. package/components/input/themes/light/input.material.css.js.map +1 -1
  65. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +1 -1
  66. package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -1
  67. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +1 -1
  68. package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -1
  69. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js +11 -11
  70. package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -1
  71. package/components/radio/themes/dark/radio.material.css.d.ts +1 -0
  72. package/components/radio/themes/dark/radio.material.css.js +3 -0
  73. package/components/radio/themes/dark/radio.material.css.js.map +1 -0
  74. package/components/radio/themes/light/radio.base.css.js +0 -3
  75. package/components/radio/themes/light/radio.base.css.js.map +1 -1
  76. package/components/radio/themes/light/radio.fluent.css.js +10 -9
  77. package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
  78. package/components/radio/themes/light/radio.material.css.js +17 -3
  79. package/components/radio/themes/light/radio.material.css.js.map +1 -1
  80. package/components/radio-group/radio-group.base.css.js +2 -8
  81. package/components/radio-group/radio-group.base.css.js.map +1 -1
  82. package/components/radio-group/radio-group.fluent.css.d.ts +1 -0
  83. package/components/radio-group/radio-group.fluent.css.js +6 -0
  84. package/components/radio-group/radio-group.fluent.css.js.map +1 -0
  85. package/components/radio-group/radio-group.js +9 -2
  86. package/components/radio-group/radio-group.js.map +1 -1
  87. package/components/radio-group/radio-group.material.css.d.ts +1 -0
  88. package/components/radio-group/radio-group.material.css.js +10 -0
  89. package/components/radio-group/radio-group.material.css.js.map +1 -0
  90. package/components/select/themes/light/select.base.css.js +16 -15
  91. package/components/select/themes/light/select.base.css.js.map +1 -1
  92. package/components/select/themes/light/select.bootstrap.css.js +7 -0
  93. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  94. package/components/select/themes/light/select.fluent.css.js +11 -0
  95. package/components/select/themes/light/select.fluent.css.js.map +1 -1
  96. package/components/select/themes/light/select.indigo.css.js +10 -1
  97. package/components/select/themes/light/select.indigo.css.js.map +1 -1
  98. package/components/select/themes/light/select.material.css.js +14 -0
  99. package/components/select/themes/light/select.material.css.js.map +1 -1
  100. package/components/toggle/toggle.controller.js.map +1 -1
  101. package/components/toggle/toggle.directive.js.map +1 -1
  102. package/custom-elements.json +24 -0
  103. package/package.json +2 -2
  104. package/themes/dark/bootstrap.css +3 -1
  105. package/themes/dark/fluent.css +4 -3
  106. package/themes/dark/indigo.css +3 -1
  107. package/themes/dark/material.css +12 -1
  108. package/vscode-html-custom-data.json +13 -3
@@ -6,7 +6,7 @@ var DIRECTION;
6
6
  })(DIRECTION || (DIRECTION = {}));
7
7
  export class NavigationController {
8
8
  get input() {
9
- return this.host.input;
9
+ return this.host.singleSelect ? this.host.target : this.host.input;
10
10
  }
11
11
  get dataState() {
12
12
  return this.host.dataState;
@@ -49,7 +49,13 @@ export class NavigationController {
49
49
  this.host = host;
50
50
  this.hostHandlers = new Map(Object.entries({
51
51
  Escape: this.escape,
52
- ArrowDown: this.hostArrowDown,
52
+ }));
53
+ this.mainInputHandlers = new Map(Object.entries({
54
+ Escape: this.escape,
55
+ ArrowUp: this.hide,
56
+ ArrowDown: this.mainInputArrowDown,
57
+ Tab: this.tab,
58
+ Enter: this.enter,
53
59
  }));
54
60
  this.searchInputHandlers = new Map(Object.entries({
55
61
  Escape: this.escape,
@@ -63,7 +69,7 @@ export class NavigationController {
63
69
  ' ': this.space,
64
70
  Enter: this.enter,
65
71
  Escape: this.escape,
66
- Tab: this.escape,
72
+ Tab: this.tab,
67
73
  Home: this.home,
68
74
  End: this.end,
69
75
  }));
@@ -79,6 +85,9 @@ export class NavigationController {
79
85
  this.scrollToActive(container, 'smooth');
80
86
  }
81
87
  space() {
88
+ if (this.active === START_INDEX) {
89
+ return;
90
+ }
82
91
  const item = this.dataState[this.active];
83
92
  if (!item.header) {
84
93
  this.toggleSelect(this.active);
@@ -86,17 +95,32 @@ export class NavigationController {
86
95
  }
87
96
  escape() {
88
97
  this.hide();
98
+ this.host.focus();
89
99
  }
90
100
  enter() {
101
+ if (this.active === START_INDEX) {
102
+ return;
103
+ }
91
104
  this.space();
92
105
  this.hide();
106
+ requestAnimationFrame(() => this.input.select());
107
+ this.host.focus();
93
108
  }
94
109
  inputArrowDown(container) {
95
110
  container.focus();
96
111
  this.arrowDown(container);
97
112
  }
98
- hostArrowDown() {
113
+ async mainInputArrowDown(container) {
99
114
  this.show();
115
+ await container.updateComplete;
116
+ if (this.host.singleSelect) {
117
+ container.focus();
118
+ this.arrowDown(container);
119
+ }
120
+ }
121
+ tab() {
122
+ this.hide();
123
+ this.host.blur();
100
124
  }
101
125
  arrowDown(container) {
102
126
  this.getNextItem(DIRECTION.Down);
@@ -146,7 +170,14 @@ export class NavigationController {
146
170
  this.hostHandlers.get(event.key).call(this);
147
171
  }
148
172
  }
149
- navigateInput(event, container) {
173
+ navigateMainInput(event, container) {
174
+ event.stopPropagation();
175
+ if (this.mainInputHandlers.has(event.key)) {
176
+ event.preventDefault();
177
+ this.mainInputHandlers.get(event.key).call(this, container);
178
+ }
179
+ }
180
+ navigateSearchInput(event, container) {
150
181
  event.stopPropagation();
151
182
  if (this.searchInputHandlers.has(event.key)) {
152
183
  event.preventDefault();
@@ -154,6 +185,7 @@ export class NavigationController {
154
185
  }
155
186
  }
156
187
  navigateList(event, container) {
188
+ event.stopPropagation();
157
189
  if (this.listHandlers.has(event.key)) {
158
190
  event.preventDefault();
159
191
  this.listHandlers.get(event.key).call(this, container);
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactiveController } from 'lit';\nimport IgcComboListComponent from '../combo-list.js';\nimport { ComboRecord, ComboHost } from '../types.js';\n\nconst START_INDEX: Readonly<number> = -1;\n\nenum DIRECTION {\n Up = -1,\n Down = 1,\n}\n\nexport class NavigationController<T extends object>\n implements ReactiveController\n{\n protected hostHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n ArrowDown: this.hostArrowDown,\n })\n );\n\n protected searchInputHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n ArrowUp: this.escape,\n ArrowDown: this.inputArrowDown,\n Tab: this.inputArrowDown,\n })\n );\n\n protected listHandlers = new Map(\n Object.entries({\n ArrowDown: this.arrowDown,\n ArrowUp: this.arrowUp,\n ' ': this.space,\n Enter: this.enter,\n Escape: this.escape,\n Tab: this.escape,\n Home: this.home,\n End: this.end,\n })\n );\n\n protected _active = START_INDEX;\n\n public get input() {\n // @ts-expect-error protected access\n return this.host.input;\n }\n\n public get dataState() {\n // @ts-expect-error protected access\n return this.host.dataState;\n }\n\n public show() {\n // @ts-expect-error protected access\n this.host._show(true);\n }\n\n public hide() {\n // @ts-expect-error protected access\n this.host._hide(true);\n }\n\n public toggleSelect(index: number) {\n // @ts-expect-error protected access\n this.host.toggleSelect(index);\n }\n\n protected get currentItem() {\n const item = this.active;\n return item === START_INDEX ? START_INDEX : item;\n }\n\n protected get firstItem() {\n return this.dataState.findIndex((i: ComboRecord<T>) => i.header !== true);\n }\n\n protected get lastItem() {\n return this.dataState.length - 1;\n }\n\n protected scrollToActive(\n container: IgcComboListComponent,\n behavior: ScrollBehavior = 'auto'\n ) {\n container.element(this.active)?.scrollIntoView({\n block: 'center',\n behavior,\n });\n\n container.requestUpdate();\n }\n\n public get active() {\n return this._active;\n }\n\n public set active(node: number) {\n this._active = node;\n this.host.requestUpdate();\n }\n\n constructor(protected host: ComboHost<T>) {\n this.host.addController(this);\n }\n\n protected home(container: IgcComboListComponent) {\n this.active = this.firstItem;\n this.scrollToActive(container, 'smooth');\n }\n\n protected end(container: IgcComboListComponent) {\n this.active = this.lastItem;\n this.scrollToActive(container, 'smooth');\n }\n\n protected space() {\n const item = this.dataState[this.active];\n\n if (!item.header) {\n this.toggleSelect(this.active);\n }\n }\n\n protected escape() {\n this.hide();\n }\n\n protected enter() {\n this.space();\n this.hide();\n }\n\n protected inputArrowDown(container: IgcComboListComponent) {\n container.focus();\n this.arrowDown(container);\n }\n\n protected hostArrowDown() {\n this.show();\n }\n\n protected arrowDown(container: IgcComboListComponent) {\n this.getNextItem(DIRECTION.Down);\n this.scrollToActive(container);\n }\n\n protected arrowUp(container: IgcComboListComponent) {\n this.getNextItem(DIRECTION.Up);\n this.scrollToActive(container);\n }\n\n protected getNextItem(direction: DIRECTION) {\n const next = this.getNearestItem(this.currentItem, direction);\n\n if (next === -1) {\n if (this.active === this.firstItem) {\n this.input.focus();\n this.active = START_INDEX;\n }\n return;\n }\n\n this.active = next;\n }\n\n protected getNearestItem(startIndex: number, direction: number) {\n let index = startIndex;\n const items = this.dataState;\n\n while (items[index + direction]?.header) {\n index += direction;\n }\n\n index += direction;\n\n if (index >= 0 && index < items.length) {\n return index;\n } else {\n return -1;\n }\n }\n\n public hostConnected() {}\n\n public hostDisconnected() {\n this.active = START_INDEX;\n }\n\n public navigateTo(item: T, container: IgcComboListComponent) {\n this.active = this.dataState.findIndex((i) => i === item);\n this.scrollToActive(container, 'smooth');\n }\n\n public navigateHost(event: KeyboardEvent) {\n if (this.hostHandlers.has(event.key)) {\n event.preventDefault();\n this.hostHandlers.get(event.key)!.call(this);\n }\n }\n\n public navigateInput(event: KeyboardEvent, container: IgcComboListComponent) {\n event.stopPropagation();\n\n if (this.searchInputHandlers.has(event.key)) {\n event.preventDefault();\n this.searchInputHandlers.get(event.key)!.call(this, container);\n }\n }\n\n public navigateList(event: KeyboardEvent, container: IgcComboListComponent) {\n if (this.listHandlers.has(event.key)) {\n event.preventDefault();\n this.listHandlers.get(event.key)!.call(this, container);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactiveController } from 'lit';\nimport IgcComboListComponent from '../combo-list.js';\nimport { ComboRecord, ComboHost } from '../types.js';\n\nconst START_INDEX: Readonly<number> = -1;\n\nenum DIRECTION {\n Up = -1,\n Down = 1,\n}\n\nexport class NavigationController<T extends object>\n implements ReactiveController\n{\n protected hostHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n })\n );\n\n protected mainInputHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n ArrowUp: this.hide,\n ArrowDown: this.mainInputArrowDown,\n Tab: this.tab,\n Enter: this.enter,\n })\n );\n\n protected searchInputHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n ArrowUp: this.escape,\n ArrowDown: this.inputArrowDown,\n Tab: this.inputArrowDown,\n })\n );\n\n protected listHandlers = new Map(\n Object.entries({\n ArrowDown: this.arrowDown,\n ArrowUp: this.arrowUp,\n ' ': this.space,\n Enter: this.enter,\n Escape: this.escape,\n Tab: this.tab,\n Home: this.home,\n End: this.end,\n })\n );\n\n protected _active = START_INDEX;\n\n public get input() {\n // @ts-expect-error protected access\n return this.host.singleSelect ? this.host.target : this.host.input;\n }\n\n public get dataState() {\n // @ts-expect-error protected access\n return this.host.dataState;\n }\n\n public show() {\n // @ts-expect-error protected access\n this.host._show(true);\n }\n\n public hide() {\n // @ts-expect-error protected access\n this.host._hide(true);\n }\n\n public toggleSelect(index: number) {\n // @ts-expect-error protected access\n this.host.toggleSelect(index);\n }\n\n protected get currentItem() {\n const item = this.active;\n return item === START_INDEX ? START_INDEX : item;\n }\n\n protected get firstItem() {\n return this.dataState.findIndex((i: ComboRecord<T>) => i.header !== true);\n }\n\n protected get lastItem() {\n return this.dataState.length - 1;\n }\n\n protected scrollToActive(\n container: IgcComboListComponent,\n behavior: ScrollBehavior = 'auto'\n ) {\n container.element(this.active)?.scrollIntoView({\n block: 'center',\n behavior,\n });\n\n container.requestUpdate();\n }\n\n public get active() {\n return this._active;\n }\n\n public set active(node: number) {\n this._active = node;\n this.host.requestUpdate();\n }\n\n constructor(protected host: ComboHost<T>) {\n this.host.addController(this);\n }\n\n protected home(container: IgcComboListComponent) {\n this.active = this.firstItem;\n this.scrollToActive(container, 'smooth');\n }\n\n protected end(container: IgcComboListComponent) {\n this.active = this.lastItem;\n this.scrollToActive(container, 'smooth');\n }\n\n protected space() {\n if (this.active === START_INDEX) {\n return;\n }\n\n const item = this.dataState[this.active];\n\n if (!item.header) {\n this.toggleSelect(this.active);\n }\n }\n\n protected escape() {\n this.hide();\n this.host.focus();\n }\n\n protected enter() {\n if (this.active === START_INDEX) {\n return;\n }\n\n this.space();\n this.hide();\n requestAnimationFrame(() => this.input.select());\n this.host.focus();\n }\n\n protected inputArrowDown(container: IgcComboListComponent) {\n container.focus();\n this.arrowDown(container);\n }\n\n protected async mainInputArrowDown(container: IgcComboListComponent) {\n this.show();\n await container.updateComplete;\n\n if (this.host.singleSelect) {\n container.focus();\n this.arrowDown(container);\n }\n }\n\n protected tab() {\n this.hide();\n this.host.blur();\n }\n\n protected arrowDown(container: IgcComboListComponent) {\n this.getNextItem(DIRECTION.Down);\n this.scrollToActive(container);\n }\n\n protected arrowUp(container: IgcComboListComponent) {\n this.getNextItem(DIRECTION.Up);\n this.scrollToActive(container);\n }\n\n protected getNextItem(direction: DIRECTION) {\n const next = this.getNearestItem(this.currentItem, direction);\n\n if (next === -1) {\n if (this.active === this.firstItem) {\n this.input.focus();\n this.active = START_INDEX;\n }\n return;\n }\n\n this.active = next;\n }\n\n protected getNearestItem(startIndex: number, direction: number) {\n let index = startIndex;\n const items = this.dataState;\n\n while (items[index + direction]?.header) {\n index += direction;\n }\n\n index += direction;\n\n if (index >= 0 && index < items.length) {\n return index;\n } else {\n return -1;\n }\n }\n\n public hostConnected() {}\n\n public hostDisconnected() {\n this.active = START_INDEX;\n }\n\n public navigateTo(item: T, container: IgcComboListComponent) {\n this.active = this.dataState.findIndex((i) => i === item);\n this.scrollToActive(container, 'smooth');\n }\n\n public navigateHost(event: KeyboardEvent) {\n if (this.hostHandlers.has(event.key)) {\n event.preventDefault();\n this.hostHandlers.get(event.key)!.call(this);\n }\n }\n\n public navigateMainInput(\n event: KeyboardEvent,\n container: IgcComboListComponent\n ) {\n event.stopPropagation();\n\n if (this.mainInputHandlers.has(event.key)) {\n event.preventDefault();\n this.mainInputHandlers.get(event.key)!.call(this, container);\n }\n }\n\n public navigateSearchInput(\n event: KeyboardEvent,\n container: IgcComboListComponent\n ) {\n event.stopPropagation();\n\n if (this.searchInputHandlers.has(event.key)) {\n event.preventDefault();\n this.searchInputHandlers.get(event.key)!.call(this, container);\n }\n }\n\n public navigateList(event: KeyboardEvent, container: IgcComboListComponent) {\n event.stopPropagation();\n\n if (this.listHandlers.has(event.key)) {\n event.preventDefault();\n this.listHandlers.get(event.key)!.call(this, container);\n }\n }\n}\n"]}
@@ -1,9 +1,10 @@
1
1
  import { ReactiveController } from 'lit';
2
- import { ComboRecord, ComboHost, Values } from '../types.js';
2
+ import { ComboRecord, ComboHost, Item } from '../types.js';
3
3
  export declare class SelectionController<T extends object> implements ReactiveController {
4
4
  protected host: ComboHost<T>;
5
5
  private _selected;
6
6
  get dataState(): ComboRecord<T>[];
7
+ resetSearchTerm(): void;
7
8
  getValue(items: T[]): string;
8
9
  private handleChange;
9
10
  private getItemsByValueKey;
@@ -13,8 +14,8 @@ export declare class SelectionController<T extends object> implements ReactiveCo
13
14
  private deselectObjects;
14
15
  private selectAll;
15
16
  private deselectAll;
16
- select(items?: T[] | Values<T>[], emit?: boolean): Promise<void>;
17
- deselect(items?: T[] | Values<T>[], emit?: boolean): Promise<void>;
17
+ select(items?: Item<T>[], emit?: boolean): Promise<void>;
18
+ deselect(items?: Item<T>[], emit?: boolean): Promise<void>;
18
19
  get selected(): Set<T>;
19
20
  changeSelection(index: number): void;
20
21
  constructor(host: ComboHost<T>);
@@ -2,6 +2,9 @@ export class SelectionController {
2
2
  get dataState() {
3
3
  return this.host.dataState;
4
4
  }
5
+ resetSearchTerm() {
6
+ this.host.resetSearchTerm();
7
+ }
5
8
  getValue(items) {
6
9
  return items
7
10
  .map((value) => {
@@ -70,13 +73,19 @@ export class SelectionController {
70
73
  this.host.requestUpdate();
71
74
  }
72
75
  async select(items, emit = false) {
76
+ const { singleSelect } = this.host;
77
+ if (singleSelect) {
78
+ this._selected.clear();
79
+ this.resetSearchTerm();
80
+ }
73
81
  if (!items || items.length === 0) {
74
- this.selectAll();
82
+ !singleSelect && this.selectAll();
75
83
  return;
76
84
  }
85
+ const _items = singleSelect ? items.slice(0, 1) : items;
77
86
  const values = this.host.valueKey
78
- ? this.getItemsByValueKey(items)
79
- : items;
87
+ ? this.getItemsByValueKey(_items)
88
+ : _items;
80
89
  const selected = Array.from(this._selected.values());
81
90
  const payload = [...values, ...selected];
82
91
  if (emit &&
@@ -88,14 +97,15 @@ export class SelectionController {
88
97
  return;
89
98
  }
90
99
  if (this.host.valueKey) {
91
- this.selectValueKeys(items);
100
+ this.selectValueKeys(_items);
92
101
  }
93
102
  else {
94
- this.selectObjects(items);
103
+ this.selectObjects(_items);
95
104
  }
96
105
  this.host.requestUpdate();
97
106
  }
98
107
  async deselect(items, emit = false) {
108
+ const { singleSelect } = this.host;
99
109
  if (!items || items.length === 0) {
100
110
  if (emit &&
101
111
  !this.handleChange({
@@ -105,12 +115,13 @@ export class SelectionController {
105
115
  })) {
106
116
  return;
107
117
  }
108
- this.deselectAll();
118
+ !singleSelect && this.deselectAll();
109
119
  return;
110
120
  }
121
+ const _items = this.host.singleSelect ? items.slice(0, 1) : items;
111
122
  const values = this.host.valueKey
112
- ? this.getItemsByValueKey(items)
113
- : items;
123
+ ? this.getItemsByValueKey(_items)
124
+ : _items;
114
125
  const selected = Array.from(this._selected.values());
115
126
  const payload = structuredClone(selected);
116
127
  payload.splice(selected.indexOf(values[0]));
@@ -123,10 +134,10 @@ export class SelectionController {
123
134
  return;
124
135
  }
125
136
  if (this.host.valueKey) {
126
- this.deselectValueKeys(items);
137
+ this.deselectValueKeys(_items);
127
138
  }
128
139
  else {
129
- this.deselectObjects(items);
140
+ this.deselectObjects(_items);
130
141
  }
131
142
  this.host.requestUpdate();
132
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/selection.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactiveController } from 'lit';\nimport {\n ComboRecord,\n ComboHost,\n Values,\n IgcComboChangeEventArgs,\n} from '../types.js';\n\nexport class SelectionController<T extends object>\n implements ReactiveController\n{\n private _selected: Set<T> = new Set();\n\n public get dataState() {\n // @ts-expect-error protected access\n return this.host.dataState;\n }\n\n public getValue(items: T[]) {\n return items\n .map((value) => {\n if (typeof value === 'object' && value !== null) {\n return this.host.displayKey\n ? String(value[this.host.displayKey])\n : String(value);\n } else {\n return String(value);\n }\n })\n .join(', ');\n }\n\n private handleChange(detail: IgcComboChangeEventArgs) {\n this.host.requestUpdate('value');\n return this.host.emitEvent('igcChange', { cancelable: true, detail });\n }\n\n private getItemsByValueKey(keys: Values<T>[]) {\n return keys.map((key) =>\n this.dataState.find((i) => i[this.host.valueKey!] === key)\n );\n }\n\n private selectValueKeys(keys: Values<T>[]) {\n if (keys.length === 0) return;\n\n this.getItemsByValueKey(keys).forEach((item) => {\n return item && this._selected.add(item);\n });\n }\n\n private deselectValueKeys(keys: Values<T>[]) {\n if (keys.length === 0) return;\n\n this.getItemsByValueKey(keys).forEach((item) => {\n return item && this._selected.delete(item);\n });\n }\n\n private selectObjects(items: T[]) {\n if (items.length === 0) return;\n\n items.forEach((item) => {\n const i = this.dataState.includes(item as ComboRecord<T>);\n if (i) {\n this._selected.add(item);\n }\n });\n }\n\n private deselectObjects(items: T[]) {\n if (items.length === 0) return;\n\n items.forEach((item) => {\n const i = this.dataState.includes(item as ComboRecord<T>);\n if (i) {\n this._selected.delete(item);\n }\n });\n }\n\n private selectAll() {\n this.dataState\n .filter((i) => !i.header)\n .forEach((item) => {\n this._selected.add(item);\n });\n this.host.requestUpdate();\n }\n\n private deselectAll() {\n this._selected.clear();\n this.host.requestUpdate();\n }\n\n public async select(items?: T[] | Values<T>[], emit = false) {\n if (!items || items.length === 0) {\n this.selectAll();\n return;\n }\n\n const values = this.host.valueKey\n ? this.getItemsByValueKey(items as Values<T>[])\n : items;\n const selected = Array.from(this._selected.values());\n const payload = [...values, ...selected] as T[];\n\n if (\n emit &&\n !this.handleChange({\n newValue: this.getValue(payload),\n items: values as T[],\n type: 'selection',\n })\n ) {\n return;\n }\n\n if (this.host.valueKey) {\n this.selectValueKeys(items as Values<T>[]);\n } else {\n this.selectObjects(items as T[]);\n }\n\n this.host.requestUpdate();\n }\n\n public async deselect(items?: T[] | Values<T>[], emit = false) {\n if (!items || items.length === 0) {\n if (\n emit &&\n !this.handleChange({\n newValue: '',\n items: Array.from(this.selected),\n type: 'deselection',\n })\n ) {\n return;\n }\n this.deselectAll();\n return;\n }\n\n const values = this.host.valueKey\n ? this.getItemsByValueKey(items as Values<T>[])\n : items;\n const selected = Array.from(this._selected.values());\n const payload = structuredClone(selected);\n\n payload.splice(selected.indexOf(values[0] as T));\n\n if (\n emit &&\n !this.handleChange({\n newValue: this.getValue(payload),\n items: values as T[],\n type: 'deselection',\n })\n ) {\n return;\n }\n\n if (this.host.valueKey) {\n this.deselectValueKeys(items as Values<T>[]);\n } else {\n this.deselectObjects(items as T[]);\n }\n\n this.host.requestUpdate();\n }\n\n public get selected(): Set<T> {\n return this._selected;\n }\n\n public changeSelection(index: number) {\n const item = this.dataState[index];\n\n if (this.host.valueKey) {\n !this.selected.has(item)\n ? this.select([item[this.host.valueKey]], true)\n : this.deselect([item[this.host.valueKey]], true);\n } else {\n !this.selected.has(item)\n ? this.select([item], true)\n : this.deselect([item], true);\n }\n }\n\n constructor(protected host: ComboHost<T>) {\n this.host.addController(this);\n }\n\n public hostConnected() {}\n\n public hostDisconnected() {}\n}\n"]}
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/selection.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactiveController } from 'lit';\nimport {\n ComboRecord,\n ComboHost,\n Values,\n IgcComboChangeEventArgs,\n Item,\n} from '../types.js';\n\nexport class SelectionController<T extends object>\n implements ReactiveController\n{\n private _selected: Set<T> = new Set();\n\n public get dataState() {\n // @ts-expect-error protected access\n return this.host.dataState;\n }\n\n public resetSearchTerm() {\n // @ts-expect-error protected access\n this.host.resetSearchTerm();\n }\n\n public getValue(items: T[]) {\n return items\n .map((value) => {\n if (typeof value === 'object' && value !== null) {\n return this.host.displayKey\n ? String(value[this.host.displayKey])\n : String(value);\n } else {\n return String(value);\n }\n })\n .join(', ');\n }\n\n private handleChange(detail: IgcComboChangeEventArgs) {\n this.host.requestUpdate('value');\n return this.host.emitEvent('igcChange', { cancelable: true, detail });\n }\n\n private getItemsByValueKey(keys: Values<T>[]) {\n return keys.map((key) =>\n this.dataState.find((i) => i[this.host.valueKey!] === key)\n );\n }\n\n private selectValueKeys(keys: Values<T>[]) {\n if (keys.length === 0) return;\n\n this.getItemsByValueKey(keys).forEach((item) => {\n return item && this._selected.add(item);\n });\n }\n\n private deselectValueKeys(keys: Values<T>[]) {\n if (keys.length === 0) return;\n\n this.getItemsByValueKey(keys).forEach((item) => {\n return item && this._selected.delete(item);\n });\n }\n\n private selectObjects(items: T[]) {\n if (items.length === 0) return;\n\n items.forEach((item) => {\n const i = this.dataState.includes(item as ComboRecord<T>);\n if (i) {\n this._selected.add(item);\n }\n });\n }\n\n private deselectObjects(items: T[]) {\n if (items.length === 0) return;\n\n items.forEach((item) => {\n const i = this.dataState.includes(item as ComboRecord<T>);\n if (i) {\n this._selected.delete(item);\n }\n });\n }\n\n private selectAll() {\n this.dataState\n .filter((i) => !i.header)\n .forEach((item) => {\n this._selected.add(item);\n });\n this.host.requestUpdate();\n }\n\n private deselectAll() {\n this._selected.clear();\n this.host.requestUpdate();\n }\n\n public async select(items?: Item<T>[], emit = false) {\n const { singleSelect } = this.host;\n\n if (singleSelect) {\n this._selected.clear();\n this.resetSearchTerm();\n }\n\n if (!items || items.length === 0) {\n !singleSelect && this.selectAll();\n return;\n }\n\n const _items = singleSelect ? items.slice(0, 1) : items;\n\n const values = this.host.valueKey\n ? this.getItemsByValueKey(_items as Values<T>[])\n : _items;\n const selected = Array.from(this._selected.values());\n const payload = [...values, ...selected] as T[];\n\n if (\n emit &&\n !this.handleChange({\n newValue: this.getValue(payload),\n items: values as T[],\n type: 'selection',\n })\n ) {\n return;\n }\n\n if (this.host.valueKey) {\n this.selectValueKeys(_items as Values<T>[]);\n } else {\n this.selectObjects(_items as T[]);\n }\n\n this.host.requestUpdate();\n }\n\n public async deselect(items?: Item<T>[], emit = false) {\n const { singleSelect } = this.host;\n\n if (!items || items.length === 0) {\n if (\n emit &&\n !this.handleChange({\n newValue: '',\n items: Array.from(this.selected),\n type: 'deselection',\n })\n ) {\n return;\n }\n\n !singleSelect && this.deselectAll();\n return;\n }\n\n const _items = this.host.singleSelect ? items.slice(0, 1) : items;\n const values = this.host.valueKey\n ? this.getItemsByValueKey(_items as Values<T>[])\n : _items;\n const selected = Array.from(this._selected.values());\n const payload = structuredClone(selected);\n\n payload.splice(selected.indexOf(values[0] as T));\n\n if (\n emit &&\n !this.handleChange({\n newValue: this.getValue(payload),\n items: values as T[],\n type: 'deselection',\n })\n ) {\n return;\n }\n\n if (this.host.valueKey) {\n this.deselectValueKeys(_items as Values<T>[]);\n } else {\n this.deselectObjects(_items as T[]);\n }\n\n this.host.requestUpdate();\n }\n\n public get selected(): Set<T> {\n return this._selected;\n }\n\n public changeSelection(index: number) {\n const item = this.dataState[index];\n\n if (this.host.valueKey) {\n !this.selected.has(item)\n ? this.select([item[this.host.valueKey]], true)\n : this.deselect([item[this.host.valueKey]], true);\n } else {\n !this.selected.has(item)\n ? this.select([item], true)\n : this.deselect([item], true);\n }\n }\n\n constructor(protected host: ComboHost<T>) {\n this.host.addController(this);\n }\n\n public hostConnected() {}\n\n public hostDisconnected() {}\n}\n"]}
@@ -43,10 +43,12 @@ export const styles = css `:host {
43
43
  text-overflow: ellipsis;
44
44
  cursor: pointer;
45
45
  }
46
- :host > igc-input::part(input)::-moz-selection {
46
+
47
+ :host(:not([single-select])) > igc-input::part(input)::-moz-selection {
47
48
  background: transparent;
48
49
  }
49
- :host > igc-input::part(input)::selection {
50
+
51
+ :host(:not([single-select])) > igc-input::part(input)::selection {
50
52
  background: transparent;
51
53
  }
52
54
 
@@ -61,22 +63,27 @@ export const styles = css `:host {
61
63
  -ms-user-select: none;
62
64
  user-select: none;
63
65
  }
64
- :host([disabled]) igc-input::part(input)::-webkit-input-placeholder {
65
- color: hsla(var(--ig-gray-400), var(--ig-gray-a));
66
- }
67
- :host([disabled]) igc-input::part(input)::-moz-placeholder {
68
- color: hsla(var(--ig-gray-400), var(--ig-gray-a));
69
- }
70
- :host([disabled]) igc-input::part(input):-ms-input-placeholder {
71
- color: hsla(var(--ig-gray-400), var(--ig-gray-a));
66
+ :host([disabled]) igc-input::part(input)::-moz-selection {
67
+ background: transparent;
72
68
  }
73
- :host([disabled]) igc-input::part(input)::-ms-input-placeholder {
74
- color: hsla(var(--ig-gray-400), var(--ig-gray-a));
69
+ :host([disabled]) igc-input::part(input)::selection {
70
+ background: transparent;
75
71
  }
76
- :host([disabled]) igc-input::part(label),
77
- :host([disabled]) igc-input::part(input)::placeholder,
78
- :host([disabled]) ::slotted([slot=helper-text]) {
79
- color: hsla(var(--ig-gray-400), var(--ig-gray-a));
72
+
73
+ [part=helper-text] {
74
+ line-height: 1;
75
+ }
76
+ [part=helper-text] ::slotted([slot=helper-text]) {
77
+ font-family: var(--ig-caption-font-family);
78
+ font-size: var(--ig-caption-font-size);
79
+ font-weight: var(--ig-caption-font-weight);
80
+ font-style: var(--ig-caption-font-style);
81
+ line-height: var(--ig-caption-line-height);
82
+ letter-spacing: var(--ig-caption-letter-spacing);
83
+ text-transform: var(--ig-caption-text-transform);
84
+ margin-top: var(--ig-caption-margin-top);
85
+ margin-bottom: var(--ig-caption-margin-bottom);
86
+ line-height: inherit;
80
87
  }
81
88
 
82
89
  [part=clear-icon],
@@ -1 +1 @@
1
- {"version":3,"file":"combo.base.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2KvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n --component-size: var(--ig-size, var(--ig-size-medium));\n display: block;\n font-family: var(--ig-font-family);\n}\n:host > igc-input::part(input) {\n -o-text-overflow: ellipsis;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n:host > igc-input::part(input)::-moz-selection {\n background: transparent;\n}\n:host > igc-input::part(input)::selection {\n background: transparent;\n}\n\n:host([invalid]) ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-error-500), var(--ig-error-a));\n}\n\n:host([disabled]) {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n:host([disabled]) igc-input::part(input)::-webkit-input-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) igc-input::part(input)::-moz-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) igc-input::part(input):-ms-input-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) igc-input::part(input)::-ms-input-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) igc-input::part(label),\n:host([disabled]) igc-input::part(input)::placeholder,\n:host([disabled]) ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\n[part=clear-icon],\n[part=toggle-icon],\n[part~=case-icon] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n}\n\n[part=list-wrapper] {\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.25rem), 0.25rem);\n position: absolute;\n width: 100%;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n -webkit-box-shadow: var(--ig-elevation-8);\n box-shadow: var(--ig-elevation-8);\n overflow: hidden;\n outline-style: none;\n z-index: 999999;\n}\n[part=list-wrapper] igc-input {\n --ig-size: var(--ig-size-small);\n --ig-theme: material;\n}\n[part=list-wrapper] igc-input::part(container) {\n background: transparent;\n -webkit-border-start: 0;\n border-inline-start: 0;\n border-inline-end-color: transparent;\n -webkit-border-before: 0;\n border-block-start: 0;\n border-radius: 0;\n}\n[part=list-wrapper] igc-input::part(start) {\n display: none;\n}\n[part=list-wrapper] igc-input::part(input) {\n border-radius: 0;\n padding: 0;\n -webkit-border-start: 0;\n border-inline-start: 0;\n border-inline-end-color: transparent;\n -webkit-border-before: 0;\n border-block-start: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n[part=list-wrapper] igc-input::part(input)::-moz-selection {\n background: hsla(var(--ig-primary-100), var(--ig-primary-a));\n}\n[part=list-wrapper] igc-input::part(input)::selection {\n background: hsla(var(--ig-primary-100), var(--ig-primary-a));\n}\n[part=list-wrapper] [part=\"case-icon active\"] {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n[part=filter-input] {\n padding-inline: max(var(--is-large, 1) * 16px * var(--ig-spacing-inline-large, var(--ig-spacing-inline, --ig-spacing)), var(--is-medium, 1) * 8px * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, --ig-spacing)), var(--is-small, 1) * 4px * var(--ig-spacing-inline-small, var(--ig-spacing-inline, --ig-spacing)));\n padding-block: max(var(--is-large, 1) * 8px * var(--ig-spacing-block-large, var(--ig-spacing-block, --ig-spacing)), var(--is-medium, 1) * 8px * var(--ig-spacing-block-medium, var(--ig-spacing-block, --ig-spacing)), var(--is-small, 1) * 8px * var(--ig-spacing-block-small, var(--ig-spacing-block, --ig-spacing)));\n z-index: 26;\n}\n\n[part=list] {\n min-height: 12.5rem !important;\n outline-style: none;\n}\n\n[part=case-icon] {\n color: hsla(var(--ig-gray-600), var(--ig-gray-a));\n}\n\n[part=\"case-icon active\"] {\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}\n\n[part=empty] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n padding: 1rem 1.5rem;\n font-size: 0.8125rem;\n}`;\n"]}
1
+ {"version":3,"file":"combo.base.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkLvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host {\n --is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);\n --is-medium:\n min(\n clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1),\n clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1)\n );\n --is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n scrollbar-width: var(--ig-scrollbar-size);\n scrollbar-color: var(--ig-scrollbar-thumb-background) var(--ig-scrollbar-track-background);\n}\n:host *,\n:host *::before,\n:host *::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n:host ::-webkit-scrollbar {\n width: var(--ig-scrollbar-size);\n height: var(--ig-scrollbar-size);\n background: var(--ig-scrollbar-track-background);\n}\n:host ::-webkit-scrollbar-thumb {\n background: var(--ig-scrollbar-thumb-background);\n}\n\n[hidden] {\n display: none !important;\n}\n\n/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n --component-size: var(--ig-size, var(--ig-size-medium));\n display: block;\n font-family: var(--ig-font-family);\n}\n:host > igc-input::part(input) {\n -o-text-overflow: ellipsis;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n\n:host(:not([single-select])) > igc-input::part(input)::-moz-selection {\n background: transparent;\n}\n\n:host(:not([single-select])) > igc-input::part(input)::selection {\n background: transparent;\n}\n\n:host([invalid]) ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-error-500), var(--ig-error-a));\n}\n\n:host([disabled]) {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n:host([disabled]) igc-input::part(input)::-moz-selection {\n background: transparent;\n}\n:host([disabled]) igc-input::part(input)::selection {\n background: transparent;\n}\n\n[part=helper-text] {\n line-height: 1;\n}\n[part=helper-text] ::slotted([slot=helper-text]) {\n font-family: var(--ig-caption-font-family);\n font-size: var(--ig-caption-font-size);\n font-weight: var(--ig-caption-font-weight);\n font-style: var(--ig-caption-font-style);\n line-height: var(--ig-caption-line-height);\n letter-spacing: var(--ig-caption-letter-spacing);\n text-transform: var(--ig-caption-text-transform);\n margin-top: var(--ig-caption-margin-top);\n margin-bottom: var(--ig-caption-margin-bottom);\n line-height: inherit;\n}\n\n[part=clear-icon],\n[part=toggle-icon],\n[part~=case-icon] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n}\n\n[part=list-wrapper] {\n border-radius: clamp(0rem, calc(var(--ig-radius-factor) * 0.25rem), 0.25rem);\n position: absolute;\n width: 100%;\n background: hsla(var(--ig-surface-500), var(--ig-surface-a));\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n -webkit-box-shadow: var(--ig-elevation-8);\n box-shadow: var(--ig-elevation-8);\n overflow: hidden;\n outline-style: none;\n z-index: 999999;\n}\n[part=list-wrapper] igc-input {\n --ig-size: var(--ig-size-small);\n --ig-theme: material;\n}\n[part=list-wrapper] igc-input::part(container) {\n background: transparent;\n -webkit-border-start: 0;\n border-inline-start: 0;\n border-inline-end-color: transparent;\n -webkit-border-before: 0;\n border-block-start: 0;\n border-radius: 0;\n}\n[part=list-wrapper] igc-input::part(start) {\n display: none;\n}\n[part=list-wrapper] igc-input::part(input) {\n border-radius: 0;\n padding: 0;\n -webkit-border-start: 0;\n border-inline-start: 0;\n border-inline-end-color: transparent;\n -webkit-border-before: 0;\n border-block-start: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n[part=list-wrapper] igc-input::part(input)::-moz-selection {\n background: hsla(var(--ig-primary-100), var(--ig-primary-a));\n}\n[part=list-wrapper] igc-input::part(input)::selection {\n background: hsla(var(--ig-primary-100), var(--ig-primary-a));\n}\n[part=list-wrapper] [part=\"case-icon active\"] {\n color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n[part=filter-input] {\n padding-inline: max(var(--is-large, 1) * 16px * var(--ig-spacing-inline-large, var(--ig-spacing-inline, --ig-spacing)), var(--is-medium, 1) * 8px * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, --ig-spacing)), var(--is-small, 1) * 4px * var(--ig-spacing-inline-small, var(--ig-spacing-inline, --ig-spacing)));\n padding-block: max(var(--is-large, 1) * 8px * var(--ig-spacing-block-large, var(--ig-spacing-block, --ig-spacing)), var(--is-medium, 1) * 8px * var(--ig-spacing-block-medium, var(--ig-spacing-block, --ig-spacing)), var(--is-small, 1) * 8px * var(--ig-spacing-block-small, var(--ig-spacing-block, --ig-spacing)));\n z-index: 26;\n}\n\n[part=list] {\n min-height: 12.5rem !important;\n outline-style: none;\n}\n\n[part=case-icon] {\n color: hsla(var(--ig-gray-600), var(--ig-gray-a));\n}\n\n[part=\"case-icon active\"] {\n color: hsla(var(--ig-gray-900), var(--ig-gray-a));\n}\n\n[part=empty] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n padding: 1rem 1.5rem;\n font-size: 0.8125rem;\n}`;\n"]}
@@ -1,5 +1,8 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */
3
+ :host [part=helper-text] {
4
+ margin-top: 0.25rem;
5
+ }
3
6
  :host ::slotted([slot=helper-text]) {
4
7
  font-family: var(--ig-body-2-font-family);
5
8
  font-size: var(--ig-body-2-font-size);
@@ -26,6 +29,10 @@ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-
26
29
  border-color: hsla(var(--ig-error-500), var(--ig-error-a));
27
30
  }
28
31
 
32
+ :host([disabled]) ::slotted([slot=helper-text]) {
33
+ color: hsla(var(--ig-gray-400), var(--ig-gray-a));
34
+ }
35
+
29
36
  igc-input[readonly]:not([disabled])::part(prefix),
30
37
  igc-input[readonly]:not([disabled])::part(suffix) {
31
38
  color: hsla(var(--ig-gray-800), var(--ig-gray-a));
@@ -65,6 +72,10 @@ igc-input[disabled]::part(input) {
65
72
  border-color: hsla(var(--ig-gray-300), var(--ig-gray-a));
66
73
  }
67
74
 
75
+ [part=helper-text] {
76
+ margin-top: 0.25rem;
77
+ }
78
+
68
79
  [part=clear-icon] {
69
80
  -webkit-border-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));
70
81
  border-inline-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));
@@ -87,6 +98,27 @@ igc-input[disabled]::part(input) {
87
98
  border-block-end: 0.0625rem solid hsla(var(--ig-primary-500), var(--ig-primary-a));
88
99
  }
89
100
 
101
+ :host([disabled]) igc-input::part(input)::-webkit-input-placeholder {
102
+ color: hsla(var(--ig-gray-400), var(--ig-gray-a));
103
+ }
104
+
105
+ :host([disabled]) igc-input::part(input)::-moz-placeholder {
106
+ color: hsla(var(--ig-gray-400), var(--ig-gray-a));
107
+ }
108
+
109
+ :host([disabled]) igc-input::part(input):-ms-input-placeholder {
110
+ color: hsla(var(--ig-gray-400), var(--ig-gray-a));
111
+ }
112
+
113
+ :host([disabled]) igc-input::part(input)::-ms-input-placeholder {
114
+ color: hsla(var(--ig-gray-400), var(--ig-gray-a));
115
+ }
116
+
117
+ :host([disabled]) igc-input::part(label),
118
+ :host([disabled]) igc-input::part(input)::placeholder,
119
+ :host([disabled]) ::slotted([slot=helper-text]) {
120
+ color: hsla(var(--ig-gray-400), var(--ig-gray-a));
121
+ }
90
122
  :host([disabled]) [part=clear-icon] {
91
123
  -webkit-border-end: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));
92
124
  border-inline-end: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));
@@ -1 +1 @@
1
- {"version":3,"file":"combo.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2FvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host ::slotted([slot=helper-text]) {\n font-family: var(--ig-body-2-font-family);\n font-size: var(--ig-body-2-font-size);\n font-weight: var(--ig-body-2-font-weight);\n font-style: var(--ig-body-2-font-style);\n line-height: var(--ig-body-2-line-height);\n letter-spacing: var(--ig-body-2-letter-spacing);\n text-transform: var(--ig-body-2-text-transform);\n margin-top: var(--ig-body-2-margin-top);\n margin-bottom: var(--ig-body-2-margin-bottom);\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host(:focus-within) igc-input[readonly]:not([disabled])::part(input) {\n -webkit-box-shadow: 0 0 0 0.25rem hsla(var(--ig-primary-500), 0.38);\n box-shadow: 0 0 0 0.25rem hsla(var(--ig-primary-500), 0.38);\n border-color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([invalid]) igc-input[readonly]:not([disabled])::part(input),\n:host([invalid]:focus-within) igc-input[readonly]:not([disabled])::part(input) {\n -webkit-box-shadow: 0 0 0 0.25rem hsla(var(--ig-error-500), 0.38);\n box-shadow: 0 0 0 0.25rem hsla(var(--ig-error-500), 0.38);\n border-color: hsla(var(--ig-error-500), var(--ig-error-a));\n}\n\nigc-input[readonly]:not([disabled])::part(prefix),\nigc-input[readonly]:not([disabled])::part(suffix) {\n color: hsla(var(--ig-gray-800), var(--ig-gray-a));\n background: hsla(var(--ig-gray-300), var(--ig-gray-a));\n}\n\nigc-input[readonly]:not([disabled])::part(prefix),\nigc-input[readonly]:not([disabled])::part(suffix),\nigc-input[readonly]:not([disabled])::part(container) {\n color: hsla(var(--ig-gray-800), var(--ig-gray-a));\n}\n\nigc-input[readonly]:not([disabled])::part(container) {\n background: var(--input-background, #fff);\n}\n\nigc-input[readonly]:not([disabled])::part(prefix),\nigc-input[readonly]:not([disabled])::part(suffix),\nigc-input[readonly]:not([disabled])::part(input) {\n border-color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\nigc-input[disabled] {\n pointer-events: none;\n}\n\nigc-input[disabled]::part(prefix),\nigc-input[disabled]::part(suffix),\nigc-input[disabled]::part(container) {\n background: hsla(var(--ig-gray-100), var(--ig-gray-a));\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\nigc-input[disabled]::part(prefix),\nigc-input[disabled]::part(suffix),\nigc-input[disabled]::part(input) {\n border-color: hsla(var(--ig-gray-300), var(--ig-gray-a));\n}\n\n[part=clear-icon] {\n -webkit-border-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n border-inline-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\n[part=list-wrapper] igc-input::part(suffix) {\n background: transparent;\n border: none;\n border-radius: 0;\n}\n[part=list-wrapper] [part=search-input] [part~=case-icon] {\n -webkit-border-after: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n border-block-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n -webkit-transition: border 0.15s ease-out;\n -o-transition: border 0.15s ease-out;\n transition: border 0.15s ease-out;\n}\n[part=list-wrapper] [part=search-input]:focus [part~=case-icon], [part=list-wrapper] [part=search-input]:focus-within [part~=case-icon] {\n -webkit-border-after: 0.0625rem solid hsla(var(--ig-primary-500), var(--ig-primary-a));\n border-block-end: 0.0625rem solid hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([disabled]) [part=clear-icon] {\n -webkit-border-end: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));\n border-inline-end: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));\n}`;\n"]}
1
+ {"version":3,"file":"combo.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2HvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host [part=helper-text] {\n margin-top: 0.25rem;\n}\n:host ::slotted([slot=helper-text]) {\n font-family: var(--ig-body-2-font-family);\n font-size: var(--ig-body-2-font-size);\n font-weight: var(--ig-body-2-font-weight);\n font-style: var(--ig-body-2-font-style);\n line-height: var(--ig-body-2-line-height);\n letter-spacing: var(--ig-body-2-letter-spacing);\n text-transform: var(--ig-body-2-text-transform);\n margin-top: var(--ig-body-2-margin-top);\n margin-bottom: var(--ig-body-2-margin-bottom);\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host(:focus-within) igc-input[readonly]:not([disabled])::part(input) {\n -webkit-box-shadow: 0 0 0 0.25rem hsla(var(--ig-primary-500), 0.38);\n box-shadow: 0 0 0 0.25rem hsla(var(--ig-primary-500), 0.38);\n border-color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([invalid]) igc-input[readonly]:not([disabled])::part(input),\n:host([invalid]:focus-within) igc-input[readonly]:not([disabled])::part(input) {\n -webkit-box-shadow: 0 0 0 0.25rem hsla(var(--ig-error-500), 0.38);\n box-shadow: 0 0 0 0.25rem hsla(var(--ig-error-500), 0.38);\n border-color: hsla(var(--ig-error-500), var(--ig-error-a));\n}\n\n:host([disabled]) ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\nigc-input[readonly]:not([disabled])::part(prefix),\nigc-input[readonly]:not([disabled])::part(suffix) {\n color: hsla(var(--ig-gray-800), var(--ig-gray-a));\n background: hsla(var(--ig-gray-300), var(--ig-gray-a));\n}\n\nigc-input[readonly]:not([disabled])::part(prefix),\nigc-input[readonly]:not([disabled])::part(suffix),\nigc-input[readonly]:not([disabled])::part(container) {\n color: hsla(var(--ig-gray-800), var(--ig-gray-a));\n}\n\nigc-input[readonly]:not([disabled])::part(container) {\n background: var(--input-background, #fff);\n}\n\nigc-input[readonly]:not([disabled])::part(prefix),\nigc-input[readonly]:not([disabled])::part(suffix),\nigc-input[readonly]:not([disabled])::part(input) {\n border-color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\nigc-input[disabled] {\n pointer-events: none;\n}\n\nigc-input[disabled]::part(prefix),\nigc-input[disabled]::part(suffix),\nigc-input[disabled]::part(container) {\n background: hsla(var(--ig-gray-100), var(--ig-gray-a));\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\nigc-input[disabled]::part(prefix),\nigc-input[disabled]::part(suffix),\nigc-input[disabled]::part(input) {\n border-color: hsla(var(--ig-gray-300), var(--ig-gray-a));\n}\n\n[part=helper-text] {\n margin-top: 0.25rem;\n}\n\n[part=clear-icon] {\n -webkit-border-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n border-inline-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\n[part=list-wrapper] igc-input::part(suffix) {\n background: transparent;\n border: none;\n border-radius: 0;\n}\n[part=list-wrapper] [part=search-input] [part~=case-icon] {\n -webkit-border-after: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n border-block-end: 0.0625rem solid hsla(var(--ig-gray-400), var(--ig-gray-a));\n -webkit-transition: border 0.15s ease-out;\n -o-transition: border 0.15s ease-out;\n transition: border 0.15s ease-out;\n}\n[part=list-wrapper] [part=search-input]:focus [part~=case-icon], [part=list-wrapper] [part=search-input]:focus-within [part~=case-icon] {\n -webkit-border-after: 0.0625rem solid hsla(var(--ig-primary-500), var(--ig-primary-a));\n border-block-end: 0.0625rem solid hsla(var(--ig-primary-500), var(--ig-primary-a));\n}\n\n:host([disabled]) igc-input::part(input)::-webkit-input-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(input)::-moz-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(input):-ms-input-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(input)::-ms-input-placeholder {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(label),\n:host([disabled]) igc-input::part(input)::placeholder,\n:host([disabled]) ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-gray-400), var(--ig-gray-a));\n}\n:host([disabled]) [part=clear-icon] {\n -webkit-border-end: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));\n border-inline-end: 0.0625rem solid hsla(var(--ig-gray-300), var(--ig-gray-a));\n}`;\n"]}
@@ -1,5 +1,12 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */
3
+ [part=helper-text] {
4
+ margin-top: 0.3125rem;
5
+ }
6
+ [part=helper-text] ::slotted([slot=helper-text]) {
7
+ color: hsla(var(--ig-gray-700), var(--ig-gray-a));
8
+ }
9
+
3
10
  :host {
4
11
  --size: max(var(--is-large, 1) * 3rem, var(--is-medium, 1) * 2.5rem, var(--is-small, 1) * 2rem);
5
12
  }
@@ -24,6 +31,10 @@ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-
24
31
  height: calc(var(--size) - 0.25rem);
25
32
  }
26
33
 
34
+ :host([disabled]) [part=helper-text] ::slotted([slot=helper-text]) {
35
+ color: hsla(var(--ig-gray-500), var(--ig-gray-a));
36
+ }
37
+
27
38
  :host ::slotted([slot=helper-text]) {
28
39
  font-family: var(--ig-caption-font-family);
29
40
  font-size: var(--ig-caption-font-size);
@@ -36,8 +47,30 @@ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-
36
47
  margin-bottom: var(--ig-caption-margin-bottom);
37
48
  display: block;
38
49
  padding: 0;
39
- margin-top: 0.5rem;
40
- color: hsla(var(--ig-gray-600), var(--ig-gray-a));
50
+ margin-top: 0.3125rem;
51
+ color: hsla(var(--ig-gray-700), var(--ig-gray-a));
52
+ }
53
+
54
+ :host([disabled]) igc-input::part(input)::-webkit-input-placeholder {
55
+ color: hsla(var(--ig-gray-500), var(--ig-gray-a));
56
+ }
57
+
58
+ :host([disabled]) igc-input::part(input)::-moz-placeholder {
59
+ color: hsla(var(--ig-gray-500), var(--ig-gray-a));
60
+ }
61
+
62
+ :host([disabled]) igc-input::part(input):-ms-input-placeholder {
63
+ color: hsla(var(--ig-gray-500), var(--ig-gray-a));
64
+ }
65
+
66
+ :host([disabled]) igc-input::part(input)::-ms-input-placeholder {
67
+ color: hsla(var(--ig-gray-500), var(--ig-gray-a));
68
+ }
69
+
70
+ :host([disabled]) igc-input::part(label),
71
+ :host([disabled]) igc-input::part(input)::placeholder,
72
+ :host([disabled]) ::slotted([slot=helper-text]) {
73
+ color: hsla(var(--ig-gray-500), var(--ig-gray-a));
41
74
  }
42
75
 
43
76
  :host([invalid]:focus-within) igc-input::part(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"combo.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmEvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n:host {\n --size: max(var(--is-large, 1) * 3rem, var(--is-medium, 1) * 2.5rem, var(--is-small, 1) * 2rem);\n}\n\n:host(:focus-within) igc-input[readonly]:not([disabled])::part(container) {\n border-width: 0.125rem;\n}\n\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(container) {\n border-color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n border-width: 0.125rem;\n}\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(prefix) {\n -webkit-margin-start: -0.0625rem;\n margin-inline-start: -0.0625rem;\n}\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(suffix) {\n -webkit-margin-end: -0.0625rem;\n margin-inline-end: -0.0625rem;\n}\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(input) {\n height: calc(var(--size) - 0.25rem);\n}\n\n:host ::slotted([slot=helper-text]) {\n font-family: var(--ig-caption-font-family);\n font-size: var(--ig-caption-font-size);\n font-weight: var(--ig-caption-font-weight);\n font-style: var(--ig-caption-font-style);\n line-height: var(--ig-caption-line-height);\n letter-spacing: var(--ig-caption-letter-spacing);\n text-transform: var(--ig-caption-text-transform);\n margin-top: var(--ig-caption-margin-top);\n margin-bottom: var(--ig-caption-margin-bottom);\n display: block;\n padding: 0;\n margin-top: 0.5rem;\n color: hsla(var(--ig-gray-600), var(--ig-gray-a));\n}\n\n:host([invalid]:focus-within) igc-input::part(input) {\n height: calc(var(--size) - 0.25rem);\n}\n:host([invalid]:focus-within) igc-input::part(suffix) {\n height: var(--size);\n -webkit-margin-end: -0.0625rem;\n margin-inline-end: -0.0625rem;\n -webkit-margin-before: -0.125rem;\n margin-block-start: -0.125rem;\n}\n:host([invalid]:focus-within) igc-input::part(prefix) {\n -webkit-margin-start: -0.0625rem;\n margin-inline-start: -0.0625rem;\n -webkit-margin-before: -0.125rem;\n margin-block-start: -0.125rem;\n}\n\n[part=filter-input] {\n padding: max(var(--is-large, 1) * 8px * var(--ig-spacing-large, var(--ig-spacing, --ig-spacing)), var(--is-medium, 1) * 4px * var(--ig-spacing-medium, var(--ig-spacing, --ig-spacing)), var(--is-small, 1) * 2px * var(--ig-spacing-small, var(--ig-spacing, --ig-spacing)));\n}\n\n[part=list-wrapper] igc-input::part(suffix) {\n background: transparent;\n}\n[part=list-wrapper] igc-input::part(input) {\n height: var(--size);\n}`;\n"]}
1
+ {"version":3,"file":"combo.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/combo/themes/light/combo.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoGvB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`/* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */ /* stylelint-disable max-line-length */\n[part=helper-text] {\n margin-top: 0.3125rem;\n}\n[part=helper-text] ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host {\n --size: max(var(--is-large, 1) * 3rem, var(--is-medium, 1) * 2.5rem, var(--is-small, 1) * 2rem);\n}\n\n:host(:focus-within) igc-input[readonly]:not([disabled])::part(container) {\n border-width: 0.125rem;\n}\n\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(container) {\n border-color: hsla(var(--ig-primary-500), var(--ig-primary-a));\n border-width: 0.125rem;\n}\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(prefix) {\n -webkit-margin-start: -0.0625rem;\n margin-inline-start: -0.0625rem;\n}\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(suffix) {\n -webkit-margin-end: -0.0625rem;\n margin-inline-end: -0.0625rem;\n}\n:host(:not([invalid]):focus-within) igc-input[readonly]:not([disabled])::part(input) {\n height: calc(var(--size) - 0.25rem);\n}\n\n:host([disabled]) [part=helper-text] ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host ::slotted([slot=helper-text]) {\n font-family: var(--ig-caption-font-family);\n font-size: var(--ig-caption-font-size);\n font-weight: var(--ig-caption-font-weight);\n font-style: var(--ig-caption-font-style);\n line-height: var(--ig-caption-line-height);\n letter-spacing: var(--ig-caption-letter-spacing);\n text-transform: var(--ig-caption-text-transform);\n margin-top: var(--ig-caption-margin-top);\n margin-bottom: var(--ig-caption-margin-bottom);\n display: block;\n padding: 0;\n margin-top: 0.3125rem;\n color: hsla(var(--ig-gray-700), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(input)::-webkit-input-placeholder {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(input)::-moz-placeholder {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(input):-ms-input-placeholder {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(input)::-ms-input-placeholder {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host([disabled]) igc-input::part(label),\n:host([disabled]) igc-input::part(input)::placeholder,\n:host([disabled]) ::slotted([slot=helper-text]) {\n color: hsla(var(--ig-gray-500), var(--ig-gray-a));\n}\n\n:host([invalid]:focus-within) igc-input::part(input) {\n height: calc(var(--size) - 0.25rem);\n}\n:host([invalid]:focus-within) igc-input::part(suffix) {\n height: var(--size);\n -webkit-margin-end: -0.0625rem;\n margin-inline-end: -0.0625rem;\n -webkit-margin-before: -0.125rem;\n margin-block-start: -0.125rem;\n}\n:host([invalid]:focus-within) igc-input::part(prefix) {\n -webkit-margin-start: -0.0625rem;\n margin-inline-start: -0.0625rem;\n -webkit-margin-before: -0.125rem;\n margin-block-start: -0.125rem;\n}\n\n[part=filter-input] {\n padding: max(var(--is-large, 1) * 8px * var(--ig-spacing-large, var(--ig-spacing, --ig-spacing)), var(--is-medium, 1) * 4px * var(--ig-spacing-medium, var(--ig-spacing, --ig-spacing)), var(--is-small, 1) * 2px * var(--ig-spacing-small, var(--ig-spacing, --ig-spacing)));\n}\n\n[part=list-wrapper] igc-input::part(suffix) {\n background: transparent;\n}\n[part=list-wrapper] igc-input::part(input) {\n height: var(--size);\n}`;\n"]}
@@ -4,13 +4,22 @@ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-
4
4
  background: hsla(var(--ig-gray-300), var(--ig-gray-a));
5
5
  }
6
6
 
7
+ [part=helper-text] {
8
+ margin-top: 0.375rem;
9
+ padding-inline: max(var(--is-large, 1) * 1rem * var(--ig-spacing-inline-large, var(--ig-spacing-inline, --ig-spacing)), var(--is-medium, 1) * 0.75rem * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, --ig-spacing)), var(--is-small, 1) * 0.5rem * var(--ig-spacing-inline-small, var(--ig-spacing-inline, --ig-spacing)));
10
+ color: hsla(var(--ig-gray-600), var(--ig-gray-a));
11
+ }
12
+
7
13
  :host ::slotted([slot=helper-text]) {
8
14
  color: hsla(var(--ig-gray-600), var(--ig-gray-a));
9
15
  }
10
16
 
11
- :host([disabled]) ::slotted([slot=helper-text]) {
17
+ :host([disabled]) [part=helper-text] ::slotted([slot=helper-text]) {
12
18
  color: hsla(var(--ig-gray-300), var(--ig-gray-a));
13
19
  }
20
+ :host([disabled]) [part=toggle-icon] {
21
+ background: transparent;
22
+ }
14
23
 
15
24
  :host(:focus-within) igc-input[readonly]:not([disabled])::part(container)::after {
16
25
  -webkit-transform: scaleY(1);
@@ -25,17 +34,18 @@ export const styles = css `/* stylelint-disable max-line-length */ /* stylelint-
25
34
  color: var(--label-focus-color, hsla(var(--ig-primary-500), var(--ig-primary-a)));
26
35
  }
27
36
 
28
- :host ::slotted([slot=helper-text]) {
29
- font-family: var(--ig-caption-font-family);
30
- font-size: var(--ig-caption-font-size);
31
- font-weight: var(--ig-caption-font-weight);
32
- font-style: var(--ig-caption-font-style);
33
- line-height: var(--ig-caption-line-height);
34
- letter-spacing: var(--ig-caption-letter-spacing);
35
- text-transform: var(--ig-caption-text-transform);
36
- margin-top: var(--ig-caption-margin-top);
37
- margin-bottom: var(--ig-caption-margin-bottom);
38
- padding: 0;
37
+ [part=helper-text] {
38
+ margin-top: 0.375rem;
39
+ padding-inline: max(var(--is-large, 1) * 1rem * var(--ig-spacing-inline-large, var(--ig-spacing-inline, --ig-spacing)), var(--is-medium, 1) * 0.75rem * var(--ig-spacing-inline-medium, var(--ig-spacing-inline, --ig-spacing)), var(--is-small, 1) * 0.5rem * var(--ig-spacing-inline-small, var(--ig-spacing-inline, --ig-spacing)));
40
+ }
41
+ [part=helper-text] ::slotted([slot=helper-text]) {
39
42
  color: hsla(var(--ig-gray-600), var(--ig-gray-a));
43
+ }
44
+
45
+ :host([disabled]) [part=helper-text] ::slotted([slot=helper-text]) {
46
+ color: hsla(var(--ig-gray-300), var(--ig-gray-a));
47
+ }
48
+ :host([disabled]) [part=toggle-icon] {
49
+ background: transparent;
40
50
  }`;
41
51
  //# sourceMappingURL=combo.indigo.css.js.map