@ui5/webcomponents-ai 2.15.0 → 2.16.0-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 (64) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/TextArea.d.ts +116 -0
  5. package/dist/TextArea.js +235 -0
  6. package/dist/TextArea.js.map +1 -0
  7. package/dist/TextAreaTemplate.d.ts +2 -0
  8. package/dist/TextAreaTemplate.js +13 -0
  9. package/dist/TextAreaTemplate.js.map +1 -0
  10. package/dist/ToolbarLabel.d.ts +39 -0
  11. package/dist/ToolbarLabel.js +67 -0
  12. package/dist/ToolbarLabel.js.map +1 -0
  13. package/dist/ToolbarLabelTemplate.d.ts +2 -0
  14. package/dist/ToolbarLabelTemplate.js +5 -0
  15. package/dist/ToolbarLabelTemplate.js.map +1 -0
  16. package/dist/Versioning.d.ts +96 -0
  17. package/dist/Versioning.js +188 -0
  18. package/dist/Versioning.js.map +1 -0
  19. package/dist/VersioningTemplate.d.ts +4 -0
  20. package/dist/VersioningTemplate.js +9 -0
  21. package/dist/VersioningTemplate.js.map +1 -0
  22. package/dist/WritingAssistant.d.ts +101 -0
  23. package/dist/WritingAssistant.js +192 -0
  24. package/dist/WritingAssistant.js.map +1 -0
  25. package/dist/WritingAssistantTemplate.d.ts +2 -0
  26. package/dist/WritingAssistantTemplate.js +12 -0
  27. package/dist/WritingAssistantTemplate.js.map +1 -0
  28. package/dist/bundle.esm.js +1 -0
  29. package/dist/bundle.esm.js.map +1 -1
  30. package/dist/css/themes/AITextArea.css +1 -0
  31. package/dist/css/themes/Button.css +1 -1
  32. package/dist/css/themes/Versioning.css +1 -0
  33. package/dist/css/themes/WritingAssistant.css +1 -0
  34. package/dist/custom-elements-internal.json +198 -0
  35. package/dist/custom-elements.json +183 -0
  36. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  37. package/dist/generated/i18n/i18n-defaults.d.ts +10 -1
  38. package/dist/generated/i18n/i18n-defaults.js +10 -1
  39. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  40. package/dist/generated/themes/AITextArea.css.d.ts +2 -0
  41. package/dist/generated/themes/AITextArea.css.js +8 -0
  42. package/dist/generated/themes/AITextArea.css.js.map +1 -0
  43. package/dist/generated/themes/Button.css.d.ts +1 -1
  44. package/dist/generated/themes/Button.css.js +1 -1
  45. package/dist/generated/themes/Button.css.js.map +1 -1
  46. package/dist/generated/themes/Versioning.css.d.ts +2 -0
  47. package/dist/generated/themes/Versioning.css.js +8 -0
  48. package/dist/generated/themes/Versioning.css.js.map +1 -0
  49. package/dist/generated/themes/WritingAssistant.css.d.ts +2 -0
  50. package/dist/generated/themes/WritingAssistant.css.js +8 -0
  51. package/dist/generated/themes/WritingAssistant.css.js.map +1 -0
  52. package/dist/vscode.html-custom-data.json +27 -0
  53. package/dist/web-types.json +78 -1
  54. package/package.json +7 -7
  55. package/src/TextArea.css +45 -0
  56. package/src/TextAreaTemplate.tsx +90 -0
  57. package/src/ToolbarLabelTemplate.tsx +9 -0
  58. package/src/VersioningTemplate.tsx +34 -0
  59. package/src/WritingAssistantTemplate.tsx +49 -0
  60. package/src/i18n/messagebundle.properties +26 -0
  61. package/src/i18n/messagebundle_en.properties +1 -0
  62. package/src/themes/AITextArea.css +45 -0
  63. package/src/themes/Versioning.css +20 -0
  64. package/src/themes/WritingAssistant.css +45 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@ui5/webcomponents-ai",
4
- "version": "2.15.0",
4
+ "version": "2.16.0-rc.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -317,6 +317,83 @@
317
317
  }
318
318
  ]
319
319
  }
320
+ },
321
+ {
322
+ "name": "ui5-ai-textarea",
323
+ "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\";`\n---\n\n\n### **Events:**\n - **version-change** - Fired when the user clicks on version navigation buttons.\n- **stop-generation** - Fired when the user requests to stop AI text generation.\n\n### **Slots:**\n - **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.",
324
+ "doc-url": "",
325
+ "attributes": [
326
+ {
327
+ "name": "loading",
328
+ "description": "Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.",
329
+ "value": { "type": "boolean", "default": "false" }
330
+ },
331
+ {
332
+ "name": "action-text",
333
+ "description": "Defines the action text of the AI Writing Assistant.",
334
+ "value": { "type": "string", "default": "\"\"" }
335
+ },
336
+ {
337
+ "name": "current-version-index",
338
+ "description": "Indicates the index of the currently displayed result version.\n\nThe index is **1-based** (i.e. `1` represents the first result).",
339
+ "value": { "type": "number", "default": "1" }
340
+ },
341
+ {
342
+ "name": "total-versions",
343
+ "description": "Indicates the total number of result versions available.",
344
+ "value": { "type": "number", "default": "1" }
345
+ }
346
+ ],
347
+ "slots": [
348
+ {
349
+ "name": "menu",
350
+ "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."
351
+ }
352
+ ],
353
+ "events": [
354
+ {
355
+ "name": "version-change",
356
+ "description": "Fired when the user clicks on version navigation buttons."
357
+ },
358
+ {
359
+ "name": "stop-generation",
360
+ "description": "Fired when the user requests to stop AI text generation."
361
+ }
362
+ ],
363
+ "js": {
364
+ "properties": [
365
+ {
366
+ "name": "loading",
367
+ "description": "Defines whether the `ui5-ai-textarea` is currently in a loading(processing) state.",
368
+ "value": { "type": "boolean" }
369
+ },
370
+ {
371
+ "name": "action-text",
372
+ "description": "Defines the action text of the AI Writing Assistant.",
373
+ "value": { "type": "string" }
374
+ },
375
+ {
376
+ "name": "current-version-index",
377
+ "description": "Indicates the index of the currently displayed result version.\n\nThe index is **1-based** (i.e. `1` represents the first result).",
378
+ "value": { "type": "number" }
379
+ },
380
+ {
381
+ "name": "total-versions",
382
+ "description": "Indicates the total number of result versions available.",
383
+ "value": { "type": "number" }
384
+ }
385
+ ],
386
+ "events": [
387
+ {
388
+ "name": "version-change",
389
+ "description": "Fired when the user clicks on version navigation buttons."
390
+ },
391
+ {
392
+ "name": "stop-generation",
393
+ "description": "Fired when the user requests to stop AI text generation."
394
+ }
395
+ ]
396
+ }
320
397
  }
321
398
  ]
322
399
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-ai",
3
- "version": "2.15.0",
3
+ "version": "2.16.0-rc.0",
4
4
  "description": "UI5 Web Components: webcomponents.ai",
5
5
  "ui5": {
6
6
  "webComponentsPackage": true
@@ -46,19 +46,19 @@
46
46
  "directory": "packages/ai"
47
47
  },
48
48
  "dependencies": {
49
- "@ui5/webcomponents": "2.15.0",
50
- "@ui5/webcomponents-base": "2.15.0",
51
- "@ui5/webcomponents-icons": "2.15.0",
52
- "@ui5/webcomponents-theming": "2.15.0"
49
+ "@ui5/webcomponents": "2.16.0-rc.0",
50
+ "@ui5/webcomponents-base": "2.16.0-rc.0",
51
+ "@ui5/webcomponents-icons": "2.16.0-rc.0",
52
+ "@ui5/webcomponents-theming": "2.16.0-rc.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@custom-elements-manifest/analyzer": "patch:@custom-elements-manifest/analyzer@npm%3A0.10.6#~/.yarn/patches/@custom-elements-manifest-analyzer-npm-0.10.6-9b5ff0c50b.patch",
56
56
  "@ui5/cypress-internal": "0.1.0",
57
- "@ui5/webcomponents-tools": "2.15.0",
57
+ "@ui5/webcomponents-tools": "2.16.0-rc.0",
58
58
  "chokidar-cli": "^3.0.0",
59
59
  "cypress": "^15.3.0",
60
60
  "eslint": "^7.22.0",
61
61
  "vite": "5.4.8"
62
62
  },
63
- "gitHead": "5c40df56e6b1b834e277adee102d0e299a5c772c"
63
+ "gitHead": "07b91ccebabfc50f7ae3112c66255423c2dde07d"
64
64
  }
@@ -0,0 +1,45 @@
1
+ .ui5-ai-textarea-root {
2
+ position: relative;
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ height: 100%;
7
+ }
8
+
9
+ .ui5-ai-textarea-root .ui5-textarea-wrapper {
10
+ display: flex;
11
+ flex-direction: column;
12
+ flex: 1;
13
+ position: relative;
14
+ }
15
+
16
+ .ui5-ai-textarea-root [part="footer"] {
17
+ position: relative;
18
+ width: 100%;
19
+ margin-top: auto;
20
+ flex-shrink: 0;
21
+ }
22
+
23
+ .ui5-ai-writing-assistant-footer-bar {
24
+ background: var(--_ui5_texteditor_toolbar_background, var(--sapPageFooter_Background));
25
+ width: 100%;
26
+ box-sizing: border-box;
27
+ box-shadow: none;
28
+ border-bottom: none;
29
+ border-top: none;
30
+ }
31
+
32
+ .ui5-ai-writing-assistant-footer-bar--with-border {
33
+ border-top: 1px solid var(--sapPageFooter_BorderColor);
34
+ }
35
+
36
+ .ui5-ai-writing-assistant-action-label {
37
+ margin-left: 0.5rem;
38
+ color: var(--sapContent_LabelColor);
39
+ font-size: var(--sapFontSmallSize);
40
+ }
41
+
42
+ #ai-menu-wrapper {
43
+ position: relative;
44
+ z-index: 1000;
45
+ }
@@ -0,0 +1,90 @@
1
+ import type AITextArea from "./TextArea.js";
2
+ import WritingAssistant from "./WritingAssistant.js";
3
+ import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
4
+ import TextAreaPopoverTemplate from "@ui5/webcomponents/dist/TextAreaPopoverTemplate.js";
5
+
6
+ export default function TextAreaTemplate(this: AITextArea) {
7
+ return (
8
+ <div class="ui5-ai-textarea-root">
9
+ <div
10
+ class={this.classes.root}
11
+ onFocusIn={this._onfocusin}
12
+ onFocusOut={this._onfocusout}
13
+ >
14
+ <div class="ui5-textarea-wrapper">
15
+ {this.growing &&
16
+ <div id={`${this._id}-mirror`} class="ui5-textarea-mirror" aria-hidden="true">
17
+ {this._mirrorText.map(mirrorText => {
18
+ return (
19
+ <>
20
+ {mirrorText.text}
21
+ <br />
22
+ </>
23
+ );
24
+ })}
25
+ </div>
26
+ }
27
+ <BusyIndicator
28
+ id={`${this._id}-busyIndicator`}
29
+ active={this.loading}
30
+ class="ui5-textarea-busy-indicator"
31
+ >
32
+ <textarea
33
+ id={`${this._id}-inner`}
34
+ class="ui5-textarea-inner"
35
+ part="textarea"
36
+ placeholder={this.placeholder}
37
+ disabled={this.disabled}
38
+ readonly={this.readonly}
39
+ aria-label={this._ariaLabel}
40
+ aria-describedby={this.ariaDescribedBy}
41
+ aria-invalid={this._ariaInvalid}
42
+ aria-required={this.required}
43
+ maxlength={this._exceededTextProps.calcedMaxLength}
44
+ value={this.value}
45
+ data-sap-focus-ref
46
+ onInput={this._oninput}
47
+ onChange={this._onchange}
48
+ onKeyUp={this._onkeyup}
49
+ onKeyDown={this._onkeydown}
50
+ onSelect={this._onselect}
51
+ onScroll={this._onscroll}>
52
+ </textarea>
53
+ </BusyIndicator>
54
+ <div part="footer">
55
+ <slot name="footer">
56
+ <WritingAssistant
57
+ loading={this.loading}
58
+ currentVersionIndex={this.currentVersionIndex}
59
+ totalVersions={this.totalVersions}
60
+ actionText={this.actionText}
61
+ onButtonClick={this._handleAIButtonClick}
62
+ onStopGeneration={this.handleStopGeneration}
63
+ onVersionChange={this._handleVersionChange}
64
+ />
65
+ </slot>
66
+ </div>
67
+ </div>
68
+
69
+ {this.showExceededText &&
70
+ <span class="ui5-textarea-exceeded-text">{this._exceededTextProps.exceededText}</span>
71
+ }
72
+
73
+ {this.hasValueState &&
74
+ <span id={`${this._id}-valueStateDesc`} class="ui5-hidden-text">{this.ariaValueStateHiddenText}</span>
75
+ }
76
+ </div>
77
+
78
+ {TextAreaPopoverTemplate.call(this)}
79
+
80
+ {/* ARIA live region for screen readers */}
81
+ <div aria-live="polite" aria-atomic="true" class="ui5-hidden-text">
82
+ {this.loading ? this.actionText : ""}
83
+ </div>
84
+
85
+ <div id="ai-menu-wrapper">
86
+ <slot name="menu"></slot>
87
+ </div>
88
+ </div>
89
+ );
90
+ }
@@ -0,0 +1,9 @@
1
+ import type ToolbarLabel from "./ToolbarLabel.js";
2
+
3
+ export default function ToolbarLabelTemplate(this: ToolbarLabel) {
4
+ return (
5
+ <span class="ui5-ai-toolbar-label">
6
+ {this.text}
7
+ </span>
8
+ );
9
+ }
@@ -0,0 +1,34 @@
1
+ import type Versioning from "./Versioning.js";
2
+ import ToolbarLabel from "./ToolbarLabel.js";
3
+ import ToolbarButton from "@ui5/webcomponents/dist/ToolbarButton.js";
4
+ import "@ui5/webcomponents-icons/dist/navigation-left-arrow.js";
5
+ import "@ui5/webcomponents-icons/dist/navigation-right-arrow.js";
6
+
7
+ export default function VersioningTemplate(this: Versioning) {
8
+ return (
9
+ <>
10
+ <ToolbarButton
11
+ design="Transparent"
12
+ icon="navigation-left-arrow"
13
+ tooltip={this._previousButtonTooltip}
14
+ accessibleName={this._previousButtonAccessibleName}
15
+ disabled={this.currentStep <= 1}
16
+ onClick={this.handlePreviousVersionClick}
17
+ data-ui5-versioning-button="previous"
18
+ />
19
+ <ToolbarLabel
20
+ text={`${this.currentStep} / ${this.totalSteps}`}
21
+ class="version-step-counter"
22
+ />
23
+ <ToolbarButton
24
+ design="Transparent"
25
+ icon="navigation-right-arrow"
26
+ tooltip={this._nextButtonTooltip}
27
+ accessibleName={this._nextButtonAccessibleName}
28
+ disabled={this.totalSteps <= 0 || this.currentStep >= this.totalSteps}
29
+ onClick={this.handleNextVersionClick}
30
+ data-ui5-versioning-button="next"
31
+ />
32
+ </>
33
+ );
34
+ }
@@ -0,0 +1,49 @@
1
+ import type WritingAssistant from "./WritingAssistant.js";
2
+ import Versioning from "./Versioning.js";
3
+ import ToolbarLabel from "./ToolbarLabel.js";
4
+
5
+ import Toolbar from "@ui5/webcomponents/dist/Toolbar.js";
6
+ import ToolbarSpacer from "@ui5/webcomponents/dist/ToolbarSpacer.js";
7
+ import ToolbarButton from "@ui5/webcomponents/dist/ToolbarButton.js";
8
+
9
+ export default function WritingAssistantTemplate(this: WritingAssistant) {
10
+ const isMultiResults = this.totalVersions > 1;
11
+ const hasResults = (this.totalVersions > 0 && this.actionText) || this.loading;
12
+
13
+ return (
14
+ <Toolbar
15
+ accessibleName={this._toolbarAccessibleName}
16
+ aria-roledescription="toolbar"
17
+ class={`ui5-ai-writing-assistant-footer-bar${hasResults ? "--with-border" : ""}`}
18
+ >
19
+ {isMultiResults && !this.loading && (
20
+ <Versioning
21
+ currentStep={this.currentVersionIndex}
22
+ totalSteps={this.totalVersions}
23
+ onVersion-change={this.handleVersionChange}
24
+ />
25
+ )}
26
+
27
+ {hasResults && this.actionText && (
28
+ <ToolbarLabel
29
+ text={this.actionText}
30
+ class="ui5-ai-writing-assistant-action-label"
31
+ />
32
+ )}
33
+
34
+ <ToolbarSpacer />
35
+
36
+ <ToolbarButton
37
+ id="ai-menu-btn"
38
+ design="Transparent"
39
+ icon={this.loading ? "stop" : "ai"}
40
+ data-state={this.loading ? "generating" : "generate"}
41
+ onClick={this.handleButtonClick}
42
+ tooltip={this._buttonTooltip}
43
+ accessibilityAttributes={{ hasPopup: this.loading ? "false" : "menu" }}
44
+ accessibleName={this._buttonAccessibleName}
45
+ overflowPriority="NeverOverflow"
46
+ />
47
+ </Toolbar>
48
+ );
49
+ }
@@ -10,3 +10,29 @@ PROMPT_INPUT_CHARACTERS_EXCEEDED={0} characters over limit
10
10
  #XTXT: Text for
11
11
  BUTTON_TOOLTIP_TEXT={0} with Artificial Intelligence
12
12
 
13
+ #XFLD: Text for the aria-label attribute of the Writing Assistant toolbar
14
+ WRITING_ASSISTANT_LABEL=AI Writing Assistant Toolbar Shift + F4
15
+
16
+ #XFLD: Previous version button accessible name
17
+ VERSIONING_PREVIOUS_BUTTON_TEXT=Previous Version
18
+
19
+ #XFLD: Next version button accessible name
20
+ VERSIONING_NEXT_BUTTON_TEXT=Next Version
21
+
22
+ #XMSG: Announcement message when AI writing assistant starts generating
23
+ WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT=Stop generating (ESC)
24
+
25
+ #XFLD: Accessible name for the AI Writing Assistant toolbar
26
+ WRITING_ASSISTANT_TOOLBAR_ACCESSIBLE_NAME=AI Writing Assistant Toolbar
27
+
28
+ #XFLD: Accessible name for the AI Writing Assistant button
29
+ WRITING_ASSISTANT_BUTTON_ACCESSIBLE_NAME=AI Writing Assistant
30
+
31
+ #XFLD: Tooltip for the AI Writing Assistant button
32
+ WRITING_ASSISTANT_BUTTON_TOOLTIP=AI Writing Assistant (Shift + F4)
33
+
34
+ #XFLD: Tooltip for the Previous Version button
35
+ VERSIONING_PREVIOUS_BUTTON_TOOLTIP=Previous Version
36
+
37
+ #XFLD: Tooltip for the Next Version button
38
+ VERSIONING_NEXT_BUTTON_TOOLTIP=Next Version
@@ -5,3 +5,4 @@ PROMPT_INPUT_CHARACTERS_EXCEEDED={0} characters over limit
5
5
 
6
6
  BUTTON_TOOLTIP_TEXT={0} with Artificial Intelligence
7
7
 
8
+ WRITING_ASSISTANT_GENERATING_ANNOUNCEMENT=AI writing assistant generating. Stop generating (ESC)
@@ -0,0 +1,45 @@
1
+ .ui5-ai-textarea-root {
2
+ position: relative;
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ height: 100%;
7
+ }
8
+
9
+ .ui5-ai-textarea-root .ui5-textarea-wrapper {
10
+ display: flex;
11
+ flex-direction: column;
12
+ flex: 1;
13
+ position: relative;
14
+ }
15
+
16
+ .ui5-ai-textarea-root [part="footer"] {
17
+ position: relative;
18
+ width: 100%;
19
+ margin-top: auto;
20
+ flex-shrink: 0;
21
+ }
22
+
23
+ .ui5-ai-writing-assistant-footer-bar {
24
+ background: var(--_ui5_texteditor_toolbar_background, var(--sapPageFooter_Background));
25
+ width: 100%;
26
+ box-sizing: border-box;
27
+ box-shadow: none;
28
+ border-bottom: none;
29
+ border-top: none;
30
+ }
31
+
32
+ .ui5-ai-writing-assistant-footer-bar--with-border {
33
+ border-top: 1px solid var(--sapPageFooter_BorderColor);
34
+ }
35
+
36
+ .ui5-ai-writing-assistant-action-label {
37
+ margin-left: 0.5rem;
38
+ color: var(--sapContent_LabelColor);
39
+ font-size: var(--sapFontSmallSize);
40
+ }
41
+
42
+ #ai-menu-wrapper {
43
+ position: relative;
44
+ z-index: 1000;
45
+ }
@@ -0,0 +1,20 @@
1
+ :host {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ }
5
+
6
+ #versioning-history {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: 0;
10
+ }
11
+
12
+ .version-step-counter {
13
+ margin: 0 0.25rem;
14
+ display: flex;
15
+ align-items: center;
16
+ color: var(--sapContent_LabelColor);
17
+ font-size: var(--sapFontSmallSize);
18
+ line-height: 1;
19
+ }
20
+
@@ -0,0 +1,45 @@
1
+ .ui5-ai-textarea-root {
2
+ position: relative;
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ height: 100%;
7
+ }
8
+
9
+ .ui5-ai-textarea-root .ui5-textarea-wrapper {
10
+ display: flex;
11
+ flex-direction: column;
12
+ flex: 1;
13
+ position: relative;
14
+ }
15
+
16
+ .ui5-ai-textarea-root [part="footer"] {
17
+ width: 100%;
18
+ margin-top: auto;
19
+ flex-shrink: 0;
20
+ }
21
+
22
+ .ui5-ai-writing-assistant-footer-bar {
23
+ background: var(--_ui5_texteditor_toolbar_background, var(--sapPageFooter_Background));
24
+ width: 100%;
25
+ box-sizing: border-box;
26
+ box-shadow: none;
27
+ border-bottom: none;
28
+ border-top: none;
29
+ padding: 0.5rem;
30
+ min-height: 2.75rem;
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: flex-start;
34
+ }
35
+
36
+ .ui5-ai-writing-assistant-footer-bar--with-border {
37
+ border-top: 1px solid var(--sapPageFooter_BorderColor);
38
+ }
39
+
40
+ .ui5-ai-writing-assistant-action-label {
41
+ color: var(--sapContent_LabelColor);
42
+ font-size: var(--sapFontSize);
43
+ font-family: "72override", var(--sapFontFamily);
44
+ margin-left: 0.25rem;
45
+ }