@threadlabs/looma 0.25.4 → 0.25.5

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 (58) hide show
  1. package/components/ui-card/ui-card.html +27 -2
  2. package/components/ui-cluster/ui-cluster.html +30 -0
  3. package/components/ui-editor-surface/ui-editor-surface.html +23 -0
  4. package/components/ui-scroll-area/ui-scroll-area.html +5 -0
  5. package/components/ui-stack/ui-stack.html +17 -1
  6. package/components/ui-text/ui-text.html +5 -0
  7. package/components/ui-textarea/ui-textarea.html +7 -0
  8. package/dist/index.js +1 -1
  9. package/package.json +1 -1
  10. package/styles/ui-card.css +24 -0
  11. package/styles/ui-cluster.css +25 -0
  12. package/styles/ui-editor-surface.css +19 -0
  13. package/styles/ui-scroll-area.css +4 -0
  14. package/styles/ui-stack.css +13 -0
  15. package/styles/ui-text.css +4 -0
  16. package/styles/ui-textarea.css +4 -0
  17. package/vanilla/UiCard.d.ts +1 -1
  18. package/vanilla/UiCard.js +1 -1
  19. package/vanilla/UiCluster.d.ts +3 -0
  20. package/vanilla/UiCluster.js +9 -3
  21. package/vanilla/UiEditorSurface.d.ts +14 -0
  22. package/vanilla/UiEditorSurface.js +27 -0
  23. package/vanilla/UiScrollArea.d.ts +1 -0
  24. package/vanilla/UiScrollArea.js +1 -1
  25. package/vanilla/UiStack.d.ts +2 -0
  26. package/vanilla/UiStack.js +8 -9
  27. package/vanilla/UiText.d.ts +1 -0
  28. package/vanilla/UiText.js +1 -1
  29. package/vanilla/UiTextarea.d.ts +1 -0
  30. package/vanilla/UiTextarea.js +4 -1
  31. package/vanilla/index.js +1 -0
  32. package/vue/UiCard.d.ts +3 -3
  33. package/vue/UiCard.vue +34 -5
  34. package/vue/UiCluster.d.ts +27 -0
  35. package/vue/UiCluster.vue +95 -1
  36. package/vue/UiEditorSurface.d.ts +26 -0
  37. package/vue/UiEditorSurface.js +2 -0
  38. package/vue/UiEditorSurface.vue +129 -0
  39. package/vue/UiScrollArea.d.ts +9 -0
  40. package/vue/UiScrollArea.vue +28 -2
  41. package/vue/UiStack.d.ts +18 -0
  42. package/vue/UiStack.vue +58 -1
  43. package/vue/UiText.d.ts +9 -0
  44. package/vue/UiText.vue +33 -0
  45. package/vue/UiTextarea.d.ts +9 -0
  46. package/vue/UiTextarea.vue +37 -2
  47. package/vue/chunks/UiCard.js +10 -3
  48. package/vue/chunks/UiCluster.js +82 -1
  49. package/vue/chunks/UiEditorSurface.js +71 -0
  50. package/vue/chunks/UiScrollArea.js +28 -2
  51. package/vue/chunks/UiStack.js +46 -1
  52. package/vue/chunks/UiText.js +43 -1
  53. package/vue/chunks/UiTextarea.js +28 -2
  54. package/vue/components.css +188 -104
  55. package/vue/editor/LoomaEditor.d.ts +12 -0
  56. package/vue/editor/index.js +7 -2
  57. package/vue/index.d.ts +1 -0
  58. package/vue/index.js +2 -1
@@ -4,7 +4,9 @@ import { computed, createElementBlock, defineComponent, getCurrentInstance, merg
4
4
  //#region .build/vue/UiStack.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
6
6
  "data-align",
7
+ "data-fill",
7
8
  "data-gap",
9
+ "data-height",
8
10
  "data-justify",
9
11
  "data-ui-stack-state"
10
12
  ];
@@ -18,10 +20,18 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
18
20
  type: null,
19
21
  default: null
20
22
  },
23
+ fill: {
24
+ type: null,
25
+ default: false
26
+ },
21
27
  gap: {
22
28
  type: null,
23
29
  default: null
24
30
  },
31
+ height: {
32
+ type: null,
33
+ default: null
34
+ },
25
35
  justify: {
26
36
  type: null,
27
37
  default: null
@@ -44,6 +54,16 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
44
54
  "stretch"
45
55
  ]
46
56
  },
57
+ fill: {
58
+ type: {
59
+ kind: "terminal",
60
+ name: "boolean"
61
+ },
62
+ required: false,
63
+ target: { attribute: "fill" },
64
+ description: "Grows into the remaining space of a flex layout and allows its scrolling children to shrink.",
65
+ default: false
66
+ },
47
67
  gap: {
48
68
  type: {
49
69
  kind: "terminal",
@@ -61,6 +81,15 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
61
81
  "xl"
62
82
  ]
63
83
  },
84
+ height: {
85
+ type: {
86
+ kind: "terminal",
87
+ name: "number"
88
+ },
89
+ required: false,
90
+ target: { attribute: "height" },
91
+ description: "An optional measured height in CSS pixels, for a viewport-bounded composition. Omit it to retain intrinsic sizing."
92
+ },
64
93
  justify: {
65
94
  type: {
66
95
  kind: "terminal",
@@ -80,7 +109,9 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
80
109
  const props = __props;
81
110
  const acceptedProps = {
82
111
  align: null,
112
+ fill: false,
83
113
  gap: null,
114
+ height: null,
84
115
  justify: null
85
116
  };
86
117
  const checkedProps = computed(() => ({
@@ -88,10 +119,18 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
88
119
  kind: "terminal",
89
120
  name: "keyword"
90
121
  }, false, "align", acceptedProps),
122
+ fill: checkedProp(props["fill"], {
123
+ kind: "terminal",
124
+ name: "boolean"
125
+ }, false, "fill", acceptedProps),
91
126
  gap: checkedProp(props["gap"], {
92
127
  kind: "terminal",
93
128
  name: "keyword"
94
129
  }, false, "gap", acceptedProps),
130
+ height: checkedProp(props["height"], {
131
+ kind: "terminal",
132
+ name: "number"
133
+ }, false, "height", acceptedProps),
95
134
  justify: checkedProp(props["justify"], {
96
135
  kind: "terminal",
97
136
  name: "keyword"
@@ -123,6 +162,9 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
123
162
  });
124
163
  /** The values the styles' :host-state() rules test. */
125
164
  const hostState = computed(() => [
165
+ checkedProps.value.fill && "fill",
166
+ checkedProps.value.height && "height",
167
+ checkedProps.value.height != null && `height=${checkedProps.value.height}`,
126
168
  checkedProps.value.gap && "gap",
127
169
  checkedProps.value.gap != null && `gap=${encodeURIComponent(checkedProps.value.gap)}`,
128
170
  checkedProps.value.align && "align",
@@ -132,8 +174,11 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
132
174
  ].filter(Boolean).join(" "));
133
175
  return (_ctx, _cache) => {
134
176
  return withDirectives((openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-stack" }, nativeAttrs(_ctx.$attrs), {
177
+ style: { "--ui-stack-height": checkedProps.value.height ?? void 0 },
135
178
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
179
+ "data-fill": reflectedProp("fill", "fill", checkedProps.value.fill, void 0, false),
136
180
  "data-gap": reflectedProp("gap", "gap", checkedProps.value.gap, void 0, false),
181
+ "data-height": reflectedProp("height", "height", checkedProps.value.height, void 0, false),
137
182
  "data-justify": reflectedProp("justify", "justify", checkedProps.value.justify, void 0, false),
138
183
  "data-ui-stack-state": hostState.value || void 0
139
184
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1)), [[unref(vPropValidity), {
@@ -142,6 +187,6 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
142
187
  }]]);
143
188
  };
144
189
  }
145
- }), [["__scopeId", "data-v-8129c161"]]);
190
+ }), [["__scopeId", "data-v-bdf63b20"]]);
146
191
  //#endregion
147
192
  export { UiStack_default as t };
@@ -7,6 +7,7 @@ var _hoisted_1 = [
7
7
  "data-align",
8
8
  "data-as",
9
9
  "data-font",
10
+ "data-grow",
10
11
  "data-size",
11
12
  "data-tone",
12
13
  "data-truncate",
@@ -19,6 +20,7 @@ var _hoisted_2 = [
19
20
  "data-align",
20
21
  "data-as",
21
22
  "data-font",
23
+ "data-grow",
22
24
  "data-size",
23
25
  "data-tone",
24
26
  "data-truncate",
@@ -31,6 +33,7 @@ var _hoisted_3 = [
31
33
  "data-align",
32
34
  "data-as",
33
35
  "data-font",
36
+ "data-grow",
34
37
  "data-size",
35
38
  "data-tone",
36
39
  "data-truncate",
@@ -43,6 +46,7 @@ var _hoisted_4 = [
43
46
  "data-align",
44
47
  "data-as",
45
48
  "data-font",
49
+ "data-grow",
46
50
  "data-size",
47
51
  "data-tone",
48
52
  "data-truncate",
@@ -55,6 +59,7 @@ var _hoisted_5 = [
55
59
  "data-align",
56
60
  "data-as",
57
61
  "data-font",
62
+ "data-grow",
58
63
  "data-size",
59
64
  "data-tone",
60
65
  "data-truncate",
@@ -67,6 +72,7 @@ var _hoisted_6 = [
67
72
  "data-align",
68
73
  "data-as",
69
74
  "data-font",
75
+ "data-grow",
70
76
  "data-size",
71
77
  "data-tone",
72
78
  "data-truncate",
@@ -79,6 +85,7 @@ var _hoisted_7 = [
79
85
  "data-align",
80
86
  "data-as",
81
87
  "data-font",
88
+ "data-grow",
82
89
  "data-size",
83
90
  "data-tone",
84
91
  "data-truncate",
@@ -91,6 +98,7 @@ var _hoisted_8 = [
91
98
  "data-align",
92
99
  "data-as",
93
100
  "data-font",
101
+ "data-grow",
94
102
  "data-size",
95
103
  "data-tone",
96
104
  "data-truncate",
@@ -103,6 +111,7 @@ var _hoisted_9 = [
103
111
  "data-align",
104
112
  "data-as",
105
113
  "data-font",
114
+ "data-grow",
106
115
  "data-size",
107
116
  "data-tone",
108
117
  "data-truncate",
@@ -115,6 +124,7 @@ var _hoisted_10 = [
115
124
  "data-align",
116
125
  "data-as",
117
126
  "data-font",
127
+ "data-grow",
118
128
  "data-size",
119
129
  "data-tone",
120
130
  "data-truncate",
@@ -127,6 +137,7 @@ var _hoisted_11 = [
127
137
  "data-align",
128
138
  "data-as",
129
139
  "data-font",
140
+ "data-grow",
130
141
  "data-size",
131
142
  "data-tone",
132
143
  "data-truncate",
@@ -153,6 +164,10 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
153
164
  type: null,
154
165
  default: "inherit"
155
166
  },
167
+ grow: {
168
+ type: null,
169
+ default: false
170
+ },
156
171
  size: {
157
172
  type: null,
158
173
  default: "inherit"
@@ -225,6 +240,16 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
225
240
  values: ["inherit", "sans"],
226
241
  default: "inherit"
227
242
  },
243
+ grow: {
244
+ type: {
245
+ kind: "terminal",
246
+ name: "boolean"
247
+ },
248
+ required: false,
249
+ target: { attribute: "grow" },
250
+ description: "Lets this text use remaining inline space in a flex row, including when truncated.",
251
+ default: false
252
+ },
228
253
  size: {
229
254
  type: {
230
255
  kind: "terminal",
@@ -320,6 +345,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
320
345
  align: "start",
321
346
  as: "p",
322
347
  font: "inherit",
348
+ grow: false,
323
349
  size: "inherit",
324
350
  tone: "default",
325
351
  truncate: false,
@@ -340,6 +366,10 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
340
366
  kind: "terminal",
341
367
  name: "keyword"
342
368
  }, false, "font", acceptedProps),
369
+ grow: checkedProp(props["grow"], {
370
+ kind: "terminal",
371
+ name: "boolean"
372
+ }, false, "grow", acceptedProps),
343
373
  size: checkedProp(props["size"], {
344
374
  kind: "terminal",
345
375
  name: "keyword"
@@ -394,6 +424,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
394
424
  });
395
425
  /** The values the styles' :host-state() rules test. */
396
426
  const hostState = computed(() => [
427
+ checkedProps.value.grow && "grow",
397
428
  checkedProps.value.size && "size",
398
429
  checkedProps.value.size != null && `size=${encodeURIComponent(checkedProps.value.size)}`,
399
430
  checkedProps.value.tone && "tone",
@@ -418,6 +449,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
418
449
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
419
450
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
420
451
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
452
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
421
453
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
422
454
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
423
455
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -436,6 +468,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
436
468
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
437
469
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
438
470
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
471
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
439
472
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
440
473
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
441
474
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -454,6 +487,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
454
487
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
455
488
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
456
489
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
490
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
457
491
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
458
492
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
459
493
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -472,6 +506,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
472
506
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
473
507
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
474
508
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
509
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
475
510
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
476
511
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
477
512
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -490,6 +525,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
490
525
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
491
526
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
492
527
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
528
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
493
529
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
494
530
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
495
531
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -508,6 +544,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
508
544
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
509
545
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
510
546
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
547
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
511
548
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
512
549
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
513
550
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -526,6 +563,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
526
563
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
527
564
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
528
565
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
566
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
529
567
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
530
568
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
531
569
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -544,6 +582,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
544
582
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
545
583
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
546
584
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
585
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
547
586
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
548
587
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
549
588
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -562,6 +601,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
562
601
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
563
602
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
564
603
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
604
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
565
605
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
566
606
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
567
607
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -580,6 +620,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
580
620
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
581
621
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
582
622
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
623
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
583
624
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
584
625
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
585
626
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -598,6 +639,7 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
598
639
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
599
640
  "data-as": reflectedProp("as", "as", checkedProps.value.as, void 0, false),
600
641
  "data-font": reflectedProp("font", "font", checkedProps.value.font, void 0, false),
642
+ "data-grow": reflectedProp("grow", "grow", checkedProps.value.grow, void 0, false),
601
643
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
602
644
  "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
603
645
  "data-truncate": reflectedProp("truncate", "truncate", checkedProps.value.truncate, void 0, false),
@@ -612,6 +654,6 @@ var UiText_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
612
654
  }]]);
613
655
  };
614
656
  }
615
- }), [["__scopeId", "data-v-d830471c"]]);
657
+ }), [["__scopeId", "data-v-2c821f7e"]]);
616
658
  //#endregion
617
659
  export { UiText_default as t };
@@ -13,6 +13,7 @@ var _hoisted_1 = [
13
13
  "data-autosize",
14
14
  "data-disabled",
15
15
  "data-invalid",
16
+ "data-max-rows",
16
17
  "data-readonly",
17
18
  "data-required",
18
19
  "data-rows",
@@ -38,6 +39,10 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
38
39
  type: null,
39
40
  default: false
40
41
  },
42
+ maxRows: {
43
+ type: null,
44
+ default: null
45
+ },
41
46
  readonly: {
42
47
  type: null,
43
48
  default: false
@@ -93,6 +98,15 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
93
98
  description: "Exposes invalid state to assistive technology and styling.",
94
99
  default: false
95
100
  },
101
+ maxRows: {
102
+ type: {
103
+ kind: "terminal",
104
+ name: "integer"
105
+ },
106
+ required: false,
107
+ target: { attribute: "maxrows" },
108
+ description: "Optional maximum visible rows, for a growing field in a bounded layout. Extra text scrolls inside the field. Omit it to retain unbounded growth."
109
+ },
96
110
  readonly: {
97
111
  type: {
98
112
  kind: "terminal",
@@ -153,6 +167,7 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
153
167
  autosize: false,
154
168
  disabled: false,
155
169
  invalid: false,
170
+ maxRows: null,
156
171
  readonly: false,
157
172
  required: false,
158
173
  rows: 4,
@@ -172,6 +187,10 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
172
187
  kind: "terminal",
173
188
  name: "boolean"
174
189
  }, false, "invalid", acceptedProps),
190
+ maxRows: checkedProp(props["maxRows"], {
191
+ kind: "terminal",
192
+ name: "integer"
193
+ }, false, "maxRows", acceptedProps),
175
194
  readonly: checkedProp(props["readonly"], {
176
195
  kind: "terminal",
177
196
  name: "boolean"
@@ -232,6 +251,8 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
232
251
  const hostState = computed(() => [
233
252
  checkedProps.value.size && "size",
234
253
  checkedProps.value.size != null && `size=${encodeURIComponent(checkedProps.value.size)}`,
254
+ checkedProps.value.maxRows && "maxRows",
255
+ checkedProps.value.maxRows != null && `maxRows=${checkedProps.value.maxRows}`,
235
256
  checkedProps.value.autosize && "autosize"
236
257
  ].filter(Boolean).join(" "));
237
258
  const dispatch = createDispatch(root);
@@ -252,6 +273,7 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
252
273
  "autosize",
253
274
  "disabled",
254
275
  "invalid",
276
+ "maxRows",
255
277
  "readonly",
256
278
  "required",
257
279
  "rows",
@@ -270,10 +292,14 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
270
292
  required: checkedProps.value.required ?? void 0,
271
293
  "aria-invalid": checkedProps.value.invalid ?? void 0,
272
294
  rows: checkedProps.value.rows ?? void 0,
273
- style: { "--_rows": checkedProps.value.rows ?? void 0 },
295
+ style: {
296
+ "--_rows": checkedProps.value.rows ?? void 0,
297
+ "--_max-rows": checkedProps.value.maxRows ?? void 0
298
+ },
274
299
  "data-autosize": reflectedProp("autosize", "autosize", checkedProps.value.autosize, void 0, false),
275
300
  "data-disabled": reflectedProp("disabled", "disabled", checkedProps.value.disabled, void 0, false),
276
301
  "data-invalid": reflectedProp("invalid", "invalid", checkedProps.value.invalid, void 0, false),
302
+ "data-max-rows": reflectedProp("maxRows", "max-rows", checkedProps.value.maxRows, void 0, false),
277
303
  "data-readonly": reflectedProp("readonly", "readonly", checkedProps.value.readonly, void 0, false),
278
304
  "data-required": reflectedProp("required", "required", checkedProps.value.required, void 0, false),
279
305
  "data-rows": reflectedProp("rows", "rows", checkedProps.value.rows, void 0, false),
@@ -295,6 +321,6 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
295
321
  }]]);
296
322
  };
297
323
  }
298
- }), [["__scopeId", "data-v-f5b6ae17"]]);
324
+ }), [["__scopeId", "data-v-4fc6e397"]]);
299
325
  //#endregion
300
326
  export { UiTextarea_default as t };