Skip to content

Commit 03a9716

Browse files
authored
Merge branch 'master' into update-dynamic-tabs
2 parents 7b9f4ac + e9bec3e commit 03a9716

33 files changed

+571
-426
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#number-of-requests
2+
A Telerik [Subscription license](https://www.telerik.com/purchase/faq/licensing-purchasing) is recommended in order to use the Telerik Blazor AI Coding Assistant without restrictions. Perpetual license holders and trial users can make a [limited number of requests per year](slug:ai-overview#number-of-requests).
3+
#end

ai/copilot-extension.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,7 @@ The following list describes how your prompts may look like:
5555

5656
## Number of Requests
5757

58-
> The usage limits below will take place after June 28, 2025. Until then, each customer with an active commercial or trial license can make up to 300 daily requests.
59-
60-
The Telerik Blazor Copilot extension allows the following maximum number of requests, depending on your [Telerik license type](https://www.telerik.com/purchase/faq/licensing-purchasing):
61-
62-
* Perpetual licenses: 50 requests per year
63-
* Subscription licenses: virtually unlimited number of requests with a fair use threshold of 300 requests per day
64-
* Trial licenses: 300 requests per trial per year. Activating the same trial for a new release does not grant additional 300 requests.
65-
66-
> All Telerik AI tools share a single request limit for your Telerik account. For example, the Telerik Copilot extension and the Telerik MCP server both take up from the same usage quota.
58+
@[template](/_contentTemplates/common/ai-coding-assistant.md#number-of-requests)
6759

6860
## See Also
6961

ai/mcp-server.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -167,20 +167,13 @@ The following list describes how your prompts may look like:
167167
* "Telerik Generate a ComboBox for Blazor that shows a list of products. Create a Product class and generate sample data."
168168
* "Telerik Show me sample code for a Blazor Grid with virtual scrolling for the rows and columns."
169169

170-
171170
## Number of Requests
172171

173-
> The usage limits below will take place after June 28, 2025. Until then, each customer with an active commercial or trial license can make up to 300 daily requests.
174-
175-
The Telerik Blazor MCP Server allows the following maximum number of requests, depending on your [Telerik license type](https://www.telerik.com/purchase/faq/licensing-purchasing):
172+
@[template](/_contentTemplates/common/ai-coding-assistant.md#number-of-requests)
176173

177-
* Perpetual licenses: 50 requests per year
178-
* Subscription licenses: virtually unlimited number of requests with a fair use threshold of 300 requests per day
179-
* Trial licenses: 300 requests per trial per year. Activating the same trial for a new release does not grant additional 300 requests.
174+
## Connect to Local AI Model
180175

181-
> One prompt may trigger several requests to the MCP server, depending on the complexity.
182-
>
183-
> All Telerik AI tools share a single request limit for your Telerik account. For example, the Telerik MCP server and the Telerik Copilot extension both take up from the same usage quota.
176+
You can use the Telerik Blazor MCP server with local large language models (LLM). For example, run your local model through [Ollama](https://ollama.com) and use a third-party package such as [MCP-LLM Bridge](https://github.com/patruff/ollama-mcp-bridge) to connect the model to the Telerik MCP server. This will allow you to use the Telerik AI Coding Assistant without a cloud-based AI model.
184177

185178
## See Also
186179

ai/overview.md

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,32 @@ To use the Telerik Blazor AI Coding Assistant, you need:
2929
* A [Telerik user account](https://www.telerik.com/account/).
3030
* An active [DevCraft or Telerik UI for Blazor license](https://www.telerik.com/purchase/blazor-ui) or a [Telerik UI for Blazor trial](https://www.telerik.com/blazor-ui).
3131
* A [Blazor application that includes Telerik UI for Blazor](slug:blazor-overview#getting-started).
32+
* @[template](/_contentTemplates/common/ai-coding-assistant.md#number-of-requests)
3233

33-
> A Telerik [Subscription license](https://www.telerik.com/purchase/faq/licensing-purchasing) is recommended in order to use the Telerik Blazor AI Coding Assistant:
34-
>
35-
> * Subscription license holders can make an unlimited number of requests.
36-
> * Perpetual license holders and trial users have a limited number of requests per year.
34+
## Number of Requests
35+
36+
> The usage limits below will take place after June 28, 2025. Until then, each customer with an active commercial or trial license can make up to 300 daily requests.
37+
38+
The Telerik Blazor AI Conding Assistant allows the following maximum number of requests, depending on your [Telerik license type](https://www.telerik.com/purchase/faq/licensing-purchasing):
39+
40+
* Perpetual licenses: 50 requests per year
41+
* Subscription licenses: virtually unlimited number of requests with a fair use threshold of 300 requests per day
42+
* Trial licenses: 300 requests per trial per year. Activating the same trial for a new release does not grant additional 300 requests.
43+
44+
> All Telerik AI tools share a single request limit for your Telerik account. For example, the [Telerik Copilot extension](slug:ai-copilot-extension) and the [Telerik MCP server](slug:ai-mcp-server) both take up from the same usage quota.
45+
> When using the Telerik MCP server, one prompt may trigger several requests, depending on the prompt complexity.
46+
47+
## Privacy
48+
49+
The Telerik Blazor AI Coding Assistant operates under the following conditions:
50+
51+
* The Assistant does not have access to your workspace and application code. Note that when using the Telerik MCP server (or any other MCP server), the LLM generates parameters for the MCP server request, which may include parts of your application code.
52+
* The Assistant does not use your prompts to train Telerik AI models.
53+
* The Assistant does not generate the actual responses and has no access to these responses. The Assistant only provides a better context that helps your selected model (for example, GPT, Gemini, Claude) provide better responses.
54+
* The Assistant does not associate your prompts to your Telerik user account. Your prompts and generated context are anonymized and stored for statistical and troubleshooting purposes.
55+
* The Assistant stores metrics about how often and how much you use it in order to ensure compliance with the [allowed number of requests that correspond to your current license](#number-of-requests).
56+
57+
Make sure to also get familiar with the terms and privacy policy of your selected AI model and AI client.
3758

3859
## Next Steps
3960

components/autocomplete/data-bind.md

Lines changed: 1 addition & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -92,57 +92,7 @@ To bind the AutoComplete to a model:
9292
}
9393
````
9494

95-
## Considerations
96-
97-
### Reference
98-
99-
The AutoComplete is a generic component and its type depends on the type of its `Data` and `Value`.
100-
101-
<div class="skip-repl"></div>
102-
````RAZOR String
103-
@*Reference when binding to a string collection*@
104-
105-
<TelerikAutoComplete @ref="@AutoCompleteRef"
106-
Data="@Suggestions"
107-
@bind-Value="@AutoCompleteValue" />
108-
109-
@code{
110-
private TelerikAutoComplete<string> AutoCompleteRef { get; set; }
111-
112-
private string AutoCompleteValue { get; set; }
113-
114-
private List<string> Suggestions { get; set; } = new List<string> { "first", "second", "third" };
115-
}
116-
````
117-
````RAZOR Model
118-
@*Reference when binding to a model collection*@
119-
120-
<TelerikAutoComplete @ref="@AutoCompleteRef"
121-
Data="@Suggestions"
122-
@bind-Value="@AutoCompleteValue"
123-
ValueField="@( nameof(SuggestionsModel.Suggestion) )" />
124-
125-
@code{
126-
private TelerikAutoComplete<SuggestionsModel> AutoCompleteRef { get; set; }
127-
128-
private string AutoCompleteValue { get; set; }
129-
130-
private List<SuggestionsModel> Suggestions { get; set; } = new List<SuggestionsModel>
131-
{
132-
new SuggestionsModel { Suggestion = "first", SomeOtherField = 1 },
133-
new SuggestionsModel { Suggestion = "second", SomeOtherField = 2 },
134-
new SuggestionsModel { Suggestion = "third", SomeOtherField = 3 }
135-
};
136-
137-
public class SuggestionsModel
138-
{
139-
public string Suggestion { get; set; }//the auto complete needs only the string field
140-
public int SomeOtherField { get; set; }
141-
}
142-
}
143-
````
144-
145-
### Missing Data
95+
## Missing Data
14696

14797
The AutoComplete is, essentially, a textbox. This means that its `Value` is always a string and it is up to you to bind and/or use it. The `Data` parameter, however, is required for the functionality of the component, and it must never be `null`. If there are no suggestions that you wish to provide to the user, consider using a regular TextBox, or creating an empty collection.
14898

components/autocomplete/overview.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,7 @@ The AutoComplete provides the following popup settings:
145145

146146
## AutoComplete Reference and Methods
147147

148-
The AutoComplete is a generic component and its type is determined by the type of the model you use as its data source. You can find examples in the [Data Bind - Considerations](slug:autocomplete-databind#considerations) article.
149-
150-
Add a reference to the component instance to use the [AutoComplete's methods](slug:Telerik.Blazor.Components.TelerikAutoComplete-1).
148+
Add a reference to the component instance to use the [AutoComplete's methods](slug:Telerik.Blazor.Components.TelerikAutoComplete-1). Note that the [AutoComplete is a generic component](slug:common-features-data-binding-overview#component-type).
151149

152150
@[template](/_contentTemplates/dropdowns/methods.md#methods-list)
153151

components/combobox/data-bind.md

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ There are also some considerations you may find useful, such as showing the `Pla
2323

2424
* [Considerations](#considerations)
2525
* [Value Out of Range](#value-out-of-range)
26-
* [Component Reference](#component-reference)
2726
* [Missing Value or Data](#missing-value-or-data)
2827

2928
## Strings and Value Types
@@ -105,7 +104,7 @@ To bind the ComboBox to a model:
105104

106105
## Considerations
107106

108-
The ComboBox component attempts to infer the type of its model and value based on the provided `Data` and initial `Value`. This affects the way its [reference is obtained](#component-reference) and what happens [if you can't provide data or a value](#missing-value-or-data). Providing a [value that is not in the data source](#value-out-of-range) needs to be taken into account be the app, because the component will not change it.
107+
The ComboBox component attempts to infer the type of its model and value based on the provided `Data` and initial `Value`. This affects the way its [reference is obtained](slug:common-features-data-binding-overview#component-type) and what happens [if you can't provide data or a value](#missing-value-or-data). Providing a [value that is not in the data source](#value-out-of-range) needs to be taken into account by the app, because the component will not change it.
109108

110109
### Value Out of Range
111110

@@ -119,63 +118,6 @@ Handling such "unexpected" values is up to the application - for example, throug
119118

120119
When `AllowCustom="true"`, what the user types in the input will be set to the `Value` of the component regardless of the data source.
121120

122-
### Component Reference
123-
124-
The ComboBox is a generic component and its type depends on the type of its `Data` and `Value`.
125-
126-
<div class="skip-repl"></div>
127-
````RAZOR String
128-
@*ComboBox reference when binding to a string collection*@
129-
130-
<TelerikComboBox @ref="ComboBoxRef"
131-
Data="@ComboBoxData"
132-
Value="@ComboBoxValue">
133-
</TelerikComboBox>
134-
135-
@code {
136-
private TelerikComboBox<string, string>? ComboBoxRef { get; set; }
137-
138-
private List<string> ComboBoxData = new List<string>() { "first", "second", "third" };
139-
140-
private string ComboBoxValue { get; set; } = string.Empty;
141-
142-
protected override void OnInitialized()
143-
{
144-
ComboBoxValue = "third";
145-
}
146-
}
147-
````
148-
````RAZOR Model
149-
@*ComboBox reference when binding to a model collection*@
150-
151-
<TelerikComboBox @ref="@ComboBoxRef"
152-
Data="@ComboBoxData"
153-
@bind-Value="@ComboBoxValue"
154-
TextField="@nameof(ComboBoxItem.MyTextField)"
155-
ValueField="@nameof(ComboBoxItem.MyValueField)">
156-
</TelerikComboBox>
157-
158-
@code {
159-
private TelerikComboBox<ComboBoxItem, int>? ComboBoxRef { get; set; }
160-
161-
private IEnumerable<ComboBoxItem> ComboBoxData = Enumerable.Range(1, 20)
162-
.Select(x => new ComboBoxItem { MyTextField = "Item " + x, MyValueField = x });
163-
164-
private int ComboBoxValue { get; set; }
165-
166-
protected override void OnInitialized()
167-
{
168-
ComboBoxValue = 3;
169-
}
170-
171-
public class ComboBoxItem
172-
{
173-
public int MyValueField { get; set; }
174-
public string MyTextField { get; set; } = string.Empty;
175-
}
176-
}
177-
````
178-
179121
### Missing Value or Data
180122

181123
In case you cannot provide strongly-typed `Value` or `Data` at compile time, you need to set the corresponding type properties to the `TItem` and `TValue` properties as shown below.

components/combobox/overview.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,8 @@ The ComboBox provides the following popup settings:
145145

146146
## ComboBox Reference and Methods
147147

148-
The ComboBox is a generic component and its type is determined by the type of the model you pass to it, and the type of its value field. You can find examples in the [Data Bind - Considerations](slug:components/combobox/databind#considerations) article.
148+
Add a reference to the component instance to use the [ComboBox's methods](slug:Telerik.Blazor.Components.TelerikComboBox-2). Note that the [ComboBox is a generic component](slug:common-features-data-binding-overview#component-type).
149149

150-
Add a reference to the component instance to use the [ComboBox's methods](slug:Telerik.Blazor.Components.TelerikComboBox-2).
151150

152151
@[template](/_contentTemplates/dropdowns/methods.md#methods-list)
153152

components/dropdownlist/data-bind.md

Lines changed: 1 addition & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ There are also some considerations you may find useful, such as showing the `Def
2323

2424
* [Considerations](#considerations)
2525
* [Value Out of Range](#value-out-of-range)
26-
* [Component Reference](#component-reference)
2726
* [Missing Value or Data](#missing-value-or-data)
2827

2928
## Strings or Value Types
@@ -93,7 +92,7 @@ To bind the DropDownList to a model:
9392

9493
## Considerations
9594

96-
The DropDownList component attempts to infer the type of its model and value based on the provided `Data` and initial `Value`. This affects the way its [reference is obtained](#component-reference) and what happens [if you can't provide data or a value](#missing-value-or-data). Providing a [value that is not in the data source](#value-out-of-range) needs to be taken into account be the app, because the component will not change it.
95+
The DropDownList component attempts to infer the type of its model and value based on the provided `Data` and initial `Value`. This affects the way its [reference is obtained](slug:common-features-data-binding-overview#component-type) and what happens [if you can't provide data or a value](#missing-value-or-data). Providing a [value that is not in the data source](#value-out-of-range) needs to be taken into account by the app, because the component will not change it.
9796

9897
### Value Out of Range
9998

@@ -102,57 +101,6 @@ When the `Value` the application provides does not match any of the values prese
102101
If you have set the `DefaultText` and the `Value` matches the `default` value of the type (for example, `0` for an `int` or `null` for an `int?` or `string`), you will see the `DefaultText`. A `Value` that is non-`default` will not show the `DefaultText`.
103102

104103
Handling such "unexpected" values is up to the application - for example, through defensive checks, or through form validation, or by first checking what is present in the data source before setting a new `Value`.
105-
106-
### Component Reference
107-
108-
The DropDownList is a generic component and its type depends on the type of its `Data` and `Value`.
109-
110-
<div class="skip-repl"></div>
111-
````RAZOR String
112-
<TelerikDropDownList @ref="@DropDownListRef"
113-
Data="@DropDownListData"
114-
@bind-Value="DropDownListValue" />
115-
116-
@code {
117-
private TelerikDropDownList<string, string>? DropDownListRef { get; set; }
118-
119-
private List<string> DropDownListData = new List<string>() { "first", "second", "third" };
120-
121-
private string DropDownListValue { get; set; } = string.Empty;
122-
123-
protected override void OnInitialized()
124-
{
125-
DropDownListValue = "second";
126-
}
127-
}
128-
````
129-
````RAZOR Model
130-
<TelerikDropDownList @ref="@DropDownListRef"
131-
Data="@DropDownListData"
132-
@bind-Value="DropDownListValue"
133-
TextField="@nameof(DropDownListItem.Text)"
134-
ValueField="@nameof(DropDownListItem.Value)" />
135-
136-
@code {
137-
private TelerikDropDownList<DropDownListItem, int>? DropDownListRef { get; set; }
138-
139-
private int DropDownListValue { get; set; }
140-
141-
private IEnumerable<DropDownListItem> DropDownListData = Enumerable.Range(1, 20)
142-
.Select(x => new DropDownListItem { Text = $"Item {x}", Value = x });
143-
144-
protected override void OnInitialized()
145-
{
146-
DropDownListValue = 3;
147-
}
148-
149-
public class DropDownListItem
150-
{
151-
public int Value { get; set; }
152-
public string Text { get; set; } = string.Empty;
153-
}
154-
}
155-
````
156104

157105
### Missing Value or Data
158106

components/dropdownlist/overview.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,8 @@ The DropDownList provides the following popup settings:
145145

146146
## DropDownList Reference and Methods
147147

148-
The DropDownList is a generic component and its type comes from the model it is bound to and from the value field type. See the [Component Reference](slug:components/dropdownlist/databind#component-reference) section in the Data Binding article for details and examples.
148+
Add a reference to the component instance to use the [DropDownList's methods](slug:Telerik.Blazor.Components.TelerikDropDownList-2). Note that the [DropDownList is a generic component](slug:common-features-data-binding-overview#component-type).
149149

150-
Add a reference to the component instance to use the [DropDownList's methods](slug:Telerik.Blazor.Components.TelerikDropDownList-2).
151150

152151
@[template](/_contentTemplates/dropdowns/methods.md#methods-list)
153152

0 commit comments

Comments
 (0)