@bitrix24/b24ui-nuxt 0.5.11 → 0.6.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 (199) hide show
  1. package/.nuxt/b24ui/input-menu.ts +2 -2
  2. package/.nuxt/b24ui/select-menu.ts +4 -4
  3. package/.nuxt/b24ui/select.ts +2 -2
  4. package/dist/meta.d.mts +5208 -5061
  5. package/dist/meta.mjs +5208 -5061
  6. package/dist/module.json +3 -3
  7. package/dist/module.mjs +2 -2
  8. package/dist/runtime/components/Advice.vue +27 -54
  9. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  10. package/dist/runtime/components/Alert.vue +35 -96
  11. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  12. package/dist/runtime/components/App.vue +24 -34
  13. package/dist/runtime/components/App.vue.d.ts +23 -0
  14. package/dist/runtime/components/Avatar.vue +43 -81
  15. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  16. package/dist/runtime/components/AvatarGroup.vue +40 -76
  17. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  18. package/dist/runtime/components/Badge.vue +40 -83
  19. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  20. package/dist/runtime/components/Button.vue +96 -155
  21. package/dist/runtime/components/Button.vue.d.ts +640 -0
  22. package/dist/runtime/components/ButtonGroup.vue +19 -51
  23. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  24. package/dist/runtime/components/Calendar.vue +73 -152
  25. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  26. package/dist/runtime/components/Checkbox.vue +42 -73
  27. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  28. package/dist/runtime/components/Chip.vue +26 -74
  29. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  30. package/dist/runtime/components/Collapsible.vue +22 -41
  31. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  32. package/dist/runtime/components/Container.vue +13 -27
  33. package/dist/runtime/components/Container.vue.d.ts +27 -0
  34. package/dist/runtime/components/Countdown.vue +153 -378
  35. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  36. package/dist/runtime/components/DescriptionList.vue +78 -149
  37. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  38. package/dist/runtime/components/DropdownMenu.vue +38 -139
  39. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  40. package/dist/runtime/components/DropdownMenuContent.vue +68 -80
  41. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  42. package/dist/runtime/components/Form.vue +130 -217
  43. package/dist/runtime/components/Form.vue.d.ts +55 -0
  44. package/dist/runtime/components/FormField.vue +36 -80
  45. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  46. package/dist/runtime/components/Input.vue +79 -179
  47. package/dist/runtime/components/Input.vue.d.ts +755 -0
  48. package/dist/runtime/components/InputMenu.vue +185 -381
  49. package/dist/runtime/components/InputMenu.vue.d.ts +1523 -0
  50. package/dist/runtime/components/InputNumber.vue +77 -175
  51. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  52. package/dist/runtime/components/Kbd.vue +18 -45
  53. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  54. package/dist/runtime/components/Link.vue +92 -173
  55. package/dist/runtime/components/Link.vue.d.ts +129 -0
  56. package/dist/runtime/components/LinkBase.vue +33 -42
  57. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  58. package/dist/runtime/components/Modal.vue +48 -127
  59. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  60. package/dist/runtime/components/ModalDialogClose.vue +5 -8
  61. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  62. package/dist/runtime/components/Navbar.vue +15 -33
  63. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  64. package/dist/runtime/components/NavbarDivider.vue +15 -33
  65. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  66. package/dist/runtime/components/NavbarSection.vue +15 -33
  67. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  68. package/dist/runtime/components/NavbarSpacer.vue +15 -33
  69. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  70. package/dist/runtime/components/NavigationMenu.vue +74 -208
  71. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  72. package/dist/runtime/components/OverlayProvider.vue +14 -18
  73. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  74. package/dist/runtime/components/Popover.vue +40 -81
  75. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  76. package/dist/runtime/components/Progress.vue +70 -136
  77. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  78. package/dist/runtime/components/RadioGroup.vue +59 -134
  79. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  80. package/dist/runtime/components/Range.vue +46 -85
  81. package/dist/runtime/components/Range.vue.d.ts +417 -0
  82. package/dist/runtime/components/Select.vue +110 -260
  83. package/dist/runtime/components/Select.vue.d.ts +1201 -0
  84. package/dist/runtime/components/SelectMenu.vue +161 -347
  85. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  86. package/dist/runtime/components/Separator.vue +28 -71
  87. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  88. package/dist/runtime/components/Sidebar.vue +15 -33
  89. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  90. package/dist/runtime/components/SidebarBody.vue +17 -38
  91. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  92. package/dist/runtime/components/SidebarFooter.vue +15 -33
  93. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  94. package/dist/runtime/components/SidebarHeader.vue +15 -33
  95. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  96. package/dist/runtime/components/SidebarHeading.vue +15 -33
  97. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  98. package/dist/runtime/components/SidebarLayout.vue +34 -70
  99. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  100. package/dist/runtime/components/SidebarSection.vue +15 -33
  101. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  102. package/dist/runtime/components/SidebarSpacer.vue +15 -33
  103. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  104. package/dist/runtime/components/Skeleton.vue +12 -22
  105. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  106. package/dist/runtime/components/Slideover.vue +50 -131
  107. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  108. package/dist/runtime/components/StackedLayout.vue +34 -73
  109. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  110. package/dist/runtime/components/Switch.vue +46 -95
  111. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  112. package/dist/runtime/components/Tabs.vue +37 -105
  113. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  114. package/dist/runtime/components/Textarea.vue +92 -201
  115. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  116. package/dist/runtime/components/Toast.vue +47 -105
  117. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  118. package/dist/runtime/components/Toaster.vue +70 -115
  119. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  120. package/dist/runtime/components/Tooltip.vue +36 -64
  121. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  122. package/dist/runtime/components/content/TableWrapper.vue +24 -70
  123. package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -0
  124. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  125. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  126. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  127. package/dist/runtime/composables/useFormField.d.ts +2 -2
  128. package/dist/runtime/composables/useOverlay.d.ts +14 -7
  129. package/dist/runtime/composables/useOverlay.js +14 -6
  130. package/dist/runtime/prose/A.vue +12 -23
  131. package/dist/runtime/prose/A.vue.d.ts +84 -0
  132. package/dist/runtime/prose/Blockquote.vue +12 -23
  133. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  134. package/dist/runtime/prose/Code.vue +14 -31
  135. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  136. package/dist/runtime/prose/Em.vue +12 -23
  137. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  138. package/dist/runtime/prose/H1.vue +12 -23
  139. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  140. package/dist/runtime/prose/H2.vue +12 -23
  141. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  142. package/dist/runtime/prose/H3.vue +12 -23
  143. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  144. package/dist/runtime/prose/H4.vue +12 -23
  145. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  146. package/dist/runtime/prose/H5.vue +12 -23
  147. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  148. package/dist/runtime/prose/H6.vue +12 -23
  149. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  150. package/dist/runtime/prose/Hr.vue +12 -19
  151. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  152. package/dist/runtime/prose/Img.vue +12 -23
  153. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  154. package/dist/runtime/prose/Li.vue +12 -23
  155. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  156. package/dist/runtime/prose/Ol.vue +12 -23
  157. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  158. package/dist/runtime/prose/P.vue +12 -23
  159. package/dist/runtime/prose/P.vue.d.ts +84 -0
  160. package/dist/runtime/prose/Pre.vue +16 -33
  161. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  162. package/dist/runtime/prose/Strong.vue +12 -23
  163. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  164. package/dist/runtime/prose/Table.vue +19 -54
  165. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  166. package/dist/runtime/prose/Tbody.vue +12 -23
  167. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  168. package/dist/runtime/prose/Td.vue +12 -23
  169. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  170. package/dist/runtime/prose/Th.vue +12 -23
  171. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  172. package/dist/runtime/prose/Thead.vue +12 -23
  173. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  174. package/dist/runtime/prose/Tr.vue +12 -23
  175. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  176. package/dist/runtime/prose/Ul.vue +12 -23
  177. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  178. package/dist/runtime/utils/link.d.ts +3 -3
  179. package/dist/runtime/vue/components/Link.vue +115 -202
  180. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  181. package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.BA6Y2FnC.mjs} +6 -6
  182. package/dist/types.d.mts +3 -5
  183. package/dist/unplugin.mjs +1 -1
  184. package/dist/vite.mjs +1 -1
  185. package/package.json +14 -22
  186. package/dist/meta.cjs +0 -72112
  187. package/dist/meta.d.cts +0 -72110
  188. package/dist/meta.d.ts +0 -72110
  189. package/dist/module.cjs +0 -63
  190. package/dist/module.d.cts +0 -15
  191. package/dist/module.d.ts +0 -15
  192. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
  193. package/dist/types.d.ts +0 -7
  194. package/dist/unplugin.cjs +0 -236
  195. package/dist/unplugin.d.cts +0 -33
  196. package/dist/unplugin.d.ts +0 -33
  197. package/dist/vite.cjs +0 -21
  198. package/dist/vite.d.cts +0 -14
  199. package/dist/vite.d.ts +0 -14
@@ -1,142 +1,56 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/textarea'
6
- import type { UseComponentIconsProps } from '../composables/useComponentIcons'
7
- import { tv } from '../utils/tv'
8
- import type { AvatarProps } from '../types'
9
- import type { PartialString } from '../types/utils'
10
-
11
- const appConfigTextarea = _appConfig as AppConfig & { b24ui: { textarea: Partial<typeof theme> } }
12
-
13
- const textarea = tv({ extend: tv(theme), ...(appConfigTextarea.b24ui?.textarea || {}) })
14
-
15
- type TextareaVariants = VariantProps<typeof textarea>
16
-
17
- export interface TextareaProps extends UseComponentIconsProps {
18
- /**
19
- * The element or component this component should render as.
20
- * @defaultValue 'div'
21
- */
22
- as?: any
23
- id?: string
24
- name?: string
25
- /**
26
- * The placeholder text when the textarea is empty
27
- */
28
- placeholder?: string
29
- /**
30
- * @defaultValue 'primary'
31
- */
32
- color?: TextareaVariants['color']
33
- /**
34
- * Removes padding from input
35
- * @defaultValue false
36
- */
37
- noPadding?: boolean
38
- /**
39
- * Removes all borders (rings)
40
- * @defaultValue false
41
- */
42
- noBorder?: boolean
43
- /**
44
- * Removes all borders (rings) except the bottom one
45
- * @defaultValue false
46
- */
47
- underline?: boolean
48
- /**
49
- * Rounds the corners of the button
50
- * @defaultValue false
51
- */
52
- rounded?: boolean
53
- /**
54
- * @defaultValue false
55
- */
56
- required?: boolean
57
- /**
58
- * @defaultValue false
59
- */
60
- autofocus?: boolean
61
- /**
62
- * @defaultValue 0
63
- */
64
- autofocusDelay?: number
65
- /**
66
- * @defaultValue false
67
- */
68
- autoresize?: boolean
69
- /**
70
- * @defaultValue 0
71
- */
72
- autoresizeDelay?: number
73
- /**
74
- * @defaultValue false
75
- */
76
- disabled?: boolean
77
- /**
78
- * @defaultValue 3
79
- */
80
- rows?: number
81
- /**
82
- * @defaultValue 5
83
- */
84
- maxrows?: number
85
- tag?: string
86
- /**
87
- * @defaultValue 'primary'
88
- */
89
- tagColor?: TextareaVariants['tagColor']
90
- /**
91
- * Highlight the ring color like a focus state
92
- * @defaultValue false
93
- */
94
- highlight?: boolean
95
- class?: any
96
- b24ui?: PartialString<typeof textarea.slots>
97
- }
98
-
99
- export interface TextareaEmits {
100
- (e: 'update:modelValue', payload: string | number): void
101
- (e: 'blur', event: FocusEvent): void
102
- (e: 'change', event: Event): void
103
- }
104
-
105
- export interface TextareaSlots {
106
- leading(props?: {}): any
107
- default(props?: {}): any
108
- trailing(props?: {}): any
109
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/textarea";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigTextarea = _appConfig;
6
+ const textarea = tv({ extend: tv(theme), ...appConfigTextarea.b24ui?.textarea || {} });
110
7
  </script>
111
8
 
112
- <script setup lang="ts">
113
- import { ref, computed, onMounted, nextTick, watch } from 'vue'
114
- import { Primitive } from 'reka-ui'
115
- import { useComponentIcons } from '../composables/useComponentIcons'
116
- import { useFormField } from '../composables/useFormField'
117
- import { looseToNumber } from '../utils'
118
- import B24Avatar from './Avatar.vue'
119
-
120
- defineOptions({ inheritAttrs: false })
121
-
122
- const props = withDefaults(defineProps<TextareaProps>(), {
123
- rows: 3,
124
- maxrows: 5,
125
- autofocusDelay: 0,
126
- autoresizeDelay: 0
127
- })
128
- const slots = defineSlots<TextareaSlots>()
129
- const emits = defineEmits<TextareaEmits>()
130
-
131
- const [modelValue, modelModifiers] = defineModel<string | number | null>()
132
-
133
- const { emitFormFocus, emitFormBlur, emitFormInput, emitFormChange, color, id, name, highlight, disabled, ariaAttrs } = useFormField<TextareaProps>(props, { deferInputValidation: true })
134
- const { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(props)
135
-
9
+ <script setup>
10
+ import { ref, computed, onMounted, nextTick, watch } from "vue";
11
+ import { Primitive } from "reka-ui";
12
+ import { useComponentIcons } from "../composables/useComponentIcons";
13
+ import { useFormField } from "../composables/useFormField";
14
+ import { looseToNumber } from "../utils";
15
+ import B24Avatar from "./Avatar.vue";
16
+ defineOptions({ inheritAttrs: false });
17
+ const props = defineProps({
18
+ as: { type: null, required: false },
19
+ id: { type: String, required: false },
20
+ name: { type: String, required: false },
21
+ placeholder: { type: String, required: false },
22
+ color: { type: null, required: false },
23
+ noPadding: { type: Boolean, required: false },
24
+ noBorder: { type: Boolean, required: false },
25
+ underline: { type: Boolean, required: false },
26
+ rounded: { type: Boolean, required: false },
27
+ required: { type: Boolean, required: false },
28
+ autofocus: { type: Boolean, required: false },
29
+ autofocusDelay: { type: Number, required: false, default: 0 },
30
+ autoresize: { type: Boolean, required: false },
31
+ autoresizeDelay: { type: Number, required: false, default: 0 },
32
+ disabled: { type: Boolean, required: false },
33
+ rows: { type: Number, required: false, default: 3 },
34
+ maxrows: { type: Number, required: false, default: 5 },
35
+ tag: { type: String, required: false },
36
+ tagColor: { type: null, required: false },
37
+ highlight: { type: Boolean, required: false },
38
+ class: { type: null, required: false },
39
+ b24ui: { type: null, required: false },
40
+ icon: { type: [Function, Object], required: false },
41
+ avatar: { type: Object, required: false },
42
+ loading: { type: Boolean, required: false },
43
+ trailing: { type: Boolean, required: false },
44
+ trailingIcon: { type: [Function, Object], required: false }
45
+ });
46
+ const slots = defineSlots();
47
+ const emits = defineEmits(["update:modelValue", "blur", "change"]);
48
+ const [modelValue, modelModifiers] = defineModel({ type: [String, Number, null] });
49
+ const { emitFormFocus, emitFormBlur, emitFormInput, emitFormChange, color, id, name, highlight, disabled, ariaAttrs } = useFormField(props, { deferInputValidation: true });
50
+ const { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(props);
136
51
  const isTag = computed(() => {
137
- return props.tag
138
- })
139
-
52
+ return props.tag;
53
+ });
140
54
  const b24ui = computed(() => textarea({
141
55
  color: color.value,
142
56
  loading: props.loading,
@@ -149,102 +63,79 @@ const b24ui = computed(() => textarea({
149
63
  underline: Boolean(props.underline),
150
64
  leading: Boolean(isLeading.value || !!props.avatar || !!slots.leading),
151
65
  trailing: Boolean(isTrailing.value || !!slots.trailing)
152
- }))
153
-
154
- const textareaRef = ref<HTMLTextAreaElement | null>(null)
155
-
156
- // Custom function to handle the v-model properties
157
- function updateInput(value: string | null) {
66
+ }));
67
+ const textareaRef = ref(null);
68
+ function updateInput(value) {
158
69
  if (modelModifiers.trim) {
159
- value = value?.trim() ?? null
70
+ value = value?.trim() ?? null;
160
71
  }
161
-
162
72
  if (modelModifiers.number) {
163
- value = looseToNumber(value)
73
+ value = looseToNumber(value);
164
74
  }
165
-
166
75
  if (modelModifiers.nullify) {
167
- value ||= null
76
+ value ||= null;
168
77
  }
169
-
170
- modelValue.value = value
171
- emitFormInput()
78
+ modelValue.value = value;
79
+ emitFormInput();
172
80
  }
173
-
174
- function onInput(event: Event) {
175
- autoResize()
176
-
81
+ function onInput(event) {
82
+ autoResize();
177
83
  if (!modelModifiers.lazy) {
178
- updateInput((event.target as HTMLInputElement).value)
84
+ updateInput(event.target.value);
179
85
  }
180
86
  }
181
-
182
- function onChange(event: Event) {
183
- const value = (event.target as HTMLInputElement).value
184
-
87
+ function onChange(event) {
88
+ const value = event.target.value;
185
89
  if (modelModifiers.lazy) {
186
- updateInput(value)
90
+ updateInput(value);
187
91
  }
188
-
189
- // Update trimmed textarea so that it has same behavior as native textarea https://github.com/vuejs/core/blob/5ea8a8a4fab4e19a71e123e4d27d051f5e927172/packages/runtime-dom/src/directives/vModel.ts#L63
190
92
  if (modelModifiers.trim) {
191
- (event.target as HTMLInputElement).value = value.trim()
93
+ event.target.value = value.trim();
192
94
  }
193
-
194
- emitFormChange()
195
- emits('change', event)
95
+ emitFormChange();
96
+ emits("change", event);
196
97
  }
197
-
198
- function onBlur(event: FocusEvent) {
199
- emitFormBlur()
200
- emits('blur', event)
98
+ function onBlur(event) {
99
+ emitFormBlur();
100
+ emits("blur", event);
201
101
  }
202
-
203
102
  function autoFocus() {
204
103
  if (props.autofocus) {
205
- textareaRef.value?.focus()
104
+ textareaRef.value?.focus();
206
105
  }
207
106
  }
208
-
209
107
  function autoResize() {
210
108
  if (props.autoresize && textareaRef.value) {
211
- textareaRef.value.rows = props.rows
212
- const overflow = textareaRef.value.style.overflow
213
- textareaRef.value.style.overflow = 'hidden'
214
-
215
- const styles = window.getComputedStyle(textareaRef.value)
216
- const paddingTop = Number.parseInt(styles.paddingTop)
217
- const paddingBottom = Number.parseInt(styles.paddingBottom)
218
- const padding = paddingTop + paddingBottom
219
- const lineHeight = Number.parseInt(styles.lineHeight)
220
- const { scrollHeight } = textareaRef.value
221
- const newRows = (scrollHeight - padding) / lineHeight
222
-
109
+ textareaRef.value.rows = props.rows;
110
+ const overflow = textareaRef.value.style.overflow;
111
+ textareaRef.value.style.overflow = "hidden";
112
+ const styles = window.getComputedStyle(textareaRef.value);
113
+ const paddingTop = Number.parseInt(styles.paddingTop);
114
+ const paddingBottom = Number.parseInt(styles.paddingBottom);
115
+ const padding = paddingTop + paddingBottom;
116
+ const lineHeight = Number.parseInt(styles.lineHeight);
117
+ const { scrollHeight } = textareaRef.value;
118
+ const newRows = (scrollHeight - padding) / lineHeight;
223
119
  if (newRows > props.rows) {
224
- textareaRef.value.rows = props.maxrows ? Math.min(newRows, props.maxrows) : newRows
120
+ textareaRef.value.rows = props.maxrows ? Math.min(newRows, props.maxrows) : newRows;
225
121
  }
226
-
227
- textareaRef.value.style.overflow = overflow
122
+ textareaRef.value.style.overflow = overflow;
228
123
  }
229
124
  }
230
-
231
125
  watch(modelValue, () => {
232
- nextTick(autoResize)
233
- })
234
-
126
+ nextTick(autoResize);
127
+ });
235
128
  onMounted(() => {
236
129
  setTimeout(() => {
237
- autoFocus()
238
- }, props.autofocusDelay)
239
-
130
+ autoFocus();
131
+ }, props.autofocusDelay);
240
132
  setTimeout(() => {
241
- autoResize()
242
- }, props.autoresizeDelay)
243
- })
244
-
133
+ autoResize();
134
+ }, props.autoresizeDelay);
135
+ });
245
136
  defineExpose({
246
137
  textareaRef
247
- })
138
+ });
248
139
  </script>
249
140
 
250
141
  <template>
@@ -281,7 +172,7 @@ defineExpose({
281
172
  />
282
173
  <B24Avatar
283
174
  v-else-if="!!avatar"
284
- :size="((props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()) as AvatarProps['size'])"
175
+ :size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
285
176
  v-bind="avatar"
286
177
  :class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
287
178
  />