Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
98ab732
Pushed changes for input, textarea, number input and select
1307-Dev Nov 19, 2025
08923ca
Checkbox - form validations handled.
khathija-ahamadi Nov 19, 2025
728fe99
Merge branch '(feature/core)validation-input-components' of https://gโ€ฆ
khathija-ahamadi Nov 19, 2025
85f2720
Checkbox unit tests added for noValidate scenraios.
khathija-ahamadi Nov 20, 2025
df34372
removed reset for select component.
1307-Dev Nov 20, 2025
0e93b01
Merge branch '(feature/core)validation-input-components' of https://gโ€ฆ
1307-Dev Nov 20, 2025
947c8c8
Lint and prettier fixes - Checkbox component.
khathija-ahamadi Nov 20, 2025
f69720c
Merge branch '(feature/core)validation-input-components' of https://gโ€ฆ
khathija-ahamadi Nov 20, 2025
2114e6b
Added lint fixes
1307-Dev Nov 20, 2025
fa156fc
Checkbox component refactored - congnitive complexity fixed (sonar)
khathija-ahamadi Nov 20, 2025
1a804f4
Merge branch '(feature/core)validation-input-components' of https://gโ€ฆ
khathija-ahamadi Nov 20, 2025
384f62b
Radio form validations for noValidate cases implemented.
khathija-ahamadi Nov 20, 2025
620e354
Checkbox and radio component refactored.
khathija-ahamadi Nov 20, 2025
d1f1b32
Radio button component refactored.
khathija-ahamadi Nov 20, 2025
78d44d8
Duplicate issue of sonar qube for checkbox component fixed.
khathija-ahamadi Nov 20, 2025
42ba146
Sonar fixes
khathija-ahamadi Nov 21, 2025
78c5ea2
Sonar fixes.
khathija-ahamadi Nov 21, 2025
2e25c8d
Checkbox and radio sonar fixes.
khathija-ahamadi Nov 21, 2025
7eb75b0
Checkbox and radio component refactored.
khathija-ahamadi Nov 21, 2025
aa3cccb
Radio and checkbox sonar fixes.
khathija-ahamadi Nov 21, 2025
8b4c75d
Merge branch 'main' into (feature/core)validation-input-components
1307-Dev Nov 21, 2025
0177782
Radio group linting issue fixed.
khathija-ahamadi Nov 21, 2025
2017b10
Merge branch '(feature/core)validation-input-components' of https://gโ€ฆ
khathija-ahamadi Nov 21, 2025
82a44fa
Merge branch 'siemens:main' into (feature/core)validation-input-compoโ€ฆ
RamVinayMandal Dec 3, 2025
79de301
Date and Time input implementation
RamVinayMandal Dec 3, 2025
607d119
Renamed method to clear and modified the functionality
1307-Dev Dec 10, 2025
acf5b4a
Merge branch 'main' into (feature/core)validation-input-components
RamVinayMandal Dec 11, 2025
bbe6a6f
Fix unit test failing due to infra issue.
khathija-ahamadi Dec 12, 2025
c15475a
Merge branch '(feature/core)validation-input-components' of https://gโ€ฆ
khathija-ahamadi Dec 12, 2025
a12e221
Fix unit tests failing due to infra issue.
khathija-ahamadi Dec 12, 2025
921e14d
Fix: First appy validation classes and then render and then assert ifโ€ฆ
khathija-ahamadi Dec 12, 2025
45c9897
wait for timeout added.
khathija-ahamadi Dec 12, 2025
7416bed
Modified failing test cases
1307-Dev Dec 15, 2025
3652d2c
Fixed sonarcube issues
RamVinayMandal Dec 15, 2025
b0a27c8
Merge branch '(feature/core)validation-input-components' of github.coโ€ฆ
RamVinayMandal Dec 15, 2025
73b117b
Lint issue fixed
RamVinayMandal Dec 15, 2025
aa9e135
Revert unit tests for checkbox and radio component.
khathija-ahamadi Dec 17, 2025
863520e
Merge branch '(feature/core)validation-input-components' of https://gโ€ฆ
khathija-ahamadi Dec 17, 2025
8a1158a
Added clear method for radiobutton, checkbox and their group components.
1307-Dev Dec 17, 2025
a8a42a4
Merge branch 'main' into (feature/core)validation-input-components
RamVinayMandal Jan 21, 2026
57435f7
Resolved conflicts
RamVinayMandal Jan 21, 2026
6fb51f2
Merge branch 'siemens:main' into (feature/core)validation-input-compoโ€ฆ
RamVinayMandal Jan 21, 2026
477fe32
Merge branch 'main' into (feature/core)validation-input-components
RamVinayMandal Jan 31, 2026
c6c988f
feat(core/picker-input): refactor date and time input components to eโ€ฆ
RamVinayMandal Feb 3, 2026
211b27a
refactor(core): streamline picker input components and improve methodโ€ฆ
RamVinayMandal Feb 3, 2026
71735db
refactor(core/input): enhance input clearing logic and improve state โ€ฆ
RamVinayMandal Feb 3, 2026
3fef324
Merge branch 'main' into (feature/core)validation-input-components
RamVinayMandal Feb 3, 2026
89a6235
feat(core/date-input, time-input): add isInputInvalid state and improโ€ฆ
RamVinayMandal Feb 4, 2026
2ab2d29
Merge branch '(feature/core)validation-input-components' of github.coโ€ฆ
RamVinayMandal Feb 4, 2026
cce01fc
Merge branch 'main' into (feature/core)validation-input-components
RamVinayMandal Feb 4, 2026
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
22 changes: 13 additions & 9 deletions packages/angular/src/components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,8 @@ export declare interface IxCategoryFilter extends Components.IxCategoryFilter {


@ProxyCmp({
inputs: ['checked', 'disabled', 'indeterminate', 'label', 'name', 'required', 'value']
inputs: ['checked', 'disabled', 'indeterminate', 'label', 'name', 'required', 'value'],
methods: ['clear']
})
@Component({
selector: 'ix-checkbox',
Expand Down Expand Up @@ -441,7 +442,8 @@ export declare interface IxCheckbox extends Components.IxCheckbox {


@ProxyCmp({
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'warningText']
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'warningText'],
methods: ['clear']
})
@Component({
selector: 'ix-checkbox-group',
Expand Down Expand Up @@ -629,7 +631,7 @@ The event payload contains information about the selected date range.

@ProxyCmp({
inputs: ['ariaLabelCalendarButton', 'ariaLabelNextMonthButton', 'ariaLabelPreviousMonthButton', 'disabled', 'enableTopLayer', 'format', 'helperText', 'i18nErrorDateUnparsable', 'infoText', 'invalidText', 'label', 'locale', 'maxDate', 'minDate', 'name', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'showWeekNumbers', 'suppressSubmitOnEnter', 'textAlignment', 'validText', 'value', 'warningText', 'weekStartIndex'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'focusInput', 'clear']
})
@Component({
selector: 'ix-date-input',
Expand Down Expand Up @@ -1326,7 +1328,7 @@ export declare interface IxIconToggleButton extends Components.IxIconToggleButto

@ProxyCmp({
inputs: ['allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'suppressSubmitOnEnter', 'textAlignment', 'type', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'getValidityState', 'focusInput']
methods: ['getNativeInputElement', 'getValidityState', 'focusInput', 'clear']
})
@Component({
selector: 'ix-input',
Expand Down Expand Up @@ -2003,7 +2005,7 @@ Can be prevented, in which case only the event is triggered, and the modal remai

@ProxyCmp({
inputs: ['allowEmptyValueChange', 'allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'max', 'min', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showStepperButtons', 'showTextAsTooltip', 'step', 'suppressSubmitOnEnter', 'textAlignment', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'focusInput', 'clear']
})
@Component({
selector: 'ix-number-input',
Expand Down Expand Up @@ -2214,7 +2216,8 @@ export declare interface IxPushCard extends Components.IxPushCard {}


@ProxyCmp({
inputs: ['checked', 'disabled', 'label', 'name', 'required', 'value']
inputs: ['checked', 'disabled', 'label', 'name', 'required', 'value'],
methods: ['clear']
})
@Component({
selector: 'ix-radio',
Expand Down Expand Up @@ -2254,7 +2257,8 @@ export declare interface IxRadio extends Components.IxRadio {


@ProxyCmp({
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'value', 'warningText']
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'value', 'warningText'],
methods: ['clear']
})
@Component({
selector: 'ix-radio-group',
Expand Down Expand Up @@ -2528,7 +2532,7 @@ export declare interface IxTabs extends Components.IxTabs {

@ProxyCmp({
inputs: ['disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'resizeBehavior', 'showTextAsTooltip', 'textareaCols', 'textareaHeight', 'textareaRows', 'textareaWidth', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'getValidityState', 'focusInput', 'clear']
})
@Component({
selector: 'ix-textarea',
Expand Down Expand Up @@ -2592,7 +2596,7 @@ export declare interface IxTile extends Components.IxTile {}

@ProxyCmp({
inputs: ['disabled', 'enableTopLayer', 'format', 'helperText', 'hideHeader', 'hourInterval', 'i18nErrorTimeUnparsable', 'i18nHourColumnHeader', 'i18nMillisecondColumnHeader', 'i18nMinuteColumnHeader', 'i18nSecondColumnHeader', 'i18nSelectTime', 'i18nTime', 'infoText', 'invalidText', 'label', 'millisecondInterval', 'minuteInterval', 'name', 'placeholder', 'readonly', 'required', 'secondInterval', 'showTextAsTooltip', 'suppressSubmitOnEnter', 'textAlignment', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'focusInput', 'clear']
})
@Component({
selector: 'ix-time-input',
Expand Down
22 changes: 13 additions & 9 deletions packages/angular/standalone/src/components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,8 @@ export declare interface IxCategoryFilter extends Components.IxCategoryFilter {

@ProxyCmp({
defineCustomElementFn: defineIxCheckbox,
inputs: ['checked', 'disabled', 'indeterminate', 'label', 'name', 'required', 'value']
inputs: ['checked', 'disabled', 'indeterminate', 'label', 'name', 'required', 'value'],
methods: ['clear']
})
@Component({
selector: 'ix-checkbox',
Expand Down Expand Up @@ -542,7 +543,8 @@ export declare interface IxCheckbox extends Components.IxCheckbox {

@ProxyCmp({
defineCustomElementFn: defineIxCheckboxGroup,
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'warningText']
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'warningText'],
methods: ['clear']
})
@Component({
selector: 'ix-checkbox-group',
Expand Down Expand Up @@ -730,7 +732,7 @@ The event payload contains information about the selected date range.
@ProxyCmp({
defineCustomElementFn: defineIxDateInput,
inputs: ['ariaLabelCalendarButton', 'ariaLabelNextMonthButton', 'ariaLabelPreviousMonthButton', 'disabled', 'enableTopLayer', 'format', 'helperText', 'i18nErrorDateUnparsable', 'infoText', 'invalidText', 'label', 'locale', 'maxDate', 'minDate', 'name', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'showWeekNumbers', 'suppressSubmitOnEnter', 'textAlignment', 'validText', 'value', 'warningText', 'weekStartIndex'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'focusInput', 'clear']
})
@Component({
selector: 'ix-date-input',
Expand Down Expand Up @@ -1427,7 +1429,7 @@ export declare interface IxIconToggleButton extends Components.IxIconToggleButto
@ProxyCmp({
defineCustomElementFn: defineIxInput,
inputs: ['allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showTextAsTooltip', 'suppressSubmitOnEnter', 'textAlignment', 'type', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'getValidityState', 'focusInput']
methods: ['getNativeInputElement', 'getValidityState', 'focusInput', 'clear']
})
@Component({
selector: 'ix-input',
Expand Down Expand Up @@ -2104,7 +2106,7 @@ Can be prevented, in which case only the event is triggered, and the modal remai
@ProxyCmp({
defineCustomElementFn: defineIxNumberInput,
inputs: ['allowEmptyValueChange', 'allowedCharactersPattern', 'disabled', 'helperText', 'infoText', 'invalidText', 'label', 'max', 'min', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'showStepperButtons', 'showTextAsTooltip', 'step', 'suppressSubmitOnEnter', 'textAlignment', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'focusInput', 'clear']
})
@Component({
selector: 'ix-number-input',
Expand Down Expand Up @@ -2315,7 +2317,8 @@ export declare interface IxPushCard extends Components.IxPushCard {}

@ProxyCmp({
defineCustomElementFn: defineIxRadio,
inputs: ['checked', 'disabled', 'label', 'name', 'required', 'value']
inputs: ['checked', 'disabled', 'label', 'name', 'required', 'value'],
methods: ['clear']
})
@Component({
selector: 'ix-radio',
Expand Down Expand Up @@ -2355,7 +2358,8 @@ export declare interface IxRadio extends Components.IxRadio {

@ProxyCmp({
defineCustomElementFn: defineIxRadioGroup,
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'value', 'warningText']
inputs: ['direction', 'helperText', 'infoText', 'invalidText', 'label', 'showTextAsTooltip', 'validText', 'value', 'warningText'],
methods: ['clear']
})
@Component({
selector: 'ix-radio-group',
Expand Down Expand Up @@ -2629,7 +2633,7 @@ export declare interface IxTabs extends Components.IxTabs {
@ProxyCmp({
defineCustomElementFn: defineIxTextarea,
inputs: ['disabled', 'helperText', 'infoText', 'invalidText', 'label', 'maxLength', 'minLength', 'name', 'placeholder', 'readonly', 'required', 'resizeBehavior', 'showTextAsTooltip', 'textareaCols', 'textareaHeight', 'textareaRows', 'textareaWidth', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'getValidityState', 'focusInput', 'clear']
})
@Component({
selector: 'ix-textarea',
Expand Down Expand Up @@ -2693,7 +2697,7 @@ export declare interface IxTile extends Components.IxTile {}
@ProxyCmp({
defineCustomElementFn: defineIxTimeInput,
inputs: ['disabled', 'enableTopLayer', 'format', 'helperText', 'hideHeader', 'hourInterval', 'i18nErrorTimeUnparsable', 'i18nHourColumnHeader', 'i18nMillisecondColumnHeader', 'i18nMinuteColumnHeader', 'i18nSecondColumnHeader', 'i18nSelectTime', 'i18nTime', 'infoText', 'invalidText', 'label', 'millisecondInterval', 'minuteInterval', 'name', 'placeholder', 'readonly', 'required', 'secondInterval', 'showTextAsTooltip', 'suppressSubmitOnEnter', 'textAlignment', 'validText', 'value', 'warningText'],
methods: ['getNativeInputElement', 'focusInput']
methods: ['getNativeInputElement', 'focusInput', 'clear']
})
@Component({
selector: 'ix-time-input',
Expand Down
52 changes: 34 additions & 18 deletions packages/core/src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,10 @@ export namespace Components {
* @default false
*/
"checked": boolean;
/**
* Clear the checked state and reset validation
*/
"clear": () => Promise<void>;
/**
* Disabled state of the checkbox component
* @default false
Expand Down Expand Up @@ -665,6 +669,10 @@ export namespace Components {
* @form-ready
*/
interface IxCheckboxGroup {
/**
* Clear all checked checkboxes and reset validation state
*/
"clear": () => Promise<void>;
/**
* Alignment of the checkboxes in the group
* @default 'column'
Expand Down Expand Up @@ -978,6 +986,7 @@ export namespace Components {
* ARIA label for the previous month icon button Will be set as aria-label on the nested HTML button element
*/
"ariaLabelPreviousMonthButton"?: string;
"clear": () => Promise<void>;
/**
* Disabled attribute
* @default false
Expand All @@ -989,19 +998,13 @@ export namespace Components {
* @since 4.3.0
*/
"enableTopLayer": boolean;
/**
* Focuses the input field
*/
"focusInput": () => Promise<void>;
/**
* Date format string. See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.
* @default 'yyyy/LL/dd'
*/
"format": string;
"getAssociatedFormElement": () => Promise<HTMLFormElement | null>;
/**
* Get the native input element
*/
"getNativeInputElement": () => Promise<HTMLInputElement>;
"getValidityState": () => Promise<ValidityState>;
"hasValidValue": () => Promise<boolean>;
Expand All @@ -1022,9 +1025,6 @@ export namespace Components {
* Error text below the input field
*/
"invalidText"?: string;
/**
* Returns whether the text field has been touched.
*/
"isTouched": () => Promise<boolean>;
/**
* Label of the input field
Expand Down Expand Up @@ -1958,6 +1958,10 @@ export namespace Components {
* The allowed characters pattern for the text field.
*/
"allowedCharactersPattern"?: string;
/**
* Clears the input field value and resets validation state. Sets the value to empty and removes touched state to suppress validation.
*/
"clear": () => Promise<void>;
/**
* Specifies whether the text field is disabled.
* @default false
Expand Down Expand Up @@ -2601,6 +2605,10 @@ export namespace Components {
* The allowed characters pattern for the input field
*/
"allowedCharactersPattern"?: string;
/**
* Clears the input field value and resets validation state. Sets the value to empty and removes touched state to suppress validation.
*/
"clear": () => Promise<void>;
/**
* Disables the input field
* @default false
Expand Down Expand Up @@ -2992,6 +3000,10 @@ export namespace Components {
* @default false
*/
"checked": boolean;
/**
* Clear the checked state and reset validation
*/
"clear": () => Promise<void>;
/**
* Disabled state of the radio component
* @default false
Expand Down Expand Up @@ -3023,6 +3035,10 @@ export namespace Components {
* @form-ready
*/
interface IxRadioGroup {
/**
* Clear the selected radio button and reset validation state
*/
"clear": () => Promise<void>;
/**
* Alignment of the radio buttons in the group
* @default 'column'
Expand Down Expand Up @@ -3488,6 +3504,10 @@ export namespace Components {
* @form-ready
*/
interface IxTextarea {
/**
* Clears the input field value and resets validation state. Sets the value to empty and removes touched state to suppress validation.
*/
"clear": () => Promise<void>;
/**
* Determines if the textarea field is disabled.
* @default false
Expand All @@ -3502,6 +3522,10 @@ export namespace Components {
* Get the native textarea element.
*/
"getNativeInputElement": () => Promise<HTMLTextAreaElement>;
/**
* Returns the validity state of the textarea field.
*/
"getValidityState": () => Promise<ValidityState>;
"hasValidValue": () => Promise<boolean>;
/**
* The helper text for the textarea field.
Expand Down Expand Up @@ -3600,6 +3624,7 @@ export namespace Components {
* @form-ready
*/
interface IxTimeInput {
"clear": () => Promise<void>;
/**
* Disabled attribute
* @default false
Expand All @@ -3611,19 +3636,13 @@ export namespace Components {
* @since 4.3.0
*/
"enableTopLayer": boolean;
/**
* Focuses the input field
*/
"focusInput": () => Promise<void>;
/**
* Format of time string See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.
* @default 'TT'
*/
"format": string;
"getAssociatedFormElement": () => Promise<HTMLFormElement | null>;
/**
* Get the native input element
*/
"getNativeInputElement": () => Promise<HTMLInputElement>;
"getValidityState": () => Promise<ValidityState>;
"hasValidValue": () => Promise<boolean>;
Expand Down Expand Up @@ -3685,9 +3704,6 @@ export namespace Components {
* Error text below the input field
*/
"invalidText"?: string;
/**
* Returns whether the text field has been touched.
*/
"isTouched": () => Promise<boolean>;
/**
* Label of the input field
Expand Down
Loading
Loading