@progress/kendo-angular-buttons 23.0.0-develop.6 → 23.0.0-develop.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -44,6 +44,9 @@ export { SpeechToTextResultEvent } from './speechtotextbutton/models/result-even
44
44
  export { SpeechToTextErrorEvent } from './speechtotextbutton/models/error-event';
45
45
  export { SpeechToTextButtonSettings } from './speechtotextbutton/models/speechtotextbutton-settings';
46
46
  export { SpeechToTextButtonModule } from './speechtotextbutton/speechtotextbutton.module';
47
+ export { SmartPasteButtonComponent } from './smartpastebutton/smartpastebutton.component';
48
+ export { SmartPasteButtonModule } from './smartpastebutton/smartpastebutton.module';
49
+ export { SmartPasteFormField, SmartPasteType, SmartPasteAIRequestData, SmartPasteAIResponse, SmartPasteAIRequestOptions, SmartPasteRequestStartEvent, SmartPasteRequestEndEvent } from './smartpastebutton/models';
47
50
  export { ButtonSize, ChipSize, ButtonRounded, ChipRounded, ButtonFillMode, ChipFillMode, ButtonThemeColor, ChipThemeColor, ArrowIconSettings } from './common/models';
48
51
  export { FocusableDirective } from './focusable/focusable.directive';
49
52
  export { PreventableEvent } from './preventable-event';
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1770369243,
11
- "version": "23.0.0-develop.6",
10
+ "publishDate": 1770381103,
11
+ "version": "23.0.0-develop.8",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-buttons",
3
- "version": "23.0.0-develop.6",
3
+ "version": "23.0.0-develop.8",
4
4
  "description": "Buttons Package for Angular",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -21,7 +21,7 @@
21
21
  "package": {
22
22
  "productName": "Kendo UI for Angular",
23
23
  "productCode": "KENDOUIANGULAR",
24
- "publishDate": 1770369243,
24
+ "publishDate": 1770381103,
25
25
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
26
26
  }
27
27
  },
@@ -31,15 +31,16 @@
31
31
  "@angular/core": "19 - 21",
32
32
  "@angular/platform-browser": "19 - 21",
33
33
  "@progress/kendo-licensing": "^1.10.0",
34
- "@progress/kendo-angular-common": "23.0.0-develop.6",
35
- "@progress/kendo-angular-l10n": "23.0.0-develop.6",
36
- "@progress/kendo-angular-popup": "23.0.0-develop.6",
37
- "@progress/kendo-angular-icons": "23.0.0-develop.6",
34
+ "@progress/kendo-angular-common": "23.0.0-develop.8",
35
+ "@progress/kendo-angular-l10n": "23.0.0-develop.8",
36
+ "@progress/kendo-angular-popup": "23.0.0-develop.8",
37
+ "@progress/kendo-angular-icons": "23.0.0-develop.8",
38
+ "@progress/kendo-smartpaste-common": "0.0.0-PLACEHOLDER",
38
39
  "rxjs": "^6.5.3 || ^7.0.0"
39
40
  },
40
41
  "dependencies": {
41
42
  "tslib": "^2.3.1",
42
- "@progress/kendo-angular-schematics": "23.0.0-develop.6",
43
+ "@progress/kendo-angular-schematics": "23.0.0-develop.8",
43
44
  "@progress/kendo-common": "^1.0.1",
44
45
  "@progress/kendo-webspeech-common": "1.0.1"
45
46
  },
@@ -0,0 +1,40 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ /**
6
+ * Represents a form field configuration for Smart Paste.
7
+ */
8
+ export interface SmartPasteFormField {
9
+ /**
10
+ * Sets the name or identifier of the form field.
11
+ */
12
+ field: string;
13
+ /**
14
+ * Sets the data type of the form field.
15
+ */
16
+ type: SmartPasteType;
17
+ /**
18
+ * Sets the description of the form field.
19
+ * Helps the AI understand the purpose and expected content of the field.
20
+ */
21
+ description: string;
22
+ /**
23
+ * Sets the allowed values for enum-type fields.
24
+ * Use this for fields with a fixed set of options like select or radio buttons.
25
+ */
26
+ allowedValues?: string[];
27
+ }
28
+ /**
29
+ * @hidden
30
+ */
31
+ export interface SmartPasteFormFieldInternal extends SmartPasteFormField {
32
+ /**
33
+ * The DOM element associated with the form field.
34
+ */
35
+ element: Element | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
36
+ }
37
+ /**
38
+ * Defines the data type for a Smart Paste form field.
39
+ */
40
+ export type SmartPasteType = 'string' | 'boolean' | 'number' | 'fixed-choices' | 'kendo-input';
@@ -0,0 +1,6 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export * from './form-field';
6
+ export * from './service-settings';
@@ -0,0 +1,108 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { HttpHeaders, HttpResponse } from "@angular/common/http";
6
+ import { PreventableEvent } from "@progress/kendo-angular-common";
7
+ import { SmartPasteFormField } from "./form-field";
8
+ /**
9
+ * Defines the data structure for the HTTP request body sent by Smart Paste.
10
+ */
11
+ export interface SmartPasteAIRequestData {
12
+ /**
13
+ * Sets the form fields to send to the AI service.
14
+ */
15
+ formFields: Array<SmartPasteFormField>;
16
+ /**
17
+ * Sets the content to be sent to the AI service.
18
+ */
19
+ content: string;
20
+ /**
21
+ * Sets the URL of the AI service endpoint.
22
+ */
23
+ url?: string;
24
+ /**
25
+ * Sets the request options for the AI service.
26
+ * Includes headers, HTTP method, and other configurations.
27
+ */
28
+ requestOptions: {
29
+ role?: string;
30
+ headers?: HttpHeaders;
31
+ method?: string;
32
+ withCredentials?: boolean;
33
+ body?: any;
34
+ responseType?: 'json' | 'arraybuffer' | 'blob' | 'text';
35
+ [key: string]: any;
36
+ };
37
+ }
38
+ /**
39
+ * @hidden
40
+ *
41
+ * Represents the response from the AI request in the Smart Paste Button.
42
+ */
43
+ export interface SmartPasteAIResponse {
44
+ /**
45
+ * A record mapping form field names to their parsed values. The id of each field corresponds to the `field` property in `SmartPasteFormField`.
46
+ */
47
+ fieldValues: Record<string, unknown>;
48
+ }
49
+ /**
50
+ * Defines configuration options for the HTTP request sent to the AI service.
51
+ */
52
+ export interface SmartPasteAIRequestOptions {
53
+ /**
54
+ * Sets the HTTP headers to include with the request.
55
+ */
56
+ headers?: HttpHeaders;
57
+ /**
58
+ * Sets the role of the user making the request.
59
+ *
60
+ * @default 'user'
61
+ */
62
+ role?: string;
63
+ /**
64
+ * Sets the HTTP method for the request.
65
+ *
66
+ * @default 'POST'
67
+ */
68
+ method?: string;
69
+ /**
70
+ * Includes credentials such as cookies and authorization headers with the request.
71
+ *
72
+ * @default false
73
+ */
74
+ withCredentials?: boolean;
75
+ /**
76
+ * Sets the expected response type from the AI service.
77
+ *
78
+ * @default 'json'
79
+ */
80
+ responseType?: 'json' | 'arraybuffer' | 'blob' | 'text';
81
+ /**
82
+ * Sets the body of the request.
83
+ */
84
+ body?: any;
85
+ /**
86
+ * Sets additional custom options to spread into the request configuration.
87
+ */
88
+ [key: string]: any;
89
+ }
90
+ /**
91
+ * @hidden
92
+ */
93
+ export declare const DEFAULT_AI_REQUEST_OPTIONS: SmartPasteAIRequestOptions;
94
+ export declare class SmartPasteRequestStartEvent extends PreventableEvent {
95
+ /**
96
+ * Gets the request data to send to the AI service.
97
+ */
98
+ requestData: SmartPasteAIRequestData;
99
+ constructor(requestData: SmartPasteAIRequestData);
100
+ }
101
+ export declare class SmartPasteRequestEndEvent extends PreventableEvent {
102
+ /**
103
+ * Gets the HTTP response from the AI service.
104
+ * Contains an error object when the request fails.
105
+ */
106
+ response: HttpResponse<any>;
107
+ constructor(response: HttpResponse<any>);
108
+ }
@@ -0,0 +1,175 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { ElementRef, OnDestroy, OnInit, Renderer2, NgZone, EventEmitter } from '@angular/core';
6
+ import { HttpClient } from '@angular/common/http';
7
+ import { Subscription } from 'rxjs';
8
+ import { ControlContainer } from '@angular/forms';
9
+ import { SmartPasteAIRequestOptions, SmartPasteFormField, SmartPasteRequestStartEvent, SmartPasteRequestEndEvent } from './models';
10
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
11
+ import { SVGIcon } from '@progress/kendo-svg-icons';
12
+ import { ButtonFillMode, ButtonRounded, ButtonSize, ButtonThemeColor } from '../common/models';
13
+ import { SmartPasteField } from '@progress/kendo-smartpaste-common';
14
+ import * as i0 from "@angular/core";
15
+ /**
16
+ * Represents the Kendo UI SmartPasteButton component for Angular.
17
+ *
18
+ * Fills form fields with AI-powered data extraction from clipboard content.
19
+ */
20
+ export declare class SmartPasteButtonComponent implements OnInit, OnDestroy {
21
+ renderer: Renderer2;
22
+ ngZone: NgZone;
23
+ private http;
24
+ private controlContainer;
25
+ /**
26
+ * Specifies the form controls to include in Smart Paste.
27
+ * When not set, all form controls are included.
28
+ *
29
+ * @default null
30
+ */
31
+ formFields: SmartPasteFormField[] | null;
32
+ /**
33
+ * When `true`, disables the SmartPasteButton and prevents user interaction.
34
+ *
35
+ * @default false
36
+ */
37
+ set disabled(disabled: boolean);
38
+ get disabled(): boolean;
39
+ /**
40
+ * Sets the padding of the SmartPasteButton.
41
+ *
42
+ * @default undefined
43
+ */
44
+ set size(size: ButtonSize);
45
+ get size(): ButtonSize;
46
+ /**
47
+ * Sets the border radius of the SmartPasteButton.
48
+ *
49
+ * @default undefined
50
+ */
51
+ set rounded(rounded: ButtonRounded);
52
+ get rounded(): ButtonRounded;
53
+ /**
54
+ * Sets the background and border styles of the SmartPasteButton.
55
+ *
56
+ * @default undefined
57
+ */
58
+ set fillMode(fillMode: ButtonFillMode);
59
+ get fillMode(): ButtonFillMode;
60
+ /**
61
+ * Sets a predefined theme color for the SmartPasteButton.
62
+ * The theme color applies as a background and border color and adjusts the text color.
63
+ *
64
+ * @default undefined
65
+ */
66
+ set themeColor(themeColor: ButtonThemeColor);
67
+ get themeColor(): ButtonThemeColor;
68
+ /**
69
+ * Sets an SVG icon to display inside the SmartPasteButton.
70
+ */
71
+ set svgIcon(icon: SVGIcon);
72
+ get svgIcon(): SVGIcon;
73
+ /**
74
+ * Specifies a URL for an `img` element inside the SmartPasteButton.
75
+ * The URL can be relative or absolute. When relative, the browser evaluates it relative to the web page URL.
76
+ */
77
+ imageUrl: string;
78
+ /**
79
+ * Defines one or more CSS classes separated by spaces for a `span` element inside the SmartPasteButton.
80
+ * Use `iconClass` to add custom icons.
81
+ */
82
+ set iconClass(value: string);
83
+ get iconClass(): string;
84
+ /**
85
+ * Specifies the icon name to display in the SmartPasteButton.
86
+ *
87
+ * @default 'paste-sparkle'
88
+ */
89
+ set icon(name: string);
90
+ get icon(): string;
91
+ /**
92
+ * Sets the URL to which Smart Paste sends the AI request.
93
+ * When set, the component sends and handles an HTTP request automatically. Handle the `requestStart` event to modify request options before sending.
94
+ * When not set, the component does not send an HTTP request. Handle the `requestStart` event to send and manage a custom HTTP request.
95
+ */
96
+ requestUrl?: string;
97
+ /**
98
+ * Configures the HTTP request options for the AI request.
99
+ * Use this to customize headers, method, credentials, and other request settings.
100
+ */
101
+ requestOptions?: SmartPasteAIRequestOptions;
102
+ /**
103
+ * Sets static form field metadata to bypass DOM extraction when Smart Paste runs.
104
+ * Use this when you want to provide form field configuration directly instead of extracting it from the DOM.
105
+ *
106
+ * @default null
107
+ */
108
+ smartPasteFormFields: SmartPasteField[] | null;
109
+ /**
110
+ * Fires when the Smart Paste request is about to start.
111
+ * Prevent the event to stop the request before sending it.
112
+ */
113
+ requestStart: EventEmitter<SmartPasteRequestStartEvent>;
114
+ /**
115
+ * Fires when the Smart Paste request completes, either successfully or with an error.
116
+ * Prevent the event to cancel populating the form fields with the response data.
117
+ */
118
+ requestEnd: EventEmitter<SmartPasteRequestEndEvent>;
119
+ /**
120
+ * Fires when the user cancels an ongoing Smart Paste request.
121
+ */
122
+ requestCancel: EventEmitter<void>;
123
+ get iconButtonClass(): boolean;
124
+ classButton: boolean;
125
+ get classDisabled(): boolean;
126
+ get getDirection(): string;
127
+ onFocus(): void;
128
+ onBlur(): void;
129
+ /**
130
+ * Focuses the SmartPasteButton.
131
+ */
132
+ focus(): void;
133
+ /**
134
+ * Removes focus from the SmartPasteButton.
135
+ */
136
+ blur(): void;
137
+ get hasText(): boolean;
138
+ set isFocused(isFocused: boolean);
139
+ get isFocused(): boolean;
140
+ element: HTMLElement;
141
+ isDisabled: boolean;
142
+ subs: Subscription;
143
+ private _size;
144
+ private _rounded;
145
+ private _fillMode;
146
+ private _themeColor;
147
+ private _focused;
148
+ private direction;
149
+ private _iconClass;
150
+ private _icon;
151
+ private _svgIcon;
152
+ private kendoSmartPaste;
153
+ private smartPasteBusy;
154
+ private currentRequestSubscription;
155
+ private nativeForm;
156
+ constructor(elementRef: ElementRef, renderer: Renderer2, localization: LocalizationService, ngZone: NgZone, http: HttpClient, controlContainer: ControlContainer);
157
+ ngOnInit(): void;
158
+ ngOnDestroy(): void;
159
+ /**
160
+ * Starts the Smart Paste operation.
161
+ * Reads clipboard content and sends it to the AI service for processing.
162
+ */
163
+ paste(): Promise<void>;
164
+ private sendSmartPasteRequest;
165
+ private unsubscribeCurrentRequest;
166
+ private defaultGetSmartPasteField;
167
+ private defaultSetKendoInputValue;
168
+ private setControlValue;
169
+ private extractFormFields;
170
+ private handleClasses;
171
+ private handleThemeColor;
172
+ private handleSmartPasteRequest;
173
+ static ɵfac: i0.ɵɵFactoryDeclaration<SmartPasteButtonComponent, [null, null, null, null, null, { optional: true; skipSelf: true; }]>;
174
+ static ɵcmp: i0.ɵɵComponentDeclaration<SmartPasteButtonComponent, "button[kendoSmartPasteButton]", ["kendoSmartPasteButton"], { "formFields": { "alias": "formFields"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "fillMode": { "alias": "fillMode"; "required": false; }; "themeColor": { "alias": "themeColor"; "required": false; }; "svgIcon": { "alias": "svgIcon"; "required": false; }; "imageUrl": { "alias": "imageUrl"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "requestUrl": { "alias": "requestUrl"; "required": false; }; "requestOptions": { "alias": "requestOptions"; "required": false; }; "smartPasteFormFields": { "alias": "smartPasteFormFields"; "required": false; }; }, { "requestStart": "requestStart"; "requestEnd": "requestEnd"; "requestCancel": "requestCancel"; }, never, ["*"], true, never>;
175
+ }
@@ -0,0 +1,27 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./smartpastebutton.component";
7
+ /**
8
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
9
+ * definition for the SmartPasteButton component.
10
+ *
11
+ * The module is meant for backward compatibility. For new applications, use the standalone SmartPasteButton component.
12
+ *
13
+ * @example
14
+ * ```ts-no-run
15
+ * import { SmartPasteButtonModule } from '@progress/kendo-angular-buttons';
16
+ *
17
+ * _@NgModule({
18
+ * imports: [SmartPasteButtonModule]
19
+ * })
20
+ * export class AppModule {}
21
+ * ```
22
+ */
23
+ export declare class SmartPasteButtonModule {
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<SmartPasteButtonModule, never>;
25
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SmartPasteButtonModule, never, [typeof i1.SmartPasteButtonComponent], [typeof i1.SmartPasteButtonComponent]>;
26
+ static ɵinj: i0.ɵɵInjectorDeclaration<SmartPasteButtonModule>;
27
+ }
@@ -0,0 +1,50 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { SmartPasteCustomInput } from "@progress/kendo-smartpaste-common";
6
+ import { HttpClient, HttpResponse } from "@angular/common/http";
7
+ import { Observable } from "rxjs";
8
+ import { SmartPasteAIResponse } from './models';
9
+ /**
10
+ * Checks if a field should be ignored during Smart Paste.
11
+ *
12
+ * @hidden
13
+ */
14
+ export declare function isFieldIgnored(element: Element | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): boolean;
15
+ /**
16
+ * @hidden
17
+ */
18
+ export declare const getElementIdentifier: (element: HTMLElement) => string | null;
19
+ /**
20
+ * Specifies custom inputs (Kendo components) to include in Smart Paste.
21
+ * Each custom input has an identifier used to detect the component.
22
+ * Defaults to common Kendo UI components (DropDownList, ComboBox, AutoComplete, MultiSelect, DatePicker, etc.).
23
+ *
24
+ * @hidden
25
+ */
26
+ export declare const customInputs: SmartPasteCustomInput[];
27
+ /**
28
+ * @hidden
29
+ */
30
+ export declare const requiresDateValue: (element: HTMLElement) => boolean;
31
+ /**
32
+ * @hidden
33
+ */
34
+ export declare const requiresBooleanValue: (element: HTMLElement) => boolean;
35
+ /**
36
+ * @hidden
37
+ */
38
+ export declare const requiresNumericValue: (element: HTMLElement) => boolean;
39
+ /**
40
+ * @hidden
41
+ */
42
+ export declare const populateCustomInputs: (element: HTMLElement, value: any) => any;
43
+ /**
44
+ * @hidden
45
+ */
46
+ export declare const readClipboard: () => Promise<string>;
47
+ /**
48
+ * @hidden
49
+ */
50
+ export declare const sendSmartPasteRequest: (http: HttpClient, requestData: any) => Observable<HttpResponse<SmartPasteAIResponse>>;