@ui5/webcomponents-ai 2.16.0-rc.3 → 2.16.1-rc.0

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 (56) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +3 -2
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/Assets-fetch.js +1 -1
  5. package/dist/Assets-fetch.js.map +1 -1
  6. package/dist/Assets-node.js +1 -1
  7. package/dist/Assets-node.js.map +1 -1
  8. package/dist/Input.d.ts +139 -0
  9. package/dist/Input.js +290 -0
  10. package/dist/Input.js.map +1 -0
  11. package/dist/InputTemplate.d.ts +10 -0
  12. package/dist/InputTemplate.js +28 -0
  13. package/dist/InputTemplate.js.map +1 -0
  14. package/dist/TextArea.js +0 -6
  15. package/dist/TextArea.js.map +1 -1
  16. package/dist/WritingAssistant.d.ts +2 -0
  17. package/dist/WritingAssistant.js +8 -1
  18. package/dist/WritingAssistant.js.map +1 -1
  19. package/dist/WritingAssistantTemplate.js +1 -1
  20. package/dist/WritingAssistantTemplate.js.map +1 -1
  21. package/dist/bundle.esm.js +1 -0
  22. package/dist/bundle.esm.js.map +1 -1
  23. package/dist/css/themes/Button.css +1 -1
  24. package/dist/css/themes/Input.css +1 -0
  25. package/dist/css/themes/TextArea.css +1 -1
  26. package/dist/css/themes/WritingAssistant.css +1 -1
  27. package/dist/custom-elements-internal.json +155 -0
  28. package/dist/custom-elements.json +126 -0
  29. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  30. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  31. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  32. package/dist/generated/i18n/i18n-defaults.d.ts +5 -1
  33. package/dist/generated/i18n/i18n-defaults.js +9 -5
  34. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  35. package/dist/generated/themes/Button.css.d.ts +1 -1
  36. package/dist/generated/themes/Button.css.js +1 -1
  37. package/dist/generated/themes/Button.css.js.map +1 -1
  38. package/dist/generated/themes/Input.css.d.ts +2 -0
  39. package/dist/generated/themes/Input.css.js +8 -0
  40. package/dist/generated/themes/Input.css.js.map +1 -0
  41. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  42. package/dist/generated/themes/TextArea.css.js +1 -1
  43. package/dist/generated/themes/TextArea.css.js.map +1 -1
  44. package/dist/generated/themes/WritingAssistant.css.d.ts +1 -1
  45. package/dist/generated/themes/WritingAssistant.css.js +1 -1
  46. package/dist/generated/themes/WritingAssistant.css.js.map +1 -1
  47. package/dist/vscode.html-custom-data.json +22 -0
  48. package/dist/web-types.json +76 -1
  49. package/package.json +7 -7
  50. package/src/InputTemplate.tsx +197 -0
  51. package/src/WritingAssistantTemplate.tsx +1 -1
  52. package/src/i18n/messagebundle.properties +13 -1
  53. package/src/i18n/messagebundle_en.properties +4 -4
  54. package/src/i18n/messagebundle_en_US_sappsd.properties +4 -4
  55. package/src/i18n/messagebundle_en_US_saptrc.properties +4 -4
  56. package/src/themes/Input.css +83 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\n\nimport { BaseTextArea } from \"@ui5/webcomponents/dist/TextArea.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tWRITING_ASSISTANT_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n// Styles\nimport TextAreaCss from \"./generated/themes/TextArea.css.js\";\nimport textareaStyles from \"@ui5/webcomponents/dist/generated/themes/TextArea.css.js\";\nimport valueStateMessageStyles from \"@ui5/webcomponents/dist/generated/themes/ValueStateMessage.css.js\";\n\n// Templates\nimport TextAreaTemplate from \"./TextAreaTemplate.js\";\nimport WritingAssistant from \"./WritingAssistant.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-ai-textarea` component extends the standard TextArea with Writing Assistant capabilities.\n * It provides AI-powered text generation, editing suggestions, and version management functionality.\n *\n * ### Structure\n * The `ui5-ai-textarea` consists of the following elements:\n * - TextArea: The main text input area with all standard textarea functionality\n * - WritingAssistant: Dedicated toolbar containing:\n * - Versioning: A component with left/right navigation buttons and a label for browsing AI-generated versions\n * - AI Button: Opens a menu that can be extended with custom AI generation options through slotting\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-ai/dist/TextArea.js\";`\n *\n * @constructor\n * @extends BaseTextArea\n * @experimental The **@ui5/webcomponents-ai** package is under development and considered experimental - components' APIs are subject to change.\n * @since 2.16.0\n * @public\n * @slot {HTMLElement} menu Defines a slot for `ui5-menu` integration. This slot allows you to pass a `ui5-menu` instance that will be associated with the assistant.\n */\n@customElement({\n\ttag: \"ui5-ai-textarea\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: TextAreaTemplate,\n\tstyles: [\n\t\ttextareaStyles,\n\t\tvalueStateMessageStyles,\n\t\tTextAreaCss,\n\t],\n\tdependencies: [\n\t\tWritingAssistant,\n\t\tBusyIndicator,\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 requests to stop AI text generation.\n *\n * @public\n */\n@event(\"stop-generation\")\n\nclass TextArea extends BaseTextArea {\n\teventDetails!: BaseTextArea[\"eventDetails\"] & {\n\t\t\"version-change\": {\n\t\t\tbackwards: boolean;\n\t\t};\n\t\t\"stop-generation\": object;\n\t};\n\n\t// Store bound handler for proper cleanup\n\tprivate _keydownHandler?: (event: KeyboardEvent) => void;\n\n\t/**\n\t * Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the prompt description of the current action.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tpromptDescription = \"\";\n\n\t/**\n\t * Indicates the index of the currently displayed version.\n\t *\n\t *\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tcurrentVersion = 0;\n\n\t/**\n\t * Indicates the total number of result versions available.\n\t *\n\t * Notes:\n\t * Versioning is hidden if the value is `0`\n\t *\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\ttotalVersions = 0;\n\n\t@slot({ type: HTMLElement })\n\tmenu!: Array<HTMLElement>;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic async onDefine() {\n\t\tTextArea.i18nBundle = await getI18nBundle(\"@ui5/webcomponents-ai\");\n\t}\n\n\t/**\n\t * Handles the click event for the \"Previous Version\" button.\n\t * Updates the current version index and syncs content.\n\t */\n\t_handlePreviousVersionClick(): void {\n\t\tthis.fireDecoratorEvent(\"version-change\", { backwards: true });\n\t}\n\n\t/**\n\t * Handles the click event for the \"Next Version\" button.\n\t * Updates the current version index and syncs content.\n\t */\n\t_handleNextVersionClick(): void {\n\t\tthis.fireDecoratorEvent(\"version-change\", { backwards: false });\n\t}\n\n\t/**\n\t * Handles the version change event from the writing assistant.\n\t */\n\t_handleVersionChange(e: CustomEvent<{ backwards: boolean }>): void {\n\t\tif (e.detail.backwards) {\n\t\t\tthis._handlePreviousVersionClick();\n\t\t} else {\n\t\t\tthis._handleNextVersionClick();\n\t\t}\n\t}\n\n\t/**\n\t * Handles keydown events for keyboard shortcuts.\n\t * @private\n\t */\n\t_handleKeydown(keyboardEvent: KeyboardEvent) {\n\t\tconst isCtrlOrCmd = keyboardEvent.ctrlKey || keyboardEvent.metaKey;\n\t\tconst isShift = keyboardEvent.shiftKey;\n\n\t\tif (isShift && keyboardEvent.key.toLowerCase() === \"f4\") {\n\t\t\tconst toolbar = this.shadowRoot?.querySelector(\"[ui5-ai-writing-assistant]\") as HTMLElement;\n\t\t\tconst aiButton = toolbar?.shadowRoot?.querySelector(\"#ai-menu-btn\") as HTMLElement;\n\n\t\t\tif (aiButton) {\n\t\t\t\taiButton.focus();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.totalVersions > 1) {\n\t\t\tif (isCtrlOrCmd && isShift && keyboardEvent.key.toLowerCase() === \"z\") {\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tthis._handlePreviousVersionClick();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isCtrlOrCmd && isShift && keyboardEvent.key.toLowerCase() === \"y\") {\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tthis._handleNextVersionClick();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Overrides the parent's onAfterRendering to add keydown handler.\n\t * @private\n\t */\n\tonAfterRendering() {\n\t\tsuper.onAfterRendering();\n\n\t\t// Add keydown event listener to the textarea\n\t\tconst textarea = this.shadowRoot?.querySelector(\"textarea\");\n\t\tif (textarea && !this._keydownHandler) {\n\t\t\tthis._keydownHandler = this._handleKeydown.bind(this);\n\t\t\ttextarea.addEventListener(\"keydown\", this._keydownHandler);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the generate click event from the AI toolbar.\n\t * Opens the AI menu and sets the opener element.\n\t *\n\t * @private\n\t */\n\t_handleAIButtonClick = (e: CustomEvent<{ clickTarget?: HTMLElement }>) => {\n\t\tconst menuNodes = this.getSlottedNodes(\"menu\");\n\t\tif (menuNodes.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (!e.detail?.clickTarget) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst menu = menuNodes[0] as HTMLElement & { opener?: HTMLElement; open?: boolean };\n\t\tif (menu && typeof menu.open !== \"undefined\") {\n\t\t\tmenu.opener = e.detail.clickTarget;\n\t\t\tmenu.open = true;\n\t\t}\n\t}\n\tget _ariaLabel() {\n\t\treturn this.accessibleName || TextArea.i18nBundle.getText(WRITING_ASSISTANT_LABEL);\n\t}\n\n\t/**\n\t * Handles the stop generation event from the AI toolbar.\n\t * Fires the stop-generation event to notify listeners.\n\t *\n\t * @private\n\t */\n\thandleStopGeneration = () => {\n\t\tthis.fireDecoratorEvent(\"stop-generation\");\n\t}\n}\n\nTextArea.define();\n\nexport default TextArea;\n"]}
1
+ {"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\n\nimport { BaseTextArea } from \"@ui5/webcomponents/dist/TextArea.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tWRITING_ASSISTANT_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n// Styles\nimport TextAreaCss from \"./generated/themes/TextArea.css.js\";\nimport textareaStyles from \"@ui5/webcomponents/dist/generated/themes/TextArea.css.js\";\nimport valueStateMessageStyles from \"@ui5/webcomponents/dist/generated/themes/ValueStateMessage.css.js\";\n\n// Templates\nimport TextAreaTemplate from \"./TextAreaTemplate.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-ai-textarea` component extends the standard TextArea with Writing Assistant capabilities.\n * It provides AI-powered text generation, editing suggestions, and version management functionality.\n *\n * ### Structure\n * The `ui5-ai-textarea` consists of the following elements:\n * - TextArea: The main text input area with all standard textarea functionality\n * - WritingAssistant: Dedicated toolbar containing:\n * - Versioning: A component with left/right navigation buttons and a label for browsing AI-generated versions\n * - AI Button: Opens a menu that can be extended with custom AI generation options through slotting\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-ai/dist/TextArea.js\";`\n *\n * @constructor\n * @extends BaseTextArea\n * @experimental The **@ui5/webcomponents-ai** package is under development and considered experimental - components' APIs are subject to change.\n * @since 2.16.0\n * @public\n * @slot {HTMLElement} menu Defines a slot for `ui5-menu` integration. This slot allows you to pass a `ui5-menu` instance that will be associated with the assistant.\n */\n@customElement({\n\ttag: \"ui5-ai-textarea\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: TextAreaTemplate,\n\tstyles: [\n\t\ttextareaStyles,\n\t\tvalueStateMessageStyles,\n\t\tTextAreaCss,\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 requests to stop AI text generation.\n *\n * @public\n */\n@event(\"stop-generation\")\n\nclass TextArea extends BaseTextArea {\n\teventDetails!: BaseTextArea[\"eventDetails\"] & {\n\t\t\"version-change\": {\n\t\t\tbackwards: boolean;\n\t\t};\n\t\t\"stop-generation\": object;\n\t};\n\n\t// Store bound handler for proper cleanup\n\tprivate _keydownHandler?: (event: KeyboardEvent) => void;\n\n\t/**\n\t * Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the prompt description of the current action.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tpromptDescription = \"\";\n\n\t/**\n\t * Indicates the index of the currently displayed version.\n\t *\n\t *\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tcurrentVersion = 0;\n\n\t/**\n\t * Indicates the total number of result versions available.\n\t *\n\t * Notes:\n\t * Versioning is hidden if the value is `0`\n\t *\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\ttotalVersions = 0;\n\n\t@slot({ type: HTMLElement })\n\tmenu!: Array<HTMLElement>;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic async onDefine() {\n\t\tTextArea.i18nBundle = await getI18nBundle(\"@ui5/webcomponents-ai\");\n\t}\n\n\t/**\n\t * Handles the click event for the \"Previous Version\" button.\n\t * Updates the current version index and syncs content.\n\t */\n\t_handlePreviousVersionClick(): void {\n\t\tthis.fireDecoratorEvent(\"version-change\", { backwards: true });\n\t}\n\n\t/**\n\t * Handles the click event for the \"Next Version\" button.\n\t * Updates the current version index and syncs content.\n\t */\n\t_handleNextVersionClick(): void {\n\t\tthis.fireDecoratorEvent(\"version-change\", { backwards: false });\n\t}\n\n\t/**\n\t * Handles the version change event from the writing assistant.\n\t */\n\t_handleVersionChange(e: CustomEvent<{ backwards: boolean }>): void {\n\t\tif (e.detail.backwards) {\n\t\t\tthis._handlePreviousVersionClick();\n\t\t} else {\n\t\t\tthis._handleNextVersionClick();\n\t\t}\n\t}\n\n\t/**\n\t * Handles keydown events for keyboard shortcuts.\n\t * @private\n\t */\n\t_handleKeydown(keyboardEvent: KeyboardEvent) {\n\t\tconst isCtrlOrCmd = keyboardEvent.ctrlKey || keyboardEvent.metaKey;\n\t\tconst isShift = keyboardEvent.shiftKey;\n\n\t\tif (isShift && keyboardEvent.key.toLowerCase() === \"f4\") {\n\t\t\tconst toolbar = this.shadowRoot?.querySelector(\"[ui5-ai-writing-assistant]\") as HTMLElement;\n\t\t\tconst aiButton = toolbar?.shadowRoot?.querySelector(\"#ai-menu-btn\") as HTMLElement;\n\n\t\t\tif (aiButton) {\n\t\t\t\taiButton.focus();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.totalVersions > 1) {\n\t\t\tif (isCtrlOrCmd && isShift && keyboardEvent.key.toLowerCase() === \"z\") {\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tthis._handlePreviousVersionClick();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isCtrlOrCmd && isShift && keyboardEvent.key.toLowerCase() === \"y\") {\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tthis._handleNextVersionClick();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Overrides the parent's onAfterRendering to add keydown handler.\n\t * @private\n\t */\n\tonAfterRendering() {\n\t\tsuper.onAfterRendering();\n\n\t\t// Add keydown event listener to the textarea\n\t\tconst textarea = this.shadowRoot?.querySelector(\"textarea\");\n\t\tif (textarea && !this._keydownHandler) {\n\t\t\tthis._keydownHandler = this._handleKeydown.bind(this);\n\t\t\ttextarea.addEventListener(\"keydown\", this._keydownHandler);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the generate click event from the AI toolbar.\n\t * Opens the AI menu and sets the opener element.\n\t *\n\t * @private\n\t */\n\t_handleAIButtonClick = (e: CustomEvent<{ clickTarget?: HTMLElement }>) => {\n\t\tconst menuNodes = this.getSlottedNodes(\"menu\");\n\t\tif (menuNodes.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (!e.detail?.clickTarget) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst menu = menuNodes[0] as HTMLElement & { opener?: HTMLElement; open?: boolean };\n\t\tif (menu && typeof menu.open !== \"undefined\") {\n\t\t\tmenu.opener = e.detail.clickTarget;\n\t\t\tmenu.open = true;\n\t\t}\n\t}\n\tget _ariaLabel() {\n\t\treturn this.accessibleName || TextArea.i18nBundle.getText(WRITING_ASSISTANT_LABEL);\n\t}\n\n\t/**\n\t * Handles the stop generation event from the AI toolbar.\n\t * Fires the stop-generation event to notify listeners.\n\t *\n\t * @private\n\t */\n\thandleStopGeneration = () => {\n\t\tthis.fireDecoratorEvent(\"stop-generation\");\n\t}\n}\n\nTextArea.define();\n\nexport default TextArea;\n"]}
@@ -75,6 +75,7 @@ declare class WritingAssistant extends UI5Element {
75
75
  */
76
76
  totalVersions: number;
77
77
  static i18nBundleAi: I18nBundle;
78
+ static onDefine(): Promise<void>;
78
79
  /**
79
80
  * Handles the version change event from the versioning component.
80
81
  */
@@ -94,5 +95,6 @@ declare class WritingAssistant extends UI5Element {
94
95
  get _toolbarAccessibleName(): string;
95
96
  get _buttonAccessibleName(): string;
96
97
  get _buttonTooltip(): string;
98
+ get _stopTooltip(): string;
97
99
  }
98
100
  export default WritingAssistant;
@@ -12,7 +12,8 @@ import { i18n } from "@ui5/webcomponents-base/dist/decorators.js";
12
12
  import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
13
13
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
14
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";
15
+ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
16
+ 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, WRITING_ASSISTANT_STOP_TOOLTIP, } from "./generated/i18n/i18n-defaults.js";
16
17
  // Styles
17
18
  import WritingAssistantCss from "./generated/themes/WritingAssistant.css.js";
18
19
  // Templates
@@ -92,6 +93,9 @@ let WritingAssistant = WritingAssistant_1 = class WritingAssistant extends UI5El
92
93
  */
93
94
  this.totalVersions = 0;
94
95
  }
96
+ static async onDefine() {
97
+ WritingAssistant_1.i18nBundleAi = await getI18nBundle("@ui5/webcomponents-ai");
98
+ }
95
99
  /**
96
100
  * Handles the version change event from the versioning component.
97
101
  */
@@ -132,6 +136,9 @@ let WritingAssistant = WritingAssistant_1 = class WritingAssistant extends UI5El
132
136
  get _buttonTooltip() {
133
137
  return WritingAssistant_1.i18nBundleAi.getText(WRITING_ASSISTANT_BUTTON_TOOLTIP);
134
138
  }
139
+ get _stopTooltip() {
140
+ return WritingAssistant_1.i18nBundleAi.getText(WRITING_ASSISTANT_STOP_TOOLTIP);
141
+ }
135
142
  };
136
143
  __decorate([
137
144
  property({ type: Boolean })
@@ -1 +1 @@
1
- {"version":3,"file":"WritingAssistant.js","sourceRoot":"","sources":["../src/WritingAssistant.ts"],"names":[],"mappings":"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","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 prompt description of the 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\tpromptDescription = \"\";\n\n\t/**\n\t * Indicates the index of the currently displayed result version.\n\t *\n\t * The index is **0-based** (i.e. `0` represents the first result).\n\t * This property is synchronized with the parent AI TextArea component.\n\t *\n\t * @default 0\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number })\n\tcurrentVersion = 0;\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 > 0, previous/next buttons become available.\n\t *\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\ttotalVersions = 0;\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"]}
1
+ {"version":3,"file":"WritingAssistant.js","sourceRoot":"","sources":["../src/WritingAssistant.ts"],"names":[],"mappings":"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","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 { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.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\tWRITING_ASSISTANT_STOP_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 prompt description of the 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\tpromptDescription = \"\";\n\n\t/**\n\t * Indicates the index of the currently displayed result version.\n\t *\n\t * The index is **0-based** (i.e. `0` represents the first result).\n\t * This property is synchronized with the parent AI TextArea component.\n\t *\n\t * @default 0\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property({ type: Number })\n\tcurrentVersion = 0;\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 > 0, previous/next buttons become available.\n\t *\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\ttotalVersions = 0;\n\n\t@i18n(\"@ui5/webcomponents-ai\")\n\tstatic i18nBundleAi: I18nBundle;\n\n\tstatic async onDefine() {\n\t\tWritingAssistant.i18nBundleAi = await getI18nBundle(\"@ui5/webcomponents-ai\");\n\t}\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\tget _stopTooltip() {\n\t\treturn WritingAssistant.i18nBundleAi.getText(WRITING_ASSISTANT_STOP_TOOLTIP);\n\t}\n}\n\nWritingAssistant.define();\n\nexport default WritingAssistant;\n"]}
@@ -7,6 +7,6 @@ import ToolbarButton from "@ui5/webcomponents/dist/ToolbarButton.js";
7
7
  export default function WritingAssistantTemplate() {
8
8
  const isMultiResults = this.totalVersions > 1;
9
9
  const hasResults = (this.totalVersions > 0 && this.promptDescription) || 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.currentVersion + 1, totalSteps: this.totalVersions, "onVersion-change": this.handleVersionChange })), hasResults && this.promptDescription && (_jsx(ToolbarLabel, { text: this.promptDescription, 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" })] }));
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.currentVersion + 1, totalSteps: this.totalVersions, "onVersion-change": this.handleVersionChange })), hasResults && this.promptDescription && (_jsx(ToolbarLabel, { text: this.promptDescription, 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.loading ? this._stopTooltip : this._buttonTooltip, accessibilityAttributes: { hasPopup: this.loading ? "false" : "menu" }, accessibleName: this._buttonAccessibleName, overflowPriority: "NeverOverflow" })] }));
11
11
  }
12
12
  //# sourceMappingURL=WritingAssistantTemplate.js.map
@@ -1 +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,iBAAiB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;IAEtF,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,cAAc,GAAG,CAAC,EACpC,UAAU,EAAE,IAAI,CAAC,aAAa,sBACZ,IAAI,CAAC,mBAAmB,GACzC,CACF,EAEA,UAAU,IAAI,IAAI,CAAC,iBAAiB,IAAI,CACxC,KAAC,YAAY,IACZ,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAC5B,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.promptDescription) || 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.currentVersion + 1}\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.promptDescription && (\n\t\t\t\t<ToolbarLabel\n\t\t\t\t\ttext={this.promptDescription}\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"]}
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,iBAAiB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;IAEtF,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,cAAc,GAAG,CAAC,EACpC,UAAU,EAAE,IAAI,CAAC,aAAa,sBACZ,IAAI,CAAC,mBAAmB,GACzC,CACF,EAEA,UAAU,IAAI,IAAI,CAAC,iBAAiB,IAAI,CACxC,KAAC,YAAY,IACZ,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAC5B,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,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAC/D,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.promptDescription) || 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.currentVersion + 1}\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.promptDescription && (\n\t\t\t\t<ToolbarLabel\n\t\t\t\t\ttext={this.promptDescription}\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.loading ? this._stopTooltip : 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"]}
@@ -6,5 +6,6 @@ import Button from "./Button.js";
6
6
  import ButtonState from "./ButtonState.js";
7
7
  import PromptInput from "./PromptInput.js";
8
8
  import TextArea from "./TextArea.js";
9
+ import Input from "./Input.js";
9
10
  export default testAssets;
10
11
  //# 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;AAC3C,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,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 TextArea from \"./TextArea.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,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,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 TextArea from \"./TextArea.js\";\nimport Input from \"./Input.js\";\n\nexport default testAssets;\n"]}
@@ -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-16-0-rc-3_button_base_min_width)!important;max-width:var(--_ui5-v2-16-0-rc-3_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-3_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-3_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-3_button_base_min_width);max-width:var(--_ui5-v2-16-0-rc-3_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-1-rc-0_button_base_min_width)!important;max-width:var(--_ui5-v2-16-1-rc-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-16-1-rc-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-16-1-rc-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-16-1-rc-0_button_base_min_width);max-width:var(--_ui5-v2-16-1-rc-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}
@@ -0,0 +1 @@
1
+ .ui5-ai-input-root{width:100%;height:100%;border-right:none}:host([focused]:not([opened])[_is-menu-open]) .ui5-ai-input-root:hover{border-radius:var(--_ui5-v2-16-1-rc-0_input_border_radius);box-shadow:var(--sapField_Hover_Shadow)}:host([focused]:not([opened])[_is-menu-open]) .ui5-input-focusable-element:after{border:var(--_ui5-v2-16-1-rc-0-input-border)}.ui5-input-busy-indicator{flex:1;width:100%;height:100%;position:relative;box-sizing:border-box;display:block}.ui5-ai-input-busy .ui5-ai-input-button-wrapper{background-color:inherit;border:none}.ui5-ai-input-button-wrapper{display:flex;justify-content:center;align-items:center;width:var(--_ui5-v2-16-1-rc-0_input_icon_width);min-width:var(--_ui5-v2-16-1-rc-0_input_icon_width);height:var(--_ui5-v2-16-1-rc-0_input_icon_wrapper_height);padding:0;box-sizing:border-box;border-radius:var(--_ui5-v2-16-1-rc-0_input_border_radius);cursor:pointer;border:none}.ui5-input-ai-button[hidden]{display:none}.ui5-ai-input-button-wrapper.ui5-input-button-menu-open,.ui5-ai-input-button-wrapper:active{background-color:var(--sapButton_Selected_Background);box-shadow:var(--sapField_Hover_Shadow);color:var(--sapButton_Selected_TextColor)}.ui5-ai-input-button-wrapper:not(.ui5-input-button-menu-open):not(.ui5-ai-input-loading):not(:active):hover,.ui5-ai-input-button-wrapper.ui5-ai-input-loading:hover{background-color:var(--sapButton_Hover_Background);border:1px solid var(--sapButton_Hover_BorderColor);box-shadow:inset 0 0 0 .0625rem var(--sapContent_Neutral_Shadow)}.ui5-input-button-menu-open{background-color:var(--sapButton_Selected_Background);box-shadow:var(--sapField_Hover_Shadow)}[ui5-menu-item].ui5-ai-versioning-menu-footer:hover{background-color:inherit}.ui5-ai-versioning-menu-footer::part(native-li){padding-right:.25rem}#ai-menu-btn{--_ui5-v2-16-1-rc-0_button_focused_border: none}
@@ -1 +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-3_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
+ .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-1-rc-0_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
- .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-3_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}
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-1-rc-0_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}
@@ -357,6 +357,161 @@
357
357
  }
358
358
  ]
359
359
  },
360
+ {
361
+ "kind": "javascript-module",
362
+ "path": "dist/Input.js",
363
+ "declarations": [
364
+ {
365
+ "kind": "class",
366
+ "description": "### Overview\n\nThe `ui5-ai-input` component extends the standard `ui5-input` with **AI Writing Assistant** capabilities.\n\n### Structure\n\nThe `ui5-ai-input` consists of the following main parts:\n\n- **Input Field** – Inherits all standard Input behaviors.\n- **AI Action Button** – Appears when focused or loading, providing access to AI-related actions or stopping generation.\n\nThe component automatically determines which elements to render based on its internal state:\n- The AI Button is only shown when there are available `actions`.\n- The version navigation appears only when `totalVersions > 1`.\n\n### Keyboard Support\n\n- **Shift + F4** — Opens the AI menu.\n- **Ctrl + Shift + Z / Y** — Navigates backward/forward between AI-generated versions.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents-ai/dist/Input.js\";`",
367
+ "name": "Input",
368
+ "slots": [
369
+ {
370
+ "name": "actions",
371
+ "description": "Defines the items of the menu for the component.",
372
+ "_ui5type": {
373
+ "text": "Array<HTMLElement>"
374
+ },
375
+ "_ui5privacy": "public"
376
+ }
377
+ ],
378
+ "members": [
379
+ {
380
+ "kind": "field",
381
+ "name": "currentVersion",
382
+ "type": {
383
+ "text": "number"
384
+ },
385
+ "default": "0",
386
+ "description": "Indicates the index of the currently displayed version.",
387
+ "privacy": "public"
388
+ },
389
+ {
390
+ "kind": "field",
391
+ "name": "totalVersions",
392
+ "type": {
393
+ "text": "number"
394
+ },
395
+ "default": "0",
396
+ "description": "Indicates the total number of result versions available.\n\nWhen not set or set to 0, the versioning will be hidden.",
397
+ "privacy": "public"
398
+ },
399
+ {
400
+ "kind": "field",
401
+ "name": "loading",
402
+ "type": {
403
+ "text": "boolean"
404
+ },
405
+ "default": "false",
406
+ "description": "Defines whether the AI Writing Assistant is currently loading.\n\nWhen `true`, indicates that an AI action is in progress.",
407
+ "privacy": "public"
408
+ }
409
+ ],
410
+ "events": [
411
+ {
412
+ "name": "button-click",
413
+ "_ui5privacy": "public",
414
+ "type": {
415
+ "text": "CustomEvent"
416
+ },
417
+ "description": "Fired when the user selects the AI button.",
418
+ "_ui5Cancelable": true,
419
+ "_ui5allowPreventDefault": true,
420
+ "_ui5Bubbles": false
421
+ },
422
+ {
423
+ "name": "stop-generation",
424
+ "_ui5privacy": "public",
425
+ "type": {
426
+ "text": "CustomEvent"
427
+ },
428
+ "description": "Fired when the user selects the \"Stop\" button to stop ongoing AI text generation.",
429
+ "_ui5Cancelable": false,
430
+ "_ui5allowPreventDefault": false,
431
+ "_ui5Bubbles": false
432
+ },
433
+ {
434
+ "name": "version-change",
435
+ "_ui5privacy": "public",
436
+ "type": {
437
+ "text": "CustomEvent<undefined>"
438
+ },
439
+ "description": "Fired when the user selects the version navigation buttons.",
440
+ "_ui5Cancelable": false,
441
+ "_ui5allowPreventDefault": false,
442
+ "_ui5Bubbles": false,
443
+ "_ui5parameters": [
444
+ {
445
+ "type": {
446
+ "text": "boolean"
447
+ },
448
+ "name": "backwards",
449
+ "_ui5privacy": "public",
450
+ "description": "Indicates if navigation is backwards (true) or forwards (false, default)"
451
+ }
452
+ ]
453
+ }
454
+ ],
455
+ "attributes": [
456
+ {
457
+ "description": "Indicates the index of the currently displayed version.",
458
+ "name": "current-version",
459
+ "default": "0",
460
+ "fieldName": "currentVersion",
461
+ "type": {
462
+ "text": "number"
463
+ }
464
+ },
465
+ {
466
+ "description": "Indicates the total number of result versions available.\n\nWhen not set or set to 0, the versioning will be hidden.",
467
+ "name": "total-versions",
468
+ "default": "0",
469
+ "fieldName": "totalVersions",
470
+ "type": {
471
+ "text": "number"
472
+ }
473
+ },
474
+ {
475
+ "description": "Defines whether the AI Writing Assistant is currently loading.\n\nWhen `true`, indicates that an AI action is in progress.",
476
+ "name": "loading",
477
+ "default": "false",
478
+ "fieldName": "loading",
479
+ "type": {
480
+ "text": "boolean"
481
+ }
482
+ }
483
+ ],
484
+ "superclass": {
485
+ "name": "BaseInput",
486
+ "package": "@ui5/webcomponents",
487
+ "module": "dist/Input.js"
488
+ },
489
+ "tagName": "ui5-ai-input",
490
+ "customElement": true,
491
+ "_ui5experimental": "The **@ui5/webcomponents-ai** package is under active development and considered experimental. Component APIs are subject to change.",
492
+ "_ui5since": "2.16.0",
493
+ "_ui5privacy": "public"
494
+ }
495
+ ],
496
+ "exports": [
497
+ {
498
+ "kind": "js",
499
+ "name": "default",
500
+ "declaration": {
501
+ "name": "Input",
502
+ "module": "dist/Input.js"
503
+ }
504
+ },
505
+ {
506
+ "kind": "custom-element-definition",
507
+ "name": "ui5-ai-input",
508
+ "declaration": {
509
+ "name": "Input",
510
+ "module": "dist/Input.js"
511
+ }
512
+ }
513
+ ]
514
+ },
360
515
  {
361
516
  "kind": "javascript-module",
362
517
  "path": "dist/PromptInput.js",
@@ -326,6 +326,132 @@
326
326
  }
327
327
  ]
328
328
  },
329
+ {
330
+ "kind": "javascript-module",
331
+ "path": "dist/Input.js",
332
+ "declarations": [
333
+ {
334
+ "kind": "class",
335
+ "description": "### Overview\n\nThe `ui5-ai-input` component extends the standard `ui5-input` with **AI Writing Assistant** capabilities.\n\n### Structure\n\nThe `ui5-ai-input` consists of the following main parts:\n\n- **Input Field** – Inherits all standard Input behaviors.\n- **AI Action Button** – Appears when focused or loading, providing access to AI-related actions or stopping generation.\n\nThe component automatically determines which elements to render based on its internal state:\n- The AI Button is only shown when there are available `actions`.\n- The version navigation appears only when `totalVersions > 1`.\n\n### Keyboard Support\n\n- **Shift + F4** — Opens the AI menu.\n- **Ctrl + Shift + Z / Y** — Navigates backward/forward between AI-generated versions.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents-ai/dist/Input.js\";`",
336
+ "name": "Input",
337
+ "slots": [
338
+ {
339
+ "name": "actions",
340
+ "description": "Defines the items of the menu for the component."
341
+ }
342
+ ],
343
+ "members": [
344
+ {
345
+ "kind": "field",
346
+ "name": "currentVersion",
347
+ "type": {
348
+ "text": "number"
349
+ },
350
+ "default": "0",
351
+ "description": "Indicates the index of the currently displayed version.",
352
+ "privacy": "public"
353
+ },
354
+ {
355
+ "kind": "field",
356
+ "name": "totalVersions",
357
+ "type": {
358
+ "text": "number"
359
+ },
360
+ "default": "0",
361
+ "description": "Indicates the total number of result versions available.\n\nWhen not set or set to 0, the versioning will be hidden.",
362
+ "privacy": "public"
363
+ },
364
+ {
365
+ "kind": "field",
366
+ "name": "loading",
367
+ "type": {
368
+ "text": "boolean"
369
+ },
370
+ "default": "false",
371
+ "description": "Defines whether the AI Writing Assistant is currently loading.\n\nWhen `true`, indicates that an AI action is in progress.",
372
+ "privacy": "public"
373
+ }
374
+ ],
375
+ "events": [
376
+ {
377
+ "name": "button-click",
378
+ "type": {
379
+ "text": "CustomEvent"
380
+ },
381
+ "description": "Fired when the user selects the AI button."
382
+ },
383
+ {
384
+ "name": "stop-generation",
385
+ "type": {
386
+ "text": "CustomEvent"
387
+ },
388
+ "description": "Fired when the user selects the \"Stop\" button to stop ongoing AI text generation."
389
+ },
390
+ {
391
+ "name": "version-change",
392
+ "type": {
393
+ "text": "CustomEvent<undefined>"
394
+ },
395
+ "description": "Fired when the user selects the version navigation buttons."
396
+ }
397
+ ],
398
+ "attributes": [
399
+ {
400
+ "description": "Indicates the index of the currently displayed version.",
401
+ "name": "current-version",
402
+ "default": "0",
403
+ "fieldName": "currentVersion",
404
+ "type": {
405
+ "text": "number"
406
+ }
407
+ },
408
+ {
409
+ "description": "Indicates the total number of result versions available.\n\nWhen not set or set to 0, the versioning will be hidden.",
410
+ "name": "total-versions",
411
+ "default": "0",
412
+ "fieldName": "totalVersions",
413
+ "type": {
414
+ "text": "number"
415
+ }
416
+ },
417
+ {
418
+ "description": "Defines whether the AI Writing Assistant is currently loading.\n\nWhen `true`, indicates that an AI action is in progress.",
419
+ "name": "loading",
420
+ "default": "false",
421
+ "fieldName": "loading",
422
+ "type": {
423
+ "text": "boolean"
424
+ }
425
+ }
426
+ ],
427
+ "superclass": {
428
+ "name": "BaseInput",
429
+ "package": "@ui5/webcomponents",
430
+ "module": "dist/Input.js"
431
+ },
432
+ "tagName": "ui5-ai-input",
433
+ "customElement": true
434
+ }
435
+ ],
436
+ "exports": [
437
+ {
438
+ "kind": "js",
439
+ "name": "default",
440
+ "declaration": {
441
+ "name": "Input",
442
+ "module": "dist/Input.js"
443
+ }
444
+ },
445
+ {
446
+ "kind": "custom-element-definition",
447
+ "name": "ui5-ai-input",
448
+ "declaration": {
449
+ "name": "Input",
450
+ "module": "dist/Input.js"
451
+ }
452
+ }
453
+ ]
454
+ },
329
455
  {
330
456
  "kind": "javascript-module",
331
457
  "path": "dist/PromptInput.js",
@@ -1 +1 @@
1
- {"PROMPT_INPUT_CHARACTERS_LEFT":"{0} characters remaining","PROMPT_INPUT_CHARACTERS_EXCEEDED":"{0} characters over limit","BUTTON_TOOLTIP_TEXT":"{0} with Artificial Intelligence","WRITING_ASSISTANT_LABEL":"Writing Assistant Toolbar Shift + F4","VERSIONING_PREVIOUS_BUTTON_TEXT":"Previous Version","VERSIONING_NEXT_BUTTON_TEXT":"Next Version","WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT":"Stop generating (ESC)","WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME":"Writing Assistant Toolbar","WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME":"Writing Assistant","WRITING_ASSISTANT_BUTTON_TOOLTIP":"Writing Assistant (Shift + F4)","VERSIONING_PREVIOUS_BUTTON_TOOLTIP":"Previous Version","VERSIONING_NEXT_BUTTON_TOOLTIP":"Next Version"}
1
+ {"PROMPT_INPUT_CHARACTERS_LEFT":"{0} characters remaining","PROMPT_INPUT_CHARACTERS_EXCEEDED":"{0} characters over limit","BUTTON_TOOLTIP_TEXT":"{0} with Artificial Intelligence","WRITING_ASSISTANT_LABEL":"AI Writing Assistant Toolbar Shift + F4","VERSIONING_PREVIOUS_BUTTON_TEXT":"Previous Version","VERSIONING_NEXT_BUTTON_TEXT":"Next Version","WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT":"Stop generating (ESC)","WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME":"AI Writing Assistant Toolbar","WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME":"AI Writing Assistant","WRITING_ASSISTANT_BUTTON_TOOLTIP":"AI Writing Assistant (Shift + F4)","VERSIONING_PREVIOUS_BUTTON_TOOLTIP":"Previous Version","VERSIONING_NEXT_BUTTON_TOOLTIP":"Next Version"}
@@ -1 +1 @@
1
- {"PROMPT_INPUT_CHARACTERS_LEFT":"[[[{0} ċĥąŗąċţēŗş ŗēɱąįŋįŋğ]]]","PROMPT_INPUT_CHARACTERS_EXCEEDED":"[[[{0} ċĥąŗąċţēŗş ŏʋēŗ ĺįɱįţ]]]","BUTTON_TOOLTIP_TEXT":"[[[{0} ŵįţĥ Āŗţįƒįċįąĺ Ĭŋţēĺĺįğēŋċē]]]","WRITING_ASSISTANT_LABEL":"[[[ĀĬ Ŵŗįţįŋğ Āşşįşţąŋţ Ţŏŏĺƃąŗ Ŝĥįƒţ + Ƒ4∙∙∙∙∙∙∙∙∙∙∙∙∙∙]]]","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":"[[[ĀĬ Ŵŗįţįŋğ Āşşįşţąŋţ (Ŝĥįƒţ + Ƒ4)∙∙∙∙∙∙∙∙∙∙∙]]]","VERSIONING_PREVIOUS_BUTTON_TOOLTIP":"[[[Ƥŗēʋįŏűş Ʋēŗşįŏŋ∙∙∙∙∙∙∙∙]]]","VERSIONING_NEXT_BUTTON_TOOLTIP":"[[[Ńēχţ Ʋēŗşįŏŋ∙∙∙∙∙∙∙]]]"}
1
+ {"PROMPT_INPUT_CHARACTERS_LEFT":"[[[{0} ċĥąŗąċţēŗş ŗēɱąįŋįŋğ]]]","PROMPT_INPUT_CHARACTERS_EXCEEDED":"[[[{0} ċĥąŗąċţēŗş ŏʋēŗ ĺįɱįţ]]]","BUTTON_TOOLTIP_TEXT":"[[[{0} ŵįţĥ Āŗţįƒįċįąĺ Ĭŋţēĺĺįğēŋċē]]]","WRITING_ASSISTANT_LABEL":"[[[Ŵŗįţįŋğ Āşşįşţąŋţ Ţŏŏĺƃąŗ Ŝĥįƒţ + Ƒ4∙∙∙∙∙∙∙∙∙∙∙∙]]]","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":"[[[Ŵŗįţįŋğ Āşşįşţąŋţ (Ŝĥįƒţ + Ƒ4)∙∙∙∙∙∙∙∙∙]]]","VERSIONING_PREVIOUS_BUTTON_TOOLTIP":"[[[Ƥŗēʋįŏűş Ʋēŗşįŏŋ∙∙∙∙∙∙∙∙]]]","VERSIONING_NEXT_BUTTON_TOOLTIP":"[[[Ńēχţ Ʋēŗşįŏŋ∙∙∙∙∙∙∙]]]"}
@@ -1 +1 @@
1
- {"PROMPT_INPUT_CHARACTERS_LEFT":"ApfX3Ybp+LpUZGYmQzr70w_{0} characters remaining","PROMPT_INPUT_CHARACTERS_EXCEEDED":"j5kNPkXE7zFJCcHSJi7nbg_{0} characters over limit","BUTTON_TOOLTIP_TEXT":"6X8mtmOry2zJh+9Uw46jBg_{0} with Artificial Intelligence","WRITING_ASSISTANT_LABEL":"JjIP+DH0jkZjKQ0a4LYZsQ_Writing Assistant Toolbar Shift + F4","VERSIONING_PREVIOUS_BUTTON_TEXT":"tdyrXMxGfFmXwoYFD2sMWA_Previous Version","VERSIONING_NEXT_BUTTON_TEXT":"GSGFyMMVl3KfnWh+eF8x6Q_Next Version","WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT":"fvIUUA+VmwKy8ibuZ2WgFQ_Stop generating (ESC)","WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME":"21AOJtVoTbi3FVypld52fQ_Writing Assistant Toolbar","WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME":"NuItCADSSutoC+W+cfTUPg_Writing Assistant","WRITING_ASSISTANT_BUTTON_TOOLTIP":"szmdVlIC7XlR9BfnHzw0DA_Writing Assistant (Shift + F4)","VERSIONING_PREVIOUS_BUTTON_TOOLTIP":"A9ublUn6poOWfTgBxVJwEA_Previous Version","VERSIONING_NEXT_BUTTON_TOOLTIP":"fVHAsHeyAgpwVXfCi393Kw_Next Version"}
1
+ {"PROMPT_INPUT_CHARACTERS_LEFT":"ApfX3Ybp+LpUZGYmQzr70w_{0} characters remaining","PROMPT_INPUT_CHARACTERS_EXCEEDED":"j5kNPkXE7zFJCcHSJi7nbg_{0} characters over limit","BUTTON_TOOLTIP_TEXT":"6X8mtmOry2zJh+9Uw46jBg_{0} with Artificial Intelligence","WRITING_ASSISTANT_LABEL":"znGBgVtRpt5vhwUVzEIhgQ_Writing Assistant Toolbar Shift + F4","VERSIONING_PREVIOUS_BUTTON_TEXT":"tdyrXMxGfFmXwoYFD2sMWA_Previous Version","VERSIONING_NEXT_BUTTON_TEXT":"GSGFyMMVl3KfnWh+eF8x6Q_Next Version","WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT":"fvIUUA+VmwKy8ibuZ2WgFQ_Stop generating (ESC)","WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME":"PBK81XNBqlTMkzKg/+741A_Writing Assistant Toolbar","WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME":"+93+roesP1ak4KiMsXdusw_Writing Assistant","WRITING_ASSISTANT_BUTTON_TOOLTIP":"K3kdks5Mg9jjskgsyqWZIg_Writing Assistant (Shift + F4)","VERSIONING_PREVIOUS_BUTTON_TOOLTIP":"A9ublUn6poOWfTgBxVJwEA_Previous Version","VERSIONING_NEXT_BUTTON_TOOLTIP":"fVHAsHeyAgpwVXfCi393Kw_Next Version"}
@@ -3,12 +3,16 @@ declare const PROMPT_INPUT_CHARACTERS_LEFT: I18nText;
3
3
  declare const PROMPT_INPUT_CHARACTERS_EXCEEDED: I18nText;
4
4
  declare const BUTTON_TOOLTIP_TEXT: I18nText;
5
5
  declare const WRITING_ASSISTANT_LABEL: I18nText;
6
+ declare const INPUT_VERSIONING_NEXT_BUTTON_TOOLTIP: I18nText;
7
+ declare const INPUT_VERSIONING_PREVIOUS_BUTTON_TOOLTIP: I18nText;
8
+ declare const INPUT_WRITING_ASSISTANT_BUTTON_TOOLTIP: I18nText;
6
9
  declare const VERSIONING_PREVIOUS_BUTTON_TEXT: I18nText;
7
10
  declare const VERSIONING_NEXT_BUTTON_TEXT: I18nText;
8
11
  declare const WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT: I18nText;
9
12
  declare const WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME: I18nText;
10
13
  declare const WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME: I18nText;
11
14
  declare const WRITING_ASSISTANT_BUTTON_TOOLTIP: I18nText;
15
+ declare const WRITING_ASSISTANT_STOP_TOOLTIP: I18nText;
12
16
  declare const VERSIONING_PREVIOUS_BUTTON_TOOLTIP: I18nText;
13
17
  declare const VERSIONING_NEXT_BUTTON_TOOLTIP: I18nText;
14
- export { PROMPT_INPUT_CHARACTERS_LEFT, PROMPT_INPUT_CHARACTERS_EXCEEDED, BUTTON_TOOLTIP_TEXT, 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, VERSIONING_PREVIOUS_BUTTON_TOOLTIP, VERSIONING_NEXT_BUTTON_TOOLTIP };
18
+ export { PROMPT_INPUT_CHARACTERS_LEFT, PROMPT_INPUT_CHARACTERS_EXCEEDED, BUTTON_TOOLTIP_TEXT, WRITING_ASSISTANT_LABEL, INPUT_VERSIONING_NEXT_BUTTON_TOOLTIP, INPUT_VERSIONING_PREVIOUS_BUTTON_TOOLTIP, INPUT_WRITING_ASSISTANT_BUTTON_TOOLTIP, 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, WRITING_ASSISTANT_STOP_TOOLTIP, VERSIONING_PREVIOUS_BUTTON_TOOLTIP, VERSIONING_NEXT_BUTTON_TOOLTIP };
@@ -1,14 +1,18 @@
1
1
  const PROMPT_INPUT_CHARACTERS_LEFT = { key: "PROMPT_INPUT_CHARACTERS_LEFT", defaultText: "{0} characters remaining" };
2
2
  const PROMPT_INPUT_CHARACTERS_EXCEEDED = { key: "PROMPT_INPUT_CHARACTERS_EXCEEDED", defaultText: "{0} characters over limit" };
3
3
  const BUTTON_TOOLTIP_TEXT = { key: "BUTTON_TOOLTIP_TEXT", defaultText: "{0} with Artificial Intelligence" };
4
- const WRITING_ASSISTANT_LABEL = { key: "WRITING_ASSISTANT_LABEL", defaultText: "Writing Assistant Toolbar Shift + F4" };
4
+ const WRITING_ASSISTANT_LABEL = { key: "WRITING_ASSISTANT_LABEL", defaultText: "AI Writing Assistant Toolbar Shift + F4" };
5
+ const INPUT_VERSIONING_NEXT_BUTTON_TOOLTIP = { key: "INPUT_VERSIONING_NEXT_BUTTON_TOOLTIP", defaultText: "Next Version (Ctrl + Shift + Y)" };
6
+ const INPUT_VERSIONING_PREVIOUS_BUTTON_TOOLTIP = { key: "INPUT_VERSIONING_PREVIOUS_BUTTON_TOOLTIP", defaultText: "Previous Version (Ctrl + Shift + Z)" };
7
+ const INPUT_WRITING_ASSISTANT_BUTTON_TOOLTIP = { key: "INPUT_WRITING_ASSISTANT_BUTTON_TOOLTIP", defaultText: "AI Writing Assistant (Shift + F4)" };
5
8
  const VERSIONING_PREVIOUS_BUTTON_TEXT = { key: "VERSIONING_PREVIOUS_BUTTON_TEXT", defaultText: "Previous Version" };
6
9
  const VERSIONING_NEXT_BUTTON_TEXT = { key: "VERSIONING_NEXT_BUTTON_TEXT", defaultText: "Next Version" };
7
10
  const WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT = { key: "WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT", defaultText: "Stop generating (ESC)" };
8
- const WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME = { key: "WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME", defaultText: "Writing Assistant Toolbar" };
9
- const WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME = { key: "WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME", defaultText: "Writing Assistant" };
10
- const WRITING_ASSISTANT_BUTTON_TOOLTIP = { key: "WRITING_ASSISTANT_BUTTON_TOOLTIP", defaultText: "Writing Assistant (Shift + F4)" };
11
+ const WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME = { key: "WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME", defaultText: "AI Writing Assistant Toolbar" };
12
+ const WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME = { key: "WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME", defaultText: "AI Writing Assistant" };
13
+ const WRITING_ASSISTANT_BUTTON_TOOLTIP = { key: "WRITING_ASSISTANT_BUTTON_TOOLTIP", defaultText: "AI Writing Assistant (Shift + F4)" };
14
+ const WRITING_ASSISTANT_STOP_TOOLTIP = { key: "WRITING_ASSISTANT_STOP_TOOLTIP", defaultText: "Stop Generating (Esc)" };
11
15
  const VERSIONING_PREVIOUS_BUTTON_TOOLTIP = { key: "VERSIONING_PREVIOUS_BUTTON_TOOLTIP", defaultText: "Previous Version" };
12
16
  const VERSIONING_NEXT_BUTTON_TOOLTIP = { key: "VERSIONING_NEXT_BUTTON_TOOLTIP", defaultText: "Next Version" };
13
- export { PROMPT_INPUT_CHARACTERS_LEFT, PROMPT_INPUT_CHARACTERS_EXCEEDED, BUTTON_TOOLTIP_TEXT, 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, VERSIONING_PREVIOUS_BUTTON_TOOLTIP, VERSIONING_NEXT_BUTTON_TOOLTIP };
17
+ export { PROMPT_INPUT_CHARACTERS_LEFT, PROMPT_INPUT_CHARACTERS_EXCEEDED, BUTTON_TOOLTIP_TEXT, WRITING_ASSISTANT_LABEL, INPUT_VERSIONING_NEXT_BUTTON_TOOLTIP, INPUT_VERSIONING_PREVIOUS_BUTTON_TOOLTIP, INPUT_WRITING_ASSISTANT_BUTTON_TOOLTIP, 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, WRITING_ASSISTANT_STOP_TOOLTIP, VERSIONING_PREVIOUS_BUTTON_TOOLTIP, VERSIONING_NEXT_BUTTON_TOOLTIP };
14
18
  //# sourceMappingURL=i18n-defaults.js.map