`, and then set the Tooltip to target this wrapper element. This approach allows the Tooltip to be activated when the user hovers over the area covering the disabled button.
+
+Here's an example demonstrating how to implement this solution:
+
+CSHTML````
+
+ Hover me
+
+
+
+
+ @{
+
+ Disabled button
+
+ }
+
+
+````
+
+## See Also
+
+- [Tooltip Component Overview]({%slug tooltip-overview%})
+- [Button Component Overview]({%slug components/button/overview%})
From d758b82b473d1a18d99fd2d0193b5a7342e8f113 Mon Sep 17 00:00:00 2001
From: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Date: Fri, 6 Dec 2024 13:18:50 +0200
Subject: [PATCH 049/392] docs(common): Improve NuGet 401 documentation (#2610)
---
deployment/ci-cd-build-server.md | 4 ++--
deployment/nuget-keys.md | 2 +-
installation/nuget.md | 4 ++--
troubleshooting/nuget-feed.md | 22 ++++++++++++++++++++--
4 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/deployment/ci-cd-build-server.md b/deployment/ci-cd-build-server.md
index eda67d74b2..aa3915c63a 100644
--- a/deployment/ci-cd-build-server.md
+++ b/deployment/ci-cd-build-server.md
@@ -27,7 +27,7 @@ Often enough, you would want to set up Continuous Integration and/or Continuous
There are a couple of common ways people implement CI/CD automated builds.
-* You can [restore the Telerik NuGet packages]({%slug installation/nuget-keys%}) by downloading them from the Telerik NuGet server. You can achieve this by using the more secure token-based authentication with the Telerik NuGet server. If you prefer the basic authentication with a username and password, you can use your own credentials (or the credentials of the license holder, depending on how your licenses are set up) in the `NuGet.Config` of the build machine/pipeline. In this case, make sure that your credentials are encrypted when you add the Telerik feed source through the CLI. Alternatively, you can copy an encrypted version from your own local config if you have one and if plain text is an issue. See more on setting up the [Telerik NuGet package source]({%slug installation/nuget%}).
+* You can [restore the Telerik NuGet packages]({%slug deployment-nuget%}) by downloading them from the Telerik NuGet server. You can achieve this by using the more secure token-based authentication with the Telerik NuGet server. If you prefer the basic authentication with a username and password, you can use your own credentials (or the credentials of the license holder, depending on how your licenses are set up) in the `NuGet.Config` of the build machine/pipeline. In this case, make sure that your credentials are encrypted when you add the Telerik feed source through the CLI. Alternatively, you can copy an encrypted version from your own local config if you have one and if plain text is an issue. See more on setting up the [Telerik NuGet package source]({%slug installation/nuget%}).
* Creating a local folder (for example, on a shared network drive or other suitable location accessible only by your builds and team) that holds the `.nupkg` files we provide (you can download them from your telerik.com account, or from your local installation - both [automated]({%slug installation/msi%}) and from the [zip archive]({%slug installation/zip%})).
@@ -109,7 +109,7 @@ When building or restoring Blazor apps in Docker, the crucial steps are:
1. Have a `NuGet.Config` file in the project or solution folder. The file can [define the Telerik NuGet feed]({%slug installation/nuget%}#edit-the-nugetconfig-file), but without the credentials (Telerik account or NuGet API key).
1. Copy the `NuGet.Config` file together with the `.csproj` file(s) to the Docker image.
-1. [Add](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-add-source) or [update](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-update-source) the Telerik NuGet feed with the [stored Telerik NuGet credentials (secrets)]({%slug installation/nuget-keys%}). When specifying the `NuGet.Config` file location, note that file names are case-sensitive on Unix systems.
+1. [Add](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-add-source) or [update](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-update-source) the Telerik NuGet feed with the [stored Telerik NuGet credentials (secrets)]({%slug deployment-nuget%}). When specifying the `NuGet.Config` file location, note that file names are case-sensitive on Unix systems.
1. Restore or build the Blazor app.
The following code is the build portion of a sample `Dockerfile` that builds a .NET 8 Blazor Web App with two projects. The `dotnet restore` command is executed from the `src` folder of the Docker image (where the `NuGet.Config` is copied), so that the `NuGet.Config` file can be used to restore all projects in the solution.
diff --git a/deployment/nuget-keys.md b/deployment/nuget-keys.md
index b0a9588b16..9d3d500d48 100644
--- a/deployment/nuget-keys.md
+++ b/deployment/nuget-keys.md
@@ -2,7 +2,7 @@
title: Restoring NuGet Packages in CI
page_title: Restoring NuGet Packages in CI
description: Get started with Telerik UI for Blazor and use NuGet Keys to authenticate with the Telerik NuGet server and restore packages in your CI or desktop environment.
-slug: installation/nuget-keys
+slug: deployment-nuget
position: 10
---
diff --git a/installation/nuget.md b/installation/nuget.md
index 1e569892c2..35f2893ab9 100644
--- a/installation/nuget.md
+++ b/installation/nuget.md
@@ -131,9 +131,9 @@ To edit a `NuGet.Config` file and add the Telerik feed, you need to:
There are two ways to authenticate with the Telerik NuGet server when you add the Telerik NuGet source [with the .NET CLI](#use-the-net-cli) or [edit the `NuGet.Config` file manually](#edit-the-nugetconfig-file):
* Use your Telerik account email as the username, and your Telerik password.
-* Use `api-key` as the username and your personal [NuGet API Key]({%slug installation/nuget-keys%}) as the password.
+* Use `api-key` as the username and your personal [NuGet API Key]({%slug deployment-nuget%}) as the password.
-You can [generate your Telerik NuGet API Key on telerik.com](https://www.telerik.com/account/downloads/nuget-keys). Read more about [using NuGet API Keys in different environments]({%slug installation/nuget-keys%}).
+You can [generate your Telerik NuGet API Key on telerik.com](https://www.telerik.com/account/downloads/nuget-keys). Read more about [using NuGet API Keys in different environments]({%slug deployment-nuget%}).
> Always use the NuGet API Key in plain text.
diff --git a/troubleshooting/nuget-feed.md b/troubleshooting/nuget-feed.md
index 7e05b76ec6..0ebd53858f 100644
--- a/troubleshooting/nuget-feed.md
+++ b/troubleshooting/nuget-feed.md
@@ -36,7 +36,9 @@ The most common reasons for issues with the private Telerik NuGet feed are relat
Errors like `Unable to load the service index for source https://nuget.telerik.com/v3/index.json` don't indicate the exact cause of the problem. In such cases, check the additional error information which usually provides an error code.
-To verify if you can access the Telerik NuGet server and the expected packages, open the https://nuget.telerik.com/v3/search?q=blazor&prerelease=true&skip=0&take=100&semVerLevel=2.0.0 URL directly in the web browser and enter your Telerik credentials in the prompt.
+### Verify NuGet Credentials and Package Access
+
+To verify if you can access the Telerik NuGet server and the expected packages, open https://nuget.telerik.com/v3/search?q=blazor&prerelease=true&skip=0&take=100&semVerLevel=2.0.0 directly in the web browser and enter your Telerik credentials in the prompt.
As a result, you will see a JSON output with the NuGet packages and versions that are available for you. Depending on your license, search for `Telerik.UI.for.Blazor` or `Telerik.UI.for.Blazor.Trial`.
@@ -60,7 +62,23 @@ If you suspect that your saved credentials are wrong, use the following steps to
## Error 401 Unauthorized
-If your credentials are correct and your license includes the requested product and version, then the password probably contains special characters. You need to escape these characters or the authentication can fail on the NuGet server. For example, a common character you must escape is the ampersand (`&`); however, the character causing the issue may be as unique as the section character (`§`).
+`Error 401 Unauthorized` means that the Telerik NuGet server received invalid credentials. There may be different reasons for that:
+
+* No provided credentials
+* Incorrect password
+* [Correct password with unescaped special characters](#special-characters-in-the-password)
+* Using an invalidated (removed) [Telerik NuGet API key]({%slug installation/nuget%}#use-nuget-api-key), which no longer exists in
your Telerik account .
+* Using a valid Telerik NuGet API key with the wrong username. It must be `api-key`.
+
+An easy way to verify your credentials is to [access the Telerik NuGet server directly in the web browser](#tips-for-handling-common-nuget-issues). Then, depending on your setup, check or update your credentials in:
+
+* The applicable `NuGet.Config` file. There may be
multiple such files on the device .
+* [Windows Credential Manager](#removing-saved-credentials)
+* In a [CI/CD workflow]({%slug deployment-nuget%}#using-net-cli-commands), which [obtains the credentials from a secret]({%slug deployment-nuget%}#storing-nuget-keys).
+
+### Special Characters in the Password
+
+[If your credentials are correct and your license includes the requested product and version](#verify-nuget-credentials-and-package-access), then the password probably contains special characters. You need to escape these characters or the authentication can fail on the NuGet server. For example, a common character you must escape is the ampersand (`&`); however, the character causing the issue may be as unique as the section character (`§`).
To solve the issue:
From eeed674740d5fbe5d1040aeb29b8cfc5a0cdafc8 Mon Sep 17 00:00:00 2001
From: Nadezhda Tacheva <73842592+ntacheva@users.noreply.github.com>
Date: Fri, 6 Dec 2024 19:47:47 +0200
Subject: [PATCH 050/392] Added KB: Validate Drop Target in TreeView (#2588)
* chore(TreeView): validate drop target
* Update knowledge-base/treeview-validate-drop-target.md
Co-authored-by: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
* Update knowledge-base/treeview-validate-drop-target.md
Co-authored-by: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
* Update knowledge-base/treeview-validate-drop-target.md
Co-authored-by: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
* Update knowledge-base/treeview-validate-drop-target.md
Co-authored-by: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
* Update knowledge-base/treeview-validate-drop-target.md
Co-authored-by: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
---------
Co-authored-by: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
---
.../treeview-validate-drop-target.md | 196 ++++++++++++++++++
1 file changed, 196 insertions(+)
create mode 100644 knowledge-base/treeview-validate-drop-target.md
diff --git a/knowledge-base/treeview-validate-drop-target.md b/knowledge-base/treeview-validate-drop-target.md
new file mode 100644
index 0000000000..768709a338
--- /dev/null
+++ b/knowledge-base/treeview-validate-drop-target.md
@@ -0,0 +1,196 @@
+---
+title: Validate Drop Target in TreeView
+description: How to validate drop target in Telerik TreeView for Blazor and prevent drop for invalid target.
+type: how-to
+page_title: How to Validate Drop Target in TreeView
+slug: treeview-kb-validate-drop-target
+tags: treeview, item, node, drop target, draggable, validate, invalid, prevent drop
+ticketid: 1592132
+res_type: kb
+---
+
+## Environment
+
+
+
+
+ Product
+ TreeView for Blazor
+
+
+
+
+## Description
+
+I have a draggable TreeView and I want to prevent the user from dropping items in specific locations or folders. How can I achieve this?
+
+How to validate the drop target, so I don't allow the user to drop the file if the target is invalid?
+
+## Solution
+
+To validate the drop target and prevent the user from dropping on an invalid target, follow these steps:
+
+1. Handle the [`OnDrag`]({%slug treeview-events%}#drag-events) event of the TreeView to validate the target based on your requirements. In the example below, we are checking it the user tries to drop an item from the **Documents** folder into the **Pictures** folder - the **Pictures** folder is not a valid target in this case.
+1. Raise a flag if the target is not valid.
+1. Change the icon in the drag clue to indicate the target is not valid. Once the [Drag Clue Template](https://feedback.telerik.com/blazor/1501043-drag-clue-template) is available, you may use it to change the rendering as needed. At the time of writing, changing the icon is only possible with CSS as per the example below.
+1. Include a conditional logic in your [`OnDrop`]({%slug treeview-events%}#drag-events) handler to not perform any action if the target is invalid.
+1. Use CSS to hide the build-in drop hint for the invalid target.
+
+
+>caption Validate TreeView drop target and prevent drop for invalid target
+
+````CSHTML
+This TreeView does not allow the user to drop items from the Documents folder into the Pictures folder.
+
+
+
+
+@if (IsPointerOverInvalidTarget)
+{
+
+}
+
+@code {
+ private TreeItem DestinationItem { get; set; }
+ private List
Data { get; set; } = new List();
+ private IEnumerable ExpandedItems { get; set; } = Enumerable.Empty();
+ private bool IsPointerOverInvalidTarget { get; set; }
+
+ private void OnDrag(TreeViewDragEventArgs args)
+ {
+ if (args.DestinationItem != null)
+ {
+ var draggedItem = args.Item as TreeItem;
+ var destinationItem = args.DestinationItem as TreeItem;
+
+ if (draggedItem.ParentId == 1 && (destinationItem.ParentId == 7 || destinationItem.Id == 6 || destinationItem.Id == 7))
+ {
+ IsPointerOverInvalidTarget = true;
+ }
+ else
+ {
+ IsPointerOverInvalidTarget = false;
+ }
+ }
+ }
+
+ private void OnItemDrop(TreeViewDropEventArgs args)
+ {
+ if (IsPointerOverInvalidTarget)
+ {
+ return;
+ }
+ else
+ {
+ var item = args.Item as TreeItem;
+ var destinationItem = args.DestinationItem as TreeItem;
+
+ if (destinationItem != null && IsChild(item, destinationItem))
+ {
+ return;
+ }
+
+ Data.Remove(item);
+
+ if (item.ParentId != null && !Data.Any(x => item.ParentId == x.ParentId))
+ {
+ Data.FirstOrDefault(x => x.Id == item.ParentId).HasChildren = false;
+ }
+
+ if (args.DropPosition == TreeViewDropPosition.Over)
+ {
+ item.ParentId = destinationItem.Id;
+ destinationItem.HasChildren = true;
+
+ Data.Add(item);
+ }
+ else
+ {
+ var index = Data.IndexOf(destinationItem);
+
+ item.ParentId = destinationItem.ParentId;
+
+ if (args.DropPosition == TreeViewDropPosition.After)
+ {
+ index++;
+ }
+
+ Data.Insert(index, item);
+ }
+
+ // Refresh data
+ Data = new List(Data);
+ }
+ }
+
+ private bool IsChild(TreeItem item, TreeItem destinationItem)
+ {
+ if (destinationItem?.ParentId == null || item == null)
+ {
+ return false;
+ }
+ else if (destinationItem.ParentId?.Equals(item.Id) == true)
+ {
+ return true;
+ }
+
+ var parentDestinationItem = Data.FirstOrDefault(e => e.Id.Equals(destinationItem.ParentId));
+ return IsChild(item, parentDestinationItem);
+ }
+
+ protected override void OnInitialized()
+ {
+ LoadData();
+ base.OnInitialized();
+ }
+
+ private void LoadData()
+ {
+ Data = new List()
+ {
+ new TreeItem(1, null, "Documents", SvgIcon.Folder, true),
+ new TreeItem(2, 1, "report.xlsx", SvgIcon.FileExcel, false),
+ new TreeItem(3, 1, "status.docx", SvgIcon.FileWord, false),
+ new TreeItem(4, 1, "conferences.xlsx", SvgIcon.FileExcel, false),
+ new TreeItem(5, 1, "performance.pdf", SvgIcon.FilePdf, false),
+ new TreeItem(6, null, "Pictures", SvgIcon.Folder, true),
+ new TreeItem(7, 6, "Camera Roll", SvgIcon.Folder, true),
+ new TreeItem(8, 7, "team.png", SvgIcon.FileImage, false),
+ new TreeItem(9, 7, "team-building.png", SvgIcon.FileImage, false),
+ new TreeItem(10, 7, "friends.png", SvgIcon.FileImage, false),
+ };
+ ExpandedItems = Data.ToList();
+ }
+
+ public class TreeItem
+ {
+ public int Id { get; set; }
+ public int? ParentId { get; set; }
+ public string Text { get; set; }
+ public ISvgIcon Icon { get; set; }
+ public bool HasChildren { get; set; }
+
+ public TreeItem(int id, int? parent, string text, ISvgIcon icon, bool hasChildren)
+ {
+ Id = id;
+ ParentId = parent;
+ Text = text;
+ Icon = icon;
+ HasChildren = hasChildren;
+ }
+ }
+}
+````
From 753706a39bfaeb6a7df0441ca053fc3d985a3adb Mon Sep 17 00:00:00 2001
From: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Date: Tue, 10 Dec 2024 09:41:02 +0200
Subject: [PATCH 051/392] docs(grid): Add missing section link (#2621)
---
components/grid/editing/popup.md | 1 +
components/treelist/editing/popup.md | 1 +
2 files changed, 2 insertions(+)
diff --git a/components/grid/editing/popup.md b/components/grid/editing/popup.md
index a5ba0a5ed6..b65023543d 100644
--- a/components/grid/editing/popup.md
+++ b/components/grid/editing/popup.md
@@ -14,6 +14,7 @@ In this article:
* [Basics](#basics)
* [Customization](#customization)
+ * [Editing of Hidden Columns](#editability-of-hidden-columns)
* [Popup Customization](#popup-customization)
* [Edit Form Customization](#edit-form-customization)
* [Popup Form Customization](#popup-form-customization)
diff --git a/components/treelist/editing/popup.md b/components/treelist/editing/popup.md
index f5b6a2a301..55552f0b7e 100644
--- a/components/treelist/editing/popup.md
+++ b/components/treelist/editing/popup.md
@@ -14,6 +14,7 @@ In this article:
* [Basics](#basics)
* [Customization](#customization)
+ * [Editing of Hidden Columns](#editability-of-hidden-columns)
* [Popup Customization](#popup-customization)
* [Edit Form Customization](#edit-form-customization)
* [Popup Form Customization](#popup-form-customization)
From 3d80e6239c03ce4cef375cde435b7bac8cfd59ee Mon Sep 17 00:00:00 2001
From: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Date: Tue, 10 Dec 2024 09:53:01 +0200
Subject: [PATCH 052/392] docs(grid): Document breaking change in column
template component usage (#2620)
* docs(grid): Document breaking change in column template component usage
* Update components/grid/templates/column.md
Co-authored-by: Nadezhda Tacheva <73842592+ntacheva@users.noreply.github.com>
---------
Co-authored-by: Nadezhda Tacheva <73842592+ntacheva@users.noreply.github.com>
---
components/grid/templates/column.md | 104 ++++++++++++++++++++++++++--
upgrade/breaking-changes/7-0-0.md | 34 +++++++++
2 files changed, 133 insertions(+), 5 deletions(-)
diff --git a/components/grid/templates/column.md b/components/grid/templates/column.md
index 00c772e0ec..39fd8566b8 100644
--- a/components/grid/templates/column.md
+++ b/components/grid/templates/column.md
@@ -10,16 +10,26 @@ position: 5
# Column Template
-By default, each Grid cell renders the value of the respective column `Field` of the current data item (row). You can change this behavior by using the `Template` of the column and adding your own content or logic.
+By default, each Grid cell renders the value of the respective column `Field` of the current data item (row). You can change this behavior by using a column `Template` and adding your own content or logic.
-The column template (the `` tag under the column definition) is what the Grid uses to show the "view" representation of the cell. This also includes a column that is marked as `Editable="false"` and is in edit mode.
+## Basics
+
+To define a column template, use a `` tag inside the `` tag. The Grid uses the defined `Template` to show the "view" representation of all cells in that column. This also includes cells from [columns that are marked as `Editable="false"`]({%slug components/grid/columns/bound%}#data-operations), while the cells' parent row is in [inline edit mode]({%slug components/grid/editing/inline%}).
+
+Visual Studio tends to autocomplete the `` tag with a lowercase `t` which breaks the template logic and does not allow you to access the `context`. Ensure the `Template` tag uses a capital `T`.
+
+### Template Context
+
+The Grid column template exposes a `context` variable, which is the respective item from the Grid data collection. Cast the `context` to your Grid model type in order to access and use its properties. [Rename the `context` variable when using nested templates, for example a Grid column `Template` inside a Grid `DetailTemplate`]({%slug nest-renderfragment%}).
>tip If you only want to format numbers, dates, enums, you can do so with the [DisplayFormat feature]({%slug grid-columns-displayformat%}) without the need to declare a template.
+## Example
+
The example below shows how to:
-* Set the `Template` (make sure to use the tag with a capital `T`. The Visual Studio autocomplete tends to use the lowercase `t` which breaks the template logic and does not allow you to access the context).
-* Access the template `context`, which is a data item object from the Grid `Data`. You need to cast the `context` to access the data item properties.
+* Define a Grid column `Template`.
+* Cast and access the template `context`.
* Render HTML or nest components in the column template.
* Use inline or multi-line template.
@@ -86,7 +96,91 @@ The example below shows how to:
}
````
->tip The above example renders read-only checkboxes to display boolean values. It is possible to [use checkboxes in display mode and directly change the underlying data source values]({%slug grid-kb-checkbox-editing%}). This can make boolean value editing faster, because the Grid doesn't go into edit mode.
+>tip The above example renders read-only checkboxes to display boolean values. You can also [use checkboxes in display mode and directly change the underlying data source values]({%slug grid-kb-checkbox-editing%}). This can make boolean value editing faster, because the Grid doesn't go into edit mode.
+
+## Using Components in Grid Column Templates
+
+The Grid optimizes the UI renders after data operations. If you are using child components inside Grid column templates, set the `@key` attribute to these components to ensure that they always show the correct values and content after filtering, paging, and sorting .
+
+>caption Seting @key to child components inside a Grid column template
+
+````Home.razor
+@using YourAppName.Data
+
+
+
+
+
+ @{ var dataItem = (SampleModel)context; }
+
+
+
+
+
+ @{ var dataItem = (SampleModel)context; }
+
+
+
+
+
+
+@code {
+ private List GridData { get; set; } = new();
+
+ protected override void OnInitialized()
+ {
+ for (int i = 1; i <= 77; i++)
+ {
+ GridData.Add(new SampleModel()
+ {
+ Id = i,
+ Name = $"Name {i}"
+ });
+ }
+ }
+}
+````
+````Child.razor
+@using YourAppName.Data
+
+Properties require @@key:
+@Foo
+
+
+
+Parameters refresh:
+@Model.Id
+
+@code {
+ [Parameter]
+ public SampleModel Model { get; set; } = new();
+
+ [Parameter]
+ public string Color { get; set; } = "inherit";
+
+ private string Foo { get; set; } = string.Empty;
+
+ protected override void OnInitialized()
+ {
+ Foo = Model.Id.ToString();
+ }
+}
+````
+````SampleModel.cs
+namespace YourAppName.Data
+{
+ public class SampleModel
+ {
+ public int Id { get; set; }
+ public string Name { get; set; } = string.Empty;
+ }
+}
+````
## See Also
diff --git a/upgrade/breaking-changes/7-0-0.md b/upgrade/breaking-changes/7-0-0.md
index 755b9f66ad..64f30b60e8 100644
--- a/upgrade/breaking-changes/7-0-0.md
+++ b/upgrade/breaking-changes/7-0-0.md
@@ -44,6 +44,40 @@ The obsolete `ClearButton` parameter is removed. Use `ShowClearButton` instead.
* The obsolete `AutoFitColumns()` method is removed. Use `AutoFitColumnsAsync()` instead.
* The obsolete `AutoFitAllColumns()` method is removed. Use `AutoFitAllColumnsAsync()` instead.
* When using [grouping and `OnRead`]({%slug components/grid/manual-operations%}#grouping-with-onread), casting `DataSourceResult.Data` to a list of objects (`.Cast()`) is no longer needed.
+* [Components in a Grid column `` require a `@key`]({%slug grid-templates-column%}#using-components-in-grid-column-templates) in order to display correct values after data operations like sorting, filtering, paging, and others.
+
+>caption Using custom components in Grid column templates up to version 6.2.0 and after version 7.0.0
+
+
+
+ UI for Blazor 6.2.0
+ UI for Blazor 7.0.0
+
+
+
+
+
+<GridColumn>
+ <Template>
+ @{ var dataItem = (GridModel)context; }
+ <ChildComponent />
+ </Template>
+</GridColumn>
+
+
+
+
+<GridColumn>
+ <Template>
+ @{ var dataItem = (GridModel)context; }
+ <ChildComponent @key="@dataItem" />
+ </Template>
+</GridColumn>
+
+
+
+
+
## TextArea
From 41a8e42d538bdfa254917abfb9447aaeaa8faf2c Mon Sep 17 00:00:00 2001
From: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
Date: Wed, 11 Dec 2024 12:23:58 +0200
Subject: [PATCH 053/392] chore: fix example (#2626)
---
knowledge-base/tooltip-show-on-disabled-element.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/knowledge-base/tooltip-show-on-disabled-element.md b/knowledge-base/tooltip-show-on-disabled-element.md
index c40f954cae..559f634ab7 100644
--- a/knowledge-base/tooltip-show-on-disabled-element.md
+++ b/knowledge-base/tooltip-show-on-disabled-element.md
@@ -36,7 +36,7 @@ To display a Tooltip for a disabled button, wrap the disabled button within anot
Here's an example demonstrating how to implement this solution:
-CSHTML````
+````RAZOR
Hover me
From b70719f6857693acdefe83b5470688c30c442d29 Mon Sep 17 00:00:00 2001
From: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Date: Fri, 13 Dec 2024 10:04:46 +0200
Subject: [PATCH 054/392] kb(common): Enhance Theme Change KB (#2630)
---
knowledge-base/change-theme-runtime.md | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/knowledge-base/change-theme-runtime.md b/knowledge-base/change-theme-runtime.md
index 44f8d222e5..0a5e2a6702 100644
--- a/knowledge-base/change-theme-runtime.md
+++ b/knowledge-base/change-theme-runtime.md
@@ -43,7 +43,12 @@ The following algorithm follows the commonly used approach to replace a CSS file
```
-1. Implement a JavaScript function that [creates](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement) a ` ` element with the new theme and [appends](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild) it to the page. [Remove](https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild) the old ` ` element when the new one [loads](https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event). Use the chosen `id` value with both ` ` tags. [Notify the Razor component](https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/call-dotnet-from-javascript) when the new CSS file is loaded, if you need to make additional changes to the UI.
+1. Implement the supporting JavaScript code in a new or existing `.js` file.
+ * Create a JavaScript function that [creates](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement) a ` ` element with the new theme URL and [appends](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild) it to the page.
+ * [Remove](https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild) the old ` ` element when the new one [loads](https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event).
+ * Use the chosen `id` value with both ` ` tags.
+ * [Notify the Razor component](https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/call-dotnet-from-javascript) when the new CSS file is loaded, if you need to make additional changes to the UI.
+ * Make sure the JavaScript file is loaded in the app.
>caption JavaScript
```
@@ -72,7 +77,7 @@ The following algorithm follows the commonly used approach to replace a CSS file
document.getElementsByTagName("head")[0].appendChild(newLink);
}
```
-1. Implement UI that triggers the JavaScript theme change. After the new CSS theme is loaded, refresh all Telerik components that use SVG or Canvas rendering, such as BarCodes, Charts, Gauges, and QR Codes.
+1. Implement UI that triggers the JavaScript theme change. After the new CSS theme is loaded, refresh all Telerik components that use SVG or Canvas rendering, such as Barcodes, Charts, Gauges, and QR Codes.
> Make sure [the version number in the theme URL is compatible with the version of Telerik UI for Blazor]({%slug themes-overview%}#compatibility-and-maintenance).
>
From d552a298154d06b28b3c50e520e8da3810cbca69 Mon Sep 17 00:00:00 2001
From: Kendo Bot
Date: Fri, 13 Dec 2024 10:23:37 +0200
Subject: [PATCH 055/392] Added new kb article
treeview-change-expand-collapse-icons (#2618)
* Added new kb article treeview-change-expand-collapse-icons
* Update knowledge-base/treeview-change-expand-collapse-icons.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* Update knowledge-base/treeview-change-expand-collapse-icons.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* Update knowledge-base/treeview-change-expand-collapse-icons.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* Update knowledge-base/treeview-change-expand-collapse-icons.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* chore(TreeView): address feedback
---------
Co-authored-by: KB Bot
Co-authored-by: Nadezhda Tacheva <73842592+ntacheva@users.noreply.github.com>
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Co-authored-by: Nadezhda Tacheva
---
.../treeview-change-expand-collapse-icons.md | 135 ++++++++++++++++++
1 file changed, 135 insertions(+)
create mode 100644 knowledge-base/treeview-change-expand-collapse-icons.md
diff --git a/knowledge-base/treeview-change-expand-collapse-icons.md b/knowledge-base/treeview-change-expand-collapse-icons.md
new file mode 100644
index 0000000000..d553465a29
--- /dev/null
+++ b/knowledge-base/treeview-change-expand-collapse-icons.md
@@ -0,0 +1,135 @@
+---
+title: Change the Expand and Collapse Icons in TreeView
+description: Learn how to customize the expand and collapse icons in the Telerik TreeView component for Blazor.
+type: how-to
+page_title: How to Customize Expand and Collapse Icons in Blazor TreeView
+slug: treeview-kb-change-expand-collapse-icons
+tags: blazor, treeview, icons, expand, collapse
+res_type: kb
+ticketid: 1656109
+---
+
+## Environment
+
+
+
+
+ Product
+ TreeView for Blazor
+
+
+
+
+## Description
+I want to customize the icons used for expanding and collapsing items in the [TreeView for Blazor]({%slug treeview-overview%}).
+
+This knowledge base article answers the following questions:
+- How can I use custom icons for the TreeView expand and collapse functionality?
+- Is it possible to change the default expand and collapse icons in the TreeView for Blazor?
+
+## Solution
+
+You can change the expand/collapse icons in the TreeView by overriding the built-in icons with other icons using [custom CSS rules]({%slug themes-override%}). In addition, you can use the `Class` parameter of the TreeView to add a custom CSS Class and modify a specific instance of the TreeView, instead of all instances on the page.
+
+>caption Change the expand/collapse icons in TreeView
+
+````CSHTML
+@* In Telerik.UI.for.Blazor version 4.3.0 and later, the components use SVG icons by default. Use the following CSS for versions 4.3.0 and later. *@
+@* Render the desired SVG icon and inspect it with your dev tools to get its path. *@
+
+
+@* In Telerik.UI.for.Blazor version below 4.3.0, the components use Font icons by default. Use this CSS for versions prior to 4.3.0. *@
+@* Copy the unicode of your desired icon from the Progress Design System - https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/ *@
+
+@* *@
+
+
+
+@code {
+ private IEnumerable FlatData { get; set; }
+
+ private IEnumerable ExpandedItems { get; set; } = new List();
+
+ protected override void OnInitialized()
+ {
+ FlatData = GetFlatData();
+
+ ExpandedItems = FlatData.Where(x => x.HasChildren == true && x.Id != 3).ToList();
+ }
+
+ List GetFlatData()
+ {
+ List items = new List();
+
+ items.Add(new TreeItem()
+ {
+ Id = 1,
+ Text = "wwwroot",
+ ParentId = null,
+ HasChildren = true,
+ Icon = SvgIcon.Folder
+ });
+ items.Add(new TreeItem()
+ {
+ Id = 2,
+ Text = "css",
+ ParentId = 1,
+ HasChildren = true,
+ Icon = SvgIcon.Folder
+ });
+ items.Add(new TreeItem()
+ {
+ Id = 3,
+ Text = "js",
+ ParentId = 1,
+ HasChildren = true,
+ Icon = SvgIcon.Folder
+ });
+ items.Add(new TreeItem()
+ {
+ Id = 4,
+ Text = "site.css",
+ ParentId = 2,
+ Icon = SvgIcon.Css
+ });
+ items.Add(new TreeItem()
+ {
+ Id = 5,
+ Text = "scripts.js",
+ ParentId = 3,
+ Icon = SvgIcon.Js
+ });
+
+ return items;
+ }
+
+ public class TreeItem
+ {
+ public int Id { get; set; }
+ public string Text { get; set; }
+ public int? ParentId { get; set; }
+ public bool HasChildren { get; set; }
+ public ISvgIcon Icon { get; set; }
+ }
+}
+````
+## See Also
+- [TreeView Overview]({%slug treeview-overview%})
+- [Telerik Icons List](https://www.telerik.com/design-system/docs/foundation/iconography/icon-list/)
From 9af6b91c0c468eb1366ae9ad7d977a72821b2c0c Mon Sep 17 00:00:00 2001
From: Kendo Bot
Date: Fri, 13 Dec 2024 10:33:26 +0200
Subject: [PATCH 056/392] Added new kb article map-custom-image (#2619)
* Added new kb article map-custom-image
* Update knowledge-base/map-custom-image.md
* Update knowledge-base/map-custom-image.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* Update knowledge-base/map-custom-image.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* Update knowledge-base/map-custom-image.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* Update knowledge-base/map-custom-image.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* Update knowledge-base/map-custom-image.md
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
* chore(Map): address feedback
---------
Co-authored-by: KB Bot
Co-authored-by: Nadezhda Tacheva <73842592+ntacheva@users.noreply.github.com>
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Co-authored-by: Nadezhda Tacheva
---
knowledge-base/map-custom-image.md | 97 ++++++++++++++++++++++++++++++
1 file changed, 97 insertions(+)
create mode 100644 knowledge-base/map-custom-image.md
diff --git a/knowledge-base/map-custom-image.md b/knowledge-base/map-custom-image.md
new file mode 100644
index 0000000000..b09818be08
--- /dev/null
+++ b/knowledge-base/map-custom-image.md
@@ -0,0 +1,97 @@
+---
+title: Use a Custom Image as a Map in the Map Component
+description: Learn how to integrate a custom image with the Blazor Map component for displaying markers on static images, such as building layouts.
+type: how-to
+page_title: How to Use a Custom Image with Blazor Map for Marker Placement
+slug: map-kb-custom-image
+tags: blazor, map, markers
+res_type: kb
+ticketid: 1652767
+---
+
+## Environment
+
+
+
+
+ Product
+ Map for Blazor
+
+
+
+
+## Description
+
+This knowledge base article answers the following questions:
+
+- How can I set a background image for the Blazor Map component?
+- Is it possible to overlay markers on a static image in Blazor Map?
+- Can I use a custom floor plan as a map in Blazor?
+
+## Solution
+
+The solution depends on whether you want to show a static Map or if you want to support panning and zooming functionalities. This knowledge base shows the first option:
+
+* [Static Map](#static-map)
+* [Pannable and Zoomable Map](#pannable-and-zoomable-map)
+
+### Static Map
+
+This method is ideal when using the Map in a static context without the need for dynamic panning and zooming. In this case, you may use CSS to target the wrapping element of the component and set your image as a background image.
+
+>caption Use custom image as a map
+
+````CSHTML
+
+
+
+
+
+
+
+
+
+@code {
+ public List MarkerData { get; set; } = new List()
+ {
+ new MarkerModel()
+ {
+ LatLng = new double[] {-15.014573802798589, -36.825833916664131 },
+ Title = "Marker 1"
+ },
+ new MarkerModel()
+ {
+ LatLng = new double[] {28.85837817460806, 25.92807233333588 },
+ Title = "Marker 2"
+ }
+ };
+
+ public class MarkerModel
+ {
+ public double[] LatLng { get; set; }
+ public string Title { get; set; }
+ }
+}
+````
+
+### Pannable and Zoomable Map
+
+If you want to support panning and zooming the custom image in the Map, you will need to mimic the default Map behavior targeting the [Tile layer]({%slug components/map/layers/tile%}). For that purpose, divide your image into small separate pieces that build up the whole map image and serve them to the Map component as tiles compliant to the WGS 84 coordinate system.
+
+## See Also
+
+* [Map Overview]({%slug components/map/overview%})
+* [Markers in Map for Blazor]({%slug components/map/layers/marker%})
+* [Tile Layer in Map for Blazor]({%slug components/map/layers/tile%})
From be3e8a15157eda51628bea2c5aec0d2c3be332c1 Mon Sep 17 00:00:00 2001
From: Kendo Bot
Date: Fri, 13 Dec 2024 10:47:23 +0200
Subject: [PATCH 057/392] Added new kb article
calendar-kb-customize-multiview-header (#2625)
* Added new kb article calendar-kb-customize-multiview-header
* Polish KB
* Update knowledge-base/calendar-kb-customize-multiview-header.md
---------
Co-authored-by: KB Bot
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
---
.../calendar-kb-customize-multiview-header.md | 79 +++++++++++++++++++
1 file changed, 79 insertions(+)
create mode 100644 knowledge-base/calendar-kb-customize-multiview-header.md
diff --git a/knowledge-base/calendar-kb-customize-multiview-header.md b/knowledge-base/calendar-kb-customize-multiview-header.md
new file mode 100644
index 0000000000..6862a52ff6
--- /dev/null
+++ b/knowledge-base/calendar-kb-customize-multiview-header.md
@@ -0,0 +1,79 @@
+---
+title: Customize Month Headers in MultiView Calendar
+description: Learn how to display the month name above each view in a MultiView Calendar using a custom header template and CSS in Telerik UI for Blazor.
+type: how-to
+page_title: How to Customize Month Headers in Telerik UI for Blazor MultiView Calendar
+slug: calendar-kb-customize-multiview-header
+tags: telerik, blazor, calendar, multiview
+res_type: kb
+ticketid: 1672888
+---
+
+## Environment
+
+
+
+
+ Product
+ Calendar for Blazor
+
+
+
+
+## Description
+
+How to customize the header of a MultiView Calendar to display the month name above each month view?
+
+## Solution
+
+To display the month name above each view in a MultiView Calendar, use the [`HeaderTemplate`]({%slug calendar-templates-header%}) of the TelerikCalendar and apply custom CSS for styling for label positioning. The following example demonstrates how to achieve this customization. Note that the suggested approach is applicable only for `Horizontal` Calendar `Orientation`.
+
+>caption MultiView Calendar with Header Template.
+
+````CSHTML
+@using System.Globalization
+
+
+
+
+ @for (int i = 0; i < ViewCount; i++)
+ {
+ int monthNumber = CalendarValue.Month + i > 12 ? (CalendarValue.Month + i) % 12 : CalendarValue.Month + i;
+ string month = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(monthNumber);
+
+
@month
+ }
+
+
+
+
+
+
+@code {
+ private int ViewCount { get; set; } = 3;
+ private DateTime CalendarDate { get; set; } = DateTime.Today;
+ private DateTime CalendarValue { get; set; } = DateTime.Today;
+ private CalendarView CalendarView { get; set; } = CalendarView.Month;
+}
+````
+
+## See Also
+
+* [Calendar Overview](https://docs.telerik.com/blazor-ui/components/calendar/overview)
+* [Calendar Header Template](https://docs.telerik.com/blazor-ui/components/calendar/templates/header-template)
+* [Calendar Views](https://docs.telerik.com/blazor-ui/components/calendar/views)
From ba0bd648b56dc71854e74984db83ce2a5b08625e Mon Sep 17 00:00:00 2001
From: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Date: Fri, 13 Dec 2024 10:47:35 +0200
Subject: [PATCH 058/392] docs(upload): Show how to send complex objects in
OnUpload (#2629)
---
components/upload/events.md | 33 ++++++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/components/upload/events.md b/components/upload/events.md
index bd286fc878..445ec22d12 100644
--- a/components/upload/events.md
+++ b/components/upload/events.md
@@ -419,13 +419,17 @@ Use the `OnUpload` and [`OnRemove`](#onremove) event handlers to send additional
* [CSRF/XSRF cross-site antiforgery tokens]({%slug upload-kb-validateantiforgerytoken%})
* Any metadata related to the app business logic
-To send **cookies** with the upload request, set the [`WithCredentials` component parameter]({%slug upload-overview%}#upload-parameters) to `true`.
+To send cookies with the upload request, set the [`WithCredentials` component parameter]({%slug upload-overview%}#upload-parameters) to `true`.
+
+To send a complex object or a collection, serialize it first. Receive it as a `string` argument in the controller method and deserialize it.
>caption Using the OnUpload event to send custom data to the controller
````Razor
+@using System.Text.Json
+
@code {
@@ -436,20 +440,30 @@ To send **cookies** with the upload request, set the [`WithCredentials` componen
args.IsCancelled = true;
}
- args.RequestData.Add("dataKey", "dataValue"); // for example, user name
- args.RequestHeaders.Add("headerKey", "headerValue"); // for example, authentication token
+ string[] collection = { "foo", "bar", "baz" };
+
+ args.RequestHeaders.Add("headerKey", "headerValue"); // for example, token
+ args.RequestData.Add("dataKey", "dataValue"); // for example, new file name
+ args.RequestData.Add("collectionKey", JsonSerializer.Serialize(collection));
}
}
````
````Controller
+using System.Text.Json;
+
// Get the custom data and header values from additional method arguments
[HttpPost]
-public async Task Save(IFormFile files, [FromForm] string dataKey, [FromHeader] string headerKey)
+public async Task Save(
+ IFormFile files,
+ [FromHeader] string headerKey,
+ [FromForm] string dataKey,
+ [FromForm] string collectionKey)
{
// ...
- string customData = dataKey;
string customHeader = headerKey;
+ string customData = dataKey;
+ string[]? customCollection = JsonSerializer.Deserialize(collectionKey);
// ...
}
@@ -462,8 +476,13 @@ public async Task Save(IFormFile files)
{
// ...
- string customData = Request.Form["dataKey"];
- string customHeader = Request.Headers["headerKey"];
+ string? customHeader = Request.Headers["headerKey"];
+ string? customData = Request.Form["dataKey"];
+
+ if (Request.Form.ContainsKey("collectionKey"))
+ {
+ string[]? customCollection = JsonSerializer.Deserialize(Request.Form["collectionKey"]!);
+ }
// ...
}
From 7f426e7dbe04532e4add812198691ad03237850d Mon Sep 17 00:00:00 2001
From: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Date: Fri, 13 Dec 2024 10:47:48 +0200
Subject: [PATCH 059/392] docs(grid,treelist): Use Save button text to match
the command name (#2631)
---
components/contextmenu/integration.md | 2 +-
components/grid/accessibility/overview.md | 2 +-
components/grid/columns/command.md | 2 +-
components/grid/columns/reorder.md | 2 +-
components/grid/editing/inline.md | 2 +-
components/grid/editing/overview.md | 4 ++--
components/grid/editing/validation.md | 2 +-
components/grid/templates/editor.md | 4 ++--
components/grid/toolbar.md | 4 ++--
components/scheduler/manual-operations.md | 2 +-
components/treelist/accessibility/overview.md | 2 +-
components/treelist/columns/command.md | 2 +-
components/treelist/editing/inline.md | 2 +-
components/treelist/editing/overview.md | 4 ++--
components/treelist/editing/popup.md | 4 ++--
components/treelist/editing/validation.md | 2 +-
components/treelist/events.md | 6 +++---
components/treelist/state.md | 2 +-
components/treelist/templates/editor.md | 2 +-
components/treelist/templates/popup-buttons-template.md | 2 +-
components/treelist/templates/popup-form-template.md | 2 +-
knowledge-base/grid-add-edit-state.md | 2 +-
knowledge-base/grid-cascade-dropdowns-for-fields.md | 2 +-
.../grid-change-editable-attribute-update-create.md | 4 ++--
knowledge-base/grid-default-value-for-new-row.md | 2 +-
knowledge-base/grid-doubleclick-starts-editing.md | 2 +-
knowledge-base/grid-edit-on-row-double-click.md | 2 +-
knowledge-base/grid-filter-edit-enum.md | 2 +-
knowledge-base/grid-multiselect-editor.md | 2 +-
.../grid-row-template-simulate-built-in-functions.md | 2 +-
knowledge-base/grid-show-confirm-cancel-dialog.md | 4 ++--
.../treelist-enable-checkbox-selection-only-edit-mode.md | 2 +-
knowledge-base/treelist-get-parent-item-on-insert.md | 4 ++--
33 files changed, 43 insertions(+), 43 deletions(-)
diff --git a/components/contextmenu/integration.md b/components/contextmenu/integration.md
index bc5beb0eb3..3fa895f0a8 100644
--- a/components/contextmenu/integration.md
+++ b/components/contextmenu/integration.md
@@ -202,7 +202,7 @@ In this example, the context menu is used to select/deselect items, put an item
- Update
+ Save
Cancel
diff --git a/components/grid/accessibility/overview.md b/components/grid/accessibility/overview.md
index 8bd84e6498..28213251d5 100644
--- a/components/grid/accessibility/overview.md
+++ b/components/grid/accessibility/overview.md
@@ -138,7 +138,7 @@ The following example demonstrates the [accessibility compliance of the Grid com
- Update
+ Save
Cancel
diff --git a/components/grid/columns/command.md b/components/grid/columns/command.md
index c8ca56a8de..b0302fe7ea 100644
--- a/components/grid/columns/command.md
+++ b/components/grid/columns/command.md
@@ -115,7 +115,7 @@ The following code example demonstrates declarations and handling.
Edit
- Update
+ Save
Cancel
My Command
diff --git a/components/grid/columns/reorder.md b/components/grid/columns/reorder.md
index dc14540f40..ce944f0b02 100644
--- a/components/grid/columns/reorder.md
+++ b/components/grid/columns/reorder.md
@@ -29,7 +29,7 @@ To prevent the user from moving a certain column, set the column's `Reorderable`
- Update
+ Save
Edit
Delete
Cancel
diff --git a/components/grid/editing/inline.md b/components/grid/editing/inline.md
index 952bed04e4..b778b1902e 100644
--- a/components/grid/editing/inline.md
+++ b/components/grid/editing/inline.md
@@ -39,7 +39,7 @@ Use the command buttons to control the CUD operations.
- Update
+ Save
Edit
Delete
Cancel
diff --git a/components/grid/editing/overview.md b/components/grid/editing/overview.md
index 9762bf2466..06785b9511 100644
--- a/components/grid/editing/overview.md
+++ b/components/grid/editing/overview.md
@@ -84,7 +84,7 @@ You can customize the editors rendered in the Grid by providing the `EditorType`
EditorType="@GridEditorType.TextArea"
Title="Name" />
- Update
+ Save
Edit
Delete
Cancel
@@ -223,7 +223,7 @@ Editing is cancelled for the first two records.
- Update
+ Save
Edit
Delete
Cancel
diff --git a/components/grid/editing/validation.md b/components/grid/editing/validation.md
index 62931e5ec0..ccf9b7ae71 100644
--- a/components/grid/editing/validation.md
+++ b/components/grid/editing/validation.md
@@ -39,7 +39,7 @@ To disable the built-in validation, add a `` tag to the
- Update
+ Save
Edit
Delete
Cancel
diff --git a/components/grid/templates/editor.md b/components/grid/templates/editor.md
index fa687c8a0b..92bbb8d8b6 100644
--- a/components/grid/templates/editor.md
+++ b/components/grid/templates/editor.md
@@ -179,7 +179,7 @@ The Grid will save changes and close the current edit row (or edit cell) when th
- Update
+ Save
Edit
@@ -305,7 +305,7 @@ Also check the [Grid Foreign Key Column]({%slug grids-foreign-key%}) knowledge b
- Update
+ Save
Edit
diff --git a/components/grid/toolbar.md b/components/grid/toolbar.md
index 6ec29454f2..d3aefe8462 100644
--- a/components/grid/toolbar.md
+++ b/components/grid/toolbar.md
@@ -50,7 +50,7 @@ The grid offers built-in commands that you can invoke through its toolbar. To us
Edit
- Update
+ Save
Cancel
@@ -245,7 +245,7 @@ You can add your own HTML and components to create a more complex layout in the
Edit
- Update
+ Save
Cancel
diff --git a/components/scheduler/manual-operations.md b/components/scheduler/manual-operations.md
index ca609645e4..5160177658 100644
--- a/components/scheduler/manual-operations.md
+++ b/components/scheduler/manual-operations.md
@@ -124,7 +124,7 @@ Using Telerik DataSource extension methods to manipulate all the data into paged
- Update
+ Save
Edit
Delete
Cancel
diff --git a/components/treelist/accessibility/overview.md b/components/treelist/accessibility/overview.md
index a01b4c90af..e5c48b3518 100644
--- a/components/treelist/accessibility/overview.md
+++ b/components/treelist/accessibility/overview.md
@@ -157,7 +157,7 @@ The following example demonstrates the [accessibility compliance of the TreeList
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/columns/command.md b/components/treelist/columns/command.md
index 754dddd0d2..d27b28bd56 100644
--- a/components/treelist/columns/command.md
+++ b/components/treelist/columns/command.md
@@ -106,7 +106,7 @@ The `OnClick` handler of the commands receives an argument of type `TreeListComm
Edit
- Update
+ Save
Cancel
Custom Command
diff --git a/components/treelist/editing/inline.md b/components/treelist/editing/inline.md
index 584e07181a..aba2998b90 100644
--- a/components/treelist/editing/inline.md
+++ b/components/treelist/editing/inline.md
@@ -47,7 +47,7 @@ Editing is cancelled for the first record.
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/editing/overview.md b/components/treelist/editing/overview.md
index 992e16b3cc..1311d6490f 100644
--- a/components/treelist/editing/overview.md
+++ b/components/treelist/editing/overview.md
@@ -88,7 +88,7 @@ You can customize the editors rendered in the TreeList by providing the `EditorT
Add Child
Edit
Delete
- Update
+ Save
Cancel
@@ -340,7 +340,7 @@ Editing is cancelled for the first record.
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/editing/popup.md b/components/treelist/editing/popup.md
index 55552f0b7e..757fe2d283 100644
--- a/components/treelist/editing/popup.md
+++ b/components/treelist/editing/popup.md
@@ -59,7 +59,7 @@ Editing is cancelled for the first record.
Add Child
Edit
Delete
- Update
+ Save
Cancel
@@ -373,7 +373,7 @@ The `TreeListPopupEditFormSettings` nested tag exposes the following parameters
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/editing/validation.md b/components/treelist/editing/validation.md
index dc25c7366b..628a77fabe 100644
--- a/components/treelist/editing/validation.md
+++ b/components/treelist/editing/validation.md
@@ -47,7 +47,7 @@ To disable the built-in validation, add a ``tag to
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/events.md b/components/treelist/events.md
index 09cd2ef62c..413f595feb 100644
--- a/components/treelist/events.md
+++ b/components/treelist/events.md
@@ -208,7 +208,7 @@ Visit the [TreeList Cell Selection article to see an example]({%slug treelist-se
Add Child
Edit
Delete
- Update
+ Save
Cancel
@@ -462,7 +462,7 @@ Visit the [TreeList Cell Selection article to see an example]({%slug treelist-se
Add Child
Edit
Delete
- Update
+ Save
Cancel
@@ -726,7 +726,7 @@ Visit the [TreeList Cell Selection article to see an example]({%slug treelist-se
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/state.md b/components/treelist/state.md
index c8b78c52d5..ed289279a8 100644
--- a/components/treelist/state.md
+++ b/components/treelist/state.md
@@ -743,7 +743,7 @@ In addition to that, you can also use the `EditItem`, `OriginalEditItem`, `Inser
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/templates/editor.md b/components/treelist/templates/editor.md
index 96047def2d..5827fdd6e3 100644
--- a/components/treelist/templates/editor.md
+++ b/components/treelist/templates/editor.md
@@ -35,7 +35,7 @@ The TreeList row creates an `EditContext` and passes it to the `EditorTemplate`.
Edit
- Update
+ Save
Cancel
diff --git a/components/treelist/templates/popup-buttons-template.md b/components/treelist/templates/popup-buttons-template.md
index ee1c4c3135..135e3e9301 100644
--- a/components/treelist/templates/popup-buttons-template.md
+++ b/components/treelist/templates/popup-buttons-template.md
@@ -73,7 +73,7 @@ With the `ButtonsTemplate`, you can personalize the appearance and behavior of t
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/components/treelist/templates/popup-form-template.md b/components/treelist/templates/popup-form-template.md
index a55f3275ef..acd4350e66 100644
--- a/components/treelist/templates/popup-form-template.md
+++ b/components/treelist/templates/popup-form-template.md
@@ -65,7 +65,7 @@ You can use the `Context` attribute of the `` tag to set the name
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/knowledge-base/grid-add-edit-state.md b/knowledge-base/grid-add-edit-state.md
index 897fe93ade..e2c5d14daf 100644
--- a/knowledge-base/grid-add-edit-state.md
+++ b/knowledge-base/grid-add-edit-state.md
@@ -88,7 +88,7 @@ All these operations can also be used for [`Incell`]({%slug components/grid/edit
Edit
- Update
+ Save
Cancel
diff --git a/knowledge-base/grid-cascade-dropdowns-for-fields.md b/knowledge-base/grid-cascade-dropdowns-for-fields.md
index 28e3fbec6f..2891e12608 100644
--- a/knowledge-base/grid-cascade-dropdowns-for-fields.md
+++ b/knowledge-base/grid-cascade-dropdowns-for-fields.md
@@ -68,7 +68,7 @@ There are three approaches you can take:
- Update
+ Save
Edit
diff --git a/knowledge-base/grid-change-editable-attribute-update-create.md b/knowledge-base/grid-change-editable-attribute-update-create.md
index 5075a8959f..42f97c7110 100644
--- a/knowledge-base/grid-change-editable-attribute-update-create.md
+++ b/knowledge-base/grid-change-editable-attribute-update-create.md
@@ -63,7 +63,7 @@ In the two examples below, the `Name` column uses the `Editable` property, and t
- Update
+ Save
Cancel
Edit
@@ -162,7 +162,7 @@ In the two examples below, the `Name` column uses the `Editable` property, and t
- Update
+ Save
Cancel
Edit
diff --git a/knowledge-base/grid-default-value-for-new-row.md b/knowledge-base/grid-default-value-for-new-row.md
index 7343ce0e03..6ec557cc33 100644
--- a/knowledge-base/grid-default-value-for-new-row.md
+++ b/knowledge-base/grid-default-value-for-new-row.md
@@ -77,7 +77,7 @@ Click the Add button to see the default values for the HireDate
- Update
+ Save
Edit
Delete
Cancel
diff --git a/knowledge-base/grid-doubleclick-starts-editing.md b/knowledge-base/grid-doubleclick-starts-editing.md
index e129fbdff5..dc38664f07 100644
--- a/knowledge-base/grid-doubleclick-starts-editing.md
+++ b/knowledge-base/grid-doubleclick-starts-editing.md
@@ -44,7 +44,7 @@ See the following example for reference:
- Update
+ Save
Edit
Delete
Cancel
diff --git a/knowledge-base/grid-edit-on-row-double-click.md b/knowledge-base/grid-edit-on-row-double-click.md
index b0bea0ddc4..6815a7a61c 100644
--- a/knowledge-base/grid-edit-on-row-double-click.md
+++ b/knowledge-base/grid-edit-on-row-double-click.md
@@ -42,7 +42,7 @@ The Grid exposes two events that allows you to respond to the user clicking on i
- Update
+ Save
Delete
Cancel
diff --git a/knowledge-base/grid-filter-edit-enum.md b/knowledge-base/grid-filter-edit-enum.md
index 65e1edc6df..ca05a9adc0 100644
--- a/knowledge-base/grid-filter-edit-enum.md
+++ b/knowledge-base/grid-filter-edit-enum.md
@@ -49,7 +49,7 @@ To control how each enum value will show in the filtering DropDownList, decorate
- Update
+ Save
Edit
diff --git a/knowledge-base/grid-multiselect-editor.md b/knowledge-base/grid-multiselect-editor.md
index 8c45eed665..8dc0abc1c4 100644
--- a/knowledge-base/grid-multiselect-editor.md
+++ b/knowledge-base/grid-multiselect-editor.md
@@ -74,7 +74,7 @@ Add the [Multi Select component]({%slug multiselect-overview%}) to the [EditorTe
- Update
+ Save
Edit
diff --git a/knowledge-base/grid-row-template-simulate-built-in-functions.md b/knowledge-base/grid-row-template-simulate-built-in-functions.md
index 946e02b84e..16cb808a70 100644
--- a/knowledge-base/grid-row-template-simulate-built-in-functions.md
+++ b/knowledge-base/grid-row-template-simulate-built-in-functions.md
@@ -121,7 +121,7 @@ To implement a custom command column:
- Update
+ Save
Cancel
diff --git a/knowledge-base/grid-show-confirm-cancel-dialog.md b/knowledge-base/grid-show-confirm-cancel-dialog.md
index 3d2f877375..2fa5e54ad2 100644
--- a/knowledge-base/grid-show-confirm-cancel-dialog.md
+++ b/knowledge-base/grid-show-confirm-cancel-dialog.md
@@ -66,7 +66,7 @@ Use [Predefined Confirm Dialog]({%slug dialog-predefined%}#confirm) with the des
- Update
+ Save
Edit
Cancel
@@ -147,7 +147,7 @@ Using the [Dialog component]({%slug dialog-overview%}) will let you have fully c
- Update
+ Save
Edit
Cancel
diff --git a/knowledge-base/treelist-enable-checkbox-selection-only-edit-mode.md b/knowledge-base/treelist-enable-checkbox-selection-only-edit-mode.md
index eac304f143..a83b90eae7 100644
--- a/knowledge-base/treelist-enable-checkbox-selection-only-edit-mode.md
+++ b/knowledge-base/treelist-enable-checkbox-selection-only-edit-mode.md
@@ -74,7 +74,7 @@ Below is an example implementation that toggles the visibility of the Checkbox C
Add Child
Edit
Delete
- Update
+ Save
Cancel
diff --git a/knowledge-base/treelist-get-parent-item-on-insert.md b/knowledge-base/treelist-get-parent-item-on-insert.md
index a3d32bab62..863c8678b5 100644
--- a/knowledge-base/treelist-get-parent-item-on-insert.md
+++ b/knowledge-base/treelist-get-parent-item-on-insert.md
@@ -65,7 +65,7 @@ The approaches to handle this would depend of the type of data the component is
Add Child
Edit
- Update
+ Save
Cancel
@@ -197,7 +197,7 @@ The approaches to handle this would depend of the type of data the component is
Add Child
Edit
- Update
+ Save
Cancel
From c037f6c5921604d98695631bf6da34da68e958aa Mon Sep 17 00:00:00 2001
From: Kendo Bot
Date: Fri, 13 Dec 2024 10:56:02 +0200
Subject: [PATCH 060/392] Added new kb article grid-kb-style-filtered-columns
(#2617)
* Added new kb article grid-kb-style-filtered-columns
* Update knowledge-base/grid-kb-style-filtered-columns.md
* Update knowledge-base/grid-kb-style-filtered-columns.md
* Update knowledge-base/grid-kb-style-filtered-columns.md
* Update knowledge-base/grid-kb-style-filtered-columns.md
* kb(grid): Polish KB
---------
Co-authored-by: KB Bot
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
---
knowledge-base/grid-style-filtered-columns.md | 120 ++++++++++++++++++
1 file changed, 120 insertions(+)
create mode 100644 knowledge-base/grid-style-filtered-columns.md
diff --git a/knowledge-base/grid-style-filtered-columns.md b/knowledge-base/grid-style-filtered-columns.md
new file mode 100644
index 0000000000..9651cd110d
--- /dev/null
+++ b/knowledge-base/grid-style-filtered-columns.md
@@ -0,0 +1,120 @@
+---
+title: Change Filtered Columns Color in Grid for Blazor
+description: Learn how to change the background color of filtered columns in the Telerik Grid for Blazor for better visibility using CSS.
+type: how-to
+page_title: How to Style Filtered Columns in Telerik Grid for Blazor
+slug: grid-kb-style-filtered-columns
+tags: grid, blazor, styling, filtering, css, oncellrender, onstatechanged
+res_type: kb
+ticketid: 1672604
+---
+
+## Environment
+
+
+
+
+ Product
+ Grid for Blazor
+
+
+
+
+## Description
+
+I want to style filtered columns in the Grid for Blazor using RGBA for better visibility. Specifically, when a filter is applied, I want the background color of column cells to change.
+
+This knowledge base article answers the following questions:
+
+* How to apply custom styles to filtered columns in a Blazor Grid?
+* How to enhance the visibility of filtered columns in Blazor Grid using CSS?
+
+## Solution
+
+To style filtered columns in a Telerik Grid for Blazor:
+
+1. Use the [`OnCellRender`]({%slug grid-column-events%}#oncellrender) and [`OnStateChanged`]({%slug grid-state%}#onstatechanged) events.
+2. Apply a custom CSS class to the filtered columns when a filter is active. The CSS class will be rendered on each cell from these columns.
+
+>caption Grid with styled filtered column.
+
+`````CSHTML
+@using Telerik.DataSource
+
+
+
+
+
+
+
+
+
+
+
+@code {
+ private List GridData { get; set; } = new();
+ private List FilteredColumns { get; set; } = new();
+
+ private void OnGridCellRender(GridCellRenderEventArgs args, string field)
+ {
+ if (FilteredColumns.Contains(field))
+ {
+ args.Class = "highlighted-column";
+ }
+ }
+
+ private void OnGridStateChanged(GridStateEventArgs args)
+ {
+ if (args.PropertyName == "FilterDescriptors")
+ {
+ FilteredColumns = new();
+
+ foreach (CompositeFilterDescriptor cfd in args.GridState.FilterDescriptors)
+ {
+ FilterDescriptor fd = (FilterDescriptor)cfd.FilterDescriptors.First();
+
+ FilteredColumns.Add(fd.Member);
+ }
+ }
+ }
+
+ protected override void OnInitialized()
+ {
+ for (int i = 1; i <= 50; i++)
+ {
+ GridData.Add(new Employee()
+ {
+ ID = i,
+ Name = $"Employee Name {i}",
+ Salary = Random.Shared.Next(1000, 10000)
+ });
+ }
+ }
+
+ public class Employee
+ {
+ public int ID { get; set; }
+ public string Name { get; set; } = string.Empty;
+ public decimal Salary { get; set; }
+ }
+}
+`````
+## See Also
+
+* [Grid Columns](https://docs.telerik.com/blazor-ui/components/grid/columns/bound)
+* [OnCellRender Event](https://docs.telerik.com/blazor-ui/components/grid/columns/events)
+* [OnStateChanged Event](https://docs.telerik.com/blazor-ui/components/grid/state#onstatechanged)
+* [Override the Theme or Apply Custom CSS Styles]({%slug themes-override%})
From 859caa26f36a9c379923bb8e22291df1d15544bf Mon Sep 17 00:00:00 2001
From: Tsvetomir Hristov <106250052+Tsvetomir-Hr@users.noreply.github.com>
Date: Fri, 13 Dec 2024 10:59:57 +0200
Subject: [PATCH 061/392] docs(Scheduler): add refresh method documentation
(#2628)
* docs(Scheduler): add refresh method documentation
* chore: apply suggestions
* Update components/scheduler/overview.md
---------
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
---
components/scheduler/overview.md | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/components/scheduler/overview.md b/components/scheduler/overview.md
index bad0f3eb96..f37d56d7b0 100644
--- a/components/scheduler/overview.md
+++ b/components/scheduler/overview.md
@@ -133,6 +133,37 @@ The following table lists Scheduler parameters, which are not discussed elsewher
| `Height` | `string` | A `height` style in [any supported unit]({%slug common-features/dimensions%}). |
| `Width` | `string` | A `width` style in [any supported unit]({%slug common-features/dimensions%}). |
+## Scheduler Reference and Methods
+
+To execute Scheduler methods, obtain reference to the component instance with `@ref`.
+
+| Method | Description |
+|---------|-------------|
+| `Rebind` | Use to refresh the component data. |
+| `Refresh` | Use to programmatically re-render the Scheduler. |
+
+
+
+````CSHTML
+Refresh Scheduler
+Rebind Scheduler
+
+
+
+@code {
+ private TekerikScheduler? SchedulerRef { get; set; }
+
+ private void RefreshScheduler()
+ {
+ SchedulerRef?.Refresh();
+ }
+
+ private void RebindScheduler()
+ {
+ SchedulerRef?.Rebind();
+ }
+}
+````
## Next Steps
From 663a8dce9d2d96f1fb37efd13160919a3c3ebedf Mon Sep 17 00:00:00 2001
From: Dimo Dimov <961014+dimodi@users.noreply.github.com>
Date: Fri, 13 Dec 2024 11:12:47 +0200
Subject: [PATCH 062/392] docs(textarea): Remove AutoSize from examples (#2639)
---
components/textarea/overview.md | 10 +++++-----
knowledge-base/editor-convert-to-plain-text.md | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/components/textarea/overview.md b/components/textarea/overview.md
index ce55901fa1..6acd157e6a 100644
--- a/components/textarea/overview.md
+++ b/components/textarea/overview.md
@@ -15,16 +15,16 @@ The Telerik
+ MaxLength="200"
+ Rows="5" />
TextArea value: @TextAreaValue
diff --git a/knowledge-base/editor-convert-to-plain-text.md b/knowledge-base/editor-convert-to-plain-text.md
index db8ea14041..b76490da0f 100644
--- a/knowledge-base/editor-convert-to-plain-text.md
+++ b/knowledge-base/editor-convert-to-plain-text.md
@@ -57,7 +57,7 @@ To export to another format, use the corresponding namespace and format provider
Convert to Plain Text
-
+
@code {
From 1826961bf4ea02ec4334bd7474e8d7c3c1e6391d Mon Sep 17 00:00:00 2001
From: Nadezhda Tacheva <73842592+ntacheva@users.noreply.github.com>
Date: Fri, 13 Dec 2024 11:44:35 +0200
Subject: [PATCH 063/392] docs(common): Migrate to docs-builder (#2476)
* adding docs builder config and content fixes
* chore(common): fix malformed code block tags
* chore(common): fix broken links
* chore(common): fix broken code blocks
* chore(common): fix broken links
* chore(common): fix links:
* chore(common): fix links
* chore(common): fix links
* chore(common): fix links
* chore(common): fix links
* chore(common): fix links
* docs: changed primary-color to purple
* chore(common): fix links
* chore(common): fix links
* chore(common): fix links
* chore(common): fix broken relative link
* chore(common): fix no code block language errors
* chore(common): fix no code block language errors
* chore(common): fix no language errors
* chore(common): fix broken blocks of code
* chore(common): cannot find gramar fixes
* chore(common): fix broken code blocks
* chore(common): add latest fixes from the excel file
* chore(common): fix tables in breaking changes articles and remaining warnings
* chore(common): fix latest warnings
* chore(common): fix unresolved urls
* chore(common): fix link
* adding docs builder interpolation settings
* chore(common): fix remaining links
* chore(common) fix broken nested ol's
* Add blazor-repl prop in config
* adding metadata-config for docfx
* Fix some md files with wrong skip-repl
* fixing broken api ref link
* Removed system.object inherited members and datasource expressions broken regex
* fixed codeblock with unescaped interpolation
* Fix: Fix some wrong MD files
* close code block
* Fix: Fix some wrong MD files
* fixing api ref links
* fixing trial link
* added theme version to liquid vars
* fix metadata
* fixing nav items ordering
* fixed links
* fixing a11y links
* added pdf cover
* applied latest nav changes
* fixing broken markdown content
* fixing broken code block
* Add intro-page table
* changing primary color
* fix tabbed code blocks + headings
* Fix: Some code blocks were Repl
* Fix: Some wrong codeblocks
* Fix: Some wrong codeblocks
* Fix: Some wrong codeblocks
* Fix: Some wrong codeblocks
* Fix: worng codeblock language
* Fix some REPL to codeblocks
* Fix come codeblocks to REPL
* Fix: wrong tabbed code block
* Fix ninja-avatar icon
* chore(common): skip repl in snippets
* chore(Gantt): fix snippets and skip repl
* chore(Grid,Gauge): fix snippets and skip repl
* chore(common): fix snippets
* chore(treelist): fix snippets
* chore(docs): fixing broken links
* Replace CSHTML with RAZOR
* Fix code snippets
---------
Co-authored-by: Nikolay Nenkov
Co-authored-by: Hristian Stefanov
Co-authored-by: AngelVelinov
Co-authored-by: Atanas Atanasov
Co-authored-by: Dimo Dimov <961014+dimodi@users.noreply.github.com>
---
_assetsApi/filterConfig.yml | 5 +-
_assetsApi/metadata-config.json | 13 +
_contentTemplates/chart/link-to-basics.md | 2 +-
.../common/format-placeholders.md | 2 +-
.../common/get-model-from-dropdowns.md | 2 +-
_contentTemplates/common/get-started.md | 54 +-
_contentTemplates/common/inputs.md | 6 +-
_contentTemplates/common/js-interop-file.md | 8 +-
_contentTemplates/grid/common-link.md | 5 +-
_contentTemplates/grid/export.md | 112 ++--
_contentTemplates/rootcomponent/setup.md | 4 +-
_contentTemplates/scheduler/views.md | 20 +-
_contentTemplates/treeview/basic-example.md | 2 +-
accessibility/overview.md | 2 +-
accessibility/wcag-section-508-wai-aria.md | 4 +-
all-pages.md | 2 +-
common-features/adaptive-rendering.md | 5 +-
common-features/cdn.md | 6 +-
common-features/data-binding/descriptors.md | 4 +-
common-features/data-binding/onread.md | 4 +-
common-features/data-binding/overview.md | 6 +-
.../telerik-datasource-package.md | 1 +
common-features/dimensions.md | 6 +-
common-features/icons.md | 22 +-
common-features/input-adornments.md | 6 +-
common-features/input-validation.md | 24 +-
common-features/loading-sign.md | 16 +-
components/aiprompt/events.md | 4 +-
components/aiprompt/overview.md | 4 +-
components/aiprompt/templates.md | 2 +-
components/aiprompt/toolbar.md | 4 +-
components/aiprompt/views/commands.md | 2 +-
components/aiprompt/views/output.md | 4 +-
components/aiprompt/views/overview.md | 8 +-
components/aiprompt/views/prompt.md | 2 +-
components/aiprompt/views/templates.md | 4 +-
components/animationcontainer/overview.md | 6 +-
components/appbar/appearance.md | 2 +-
components/appbar/overview.md | 4 +-
components/appbar/sections.md | 2 +-
components/appbar/separators.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/autocomplete/appearance.md | 6 +-
components/autocomplete/data-bind.md | 10 +-
components/autocomplete/events.md | 18 +-
components/autocomplete/filter.md | 4 +-
components/autocomplete/grouping.md | 2 +-
components/autocomplete/overview.md | 10 +-
components/autocomplete/refresh-data.md | 6 +-
components/autocomplete/templates.md | 2 +-
components/autocomplete/virtualization.md | 4 +-
components/avatar/appearance.md | 8 +-
components/avatar/overview.md | 2 +-
components/avatar/types.md | 2 +-
components/badge/appearance.md | 2 +-
components/badge/overview.md | 2 +-
components/badge/position.md | 2 +-
components/barcodes/barcode/encoding.md | 2 +-
components/barcodes/barcode/overview.md | 4 +-
components/barcodes/qrcode/overview.md | 2 +-
components/barcodes/qrcode/qr-code-types.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/breadcrumb/collapse-modes.md | 2 +-
components/breadcrumb/data-binding.md | 6 +-
components/breadcrumb/events.md | 2 +-
components/breadcrumb/icons.md | 2 +-
components/breadcrumb/overview.md | 4 +-
components/breadcrumb/separator.md | 2 +-
components/breadcrumb/templates.md | 4 +-
.../button/accessibility/wai-aria-support.md | 2 +-
components/button/appearance.md | 8 +-
components/button/disabled-button.md | 2 +-
components/button/events.md | 2 +-
components/button/icons.md | 2 +-
components/button/overview.md | 6 +-
components/button/styling.md | 2 +-
components/button/type.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/buttongroup/appearance.md | 8 +-
components/buttongroup/buttons.md | 4 +-
components/buttongroup/events.md | 4 +-
components/buttongroup/icons.md | 2 +-
components/buttongroup/overview.md | 4 +-
components/buttongroup/selection.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/calendar/appearance.md | 2 +-
components/calendar/events.md | 10 +-
components/calendar/multiview.md | 6 +-
components/calendar/navigation.md | 6 +-
components/calendar/overview.md | 4 +-
components/calendar/selection.md | 10 +-
components/calendar/templates/century-cell.md | 2 +-
components/calendar/templates/decade-cell.md | 2 +-
.../calendar/templates/header-template.md | 2 +-
components/calendar/templates/month-cell.md | 2 +-
components/calendar/templates/year-cell.md | 2 +-
components/card/actions.md | 4 +-
components/card/building-blocks.md | 16 +-
components/card/image.md | 2 +-
components/card/layouts.md | 6 +-
components/card/orientation.md | 4 +-
components/card/overview.md | 2 +-
components/card/separator.md | 6 +-
.../accessibility/wai-aria-support.md | 2 +-
components/carousel/events.md | 2 +-
components/carousel/overview.md | 5 +-
components/carousel/refresh-data.md | 6 +-
components/carousel/template.md | 2 +-
.../chart/accessibility/wai-aria-support.md | 2 +-
components/chart/data-bind.md | 18 +-
components/chart/date-axis.md | 8 +-
components/chart/drilldown.md | 6 +-
components/chart/events.md | 12 +-
.../chart/labels-template-and-format.md | 8 +-
components/chart/legend.md | 2 +-
components/chart/multiple-axes.md | 20 +-
components/chart/overview.md | 10 +-
components/chart/pan-and-zoom/pan.md | 4 +-
components/chart/pan-and-zoom/zoom.md | 6 +-
components/chart/plot-bands.md | 4 +-
components/chart/rendering-modes.md | 4 +-
components/chart/stacked-series.md | 6 +-
components/chart/templates.md | 2 +-
components/chart/tooltip/overview.md | 8 +-
components/chart/tooltip/shared.md | 4 +-
components/chart/trendlines.md | 12 +-
components/chart/types/area.md | 4 +-
components/chart/types/bar.md | 4 +-
components/chart/types/bubble.md | 4 +-
components/chart/types/candlestick.md | 2 +-
components/chart/types/column.md | 4 +-
components/chart/types/donut.md | 16 +-
components/chart/types/heatmap.md | 15 +-
components/chart/types/line.md | 4 +-
components/chart/types/ohlc.md | 2 +-
components/chart/types/pie.md | 10 +-
components/chart/types/radar-area.md | 4 +-
components/chart/types/radar-column.md | 2 +-
components/chart/types/radar-line.md | 2 +-
components/chart/types/rangearea.md | 4 +-
components/chart/types/rangebar.md | 4 +-
components/chart/types/rangecolumn.md | 4 +-
components/chart/types/scatter.md | 2 +-
components/chart/types/scatterline.md | 2 +-
components/chart/types/waterfall.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/checkbox/appearance.md | 4 +-
components/checkbox/events.md | 8 +-
components/checkbox/indeterminate-state.md | 4 +-
components/checkbox/overview.md | 4 +-
components/chip/appearance.md | 8 +-
components/chip/events.md | 2 +-
components/chip/overview.md | 2 +-
components/chiplist/appearance.md | 6 +-
components/chiplist/data-bind.md | 4 +-
components/chiplist/events.md | 4 +-
components/chiplist/overview.md | 2 +-
components/chiplist/selection.md | 4 +-
components/chiplist/templates.md | 2 +-
.../accessibility/wai-aria-support.md | 4 +-
components/chunkprogressbar/indeterminate.md | 2 +-
components/chunkprogressbar/overview.md | 10 +-
.../accessibility/wai-aria-support.md | 6 +-
components/colorgradient/events.md | 4 +-
components/colorgradient/overview.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/colorpalette/custom-colors.md | 2 +-
components/colorpalette/events.md | 6 +-
components/colorpalette/overview.md | 4 +-
components/colorpalette/presets.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/colorpicker/appearance.md | 6 +-
components/colorpicker/events.md | 10 +-
components/colorpicker/overview.md | 6 +-
components/colorpicker/views.md | 8 +-
.../accessibility/wai-aria-support.md | 2 +-
components/combobox/appearance.md | 6 +-
components/combobox/custom-value.md | 4 +-
components/combobox/data-bind.md | 10 +-
components/combobox/events.md | 22 +-
components/combobox/filter.md | 2 +-
components/combobox/grouping.md | 2 +-
components/combobox/overview.md | 8 +-
components/combobox/pre-select-item.md | 2 +-
components/combobox/refresh-data.md | 6 +-
components/combobox/templates.md | 2 +-
components/combobox/virtualization.md | 4 +-
.../accessibility/wai-aria-support.md | 4 +-
.../contextmenu/data-binding/flat-data.md | 2 +-
.../data-binding/hierarchical-data.md | 4 +-
.../contextmenu/data-binding/overview.md | 4 +-
components/contextmenu/events.md | 4 +-
components/contextmenu/icons.md | 2 +-
components/contextmenu/integration.md | 6 +-
components/contextmenu/navigation.md | 4 +-
components/contextmenu/overview.md | 6 +-
components/contextmenu/refresh-data.md | 6 +-
components/contextmenu/templates/content.md | 2 +-
components/contextmenu/templates/item.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/dateinput/appearance.md | 6 +-
components/dateinput/events.md | 6 +-
components/dateinput/increment-steps.md | 2 +-
components/dateinput/keyboard-typing.md | 4 +-
components/dateinput/overview.md | 4 +-
components/dateinput/supported-formats.md | 4 +-
.../accessibility/wai-aria-support.md | 4 +-
components/datepicker/appearance.md | 6 +-
components/datepicker/events.md | 12 +-
components/datepicker/header-template.md | 2 +-
components/datepicker/increment-steps.md | 2 +-
components/datepicker/overview.md | 4 +-
.../accessibility/wai-aria-support.md | 4 +-
components/daterangepicker/appearance.md | 6 +-
components/daterangepicker/events.md | 16 +-
components/daterangepicker/header-template.md | 2 +-
components/daterangepicker/overview.md | 4 +-
.../accessibility/wai-aria-support.md | 8 +-
components/datetimepicker/appearance.md | 6 +-
components/datetimepicker/events.md | 12 +-
components/datetimepicker/increment-steps.md | 2 +-
components/datetimepicker/overview.md | 4 +-
.../dialog/accessibility/wai-aria-support.md | 2 +-
components/dialog/action-buttons.md | 2 +-
components/dialog/events.md | 4 +-
components/dialog/header.md | 6 +-
components/dialog/integration.md | 4 +-
components/dialog/overview.md | 4 +-
components/dialog/predefined.md | 8 +-
.../drawer/accessibility/wai-aria-support.md | 2 +-
components/drawer/data-bind.md | 6 +-
components/drawer/events.md | 6 +-
components/drawer/icons.md | 2 +-
components/drawer/mini-view.md | 2 +-
components/drawer/modes.md | 4 +-
components/drawer/navigation.md | 2 +-
components/drawer/overview.md | 6 +-
components/drawer/refresh-data.md | 2 +-
components/drawer/selection.md | 2 +-
components/drawer/templates.md | 4 +-
components/dropdownbutton/appearance.md | 10 +-
components/dropdownbutton/events.md | 2 +-
components/dropdownbutton/icons.md | 2 +-
components/dropdownbutton/overview.md | 8 +-
.../accessibility/wai-aria-support.md | 2 +-
components/dropdownlist/appearance.md | 6 +-
components/dropdownlist/data-bind.md | 10 +-
components/dropdownlist/events.md | 18 +-
components/dropdownlist/filter.md | 2 +-
components/dropdownlist/grouping.md | 2 +-
components/dropdownlist/overview.md | 12 +-
components/dropdownlist/pre-select-item.md | 2 +-
components/dropdownlist/refresh-data.md | 6 +-
components/dropdownlist/templates.md | 2 +-
components/dropdownlist/virtualization.md | 4 +-
components/dropzone/overview.md | 2 +-
components/dropzone/template.md | 2 +-
.../editor/accessibility/wai-aria-support.md | 2 +-
components/editor/built-in-tools.md | 14 +-
components/editor/custom-tools.md | 8 +-
components/editor/edit-modes/div.md | 4 +-
components/editor/edit-modes/overview.md | 2 +-
components/editor/events.md | 2 +-
components/editor/overview.md | 4 +-
components/editor/paste-cleanup.md | 2 +-
.../prosemirror-schema/create-new-schema.md | 2 +-
.../modify-default-schema.md | 4 +-
components/editor/toolbar.md | 16 +-
components/filemanager/context-menu.md | 2 +-
.../filemanager/data-binding/flat-data.md | 2 +-
.../data-binding/hierarchical-data.md | 2 +-
.../filemanager/data-binding/overview.md | 2 +-
components/filemanager/events.md | 4 +-
components/filemanager/overview.md | 7 +-
components/filemanager/preview-pane.md | 2 +-
components/filemanager/search.md | 2 +-
components/filemanager/selection.md | 4 +-
components/filemanager/sort.md | 2 +-
components/filemanager/toolbar.md | 2 +-
components/filemanager/upload.md | 2 +-
components/filemanager/views.md | 2 +-
components/fileselect/events.md | 4 +-
components/fileselect/overview.md | 2 +-
components/fileselect/validation.md | 2 +-
.../filter/accessibility/wai-aria-support.md | 2 +-
components/filter/events.md | 2 +-
components/filter/fields/operators.md | 2 +-
components/filter/fields/templates.md | 2 +-
components/filter/integration.md | 89 +--
components/filter/overview.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/flatcolorpicker/events.md | 6 +-
components/flatcolorpicker/overview.md | 6 +-
components/flatcolorpicker/views.md | 8 +-
components/floatinglabel/overview.md | 2 +-
components/floatinglabel/validation.md | 2 +-
components/form/appearance.md | 2 +-
components/form/columns.md | 2 +-
components/form/events.md | 10 +-
components/form/formgroups.md | 4 +-
components/form/formitems/buttons.md | 2 +-
.../form/formitems/formitemstemplate.md | 141 +++--
components/form/formitems/overview.md | 10 +-
components/form/formitems/template.md | 2 +-
components/form/orientation.md | 2 +-
components/form/overview.md | 10 +-
components/form/validation.md | 15 +-
components/gantt/accessibility/overview.md | 2 +-
.../gantt/accessibility/wai-aria-support.md | 8 +-
components/gantt/dependencies/databind.md | 2 +-
components/gantt/dependencies/editing.md | 2 +-
components/gantt/events.md | 2 +-
components/gantt/gantt-tree/columns/bound.md | 2 +-
.../gantt/gantt-tree/columns/command.md | 7 +-
.../gantt-tree/columns/display-format.md | 2 +-
components/gantt/gantt-tree/columns/menu.md | 8 +-
.../gantt/gantt-tree/columns/reorder.md | 2 +-
components/gantt/gantt-tree/columns/resize.md | 2 +-
.../gantt/gantt-tree/columns/visible.md | 6 +-
.../gantt-tree/data-binding/flat-data.md | 2 +-
.../data-binding/hierarchical-data.md | 2 +-
components/gantt/gantt-tree/editing/incell.md | 2 +-
components/gantt/gantt-tree/editing/inline.md | 2 +-
.../gantt/gantt-tree/editing/overview.md | 4 +-
components/gantt/gantt-tree/editing/popup.md | 12 +-
.../gantt/gantt-tree/filter/checkboxlist.md | 2 +-
.../gantt/gantt-tree/filter/filter-menu.md | 8 +-
.../gantt/gantt-tree/filter/filter-row.md | 4 +-
.../gantt/gantt-tree/filter/overview.md | 2 +-
components/gantt/gantt-tree/sorting.md | 2 +-
.../gantt-tree/templates/column-chooser.md | 2 +-
.../gantt-tree/templates/column-header.md | 2 +-
.../gantt/gantt-tree/templates/column.md | 3 +-
.../gantt/gantt-tree/templates/editor.md | 3 +-
.../templates/popup-form-template.md | 4 +-
components/gantt/overview.md | 5 +-
components/gantt/refresh-data.md | 6 +-
components/gantt/state.md | 21 +-
components/gantt/timeline/date-format.md | 4 +-
components/gantt/timeline/editing.md | 2 +-
components/gantt/timeline/overview.md | 2 +-
.../gantt/timeline/templates/dateheader.md | 2 +-
components/gantt/timeline/templates/task.md | 2 +-
.../gantt/timeline/templates/tooltip.md | 5 +-
components/gantt/timeline/views.md | 2 +-
components/gantt/timeline/zooming.md | 2 +-
components/gauges/arc/labels.md | 10 +-
components/gauges/arc/overview.md | 4 +-
components/gauges/arc/pointers.md | 8 +-
components/gauges/arc/scale.md | 12 +-
components/gauges/circular/labels.md | 10 +-
components/gauges/circular/overview.md | 4 +-
components/gauges/circular/pointers.md | 10 +-
components/gauges/circular/scale.md | 10 +-
components/gauges/linear/labels.md | 8 +-
components/gauges/linear/overview.md | 4 +-
components/gauges/linear/pointers.md | 12 +-
components/gauges/linear/ranges.md | 6 +-
components/gauges/linear/scale.md | 12 +-
components/gauges/radial/labels.md | 10 +-
components/gauges/radial/overview.md | 4 +-
components/gauges/radial/pointers.md | 10 +-
components/gauges/radial/ranges.md | 12 +-
components/gauges/radial/scale.md | 12 +-
components/grid/accessibility/overview.md | 2 +-
.../grid/accessibility/wai-aria-support.md | 8 +-
components/grid/columns/auto-generated.md | 10 +-
components/grid/columns/bound.md | 10 +-
components/grid/columns/checkbox.md | 4 +-
components/grid/columns/command.md | 6 +-
components/grid/columns/display-format.md | 2 +-
components/grid/columns/events.md | 4 +-
components/grid/columns/frozen.md | 4 +-
components/grid/columns/menu.md | 9 +-
.../grid/columns/multi-column-headers.md | 2 +-
components/grid/columns/reorder.md | 2 +-
components/grid/columns/resize.md | 2 +-
components/grid/columns/virtual.md | 6 +-
components/grid/columns/visible.md | 10 +-
components/grid/data-binding.md | 8 +-
.../built-in-dialogs/delete-confirmation.md | 2 +-
components/grid/editing/incell.md | 6 +-
components/grid/editing/inline.md | 2 +-
components/grid/editing/overview.md | 11 +-
components/grid/editing/popup.md | 6 +-
components/grid/editing/validation.md | 8 +-
components/grid/events.md | 24 +-
components/grid/export/csv.md | 8 +-
components/grid/export/events.md | 8 +-
components/grid/export/excel.md | 8 +-
components/grid/filter/checkboxlist.md | 4 +-
components/grid/filter/filter-menu.md | 4 +-
components/grid/filter/filter-row.md | 4 +-
components/grid/filter/overview.md | 4 +-
components/grid/filter/searchbox.md | 8 +-
components/grid/grouping/aggregates.md | 6 +-
components/grid/grouping/load-on-demand.md | 10 +-
components/grid/grouping/overview.md | 6 +-
components/grid/hierarchy.md | 4 +-
components/grid/loading-animation.md | 2 +-
components/grid/manual-operations.md | 18 +-
components/grid/overview.md | 16 +-
components/grid/paging.md | 6 +-
components/grid/refresh-data.md | 12 +-
components/grid/row-drag-drop.md | 48 +-
components/grid/selection/cells.md | 6 +-
components/grid/selection/rows.md | 6 +-
components/grid/sizing.md | 2 +-
components/grid/sorting.md | 8 +-
components/grid/state.md | 22 +-
components/grid/templates/column-chooser.md | 2 +-
components/grid/templates/column-footer.md | 2 +-
.../grid/templates/column-group-footer.md | 2 +-
components/grid/templates/column-header.md | 2 +-
components/grid/templates/column.md | 8 +-
components/grid/templates/editor.md | 12 +-
components/grid/templates/filter.md | 6 +-
components/grid/templates/group-header.md | 2 +-
components/grid/templates/no-data-template.md | 2 +-
components/grid/templates/pager.md | 2 +-
.../grid/templates/popup-buttons-template.md | 2 +-
.../grid/templates/popup-form-template.md | 4 +-
components/grid/templates/row.md | 2 +-
components/grid/toolbar.md | 6 +-
components/grid/virtual-scrolling.md | 10 +-
components/gridlayout/items.md | 10 +-
components/gridlayout/overview.md | 2 +-
components/listbox/connect.md | 2 +-
components/listbox/drag-drop.md | 2 +-
components/listbox/events.md | 6 +-
components/listbox/overview.md | 6 +-
components/listbox/selection.md | 2 +-
components/listbox/templates.md | 2 +-
components/listbox/toolbar.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/listview/editing.md | 2 +-
components/listview/events.md | 10 +-
components/listview/manual-operations.md | 4 +-
components/listview/overview.md | 2 +-
components/listview/paging.md | 4 +-
components/listview/refresh-data.md | 6 +-
components/listview/templates.md | 10 +-
components/loader/appearance.md | 8 +-
components/loader/overview.md | 2 +-
components/loadercontainer/appearance.md | 12 +-
components/loadercontainer/overview.md | 6 +-
components/loadercontainer/template.md | 4 +-
components/map/events.md | 10 +-
components/map/layers/bubble.md | 2 +-
components/map/layers/marker.md | 12 +-
components/map/layers/tile.md | 2 +-
components/map/overview.md | 6 +-
.../accessibility/wai-aria-support.md | 2 +-
components/maskedtextbox/appearance.md | 6 +-
components/maskedtextbox/events.md | 6 +-
components/maskedtextbox/mask-prompt.md | 10 +-
components/maskedtextbox/overview.md | 10 +-
components/mediaquery/events.md | 2 +-
components/mediaquery/integration.md | 8 +-
components/mediaquery/overview.md | 2 +-
.../menu/accessibility/wai-aria-support.md | 2 +-
components/menu/data-binding/flat-data.md | 2 +-
.../menu/data-binding/hierarchical-data.md | 2 +-
components/menu/data-binding/overview.md | 4 +-
components/menu/events.md | 4 +-
components/menu/icons.md | 2 +-
components/menu/navigation.md | 2 +-
components/menu/orientation.md | 2 +-
components/menu/overview.md | 4 +-
components/menu/refresh-data.md | 2 +-
components/menu/show-hide-behavior.md | 2 +-
components/menu/templates.md | 6 +-
components/multicolumncombobox/appearance.md | 6 +-
.../multicolumncombobox/columns/overview.md | 6 +-
.../multicolumncombobox/columns/templates.md | 4 +-
.../multicolumncombobox/custom-value.md | 4 +-
components/multicolumncombobox/data-bind.md | 11 +
components/multicolumncombobox/events.md | 20 +-
components/multicolumncombobox/filter.md | 4 +-
components/multicolumncombobox/grouping.md | 2 +-
components/multicolumncombobox/overview.md | 6 +-
components/multicolumncombobox/templates.md | 4 +-
.../multicolumncombobox/virtualization.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/multiselect/appearance.md | 6 +-
components/multiselect/data-bind.md | 12 +-
components/multiselect/events.md | 16 +-
components/multiselect/filter.md | 2 +-
components/multiselect/grouping.md | 2 +-
components/multiselect/overview.md | 8 +-
components/multiselect/pre-select-items.md | 2 +-
components/multiselect/refresh-data.md | 8 +-
components/multiselect/tag-mode.md | 6 +-
components/multiselect/templates.md | 4 +-
components/multiselect/virtualization.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/notification/appearance.md | 20 +-
components/notification/open-close-hide.md | 22 +-
components/notification/overview.md | 6 +-
.../notification/stacked-notifications.md | 2 +-
components/notification/templates.md | 6 +-
.../accessibility/wai-aria-support.md | 2 +-
components/numerictextbox/appearance.md | 6 +-
components/numerictextbox/events.md | 6 +-
components/numerictextbox/overview.md | 10 +-
.../pager/accessibility/wai-aria-support.md | 2 +-
components/pager/appearance.md | 2 +-
components/pager/events.md | 4 +-
components/pager/overview.md | 6 +-
components/panelbar/data-binding/flat-data.md | 2 +-
.../data-binding/hierarchical-data.md | 2 +-
components/panelbar/data-binding/overview.md | 6 +-
components/panelbar/events.md | 8 +-
components/panelbar/expanded-items.md | 6 +-
components/panelbar/icons.md | 2 +-
components/panelbar/navigation.md | 2 +-
components/panelbar/overview.md | 5 +-
components/panelbar/refresh-data.md | 6 +-
components/panelbar/templates/content.md | 2 +-
components/panelbar/templates/header.md | 2 +-
.../accessibility/wai-aria-support.md | 4 +-
components/pdfviewer/events.md | 2 +-
components/pdfviewer/overview.md | 4 +-
components/pdfviewer/toolbar.md | 2 +-
components/pivotgrid/data-binding.md | 4 +-
components/pivotgrid/overview.md | 4 +-
components/pivotgrid/templates.md | 2 +-
components/popover/animation.md | 2 +-
components/popover/overview.md | 4 +-
components/popover/position-collision.md | 2 +-
components/popup/animation.md | 2 +-
components/popup/overview.md | 4 +-
components/popup/position-collision.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/progressbar/indeterminate.md | 2 +-
components/progressbar/label.md | 2 +-
components/progressbar/overview.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/radiogroup/appearance.md | 2 +-
components/radiogroup/data-bind.md | 10 +-
components/radiogroup/events.md | 6 +-
components/radiogroup/label-position.md | 2 +-
components/radiogroup/layout.md | 4 +-
components/radiogroup/overview.md | 4 +-
components/radiogroup/templates.md | 2 +-
.../accessibility/wai-aria-support.md | 4 +-
components/rangeslider/decimals.md | 4 +-
components/rangeslider/events.md | 4 +-
components/rangeslider/label-template.md | 6 +-
components/rangeslider/overview.md | 4 +-
components/rangeslider/steps.md | 4 +-
components/rating/events.md | 2 +-
components/rating/label.md | 2 +-
components/rating/overview.md | 2 +-
components/rating/precision.md | 4 +-
components/rating/selection.md | 4 +-
components/rating/templates.md | 2 +-
components/rootcomponent/overview.md | 2 +-
.../per-component-interactivity-location.md | 8 +-
components/sankey/data-bind.md | 2 +-
components/sankey/elements/labels.md | 2 +-
components/sankey/elements/legend.md | 2 +-
components/sankey/elements/links.md | 2 +-
components/sankey/elements/nodes.md | 2 +-
components/sankey/elements/title.md | 2 +-
components/sankey/elements/tooltip.md | 2 +-
components/sankey/events.md | 2 +-
components/sankey/overview.md | 2 +-
.../accessibility/wai-aria-support.md | 4 +-
components/scheduler/data-bind.md | 4 +-
.../editing/delete-confirmation-dialog.md | 2 +-
.../scheduler/editing/edit-appointments.md | 2 +-
.../editing/edit-popup-customization.md | 2 +-
components/scheduler/events.md | 26 +-
components/scheduler/manual-operations.md | 4 +-
components/scheduler/navigation.md | 3 +-
components/scheduler/overview.md | 4 +-
components/scheduler/refresh-data.md | 4 +-
components/scheduler/resource-grouping.md | 10 +-
components/scheduler/resources.md | 8 +-
components/scheduler/templates/appointment.md | 2 +-
components/scheduler/templates/dateheader.md | 2 +-
.../templates/resource-grouping-header.md | 2 +-
components/scheduler/templates/slot.md | 2 +-
components/scheduler/toolbar.md | 2 +-
components/scheduler/views/agenda.md | 2 +-
components/scheduler/views/day.md | 2 +-
components/scheduler/views/month.md | 2 +-
components/scheduler/views/multiday.md | 2 +-
components/scheduler/views/overview.md | 2 +-
components/scheduler/views/timeline.md | 2 +-
components/scheduler/views/week.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/signature/appearance.md | 10 +-
components/signature/events.md | 2 +-
components/signature/overview.md | 6 +-
components/skeleton/appearance.md | 4 +-
components/skeleton/overview.md | 2 +-
.../slider/accessibility/wai-aria-support.md | 2 +-
components/slider/decimals.md | 4 +-
components/slider/events.md | 4 +-
components/slider/label-template.md | 6 +-
components/slider/overview.md | 4 +-
components/slider/steps.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/splitbutton/appearance.md | 10 +-
components/splitbutton/events.md | 2 +-
components/splitbutton/icons.md | 2 +-
components/splitbutton/overview.md | 6 +-
components/splitter/accessibility/overview.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/splitter/events.md | 12 +-
components/splitter/orientation.md | 4 +-
components/splitter/overview.md | 4 +-
components/splitter/panes.md | 4 +-
components/splitter/state.md | 4 +-
components/spreadsheet/events.md | 2 +-
components/spreadsheet/overview.md | 4 +-
components/spreadsheet/tools.md | 6 +-
components/stacklayout/layout.md | 8 +-
components/stacklayout/overview.md | 4 +-
.../stepper/accessibility/wai-aria-support.md | 2 +-
components/stepper/display-modes.md | 4 +-
components/stepper/events.md | 4 +-
components/stepper/linear-flow.md | 2 +-
components/stepper/orientation.md | 4 +-
components/stepper/overview.md | 2 +-
components/stepper/step-template.md | 2 +-
components/stepper/steps/indicators.md | 4 +-
components/stepper/steps/labels.md | 6 +-
components/stepper/steps/overview.md | 4 +-
components/stepper/steps/state.md | 6 +-
components/stepper/steps/validation.md | 8 +-
components/stockchart/crosshairs.md | 6 +-
components/stockchart/data-bind.md | 4 +-
components/stockchart/events.md | 4 +-
.../stockchart/labels-template-and-format.md | 6 +-
components/stockchart/navigator.md | 4 +-
components/stockchart/overview.md | 4 +-
components/stockchart/templates.md | 2 +-
components/stockchart/tooltip/overview.md | 8 +-
components/stockchart/tooltip/shared.md | 4 +-
components/stockchart/types/area.md | 4 +-
components/stockchart/types/candlestick.md | 4 +-
components/stockchart/types/column.md | 4 +-
components/stockchart/types/line.md | 2 +-
components/stockchart/types/ohlc.md | 4 +-
.../switch/accessibility/wai-aria-support.md | 2 +-
components/switch/appearance.md | 6 +-
components/switch/events.md | 6 +-
components/switch/labels.md | 4 +-
components/switch/overview.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/tabstrip/active-tab-index.md | 2 +-
components/tabstrip/events.md | 4 +-
components/tabstrip/header-template.md | 2 +-
components/tabstrip/overview.md | 6 +-
components/tabstrip/persist-content.md | 2 +-
components/tabstrip/scrollable-tabs.md | 9 +-
components/tabstrip/tabs-alignment.md | 2 +-
components/tabstrip/tabs-collection.md | 2 +-
components/tabstrip/tabs-configuration.md | 6 +-
components/tabstrip/tabs-position.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/textarea/appearance.md | 6 +-
components/textarea/events.md | 6 +-
components/textarea/overview.md | 4 +-
.../textbox/accessibility/wai-aria-support.md | 2 +-
components/textbox/appearance.md | 6 +-
components/textbox/events.md | 10 +-
components/textbox/overview.md | 12 +-
.../tilelayout/accessibility/overview.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/tilelayout/events.md | 4 +-
components/tilelayout/overview.md | 4 +-
components/tilelayout/reorder.md | 4 +-
components/tilelayout/resize.md | 2 +-
components/tilelayout/state.md | 4 +-
components/tilelayout/tile-content.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/timepicker/appearance.md | 6 +-
components/timepicker/events.md | 14 +-
components/timepicker/increment-steps.md | 2 +-
components/timepicker/overview.md | 4 +-
.../accessibility/wai-aria-support.md | 2 +-
components/togglebutton/appearance.md | 8 +-
components/togglebutton/events.md | 4 +-
components/togglebutton/icons.md | 2 +-
components/togglebutton/overview.md | 4 +-
.../toolbar/accessibility/wai-aria-support.md | 2 +-
components/toolbar/appearance.md | 4 +-
components/toolbar/built-in-tools.md | 10 +-
components/toolbar/events.md | 8 +-
components/toolbar/overview.md | 4 +-
components/toolbar/separators.md | 2 +-
components/toolbar/templated-item.md | 2 +-
.../tooltip/accessibility/wai-aria-support.md | 2 +-
components/tooltip/overview.md | 2 +-
components/tooltip/position.md | 2 +-
components/tooltip/show-event.md | 2 +-
components/tooltip/template.md | 10 +-
components/treelist/accessibility/overview.md | 2 +-
.../accessibility/wai-aria-support.md | 6 +-
components/treelist/aggregates.md | 2 +-
components/treelist/columns/auto-generated.md | 8 +-
components/treelist/columns/bound.md | 2 +-
components/treelist/columns/checkbox.md | 4 +-
components/treelist/columns/command.md | 3 +-
components/treelist/columns/display-format.md | 2 +-
components/treelist/columns/events.md | 2 +-
components/treelist/columns/frozen.md | 2 +-
components/treelist/columns/menu.md | 6 +-
.../treelist/columns/multi-column-headers.md | 2 +-
components/treelist/columns/reorder.md | 2 +-
components/treelist/columns/resize.md | 2 +-
components/treelist/columns/virtual.md | 4 +-
components/treelist/columns/visible.md | 8 +-
components/treelist/data-binding/flat-data.md | 2 +-
.../data-binding/hierarchical-data.md | 2 +-
components/treelist/data-binding/interface.md | 2 +-
.../treelist/data-binding/load-on-demand.md | 4 +-
.../built-in-dialogs/delete-confirmation.md | 2 +-
components/treelist/editing/incell.md | 6 +-
components/treelist/editing/inline.md | 2 +-
components/treelist/editing/overview.md | 7 +-
components/treelist/editing/popup.md | 4 +-
components/treelist/editing/validation.md | 6 +-
components/treelist/events.md | 22 +-
components/treelist/filter/checkboxlist.md | 4 +-
components/treelist/filter/filter-menu.md | 6 +-
components/treelist/filter/filter-row.md | 6 +-
components/treelist/filter/overview.md | 2 +-
components/treelist/filter/searchbox.md | 6 +-
components/treelist/overview.md | 4 +-
components/treelist/paging.md | 6 +-
components/treelist/refresh-data.md | 6 +-
components/treelist/row-drag-drop.md | 34 +-
components/treelist/selection/cells.md | 4 +-
components/treelist/selection/rows.md | 8 +-
components/treelist/sorting.md | 4 +-
components/treelist/state.md | 24 +-
.../treelist/templates/column-chooser.md | 2 +-
.../treelist/templates/column-header.md | 2 +-
components/treelist/templates/column.md | 2 +-
components/treelist/templates/editor.md | 2 +-
components/treelist/templates/filter.md | 51 +-
.../treelist/templates/no-data-template.md | 2 +-
components/treelist/templates/pager.md | 2 +-
.../templates/popup-buttons-template.md | 2 +-
.../treelist/templates/popup-form-template.md | 2 +-
components/treelist/templates/row.md | 2 +-
components/treelist/toolbar.md | 4 +-
components/treelist/virtual-scrolling.md | 2 +-
components/treeview/accessibility/overview.md | 2 +-
.../accessibility/wai-aria-support.md | 2 +-
components/treeview/checkboxes/multiple.md | 6 +-
components/treeview/checkboxes/overview.md | 12 +-
components/treeview/checkboxes/single.md | 6 +-
components/treeview/data-binding/flat-data.md | 2 +-
.../data-binding/hierarchical-data.md | 4 +-
.../treeview/data-binding/load-on-demand.md | 12 +-
components/treeview/data-binding/overview.md | 10 +-
components/treeview/drag-drop.md | 38 +-
components/treeview/events.md | 2 +-
components/treeview/expanded-items.md | 2 +-
components/treeview/icons.md | 2 +-
components/treeview/navigation.md | 2 +-
components/treeview/overview.md | 4 +-
components/treeview/refresh-data.md | 6 +-
components/treeview/selection/multiple.md | 6 +-
components/treeview/selection/overview.md | 2 +-
components/treeview/selection/single.md | 4 +-
components/treeview/templates.md | 8 +-
components/upload/events.md | 36 +-
components/upload/overview.md | 2 +-
components/upload/templates.md | 5 +-
components/validation/message.md | 8 +-
components/validation/overview.md | 6 +-
components/validation/summary.md | 8 +-
components/validation/tooltip.md | 10 +-
components/window/accessibility/overview.md | 2 +-
.../window/accessibility/wai-aria-support.md | 4 +-
components/window/actions.md | 6 +-
components/window/draggable.md | 2 +-
components/window/events.md | 10 +-
components/window/modal.md | 2 +-
components/window/overview.md | 4 +-
components/window/position.md | 10 +-
components/window/size.md | 6 +-
.../wizard/accessibility/wai-aria-support.md | 2 +-
components/wizard/events.md | 6 +-
components/wizard/form-integration.md | 2 +-
components/wizard/layout.md | 2 +-
components/wizard/overview.md | 2 +-
components/wizard/structure/buttons.md | 10 +-
components/wizard/structure/content.md | 2 +-
components/wizard/structure/stepper.md | 16 +-
components/wizard/templates.md | 2 +-
deployment/ci-cd-build-server.md | 10 +-
deployment/nuget-keys.md | 20 +-
deployment/overview.md | 2 +-
deployment/troubleshooting.md | 73 ++-
docs-builder.yml | 519 ++++++++++++++++++
getting-started/client-blazor.md | 18 +-
getting-started/hybrid-blazor.md | 6 +-
getting-started/repl/intergration.md | 8 +-
getting-started/server-blazor.md | 20 +-
.../convert-project-wizard.md | 8 +-
.../vs-code-integration/introduction.md | 3 -
.../vs-code-integration/new-project-wizard.md | 2 -
getting-started/vs-integration/options.md | 2 +-
.../vs-integration/upgrade-wizard.md | 2 +-
getting-started/web-app.md | 20 +-
getting-started/what-you-need.md | 4 +-
globalization/localization.md | 8 +-
hybrid-blazor-apps.md | 4 +-
images/avatar-ninja.svg | 61 ++
images/ninja-no-results.svg | 47 ++
images/pdf-cover.png | Bin 0 -> 116648 bytes
installation/nuget.md | 50 +-
integrations/document-processing-libraries.md | 2 +-
introduction.md | 148 ++++-
...imationcontainer-close-on-outside-click.md | 2 +-
knowledge-base/badge-container-no-children.md | 2 +-
.../button-change-icons-position.md | 2 +-
.../buttongroup-mixed-selection-mode.md | 2 +-
knowledge-base/buttongroup-vertical.md | 2 +-
knowledge-base/calendar-allowed-dates.md | 2 +-
.../calendar-always-selected-dates.md | 2 +-
knowledge-base/calendar-disable-weekends.md | 2 +-
knowledge-base/calendar-hide-weekends.md | 2 +-
.../calendar-kb-customize-multiview-header.md | 2 +-
.../calendar-show-days-from-current-month.md | 2 +-
knowledge-base/calendar-views-wrap.md | 2 +-
knowledge-base/card-icon-buttons-too-large.md | 3 +-
...arousel-thumbnail-scrollable-navigation.md | 2 +-
knowledge-base/cdn-fallback.md | 8 +-
knowledge-base/change-theme-runtime.md | 13 +-
knowledge-base/chart-add-data-table.md | 2 +-
knowledge-base/chart-crossing-values.md | 2 +-
knowledge-base/chart-crowded-grid-lines.md | 2 +-
knowledge-base/chart-crowded-labels.md | 10 +-
knowledge-base/chart-custom-legend.md | 2 +-
.../chart-customize-separate-markers.md | 6 +-
knowledge-base/chart-datatable-bind.md | 4 +-
.../chart-draw-horizontal-vertical-lines.md | 4 +-
knowledge-base/chart-dynamic-series.md | 2 +-
knowledge-base/chart-format-percent.md | 2 +-
knowledge-base/chart-localized-labels.md | 2 +-
knowledge-base/chart-mark-series-on-click.md | 2 +-
.../chart-newtonsoft-seialization-settings.md | 14 +-
knowledge-base/chart-print-chart-only.md | 2 +-
.../chart-remove-excess-whitespace.md | 2 +-
knowledge-base/chart-responsive.md | 2 +-
knowledge-base/chart-series-gradient-color.md | 2 +-
.../chart-stacked-series-sum-label.md | 4 +-
.../chart-style-the-series-labels.md | 2 +-
knowledge-base/chart-transparent-marker.md | 2 +-
knowledge-base/checkbox-custom-icon.md | 2 +-
knowledge-base/combo-debounce-onread.md | 2 +-
.../combobox-case-insensitive-matching.md | 4 +-
knowledge-base/combobox-clear-button-click.md | 2 +-
knowledge-base/combobox-not-closing.md | 4 +-
.../common-animate-content-change.md | 2 +-
knowledge-base/common-animations-decrease.md | 2 +-
...erties-of-null-reading-addeventlistener.md | 4 +-
.../common-catch-all-exceptions-globally.md | 8 +-
...ommon-change-selected-localization-keys.md | 6 +-
knowledge-base/common-css-isolation.md | 27 +-
.../common-custom-font-icons-fail.md | 6 +-
knowledge-base/common-dynamic-refs.md | 2 +-
...it-wrap-reuse-telerik-blazor-components.md | 6 +-
...ommon-kb-render-fragment-parameter-null.md | 8 +-
.../common-lazy-load-assemblies-wasm.md | 67 +--
knowledge-base/common-navigate-from-button.md | 2 +-
knowledge-base/common-net8-sections.md | 6 +-
...-breaks-datasourcerequest-serialization.md | 39 +-
.../common-null-value-parameter-format.md | 12 +-
knowledge-base/common-onchange-fires-twice.md | 2 +-
...-pivot-not-compatible-with-netframework.md | 4 +-
knowledge-base/common-panel-control.md | 2 +-
knowledge-base/common-readonly-properties.md | 4 +-
knowledge-base/common-stack-grid-layout.md | 8 +-
knowledge-base/common-struct-error.md | 23 +-
.../common-telerik-themes-libman.md | 2 +-
knowledge-base/common-time-duration-input.md | 2 +-
.../common-upgrade-breaks-css-theme-styles.md | 2 +-
.../common-validation-error-in-tooltip.md | 6 +-
knowledge-base/common-wasm-prerendering.md | 2 +-
knowledge-base/contextmenu-disable-focus.md | 2 +-
knowledge-base/contextmenu-no-data-source.md | 2 +-
knowledge-base/contextmenu-treeview-items.md | 2 +-
.../date-input-picker-datetimeoffset.md | 6 +-
.../date-input-select-am-pm-on-keypress.md | 6 +-
.../datepicker-calendar-templates.md | 2 +-
knowledge-base/datepicker-hide-input.md | 2 +-
...tepicker-kb-change-starting-day-of-week.md | 2 +-
knowledge-base/datepicker-popup-resizing.md | 4 +-
.../datepicker-select-months-only.md | 2 +-
.../daterangepicker-css-customization.md | 2 +-
knowledge-base/daterangepicker-hide-labels.md | 2 +-
.../daterangepicker-reposition-labels.md | 2 +-
...ialogfactory-alert-confirm-prompt-width.md | 2 +-
...enable-calendar-popup-datepicker-blazor.md | 2 +-
knowledge-base/dpl-allocate-memory-error.md | 12 +-
...l-version-conflict-detected-telerik-zip.md | 20 +-
.../drawer-add-expand-collapse-handle.md | 2 +-
knowledge-base/drawer-add-tooltip.md | 2 +-
knowledge-base/drawer-chart-refresh.md | 2 +-
.../drawer-click-in-dropdown-closes-drawer.md | 2 +-
knowledge-base/drawer-prevent-collapse.md | 2 +-
knowledge-base/drawer-small-screen.md | 2 +-
.../dropdown-all-items-are-selected.md | 2 +-
knowledge-base/dropdown-cascading.md | 6 +-
knowledge-base/dropdown-kb-bind-to-enum.md | 6 +-
.../dropdown-no-default-text-on-selection.md | 2 +-
...pdownlist-change-icon-when-popup-opened.md | 2 +-
...ropdownlist-custom-sorting-order-groups.md | 2 +-
knowledge-base/dropdownlist-kb-nodatatext.md | 2 +-
.../dropdowns-custom-item-background.md | 2 +-
knowledge-base/dropdowns-get-model.md | 8 +-
.../dropdowns-readonly-struct-error.md | 23 +-
.../dropdowns-search-in-multiple-fields.md | 2 +-
knowledge-base/editor-add-icons.md | 4 +-
knowledge-base/editor-add-text-templates.md | 2 +-
.../editor-convert-to-plain-text.md | 2 +-
knowledge-base/editor-copy-paste.md | 2 +-
knowledge-base/editor-default-font.md | 4 +-
knowledge-base/editor-get-selection.md | 8 +-
knowledge-base/editor-height-safari.md | 2 +-
knowledge-base/editor-invalid-state.md | 2 +-
knowledge-base/editor-missing-br-in-value.md | 2 +-
.../editor-paragraph-in-list-item.md | 2 +-
knowledge-base/editor-print-content.md | 2 +-
knowledge-base/fileselect-autofac.md | 10 +-
knowledge-base/fileselect-loader.md | 2 +-
knowledge-base/fileselect-stream-exception.md | 6 +-
knowledge-base/font-icons-not-rendering.md | 4 +-
knowledge-base/form-chrome-autofill.md | 4 +-
knowledge-base/form-focus-formitem.md | 2 +-
knowledge-base/form-justify-formbuttons.md | 2 +-
knowledge-base/form-keep-fields-order.md | 2 +-
.../form-stop-cascading-editcontext.md | 2 +-
.../form-use-items-in-custom-component.md | 10 +-
.../gantt-different-colors-for-tasks.md | 2 +-
.../gantt-tooltip-access-model-fields.md | 4 +-
knowledge-base/gauge-pointer-tooltip.md | 2 +-
knowledge-base/grid-add-column-from-code.md | 2 +-
knowledge-base/grid-add-edit-state.md | 2 +-
.../grid-add-new-row-navigate-last-page.md | 2 +-
.../grid-adjust-height-with-browser.md | 10 +-
.../grid-aggregates-and-datatable.md | 4 +-
.../grid-align-columns-hierarchy.md | 2 +-
.../grid-allow-prevent-row-selection.md | 2 +-
knowledge-base/grid-autofit-columns.md | 2 +-
...bind-navigation-property-complex-object.md | 4 +-
.../grid-binding-to-expando-object.md | 6 +-
.../grid-bootstrap-flex-width-issue.md | 4 +-
.../grid-cannot-drag-to-empty-grid.md | 2 +-
.../grid-cascade-dropdowns-for-fields.md | 2 +-
knowledge-base/grid-center-checkbox-column.md | 8 +-
.../grid-center-column-header-content.md | 2 +-
knowledge-base/grid-change-border-color.md | 4 +-
...change-editable-attribute-update-create.md | 4 +-
.../grid-change-expand-collapse-icons.md | 7 +-
knowledge-base/grid-change-font-size.md | 4 +-
.../grid-click-header-template-sorts.md | 4 +-
.../grid-collapse-groups-by-default.md | 4 +-
...grid-column-in-custom-component-is-last.md | 8 +-
knowledge-base/grid-column-state.md | 4 +-
.../grid-compact-grid-with-small-elements.md | 4 +-
.../grid-conditional-cell-background.md | 6 +-
.../grid-conditional-expand-button.md | 2 +-
...rid-conditional-toolbar-detail-template.md | 2 +-
.../grid-csv-export-change-field-delimiter.md | 2 +-
...ell-formatting-with-radspreadprocessing.md | 2 +-
...rmatting-with-radspreadstreamprocessing.md | 2 +-
knowledge-base/grid-custom-filter-menu.md | 7 +-
knowledge-base/grid-custom-grouping-order.md | 2 +-
...id-customize-delete-confirmation-dialog.md | 4 +-
.../grid-customize-dragged-dropped-row.md | 2 +-
...ize-hierarchy-expand-column-blazor-grid.md | 2 +-
.../grid-custommetadata-validation-issue.md | 2 +-
knowledge-base/grid-debounce-operations.md | 4 +-
.../grid-default-value-for-new-row.md | 6 +-
knowledge-base/grid-detailtemplate-renders.md | 8 +-
...ferent-group-and-subgroup-header-styles.md | 2 +-
.../grid-doubleclick-starts-editing.md | 2 +-
.../grid-drag-drop-different-models.md | 2 +-
.../grid-drag-drop-in-different-components.md | 6 +-
.../grid-dynamic-column-template.md | 2 +-
.../grid-dynamic-columns-with-static.md | 4 +-
...amically-adjusting-column-header-styles.md | 2 +-
knowledge-base/grid-edit-in-hierarchy.md | 2 +-
.../grid-edit-on-row-double-click.md | 4 +-
knowledge-base/grid-edit-selected-item.md | 4 +-
knowledge-base/grid-expand-button-tooltip.md | 2 +-
...ollapse-detail-onclick-or-ondoubleclick.md | 4 +-
knowledge-base/grid-expand-only-current.md | 2 +-
knowledge-base/grid-export-selected-rows.md | 2 +-
.../grid-filter-by-selected-items.md | 10 +-
knowledge-base/grid-filter-column-list.md | 2 +-
knowledge-base/grid-filter-date-only.md | 8 +-
knowledge-base/grid-filter-edit-enum.md | 4 +-
.../grid-filter-operator-dropdown.md | 6 +-
.../grid-filtering-null-reference.md | 5 +-
.../grid-filterrow-bool-customization.md | 2 +-
knowledge-base/grid-force-refresh.md | 2 +-
knowledge-base/grid-get-filtered-data.md | 4 +-
knowledge-base/grid-get-index-of-grid-row.md | 2 +-
.../grid-handle-empty-popup-footer.md | 4 +-
knowledge-base/grid-hide-header-row.md | 2 +-
.../grid-hide-pager-when-no-data.md | 2 +-
.../grid-hide-vertical-scrollbar.md | 2 +-
knowledge-base/grid-hierarchy-responsive.md | 2 +-
...d-horizontal-scrolling-no-column-widths.md | 2 +-
knowledge-base/grid-import-excel.md | 2 +-
.../grid-incell-add-new-row-enter.md | 2 +-
.../grid-incell-dropdown-opening-behavior.md | 4 +-
knowledge-base/grid-inline-edit-form.md | 2 +-
.../grid-json-serializer-null-membertype.md | 20 +-
.../grid-kb-only-one-filtermenu-option.md | 26 +-
.../grid-large-skip-breaks-virtualization.md | 2 +-
knowledge-base/grid-line-breaks.md | 2 +-
.../grid-multiple-child-grids-per-item.md | 4 +-
knowledge-base/grid-multiselect-editor.md | 4 +-
knowledge-base/grid-no-childcontent.md | 2 +-
...rid-number-formatting-of-the-csv-export.md | 2 +-
.../grid-one-expanded-detail-template.md | 2 +-
.../grid-pager-top-toolbar-bottom.md | 4 +-
.../grid-popup-edit-form-columns.md | 2 +-
...-popup-edit-form-disable-label-wrapping.md | 2 +-
knowledge-base/grid-popup-edit-title.md | 2 +-
knowledge-base/grid-rebind-timer.md | 2 +-
.../grid-right-align-header-cells.md | 2 +-
knowledge-base/grid-row-numbers.md | 2 +-
.../grid-row-selection-in-column-template.md | 2 +-
...ow-template-simulate-built-in-functions.md | 2 +-
knowledge-base/grid-rows-text-ellipsis.md | 2 +-
.../grid-save-load-state-localstorage.md | 6 +-
knowledge-base/grid-scroll-to-selected-row.md | 2 +-
knowledge-base/grid-search-button-click.md | 4 +-
knowledge-base/grid-search-column-menu.md | 2 +-
.../grid-search-highlight-results.md | 2 +-
.../grid-search-in-hidden-fields.md | 2 +-
knowledge-base/grid-search-numeric-fields.md | 4 +-
knowledge-base/grid-search-startswith.md | 4 +-
knowledge-base/grid-select-on-incell-edit.md | 6 +-
...id-select-or-deselect-item-on-row-click.md | 2 +-
...rid-set-all-page-size-option-as-default.md | 4 +-
.../grid-show-confirm-cancel-dialog.md | 4 +-
knowledge-base/grid-sort-descending.md | 4 +-
.../grid-sort-from-column-menu-only.md | 2 +-
knowledge-base/grid-sort-grouped-column.md | 2 +-
.../grid-state-filter-nullable-bool.md | 2 +-
knowledge-base/grid-static-group.md | 8 +-
knowledge-base/grid-style-filtered-columns.md | 2 +-
knowledge-base/grid-three-level-hierarchy.md | 2 +-
knowledge-base/grid-transposed.md | 2 +-
.../grid-virtual-scrolling-not-working.md | 2 +-
.../grid-virtualization-many-records.md | 4 +-
.../grid-which-cell-context-menu.md | 2 +-
.../grid-wrap-and-center-column-text.md | 2 +-
knowledge-base/grids-foreign-key.md | 2 +-
...ierarchical-breadcrumb-dropdowns-blazor.md | 2 +-
knowledge-base/in-place-editor.md | 8 +-
knowledge-base/inputs-align-text-right.md | 2 +-
knowledge-base/inputs-change-font-size.md | 2 +-
.../inputs-clear-selection-value.md | 10 +-
knowledge-base/inputs-disable-copy-paste.md | 2 +-
knowledge-base/inputs-floating-label.md | 2 +-
.../inputs-handle-keyboard-events.md | 4 +-
.../inputs-open-programmatically.md | 2 +-
knowledge-base/inputs-set-focus.md | 4 +-
.../inputs-validation-child-component.md | 10 +-
knowledge-base/listbox-checkbox-selection.md | 4 +-
knowledge-base/listbox-filtering.md | 2 +-
.../listbox-scroll-to-selected-item.md | 2 +-
knowledge-base/listview-justify-items.md | 2 +-
.../listview-kb-display-items-horizontally.md | 2 +-
knowledge-base/listview-popup-editing.md | 2 +-
knowledge-base/listview-searchbox.md | 2 +-
.../loader-container-center-in-viewport.md | 2 +-
knowledge-base/loader-inside-button.md | 4 +-
knowledge-base/map-custom-image.md | 2 +-
knowledge-base/menu-authorize-view.md | 2 +-
knowledge-base/menu-center-items.md | 2 +-
knowledge-base/menu-custom-styling.md | 2 +-
knowledge-base/menu-megamenu.md | 2 +-
knowledge-base/multicolumncombobox-grid.md | 4 +-
knowledge-base/multiselect-add-new-item.md | 2 +-
...tiselect-always-select-item-limit-total.md | 4 +-
.../multiselect-checkbox-in-dropdown.md | 4 +-
knowledge-base/multiselect-limit-selection.md | 2 +-
.../multiselect-selected-items-order.md | 2 +-
knowledge-base/nest-render-fragment.md | 2 +-
.../notification-custom-model-data.md | 2 +-
.../notification-custom-position.md | 4 +-
knowledge-base/notification-keep-on-hover.md | 2 +-
.../notification-single-app-instance.md | 16 +-
.../numeric-textbox-kb-zero-decimals.md | 2 +-
.../numerictextbox-disable-arrows.md | 2 +-
.../numerictextbox-percentage-range.md | 6 +-
...textbox-scientific-format-small-numbers.md | 6 +-
knowledge-base/pager-dropdown-width.md | 2 +-
.../pickers-readonly-hidden-input.md | 2 +-
.../progressbar-add-multiple-labels.md | 2 +-
knowledge-base/radiogroup-bind-to-enum.md | 2 +-
knowledge-base/radiogroup-inline-style.md | 4 +-
knowledge-base/radiogroup-like-buttongroup.md | 4 +-
knowledge-base/requires-valueexpression.md | 20 +-
.../root-component-null-reference.md | 16 +-
...ally-disable-drag-for-some-appointments.md | 4 +-
...xt-menu-on-appointments-and-empty-slots.md | 2 +-
knowledge-base/scheduler-display-allday.md | 2 +-
...cheduler-hide-month-cells-in-month-view.md | 2 +-
.../scheduler-many-colors-for-appointments.md | 2 +-
.../signature-relative-width-height.md | 2 +-
.../slider-max-parameter-zero-error.md | 2 +-
...itbutton-dynamic-primary-change-onclick.md | 2 +-
.../splitter-save-and-load-state.md | 4 +-
...ind-to-json-ienumerable-list-collection.md | 2 +-
knowledge-base/spreadsheet-get-cell-values.md | 2 +-
.../switch-change-background-color.md | 2 +-
.../switch-display-labels-in-bootstrap.md | 4 +-
.../switch-strecth-expand-resize.md | 2 +-
...ip-customize-selected-tab-border-blazor.md | 2 +-
knowledge-base/tabstrip-remove-tab.md | 2 +-
.../textarea-autosize-max-height.md | 2 +-
...extarea-maxlength-and-character-counter.md | 4 +-
knowledge-base/textbox-add-icon.md | 4 +-
.../textbox-chrome-autofill-label.md | 2 +-
.../textbox-empty-value-on-autofill.md | 8 +-
knowledge-base/textbox-select-in-focus.md | 55 +-
knowledge-base/tilelayout-nested-instances.md | 2 +-
.../tilelayout-rendering-contents.md | 2 +-
knowledge-base/tilelayout-responsive.md | 2 +-
knowledge-base/tooltip-callout-position.md | 2 +-
.../tooltip-custom-styles-background-color.md | 2 +-
knowledge-base/tooltip-in-grid.md | 2 +-
.../tooltip-no-update-from-main-model.md | 6 +-
...nable-checkbox-selection-only-edit-mode.md | 2 +-
.../treelist-expand-nodes-programmatically.md | 2 +-
.../treelist-get-parent-item-on-insert.md | 4 +-
...list-longer-text-starts-from-root-level.md | 2 +-
.../treeview-change-expand-collapse-icons.md | 2 +-
knowledge-base/treeview-disabled-readonly.md | 2 +-
.../treeview-drag-to-custom-target.md | 2 +-
knowledge-base/treeview-dropdown-not-open.md | 2 +-
.../treeview-expand-collapse-on-item-click.md | 2 +-
knowledge-base/treeview-filtering.md | 2 +-
.../treeview-horizontal-scrollbar.md | 2 +-
knowledge-base/treeview-rename-node.md | 2 +-
knowledge-base/treeview-scroll-to-item.md | 4 +-
.../treeview-validate-drop-target.md | 2 +-
knowledge-base/typescript-exports-error.md | 2 +-
knowledge-base/upload-azure-blob-storage.md | 2 +-
knowledge-base/upload-files-in-grid.md | 6 +-
.../upload-openselectfilesdialog-safari.md | 4 +-
knowledge-base/upload-preview-image.md | 6 +-
.../upload-track-selected-uploaded-files.md | 2 +-
.../upload-validateantiforgerytoken.md | 6 +-
...dation-custom-dataannotations-validator.md | 2 +-
.../value-changed-validation-model.md | 2 +-
.../window-access-dom-element-on-show.md | 2 +-
knowledge-base/window-align-to-right.md | 2 +-
knowledge-base/window-backdrop-blur.md | 2 +-
.../window-cascading-parameter-null.md | 6 +-
.../window-center-horizontally-fixed-top.md | 2 +-
knowledge-base/window-custom-css-styling.md | 2 +-
...indow-does-not-display-child-items-data.md | 2 +-
.../window-does-not-update-parent.md | 4 +-
knowledge-base/window-expand-on-drag.md | 2 +-
.../window-focus-button-textbox-on-open.md | 2 +-
knowledge-base/window-in-form-edit-context.md | 2 +-
.../window-keep-content-when-closed.md | 4 +-
.../window-open-from-another-component.md | 4 +-
knowledge-base/window-responsive.md | 6 +-
knowledge-base/wizard-confirm-step-change.md | 2 +-
knowledge-base/wizard-skip-step.md | 2 +-
styling-and-themes/custom-theme.md | 2 +-
styling-and-themes/override-theme-styles.md | 2 +-
styling-and-themes/overview.md | 2 +-
system-requirements.md | 2 +-
testing/e2e-testing-with-test-studio.md | 25 +-
testing/unit-testing-with-justmock.md | 2 +-
troubleshooting/general-issues.md | 4 +-
troubleshooting/js-errors.md | 4 +-
troubleshooting/nuget-feed.md | 6 +-
upgrade/breaking-changes/2-0-0.md | 14 +-
upgrade/breaking-changes/3-0-0.md | 437 ++++++++-------
upgrade/breaking-changes/4-0-0.md | 309 ++++++-----
upgrade/breaking-changes/7-0-0.md | 28 +-
upgrade/rendering-changes/3-6-0.md | 2 +-
upgrade/rendering-changes/4-3-0.md | 16 +-
upgrade/rendering-changes/4-6-0.md | 16 +-
upgrade/rendering-changes/6-0-0.md | 453 ++++++++-------
1197 files changed, 4566 insertions(+), 3689 deletions(-)
create mode 100644 _assetsApi/metadata-config.json
create mode 100644 docs-builder.yml
create mode 100644 images/avatar-ninja.svg
create mode 100644 images/ninja-no-results.svg
create mode 100644 images/pdf-cover.png
diff --git a/_assetsApi/filterConfig.yml b/_assetsApi/filterConfig.yml
index e8fea4ffb6..02fc934233 100644
--- a/_assetsApi/filterConfig.yml
+++ b/_assetsApi/filterConfig.yml
@@ -13,7 +13,7 @@ apiRules:
- exclude:
uidRegex: ^Telerik\.DataSource\.IDescriptor$
- exclude:
- uidRegex: ^Telerik\.DataSource\.Expressions\.*$
+ uidRegex: ^Telerik\.DataSource\.Expressions\..*$
- exclude:
uidRegex: ^Telerik\.DataSource\.\w*Node
- exclude:
@@ -21,4 +21,5 @@ apiRules:
- exclude:
uidRegex: ^Telerik\.DataSource\.\w+Aggregate\w*$
- exclude:
- uidRegex: ^Telerik.Blazor.Components.ToolBarw*$
+ type: Method
+ uidRegex: ^System\.Object\..*$
diff --git a/_assetsApi/metadata-config.json b/_assetsApi/metadata-config.json
new file mode 100644
index 0000000000..c501fcc8de
--- /dev/null
+++ b/_assetsApi/metadata-config.json
@@ -0,0 +1,13 @@
+{
+ "metadata": [{
+ "src": [
+ {
+ "files": [
+ "src/**.dll"
+ ]
+ }
+ ],
+ "dest": "metadata",
+ "filter": "filterConfig.yml"
+ }]
+}
diff --git a/_contentTemplates/chart/link-to-basics.md b/_contentTemplates/chart/link-to-basics.md
index 5b4107e297..2082ebf532 100644
--- a/_contentTemplates/chart/link-to-basics.md
+++ b/_contentTemplates/chart/link-to-basics.md
@@ -7,7 +7,7 @@ This article assumes you are familiar with the [chart basics]({%slug components/
Bar and Column charts can take the color of the series item from the `ColorField` of the data source. You can pass a valid CSS color (for example, `#abcdef`, `#f00`, or `blue`).
-````CSHTML
+````RAZOR
Colors per series item
diff --git a/_contentTemplates/common/format-placeholders.md b/_contentTemplates/common/format-placeholders.md
index be187195d8..74833e4f92 100644
--- a/_contentTemplates/common/format-placeholders.md
+++ b/_contentTemplates/common/format-placeholders.md
@@ -24,7 +24,7 @@ By default the value for all parameters would be `null`, the full format specifi
>caption Provide a custom string to the day, month, and year segments
-````CSHTML
+````RAZOR
@* Provide custom rendering of the day, month, and year segments *@
diff --git a/_contentTemplates/common/get-model-from-dropdowns.md b/_contentTemplates/common/get-model-from-dropdowns.md
index b2afed6b25..da6c8eaf53 100644
--- a/_contentTemplates/common/get-model-from-dropdowns.md
+++ b/_contentTemplates/common/get-model-from-dropdowns.md
@@ -1,5 +1,5 @@
#get-model-from-dropdowns
->tip If you are looking for more fields from the view-model that describes the dropdown items, not just the `Value`, see the [Get model from dropdown]({%slug dropdowns-get-model%}) KB article and the [OnChange](events#onchange) event.
+>tip If you are looking for more fields from the view-model that describes the dropdown items, not just the `Value`, see the [Get model from dropdown]({%slug dropdowns-get-model%}) KB article and the [OnChange](../events#onchange) event.
>
> You may also want to review/join the discussion and Vote for this request: Binding DropDownList Value to complex model
#end
diff --git a/_contentTemplates/common/get-started.md b/_contentTemplates/common/get-started.md
index 02ba0444d6..66ee5320fb 100644
--- a/_contentTemplates/common/get-started.md
+++ b/_contentTemplates/common/get-started.md
@@ -35,7 +35,7 @@ In this tutorial, you will use the [Telerik NuGet feed]({%slug installation/nuge
1. Add the `https://nuget.telerik.com/v3/index.json` URL as a **Source**. Click **OK**.
- 
+
1. Whenever Visual Studio displays a dialog to enter credentials for `nuget.telerik.com`, use your Telerik account email and password.
@@ -46,36 +46,36 @@ In this tutorial, you will use the [Telerik NuGet feed]({%slug installation/nuge
#add-component-sample
- **RAZOR**
-
- Say Hello
-
-1. Optionally, hook up a click handler that will show a message. The resulting view will look like this:
-
- **RAZOR**
-
- @page "/"
-
- Say Hello
-
- @HelloString
+ ````RAZOR.skip-repl
+ Say Hello
+ ````
- @code {
- private MarkupString HelloString { get; set; }
-
- private void SayHelloHandler()
- {
- string msg = $"Hello from Telerik UI for Blazor at {DateTime.Now.ToString("HH:mm:ss")}!" +
- " Now you can use C# to write front-end!";
+1. Optionally, hook up a click handler that will show a message. The resulting view will look like this:
- HelloString = new MarkupString(msg);
- }
- }
+ ````RAZOR.skip-repl
+ @page "/"
+
+ Say Hello
+
+ @HelloString
+
+ @code {
+ private MarkupString HelloString { get; set; }
+
+ private void SayHelloHandler()
+ {
+ string msg = $"Hello from Telerik UI for Blazor at {DateTime.Now.ToString("HH:mm:ss")}!" +
+ " Now you can use C# to write front-end!";
+
+ HelloString = new MarkupString(msg);
+ }
+ }
+ ````
1. Run the app in the browser. You should see something like this:
- 
+
Well done! Now you have your first Telerik UI for Blazor component running in your Blazor app.
@@ -138,7 +138,7 @@ Add a `` to the app layout file (by default, `MainLayout.r
-````CSHTML
+````RAZOR
@inherits LayoutComponentBase
diff --git a/_contentTemplates/common/inputs.md b/_contentTemplates/common/inputs.md
index dd3418ff46..3626a1dae4 100644
--- a/_contentTemplates/common/inputs.md
+++ b/_contentTemplates/common/inputs.md
@@ -13,13 +13,13 @@ Consider setting `DebounceDelay="0"` to the component inside the editor template
The component allows you to add custom elements as prefixes and suffixes. [Read more about how to render custom adornments before and after the input element...]({%slug common-features/input-adornments%})
#end
-
+
#floating-label-and-preffix
-When using the [`PrefixTemplate`]({%slug common-features/input-adornments%}#adding-prefix-in-ui-for-blazor-components) for a component wrapped in a [FloatingLabel]({%slug floatinglabel-overview%}), the label will overlap the prefix.
+When using the [`PrefixTemplate`]({%slug common-features/input-adornments%}#adding-a-prefix-adornment) for a component wrapped in a [FloatingLabel]({%slug floatinglabel-overview%}), the label will overlap the prefix.
To ensure both the FloatingLabel and the prefix content are properly displayed, move the label with CSS:
-````CSHTML
+````RAZOR
-
````
## Filter Menu Template
@@ -209,7 +208,7 @@ The example below shows a custom filter that:
>tip The treelist can create a checkbox filter for you, see the [CheckBoxList Filtering]({%slug treelist-checklist-filter%}) article.
-````CSHTML
+````RAZOR
@using Telerik.DataSource
This custom filter menu lets you choose more than one option to match against the data source
diff --git a/components/treelist/templates/no-data-template.md b/components/treelist/templates/no-data-template.md
index c4854a0c73..e82eabaf10 100644
--- a/components/treelist/templates/no-data-template.md
+++ b/components/treelist/templates/no-data-template.md
@@ -19,7 +19,7 @@ The `NoDataTemplate` allows you to define custom content when the TreeList has n
>caption Use the NoDataTemplate to override the message shown while the data is still loading or when you try to filter a non-existing item
-````CSHTML
+````RAZOR
@* The example showcases a TreeList with a delay upon initializing its data and filtering on non-existing data *@
caption Using the Telerik UI for Blazor Slider to paginate the TreeList data
-````CSHTML
+````RAZOR
@* Telerik Blazor TreeList with Pager Template *@
If a [FormTemplate]({%slug treelist-templates-popup-form%}) is declared, the `ButtonsTemplate` will be ignored.
>caption Modifying the buttons in the create/edit Popup by using a `ButtonsTemplate`.
-````CSHTML
+````RAZOR
@page "/treelist/popup-editing-custom-form-buttons"
@using Telerik.DataSource
diff --git a/components/treelist/templates/popup-form-template.md b/components/treelist/templates/popup-form-template.md
index acd4350e66..1b4af0f2de 100644
--- a/components/treelist/templates/popup-form-template.md
+++ b/components/treelist/templates/popup-form-template.md
@@ -18,7 +18,7 @@ You can use the `Context` attribute of the `` tag to set the name
>When using the template, the default Popup form is replaced by the declared content within the `FormTemplate` tag. Consequently, the default `Update` and `Cancel` buttons are removed. This means the [`OnUpdate` and `OnCancel`]({%slug treelist-editing-overview%}#events) events cannot be triggered. To modify or cancel the update of a record, you need to include custom controls to manage these actions.
>caption Using a `FormTemplate` to modify the Edit/Create Popup window.
-````CSHTML
+````RAZOR
@page "/treelist/popup-editing-custom-form"
@using Telerik.DataSource
@using Telerik.DataSource.Extensions
diff --git a/components/treelist/templates/row.md b/components/treelist/templates/row.md
index 523e232b87..693f1c4365 100644
--- a/components/treelist/templates/row.md
+++ b/components/treelist/templates/row.md
@@ -22,7 +22,7 @@ You can use the `Context` attribute of the `` tag of the treelist t
>caption Using a row template
-````CSHTML
+````RAZOR
Render the entire row with your own code and logic
diff --git a/components/treelist/toolbar.md b/components/treelist/toolbar.md
index 43fa5992e2..28dfb50bb7 100644
--- a/components/treelist/toolbar.md
+++ b/components/treelist/toolbar.md
@@ -37,7 +37,7 @@ You can use the toolbar to add buttons that invoke actions specific to your appl
>caption How to define a custom command in the treelist toolbar
-````CSHTML
+````RAZOR
@result
@@ -150,7 +150,7 @@ You can add your own HTML and components to create a more complex layout in the
>caption Custom TreeList Toolbar Layout
-````CSHTML
+````RAZOR
@* for brevity the insert operation is not implemented in this sample *@
@result
diff --git a/components/treelist/virtual-scrolling.md b/components/treelist/virtual-scrolling.md
index 6f095847d8..ba266651ef 100644
--- a/components/treelist/virtual-scrolling.md
+++ b/components/treelist/virtual-scrolling.md
@@ -22,7 +22,7 @@ To enhance rendering performance, the TreeList reuses the same set of HTML eleme
>caption Enable virtual scrolling in the Telerik TreeList for Blazor
-````CSHTML
+````RAZOR
caption TreeView accessibility compliance example
-````CSHTML
+````RAZOR
@*Evaluate the example with Axe Core or other accessibility tools*@
caption Enable node selection with checkboxes
-````CSHTML
+````RAZOR
@* Allow the user to use checkboxes to select nodes in the TreeView. Use the two-way data binding of the CheckedItems collection to obtain what the user checked. This example shows how to pre-select a node. *@
-````Single
+````RAZOR Single
@* You can couple checking the item and placing it in the selected item list. *@