@ui5/webcomponents-ai 2.15.0 → 2.16.0-rc.1

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.
Files changed (73) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +1 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/Button.d.ts +1 -1
  5. package/dist/Button.js +4 -4
  6. package/dist/Button.js.map +1 -1
  7. package/dist/TextArea.d.ts +115 -0
  8. package/dist/TextArea.js +234 -0
  9. package/dist/TextArea.js.map +1 -0
  10. package/dist/TextAreaTemplate.d.ts +2 -0
  11. package/dist/TextAreaTemplate.js +13 -0
  12. package/dist/TextAreaTemplate.js.map +1 -0
  13. package/dist/ToolbarLabel.d.ts +39 -0
  14. package/dist/ToolbarLabel.js +67 -0
  15. package/dist/ToolbarLabel.js.map +1 -0
  16. package/dist/ToolbarLabelTemplate.d.ts +2 -0
  17. package/dist/ToolbarLabelTemplate.js +5 -0
  18. package/dist/ToolbarLabelTemplate.js.map +1 -0
  19. package/dist/Versioning.d.ts +95 -0
  20. package/dist/Versioning.js +187 -0
  21. package/dist/Versioning.js.map +1 -0
  22. package/dist/VersioningTemplate.d.ts +4 -0
  23. package/dist/VersioningTemplate.js +9 -0
  24. package/dist/VersioningTemplate.js.map +1 -0
  25. package/dist/WritingAssistant.d.ts +98 -0
  26. package/dist/WritingAssistant.js +190 -0
  27. package/dist/WritingAssistant.js.map +1 -0
  28. package/dist/WritingAssistantTemplate.d.ts +2 -0
  29. package/dist/WritingAssistantTemplate.js +12 -0
  30. package/dist/WritingAssistantTemplate.js.map +1 -0
  31. package/dist/bundle.esm.js +1 -0
  32. package/dist/bundle.esm.js.map +1 -1
  33. package/dist/css/themes/AITextArea.css +1 -0
  34. package/dist/css/themes/Button.css +1 -1
  35. package/dist/css/themes/PromptInput.css +1 -1
  36. package/dist/css/themes/Versioning.css +1 -0
  37. package/dist/css/themes/WritingAssistant.css +1 -0
  38. package/dist/custom-elements-internal.json +197 -0
  39. package/dist/custom-elements.json +183 -0
  40. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  41. package/dist/generated/i18n/i18n-defaults.d.ts +10 -1
  42. package/dist/generated/i18n/i18n-defaults.js +10 -1
  43. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  44. package/dist/generated/themes/AITextArea.css.d.ts +2 -0
  45. package/dist/generated/themes/AITextArea.css.js +8 -0
  46. package/dist/generated/themes/AITextArea.css.js.map +1 -0
  47. package/dist/generated/themes/Button.css.d.ts +1 -1
  48. package/dist/generated/themes/Button.css.js +1 -1
  49. package/dist/generated/themes/Button.css.js.map +1 -1
  50. package/dist/generated/themes/PromptInput.css.d.ts +1 -1
  51. package/dist/generated/themes/PromptInput.css.js +1 -1
  52. package/dist/generated/themes/PromptInput.css.js.map +1 -1
  53. package/dist/generated/themes/Versioning.css.d.ts +2 -0
  54. package/dist/generated/themes/Versioning.css.js +8 -0
  55. package/dist/generated/themes/Versioning.css.js.map +1 -0
  56. package/dist/generated/themes/WritingAssistant.css.d.ts +2 -0
  57. package/dist/generated/themes/WritingAssistant.css.js +8 -0
  58. package/dist/generated/themes/WritingAssistant.css.js.map +1 -0
  59. package/dist/vscode.html-custom-data.json +27 -0
  60. package/dist/web-types.json +78 -1
  61. package/package-scripts.cjs +0 -1
  62. package/package.json +8 -8
  63. package/src/TextArea.css +45 -0
  64. package/src/TextAreaTemplate.tsx +90 -0
  65. package/src/ToolbarLabelTemplate.tsx +9 -0
  66. package/src/VersioningTemplate.tsx +34 -0
  67. package/src/WritingAssistantTemplate.tsx +49 -0
  68. package/src/i18n/messagebundle.properties +26 -0
  69. package/src/i18n/messagebundle_en.properties +1 -0
  70. package/src/themes/AITextArea.css +45 -0
  71. package/src/themes/PromptInput.css +5 -1
  72. package/src/themes/Versioning.css +20 -0
  73. package/src/themes/WritingAssistant.css +45 -0
@@ -0,0 +1,190 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var WritingAssistant_1;
8
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
+ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
11
+ import { i18n } from "@ui5/webcomponents-base/dist/decorators.js";
12
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
13
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
14
+ import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
15
+ import { WRITING_ASSISTANT_LABEL, VERSIONING_PREVIOUS_BUTTON_TEXT, VERSIONING_NEXT_BUTTON_TEXT, WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT, WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME, WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME, WRITING_ASSISTANT_BUTTON_TOOLTIP, } from "./generated/i18n/i18n-defaults.js";
16
+ // Styles
17
+ import WritingAssistantCss from "./generated/themes/WritingAssistant.css.js";
18
+ // Templates
19
+ import WritingAssistantTemplate from "./WritingAssistantTemplate.js";
20
+ import Versioning from "./Versioning.js";
21
+ import ToolbarLabel from "./ToolbarLabel.js";
22
+ // UI5 Components
23
+ import Toolbar from "@ui5/webcomponents/dist/Toolbar.js";
24
+ import ToolbarSpacer from "@ui5/webcomponents/dist/ToolbarSpacer.js";
25
+ import ToolbarButton from "@ui5/webcomponents/dist/ToolbarButton.js";
26
+ // Icons
27
+ import "@ui5/webcomponents-icons/dist/ai.js";
28
+ import "@ui5/webcomponents-icons/dist/stop.js";
29
+ /**
30
+ * @class
31
+ *
32
+ * ### Overview
33
+ *
34
+ * The `ui5-ai-textarea-toolbar` component provides a specialized toolbar for AI TextArea functionality.
35
+ * It manages different states of the AI assistant and provides version navigation capabilities.
36
+ *
37
+ * ### Structure
38
+ * The `ui5-ai-textarea-toolbar` consists of the following elements:
39
+ * - AI Generate Button: Triggers AI text generation or stops ongoing generation
40
+ * - Version Navigation: Allows navigation between multiple AI-generated results
41
+ * - Action Label: Displays the current AI action being performed
42
+ *
43
+ * ### ES6 Module Import
44
+ *
45
+ * `import "@sap-webcomponents/ai/dist/WritingAssistant.js";`
46
+ *
47
+ * @constructor
48
+ * @extends UI5Element
49
+ * @since 2.16.0
50
+ * @private
51
+ */
52
+ let WritingAssistant = WritingAssistant_1 = class WritingAssistant extends UI5Element {
53
+ constructor() {
54
+ super(...arguments);
55
+ /**
56
+ * Defines whether the Writing Assistant is currently loading.
57
+ *
58
+ * When `true`, indicates that an AI action is in progress.
59
+ *
60
+ * @default false
61
+ */
62
+ this.loading = false;
63
+ /**
64
+ * Defines the action text of the AI Writing Assistant.
65
+ *
66
+ * This text is displayed in the toolbar to indicate the current or last
67
+ * performed AI action (e.g., "Generated text", "Simplified text").
68
+ *
69
+ * @default ""
70
+ * @public
71
+ */
72
+ this.actionText = "";
73
+ /**
74
+ * Indicates the index of the currently displayed result version.
75
+ *
76
+ * The index is **1-based** (i.e. `1` represents the first result).
77
+ * This property is synchronized with the parent AI TextArea component.
78
+ *
79
+ * @default 1
80
+ * @public
81
+ * @since 2.16.0
82
+ */
83
+ this.currentVersionIndex = 1;
84
+ /**
85
+ * Indicates the total number of result versions available.
86
+ *
87
+ * This property determines whether version navigation controls are displayed.
88
+ * When totalVersions > 1, previous/next buttons become available.
89
+ *
90
+ * @default 1
91
+ * @public
92
+ */
93
+ this.totalVersions = 1;
94
+ }
95
+ /**
96
+ * Handles the version change event from the versioning component.
97
+ */
98
+ handleVersionChange(e) {
99
+ this.fireDecoratorEvent("version-change", { backwards: e.detail.backwards });
100
+ }
101
+ /**
102
+ * Handles the click event for the AI generate button.
103
+ * Toggles between generate and stop states based on current button state.
104
+ *
105
+ * @public
106
+ */
107
+ handleButtonClick(e) {
108
+ const target = e.target;
109
+ if (target?.dataset?.state === "generating") {
110
+ this.fireDecoratorEvent("stop-generation");
111
+ }
112
+ else {
113
+ this.fireDecoratorEvent("button-click", { clickTarget: target });
114
+ announce(WritingAssistant_1.i18nBundleAi.getText(WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT), "Polite");
115
+ }
116
+ }
117
+ get _ariaLabel() {
118
+ return WritingAssistant_1.i18nBundleAi.getText(WRITING_ASSISTANT_LABEL);
119
+ }
120
+ get _previousButtonAccessibleName() {
121
+ return WritingAssistant_1.i18nBundleAi.getText(VERSIONING_PREVIOUS_BUTTON_TEXT);
122
+ }
123
+ get _nextButtonAccessibleName() {
124
+ return WritingAssistant_1.i18nBundleAi.getText(VERSIONING_NEXT_BUTTON_TEXT);
125
+ }
126
+ get _toolbarAccessibleName() {
127
+ return WritingAssistant_1.i18nBundleAi.getText(WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME);
128
+ }
129
+ get _buttonAccessibleName() {
130
+ return WritingAssistant_1.i18nBundleAi.getText(WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME);
131
+ }
132
+ get _buttonTooltip() {
133
+ return WritingAssistant_1.i18nBundleAi.getText(WRITING_ASSISTANT_BUTTON_TOOLTIP);
134
+ }
135
+ };
136
+ __decorate([
137
+ property({ type: Boolean })
138
+ ], WritingAssistant.prototype, "loading", void 0);
139
+ __decorate([
140
+ property()
141
+ ], WritingAssistant.prototype, "actionText", void 0);
142
+ __decorate([
143
+ property({ type: Number })
144
+ ], WritingAssistant.prototype, "currentVersionIndex", void 0);
145
+ __decorate([
146
+ property({ type: Number })
147
+ ], WritingAssistant.prototype, "totalVersions", void 0);
148
+ __decorate([
149
+ i18n("@ui5/webcomponents-ai")
150
+ ], WritingAssistant, "i18nBundleAi", void 0);
151
+ WritingAssistant = WritingAssistant_1 = __decorate([
152
+ customElement({
153
+ tag: "ui5-ai-writing-assistant",
154
+ languageAware: true,
155
+ renderer: jsxRenderer,
156
+ template: WritingAssistantTemplate,
157
+ styles: [WritingAssistantCss],
158
+ dependencies: [
159
+ Versioning,
160
+ ToolbarLabel,
161
+ Toolbar,
162
+ ToolbarSpacer,
163
+ ToolbarButton,
164
+ ],
165
+ })
166
+ /**
167
+ * Fired when the user clicks on version navigation buttons.
168
+ *
169
+ * @public
170
+ */
171
+ ,
172
+ event("version-change")
173
+ /**
174
+ * Fired when the user clicks on the AI button.
175
+ *
176
+ * @public
177
+ */
178
+ ,
179
+ event("button-click")
180
+ /**
181
+ * Fired when the user clicks on the "Stop" button to stop ongoing AI text generation.
182
+ *
183
+ * @public
184
+ */
185
+ ,
186
+ event("stop-generation")
187
+ ], WritingAssistant);
188
+ WritingAssistant.define();
189
+ export default WritingAssistant;
190
+ //# sourceMappingURL=WritingAssistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WritingAssistant.js","sourceRoot":"","sources":["../src/WritingAssistant.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,4CAA4C,CAAC;AAClE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,QAAQ,MAAM,uDAAuD,CAAC;AAE7E,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,2BAA2B,EAC3B,yCAAyC,EACzC,yCAAyC,EACzC,wCAAwC,EACxC,gCAAgC,GAChC,MAAM,mCAAmC,CAAC;AAE3C,SAAS;AACT,OAAO,mBAAmB,MAAM,4CAA4C,CAAC;AAE7E,YAAY;AACZ,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,iBAAiB;AACjB,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,aAAa,MAAM,0CAA0C,CAAC;AAErE,QAAQ;AACR,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAqCH,IAAM,gBAAgB,wBAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAAzC;;QAWC;;;;;;WAMG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;;;;;WAQG;QAEH,eAAU,GAAG,EAAE,CAAC;QAEhB;;;;;;;;;WASG;QAEH,wBAAmB,GAAG,CAAC,CAAC;QAExB;;;;;;;;WAQG;QAEH,kBAAa,GAAG,CAAC,CAAC;IAkDnB,CAAC;IA7CA;;OAEG;IACH,mBAAmB,CAAC,CAAsC;QACzD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,CAAQ;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAwD,CAAC;QAC1E,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YACjE,QAAQ,CAAC,kBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,yCAAyC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtG,CAAC;IACF,CAAC;IACD,IAAI,UAAU;QACb,OAAO,kBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,6BAA6B;QAChC,OAAO,kBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,yBAAyB;QAC5B,OAAO,kBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO,kBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,kBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,kBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAChF,CAAC;CACD,CAAA;AAvFA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACZ;AAYhB;IADC,QAAQ,EAAE;oDACK;AAahB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DACH;AAYxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACT;AAGX;IADN,IAAI,CAAC,uBAAuB,CAAC;4CACE;AA3D3B,gBAAgB;IApCrB,aAAa,CAAC;QACd,GAAG,EAAE,0BAA0B;QAC/B,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,wBAAwB;QAClC,MAAM,EAAE,CAAC,mBAAmB,CAAC;QAC7B,YAAY,EAAE;YACb,UAAU;YACV,YAAY;YACZ,OAAO;YACP,aAAa;YACb,aAAa;SACb;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,gBAAgB,CAAC;IAExB;;;;OAIG;;IACF,KAAK,CAAC,cAAc,CAAC;IAEtB;;;;OAIG;;IACF,KAAK,CAAC,iBAAiB,CAAC;GAEnB,gBAAgB,CA0GrB;AAED,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAE1B,eAAe,gBAAgB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tWRITING_ASSISTANT_LABEL,\n\tVERSIONING_PREVIOUS_BUTTON_TEXT,\n\tVERSIONING_NEXT_BUTTON_TEXT,\n\tWRITING_ASSISTANT_GENERATING_ANNOUNCEMENT,\n\tWRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME,\n\tWRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME,\n\tWRITING_ASSISTANT_BUTTON_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport WritingAssistantCss from \"./generated/themes/WritingAssistant.css.js\";\n\n// Templates\nimport WritingAssistantTemplate from \"./WritingAssistantTemplate.js\";\nimport Versioning from \"./Versioning.js\";\nimport ToolbarLabel from \"./ToolbarLabel.js\";\n\n// UI5 Components\nimport Toolbar from \"@ui5/webcomponents/dist/Toolbar.js\";\nimport ToolbarSpacer from \"@ui5/webcomponents/dist/ToolbarSpacer.js\";\nimport ToolbarButton from \"@ui5/webcomponents/dist/ToolbarButton.js\";\n\n// Icons\nimport \"@ui5/webcomponents-icons/dist/ai.js\";\nimport \"@ui5/webcomponents-icons/dist/stop.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-ai-textarea-toolbar` component provides a specialized toolbar for AI TextArea functionality.\n * It manages different states of the AI assistant and provides version navigation capabilities.\n *\n * ### Structure\n * The `ui5-ai-textarea-toolbar` consists of the following elements:\n * - AI Generate Button: Triggers AI text generation or stops ongoing generation\n * - Version Navigation: Allows navigation between multiple AI-generated results\n * - Action Label: Displays the current AI action being performed\n *\n * ### ES6 Module Import\n *\n * `import \"@sap-webcomponents/ai/dist/WritingAssistant.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.16.0\n * @private\n */\n@customElement({\n\ttag: \"ui5-ai-writing-assistant\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: WritingAssistantTemplate,\n\tstyles: [WritingAssistantCss],\n\tdependencies: [\n\t\tVersioning,\n\t\tToolbarLabel,\n\t\tToolbar,\n\t\tToolbarSpacer,\n\t\tToolbarButton,\n\t],\n})\n\n/**\n * Fired when the user clicks on version navigation buttons.\n *\n * @public\n */\n@event(\"version-change\")\n\n/**\n * Fired when the user clicks on the AI button.\n *\n * @public\n */\n@event(\"button-click\")\n\n/**\n * Fired when the user clicks on the \"Stop\" button to stop ongoing AI text generation.\n *\n * @public\n */\n@event(\"stop-generation\")\n\nclass WritingAssistant extends UI5Element {\n\teventDetails!: {\n\t\t\"version-change\": {\n\t\t\tbackwards: boolean;\n\t\t};\n\t\t\"button-click\": {\n\t\t\tclickTarget: HTMLElement;\n\t\t};\n\t\t\"stop-generation\": object;\n\t};\n\n\t/**\n\t * Defines whether the Writing Assistant is currently loading.\n\t *\n\t * When `true`, indicates that an AI action is in progress.\n\t *\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the action text of the AI Writing Assistant.\n\t *\n\t * This text is displayed in the toolbar to indicate the current or last\n\t * performed AI action (e.g., \"Generated text\", \"Simplified text\").\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tactionText = \"\";\n\n\t/**\n\t * Indicates the index of the currently displayed result version.\n\t *\n\t * The index is **1-based** (i.e. `1` represents the first result).\n\t * This property is synchronized with the parent AI TextArea component.\n\t *\n\t * @default 1\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number })\n\tcurrentVersionIndex = 1;\n\n\t/**\n\t * Indicates the total number of result versions available.\n\t *\n\t * This property determines whether version navigation controls are displayed.\n\t * When totalVersions > 1, previous/next buttons become available.\n\t *\n\t * @default 1\n\t * @public\n\t */\n\t@property({ type: Number })\n\ttotalVersions = 1;\n\n\t@i18n(\"@ui5/webcomponents-ai\")\n\tstatic i18nBundleAi: I18nBundle;\n\n\t/**\n\t * Handles the version change event from the versioning component.\n\t */\n\thandleVersionChange(e: CustomEvent<{ backwards: boolean }>) {\n\t\tthis.fireDecoratorEvent(\"version-change\", { backwards: e.detail.backwards });\n\t}\n\n\t/**\n\t * Handles the click event for the AI generate button.\n\t * Toggles between generate and stop states based on current button state.\n\t *\n\t * @public\n\t */\n\thandleButtonClick(e: Event): void {\n\t\tconst target = e.target as HTMLElement & { dataset?: { state?: string } };\n\t\tif (target?.dataset?.state === \"generating\") {\n\t\t\tthis.fireDecoratorEvent(\"stop-generation\");\n\t\t} else {\n\t\t\tthis.fireDecoratorEvent(\"button-click\", { clickTarget: target });\n\t\t\tannounce(WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT), \"Polite\");\n\t\t}\n\t}\n\tget _ariaLabel() {\n\t\treturn WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_LABEL);\n\t}\n\n\tget _previousButtonAccessibleName() {\n\t\treturn WritingAssistant.i18nBundleAi.getText(VERSIONING_PREVIOUS_BUTTON_TEXT);\n\t}\n\n\tget _nextButtonAccessibleName() {\n\t\treturn WritingAssistant.i18nBundleAi.getText(VERSIONING_NEXT_BUTTON_TEXT);\n\t}\n\n\tget _toolbarAccessibleName() {\n\t\treturn WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME);\n\t}\n\n\tget _buttonAccessibleName() {\n\t\treturn WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME);\n\t}\n\n\tget _buttonTooltip() {\n\t\treturn WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_BUTTON_TOOLTIP);\n\t}\n}\n\nWritingAssistant.define();\n\nexport default WritingAssistant;\n"]}
@@ -0,0 +1,2 @@
1
+ import type WritingAssistant from "./WritingAssistant.js";
2
+ export default function WritingAssistantTemplate(this: WritingAssistant): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import Versioning from "./Versioning.js";
3
+ import ToolbarLabel from "./ToolbarLabel.js";
4
+ import Toolbar from "@ui5/webcomponents/dist/Toolbar.js";
5
+ import ToolbarSpacer from "@ui5/webcomponents/dist/ToolbarSpacer.js";
6
+ import ToolbarButton from "@ui5/webcomponents/dist/ToolbarButton.js";
7
+ export default function WritingAssistantTemplate() {
8
+ const isMultiResults = this.totalVersions > 1;
9
+ const hasResults = (this.totalVersions > 0 && this.actionText) || this.loading;
10
+ return (_jsxs(Toolbar, { accessibleName: this._toolbarAccessibleName, "aria-roledescription": "toolbar", class: `ui5-ai-writing-assistant-footer-bar${hasResults ? "--with-border" : ""}`, children: [isMultiResults && !this.loading && (_jsx(Versioning, { currentStep: this.currentVersionIndex, totalSteps: this.totalVersions, "onVersion-change": this.handleVersionChange })), hasResults && this.actionText && (_jsx(ToolbarLabel, { text: this.actionText, class: "ui5-ai-writing-assistant-action-label" })), _jsx(ToolbarSpacer, {}), _jsx(ToolbarButton, { id: "ai-menu-btn", design: "Transparent", icon: this.loading ? "stop" : "ai", "data-state": this.loading ? "generating" : "generate", onClick: this.handleButtonClick, tooltip: this._buttonTooltip, accessibilityAttributes: { hasPopup: this.loading ? "false" : "menu" }, accessibleName: this._buttonAccessibleName, overflowPriority: "NeverOverflow" })] }));
11
+ }
12
+ //# sourceMappingURL=WritingAssistantTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WritingAssistantTemplate.js","sourceRoot":"","sources":["../src/WritingAssistantTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,aAAa,MAAM,0CAA0C,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;IAE/E,OAAO,CACN,MAAC,OAAO,IACP,cAAc,EAAE,IAAI,CAAC,sBAAsB,0BACtB,SAAS,EAC9B,KAAK,EAAE,sCAAsC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,aAE/E,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CACnC,KAAC,UAAU,IACV,WAAW,EAAE,IAAI,CAAC,mBAAmB,EACrC,UAAU,EAAE,IAAI,CAAC,aAAa,sBACZ,IAAI,CAAC,mBAAmB,GACzC,CACF,EAEA,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CACjC,KAAC,YAAY,IACZ,IAAI,EAAE,IAAI,CAAC,UAAU,EACrB,KAAK,EAAC,uCAAuC,GAC5C,CACF,EAED,KAAC,aAAa,KAAG,EAEjB,KAAC,aAAa,IACb,EAAE,EAAC,aAAa,EAChB,MAAM,EAAC,aAAa,EACpB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBACtB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,EACpD,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EACtE,cAAc,EAAE,IAAI,CAAC,qBAAqB,EAC1C,gBAAgB,EAAC,eAAe,GAC/B,IACO,CACV,CAAC;AACH,CAAC","sourcesContent":["import type WritingAssistant from \"./WritingAssistant.js\";\nimport Versioning from \"./Versioning.js\";\nimport ToolbarLabel from \"./ToolbarLabel.js\";\n\nimport Toolbar from \"@ui5/webcomponents/dist/Toolbar.js\";\nimport ToolbarSpacer from \"@ui5/webcomponents/dist/ToolbarSpacer.js\";\nimport ToolbarButton from \"@ui5/webcomponents/dist/ToolbarButton.js\";\n\nexport default function WritingAssistantTemplate(this: WritingAssistant) {\n\tconst isMultiResults = this.totalVersions > 1;\n\tconst hasResults = (this.totalVersions > 0 && this.actionText) || this.loading;\n\n\treturn (\n\t\t<Toolbar\n\t\t\taccessibleName={this._toolbarAccessibleName}\n\t\t\taria-roledescription=\"toolbar\"\n\t\t\tclass={`ui5-ai-writing-assistant-footer-bar${hasResults ? \"--with-border\" : \"\"}`}\n\t\t>\n\t\t\t{isMultiResults && !this.loading && (\n\t\t\t\t<Versioning\n\t\t\t\t\tcurrentStep={this.currentVersionIndex}\n\t\t\t\t\ttotalSteps={this.totalVersions}\n\t\t\t\t\tonVersion-change={this.handleVersionChange}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{hasResults && this.actionText && (\n\t\t\t\t<ToolbarLabel\n\t\t\t\t\ttext={this.actionText}\n\t\t\t\t\tclass=\"ui5-ai-writing-assistant-action-label\"\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<ToolbarSpacer />\n\n\t\t\t<ToolbarButton\n\t\t\t\tid=\"ai-menu-btn\"\n\t\t\t\tdesign=\"Transparent\"\n\t\t\t\ticon={this.loading ? \"stop\" : \"ai\"}\n\t\t\t\tdata-state={this.loading ? \"generating\" : \"generate\"}\n\t\t\t\tonClick={this.handleButtonClick}\n\t\t\t\ttooltip={this._buttonTooltip}\n\t\t\t\taccessibilityAttributes={{ hasPopup: this.loading ? \"false\" : \"menu\" }}\n\t\t\t\taccessibleName={this._buttonAccessibleName}\n\t\t\t\toverflowPriority=\"NeverOverflow\"\n\t\t\t/>\n\t\t</Toolbar>\n\t);\n}\n"]}
@@ -5,5 +5,6 @@ import "./Assets.js";
5
5
  import Button from "./Button.js";
6
6
  import ButtonState from "./ButtonState.js";
7
7
  import PromptInput from "./PromptInput.js";
8
+ import AITextArea from "./TextArea.js";
8
9
  export default testAssets;
9
10
  //# sourceMappingURL=bundle.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.esm.js","sourceRoot":"","sources":["../src/bundle.esm.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,UAAU,MAAM,uCAAuC,CAAC;AAE/D,YAAY;AACZ,OAAO,aAAa,CAAC;AAErB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,eAAe,UAAU,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport testAssets from \"@ui5/webcomponents/dist/bundle.esm.js\";\n\n// AI assets\nimport \"./Assets.js\";\n\nimport Button from \"./Button.js\";\nimport ButtonState from \"./ButtonState.js\";\nimport PromptInput from \"./PromptInput.js\";\n\nexport default testAssets;\n"]}
1
+ {"version":3,"file":"bundle.esm.js","sourceRoot":"","sources":["../src/bundle.esm.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,UAAU,MAAM,uCAAuC,CAAC;AAE/D,YAAY;AACZ,OAAO,aAAa,CAAC;AAErB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,UAAU,MAAM,eAAe,CAAC;AAEvC,eAAe,UAAU,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport testAssets from \"@ui5/webcomponents/dist/bundle.esm.js\";\n\n// AI assets\nimport \"./Assets.js\";\n\nimport Button from \"./Button.js\";\nimport ButtonState from \"./ButtonState.js\";\nimport PromptInput from \"./PromptInput.js\";\nimport AITextArea from \"./TextArea.js\";\n\nexport default testAssets;\n"]}
@@ -0,0 +1 @@
1
+ .ui5-ai-textarea-root{position:relative;display:flex;flex-direction:column;width:100%;height:100%}.ui5-ai-textarea-root .ui5-textarea-wrapper{display:flex;flex-direction:column;flex:1;position:relative}.ui5-ai-textarea-root [part=footer]{position:relative;width:100%;margin-top:auto;flex-shrink:0}.ui5-ai-writing-assistant-footer-bar{background:var(--_ui5-v2-16-0-rc-1_texteditor_toolbar_background, var(--sapPageFooter_Background));width:100%;box-sizing:border-box;box-shadow:none;border-bottom:none;border-top:none}.ui5-ai-writing-assistant-footer-bar--with-border{border-top:1px solid var(--sapPageFooter_BorderColor)}.ui5-ai-writing-assistant-action-label{margin-left:.5rem;color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize)}#ai-menu-wrapper{position:relative;z-index:1000}
@@ -1 +1 @@
1
- :host{display:inline-block}:host([disabled]){pointer-events:none}.ui5-ai-button-text{display:inline-block}:host([icon-only]) .ui5-ai-button-text{min-width:0;margin-inline-start:0}.ui5-ai-button-hidden{position:absolute;top:-10000px;left:-10000px;visibility:hidden;display:block;width:fit-content}:host .ui5-ai-button-inner{width:100%}:host{width:auto;position:relative;transition:width .18s cubic-bezier(.67,1,.95,1.3) .12s}:host([icon-only]) .ui5-ai-button-inner[_end-icon=""]::part(textButton),:host(.ui5-ai-button-menu-to-button[icon-only]) .ui5-ai-button-inner::part(textButton){min-width:var(--_ui5-v2-15-0_button_base_min_width)!important;max-width:var(--_ui5-v2-15-0_button_base_min_width)!important}:host(.ui5-ai-button-menu-to-button) .ui5-ai-button-inner::part(button),:host(.ui5-ai-button-fade-out:not([icon-only])) .ui5-ai-button-inner::part(button){justify-content:flex-start}:host([icon-only]) .ui5-ai-button-inner[_end-icon]:not([_end-icon=""])::part(button),:host([icon-only]) .ui5-ai-button-inner[_hide-arrow-button]::part(button){justify-content:flex-start;padding-inline-start:var(--_ui5-v2-15-0_button_base_padding)}:host(.ui5-ai-button-fade-in[icon-only]) .ui5-ai-button-inner[_end-icon=""]::part(button){max-width:var(--_ui5-v2-15-0_button_base_min_width)}:host([icon-only]) .ui5-ai-button-inner[_end-icon=""]::part(textButton),:host(.ui5-ai-button-menu-to-button[icon-only]) .ui5-ai-button-inner::part(textButton){min-width:var(--_ui5-v2-15-0_button_base_min_width);max-width:var(--_ui5-v2-15-0_button_base_min_width)}:host(:not(.ui5-ai-button-fade-out):not(.ui5-ai-button-fade-mid):not(.ui5-ai-button-fade-in)) .ui5-ai-button-text,:host(:not(.ui5-ai-button-fade-out):not(.ui5-ai-button-fade-mid):not(.ui5-ai-button-fade-in)) ::part(endIcon),:host(:not(.ui5-ai-button-fade-out):not(.ui5-ai-button-fade-mid):not(.ui5-ai-button-fade-in)) ::part(arrowButton){opacity:1;transform:translateY(0)}:host(.ui5-ai-button-button-to-menu) .ui5-ai-button-inner::part(endIcon),:host(.ui5-ai-button-button-to-menu) .ui5-ai-button-inner::part(arrowButton){display:none;transform:translateY(0);opacity:0}:host(.ui5-ai-button-fade-out) .ui5-ai-button-text{opacity:0;transform:translateY(-1rem);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}:host(.ui5-ai-button-fade-out) ::part(icon){opacity:0;transform:translateY(-1rem);transition:opacity .05s ease-in-out 25ms,transform .1s ease-in-out 0s}:host(.ui5-ai-button-fade-out) ::part(endIcon){opacity:0;transform:translateY(-1rem);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}:host(.ui5-ai-button-fade-mid) .ui5-ai-button-text,:host(.ui5-ai-button-fade-mid) ::part(icon),:host(.ui5-ai-button-fade-mid) ::part(endIcon),:host(.ui5-ai-button-fade-mid) ::part(arrowButton){opacity:0;transform:translateY(1rem);transition:none}:host(.ui5-ai-button-fade-in) .ui5-ai-button-text{opacity:1;transform:translateY(0);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}:host(.ui5-ai-button-fade-in) ::part(icon){opacity:1;transform:translateY(0);transition:opacity .05s ease-in-out 25ms,transform .1s ease-in-out 0s}:host(.ui5-ai-button-fade-in) ::part(endIcon){opacity:1;transform:translateY(0);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}
1
+ :host{display:inline-block}:host([disabled]){pointer-events:none}.ui5-ai-button-text{display:inline-block}:host([icon-only]) .ui5-ai-button-text{min-width:0;margin-inline-start:0}.ui5-ai-button-hidden{position:absolute;top:-10000px;left:-10000px;visibility:hidden;display:block;width:fit-content}:host .ui5-ai-button-inner{width:100%}:host{width:auto;position:relative;transition:width .18s cubic-bezier(.67,1,.95,1.3) .12s}:host([icon-only]) .ui5-ai-button-inner[_end-icon=""]::part(textButton),:host(.ui5-ai-button-menu-to-button[icon-only]) .ui5-ai-button-inner::part(textButton){min-width:var(--_ui5-v2-16-0-rc-1_button_base_min_width)!important;max-width:var(--_ui5-v2-16-0-rc-1_button_base_min_width)!important}:host(.ui5-ai-button-menu-to-button) .ui5-ai-button-inner::part(button),:host(.ui5-ai-button-fade-out:not([icon-only])) .ui5-ai-button-inner::part(button){justify-content:flex-start}:host([icon-only]) .ui5-ai-button-inner[_end-icon]:not([_end-icon=""])::part(button),:host([icon-only]) .ui5-ai-button-inner[_hide-arrow-button]::part(button){justify-content:flex-start;padding-inline-start:var(--_ui5-v2-16-0-rc-1_button_base_padding)}:host(.ui5-ai-button-fade-in[icon-only]) .ui5-ai-button-inner[_end-icon=""]::part(button){max-width:var(--_ui5-v2-16-0-rc-1_button_base_min_width)}:host([icon-only]) .ui5-ai-button-inner[_end-icon=""]::part(textButton),:host(.ui5-ai-button-menu-to-button[icon-only]) .ui5-ai-button-inner::part(textButton){min-width:var(--_ui5-v2-16-0-rc-1_button_base_min_width);max-width:var(--_ui5-v2-16-0-rc-1_button_base_min_width)}:host(:not(.ui5-ai-button-fade-out):not(.ui5-ai-button-fade-mid):not(.ui5-ai-button-fade-in)) .ui5-ai-button-text,:host(:not(.ui5-ai-button-fade-out):not(.ui5-ai-button-fade-mid):not(.ui5-ai-button-fade-in)) ::part(endIcon),:host(:not(.ui5-ai-button-fade-out):not(.ui5-ai-button-fade-mid):not(.ui5-ai-button-fade-in)) ::part(arrowButton){opacity:1;transform:translateY(0)}:host(.ui5-ai-button-button-to-menu) .ui5-ai-button-inner::part(endIcon),:host(.ui5-ai-button-button-to-menu) .ui5-ai-button-inner::part(arrowButton){display:none;transform:translateY(0);opacity:0}:host(.ui5-ai-button-fade-out) .ui5-ai-button-text{opacity:0;transform:translateY(-1rem);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}:host(.ui5-ai-button-fade-out) ::part(icon){opacity:0;transform:translateY(-1rem);transition:opacity .05s ease-in-out 25ms,transform .1s ease-in-out 0s}:host(.ui5-ai-button-fade-out) ::part(endIcon){opacity:0;transform:translateY(-1rem);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}:host(.ui5-ai-button-fade-mid) .ui5-ai-button-text,:host(.ui5-ai-button-fade-mid) ::part(icon),:host(.ui5-ai-button-fade-mid) ::part(endIcon),:host(.ui5-ai-button-fade-mid) ::part(arrowButton){opacity:0;transform:translateY(1rem);transition:none}:host(.ui5-ai-button-fade-in) .ui5-ai-button-text{opacity:1;transform:translateY(0);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}:host(.ui5-ai-button-fade-in) ::part(icon){opacity:1;transform:translateY(0);transition:opacity .05s ease-in-out 25ms,transform .1s ease-in-out 0s}:host(.ui5-ai-button-fade-in) ::part(endIcon){opacity:1;transform:translateY(0);transition:opacity .06s ease-in-out .12s,transform .08s ease-in-out .12s}
@@ -1 +1 @@
1
- .ai-prompt-input-button{margin-left:.5rem;margin-top:3px}.ai-prompt-input-wrapper{display:flex;flex-direction:column;width:270px}.ai-prompt-input-form-wrapper{display:flex;flex:1}.ai-prompt-input-counter{font-size:.75rem;align-self:flex-end}#input{width:100%}.ai-prompt-inner-input-wrapper{display:flex;flex-direction:column;flex:1}
1
+ :host(:not([hidden])){display:inline-block}.ai-prompt-input-button{margin-left:.5rem;margin-top:3px}.ai-prompt-input-wrapper{display:flex;flex-direction:column;min-width:270px}.ai-prompt-input-form-wrapper{display:flex;flex:1}.ai-prompt-input-counter{font-size:.75rem;align-self:flex-end}#input{width:100%}.ai-prompt-inner-input-wrapper{display:flex;flex-direction:column;flex:1}
@@ -0,0 +1 @@
1
+ :host{display:inline-flex;align-items:center}#versioning-history{display:flex;align-items:center;gap:0}.version-step-counter{margin:0 .25rem;display:flex;align-items:center;color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize);line-height:1}
@@ -0,0 +1 @@
1
+ .ui5-ai-textarea-root{position:relative;display:flex;flex-direction:column;width:100%;height:100%}.ui5-ai-textarea-root .ui5-textarea-wrapper{display:flex;flex-direction:column;flex:1;position:relative}.ui5-ai-textarea-root [part=footer]{width:100%;margin-top:auto;flex-shrink:0}.ui5-ai-writing-assistant-footer-bar{background:var(--_ui5-v2-16-0-rc-1_texteditor_toolbar_background, var(--sapPageFooter_Background));width:100%;box-sizing:border-box;box-shadow:none;border-bottom:none;border-top:none;padding:.5rem;min-height:2.75rem;display:flex;align-items:center;justify-content:flex-start}.ui5-ai-writing-assistant-footer-bar--with-border{border-top:1px solid var(--sapPageFooter_BorderColor)}.ui5-ai-writing-assistant-action-label{color:var(--sapContent_LabelColor);font-size:var(--sapFontSize);font-family:"72override",var(--sapFontFamily);margin-left:.25rem}
@@ -669,6 +669,203 @@
669
669
  }
670
670
  }
671
671
  ]
672
+ },
673
+ {
674
+ "kind": "javascript-module",
675
+ "path": "dist/TextArea.js",
676
+ "declarations": [
677
+ {
678
+ "kind": "class",
679
+ "description": "### Overview\n\nThe `ui5-ai-textarea` component extends the standard TextArea with AI Writing Assistant capabilities.\nIt provides AI-powered text generation, editing suggestions, and version management functionality.\n\n### Structure\nThe `ui5-ai-textarea` consists of the following elements:\n- TextArea: The main text input area with all standard textarea functionality\n- AI Toolbar: Specialized toolbar with AI generation controls\n- Version Navigation: Controls for navigating between AI-generated versions\n- Menu Integration: Support for AI action menu\n\nSingle vs multiple result display is determined internally based on totalVersions count.\n\n### ES6 Module Import\n\n`import \"@sap-webcomponents/ai/dist/TextArea.js\";`",
680
+ "name": "AITextArea",
681
+ "slots": [
682
+ {
683
+ "description": "Defines a slot for `ui5-menu` integration. This slot allows you to pass a `ui5-menu` instance that will be associated with the assistant.",
684
+ "name": "menu",
685
+ "_ui5privacy": "public",
686
+ "_ui5type": {
687
+ "text": "HTMLElement"
688
+ }
689
+ }
690
+ ],
691
+ "members": [
692
+ {
693
+ "kind": "field",
694
+ "name": "loading",
695
+ "type": {
696
+ "text": "boolean"
697
+ },
698
+ "default": "false",
699
+ "description": "Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.",
700
+ "privacy": "public"
701
+ },
702
+ {
703
+ "kind": "field",
704
+ "name": "actionText",
705
+ "type": {
706
+ "text": "string"
707
+ },
708
+ "default": "\"\"",
709
+ "description": "Defines the action text of the AI Writing Assistant.",
710
+ "privacy": "public"
711
+ },
712
+ {
713
+ "kind": "field",
714
+ "name": "currentVersionIndex",
715
+ "type": {
716
+ "text": "number"
717
+ },
718
+ "default": "1",
719
+ "description": "Indicates the index of the currently displayed result version.\n\nThe index is **1-based** (i.e. `1` represents the first result).",
720
+ "privacy": "public"
721
+ },
722
+ {
723
+ "kind": "field",
724
+ "name": "totalVersions",
725
+ "type": {
726
+ "text": "number"
727
+ },
728
+ "default": "1",
729
+ "description": "Indicates the total number of result versions available.",
730
+ "privacy": "public"
731
+ }
732
+ ],
733
+ "events": [
734
+ {
735
+ "name": "version-change",
736
+ "_ui5privacy": "public",
737
+ "type": {
738
+ "text": "CustomEvent"
739
+ },
740
+ "description": "Fired when the user clicks on version navigation buttons.",
741
+ "_ui5Cancelable": false,
742
+ "_ui5allowPreventDefault": false,
743
+ "_ui5Bubbles": false
744
+ },
745
+ {
746
+ "name": "stop-generation",
747
+ "_ui5privacy": "public",
748
+ "type": {
749
+ "text": "CustomEvent"
750
+ },
751
+ "description": "Fired when the user requests to stop AI text generation.",
752
+ "_ui5Cancelable": false,
753
+ "_ui5allowPreventDefault": false,
754
+ "_ui5Bubbles": false
755
+ }
756
+ ],
757
+ "attributes": [
758
+ {
759
+ "description": "Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.",
760
+ "name": "loading",
761
+ "default": "false",
762
+ "fieldName": "loading",
763
+ "type": {
764
+ "text": "boolean"
765
+ }
766
+ },
767
+ {
768
+ "description": "Defines the action text of the AI Writing Assistant.",
769
+ "name": "action-text",
770
+ "default": "\"\"",
771
+ "fieldName": "actionText",
772
+ "type": {
773
+ "text": "string"
774
+ }
775
+ },
776
+ {
777
+ "description": "Indicates the index of the currently displayed result version.\n\nThe index is **1-based** (i.e. `1` represents the first result).",
778
+ "name": "current-version-index",
779
+ "default": "1",
780
+ "fieldName": "currentVersionIndex",
781
+ "type": {
782
+ "text": "number"
783
+ }
784
+ },
785
+ {
786
+ "description": "Indicates the total number of result versions available.",
787
+ "name": "total-versions",
788
+ "default": "1",
789
+ "fieldName": "totalVersions",
790
+ "type": {
791
+ "text": "number"
792
+ }
793
+ }
794
+ ],
795
+ "superclass": {
796
+ "name": "TextArea",
797
+ "package": "@ui5/webcomponents",
798
+ "module": "dist/TextArea.js"
799
+ },
800
+ "tagName": "ui5-ai-textarea",
801
+ "customElement": true,
802
+ "_ui5since": "2.16.0",
803
+ "_ui5privacy": "public"
804
+ }
805
+ ],
806
+ "exports": [
807
+ {
808
+ "kind": "js",
809
+ "name": "default",
810
+ "declaration": {
811
+ "name": "AITextArea",
812
+ "module": "dist/TextArea.js"
813
+ }
814
+ },
815
+ {
816
+ "kind": "custom-element-definition",
817
+ "name": "ui5-ai-textarea",
818
+ "declaration": {
819
+ "name": "AITextArea",
820
+ "module": "dist/TextArea.js"
821
+ }
822
+ }
823
+ ]
824
+ },
825
+ {
826
+ "kind": "javascript-module",
827
+ "path": "dist/ToolbarLabel.js",
828
+ "declarations": [],
829
+ "exports": [
830
+ {
831
+ "kind": "js",
832
+ "name": "default",
833
+ "declaration": {
834
+ "name": "ToolbarLabel",
835
+ "module": "dist/ToolbarLabel.js"
836
+ }
837
+ }
838
+ ]
839
+ },
840
+ {
841
+ "kind": "javascript-module",
842
+ "path": "dist/Versioning.js",
843
+ "declarations": [],
844
+ "exports": [
845
+ {
846
+ "kind": "js",
847
+ "name": "default",
848
+ "declaration": {
849
+ "name": "Versioning",
850
+ "module": "dist/Versioning.js"
851
+ }
852
+ }
853
+ ]
854
+ },
855
+ {
856
+ "kind": "javascript-module",
857
+ "path": "dist/WritingAssistant.js",
858
+ "declarations": [],
859
+ "exports": [
860
+ {
861
+ "kind": "js",
862
+ "name": "default",
863
+ "declaration": {
864
+ "name": "WritingAssistant",
865
+ "module": "dist/WritingAssistant.js"
866
+ }
867
+ }
868
+ ]
672
869
  }
673
870
  ]
674
871
  }