Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
36f3aee
feat(input-group): add read-only styles
SisIvanova Aug 18, 2025
d923130
Merge branch 'master' into sivanova/input-read-only
simeonoff Aug 21, 2025
23640e8
feat(date-picker/time-picker): readonly styles
SisIvanova Aug 28, 2025
03219e5
Merge branch 'master' into sivanova/input-read-only
SisIvanova Aug 28, 2025
eaf27bf
refactor(input-group): add input read only directive
simeonoff Aug 28, 2025
b33b1e1
refactor(input-group): read-only styles using new directive
SisIvanova Aug 29, 2025
c2c438a
Merge branch 'master' into sivanova/input-read-only
SisIvanova Aug 29, 2025
c95f4ba
refactor(input-group): update directive name
SisIvanova Aug 29, 2025
da18ca9
test(input-group): covering the newly added readonly directive
SisIvanova Sep 2, 2025
db4ccb0
Merge branch 'master' into sivanova/input-read-only
SisIvanova Sep 2, 2025
90c5219
Merge branch 'master' into sivanova/input-read-only
SisIvanova Sep 3, 2025
3936cf4
fix(date-picker/time-picker): remove default readonly state
SisIvanova Sep 3, 2025
ace1240
Merge branch 'master' into sivanova/input-read-only
desig9stein Sep 10, 2025
335b448
fix(input): fluent theme search type
SisIvanova Sep 10, 2025
78c6039
Merge branch 'master' into sivanova/input-read-only
simeonoff Sep 16, 2025
0c0a4fb
Merge branch 'master' into sivanova/input-read-only
SisIvanova Sep 18, 2025
928e88f
Merge branch 'master' into sivanova/input-read-only
desig9stein Sep 19, 2025
b6b1fcd
Merge branch 'master' into sivanova/input-read-only
SisIvanova Sep 23, 2025
f57ce21
Merge branch 'master' into sivanova/input-read-only
simeonoff Sep 23, 2025
c11a1d2
Merge branch 'master' into sivanova/input-read-only
simeonoff Sep 24, 2025
9d8677b
spec(excel-style-date-expression): fix failing test
simeonoff Sep 24, 2025
e8ca2d8
spec(grid-filtering-ui): fix failing tests
simeonoff Sep 24, 2025
f78b096
build(styles): increase allowed budget
simeonoff Sep 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,8 @@
{
"type": "bundle",
"name": "styles",
"maximumWarning": "480kb",
"maximumError": "490kb"
"maximumWarning": "500kb",
"maximumError": "550kb"
},
{
"type": "anyComponentStyle",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<ng-content select="igx-hint, [igxHint]"></ng-content>
</ng-container>
<input igxInput #comboInput name="comboInput" type="text" [value]="displayValue" readonly
[attr.placeholder]="placeholder" [disabled]="disabled"
[attr.placeholder]="placeholder" [disabled]="disabled" [igxReadOnlyInput]="false"
role="combobox" aria-haspopup="listbox"
[attr.aria-expanded]="!dropdown.collapsed" [attr.aria-controls]="dropdown.listId"
[attr.aria-labelledby]="ariaLabelledBy || label?.id || placeholder"
Expand Down
2 changes: 2 additions & 0 deletions projects/igniteui-angular/src/lib/combo/combo.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import { IgxDropDownItemNavigationDirective } from '../drop-down/drop-down-navig
import { IgxIconComponent } from '../icon/icon.component';
import { IgxSuffixDirective } from '../directives/suffix/suffix.directive';
import { IgxInputDirective } from '../directives/input/input.directive';
import { IgxReadOnlyInputDirective } from '../directives/input/read-only-input.directive';

/** Event emitted when an igx-combo's selection is changing */
export interface IComboSelectionChangingEventArgs extends IBaseCancelableEventArgs {
Expand Down Expand Up @@ -115,6 +116,7 @@ const diffInSets = (set1: Set<any>, set2: Set<any>): any[] => {
IgxComboAddItemComponent,
IgxButtonDirective,
IgxRippleDirective,
IgxReadOnlyInputDirective,
IgxComboFilteringPipe,
IgxComboGroupingPipe
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@
}

@include e(notch) {
@extend %igx-input-group__notch !optional;
@extend %igx-input-group__notch !optional;
}

@include e(filler) {
@extend %igx-input-group__filler !optional;
@extend %igx-input-group__filler !optional;
}

@include e(input) {
Expand Down Expand Up @@ -111,20 +111,24 @@
@extend %suffixed !optional;
}

@include m(readonly) {
@extend %form-group-display--readonly !optional;
}

// Textarea modifier
@include m(textarea-group) {
@extend %textarea-group !optional;

@include e(bundle-main) {
@extend %form-group-textarea-group-bundle-main !optional;
@extend %form-group-textarea-group-bundle-main !optional;
}

@include e(bundle) {
@extend %form-group-textarea-group-bundle !optional;
@extend %form-group-textarea-group-bundle !optional;
}

@include e(label) {
@extend %form-group-textarea-label !optional;
@extend %form-group-textarea-label !optional;
}
}

Expand Down Expand Up @@ -282,6 +286,8 @@
}

@include m(invalid) {
@extend %form-group-display--invalid !optional;

@include e(label) {
@extend %form-group-label--error !optional;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,91 @@
}
}

%form-group-display--readonly:not(%form-group-display--file) {
igx-prefix,
[igxPrefix],
igx-suffix,
[igxSuffix] {
color: var-get($theme, 'disabled-text-color');

@if $variant == 'fluent' {
background: transparent;
}

@if $variant == 'bootstrap' {
background: var-get($theme, 'border-disabled-background');
}
}

@if $variant == 'bootstrap' {
%form-group-input {
background: var-get($theme, 'border-disabled-background');
}
}

%form-group-bundle--hover::after {
@if $variant == 'material' {
border-block-end-color: var-get($theme, 'idle-bottom-line-color');
}
}

@if $variant == 'indigo' {
%form-group-bundle--hover:not(:focus-within) {
background: unset;

&::after {
border-block-end-color: var-get($theme, 'disabled-text-color');
}
}
}

&%igx-input-group-fluent:not(:focus-within) {
%form-group-bundle--hover::before {
box-shadow: inset 0 0 0 var(--_fluent-input-border-size) var-get($theme, 'border-color');
}
}

&%form-group-display--box:not(%form-group-display--disabled) {
%form-group-bundle {
background: var-get($theme, 'box-background-focus');
}
}

&%form-group-display--border:not(%form-group-display--disabled) {
%form-group-bundle:hover:not(:focus-within) {
%form-group-bundle-start,
%igx-input-group__filler,
%form-group-bundle-end {
border-color: var-get($theme, 'border-color');
}

%igx-input-group__notch {
border-block-start-color: var-get($theme, 'border-color');
border-block-end-color: var-get($theme, 'border-color');
}
}
}

&%form-group-display--search {
%form-group-bundle-search--hover:not(:focus-within) {
box-shadow: var-get($theme, 'search-resting-shadow');
}
}

&:hover {
%form-group-input--hover {
cursor: default;
color: var-get($theme, 'filled-text-color');

&:not(:focus-within) {
&::placeholder {
color: var-get($theme, 'placeholder-color');
}
}
}
}
}

%form-group-display--disabled {
pointer-events: none;
user-select: none;
Expand Down Expand Up @@ -355,8 +440,6 @@
}

%form-group-bundle--hover {
//cursor: pointer;

&::after {
border-block-end-width: rem(1px);
border-block-end-color: var-get($theme, 'hover-bottom-line-color');
Expand Down Expand Up @@ -390,13 +473,6 @@
caret-color: initial;
}

%form-group-bundle--error {
&::after {
border-block-end-color: var-get($theme, 'error-secondary-color');
}
caret-color: initial;
}

%form-group-bundle--disabled {
cursor: default;

Expand Down Expand Up @@ -606,8 +682,7 @@
%bootstrap-file-focused,
%bootstrap-file-valid,
%bootstrap-file-warning,
%bootstrap-file-invalid
{
%bootstrap-file-invalid {
%form-group-bundle {
border-radius: var-get($theme, 'box-border-radius');
transition: box-shadow .15s ease-out, border .15s ease-out;
Expand Down Expand Up @@ -900,22 +975,16 @@
}

&:hover {
%form-group-bundle-start {
border-color: var-get($theme, 'hover-border-color');
}

%igx-input-group__filler {
%form-group-bundle-start,
%igx-input-group__filler,
%form-group-bundle-end {
border-color: var-get($theme, 'hover-border-color');
}

%igx-input-group__notch {
border-block-start-color: var-get($theme, 'hover-border-color');
border-block-end-color: var-get($theme, 'hover-border-color');
}

%form-group-bundle-end {
border-color: var-get($theme, 'hover-border-color');
}
}
}

Expand Down Expand Up @@ -1236,10 +1305,6 @@
color: var-get($theme, 'success-secondary-color');
}

%form-group-label--error {
color: var-get($theme, 'error-secondary-color');
}

%form-group-label--required {
&::after {
content: '#{$required-symbol}';
Expand Down Expand Up @@ -1511,11 +1576,8 @@
}
}

%form-group-line--error {
background: var-get($theme, 'error-secondary-color');
}

%form-group-border--error {
%form-group-border--error:not(%form-group-display--readonly),
%form-group-border--error%form-group-display--file {
%form-group-bundle-start {
border-inline-start-color: var-get($theme, 'error-secondary-color');
border-block-start-color: var-get($theme, 'error-secondary-color');
Expand Down Expand Up @@ -1605,10 +1667,6 @@
%form-group-helper--warning {
color: var-get($theme, 'warning-secondary-color');
}

%form-group-helper--error {
color: var-get($theme, 'error-secondary-color');
}
}

%form-group-helper-item {
Expand Down Expand Up @@ -1766,6 +1824,15 @@
background: var(--igx-input-group-input-suffix-background, transparent);
color: var(--igx-input-group-input-suffix-color, var(--ig-primary-500));
}

&%form-group-display--readonly {
igx-prefix,
[igxPrefix],
igx-suffix,
[igxSuffix] {
color: var(--igx-input-group-disabled-text-color, var(--ig-gray-500));
}
}
}

%igx-input-group-fluent-search--focused {
Expand All @@ -1778,6 +1845,13 @@
[igxSuffix] {
color: var(--igx-input-group-input-suffix-color--focused, var(--ig-gray-900));
}

&%form-group-display--readonly {
igx-suffix,
[igxSuffix] {
color: var(--igx-input-group-input-suffix-color--focused, var(--ig-gray-900));
}
}
}

// Bundle
Expand Down Expand Up @@ -1855,14 +1929,6 @@
}
}

%form-group-bundle-error--fluent,
%form-group-bundle-error--fluent--hover,
%form-group-bundle-error--fluent--focus {
&::before {
box-shadow: inset 0 0 0 var(--_fluent-input-border-size) var-get($theme, 'error-secondary-color');
}
}

%form-group-bundle-success--fluent,
%form-group-bundle-success--fluent--hover,
%form-group-bundle-success--fluent--focus {
Expand Down Expand Up @@ -1892,6 +1958,48 @@
}
}

%form-group-display--invalid:not(%form-group-display--readonly),
%form-group-display--invalid%form-group-display--file {
@if $variant != 'indigo' {
%form-group-label--error,
%form-group-helper--error {
color: var-get($theme, 'error-secondary-color');
}
}

%form-group-line--error {
background: var-get($theme, 'error-secondary-color');
}

%form-group-bundle--error {
&::after {
border-block-end-color: var-get($theme, 'error-secondary-color');
}

caret-color: initial;
}

&%form-group-display--bootstrap {
%bootstrap-input--error {
border: rem(1px) solid var-get($theme, 'error-secondary-color');

&:focus {
box-shadow: 0 0 0 rem(4px) var-get($theme, 'error-shadow-color');
}
}
}

&%igx-input-group-fluent {
%form-group-bundle-error--fluent,
%form-group-bundle-error--fluent--hover,
%form-group-bundle-error--fluent--focus {
&::before {
box-shadow: inset 0 0 0 var(--_fluent-input-border-size) var-get($theme, 'error-secondary-color');
}
}
}
}

// Native input
%fluent-input {
font-size: rem(14px);
Expand Down Expand Up @@ -2255,14 +2363,16 @@
box-shadow: 0 0 0 rem(4px) color($color: 'warn', $variant: '500', $opacity: .38);
}

%bootstrap-input--error {
border: rem(1px) solid var-get($theme, 'error-secondary-color');

&:focus {
box-shadow: 0 0 0 rem(4px) var-get($theme, 'error-shadow-color');
%form-group-display:not(%form-group-display--file) {
%bootstrap-input--error {
border: rem(1px) solid var-get($theme, 'error-secondary-color');

+ %bootstrap-file-input {
&:focus {
box-shadow: 0 0 0 rem(4px) var-get($theme, 'error-shadow-color');

+ %bootstrap-file-input {
box-shadow: 0 0 0 rem(4px) var-get($theme, 'error-shadow-color');
}
}
}
}
Expand Down
Loading
Loading