@onereach/ui-components 13.2.3-beta.4661.0 → 13.2.3-beta.4665.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.
- package/dist/bundled/v2/components/OrRangeSliderV3/OrRangeSlider.js +1 -2
- package/dist/bundled/v2/components/OrSliderV3/OrSlider.js +1 -2
- package/dist/bundled/v2/components/OrTextareaV3/OrTextarea.js +30 -13
- package/dist/bundled/v2/components/OrTextareaV3/OrTextarea.vue.d.ts +15 -8
- package/dist/bundled/v2/components/OrTextareaV3/styles.js +2 -4
- package/dist/bundled/v2/components/OrTextareaV3/types.d.ts +4 -0
- package/dist/bundled/v2/index.js +1 -1
- package/dist/bundled/v3/components/OrRangeSliderV3/OrRangeSlider.js +1 -1
- package/dist/bundled/v3/components/OrRangeSliderV3/index.js +1 -1
- package/dist/bundled/v3/components/OrRangeSliderV3/styles.js +2 -2
- package/dist/bundled/v3/components/{OrRangeSliderV3-facf6cc0.js → OrRangeSliderV3-f12b32d8.js} +2 -3
- package/dist/bundled/v3/components/OrSliderV3/OrSlider.js +1 -1
- package/dist/bundled/v3/components/OrSliderV3/index.js +1 -1
- package/dist/bundled/v3/components/OrSliderV3/styles.js +1 -1
- package/dist/bundled/v3/components/{OrSliderV3-b957c173.js → OrSliderV3-84949774.js} +1 -2
- package/dist/bundled/v3/components/OrTextareaV3/OrTextarea.js +1 -1
- package/dist/bundled/v3/components/OrTextareaV3/OrTextarea.vue.d.ts +15 -8
- package/dist/bundled/v3/components/OrTextareaV3/index.js +1 -1
- package/dist/bundled/v3/components/OrTextareaV3/styles.js +1 -1
- package/dist/bundled/v3/components/OrTextareaV3/types.d.ts +4 -0
- package/dist/bundled/v3/components/{OrTextareaV3-b142dda2.js → OrTextareaV3-12467615.js} +31 -16
- package/dist/bundled/v3/components/index.js +3 -3
- package/dist/bundled/v3/index.js +4 -4
- package/dist/esm/v2/{OrRangeSlider-d8d0a2f5.js → OrRangeSlider-58dad70b.js} +2 -3
- package/dist/esm/v2/{OrSlider-3d8de563.js → OrSlider-6a373c9b.js} +1 -1
- package/dist/esm/v2/{OrSlider.vue_rollup-plugin-vue_script-d5250220.js → OrSlider.vue_rollup-plugin-vue_script-b29efe08.js} +1 -2
- package/dist/esm/v2/{OrTextarea-899e5220.js → OrTextarea-ef4fd48a.js} +32 -17
- package/dist/esm/v2/components/index.js +4 -4
- package/dist/esm/v2/components/or-range-slider-v3/index.js +2 -2
- package/dist/esm/v2/components/or-slider-v3/index.js +2 -2
- package/dist/esm/v2/components/or-textarea-v3/OrTextarea.vue.d.ts +15 -8
- package/dist/esm/v2/components/or-textarea-v3/index.js +2 -1
- package/dist/esm/v2/components/or-textarea-v3/types.d.ts +4 -0
- package/dist/esm/v2/index.js +4 -4
- package/dist/esm/v3/{OrRangeSlider-c1ed0ba5.js → OrRangeSlider-2bcd90ef.js} +2 -3
- package/dist/esm/v3/{OrSlider-5c665987.js → OrSlider-45bd13d5.js} +1 -2
- package/dist/esm/v3/{OrTextarea-76c037a9.js → OrTextarea-f9cbc1c3.js} +31 -16
- package/dist/esm/v3/components/index.js +3 -3
- package/dist/esm/v3/components/or-range-slider-v3/index.js +2 -2
- package/dist/esm/v3/components/or-slider-v3/index.js +1 -1
- package/dist/esm/v3/components/or-textarea-v3/OrTextarea.vue.d.ts +15 -8
- package/dist/esm/v3/components/or-textarea-v3/index.js +2 -1
- package/dist/esm/v3/components/or-textarea-v3/types.d.ts +4 -0
- package/dist/esm/v3/index.js +3 -3
- package/package.json +1 -1
- package/src/components/or-range-slider-v3/OrRangeSlider.vue +0 -1
- package/src/components/or-slider-v3/OrSlider.vue +0 -1
- package/src/components/or-textarea-v3/OrTextarea.vue +33 -9
- package/src/components/or-textarea-v3/styles.ts +8 -5
- package/src/components/or-textarea-v3/types.ts +5 -0
|
@@ -32,8 +32,9 @@
|
|
|
32
32
|
v-bind="attributes"
|
|
33
33
|
v-model.trim="model"
|
|
34
34
|
:class="controlStyles"
|
|
35
|
-
:style="
|
|
35
|
+
:style="controlInlineStyles"
|
|
36
36
|
:name="name"
|
|
37
|
+
:rows="rows"
|
|
37
38
|
:autocomplete="autocomplete"
|
|
38
39
|
:placeholder="placeholder"
|
|
39
40
|
:required="required"
|
|
@@ -85,12 +86,13 @@
|
|
|
85
86
|
import { useTextareaAutosize } from '@vueuse/core';
|
|
86
87
|
import { PropType, computed, defineComponent, reactive, ref, toRef } from 'vue-demi';
|
|
87
88
|
import { useControlAttributes, useIdAttribute, useProxyModelValue, useValidationAttributes } from '../../hooks';
|
|
89
|
+
import { isObject } from '../../utils';
|
|
88
90
|
import { OrErrorV3 as OrError } from '../or-error-v3';
|
|
89
91
|
import { OrHintV3 as OrHint } from '../or-hint-v3';
|
|
90
92
|
import { InputBoxSize, InputBoxVariant, OrInputBoxV3 as OrInputBox } from '../or-input-box-v3';
|
|
91
93
|
import { OrLabelV3 as OrLabel } from '../or-label-v3';
|
|
92
94
|
import { Textarea, TextareaControl, TextareaControlSizes } from './styles';
|
|
93
|
-
import { TextareaModelValue } from './types';
|
|
95
|
+
import { TextareaModelValue, TextareaRows } from './types';
|
|
94
96
|
|
|
95
97
|
export default defineComponent({
|
|
96
98
|
name: 'OrTextarea',
|
|
@@ -133,9 +135,9 @@ export default defineComponent({
|
|
|
133
135
|
default: () => InputBoxSize.M,
|
|
134
136
|
},
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
type:
|
|
138
|
-
default:
|
|
138
|
+
rows: {
|
|
139
|
+
type: [Number, Object] as PropType<TextareaRows>,
|
|
140
|
+
default: 2,
|
|
139
141
|
},
|
|
140
142
|
|
|
141
143
|
label: {
|
|
@@ -212,8 +214,25 @@ export default defineComponent({
|
|
|
212
214
|
const controlStyles = computed(() => [
|
|
213
215
|
...TextareaControl,
|
|
214
216
|
...TextareaControlSizes[props.size],
|
|
217
|
+
...isObject(props.rows) ? ['resize-none'] : [],
|
|
215
218
|
]);
|
|
216
219
|
|
|
220
|
+
const controlInlineStyles = computed(() => {
|
|
221
|
+
if (control.value) {
|
|
222
|
+
const paddingTop = Number(getComputedStyle(control.value).getPropertyValue('padding-top').match(/^(?<value>\d+)px$/)!.groups!.value);
|
|
223
|
+
const paddingBottom = Number(getComputedStyle(control.value).getPropertyValue('padding-bottom').match(/^(?<value>\d+)px$/)!.groups!.value);
|
|
224
|
+
|
|
225
|
+
const lineHeight = Number(getComputedStyle(control.value).getPropertyValue('line-height').match(/^(?<value>\d+)px$/)!.groups!.value);
|
|
226
|
+
|
|
227
|
+
return {
|
|
228
|
+
minHeight: `${paddingTop + paddingBottom + (isObject(props.rows) ? props.rows.min : props.rows) * lineHeight}px`,
|
|
229
|
+
maxHeight: isObject(props.rows) && props.rows.max ? `${paddingTop + paddingBottom + props.rows.max * lineHeight}px` : undefined,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return {};
|
|
234
|
+
});
|
|
235
|
+
|
|
217
236
|
// State
|
|
218
237
|
const model = useProxyModelValue(toRef(props, 'modelValue'), context.emit, { defaultValue: ref('') });
|
|
219
238
|
|
|
@@ -235,10 +254,14 @@ export default defineComponent({
|
|
|
235
254
|
}
|
|
236
255
|
|
|
237
256
|
// Effects
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
257
|
+
if (isObject(props.rows)) {
|
|
258
|
+
// Unluckily, `useTextareaAutosize` doesn't have a teardown function
|
|
259
|
+
// So, dynamically changed `rows` won't have any effect
|
|
260
|
+
useTextareaAutosize({
|
|
261
|
+
element: control,
|
|
262
|
+
input: model,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
242
265
|
|
|
243
266
|
return {
|
|
244
267
|
attributes,
|
|
@@ -248,6 +271,7 @@ export default defineComponent({
|
|
|
248
271
|
|
|
249
272
|
control,
|
|
250
273
|
controlStyles,
|
|
274
|
+
controlInlineStyles,
|
|
251
275
|
|
|
252
276
|
model,
|
|
253
277
|
|
|
@@ -9,9 +9,6 @@ export const Textarea: string[] = [
|
|
|
9
9
|
];
|
|
10
10
|
|
|
11
11
|
export const TextareaControl: string[] = [
|
|
12
|
-
// Interactivity
|
|
13
|
-
'resize-none',
|
|
14
|
-
|
|
15
12
|
// Box
|
|
16
13
|
'w-full',
|
|
17
14
|
|
|
@@ -26,11 +23,17 @@ export const TextareaControl: string[] = [
|
|
|
26
23
|
export const TextareaControlSizes: Record<InputBoxSize, string[]> = {
|
|
27
24
|
[InputBoxSize.M]: [
|
|
28
25
|
// Spacing
|
|
29
|
-
'
|
|
26
|
+
'!mx-0',
|
|
27
|
+
|
|
28
|
+
'px-md md:px-sm+',
|
|
29
|
+
'py-sm+* md:py-sm*',
|
|
30
30
|
],
|
|
31
31
|
|
|
32
32
|
[InputBoxSize.S]: [
|
|
33
33
|
// Spacing
|
|
34
|
-
'
|
|
34
|
+
'!mx-0',
|
|
35
|
+
|
|
36
|
+
'px-md md:px-sm+',
|
|
37
|
+
'py-sm*',
|
|
35
38
|
],
|
|
36
39
|
};
|