@mekari/pixel3-airene-chat-input 0.0.1-dev.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.
@@ -0,0 +1,99 @@
1
+ import * as vue_jsx_runtime from 'vue/jsx-runtime';
2
+ import * as vue from 'vue';
3
+
4
+ declare const MpAireneChatInput: vue.DefineComponent<vue.ExtractPropTypes<{
5
+ id: {
6
+ type: vue.PropType<string>;
7
+ default: string;
8
+ };
9
+ modelValue: {
10
+ type: vue.PropType<string>;
11
+ default: string;
12
+ };
13
+ placeholder: {
14
+ type: vue.PropType<string>;
15
+ default: string;
16
+ };
17
+ maxlength: {
18
+ type: vue.PropType<string>;
19
+ };
20
+ ariaLabel: {
21
+ type: vue.PropType<string>;
22
+ };
23
+ ariaLabelledBy: {
24
+ type: vue.PropType<string>;
25
+ };
26
+ isReadOnly: {
27
+ type: vue.PropType<boolean>;
28
+ default: boolean;
29
+ };
30
+ isDisabled: {
31
+ type: vue.PropType<boolean>;
32
+ default: boolean;
33
+ };
34
+ isInvalid: {
35
+ type: vue.PropType<boolean>;
36
+ default: boolean;
37
+ };
38
+ isRequired: {
39
+ type: vue.PropType<boolean>;
40
+ default: boolean;
41
+ };
42
+ isForceFocus: {
43
+ type: vue.PropType<boolean>;
44
+ default: boolean;
45
+ };
46
+ }>, () => vue_jsx_runtime.JSX.Element, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
47
+ id: {
48
+ type: vue.PropType<string>;
49
+ default: string;
50
+ };
51
+ modelValue: {
52
+ type: vue.PropType<string>;
53
+ default: string;
54
+ };
55
+ placeholder: {
56
+ type: vue.PropType<string>;
57
+ default: string;
58
+ };
59
+ maxlength: {
60
+ type: vue.PropType<string>;
61
+ };
62
+ ariaLabel: {
63
+ type: vue.PropType<string>;
64
+ };
65
+ ariaLabelledBy: {
66
+ type: vue.PropType<string>;
67
+ };
68
+ isReadOnly: {
69
+ type: vue.PropType<boolean>;
70
+ default: boolean;
71
+ };
72
+ isDisabled: {
73
+ type: vue.PropType<boolean>;
74
+ default: boolean;
75
+ };
76
+ isInvalid: {
77
+ type: vue.PropType<boolean>;
78
+ default: boolean;
79
+ };
80
+ isRequired: {
81
+ type: vue.PropType<boolean>;
82
+ default: boolean;
83
+ };
84
+ isForceFocus: {
85
+ type: vue.PropType<boolean>;
86
+ default: boolean;
87
+ };
88
+ }>> & Readonly<{}>, {
89
+ id: string;
90
+ modelValue: string;
91
+ placeholder: string;
92
+ isReadOnly: boolean;
93
+ isDisabled: boolean;
94
+ isInvalid: boolean;
95
+ isRequired: boolean;
96
+ isForceFocus: boolean;
97
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
98
+
99
+ export { MpAireneChatInput };
@@ -0,0 +1,99 @@
1
+ import * as vue_jsx_runtime from 'vue/jsx-runtime';
2
+ import * as vue from 'vue';
3
+
4
+ declare const MpAireneChatInput: vue.DefineComponent<vue.ExtractPropTypes<{
5
+ id: {
6
+ type: vue.PropType<string>;
7
+ default: string;
8
+ };
9
+ modelValue: {
10
+ type: vue.PropType<string>;
11
+ default: string;
12
+ };
13
+ placeholder: {
14
+ type: vue.PropType<string>;
15
+ default: string;
16
+ };
17
+ maxlength: {
18
+ type: vue.PropType<string>;
19
+ };
20
+ ariaLabel: {
21
+ type: vue.PropType<string>;
22
+ };
23
+ ariaLabelledBy: {
24
+ type: vue.PropType<string>;
25
+ };
26
+ isReadOnly: {
27
+ type: vue.PropType<boolean>;
28
+ default: boolean;
29
+ };
30
+ isDisabled: {
31
+ type: vue.PropType<boolean>;
32
+ default: boolean;
33
+ };
34
+ isInvalid: {
35
+ type: vue.PropType<boolean>;
36
+ default: boolean;
37
+ };
38
+ isRequired: {
39
+ type: vue.PropType<boolean>;
40
+ default: boolean;
41
+ };
42
+ isForceFocus: {
43
+ type: vue.PropType<boolean>;
44
+ default: boolean;
45
+ };
46
+ }>, () => vue_jsx_runtime.JSX.Element, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
47
+ id: {
48
+ type: vue.PropType<string>;
49
+ default: string;
50
+ };
51
+ modelValue: {
52
+ type: vue.PropType<string>;
53
+ default: string;
54
+ };
55
+ placeholder: {
56
+ type: vue.PropType<string>;
57
+ default: string;
58
+ };
59
+ maxlength: {
60
+ type: vue.PropType<string>;
61
+ };
62
+ ariaLabel: {
63
+ type: vue.PropType<string>;
64
+ };
65
+ ariaLabelledBy: {
66
+ type: vue.PropType<string>;
67
+ };
68
+ isReadOnly: {
69
+ type: vue.PropType<boolean>;
70
+ default: boolean;
71
+ };
72
+ isDisabled: {
73
+ type: vue.PropType<boolean>;
74
+ default: boolean;
75
+ };
76
+ isInvalid: {
77
+ type: vue.PropType<boolean>;
78
+ default: boolean;
79
+ };
80
+ isRequired: {
81
+ type: vue.PropType<boolean>;
82
+ default: boolean;
83
+ };
84
+ isForceFocus: {
85
+ type: vue.PropType<boolean>;
86
+ default: boolean;
87
+ };
88
+ }>> & Readonly<{}>, {
89
+ id: string;
90
+ modelValue: string;
91
+ placeholder: string;
92
+ isReadOnly: boolean;
93
+ isDisabled: boolean;
94
+ isInvalid: boolean;
95
+ isRequired: boolean;
96
+ isForceFocus: boolean;
97
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
98
+
99
+ export { MpAireneChatInput };
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/airene-chat-input.tsx
22
+ var airene_chat_input_exports = {};
23
+ __export(airene_chat_input_exports, {
24
+ MpAireneChatInput: () => MpAireneChatInput
25
+ });
26
+ module.exports = __toCommonJS(airene_chat_input_exports);
27
+ var import_vue2 = require("vue");
28
+ var import_vue3 = require("vue");
29
+ var import_pixel3_icon = require("@mekari/pixel3-icon");
30
+
31
+ // src/modules/airene-chat-input.hooks.ts
32
+ var import_vue = require("vue");
33
+ var import_pixel3_utils = require("@mekari/pixel3-utils");
34
+ var import_recipes = require("@mekari/pixel3-styled-system/recipes");
35
+ var import_tokens = require("@mekari/pixel3-styled-system/tokens");
36
+ function useAireneChatInput(props, emit, slots) {
37
+ const {
38
+ id,
39
+ modelValue,
40
+ placeholder,
41
+ maxlength,
42
+ ariaLabel,
43
+ ariaLabelledBy,
44
+ isReadOnly,
45
+ isDisabled,
46
+ isInvalid,
47
+ isRequired,
48
+ isForceFocus
49
+ } = (0, import_vue.toRefs)(props);
50
+ const getId = id.value || (0, import_pixel3_utils.getUniqueId)("", "airene-chat-input").value;
51
+ const input = (0, import_vue.ref)();
52
+ const inputHeight = (0, import_vue.ref)("20px");
53
+ const rounded = (0, import_vue.ref)("full");
54
+ const rootAttrs = (0, import_vue.computed)(() => {
55
+ return {
56
+ "data-pixel-component": "MpAireneChatInput",
57
+ id: getId,
58
+ class: (0, import_recipes.aireneInputSlotRecipe)().root,
59
+ disabled: isDisabled.value || void 0,
60
+ "data-invalid": isInvalid.value || void 0,
61
+ style: {
62
+ borderRadius: import_tokens.token.var(`radii.${rounded.value}`)
63
+ }
64
+ };
65
+ });
66
+ const wrapperAttrs = (0, import_vue.computed)(() => {
67
+ return {
68
+ class: (0, import_recipes.aireneInputSlotRecipe)().wrapper
69
+ };
70
+ });
71
+ const inputAttrs = (0, import_vue.computed)(() => {
72
+ return {
73
+ ref: input,
74
+ id: `${getId}--input`,
75
+ class: (0, import_recipes.aireneInputSlotRecipe)().input,
76
+ value: modelValue.value,
77
+ placeholder: placeholder.value,
78
+ rows: "1",
79
+ autocomplete: "off",
80
+ spellcheck: "false",
81
+ maxlength: maxlength == null ? void 0 : maxlength.value,
82
+ disabled: isDisabled.value,
83
+ readonly: isReadOnly.value,
84
+ required: isRequired.value,
85
+ "aria-label": ariaLabel == null ? void 0 : ariaLabel.value,
86
+ "aria-labelledby": ariaLabelledBy == null ? void 0 : ariaLabelledBy.value,
87
+ "aria-readonly": (isReadOnly == null ? void 0 : isReadOnly.value) || void 0,
88
+ "aria-required": (isRequired == null ? void 0 : isRequired.value) || void 0,
89
+ "aria-invalid": isInvalid.value || void 0,
90
+ style: {
91
+ height: inputHeight.value
92
+ },
93
+ onInput: handleInput,
94
+ onChange: handleChange,
95
+ onFocus: handleFocus,
96
+ onBlur: handleBlur,
97
+ onKeydown: handleKeydown,
98
+ onClick: handleSelectAllText
99
+ };
100
+ });
101
+ const buttonAttrs = (0, import_vue.computed)(() => {
102
+ return {
103
+ name: "sent",
104
+ variant: isActive.value ? "fill" : "outline",
105
+ color: isActive.value ? "icon.brand" : "icon.default",
106
+ onClick: handleClick
107
+ };
108
+ });
109
+ const isActive = (0, import_vue.computed)(() => {
110
+ return modelValue.value.length > 0;
111
+ });
112
+ const hasChildren = (0, import_vue.computed)(() => {
113
+ return slots.default && slots.default().length > 0;
114
+ });
115
+ function handleInput(e) {
116
+ const target = e.target;
117
+ emit("input", target.value, e);
118
+ emit("update:modelValue", target.value);
119
+ handleAdjustInputHeight();
120
+ }
121
+ __name(handleInput, "handleInput");
122
+ function handleChange(e) {
123
+ const target = e.target;
124
+ emit("change", target.value, e);
125
+ }
126
+ __name(handleChange, "handleChange");
127
+ function handleAdjustInputHeight() {
128
+ inputHeight.value = "auto";
129
+ (0, import_vue.nextTick)(() => {
130
+ const height = input.value.scrollHeight;
131
+ inputHeight.value = `${height}px`;
132
+ rounded.value = height >= 40 || hasChildren.value ? "xl" : "full";
133
+ });
134
+ }
135
+ __name(handleAdjustInputHeight, "handleAdjustInputHeight");
136
+ function handleSelectAllText(e) {
137
+ const target = e.target;
138
+ const textLabel = target.value;
139
+ if (textLabel) {
140
+ target.setSelectionRange(0, textLabel.length);
141
+ }
142
+ }
143
+ __name(handleSelectAllText, "handleSelectAllText");
144
+ function handleFocus(e) {
145
+ emit("focus", e);
146
+ }
147
+ __name(handleFocus, "handleFocus");
148
+ function handleBlur(e) {
149
+ emit("blur", e);
150
+ }
151
+ __name(handleBlur, "handleBlur");
152
+ function handleKeydown(e) {
153
+ emit("keydown", e);
154
+ }
155
+ __name(handleKeydown, "handleKeydown");
156
+ function handleClick(e) {
157
+ if (isDisabled.value)
158
+ return;
159
+ emit("click", e);
160
+ }
161
+ __name(handleClick, "handleClick");
162
+ (0, import_vue.watch)(() => modelValue.value, (newValue) => {
163
+ if (newValue) {
164
+ handleAdjustInputHeight();
165
+ }
166
+ });
167
+ (0, import_vue.watchEffect)(() => {
168
+ var _a;
169
+ if (isForceFocus.value) {
170
+ (_a = input.value) == null ? void 0 : _a.focus();
171
+ }
172
+ if (hasChildren.value) {
173
+ rounded.value = "xl";
174
+ }
175
+ });
176
+ return {
177
+ rootAttrs,
178
+ inputAttrs,
179
+ buttonAttrs,
180
+ wrapperAttrs,
181
+ isActive
182
+ };
183
+ }
184
+ __name(useAireneChatInput, "useAireneChatInput");
185
+
186
+ // src/modules/airene-chat-input.props.ts
187
+ var aireneChatInputProps = {
188
+ id: {
189
+ type: String,
190
+ default: ""
191
+ },
192
+ modelValue: {
193
+ type: String,
194
+ default: ""
195
+ },
196
+ placeholder: {
197
+ type: String,
198
+ default: "Ask something..."
199
+ },
200
+ maxlength: {
201
+ type: String
202
+ },
203
+ ariaLabel: {
204
+ type: String
205
+ },
206
+ ariaLabelledBy: {
207
+ type: String
208
+ },
209
+ isReadOnly: {
210
+ type: Boolean,
211
+ default: false
212
+ },
213
+ isDisabled: {
214
+ type: Boolean,
215
+ default: false
216
+ },
217
+ isInvalid: {
218
+ type: Boolean,
219
+ default: false
220
+ },
221
+ isRequired: {
222
+ type: Boolean,
223
+ default: false
224
+ },
225
+ isForceFocus: {
226
+ type: Boolean,
227
+ default: false
228
+ }
229
+ };
230
+
231
+ // src/airene-chat-input.tsx
232
+ var MpAireneChatInput = (0, import_vue3.defineComponent)({
233
+ name: "MpSkeleton",
234
+ props: aireneChatInputProps,
235
+ setup(props, {
236
+ slots,
237
+ emit
238
+ }) {
239
+ const {
240
+ rootAttrs,
241
+ wrapperAttrs,
242
+ inputAttrs,
243
+ buttonAttrs
244
+ } = useAireneChatInput(props, emit, slots);
245
+ return () => {
246
+ const children = slots.default && slots.default();
247
+ return (0, import_vue2.createVNode)("div", rootAttrs.value, [(0, import_vue2.createVNode)("div", wrapperAttrs.value, [(0, import_vue2.createVNode)("textarea", inputAttrs.value, null), children]), (0, import_vue2.createVNode)(import_pixel3_icon.MpIcon, buttonAttrs.value, null)]);
248
+ };
249
+ }
250
+ });
251
+ // Annotate the CommonJS export names for ESM import in node:
252
+ 0 && (module.exports = {
253
+ MpAireneChatInput
254
+ });
@@ -0,0 +1,9 @@
1
+ import {
2
+ MpAireneChatInput
3
+ } from "./chunk-2K4QROIN.mjs";
4
+ import "./chunk-KPLBIBRE.mjs";
5
+ import "./chunk-4PYKLJPU.mjs";
6
+ import "./chunk-QZ7VFGWC.mjs";
7
+ export {
8
+ MpAireneChatInput
9
+ };
@@ -0,0 +1,34 @@
1
+ import {
2
+ useAireneChatInput
3
+ } from "./chunk-KPLBIBRE.mjs";
4
+ import {
5
+ aireneChatInputProps
6
+ } from "./chunk-4PYKLJPU.mjs";
7
+
8
+ // src/airene-chat-input.tsx
9
+ import { createVNode as _createVNode } from "vue";
10
+ import { defineComponent } from "vue";
11
+ import { MpIcon } from "@mekari/pixel3-icon";
12
+ var MpAireneChatInput = defineComponent({
13
+ name: "MpSkeleton",
14
+ props: aireneChatInputProps,
15
+ setup(props, {
16
+ slots,
17
+ emit
18
+ }) {
19
+ const {
20
+ rootAttrs,
21
+ wrapperAttrs,
22
+ inputAttrs,
23
+ buttonAttrs
24
+ } = useAireneChatInput(props, emit, slots);
25
+ return () => {
26
+ const children = slots.default && slots.default();
27
+ return _createVNode("div", rootAttrs.value, [_createVNode("div", wrapperAttrs.value, [_createVNode("textarea", inputAttrs.value, null), children]), _createVNode(MpIcon, buttonAttrs.value, null)]);
28
+ };
29
+ }
30
+ });
31
+
32
+ export {
33
+ MpAireneChatInput
34
+ };
@@ -0,0 +1,50 @@
1
+ // src/modules/airene-chat-input.props.ts
2
+ var aireneChatInputProps = {
3
+ id: {
4
+ type: String,
5
+ default: ""
6
+ },
7
+ modelValue: {
8
+ type: String,
9
+ default: ""
10
+ },
11
+ placeholder: {
12
+ type: String,
13
+ default: "Ask something..."
14
+ },
15
+ maxlength: {
16
+ type: String
17
+ },
18
+ ariaLabel: {
19
+ type: String
20
+ },
21
+ ariaLabelledBy: {
22
+ type: String
23
+ },
24
+ isReadOnly: {
25
+ type: Boolean,
26
+ default: false
27
+ },
28
+ isDisabled: {
29
+ type: Boolean,
30
+ default: false
31
+ },
32
+ isInvalid: {
33
+ type: Boolean,
34
+ default: false
35
+ },
36
+ isRequired: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ isForceFocus: {
41
+ type: Boolean,
42
+ default: false
43
+ }
44
+ };
45
+ var aireneChatInputEmit = ["change", "input", "keydown", "focus", "blur", "click", "update:modelValue"];
46
+
47
+ export {
48
+ aireneChatInputProps,
49
+ aireneChatInputEmit
50
+ };
@@ -0,0 +1,162 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-QZ7VFGWC.mjs";
4
+
5
+ // src/modules/airene-chat-input.hooks.ts
6
+ import { toRefs, computed, ref, nextTick, watch, watchEffect } from "vue";
7
+ import { getUniqueId } from "@mekari/pixel3-utils";
8
+ import { aireneInputSlotRecipe } from "@mekari/pixel3-styled-system/recipes";
9
+ import { token } from "@mekari/pixel3-styled-system/tokens";
10
+ function useAireneChatInput(props, emit, slots) {
11
+ const {
12
+ id,
13
+ modelValue,
14
+ placeholder,
15
+ maxlength,
16
+ ariaLabel,
17
+ ariaLabelledBy,
18
+ isReadOnly,
19
+ isDisabled,
20
+ isInvalid,
21
+ isRequired,
22
+ isForceFocus
23
+ } = toRefs(props);
24
+ const getId = id.value || getUniqueId("", "airene-chat-input").value;
25
+ const input = ref();
26
+ const inputHeight = ref("20px");
27
+ const rounded = ref("full");
28
+ const rootAttrs = computed(() => {
29
+ return {
30
+ "data-pixel-component": "MpAireneChatInput",
31
+ id: getId,
32
+ class: aireneInputSlotRecipe().root,
33
+ disabled: isDisabled.value || void 0,
34
+ "data-invalid": isInvalid.value || void 0,
35
+ style: {
36
+ borderRadius: token.var(`radii.${rounded.value}`)
37
+ }
38
+ };
39
+ });
40
+ const wrapperAttrs = computed(() => {
41
+ return {
42
+ class: aireneInputSlotRecipe().wrapper
43
+ };
44
+ });
45
+ const inputAttrs = computed(() => {
46
+ return {
47
+ ref: input,
48
+ id: `${getId}--input`,
49
+ class: aireneInputSlotRecipe().input,
50
+ value: modelValue.value,
51
+ placeholder: placeholder.value,
52
+ rows: "1",
53
+ autocomplete: "off",
54
+ spellcheck: "false",
55
+ maxlength: maxlength == null ? void 0 : maxlength.value,
56
+ disabled: isDisabled.value,
57
+ readonly: isReadOnly.value,
58
+ required: isRequired.value,
59
+ "aria-label": ariaLabel == null ? void 0 : ariaLabel.value,
60
+ "aria-labelledby": ariaLabelledBy == null ? void 0 : ariaLabelledBy.value,
61
+ "aria-readonly": (isReadOnly == null ? void 0 : isReadOnly.value) || void 0,
62
+ "aria-required": (isRequired == null ? void 0 : isRequired.value) || void 0,
63
+ "aria-invalid": isInvalid.value || void 0,
64
+ style: {
65
+ height: inputHeight.value
66
+ },
67
+ onInput: handleInput,
68
+ onChange: handleChange,
69
+ onFocus: handleFocus,
70
+ onBlur: handleBlur,
71
+ onKeydown: handleKeydown,
72
+ onClick: handleSelectAllText
73
+ };
74
+ });
75
+ const buttonAttrs = computed(() => {
76
+ return {
77
+ name: "sent",
78
+ variant: isActive.value ? "fill" : "outline",
79
+ color: isActive.value ? "icon.brand" : "icon.default",
80
+ onClick: handleClick
81
+ };
82
+ });
83
+ const isActive = computed(() => {
84
+ return modelValue.value.length > 0;
85
+ });
86
+ const hasChildren = computed(() => {
87
+ return slots.default && slots.default().length > 0;
88
+ });
89
+ function handleInput(e) {
90
+ const target = e.target;
91
+ emit("input", target.value, e);
92
+ emit("update:modelValue", target.value);
93
+ handleAdjustInputHeight();
94
+ }
95
+ __name(handleInput, "handleInput");
96
+ function handleChange(e) {
97
+ const target = e.target;
98
+ emit("change", target.value, e);
99
+ }
100
+ __name(handleChange, "handleChange");
101
+ function handleAdjustInputHeight() {
102
+ inputHeight.value = "auto";
103
+ nextTick(() => {
104
+ const height = input.value.scrollHeight;
105
+ inputHeight.value = `${height}px`;
106
+ rounded.value = height >= 40 || hasChildren.value ? "xl" : "full";
107
+ });
108
+ }
109
+ __name(handleAdjustInputHeight, "handleAdjustInputHeight");
110
+ function handleSelectAllText(e) {
111
+ const target = e.target;
112
+ const textLabel = target.value;
113
+ if (textLabel) {
114
+ target.setSelectionRange(0, textLabel.length);
115
+ }
116
+ }
117
+ __name(handleSelectAllText, "handleSelectAllText");
118
+ function handleFocus(e) {
119
+ emit("focus", e);
120
+ }
121
+ __name(handleFocus, "handleFocus");
122
+ function handleBlur(e) {
123
+ emit("blur", e);
124
+ }
125
+ __name(handleBlur, "handleBlur");
126
+ function handleKeydown(e) {
127
+ emit("keydown", e);
128
+ }
129
+ __name(handleKeydown, "handleKeydown");
130
+ function handleClick(e) {
131
+ if (isDisabled.value)
132
+ return;
133
+ emit("click", e);
134
+ }
135
+ __name(handleClick, "handleClick");
136
+ watch(() => modelValue.value, (newValue) => {
137
+ if (newValue) {
138
+ handleAdjustInputHeight();
139
+ }
140
+ });
141
+ watchEffect(() => {
142
+ var _a;
143
+ if (isForceFocus.value) {
144
+ (_a = input.value) == null ? void 0 : _a.focus();
145
+ }
146
+ if (hasChildren.value) {
147
+ rounded.value = "xl";
148
+ }
149
+ });
150
+ return {
151
+ rootAttrs,
152
+ inputAttrs,
153
+ buttonAttrs,
154
+ wrapperAttrs,
155
+ isActive
156
+ };
157
+ }
158
+ __name(useAireneChatInput, "useAireneChatInput");
159
+
160
+ export {
161
+ useAireneChatInput
162
+ };