@vaadin/message-input 25.0.0-alpha1 → 25.0.0-alpha11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/message-input",
3
- "version": "25.0.0-alpha1",
3
+ "version": "25.0.0-alpha11",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -21,7 +21,6 @@
21
21
  "type": "module",
22
22
  "files": [
23
23
  "src",
24
- "theme",
25
24
  "vaadin-*.d.ts",
26
25
  "vaadin-*.js",
27
26
  "web-types.json",
@@ -35,22 +34,22 @@
35
34
  ],
36
35
  "dependencies": {
37
36
  "@open-wc/dedupe-mixin": "^1.3.0",
38
- "@vaadin/button": "25.0.0-alpha1",
39
- "@vaadin/component-base": "25.0.0-alpha1",
40
- "@vaadin/text-area": "25.0.0-alpha1",
41
- "@vaadin/vaadin-lumo-styles": "25.0.0-alpha1",
42
- "@vaadin/vaadin-themable-mixin": "25.0.0-alpha1",
37
+ "@vaadin/button": "25.0.0-alpha11",
38
+ "@vaadin/component-base": "25.0.0-alpha11",
39
+ "@vaadin/text-area": "25.0.0-alpha11",
40
+ "@vaadin/vaadin-themable-mixin": "25.0.0-alpha11",
43
41
  "lit": "^3.0.0"
44
42
  },
45
43
  "devDependencies": {
46
- "@vaadin/chai-plugins": "25.0.0-alpha1",
47
- "@vaadin/test-runner-commands": "25.0.0-alpha1",
48
- "@vaadin/testing-helpers": "^1.1.0",
44
+ "@vaadin/chai-plugins": "25.0.0-alpha11",
45
+ "@vaadin/test-runner-commands": "25.0.0-alpha11",
46
+ "@vaadin/testing-helpers": "^2.0.0",
47
+ "@vaadin/vaadin-lumo-styles": "25.0.0-alpha11",
49
48
  "sinon": "^18.0.0"
50
49
  },
51
50
  "web-types": [
52
51
  "web-types.json",
53
52
  "web-types.lit.json"
54
53
  ],
55
- "gitHead": "b8c22a4a0c64156210d0daac96b43ae4e5526d49"
54
+ "gitHead": "abfd315ba5a7484a613e0768635a4e8fe945a44b"
56
55
  }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+ import type { CSSResult } from 'lit';
7
+
8
+ export const messageInputStyles: CSSResult;
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+ import '@vaadin/component-base/src/styles/style-props.js';
7
+ import { css } from 'lit';
8
+
9
+ export const messageInputStyles = css`
10
+ :host {
11
+ box-sizing: border-box;
12
+ display: flex;
13
+ max-height: 50vh;
14
+ flex-shrink: 0;
15
+ border: var(--vaadin-input-field-border-width, 1px) solid
16
+ var(--vaadin-input-field-border-color, var(--vaadin-border-color-strong));
17
+ border-radius: var(--vaadin-input-field-border-radius, var(--vaadin-radius-m));
18
+ background: var(--vaadin-input-field-background, var(--vaadin-background-color));
19
+ }
20
+
21
+ :host([hidden]) {
22
+ display: none !important;
23
+ }
24
+
25
+ :host(:focus-within) {
26
+ outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
27
+ outline-offset: calc(var(--vaadin-input-field-border-width, 1px) * -1);
28
+ }
29
+
30
+ :host([disabled]) {
31
+ --vaadin-input-field-value-color: var(--vaadin-input-field-disabled-text-color, var(--vaadin-color-disabled));
32
+ --vaadin-input-field-background: var(
33
+ --vaadin-input-field-disabled-background,
34
+ var(--vaadin-background-container-strong)
35
+ );
36
+ --vaadin-input-field-border-color: transparent;
37
+ }
38
+
39
+ ::slotted([slot='textarea']) {
40
+ flex: 1;
41
+ --vaadin-input-field-border-width: 0 !important;
42
+ --vaadin-focus-ring-width: 0;
43
+ --vaadin-input-field-background: transparent !important;
44
+ }
45
+
46
+ ::slotted([slot='button']) {
47
+ flex: none;
48
+ align-self: end;
49
+ margin: var(--vaadin-input-field-padding, var(--vaadin-padding-container));
50
+ --vaadin-button-border-width: 0;
51
+ --vaadin-button-background: transparent;
52
+ --vaadin-button-text-color: var(--vaadin-color);
53
+ --vaadin-button-padding: 0;
54
+ }
55
+
56
+ :host([theme~='icon-button']) ::slotted([slot='button']) {
57
+ width: var(--vaadin-icon-size, 1lh);
58
+ height: var(--vaadin-icon-size, 1lh);
59
+ color: transparent;
60
+ position: relative;
61
+ contain: strict;
62
+ }
63
+
64
+ :host([theme~='icon-button']) ::slotted([slot='button'])::before {
65
+ content: '';
66
+ position: absolute;
67
+ inset: 0;
68
+ mask-image: var(--_vaadin-icon-paper-airplane);
69
+ background: var(--vaadin-button-text-color);
70
+ }
71
+
72
+ :host([dir='rtl'][theme~='icon-button']) ::slotted([slot='button'])::before {
73
+ scale: -1;
74
+ }
75
+
76
+ @media (forced-colors: active) {
77
+ :host([theme~='icon-button']) ::slotted([slot='button']) {
78
+ forced-color-adjust: none;
79
+ --vaadin-button-text-color: CanvasText;
80
+ }
81
+ }
82
+ `;
@@ -92,8 +92,6 @@ export const MessageInputMixin = (superClass) =>
92
92
 
93
93
  this._buttonController = new SlotController(this, 'button', 'vaadin-button', {
94
94
  initializer: (btn) => {
95
- btn.setAttribute('theme', 'primary contained');
96
-
97
95
  btn.addEventListener('click', () => {
98
96
  this.__submit();
99
97
  });
@@ -118,6 +116,7 @@ export const MessageInputMixin = (superClass) =>
118
116
  });
119
117
 
120
118
  textarea.minRows = 1;
119
+ (textarea.inputElement || textarea).setAttribute('enterkeyhint', 'send');
121
120
 
122
121
  this._textArea = textarea;
123
122
  },
@@ -5,11 +5,13 @@
5
5
  */
6
6
  import '@vaadin/button/src/vaadin-button.js';
7
7
  import '@vaadin/text-area/src/vaadin-text-area.js';
8
- import { css, html, LitElement } from 'lit';
8
+ import { html, LitElement } from 'lit';
9
9
  import { defineCustomElement } from '@vaadin/component-base/src/define.js';
10
10
  import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
11
11
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
12
+ import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
12
13
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
14
+ import { messageInputStyles } from './styles/vaadin-message-input-base-styles.js';
13
15
  import { MessageInputMixin } from './vaadin-message-input-mixin.js';
14
16
 
15
17
  /**
@@ -30,35 +32,15 @@ import { MessageInputMixin } from './vaadin-message-input-mixin.js';
30
32
  * @mixes ThemableMixin
31
33
  * @mixes ElementMixin
32
34
  */
33
- class MessageInput extends MessageInputMixin(ElementMixin(ThemableMixin(PolylitMixin(LitElement)))) {
35
+ class MessageInput extends MessageInputMixin(
36
+ ElementMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement)))),
37
+ ) {
34
38
  static get is() {
35
39
  return 'vaadin-message-input';
36
40
  }
37
41
 
38
42
  static get styles() {
39
- return css`
40
- :host {
41
- align-items: flex-start;
42
- box-sizing: border-box;
43
- display: flex;
44
- max-height: 50vh;
45
- overflow: hidden;
46
- flex-shrink: 0;
47
- }
48
-
49
- :host([hidden]) {
50
- display: none !important;
51
- }
52
-
53
- ::slotted([slot='button']) {
54
- flex-shrink: 0;
55
- }
56
-
57
- ::slotted([slot='textarea']) {
58
- align-self: stretch;
59
- flex-grow: 1;
60
- }
61
- `;
43
+ return messageInputStyles;
62
44
  }
63
45
 
64
46
  /** @protected */
@@ -1,2 +1,2 @@
1
- import './theme/lumo/vaadin-message-input.js';
1
+ import './src/vaadin-message-input.js';
2
2
  export * from './src/vaadin-message-input.js';
package/web-types.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/message-input",
4
- "version": "25.0.0-alpha1",
4
+ "version": "25.0.0-alpha11",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/message-input",
4
- "version": "25.0.0-alpha1",
4
+ "version": "25.0.0-alpha11",
5
5
  "description-markup": "markdown",
6
6
  "framework": "lit",
7
7
  "framework-config": {
@@ -1,4 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/sizing.js';
3
- import '@vaadin/vaadin-lumo-styles/spacing.js';
4
- import '@vaadin/vaadin-lumo-styles/style.js';
@@ -1,19 +0,0 @@
1
- import '@vaadin/vaadin-lumo-styles/color.js';
2
- import '@vaadin/vaadin-lumo-styles/sizing.js';
3
- import '@vaadin/vaadin-lumo-styles/spacing.js';
4
- import '@vaadin/vaadin-lumo-styles/style.js';
5
- import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
6
-
7
- registerStyles(
8
- 'vaadin-message-input',
9
- css`
10
- :host {
11
- padding: var(--lumo-space-s) var(--lumo-space-m);
12
- }
13
-
14
- ::slotted([slot='textarea']) {
15
- margin-inline-end: var(--lumo-space-s);
16
- }
17
- `,
18
- { moduleId: 'lumo-message-input' },
19
- );
@@ -1,4 +0,0 @@
1
- import '@vaadin/button/theme/lumo/vaadin-button.js';
2
- import '@vaadin/text-area/theme/lumo/vaadin-text-area.js';
3
- import './vaadin-message-input-styles.js';
4
- import '../../src/vaadin-message-input.js';
@@ -1,4 +0,0 @@
1
- import '@vaadin/button/theme/lumo/vaadin-button.js';
2
- import '@vaadin/text-area/theme/lumo/vaadin-text-area.js';
3
- import './vaadin-message-input-styles.js';
4
- import '../../src/vaadin-message-input.js';