@threadlabs/looma 0.33.1 → 0.35.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 (215) hide show
  1. package/components/shared/overlay.js +8 -2
  2. package/components/shared/surface-material.js +21 -0
  3. package/components/ui-badge/ui-badge.html +11 -3
  4. package/components/ui-button/ui-button.html +92 -51
  5. package/components/ui-card/ui-card.html +50 -6
  6. package/components/ui-checkbox/ui-checkbox.html +4 -2
  7. package/components/ui-curve-editor/curve.js +10 -0
  8. package/components/ui-curve-editor/ui-curve-editor.html +181 -0
  9. package/components/ui-curve-editor/ui-curve-editor.js +51 -0
  10. package/components/ui-dialog/ui-dialog.html +64 -1
  11. package/components/ui-dialog/ui-dialog.js +9 -1
  12. package/components/ui-icon-button/ui-icon-button.html +97 -31
  13. package/components/ui-input/ui-input.html +2 -1
  14. package/components/ui-input-group/ui-input-group.html +4 -1
  15. package/components/ui-light-editor/ui-light-editor.html +45 -0
  16. package/components/ui-light-editor/ui-light-editor.js +53 -0
  17. package/components/ui-menu/ui-menu.html +62 -0
  18. package/components/ui-menu/ui-menu.js +1 -1
  19. package/components/ui-number-input/arithmetic.js +47 -0
  20. package/components/ui-number-input/ui-number-input.html +63 -0
  21. package/components/ui-number-input/ui-number-input.js +47 -0
  22. package/components/ui-popover/ui-popover.html +66 -1
  23. package/components/ui-popover/ui-popover.js +1 -1
  24. package/components/ui-select/ui-select.html +9 -7
  25. package/components/ui-slider/ui-slider.html +84 -0
  26. package/components/ui-slider/ui-slider.js +29 -0
  27. package/components/ui-switch/ui-switch.html +3 -0
  28. package/components/ui-tabs/ui-tabs.html +6 -1
  29. package/components/ui-text/ui-text.html +31 -6
  30. package/components/ui-textarea/ui-textarea.html +2 -1
  31. package/components/ui-tooltip/ui-tooltip.html +60 -0
  32. package/components/ui-tooltip/ui-tooltip.js +1 -1
  33. package/dist/index.js +47 -43
  34. package/docs/README.md +59 -5
  35. package/docs/card.html +16 -2
  36. package/docs/card.js +17 -2
  37. package/docs/catalog.json +1640 -108
  38. package/docs/customizer-render.mjs +50 -11
  39. package/docs/customizer.js +137 -24
  40. package/docs/documentation.css +9 -1
  41. package/docs/index.d.ts +8 -3
  42. package/docs/index.mjs +1 -1
  43. package/docs/preview.js +2 -0
  44. package/docs/render.mjs +16 -7
  45. package/docs/site.mjs +78 -27
  46. package/docs/theme-session.mjs +53 -0
  47. package/docs/theme.mjs +189 -18
  48. package/docs/value-editors.mjs +33 -0
  49. package/package.json +2 -2
  50. package/styles/ui-badge.css +11 -6
  51. package/styles/ui-button.css +74 -49
  52. package/styles/ui-card.css +51 -4
  53. package/styles/ui-checkbox.css +4 -2
  54. package/styles/ui-curve-editor.css +109 -0
  55. package/styles/ui-dialog.css +136 -0
  56. package/styles/ui-icon-button.css +85 -28
  57. package/styles/ui-input-group.css +4 -1
  58. package/styles/ui-input.css +2 -1
  59. package/styles/ui-light-editor.css +28 -0
  60. package/styles/ui-menu.css +74 -0
  61. package/styles/ui-number-input.css +34 -0
  62. package/styles/ui-popover.css +76 -0
  63. package/styles/ui-select.css +9 -7
  64. package/styles/ui-slider.css +53 -0
  65. package/styles/ui-switch.css +3 -0
  66. package/styles/ui-tabs.css +6 -1
  67. package/styles/ui-text.css +23 -1
  68. package/styles/ui-textarea.css +2 -1
  69. package/styles/ui-tooltip.css +72 -0
  70. package/theme-light.css +1 -0
  71. package/theme-system.css +69 -17
  72. package/tokens.css +12 -2
  73. package/vanilla/UiButton.d.ts +1 -0
  74. package/vanilla/UiButton.js +195 -130
  75. package/vanilla/UiCard.d.ts +1 -0
  76. package/vanilla/UiCard.js +12 -12
  77. package/vanilla/UiCurveEditor.d.ts +28 -0
  78. package/vanilla/UiCurveEditor.js +134 -0
  79. package/vanilla/UiIconButton.d.ts +2 -1
  80. package/vanilla/UiIconButton.js +58 -31
  81. package/vanilla/UiLightEditor.d.ts +29 -0
  82. package/vanilla/UiLightEditor.js +102 -0
  83. package/vanilla/UiNumberInput.d.ts +33 -0
  84. package/vanilla/UiNumberInput.js +86 -0
  85. package/vanilla/UiSlider.d.ts +33 -0
  86. package/vanilla/UiSlider.js +125 -0
  87. package/vanilla/UiText.d.ts +2 -2
  88. package/vanilla/UiText.js +45 -11
  89. package/vanilla/index.js +4 -0
  90. package/vue/UiBadge.vue +29 -4
  91. package/vue/UiButton.d.ts +6 -0
  92. package/vue/UiButton.vue +188 -60
  93. package/vue/UiCard.d.ts +6 -0
  94. package/vue/UiCard.vue +80 -6
  95. package/vue/UiCheckbox.vue +4 -2
  96. package/vue/UiCurveEditor.d.ts +53 -0
  97. package/vue/UiCurveEditor.js +2 -0
  98. package/vue/UiCurveEditor.vue +427 -0
  99. package/vue/UiDialog.vue +181 -1
  100. package/vue/UiIconButton.d.ts +8 -2
  101. package/vue/UiIconButton.vue +190 -45
  102. package/vue/UiInput.vue +2 -1
  103. package/vue/UiInputGroup.vue +4 -1
  104. package/vue/UiLightEditor.d.ts +75 -0
  105. package/vue/UiLightEditor.js +2 -0
  106. package/vue/UiLightEditor.vue +402 -0
  107. package/vue/UiMenu.vue +91 -0
  108. package/vue/UiNumberInput.d.ts +83 -0
  109. package/vue/UiNumberInput.js +2 -0
  110. package/vue/UiNumberInput.vue +399 -0
  111. package/vue/UiPopover.vue +94 -1
  112. package/vue/UiSelect.vue +16 -10
  113. package/vue/UiSlider.d.ts +83 -0
  114. package/vue/UiSlider.js +2 -0
  115. package/vue/UiSlider.vue +412 -0
  116. package/vue/UiSwitch.vue +3 -0
  117. package/vue/UiTabs.vue +6 -1
  118. package/vue/UiText.d.ts +7 -5
  119. package/vue/UiText.vue +104 -22
  120. package/vue/UiTextarea.vue +2 -1
  121. package/vue/UiTooltip.vue +89 -0
  122. package/vue/chunks/UiActionBar.js +1 -1
  123. package/vue/chunks/UiAffordanceScope.js +2 -2
  124. package/vue/chunks/UiAvatar.js +2 -2
  125. package/vue/chunks/UiAvatarGroup.js +2 -2
  126. package/vue/chunks/UiBadge.js +3 -3
  127. package/vue/chunks/UiBreadcrumbItem.js +2 -2
  128. package/vue/chunks/UiBreadcrumbs.js +2 -2
  129. package/vue/chunks/UiButton.js +94 -11
  130. package/vue/chunks/UiCallout.js +2 -2
  131. package/vue/chunks/UiCard.js +34 -5
  132. package/vue/chunks/UiCheckbox.js +3 -3
  133. package/vue/chunks/UiCluster.js +2 -2
  134. package/vue/chunks/UiColorPicker.js +2 -2
  135. package/vue/chunks/UiCombobox.js +2 -2
  136. package/vue/chunks/UiContainer.js +2 -2
  137. package/vue/chunks/UiContextMenu.js +2 -2
  138. package/vue/chunks/UiCover.js +2 -2
  139. package/vue/chunks/UiCurveEditor.js +413 -0
  140. package/vue/chunks/UiDescriptionItem.js +2 -2
  141. package/vue/chunks/UiDescriptionList.js +2 -2
  142. package/vue/chunks/UiDialog.js +4 -4
  143. package/vue/chunks/UiDisclosure.js +2 -2
  144. package/vue/chunks/UiEditable.js +2 -2
  145. package/vue/chunks/UiEditorBlockActions.js +2 -2
  146. package/vue/chunks/UiEditorChipEditor.js +2 -2
  147. package/vue/chunks/UiEditorCodeLanguage.js +2 -2
  148. package/vue/chunks/UiEditorFootnoteEditor.js +2 -2
  149. package/vue/chunks/UiEditorImageToolbar.js +3 -3
  150. package/vue/chunks/UiEditorInsertTableGrid.js +2 -2
  151. package/vue/chunks/UiEditorLinkCard.js +3 -3
  152. package/vue/chunks/UiEditorLinkForm.js +3 -3
  153. package/vue/chunks/UiEditorMentionMenu.js +2 -2
  154. package/vue/chunks/UiEditorMentionMenuItem.js +2 -2
  155. package/vue/chunks/UiEditorSlashMenu.js +2 -2
  156. package/vue/chunks/UiEditorSlashMenuGroup.js +2 -2
  157. package/vue/chunks/UiEditorSlashMenuItem.js +2 -2
  158. package/vue/chunks/UiEditorSurface.js +2 -2
  159. package/vue/chunks/UiEditorTableContextMenu.js +2 -2
  160. package/vue/chunks/UiEditorTableOverlay.js +2 -2
  161. package/vue/chunks/UiEditorTableToolbar.js +2 -2
  162. package/vue/chunks/UiEditorToolbar.js +2 -2
  163. package/vue/chunks/UiFloatingActionButton.js +2 -2
  164. package/vue/chunks/UiFormField.js +2 -2
  165. package/vue/chunks/UiGrid.js +2 -2
  166. package/vue/chunks/UiIcon.js +2 -2
  167. package/vue/chunks/UiIconButton.js +77 -11
  168. package/vue/chunks/UiImage.js +2 -2
  169. package/vue/chunks/UiInput.js +3 -3
  170. package/vue/chunks/UiInputGroup.js +3 -3
  171. package/vue/chunks/UiLightEditor.js +347 -0
  172. package/vue/chunks/UiList.js +2 -2
  173. package/vue/chunks/UiListItem.js +2 -2
  174. package/vue/chunks/UiListbox.js +2 -2
  175. package/vue/chunks/UiMenu.js +3 -3
  176. package/vue/chunks/UiMenuGroup.js +2 -2
  177. package/vue/chunks/UiMenuItem.js +2 -2
  178. package/vue/chunks/UiMeter.js +2 -2
  179. package/vue/chunks/UiNavItem.js +2 -2
  180. package/vue/chunks/UiNumberInput.js +403 -0
  181. package/vue/chunks/UiPageHeader.js +2 -2
  182. package/vue/chunks/UiPopover.js +4 -4
  183. package/vue/chunks/UiRadio.js +2 -2
  184. package/vue/chunks/UiRadioGroup.js +2 -2
  185. package/vue/chunks/UiReel.js +2 -2
  186. package/vue/chunks/UiScrollArea.js +2 -2
  187. package/vue/chunks/UiSearchResultRow.js +2 -2
  188. package/vue/chunks/UiSearchShell.js +2 -2
  189. package/vue/chunks/UiSection.js +2 -2
  190. package/vue/chunks/UiSelect.js +3 -3
  191. package/vue/chunks/UiSeparator.js +2 -2
  192. package/vue/chunks/UiSidebar.js +2 -2
  193. package/vue/chunks/UiSlider.js +396 -0
  194. package/vue/chunks/UiSpinner.js +2 -2
  195. package/vue/chunks/UiStack.js +2 -2
  196. package/vue/chunks/UiStatusMessage.js +2 -2
  197. package/vue/chunks/UiSwatch.js +2 -2
  198. package/vue/chunks/UiSwitch.js +3 -3
  199. package/vue/chunks/UiSwitcher.js +2 -2
  200. package/vue/chunks/UiTable.js +2 -2
  201. package/vue/chunks/UiTabs.js +3 -3
  202. package/vue/chunks/UiText.js +53 -12
  203. package/vue/chunks/UiTextarea.js +3 -3
  204. package/vue/chunks/UiToast.js +2 -2
  205. package/vue/chunks/UiToastRegion.js +2 -2
  206. package/vue/chunks/UiTooltip.js +3 -3
  207. package/vue/chunks/UiTopBar.js +1 -1
  208. package/vue/chunks/UiTree.js +2 -2
  209. package/vue/chunks/UiTreeItem.js +2 -2
  210. package/vue/chunks/_plugin-vue_export-helper.js +68 -2
  211. package/vue/chunks/props.js +24 -1
  212. package/vue/components.css +3391 -2139
  213. package/vue/editor/index.js +623 -211
  214. package/vue/index.d.ts +4 -0
  215. package/vue/index.js +6 -2
@@ -0,0 +1,347 @@
1
+ import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
2
+ import { d as requireInputStatus, i as checkPropInput, m as vuePropInputs, p as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP, u as propValidityState } from "./props.js";
3
+ import { t as UiNumberInput_default } from "./UiNumberInput.js";
4
+ import { computed, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
5
+ //#region .build/vue/UiLightEditor.vue?vue&type=script&setup=true&lang.ts
6
+ var _hoisted_1 = [
7
+ "data-ui-light-editor-prop-disabled",
8
+ "data-ui-light-editor-prop-label",
9
+ "data-ui-light-editor-prop-size",
10
+ "data-ui-light-editor-prop-x",
11
+ "data-ui-light-editor-prop-y"
12
+ ];
13
+ var _hoisted_2 = ["aria-label"];
14
+ var _hoisted_3 = {
15
+ class: "specimen",
16
+ "data-hn-ui-light-editor": ""
17
+ };
18
+ var _hoisted_4 = ["disabled", "aria-label"];
19
+ var _hoisted_5 = {
20
+ class: "coordinates",
21
+ "data-hn-ui-light-editor": ""
22
+ };
23
+ //#endregion
24
+ //#region .build/vue/UiLightEditor.vue
25
+ var UiLightEditor_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
26
+ inheritAttrs: false,
27
+ __name: "UiLightEditor",
28
+ props: {
29
+ disabled: { type: null },
30
+ label: { type: null },
31
+ size: { type: null },
32
+ x: { type: null },
33
+ y: { type: null },
34
+ [BINDING_INPUTS_PROP]: { type: null }
35
+ },
36
+ emits: [
37
+ "update:x",
38
+ "update:y",
39
+ "input",
40
+ "change"
41
+ ],
42
+ setup(__props, { emit: __emit }) {
43
+ const propValidityContract = { props: {
44
+ disabled: {
45
+ type: {
46
+ kind: "terminal",
47
+ name: "boolean"
48
+ },
49
+ required: false,
50
+ target: { attribute: "disabled" },
51
+ description: "Prevents pointer, keyboard and exact edits.",
52
+ default: false
53
+ },
54
+ label: {
55
+ type: {
56
+ kind: "terminal",
57
+ name: "string"
58
+ },
59
+ required: false,
60
+ target: { attribute: "aria-label" },
61
+ description: "Accessible name for the position editor.",
62
+ default: "Light position"
63
+ },
64
+ size: {
65
+ type: {
66
+ kind: "terminal",
67
+ name: "keyword"
68
+ },
69
+ required: false,
70
+ target: { attribute: "size" },
71
+ description: "Sets both coordinate fields to the shared small, medium or large control height.",
72
+ values: [
73
+ "sm",
74
+ "md",
75
+ "lg"
76
+ ],
77
+ default: "md"
78
+ },
79
+ x: {
80
+ type: {
81
+ kind: "terminal",
82
+ name: "number"
83
+ },
84
+ required: false,
85
+ target: { attribute: "x" },
86
+ description: "Horizontal source position from 0 (left) to 1 (right), relative to every surface.",
87
+ default: .5
88
+ },
89
+ y: {
90
+ type: {
91
+ kind: "terminal",
92
+ name: "number"
93
+ },
94
+ required: false,
95
+ target: { attribute: "y" },
96
+ description: "Vertical source position from 0 (top) to 1 (bottom), relative to every surface.",
97
+ default: 0
98
+ }
99
+ } };
100
+ const props = __props;
101
+ const inputTracking = vuePropInputs({
102
+ disabled: false,
103
+ label: "Light position",
104
+ size: "md",
105
+ x: .5,
106
+ y: 0
107
+ }, {
108
+ disabled: false,
109
+ label: "Light position",
110
+ size: "md",
111
+ x: .5,
112
+ y: 0
113
+ }, (name, value, source, values) => {
114
+ switch (name) {
115
+ case "disabled": return checkPropInput(value, {
116
+ kind: "terminal",
117
+ name: "boolean"
118
+ }, true, true);
119
+ case "label": return checkPropInput(value, {
120
+ kind: "terminal",
121
+ name: "string"
122
+ }, true, true);
123
+ case "size": return checkPropInput(value, {
124
+ kind: "terminal",
125
+ name: "keyword"
126
+ }, true, true);
127
+ case "x": return checkPropInput(value, {
128
+ kind: "terminal",
129
+ name: "number"
130
+ }, true, true);
131
+ case "y": return checkPropInput(value, {
132
+ kind: "terminal",
133
+ name: "number"
134
+ }, true, true);
135
+ default: return { ok: false };
136
+ }
137
+ }, () => {
138
+ checkedProps.value;
139
+ });
140
+ const propInputs = inputTracking.inputs;
141
+ const checkedProps = computed(() => {
142
+ inputTracking.version.value;
143
+ return {
144
+ disabled: propInputs.value("disabled", props["disabled"], props[BINDING_INPUTS_PROP]),
145
+ label: propInputs.value("label", props["label"], props[BINDING_INPUTS_PROP]),
146
+ size: propInputs.value("size", props["size"], props[BINDING_INPUTS_PROP]),
147
+ x: propInputs.value("x", props["x"], props[BINDING_INPUTS_PROP]),
148
+ y: propInputs.value("y", props["y"], props[BINDING_INPUTS_PROP])
149
+ };
150
+ });
151
+ const inputStatus = (name, handlesError) => {
152
+ checkedProps.value;
153
+ inputTracking.version.value;
154
+ return requireInputStatus(propInputs.status(name), handlesError);
155
+ };
156
+ checkedProps.value;
157
+ watchSyncEffect(() => {
158
+ checkedProps.value;
159
+ });
160
+ const reflectedProp = useReflectedProp();
161
+ const hydrationInstance = getCurrentInstance();
162
+ const emit = __emit;
163
+ const root = ref(null);
164
+ const planeElement = useTemplateRef("planeElement");
165
+ const sourceElement = useTemplateRef("sourceElement");
166
+ const horizontal = ref("50");
167
+ const vertical = ref("0");
168
+ let guardedPrevious = null;
169
+ const guarded = computed(() => {
170
+ const candidate = concat(checkedProps.value.label, ". Arrow keys move the source; Shift moves faster.");
171
+ if (candidate === Symbol.for("html-next.invalid-result")) return guardedPrevious;
172
+ return guardedPrevious = candidate;
173
+ });
174
+ provide("html-next:ui-light-editor:horizontal", horizontal);
175
+ provide("html-next:ui-light-editor:vertical", vertical);
176
+ checkHydratedRoot("span", "ui-light-editor");
177
+ const isInputDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["x"] === "number" && Number.isFinite(detail["x"]) && typeof detail["y"] === "number" && Number.isFinite(detail["y"]) && Object.keys(detail).every((key) => ["x", "y"].includes(key));
178
+ const dispatch = createDispatch(root, emit, {
179
+ checks: {
180
+ input: isInputDetail,
181
+ change: isInputDetail
182
+ },
183
+ modeled: ["x", "y"]
184
+ });
185
+ useComponentHost(() => import("@threadlabs/looma/components/ui-light-editor/ui-light-editor.js"), {
186
+ root,
187
+ module: true,
188
+ dispatch,
189
+ acceptsState: (name, keys, value) => acceptsControllerWrite(value, {
190
+ horizontal: {
191
+ kind: "terminal",
192
+ name: "string"
193
+ },
194
+ vertical: {
195
+ kind: "terminal",
196
+ name: "string"
197
+ }
198
+ }[name], keys),
199
+ initials: {
200
+ horizontal: "50",
201
+ vertical: "0"
202
+ },
203
+ controllerSource: {
204
+ specifier: "../components/ui-light-editor/ui-light-editor.js",
205
+ definition: "./components/ui-light-editor/ui-light-editor.html"
206
+ },
207
+ props: checkedProps,
208
+ inputs: propInputs,
209
+ inputTracking,
210
+ propInputs: (name) => {
211
+ const incoming = hydrationInstance?.vnode.props;
212
+ const kebab = name.replace(/[A-Z]/g, (letter) => "-" + letter.toLowerCase());
213
+ return incoming !== null && incoming !== void 0 ? incoming[name] ?? incoming[kebab] ?? null : null;
214
+ },
215
+ propNames: [
216
+ "disabled",
217
+ "label",
218
+ "size",
219
+ "x",
220
+ "y"
221
+ ],
222
+ propValidity: (name) => propValidityState({
223
+ contract: propValidityContract,
224
+ values: { ...props }
225
+ }, name),
226
+ refs: {
227
+ plane: planeElement,
228
+ source: sourceElement
229
+ },
230
+ state: {
231
+ horizontal,
232
+ vertical
233
+ }
234
+ });
235
+ return (_ctx, _cache) => {
236
+ return withDirectives((openBlock(), createElementBlock("span", mergeProps({ class: "ui-light-editor" }, unref(nativeAttrs)(_ctx.$attrs), {
237
+ "data-hn": "",
238
+ "data-hn-ui-light-editor": "",
239
+ "data-ui-light-editor-prop-disabled": unref(reflectedProp)("disabled", "disabled", checkedProps.value.disabled, void 0, false),
240
+ "data-ui-light-editor-prop-label": unref(reflectedProp)("label", "label", checkedProps.value.label, void 0, false),
241
+ "data-ui-light-editor-prop-size": unref(reflectedProp)("size", "size", checkedProps.value.size, void 0, false),
242
+ "data-ui-light-editor-prop-x": unref(reflectedProp)("x", "x", checkedProps.value.x, void 0, false),
243
+ "data-ui-light-editor-prop-y": unref(reflectedProp)("y", "y", checkedProps.value.y, void 0, false),
244
+ ref_key: "root",
245
+ ref: root
246
+ }), [
247
+ createElementVNode("span", {
248
+ class: "stage",
249
+ role: "group",
250
+ "data-hn-ui-light-editor": "",
251
+ "aria-label": checkedProps.value.label ?? void 0
252
+ }, [createElementVNode("span", {
253
+ class: "plane",
254
+ "data-hn-ui-light-editor": "",
255
+ ref_key: "planeElement",
256
+ ref: planeElement
257
+ }, [
258
+ _cache[0] || (_cache[0] = createElementVNode("svg", {
259
+ viewBox: "0 0 100 60",
260
+ preserveAspectRatio: "none",
261
+ "aria-hidden": "true",
262
+ "data-hn-ui-light-editor": ""
263
+ }, [createElementVNode("path", {
264
+ d: "M0 30 H100 M50 0 V60",
265
+ "data-hn-ui-light-editor": ""
266
+ })], -1)),
267
+ _cache[1] || (_cache[1] = createTextVNode(toDisplayString(" "), -1)),
268
+ createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
269
+ _cache[2] || (_cache[2] = createTextVNode(toDisplayString(" "), -1)),
270
+ createElementVNode("button", {
271
+ type: "button",
272
+ class: "source",
273
+ "data-hn-ui-light-editor": "",
274
+ disabled: checkedProps.value.disabled ?? void 0,
275
+ "aria-label": guarded.value,
276
+ ref_key: "sourceElement",
277
+ ref: sourceElement
278
+ }, null, 8, _hoisted_4)
279
+ ], 512)], 8, _hoisted_2),
280
+ _cache[4] || (_cache[4] = createTextVNode(toDisplayString(" "), -1)),
281
+ createElementVNode("span", _hoisted_5, [
282
+ createVNode(UiNumberInput_default, mergeProps({
283
+ class: "ui-number-input",
284
+ "data-coordinate": "x",
285
+ min: 0,
286
+ max: 100,
287
+ step: 1,
288
+ unit: "%",
289
+ label: "Light horizontal position",
290
+ value: horizontal.value,
291
+ size: checkedProps.value.size,
292
+ disabled: checkedProps.value.disabled
293
+ }, { [unref(BINDING_INPUTS_PROP)]: {
294
+ size: () => ({
295
+ value: checkedProps.value.size,
296
+ status: inputStatus("size", true)
297
+ }),
298
+ disabled: () => ({
299
+ value: checkedProps.value.disabled,
300
+ status: inputStatus("disabled", true)
301
+ })
302
+ } }), null, 16, [
303
+ "value",
304
+ "size",
305
+ "disabled"
306
+ ]),
307
+ _cache[3] || (_cache[3] = createTextVNode(toDisplayString(" "), -1)),
308
+ createVNode(UiNumberInput_default, mergeProps({
309
+ class: "ui-number-input",
310
+ "data-coordinate": "y",
311
+ min: 0,
312
+ max: 100,
313
+ step: 1,
314
+ unit: "%",
315
+ label: "Light vertical position",
316
+ value: vertical.value,
317
+ size: checkedProps.value.size,
318
+ disabled: checkedProps.value.disabled
319
+ }, { [unref(BINDING_INPUTS_PROP)]: {
320
+ size: () => ({
321
+ value: checkedProps.value.size,
322
+ status: inputStatus("size", true)
323
+ }),
324
+ disabled: () => ({
325
+ value: checkedProps.value.disabled,
326
+ status: inputStatus("disabled", true)
327
+ })
328
+ } }), null, 16, [
329
+ "value",
330
+ "size",
331
+ "disabled"
332
+ ])
333
+ ]),
334
+ _cache[5] || (_cache[5] = createTextVNode(toDisplayString(" "), -1)),
335
+ _cache[6] || (_cache[6] = createElementVNode("span", {
336
+ class: "hint",
337
+ "data-hn-ui-light-editor": ""
338
+ }, "Drag the light, use arrow keys, or enter its position. Top centre is 50%, 0%.", -1))
339
+ ], 16, _hoisted_1)), [[unref(vPropValidity), {
340
+ contract: propValidityContract,
341
+ values: { ...props }
342
+ }]]);
343
+ };
344
+ }
345
+ }), [["__scopeId", "data-v-1cd5c26a"]]);
346
+ //#endregion
347
+ export { UiLightEditor_default as t };
@@ -1,5 +1,5 @@
1
- import { h as preserveRootFocus, i as checkHydratedRoot, p as nativeAttrs, t as _plugin_vue_export_helper_default, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { f as vPropValidity, i as checkPropInput, p as vuePropInputs, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { b as useReflectedProp, g as preserveRootFocus, i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, defineComponent, mergeProps, openBlock, renderSlot, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiList.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
@@ -1,5 +1,5 @@
1
- import { i as checkHydratedRoot, p as nativeAttrs, t as _plugin_vue_export_helper_default, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { f as vPropValidity, i as checkPropInput, p as vuePropInputs, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiListItem.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
@@ -1,5 +1,5 @@
1
- import { _ as uniqueKeys, a as concat, i as checkHydratedRoot, n as KeyedBoundary, o as createDispatch, p as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default, v as useComponentHost, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { f as vPropValidity, i as checkPropInput, l as propValidityState, p as vuePropInputs, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, n as KeyedBoundary, o as createDispatch, r as attribute, t as _plugin_vue_export_helper_default, v as uniqueKeys, y as useComponentHost } from "./_plugin-vue_export-helper.js";
2
+ import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP, u as propValidityState } from "./props.js";
3
3
  import { t as UiScrollArea_default } from "./UiScrollArea.js";
4
4
  import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, mergeProps, normalizeClass, openBlock, provide, ref, renderList, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withCtx, withDirectives } from "vue";
5
5
  //#region .build/vue/UiListbox.vue?vue&type=script&setup=true&lang.ts
@@ -1,5 +1,5 @@
1
- import { i as checkHydratedRoot, o as createDispatch, p as nativeAttrs, t as _plugin_vue_export_helper_default, v as useComponentHost, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { f as vPropValidity, i as checkPropInput, l as propValidityState, p as vuePropInputs, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
2
+ import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP, u as propValidityState } from "./props.js";
3
3
  import { computed, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiMenu.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
@@ -281,6 +281,6 @@ var UiMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
281
281
  }]]);
282
282
  };
283
283
  }
284
- }), [["__scopeId", "data-v-2bb4f5c6"]]);
284
+ }), [["__scopeId", "data-v-d3d70bb1"]]);
285
285
  //#endregion
286
286
  export { UiMenu_default as t };
@@ -1,5 +1,5 @@
1
- import { i as checkHydratedRoot, p as nativeAttrs, t as _plugin_vue_export_helper_default, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { f as vPropValidity, i as checkPropInput, p as vuePropInputs, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createCommentVNode, createElementBlock, createTextVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiMenuGroup.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = ["aria-label", "data-ui-menu-group-prop-label"];
@@ -1,5 +1,5 @@
1
- import { a as concat, h as preserveRootFocus, i as checkHydratedRoot, o as createDispatch, p as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default, v as useComponentHost, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { f as vPropValidity, i as checkPropInput, l as propValidityState, p as vuePropInputs, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { a as concat, b as useReflectedProp, g as preserveRootFocus, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, r as attribute, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
2
+ import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP, u as propValidityState } from "./props.js";
3
3
  import { t as UiIcon_default } from "./UiIcon.js";
4
4
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
5
5
  //#region .build/vue/UiMenuItem.vue?vue&type=script&setup=true&lang.ts
@@ -1,5 +1,5 @@
1
- import { a as concat, c as decimalMultiply, f as math, i as checkHydratedRoot, l as decimalSubtract, m as number, p as nativeAttrs, r as attribute, s as cycleCheckedComputed, t as _plugin_vue_export_helper_default, u as formatValue, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { c as inputRead, f as vPropValidity, i as checkPropInput, p as vuePropInputs, s as inputComputed, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { a as concat, b as useReflectedProp, c as decimalMultiply, h as number, i as checkHydratedRoot, l as decimalSubtract, m as nativeAttrs, p as math, r as attribute, s as cycleCheckedComputed, t as _plugin_vue_export_helper_default, u as formatValue } from "./_plugin-vue_export-helper.js";
2
+ import { c as inputComputed, i as checkPropInput, l as inputRead, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { Fragment, computed, createCommentVNode, createElementBlock, createTextVNode, defineComponent, mergeProps, normalizeStyle, openBlock, renderList, toDisplayString, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiMeter.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
@@ -1,5 +1,5 @@
1
- import { a as concat, h as preserveRootFocus, i as checkHydratedRoot, p as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
- import { f as vPropValidity, i as checkPropInput, p as vuePropInputs, t as BINDING_INPUTS_PROP } from "./props.js";
1
+ import { a as concat, b as useReflectedProp, g as preserveRootFocus, i as checkHydratedRoot, m as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiNavItem.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [