@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.
Files changed (50) hide show
  1. package/dist/bundled/v2/components/OrRangeSliderV3/OrRangeSlider.js +1 -2
  2. package/dist/bundled/v2/components/OrSliderV3/OrSlider.js +1 -2
  3. package/dist/bundled/v2/components/OrTextareaV3/OrTextarea.js +30 -13
  4. package/dist/bundled/v2/components/OrTextareaV3/OrTextarea.vue.d.ts +15 -8
  5. package/dist/bundled/v2/components/OrTextareaV3/styles.js +2 -4
  6. package/dist/bundled/v2/components/OrTextareaV3/types.d.ts +4 -0
  7. package/dist/bundled/v2/index.js +1 -1
  8. package/dist/bundled/v3/components/OrRangeSliderV3/OrRangeSlider.js +1 -1
  9. package/dist/bundled/v3/components/OrRangeSliderV3/index.js +1 -1
  10. package/dist/bundled/v3/components/OrRangeSliderV3/styles.js +2 -2
  11. package/dist/bundled/v3/components/{OrRangeSliderV3-facf6cc0.js → OrRangeSliderV3-f12b32d8.js} +2 -3
  12. package/dist/bundled/v3/components/OrSliderV3/OrSlider.js +1 -1
  13. package/dist/bundled/v3/components/OrSliderV3/index.js +1 -1
  14. package/dist/bundled/v3/components/OrSliderV3/styles.js +1 -1
  15. package/dist/bundled/v3/components/{OrSliderV3-b957c173.js → OrSliderV3-84949774.js} +1 -2
  16. package/dist/bundled/v3/components/OrTextareaV3/OrTextarea.js +1 -1
  17. package/dist/bundled/v3/components/OrTextareaV3/OrTextarea.vue.d.ts +15 -8
  18. package/dist/bundled/v3/components/OrTextareaV3/index.js +1 -1
  19. package/dist/bundled/v3/components/OrTextareaV3/styles.js +1 -1
  20. package/dist/bundled/v3/components/OrTextareaV3/types.d.ts +4 -0
  21. package/dist/bundled/v3/components/{OrTextareaV3-b142dda2.js → OrTextareaV3-12467615.js} +31 -16
  22. package/dist/bundled/v3/components/index.js +3 -3
  23. package/dist/bundled/v3/index.js +4 -4
  24. package/dist/esm/v2/{OrRangeSlider-d8d0a2f5.js → OrRangeSlider-58dad70b.js} +2 -3
  25. package/dist/esm/v2/{OrSlider-3d8de563.js → OrSlider-6a373c9b.js} +1 -1
  26. package/dist/esm/v2/{OrSlider.vue_rollup-plugin-vue_script-d5250220.js → OrSlider.vue_rollup-plugin-vue_script-b29efe08.js} +1 -2
  27. package/dist/esm/v2/{OrTextarea-899e5220.js → OrTextarea-ef4fd48a.js} +32 -17
  28. package/dist/esm/v2/components/index.js +4 -4
  29. package/dist/esm/v2/components/or-range-slider-v3/index.js +2 -2
  30. package/dist/esm/v2/components/or-slider-v3/index.js +2 -2
  31. package/dist/esm/v2/components/or-textarea-v3/OrTextarea.vue.d.ts +15 -8
  32. package/dist/esm/v2/components/or-textarea-v3/index.js +2 -1
  33. package/dist/esm/v2/components/or-textarea-v3/types.d.ts +4 -0
  34. package/dist/esm/v2/index.js +4 -4
  35. package/dist/esm/v3/{OrRangeSlider-c1ed0ba5.js → OrRangeSlider-2bcd90ef.js} +2 -3
  36. package/dist/esm/v3/{OrSlider-5c665987.js → OrSlider-45bd13d5.js} +1 -2
  37. package/dist/esm/v3/{OrTextarea-76c037a9.js → OrTextarea-f9cbc1c3.js} +31 -16
  38. package/dist/esm/v3/components/index.js +3 -3
  39. package/dist/esm/v3/components/or-range-slider-v3/index.js +2 -2
  40. package/dist/esm/v3/components/or-slider-v3/index.js +1 -1
  41. package/dist/esm/v3/components/or-textarea-v3/OrTextarea.vue.d.ts +15 -8
  42. package/dist/esm/v3/components/or-textarea-v3/index.js +2 -1
  43. package/dist/esm/v3/components/or-textarea-v3/types.d.ts +4 -0
  44. package/dist/esm/v3/index.js +3 -3
  45. package/package.json +1 -1
  46. package/src/components/or-range-slider-v3/OrRangeSlider.vue +0 -1
  47. package/src/components/or-slider-v3/OrSlider.vue +0 -1
  48. package/src/components/or-textarea-v3/OrTextarea.vue +33 -9
  49. package/src/components/or-textarea-v3/styles.ts +8 -5
  50. package/src/components/or-textarea-v3/types.ts +5 -0
@@ -192,7 +192,6 @@ export default defineComponent({
192
192
  'or-slider-thumb-v3',
193
193
  ...Styles.SliderThumb,
194
194
  ...Styles.SliderThumbColors[props.color],
195
- 'touch-none', // Required for proper work on mobile
196
195
  ]);
197
196
 
198
197
  const breakpointMarkStyles = computed(() => [
@@ -32,8 +32,9 @@
32
32
  v-bind="attributes"
33
33
  v-model.trim="model"
34
34
  :class="controlStyles"
35
- :style="{ maxHeight }"
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
- maxHeight: {
137
- type: String,
138
- default: undefined,
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
- useTextareaAutosize({
239
- element: control,
240
- input: model,
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
- 'pt-sm+* md:pt-sm*',
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
- 'pt-sm*',
34
+ '!mx-0',
35
+
36
+ 'px-md md:px-sm+',
37
+ 'py-sm*',
35
38
  ],
36
39
  };
@@ -1,3 +1,8 @@
1
1
  import { ModelValue } from '../../types';
2
2
 
3
3
  export type TextareaModelValue = ModelValue<string>;
4
+
5
+ export type TextareaRows = number | {
6
+ min: number;
7
+ max?: number;
8
+ };