@threadlabs/looma 0.6.4 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ui-button/ui-button.html +103 -81
- package/components/ui-checkbox/ui-checkbox.html +4 -1
- package/components/ui-combobox/ui-combobox.html +40 -3
- package/components/ui-combobox/ui-combobox.js +27 -5
- package/components/ui-select/ui-select.html +3 -5
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/styles/ui-affordance-scope.css +1 -1
- package/styles/ui-avatar-group.css +1 -1
- package/styles/ui-avatar.css +1 -1
- package/styles/ui-badge.css +1 -1
- package/styles/ui-button.css +112 -80
- package/styles/ui-callout.css +1 -1
- package/styles/ui-checkbox.css +5 -2
- package/styles/ui-cluster.css +1 -1
- package/styles/ui-combobox.css +38 -1
- package/styles/ui-container.css +1 -1
- package/styles/ui-context-menu.css +1 -1
- package/styles/ui-dialog.css +1 -1
- package/styles/ui-disclosure.css +1 -1
- package/styles/ui-editable.css +1 -1
- package/styles/ui-editor-insert-table-grid.css +1 -1
- package/styles/ui-editor-mention-menu.css +1 -1
- package/styles/ui-editor-slash-menu.css +1 -1
- package/styles/ui-editor-table-context-menu.css +1 -1
- package/styles/ui-editor-table-overlay.css +1 -1
- package/styles/ui-editor-table-toolbar.css +1 -1
- package/styles/ui-editor-toolbar.css +1 -1
- package/styles/ui-floating-action-button.css +1 -1
- package/styles/ui-form-field.css +1 -1
- package/styles/ui-grid.css +1 -1
- package/styles/ui-icon-button.css +1 -1
- package/styles/ui-icon.css +1 -1
- package/styles/ui-input.css +1 -1
- package/styles/ui-menu-item.css +1 -1
- package/styles/ui-menu.css +1 -1
- package/styles/ui-popover.css +1 -1
- package/styles/ui-radio-group.css +1 -1
- package/styles/ui-radio.css +1 -1
- package/styles/ui-reel.css +1 -1
- package/styles/ui-search-result-row.css +1 -1
- package/styles/ui-search-shell.css +1 -1
- package/styles/ui-select.css +4 -5
- package/styles/ui-separator.css +1 -1
- package/styles/ui-sidebar.css +1 -1
- package/styles/ui-stack.css +1 -1
- package/styles/ui-switch.css +1 -1
- package/styles/ui-switcher.css +1 -1
- package/styles/ui-tabs.css +1 -1
- package/styles/ui-textarea.css +1 -1
- package/styles/ui-toast-region.css +1 -1
- package/styles/ui-tooltip.css +1 -1
- package/styles/ui-top-bar.css +1 -1
- package/styles/ui-tree-item.css +1 -1
- package/styles/ui-tree.css +1 -1
- package/theme-dark.css +6 -30
- package/theme-high-contrast.css +30 -20
- package/theme-light.css +2 -16
- package/tokens.css +33 -24
- package/vanilla/UiAffordanceScope.d.ts +1 -1
- package/vanilla/UiAffordanceScope.js +1 -1
- package/vanilla/UiAvatar.d.ts +1 -1
- package/vanilla/UiAvatar.js +1 -1
- package/vanilla/UiAvatarGroup.d.ts +1 -1
- package/vanilla/UiAvatarGroup.js +1 -1
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +1 -1
- package/vanilla/UiButton.d.ts +2 -2
- package/vanilla/UiButton.js +2 -2
- package/vanilla/UiCallout.d.ts +1 -1
- package/vanilla/UiCallout.js +1 -1
- package/vanilla/UiCheckbox.d.ts +1 -1
- package/vanilla/UiCheckbox.js +1 -1
- package/vanilla/UiCluster.d.ts +1 -1
- package/vanilla/UiCluster.js +1 -1
- package/vanilla/UiCombobox.d.ts +1 -1
- package/vanilla/UiCombobox.js +2 -2
- package/vanilla/UiContainer.d.ts +1 -1
- package/vanilla/UiContainer.js +1 -1
- package/vanilla/UiContextMenu.d.ts +1 -1
- package/vanilla/UiContextMenu.js +1 -1
- package/vanilla/UiDialog.d.ts +1 -1
- package/vanilla/UiDialog.js +1 -1
- package/vanilla/UiDisclosure.d.ts +1 -1
- package/vanilla/UiDisclosure.js +1 -1
- package/vanilla/UiEditable.d.ts +1 -1
- package/vanilla/UiEditable.js +1 -1
- package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
- package/vanilla/UiEditorInsertTableGrid.js +1 -1
- package/vanilla/UiEditorMentionMenu.d.ts +1 -1
- package/vanilla/UiEditorMentionMenu.js +1 -1
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +1 -1
- package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
- package/vanilla/UiEditorTableContextMenu.js +1 -1
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +1 -1
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +1 -1
- package/vanilla/UiEditorToolbar.d.ts +1 -1
- package/vanilla/UiEditorToolbar.js +1 -1
- package/vanilla/UiFloatingActionButton.d.ts +1 -1
- package/vanilla/UiFloatingActionButton.js +1 -1
- package/vanilla/UiFormField.d.ts +1 -1
- package/vanilla/UiFormField.js +1 -1
- package/vanilla/UiGrid.d.ts +1 -1
- package/vanilla/UiGrid.js +1 -1
- package/vanilla/UiIcon.d.ts +1 -1
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiIconButton.d.ts +1 -1
- package/vanilla/UiIconButton.js +1 -1
- package/vanilla/UiInput.d.ts +1 -1
- package/vanilla/UiInput.js +1 -1
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +1 -1
- package/vanilla/UiMenuItem.d.ts +1 -1
- package/vanilla/UiMenuItem.js +1 -1
- package/vanilla/UiPopover.d.ts +1 -1
- package/vanilla/UiPopover.js +1 -1
- package/vanilla/UiRadio.d.ts +1 -1
- package/vanilla/UiRadio.js +1 -1
- package/vanilla/UiRadioGroup.d.ts +1 -1
- package/vanilla/UiRadioGroup.js +1 -1
- package/vanilla/UiReel.d.ts +1 -1
- package/vanilla/UiReel.js +1 -1
- package/vanilla/UiSearchResultRow.d.ts +1 -1
- package/vanilla/UiSearchResultRow.js +1 -1
- package/vanilla/UiSearchShell.d.ts +1 -1
- package/vanilla/UiSearchShell.js +1 -1
- package/vanilla/UiSelect.d.ts +1 -2
- package/vanilla/UiSelect.js +4 -7
- package/vanilla/UiSeparator.d.ts +1 -1
- package/vanilla/UiSeparator.js +1 -1
- package/vanilla/UiSidebar.d.ts +1 -1
- package/vanilla/UiSidebar.js +1 -1
- package/vanilla/UiStack.d.ts +1 -1
- package/vanilla/UiStack.js +1 -1
- package/vanilla/UiSwitch.d.ts +1 -1
- package/vanilla/UiSwitch.js +1 -1
- package/vanilla/UiSwitcher.d.ts +1 -1
- package/vanilla/UiSwitcher.js +1 -1
- package/vanilla/UiTabs.d.ts +1 -1
- package/vanilla/UiTabs.js +1 -1
- package/vanilla/UiTextarea.d.ts +1 -1
- package/vanilla/UiTextarea.js +1 -1
- package/vanilla/UiToastRegion.d.ts +1 -1
- package/vanilla/UiToastRegion.js +1 -1
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +1 -1
- package/vanilla/UiTopBar.d.ts +1 -1
- package/vanilla/UiTopBar.js +1 -1
- package/vanilla/UiTree.d.ts +1 -1
- package/vanilla/UiTree.js +1 -1
- package/vanilla/UiTreeItem.d.ts +1 -1
- package/vanilla/UiTreeItem.js +1 -1
- package/vue/UiAffordanceScope.vue +8 -84
- package/vue/UiAvatar.d.ts +1 -1
- package/vue/UiAvatar.vue +9 -106
- package/vue/UiAvatarGroup.vue +9 -96
- package/vue/UiBadge.vue +1 -1
- package/vue/UiButton.d.ts +2 -2
- package/vue/UiButton.vue +104 -97
- package/vue/UiCallout.vue +1 -1
- package/vue/UiCheckbox.vue +26 -124
- package/vue/UiCluster.vue +1 -1
- package/vue/UiCombobox.d.ts +1 -1
- package/vue/UiCombobox.vue +270 -479
- package/vue/UiContainer.vue +1 -1
- package/vue/UiContextMenu.vue +34 -141
- package/vue/UiDialog.vue +25 -126
- package/vue/UiDisclosure.vue +26 -138
- package/vue/UiEditable.vue +46 -158
- package/vue/UiEditorInsertTableGrid.vue +19 -138
- package/vue/UiEditorMentionMenu.vue +17 -124
- package/vue/UiEditorSlashMenu.vue +17 -109
- package/vue/UiEditorTableContextMenu.vue +34 -122
- package/vue/UiEditorTableOverlay.vue +61 -167
- package/vue/UiEditorTableToolbar.vue +34 -142
- package/vue/UiEditorToolbar.vue +1 -1
- package/vue/UiFloatingActionButton.vue +1 -1
- package/vue/UiFormField.vue +7 -79
- package/vue/UiGrid.vue +1 -1
- package/vue/UiIcon.vue +8 -84
- package/vue/UiIconButton.vue +7 -79
- package/vue/UiInput.vue +7 -79
- package/vue/UiMenu.vue +42 -127
- package/vue/UiMenuItem.vue +1 -1
- package/vue/UiPopover.vue +25 -121
- package/vue/UiRadio.vue +22 -123
- package/vue/UiRadioGroup.d.ts +1 -1
- package/vue/UiRadioGroup.vue +32 -119
- package/vue/UiReel.vue +1 -1
- package/vue/UiSearchResultRow.vue +1 -1
- package/vue/UiSearchShell.vue +25 -121
- package/vue/UiSelect.d.ts +0 -2
- package/vue/UiSelect.vue +9 -85
- package/vue/UiSeparator.vue +1 -1
- package/vue/UiSidebar.vue +32 -133
- package/vue/UiStack.vue +1 -1
- package/vue/UiSwitch.vue +22 -123
- package/vue/UiSwitcher.vue +1 -1
- package/vue/UiTabs.vue +24 -128
- package/vue/UiTextarea.vue +7 -79
- package/vue/UiToastRegion.vue +37 -126
- package/vue/UiTooltip.vue +25 -124
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTree.vue +56 -137
- package/vue/UiTreeItem.vue +28 -144
- package/vue/chunks/UiAffordanceScope.js +9 -78
- package/vue/chunks/UiAvatar.js +13 -89
- package/vue/chunks/UiAvatarGroup.js +10 -80
- package/vue/chunks/UiBadge.js +1 -1
- package/vue/chunks/UiButton.js +3 -3
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCheckbox.js +17 -95
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiCombobox.js +115 -326
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +21 -113
- package/vue/chunks/UiDialog.js +20 -99
- package/vue/chunks/UiDisclosure.js +22 -112
- package/vue/chunks/UiEditable.js +32 -128
- package/vue/chunks/UiEditorInsertTableGrid.js +22 -116
- package/vue/chunks/UiEditorMentionMenu.js +18 -116
- package/vue/chunks/UiEditorSlashMenu.js +15 -101
- package/vue/chunks/UiEditorTableContextMenu.js +12 -91
- package/vue/chunks/UiEditorTableOverlay.js +29 -120
- package/vue/chunks/UiEditorTableToolbar.js +16 -111
- package/vue/chunks/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiFormField.js +8 -73
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIcon.js +9 -78
- package/vue/chunks/UiIconButton.js +8 -73
- package/vue/chunks/UiInput.js +8 -73
- package/vue/chunks/UiMenu.js +25 -111
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiPopover.js +18 -105
- package/vue/chunks/UiRadio.js +17 -95
- package/vue/chunks/UiRadioGroup.js +23 -105
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +17 -94
- package/vue/chunks/UiSelect.js +8 -79
- package/vue/chunks/UiSeparator.js +1 -1
- package/vue/chunks/UiSidebar.js +23 -108
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiSwitch.js +17 -95
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTabs.js +22 -103
- package/vue/chunks/UiTextarea.js +8 -73
- package/vue/chunks/UiToastRegion.js +27 -112
- package/vue/chunks/UiTooltip.js +18 -106
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +31 -109
- package/vue/chunks/UiTreeItem.js +29 -119
- package/vue/chunks/host.js +101 -0
- package/vue/components.css +844 -797
- package/vue/host.ts +154 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
1
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import {
|
|
3
|
+
import { createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, useTemplateRef } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-context-menu/ui-context-menu.js";
|
|
4
5
|
//#region .build/vue/UiContextMenu.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = {
|
|
@@ -32,119 +33,26 @@ var UiContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
|
|
|
32
33
|
const root = ref(null);
|
|
33
34
|
const menuElement = useTemplateRef("menu");
|
|
34
35
|
const internalOpen = ref(false);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
cancelable: false
|
|
47
|
-
},
|
|
48
|
-
select: {
|
|
49
|
-
bubbles: true,
|
|
50
|
-
composed: true,
|
|
51
|
-
cancelable: false
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
const checks = {
|
|
55
|
-
open: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
56
|
-
"open",
|
|
57
|
-
"reason",
|
|
58
|
-
"trigger"
|
|
59
|
-
].includes(key)),
|
|
60
|
-
close: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
61
|
-
"open",
|
|
62
|
-
"reason",
|
|
63
|
-
"trigger"
|
|
64
|
-
].includes(key)),
|
|
65
|
-
select: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => ["value", "trigger"].includes(key))
|
|
66
|
-
};
|
|
67
|
-
if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
|
|
68
|
-
const emitEvent = emit;
|
|
69
|
-
emitEvent(name, detail);
|
|
70
|
-
if (detail !== null && typeof detail === "object" && "open" in detail) emitEvent("update:open", detail["open"]);
|
|
71
|
-
return root.value?.dispatchEvent(new CustomEvent(name, {
|
|
72
|
-
bubbles: true,
|
|
73
|
-
composed: true,
|
|
74
|
-
...declared[name],
|
|
75
|
-
detail
|
|
76
|
-
})) ?? true;
|
|
77
|
-
}
|
|
78
|
-
function read(name) {
|
|
79
|
-
if (name === "internalOpen") return internalOpen.value;
|
|
80
|
-
return props[name];
|
|
81
|
-
}
|
|
82
|
-
function write(name, value) {
|
|
83
|
-
if (name === "internalOpen") {
|
|
84
|
-
internalOpen.value = value;
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
88
|
-
}
|
|
89
|
-
const stops = [];
|
|
90
|
-
const host = {
|
|
91
|
-
get element() {
|
|
92
|
-
return root.value;
|
|
93
|
-
},
|
|
94
|
-
state: new Proxy({}, {
|
|
95
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
96
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
97
|
-
}),
|
|
98
|
-
refs: { get menu() {
|
|
99
|
-
return menuElement.value;
|
|
100
|
-
} },
|
|
101
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
102
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
103
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
104
|
-
} }),
|
|
105
|
-
signal(initialValue) {
|
|
106
|
-
const value = shallowRef(initialValue);
|
|
107
|
-
return {
|
|
108
|
-
get: () => value.value,
|
|
109
|
-
set: (next) => {
|
|
110
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
111
|
-
},
|
|
112
|
-
update: (next) => {
|
|
113
|
-
const updated = next(value.value);
|
|
114
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
115
|
-
}
|
|
116
|
-
};
|
|
36
|
+
const isOpenDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
37
|
+
"open",
|
|
38
|
+
"reason",
|
|
39
|
+
"trigger"
|
|
40
|
+
].includes(key));
|
|
41
|
+
const isSelectDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => ["value", "trigger"].includes(key));
|
|
42
|
+
const dispatch = createDispatch(root, emit, {
|
|
43
|
+
checks: {
|
|
44
|
+
open: isOpenDetail,
|
|
45
|
+
close: isOpenDetail,
|
|
46
|
+
select: isSelectDetail
|
|
117
47
|
},
|
|
118
|
-
|
|
119
|
-
const value = computed(compute);
|
|
120
|
-
return { get: () => value.value };
|
|
121
|
-
},
|
|
122
|
-
effect(run) {
|
|
123
|
-
const stop = watchEffect((onCleanup) => {
|
|
124
|
-
const cleanup = run();
|
|
125
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
126
|
-
}, { flush: "post" });
|
|
127
|
-
stops.push(stop);
|
|
128
|
-
return stop;
|
|
129
|
-
},
|
|
130
|
-
on(event, listener) {
|
|
131
|
-
const element = root.value;
|
|
132
|
-
element?.addEventListener(event, listener);
|
|
133
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
134
|
-
stops.push(off);
|
|
135
|
-
return off;
|
|
136
|
-
},
|
|
137
|
-
dispatch
|
|
138
|
-
};
|
|
139
|
-
let cleanup;
|
|
140
|
-
onMounted(() => {
|
|
141
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
142
|
-
cleanup = result;
|
|
143
|
-
});
|
|
48
|
+
modeled: ["open"]
|
|
144
49
|
});
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
50
|
+
useComponentHost(controllerModule.default, {
|
|
51
|
+
root,
|
|
52
|
+
dispatch,
|
|
53
|
+
props,
|
|
54
|
+
refs: { menu: menuElement },
|
|
55
|
+
state: { internalOpen }
|
|
148
56
|
});
|
|
149
57
|
return (_ctx, _cache) => {
|
|
150
58
|
return openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-context-menu" }, _ctx.$attrs, {
|
|
@@ -153,6 +61,6 @@ var UiContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
|
|
|
153
61
|
}), [createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512)], 16);
|
|
154
62
|
};
|
|
155
63
|
}
|
|
156
|
-
}), [["__scopeId", "data-v-
|
|
64
|
+
}), [["__scopeId", "data-v-607c2847"]]);
|
|
157
65
|
//#endregion
|
|
158
66
|
export { UiContextMenu_default as t };
|
package/vue/chunks/UiDialog.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
1
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import {
|
|
3
|
+
import { createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-dialog/ui-dialog.js";
|
|
4
5
|
//#region .build/vue/UiDialog.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["aria-label"];
|
|
@@ -43,104 +44,24 @@ var UiDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
43
44
|
const closeElement = useTemplateRef("close");
|
|
44
45
|
const internalOpen = ref(false);
|
|
45
46
|
const accessibleLabel = ref("Dialog");
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"open",
|
|
55
|
-
"reason",
|
|
56
|
-
"trigger"
|
|
57
|
-
].includes(key)) };
|
|
58
|
-
if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
|
|
59
|
-
const emitEvent = emit;
|
|
60
|
-
emitEvent(name, detail);
|
|
61
|
-
if (detail !== null && typeof detail === "object" && "open" in detail) emitEvent("update:open", detail["open"]);
|
|
62
|
-
return root.value?.dispatchEvent(new CustomEvent(name, {
|
|
63
|
-
bubbles: true,
|
|
64
|
-
composed: true,
|
|
65
|
-
...declared[name],
|
|
66
|
-
detail
|
|
67
|
-
})) ?? true;
|
|
68
|
-
}
|
|
69
|
-
function read(name) {
|
|
70
|
-
if (name === "internalOpen") return internalOpen.value;
|
|
71
|
-
if (name === "accessibleLabel") return accessibleLabel.value;
|
|
72
|
-
return props[name];
|
|
73
|
-
}
|
|
74
|
-
function write(name, value) {
|
|
75
|
-
if (name === "internalOpen") {
|
|
76
|
-
internalOpen.value = value;
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
if (name === "accessibleLabel") {
|
|
80
|
-
accessibleLabel.value = value;
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
84
|
-
}
|
|
85
|
-
const stops = [];
|
|
86
|
-
const host = {
|
|
87
|
-
get element() {
|
|
88
|
-
return root.value;
|
|
89
|
-
},
|
|
90
|
-
state: new Proxy({}, {
|
|
91
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
92
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
93
|
-
}),
|
|
94
|
-
refs: { get close() {
|
|
95
|
-
return closeElement.value;
|
|
96
|
-
} },
|
|
97
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
98
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
99
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
100
|
-
} }),
|
|
101
|
-
signal(initialValue) {
|
|
102
|
-
const value = shallowRef(initialValue);
|
|
103
|
-
return {
|
|
104
|
-
get: () => value.value,
|
|
105
|
-
set: (next) => {
|
|
106
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
107
|
-
},
|
|
108
|
-
update: (next) => {
|
|
109
|
-
const updated = next(value.value);
|
|
110
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
},
|
|
114
|
-
computed(compute) {
|
|
115
|
-
const value = computed(compute);
|
|
116
|
-
return { get: () => value.value };
|
|
117
|
-
},
|
|
118
|
-
effect(run) {
|
|
119
|
-
const stop = watchEffect((onCleanup) => {
|
|
120
|
-
const cleanup = run();
|
|
121
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
122
|
-
}, { flush: "post" });
|
|
123
|
-
stops.push(stop);
|
|
124
|
-
return stop;
|
|
125
|
-
},
|
|
126
|
-
on(event, listener) {
|
|
127
|
-
const element = root.value;
|
|
128
|
-
element?.addEventListener(event, listener);
|
|
129
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
130
|
-
stops.push(off);
|
|
131
|
-
return off;
|
|
132
|
-
},
|
|
133
|
-
dispatch
|
|
134
|
-
};
|
|
135
|
-
let cleanup;
|
|
136
|
-
onMounted(() => {
|
|
137
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
138
|
-
cleanup = result;
|
|
139
|
-
});
|
|
47
|
+
const isCloseDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
48
|
+
"open",
|
|
49
|
+
"reason",
|
|
50
|
+
"trigger"
|
|
51
|
+
].includes(key));
|
|
52
|
+
const dispatch = createDispatch(root, emit, {
|
|
53
|
+
checks: { close: isCloseDetail },
|
|
54
|
+
modeled: ["open"]
|
|
140
55
|
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
56
|
+
useComponentHost(controllerModule.default, {
|
|
57
|
+
root,
|
|
58
|
+
dispatch,
|
|
59
|
+
props,
|
|
60
|
+
refs: { close: closeElement },
|
|
61
|
+
state: {
|
|
62
|
+
internalOpen,
|
|
63
|
+
accessibleLabel
|
|
64
|
+
}
|
|
144
65
|
});
|
|
145
66
|
return (_ctx, _cache) => {
|
|
146
67
|
return openBlock(), createElementBlock("dialog", mergeProps({ "data-component": "ui-dialog" }, _ctx.$attrs, {
|
|
@@ -154,6 +75,6 @@ var UiDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
154
75
|
], 16, _hoisted_1);
|
|
155
76
|
};
|
|
156
77
|
}
|
|
157
|
-
}), [["__scopeId", "data-v-
|
|
78
|
+
}), [["__scopeId", "data-v-cac753c9"]]);
|
|
158
79
|
//#endregion
|
|
159
80
|
export { UiDialog_default as t };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
1
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps,
|
|
3
|
+
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-disclosure/ui-disclosure.js";
|
|
4
5
|
//#region .build/vue/UiDisclosure.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["data-ui-disclosure-state"];
|
|
@@ -41,118 +42,27 @@ var UiDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
41
42
|
const contentId = ref("");
|
|
42
43
|
/** The values the styles' :host-state() rules test. */
|
|
43
44
|
const hostState = computed(() => [props.density && `density density=${props.density}`, internalOpen.value && "internalOpen"].filter(Boolean).join(" "));
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
close:
|
|
53
|
-
bubbles: true,
|
|
54
|
-
composed: true,
|
|
55
|
-
cancelable: false
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
const checks = {
|
|
59
|
-
open: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
60
|
-
"open",
|
|
61
|
-
"reason",
|
|
62
|
-
"trigger"
|
|
63
|
-
].includes(key)),
|
|
64
|
-
close: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
65
|
-
"open",
|
|
66
|
-
"reason",
|
|
67
|
-
"trigger"
|
|
68
|
-
].includes(key))
|
|
69
|
-
};
|
|
70
|
-
if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
|
|
71
|
-
const emitEvent = emit;
|
|
72
|
-
emitEvent(name, detail);
|
|
73
|
-
if (detail !== null && typeof detail === "object" && "open" in detail) emitEvent("update:open", detail["open"]);
|
|
74
|
-
return root.value?.dispatchEvent(new CustomEvent(name, {
|
|
75
|
-
bubbles: true,
|
|
76
|
-
composed: true,
|
|
77
|
-
...declared[name],
|
|
78
|
-
detail
|
|
79
|
-
})) ?? true;
|
|
80
|
-
}
|
|
81
|
-
function read(name) {
|
|
82
|
-
if (name === "internalOpen") return internalOpen.value;
|
|
83
|
-
if (name === "contentId") return contentId.value;
|
|
84
|
-
return props[name];
|
|
85
|
-
}
|
|
86
|
-
function write(name, value) {
|
|
87
|
-
if (name === "internalOpen") {
|
|
88
|
-
internalOpen.value = value;
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
if (name === "contentId") {
|
|
92
|
-
contentId.value = value;
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
96
|
-
}
|
|
97
|
-
const stops = [];
|
|
98
|
-
const host = {
|
|
99
|
-
get element() {
|
|
100
|
-
return root.value;
|
|
101
|
-
},
|
|
102
|
-
state: new Proxy({}, {
|
|
103
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
104
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
105
|
-
}),
|
|
106
|
-
refs: { get trigger() {
|
|
107
|
-
return triggerElement.value;
|
|
108
|
-
} },
|
|
109
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
110
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
111
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
112
|
-
} }),
|
|
113
|
-
signal(initialValue) {
|
|
114
|
-
const value = shallowRef(initialValue);
|
|
115
|
-
return {
|
|
116
|
-
get: () => value.value,
|
|
117
|
-
set: (next) => {
|
|
118
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
119
|
-
},
|
|
120
|
-
update: (next) => {
|
|
121
|
-
const updated = next(value.value);
|
|
122
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
},
|
|
126
|
-
computed(compute) {
|
|
127
|
-
const value = computed(compute);
|
|
128
|
-
return { get: () => value.value };
|
|
45
|
+
const isOpenDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
46
|
+
"open",
|
|
47
|
+
"reason",
|
|
48
|
+
"trigger"
|
|
49
|
+
].includes(key));
|
|
50
|
+
const dispatch = createDispatch(root, emit, {
|
|
51
|
+
checks: {
|
|
52
|
+
open: isOpenDetail,
|
|
53
|
+
close: isOpenDetail
|
|
129
54
|
},
|
|
130
|
-
|
|
131
|
-
const stop = watchEffect((onCleanup) => {
|
|
132
|
-
const cleanup = run();
|
|
133
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
134
|
-
}, { flush: "post" });
|
|
135
|
-
stops.push(stop);
|
|
136
|
-
return stop;
|
|
137
|
-
},
|
|
138
|
-
on(event, listener) {
|
|
139
|
-
const element = root.value;
|
|
140
|
-
element?.addEventListener(event, listener);
|
|
141
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
142
|
-
stops.push(off);
|
|
143
|
-
return off;
|
|
144
|
-
},
|
|
145
|
-
dispatch
|
|
146
|
-
};
|
|
147
|
-
let cleanup;
|
|
148
|
-
onMounted(() => {
|
|
149
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
150
|
-
cleanup = result;
|
|
151
|
-
});
|
|
55
|
+
modeled: ["open"]
|
|
152
56
|
});
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
57
|
+
useComponentHost(controllerModule.default, {
|
|
58
|
+
root,
|
|
59
|
+
dispatch,
|
|
60
|
+
props,
|
|
61
|
+
refs: { trigger: triggerElement },
|
|
62
|
+
state: {
|
|
63
|
+
internalOpen,
|
|
64
|
+
contentId
|
|
65
|
+
}
|
|
156
66
|
});
|
|
157
67
|
return (_ctx, _cache) => {
|
|
158
68
|
return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-disclosure" }, _ctx.$attrs, {
|
|
@@ -176,6 +86,6 @@ var UiDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
176
86
|
}, [createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 8, _hoisted_3)], 16, _hoisted_1);
|
|
177
87
|
};
|
|
178
88
|
}
|
|
179
|
-
}), [["__scopeId", "data-v-
|
|
89
|
+
}), [["__scopeId", "data-v-20cbcb83"]]);
|
|
180
90
|
//#endregion
|
|
181
91
|
export { UiDisclosure_default as t };
|
package/vue/chunks/UiEditable.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
1
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import { computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps,
|
|
3
|
+
import { computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, toDisplayString, useTemplateRef } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-editable/ui-editable.js";
|
|
4
5
|
//#region .build/vue/UiEditable.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["data-ui-editable-state"];
|
|
@@ -60,135 +61,38 @@ var UiEditable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
60
61
|
const draft = ref("");
|
|
61
62
|
/** The values the styles' :host-state() rules test. */
|
|
62
63
|
const hostState = computed(() => [internalEdit.value && "internalEdit", props.disabled && "disabled"].filter(Boolean).join(" "));
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
cancelable: false
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
const checks = {
|
|
83
|
-
input: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => ["value", "trigger"].includes(key)),
|
|
84
|
-
change: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && typeof detail["previousValue"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
85
|
-
"value",
|
|
86
|
-
"previousValue",
|
|
87
|
-
"trigger"
|
|
88
|
-
].includes(key)),
|
|
89
|
-
"edit-change": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["edit"] === "boolean" && (detail["reason"] === "activate" || detail["reason"] === "commit" || detail["reason"] === "cancel" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape" || detail["reason"] === "programmatic") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
90
|
-
"edit",
|
|
91
|
-
"reason",
|
|
92
|
-
"trigger"
|
|
93
|
-
].includes(key))
|
|
94
|
-
};
|
|
95
|
-
if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
|
|
96
|
-
const emitEvent = emit;
|
|
97
|
-
emitEvent(name, detail);
|
|
98
|
-
if (detail !== null && typeof detail === "object" && "edit" in detail) emitEvent("update:edit", detail["edit"]);
|
|
99
|
-
if (detail !== null && typeof detail === "object" && "value" in detail) emitEvent("update:value", detail["value"]);
|
|
100
|
-
return root.value?.dispatchEvent(new CustomEvent(name, {
|
|
101
|
-
bubbles: true,
|
|
102
|
-
composed: true,
|
|
103
|
-
...declared[name],
|
|
104
|
-
detail
|
|
105
|
-
})) ?? true;
|
|
106
|
-
}
|
|
107
|
-
function read(name) {
|
|
108
|
-
if (name === "internalEdit") return internalEdit.value;
|
|
109
|
-
if (name === "internalValue") return internalValue.value;
|
|
110
|
-
if (name === "draft") return draft.value;
|
|
111
|
-
return props[name];
|
|
112
|
-
}
|
|
113
|
-
function write(name, value) {
|
|
114
|
-
if (name === "internalEdit") {
|
|
115
|
-
internalEdit.value = value;
|
|
116
|
-
return true;
|
|
117
|
-
}
|
|
118
|
-
if (name === "internalValue") {
|
|
119
|
-
internalValue.value = value;
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
if (name === "draft") {
|
|
123
|
-
draft.value = value;
|
|
124
|
-
return true;
|
|
125
|
-
}
|
|
126
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
127
|
-
}
|
|
128
|
-
const stops = [];
|
|
129
|
-
const host = {
|
|
130
|
-
get element() {
|
|
131
|
-
return root.value;
|
|
64
|
+
const isInputDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => ["value", "trigger"].includes(key));
|
|
65
|
+
const isChangeDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && typeof detail["previousValue"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
66
|
+
"value",
|
|
67
|
+
"previousValue",
|
|
68
|
+
"trigger"
|
|
69
|
+
].includes(key));
|
|
70
|
+
const isEditChangeDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["edit"] === "boolean" && (detail["reason"] === "activate" || detail["reason"] === "commit" || detail["reason"] === "cancel" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape" || detail["reason"] === "programmatic") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
71
|
+
"edit",
|
|
72
|
+
"reason",
|
|
73
|
+
"trigger"
|
|
74
|
+
].includes(key));
|
|
75
|
+
const dispatch = createDispatch(root, emit, {
|
|
76
|
+
checks: {
|
|
77
|
+
input: isInputDetail,
|
|
78
|
+
change: isChangeDetail,
|
|
79
|
+
"edit-change": isEditChangeDetail
|
|
132
80
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
81
|
+
modeled: ["edit", "value"]
|
|
82
|
+
});
|
|
83
|
+
useComponentHost(controllerModule.default, {
|
|
84
|
+
root,
|
|
85
|
+
dispatch,
|
|
86
|
+
props,
|
|
137
87
|
refs: {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
},
|
|
141
|
-
get input() {
|
|
142
|
-
return inputElement.value;
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
146
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
147
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
148
|
-
} }),
|
|
149
|
-
signal(initialValue) {
|
|
150
|
-
const value = shallowRef(initialValue);
|
|
151
|
-
return {
|
|
152
|
-
get: () => value.value,
|
|
153
|
-
set: (next) => {
|
|
154
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
155
|
-
},
|
|
156
|
-
update: (next) => {
|
|
157
|
-
const updated = next(value.value);
|
|
158
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
},
|
|
162
|
-
computed(compute) {
|
|
163
|
-
const value = computed(compute);
|
|
164
|
-
return { get: () => value.value };
|
|
88
|
+
preview: previewElement,
|
|
89
|
+
input: inputElement
|
|
165
90
|
},
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
stops.push(stop);
|
|
172
|
-
return stop;
|
|
173
|
-
},
|
|
174
|
-
on(event, listener) {
|
|
175
|
-
const element = root.value;
|
|
176
|
-
element?.addEventListener(event, listener);
|
|
177
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
178
|
-
stops.push(off);
|
|
179
|
-
return off;
|
|
180
|
-
},
|
|
181
|
-
dispatch
|
|
182
|
-
};
|
|
183
|
-
let cleanup;
|
|
184
|
-
onMounted(() => {
|
|
185
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
186
|
-
cleanup = result;
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
onBeforeUnmount(() => {
|
|
190
|
-
for (const stop of stops.splice(0)) stop();
|
|
191
|
-
if (typeof cleanup === "function") cleanup();
|
|
91
|
+
state: {
|
|
92
|
+
internalEdit,
|
|
93
|
+
internalValue,
|
|
94
|
+
draft
|
|
95
|
+
}
|
|
192
96
|
});
|
|
193
97
|
return (_ctx, _cache) => {
|
|
194
98
|
return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-editable" }, _ctx.$attrs, {
|
|
@@ -216,6 +120,6 @@ var UiEditable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
216
120
|
}, "Cancel", -1)])])) : createCommentVNode("v-if", true)], 16, _hoisted_1);
|
|
217
121
|
};
|
|
218
122
|
}
|
|
219
|
-
}), [["__scopeId", "data-v-
|
|
123
|
+
}), [["__scopeId", "data-v-c1b523c6"]]);
|
|
220
124
|
//#endregion
|
|
221
125
|
export { UiEditable_default as t };
|