diff --git a/playwright/cps-accessibility.spec.ts b/playwright/cps-accessibility.spec.ts
index 403f675b..82f78fb6 100644
--- a/playwright/cps-accessibility.spec.ts
+++ b/playwright/cps-accessibility.spec.ts
@@ -27,7 +27,7 @@ const components: ComponentEntry[] = [
selector: 'cps-button-toggle'
},
{ route: '/checkbox', name: 'Checkbox', selector: 'cps-checkbox' },
- { route: '/chip', name: 'Chip', selector: 'cps-chip' }
+ { route: '/chip', name: 'Chip', selector: 'cps-chip' },
// {
// route: '/datepicker',
// name: 'Datepicker',
@@ -90,7 +90,7 @@ const components: ComponentEntry[] = [
// name: 'Progress linear',
// selector: 'cps-progress-linear'
// },
- // { route: '/radio-group', name: 'Radio', selector: 'cps-radio-group' },
+ { route: '/radio-group', name: 'Radio', selector: 'cps-radio-group' }
// { route: '/scheduler', name: 'Scheduler', selector: 'cps-scheduler' },
// {
// route: '/select',
diff --git a/projects/composition/src/app/api-data/cps-notification.json b/projects/composition/src/app/api-data/cps-notification.json
index 52ffc175..93baf712 100644
--- a/projects/composition/src/app/api-data/cps-notification.json
+++ b/projects/composition/src/app/api-data/cps-notification.json
@@ -127,7 +127,7 @@
"optional": true,
"readonly": false,
"type": "number",
- "description": "The duration (in milliseconds) that the notification will be displayed before automatically closing.\r\nValue 0 means that the notification is persistent and will not be automatically closed."
+ "description": "The duration (in milliseconds) that the notification will be displayed before automatically closing.\nValue 0 means that the notification is persistent and will not be automatically closed."
},
{
"name": "allowDuplicates",
diff --git a/projects/composition/src/app/api-data/cps-radio-group.json b/projects/composition/src/app/api-data/cps-radio-group.json
index ebf62f31..4be344d7 100644
--- a/projects/composition/src/app/api-data/cps-radio-group.json
+++ b/projects/composition/src/app/api-data/cps-radio-group.json
@@ -5,9 +5,17 @@
"props": {
"description": "Defines the input properties of the component.",
"values": [
+ {
+ "name": "groupName",
+ "optional": false,
+ "readonly": false,
+ "type": "string",
+ "default": "",
+ "description": "Name attribute for the radio input, used to group buttons within the same radio group."
+ },
{
"name": "option",
- "optional": true,
+ "optional": false,
"readonly": false,
"type": "CpsRadioOption",
"description": "An option."
@@ -87,6 +95,14 @@
"default": "",
"description": "Label of the radio group."
},
+ {
+ "name": "ariaLabel",
+ "optional": false,
+ "readonly": false,
+ "type": "string",
+ "default": "",
+ "description": "Aria label for the radio group, used for accessibility, it takes precedence over groupLabel."
+ },
{
"name": "vertical",
"optional": false,
@@ -225,7 +241,7 @@
"values": [
{
"name": "CpsRadioOption",
- "value": "{\n \"value\": \"any\",\n \"label\": \"string\",\n \"disabled\": \"boolean\",\n \"tooltip\": \"string\"\n}",
+ "value": "{\n \"value\": \"any\",\n \"label\": \"string\",\n \"ariaLabel\": \"string\",\n \"disabled\": \"boolean\",\n \"tooltip\": \"string\"\n}",
"description": "CpsRadioOption is used to define the options of the CpsRadioGroupComponent."
}
]
diff --git a/projects/composition/src/app/api-data/cps-table.json b/projects/composition/src/app/api-data/cps-table.json
index 3b7375d8..2f546faf 100644
--- a/projects/composition/src/app/api-data/cps-table.json
+++ b/projects/composition/src/app/api-data/cps-table.json
@@ -107,7 +107,7 @@
"readonly": false,
"type": "boolean",
"default": "true",
- "description": "Determines whether the 'Remove' button should be displayed in the row menu.\r\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
+ "description": "Determines whether the 'Remove' button should be displayed in the row menu.\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
},
{
"name": "showRowEditButton",
@@ -115,14 +115,14 @@
"readonly": false,
"type": "boolean",
"default": "true",
- "description": "Determines whether the 'Edit' button should be displayed in the row menu.\r\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
+ "description": "Determines whether the 'Edit' button should be displayed in the row menu.\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
},
{
"name": "rowMenuItems",
"optional": true,
"readonly": false,
"type": "CpsMenuItem[]",
- "description": "Custom items to be displayed in the row menu.\r\nNote: This setting only takes effect if 'showRowMenu' is true."
+ "description": "Custom items to be displayed in the row menu.\nNote: This setting only takes effect if 'showRowMenu' is true."
},
{
"name": "reorderableRows",
@@ -178,7 +178,7 @@
"readonly": false,
"type": "boolean",
"default": "true",
- "description": "If true, automatically detects filter type based on values, otherwise sets 'text' filter type for all columns.\r\nNote: This setting only takes effect if 'filterableByColumns' is true."
+ "description": "If true, automatically detects filter type based on values, otherwise sets 'text' filter type for all columns.\nNote: This setting only takes effect if 'filterableByColumns' is true."
},
{
"name": "sortMode",
@@ -570,7 +570,7 @@
"readonly": false,
"type": "boolean",
"default": "false",
- "description": "Determines whether columns are resizable.\r\nIn case of using a custom template for columns, it is also needed to add cpsTColResizable directive to th elements."
+ "description": "Determines whether columns are resizable.\nIn case of using a custom template for columns, it is also needed to add cpsTColResizable directive to th elements."
},
{
"name": "columnResizeMode",
@@ -578,7 +578,7 @@
"readonly": false,
"type": "\"expand\" | \"fit\"",
"default": "fit",
- "description": "Determines how the columns are resized. It can be 'fit' (total width of the table stays the same) or 'expand' (total width of the table changes when resizing columns).\r\nNote: This setting only takes effect if 'resizableColumns' is true."
+ "description": "Determines how the columns are resized. It can be 'fit' (total width of the table stays the same) or 'expand' (total width of the table changes when resizing columns).\nNote: This setting only takes effect if 'resizableColumns' is true."
}
]
},
diff --git a/projects/composition/src/app/api-data/cps-tree-table.json b/projects/composition/src/app/api-data/cps-tree-table.json
index 145823c9..04fbe608 100644
--- a/projects/composition/src/app/api-data/cps-tree-table.json
+++ b/projects/composition/src/app/api-data/cps-tree-table.json
@@ -123,7 +123,7 @@
"readonly": false,
"type": "boolean",
"default": "true",
- "description": "Determines whether the 'Remove' button should be displayed in the row menu.\r\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
+ "description": "Determines whether the 'Remove' button should be displayed in the row menu.\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
},
{
"name": "showRowEditButton",
@@ -131,14 +131,14 @@
"readonly": false,
"type": "boolean",
"default": "true",
- "description": "Determines whether the 'Edit' button should be displayed in the row menu.\r\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
+ "description": "Determines whether the 'Edit' button should be displayed in the row menu.\nNote: This setting only takes effect if 'showRowMenu' is true and 'rowMenuItems' is not set."
},
{
"name": "rowMenuItems",
"optional": true,
"readonly": false,
"type": "CpsMenuItem[]",
- "description": "Custom items to be displayed in the row menu.\r\nNote: This setting only takes effect if 'showRowMenu' is true."
+ "description": "Custom items to be displayed in the row menu.\nNote: This setting only takes effect if 'showRowMenu' is true."
},
{
"name": "loading",
@@ -530,7 +530,7 @@
"readonly": false,
"type": "boolean",
"default": "true",
- "description": "If true, automatically detects filter type based on values, otherwise sets 'text' filter type for all columns.\r\nNote: This setting only takes effect if 'filterableByColumns' is true."
+ "description": "If true, automatically detects filter type based on values, otherwise sets 'text' filter type for all columns.\nNote: This setting only takes effect if 'filterableByColumns' is true."
},
{
"name": "showExportBtn",
@@ -586,7 +586,7 @@
"readonly": false,
"type": "boolean",
"default": "false",
- "description": "Determines whether columns are resizable.\r\nIn case of using a custom template for columns, it is also needed to add cpsTTColResizable directive to th elements."
+ "description": "Determines whether columns are resizable.\nIn case of using a custom template for columns, it is also needed to add cpsTTColResizable directive to th elements."
},
{
"name": "columnResizeMode",
@@ -594,7 +594,7 @@
"readonly": false,
"type": "\"expand\" | \"fit\"",
"default": "fit",
- "description": "Determines how the columns are resized. It can be 'fit' (total width of the table stays the same) or 'expand' (total width of the table changes when resizing columns).\r\nNote: This setting only takes effect if 'resizableColumns' is true."
+ "description": "Determines how the columns are resized. It can be 'fit' (total width of the table stays the same) or 'expand' (total width of the table changes when resizing columns).\nNote: This setting only takes effect if 'resizableColumns' is true."
}
]
},
diff --git a/projects/composition/src/app/api-data/cron-validation.service.json b/projects/composition/src/app/api-data/cron-validation.service.json
index 77d68f60..28b4e9af 100644
--- a/projects/composition/src/app/api-data/cron-validation.service.json
+++ b/projects/composition/src/app/api-data/cron-validation.service.json
@@ -1,7 +1,7 @@
{
"components": {},
"name": "CronValidationService",
- "description": "Service for validating 6-field cron expressions with extended features.\r\n\r\nThis service handles cron validation logic for extended cron expression formats\r\nthat support additional features beyond standard Unix cron for more flexible\r\nscheduling capabilities.\r\n\r\nFormat: minutes hours day-of-month month day-of-week year\r\n\r\nKey Features:\r\n- Wildcards: asterisk (any value), question mark (any value for day fields)\r\n- Ranges: 1-5, MON-FRI, JAN-MAR\r\n- Steps: asterisk/15, 5/10, 1-5/2\r\n- Lists: 1,3,5, MON,WED,FRI\r\n- Special chars: L (last), W (weekday), hash (nth occurrence)",
+ "description": "Service for validating 6-field cron expressions with extended features.\n\nThis service handles cron validation logic for extended cron expression formats\nthat support additional features beyond standard Unix cron for more flexible\nscheduling capabilities.\n\nFormat: minutes hours day-of-month month day-of-week year\n\nKey Features:\n- Wildcards: asterisk (any value), question mark (any value for day fields)\n- Ranges: 1-5, MON-FRI, JAN-MAR\n- Steps: asterisk/15, 5/10, 1-5/2\n- Lists: 1,3,5, MON,WED,FRI\n- Special chars: L (last), W (weekday), hash (nth occurrence)",
"methods": {
"description": "Methods used in service.",
"values": [
diff --git a/projects/composition/src/app/pages/radio-page/radio-page.component.html b/projects/composition/src/app/pages/radio-page/radio-page.component.html
index ef660130..9f118feb 100644
--- a/projects/composition/src/app/pages/radio-page/radio-page.component.html
+++ b/projects/composition/src/app/pages/radio-page/radio-page.component.html
@@ -14,6 +14,12 @@
infoTooltip="Provide any information here"
value="second">
+
+
-
+
On the
}
@if ((error || externalError) && !hideDetails) {
-