@threadlabs/looma 0.25.3 → 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 (69) hide show
  1. package/components/ui-badge/ui-badge.html +59 -3
  2. package/components/ui-button/ui-button.html +1 -1
  3. package/components/ui-card/ui-card.html +27 -2
  4. package/components/ui-cluster/ui-cluster.html +30 -0
  5. package/components/ui-editor-surface/ui-editor-surface.html +23 -0
  6. package/components/ui-scroll-area/ui-scroll-area.html +5 -0
  7. package/components/ui-stack/ui-stack.html +17 -1
  8. package/components/ui-text/ui-text.html +5 -0
  9. package/components/ui-textarea/ui-textarea.html +7 -0
  10. package/dist/index.js +1 -1
  11. package/package.json +1 -1
  12. package/styles/ui-badge.css +61 -4
  13. package/styles/ui-button.css +1 -1
  14. package/styles/ui-card.css +24 -0
  15. package/styles/ui-cluster.css +25 -0
  16. package/styles/ui-editor-surface.css +19 -0
  17. package/styles/ui-scroll-area.css +4 -0
  18. package/styles/ui-stack.css +13 -0
  19. package/styles/ui-text.css +4 -0
  20. package/styles/ui-textarea.css +4 -0
  21. package/vanilla/UiBadge.js +16 -3
  22. package/vanilla/UiCard.d.ts +1 -1
  23. package/vanilla/UiCard.js +1 -1
  24. package/vanilla/UiCluster.d.ts +3 -0
  25. package/vanilla/UiCluster.js +9 -3
  26. package/vanilla/UiEditorSurface.d.ts +14 -0
  27. package/vanilla/UiEditorSurface.js +27 -0
  28. package/vanilla/UiScrollArea.d.ts +1 -0
  29. package/vanilla/UiScrollArea.js +1 -1
  30. package/vanilla/UiStack.d.ts +2 -0
  31. package/vanilla/UiStack.js +8 -9
  32. package/vanilla/UiText.d.ts +1 -0
  33. package/vanilla/UiText.js +1 -1
  34. package/vanilla/UiTextarea.d.ts +1 -0
  35. package/vanilla/UiTextarea.js +4 -1
  36. package/vanilla/index.js +1 -0
  37. package/vue/UiBadge.d.ts +4 -2
  38. package/vue/UiBadge.vue +57 -3
  39. package/vue/UiButton.vue +1 -1
  40. package/vue/UiCard.d.ts +3 -3
  41. package/vue/UiCard.vue +34 -5
  42. package/vue/UiCluster.d.ts +27 -0
  43. package/vue/UiCluster.vue +95 -1
  44. package/vue/UiEditorSlashMenuItem.d.ts +1 -1
  45. package/vue/UiEditorSurface.d.ts +26 -0
  46. package/vue/UiEditorSurface.js +2 -0
  47. package/vue/UiEditorSurface.vue +129 -0
  48. package/vue/UiScrollArea.d.ts +9 -0
  49. package/vue/UiScrollArea.vue +28 -2
  50. package/vue/UiStack.d.ts +18 -0
  51. package/vue/UiStack.vue +58 -1
  52. package/vue/UiText.d.ts +9 -0
  53. package/vue/UiText.vue +33 -0
  54. package/vue/UiTextarea.d.ts +9 -0
  55. package/vue/UiTextarea.vue +37 -2
  56. package/vue/chunks/UiBadge.js +7 -3
  57. package/vue/chunks/UiButton.js +1 -1
  58. package/vue/chunks/UiCard.js +10 -3
  59. package/vue/chunks/UiCluster.js +82 -1
  60. package/vue/chunks/UiEditorSurface.js +71 -0
  61. package/vue/chunks/UiScrollArea.js +28 -2
  62. package/vue/chunks/UiStack.js +46 -1
  63. package/vue/chunks/UiText.js +43 -1
  64. package/vue/chunks/UiTextarea.js +28 -2
  65. package/vue/components.css +321 -190
  66. package/vue/editor/LoomaEditor.d.ts +12 -0
  67. package/vue/editor/index.js +7 -2
  68. package/vue/index.d.ts +1 -0
  69. package/vue/index.js +2 -1
@@ -4,8 +4,11 @@ import { computed, createElementBlock, defineComponent, getCurrentInstance, merg
4
4
  //#region .build/vue/UiCluster.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
6
6
  "data-align",
7
+ "data-fixed",
7
8
  "data-gap",
8
9
  "data-justify",
10
+ "data-padding",
11
+ "data-padding-end",
9
12
  "data-wrap",
10
13
  "data-ui-cluster-state"
11
14
  ];
@@ -19,6 +22,10 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
19
22
  type: null,
20
23
  default: null
21
24
  },
25
+ fixed: {
26
+ type: null,
27
+ default: false
28
+ },
22
29
  gap: {
23
30
  type: null,
24
31
  default: null
@@ -27,6 +34,14 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
27
34
  type: null,
28
35
  default: null
29
36
  },
37
+ padding: {
38
+ type: null,
39
+ default: "none"
40
+ },
41
+ paddingEnd: {
42
+ type: null,
43
+ default: "none"
44
+ },
30
45
  wrap: {
31
46
  type: null,
32
47
  default: null
@@ -49,6 +64,16 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
49
64
  "stretch"
50
65
  ]
51
66
  },
67
+ fixed: {
68
+ type: {
69
+ kind: "terminal",
70
+ name: "boolean"
71
+ },
72
+ required: false,
73
+ target: { attribute: "fixed" },
74
+ description: "Keeps this group at its content size inside a flex layout.",
75
+ default: false
76
+ },
52
77
  gap: {
53
78
  type: {
54
79
  kind: "terminal",
@@ -80,6 +105,39 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
80
105
  "between"
81
106
  ]
82
107
  },
108
+ padding: {
109
+ type: {
110
+ kind: "terminal",
111
+ name: "keyword"
112
+ },
113
+ required: false,
114
+ target: { attribute: "padding" },
115
+ description: "Optional internal space for an action group, using the shared spacing scale.",
116
+ values: [
117
+ "none",
118
+ "s",
119
+ "m",
120
+ "l"
121
+ ],
122
+ default: "none"
123
+ },
124
+ paddingEnd: {
125
+ type: {
126
+ kind: "terminal",
127
+ name: "keyword"
128
+ },
129
+ required: false,
130
+ target: { attribute: "paddingend" },
131
+ description: "Optional extra space at the inline end, such as clearance beside another control. xl is 4rem.",
132
+ values: [
133
+ "none",
134
+ "s",
135
+ "m",
136
+ "l",
137
+ "xl"
138
+ ],
139
+ default: "none"
140
+ },
83
141
  wrap: {
84
142
  type: {
85
143
  kind: "terminal",
@@ -94,8 +152,11 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
94
152
  const props = __props;
95
153
  const acceptedProps = {
96
154
  align: null,
155
+ fixed: false,
97
156
  gap: null,
98
157
  justify: null,
158
+ padding: "none",
159
+ paddingEnd: "none",
99
160
  wrap: null
100
161
  };
101
162
  const checkedProps = computed(() => ({
@@ -103,6 +164,10 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
103
164
  kind: "terminal",
104
165
  name: "keyword"
105
166
  }, false, "align", acceptedProps),
167
+ fixed: checkedProp(props["fixed"], {
168
+ kind: "terminal",
169
+ name: "boolean"
170
+ }, false, "fixed", acceptedProps),
106
171
  gap: checkedProp(props["gap"], {
107
172
  kind: "terminal",
108
173
  name: "keyword"
@@ -111,6 +176,14 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
111
176
  kind: "terminal",
112
177
  name: "keyword"
113
178
  }, false, "justify", acceptedProps),
179
+ padding: checkedProp(props["padding"], {
180
+ kind: "terminal",
181
+ name: "keyword"
182
+ }, false, "padding", acceptedProps),
183
+ paddingEnd: checkedProp(props["paddingEnd"], {
184
+ kind: "terminal",
185
+ name: "keyword"
186
+ }, false, "paddingEnd", acceptedProps),
114
187
  wrap: checkedProp(props["wrap"], {
115
188
  kind: "terminal",
116
189
  name: "keyword"
@@ -142,6 +215,11 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
142
215
  });
143
216
  /** The values the styles' :host-state() rules test. */
144
217
  const hostState = computed(() => [
218
+ checkedProps.value.fixed && "fixed",
219
+ checkedProps.value.padding && "padding",
220
+ checkedProps.value.padding != null && `padding=${encodeURIComponent(checkedProps.value.padding)}`,
221
+ checkedProps.value.paddingEnd && "paddingEnd",
222
+ checkedProps.value.paddingEnd != null && `paddingEnd=${encodeURIComponent(checkedProps.value.paddingEnd)}`,
145
223
  checkedProps.value.gap && "gap",
146
224
  checkedProps.value.gap != null && `gap=${encodeURIComponent(checkedProps.value.gap)}`,
147
225
  checkedProps.value.align && "align",
@@ -154,8 +232,11 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
154
232
  return (_ctx, _cache) => {
155
233
  return withDirectives((openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-cluster" }, nativeAttrs(_ctx.$attrs), {
156
234
  "data-align": reflectedProp("align", "align", checkedProps.value.align, void 0, false),
235
+ "data-fixed": reflectedProp("fixed", "fixed", checkedProps.value.fixed, void 0, false),
157
236
  "data-gap": reflectedProp("gap", "gap", checkedProps.value.gap, void 0, false),
158
237
  "data-justify": reflectedProp("justify", "justify", checkedProps.value.justify, void 0, false),
238
+ "data-padding": reflectedProp("padding", "padding", checkedProps.value.padding, void 0, false),
239
+ "data-padding-end": reflectedProp("paddingEnd", "padding-end", checkedProps.value.paddingEnd, void 0, false),
159
240
  "data-wrap": reflectedProp("wrap", "wrap", checkedProps.value.wrap, void 0, false),
160
241
  "data-ui-cluster-state": hostState.value || void 0
161
242
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1)), [[unref(vPropValidity), {
@@ -164,6 +245,6 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
164
245
  }]]);
165
246
  };
166
247
  }
167
- }), [["__scopeId", "data-v-fafdad21"]]);
248
+ }), [["__scopeId", "data-v-e3a64464"]]);
168
249
  //#endregion
169
250
  export { UiCluster_default as t };
@@ -0,0 +1,71 @@
1
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { a as vPropValidity, n as checkedProp } from "./props.js";
3
+ import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
4
+ //#region .build/vue/UiEditorSurface.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = ["data-density", "data-ui-editor-surface-state"];
6
+ //#endregion
7
+ //#region .build/vue/UiEditorSurface.vue
8
+ var UiEditorSurface_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
9
+ inheritAttrs: false,
10
+ __name: "UiEditorSurface",
11
+ props: { density: {
12
+ type: null,
13
+ default: "comfortable"
14
+ } },
15
+ setup(__props) {
16
+ const propValidityContract = { props: { density: {
17
+ type: {
18
+ kind: "terminal",
19
+ name: "keyword"
20
+ },
21
+ required: false,
22
+ target: { attribute: "density" },
23
+ description: "The document canvas. comfortable preserves the editor's normal room and mobile toolbar clearance. compact fits a read-only excerpt to its content without\n outer padding.",
24
+ values: ["comfortable", "compact"],
25
+ default: "comfortable"
26
+ } } };
27
+ const props = __props;
28
+ const acceptedProps = { density: "comfortable" };
29
+ const checkedProps = computed(() => ({ density: checkedProp(props["density"], {
30
+ kind: "terminal",
31
+ name: "keyword"
32
+ }, false, "density", acceptedProps) }));
33
+ checkedProps.value;
34
+ watchSyncEffect(() => {
35
+ checkedProps.value;
36
+ });
37
+ function nativeAttrs(attrs) {
38
+ const names = Object.keys(attrs);
39
+ if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs;
40
+ return Object.fromEntries(names.map((name) => [Object.hasOwn(Object.prototype, name) ? name === "__proto__" ? "__Proto__" : name[0].toUpperCase() + name.slice(1) : name, attrs[name]]));
41
+ }
42
+ const componentInstance = getCurrentInstance();
43
+ function reflectedProp(name, kebab, value, fallback, bound, separator) {
44
+ const incoming = componentInstance?.vnode.props;
45
+ if (!bound && (incoming === null || incoming === void 0 || !Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab))) return fallback;
46
+ if (value === null || value === void 0) return void 0;
47
+ return Array.isArray(value) && separator !== void 0 ? value.join(separator) : typeof value === "object" ? JSON.stringify(value) : String(value);
48
+ }
49
+ const hydrationNode = getCurrentInstance()?.vnode.el;
50
+ if (typeof window !== "undefined" && hydrationNode != null && (!(hydrationNode instanceof Element) || hydrationNode.localName !== "div")) throw Object.assign(/* @__PURE__ */ new Error("HR005: Server markup for <ui-editor-surface> has an incompatible root."), {
51
+ name: "HtmlDiagnosticError",
52
+ diagnostic: Object.freeze({
53
+ code: "HR005",
54
+ message: "Server markup for <ui-editor-surface> has an incompatible root."
55
+ })
56
+ });
57
+ /** The values the styles' :host-state() rules test. */
58
+ const hostState = computed(() => [checkedProps.value.density && "density", checkedProps.value.density != null && `density=${encodeURIComponent(checkedProps.value.density)}`].filter(Boolean).join(" "));
59
+ return (_ctx, _cache) => {
60
+ return withDirectives((openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-editor-surface" }, nativeAttrs(_ctx.$attrs), {
61
+ "data-density": reflectedProp("density", "density", checkedProps.value.density, void 0, false),
62
+ "data-ui-editor-surface-state": hostState.value || void 0
63
+ }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1)), [[unref(vPropValidity), {
64
+ contract: propValidityContract,
65
+ values: { ...props }
66
+ }]]);
67
+ };
68
+ }
69
+ }), [["__scopeId", "data-v-7e72ed22"]]);
70
+ //#endregion
71
+ export { UiEditorSurface_default as t };
@@ -4,6 +4,7 @@ import { a as vPropValidity, n as checkedProp, r as propValidityState } from "./
4
4
  import { computed, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, ref, renderSlot, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
5
5
  //#region .build/vue/UiScrollArea.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = [
7
+ "data-fill",
7
8
  "data-orientation",
8
9
  "data-size",
9
10
  "data-ui-scroll-area-state"
@@ -14,6 +15,10 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
14
15
  inheritAttrs: false,
15
16
  __name: "UiScrollArea",
16
17
  props: {
18
+ fill: {
19
+ type: null,
20
+ default: false
21
+ },
17
22
  orientation: {
18
23
  type: null,
19
24
  default: "vertical"
@@ -25,6 +30,16 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
25
30
  },
26
31
  setup(__props) {
27
32
  const propValidityContract = { props: {
33
+ fill: {
34
+ type: {
35
+ kind: "terminal",
36
+ name: "boolean"
37
+ },
38
+ required: false,
39
+ target: { attribute: "fill" },
40
+ description: "Grows into remaining space within a flex layout while keeping content independently scrollable.",
41
+ default: false
42
+ },
28
43
  orientation: {
29
44
  type: {
30
45
  kind: "terminal",
@@ -55,10 +70,15 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
55
70
  } };
56
71
  const props = __props;
57
72
  const acceptedProps = {
73
+ fill: false,
58
74
  orientation: "vertical",
59
75
  size: "content"
60
76
  };
61
77
  const checkedProps = computed(() => ({
78
+ fill: checkedProp(props["fill"], {
79
+ kind: "terminal",
80
+ name: "boolean"
81
+ }, false, "fill", acceptedProps),
62
82
  orientation: checkedProp(props["orientation"], {
63
83
  kind: "terminal",
64
84
  name: "keyword"
@@ -97,6 +117,7 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
97
117
  });
98
118
  /** The values the styles' :host-state() rules test. */
99
119
  const hostState = computed(() => [
120
+ checkedProps.value.fill && "fill",
100
121
  checkedProps.value.orientation && "orientation",
101
122
  checkedProps.value.orientation != null && `orientation=${encodeURIComponent(checkedProps.value.orientation)}`,
102
123
  checkedProps.value.size && "size",
@@ -116,7 +137,11 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
116
137
  const kebab = name.replace(/[A-Z]/g, (letter) => "-" + letter.toLowerCase());
117
138
  return incoming !== null && incoming !== void 0 ? incoming[name] ?? incoming[kebab] ?? null : null;
118
139
  },
119
- propNames: ["orientation", "size"],
140
+ propNames: [
141
+ "fill",
142
+ "orientation",
143
+ "size"
144
+ ],
120
145
  propValidity: (name) => propValidityState({
121
146
  contract: propValidityContract,
122
147
  values: { ...props }
@@ -125,6 +150,7 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
125
150
  });
126
151
  return (_ctx, _cache) => {
127
152
  return withDirectives((openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-scroll-area" }, nativeAttrs(_ctx.$attrs), {
153
+ "data-fill": reflectedProp("fill", "fill", checkedProps.value.fill, void 0, false),
128
154
  "data-orientation": reflectedProp("orientation", "orientation", checkedProps.value.orientation, void 0, false),
129
155
  "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
130
156
  "data-ui-scroll-area-state": hostState.value || void 0,
@@ -140,6 +166,6 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
140
166
  }]]);
141
167
  };
142
168
  }
143
- }), [["__scopeId", "data-v-7357ecdb"]]);
169
+ }), [["__scopeId", "data-v-1f6366dd"]]);
144
170
  //#endregion
145
171
  export { UiScrollArea_default as t };
@@ -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 };