@threadlabs/looma 0.6.3 → 0.6.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.
- package/components/ui-tree-item/ui-tree-item.html +68 -12
- package/components/ui-tree-item/ui-tree-item.js +9 -1
- 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 +1 -1
- package/styles/ui-callout.css +1 -1
- package/styles/ui-checkbox.css +1 -1
- package/styles/ui-cluster.css +1 -1
- package/styles/ui-combobox.css +1 -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 +1 -1
- 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 +75 -12
- package/styles/ui-tree.css +1 -1
- 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 +1 -1
- package/vanilla/UiButton.js +1 -1
- 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 +1 -1
- 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 -1
- package/vanilla/UiSelect.js +1 -1
- 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 +2 -2
- 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.vue +1 -1
- package/vue/UiCallout.vue +1 -1
- package/vue/UiCheckbox.vue +22 -123
- package/vue/UiCluster.vue +1 -1
- package/vue/UiCombobox.d.ts +1 -1
- package/vue/UiCombobox.vue +224 -475
- 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.vue +7 -79
- 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 +97 -153
- 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 +1 -1
- 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 +114 -325
- 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 -73
- 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 +35 -118
- package/vue/chunks/host.js +101 -0
- package/vue/components.css +759 -707
- package/vue/host.ts +154 -0
package/vue/chunks/UiInput.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, createElementBlock, defineComponent, mergeProps,
|
|
3
|
+
import { computed, createElementBlock, defineComponent, mergeProps, openBlock, ref, vModelDynamic, withDirectives } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-input/ui-input.js";
|
|
4
5
|
//#region .build/vue/UiInput.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = [
|
|
@@ -42,77 +43,11 @@ var UiInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
42
43
|
set: (value) => emit("update:modelValue", value)
|
|
43
44
|
});
|
|
44
45
|
const root = ref(null);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
detail
|
|
51
|
-
})) ?? true;
|
|
52
|
-
}
|
|
53
|
-
function read(name) {
|
|
54
|
-
return props[name];
|
|
55
|
-
}
|
|
56
|
-
function write(name, value) {
|
|
57
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
58
|
-
}
|
|
59
|
-
const stops = [];
|
|
60
|
-
const host = {
|
|
61
|
-
get element() {
|
|
62
|
-
return root.value;
|
|
63
|
-
},
|
|
64
|
-
state: new Proxy({}, {
|
|
65
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
66
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
67
|
-
}),
|
|
68
|
-
refs: {},
|
|
69
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
70
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
71
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
72
|
-
} }),
|
|
73
|
-
signal(initialValue) {
|
|
74
|
-
const value = shallowRef(initialValue);
|
|
75
|
-
return {
|
|
76
|
-
get: () => value.value,
|
|
77
|
-
set: (next) => {
|
|
78
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
79
|
-
},
|
|
80
|
-
update: (next) => {
|
|
81
|
-
const updated = next(value.value);
|
|
82
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
},
|
|
86
|
-
computed(compute) {
|
|
87
|
-
const value = computed(compute);
|
|
88
|
-
return { get: () => value.value };
|
|
89
|
-
},
|
|
90
|
-
effect(run) {
|
|
91
|
-
const stop = watchEffect((onCleanup) => {
|
|
92
|
-
const cleanup = run();
|
|
93
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
94
|
-
}, { flush: "post" });
|
|
95
|
-
stops.push(stop);
|
|
96
|
-
return stop;
|
|
97
|
-
},
|
|
98
|
-
on(event, listener) {
|
|
99
|
-
const element = root.value;
|
|
100
|
-
element?.addEventListener(event, listener);
|
|
101
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
102
|
-
stops.push(off);
|
|
103
|
-
return off;
|
|
104
|
-
},
|
|
105
|
-
dispatch
|
|
106
|
-
};
|
|
107
|
-
let cleanup;
|
|
108
|
-
onMounted(() => {
|
|
109
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
110
|
-
cleanup = result;
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
onBeforeUnmount(() => {
|
|
114
|
-
for (const stop of stops.splice(0)) stop();
|
|
115
|
-
if (typeof cleanup === "function") cleanup();
|
|
46
|
+
const dispatch = createDispatch(root);
|
|
47
|
+
useComponentHost(controllerModule.default, {
|
|
48
|
+
root,
|
|
49
|
+
dispatch,
|
|
50
|
+
props
|
|
116
51
|
});
|
|
117
52
|
return (_ctx, _cache) => {
|
|
118
53
|
return withDirectives((openBlock(), createElementBlock("input", mergeProps({ "data-component": "ui-input" }, _ctx.$attrs, {
|
|
@@ -126,6 +61,6 @@ var UiInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
126
61
|
}), null, 16, _hoisted_1)), [[vModelDynamic, model.value]]);
|
|
127
62
|
};
|
|
128
63
|
}
|
|
129
|
-
}), [["__scopeId", "data-v-
|
|
64
|
+
}), [["__scopeId", "data-v-0c0dde58"]]);
|
|
130
65
|
//#endregion
|
|
131
66
|
export { UiInput_default as t };
|
package/vue/chunks/UiMenu.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, createElementBlock, createElementVNode, defineComponent, mergeProps,
|
|
3
|
+
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-menu/ui-menu.js";
|
|
4
5
|
//#region .build/vue/UiMenu.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["data-ui-menu-state"];
|
|
@@ -31,117 +32,30 @@ var UiMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
31
32
|
const internalOpen = ref(false);
|
|
32
33
|
/** The values the styles' :host-state() rules test. */
|
|
33
34
|
const hostState = computed(() => [props.density && `density density=${props.density}`, internalOpen.value && "internalOpen"].filter(Boolean).join(" "));
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
cancelable: false
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
const checks = {
|
|
54
|
-
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)),
|
|
55
|
-
open: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic") && (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
|
-
};
|
|
66
|
-
if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
|
|
67
|
-
const emitEvent = emit;
|
|
68
|
-
emitEvent(name, detail);
|
|
69
|
-
if (detail !== null && typeof detail === "object" && "open" in detail) emitEvent("update:open", detail["open"]);
|
|
70
|
-
return root.value?.dispatchEvent(new CustomEvent(name, {
|
|
71
|
-
bubbles: true,
|
|
72
|
-
composed: true,
|
|
73
|
-
...declared[name],
|
|
74
|
-
detail
|
|
75
|
-
})) ?? true;
|
|
76
|
-
}
|
|
77
|
-
function read(name) {
|
|
78
|
-
if (name === "internalOpen") return internalOpen.value;
|
|
79
|
-
return props[name];
|
|
80
|
-
}
|
|
81
|
-
function write(name, value) {
|
|
82
|
-
if (name === "internalOpen") {
|
|
83
|
-
internalOpen.value = value;
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
87
|
-
}
|
|
88
|
-
const stops = [];
|
|
89
|
-
const host = {
|
|
90
|
-
get element() {
|
|
91
|
-
return root.value;
|
|
35
|
+
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));
|
|
36
|
+
const isOpenDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic") && (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 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) => [
|
|
42
|
+
"open",
|
|
43
|
+
"reason",
|
|
44
|
+
"trigger"
|
|
45
|
+
].includes(key));
|
|
46
|
+
const dispatch = createDispatch(root, emit, {
|
|
47
|
+
checks: {
|
|
48
|
+
select: isSelectDetail,
|
|
49
|
+
open: isOpenDetail,
|
|
50
|
+
close: isCloseDetail
|
|
92
51
|
},
|
|
93
|
-
|
|
94
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
95
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
96
|
-
}),
|
|
97
|
-
refs: {},
|
|
98
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
99
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
100
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
101
|
-
} }),
|
|
102
|
-
signal(initialValue) {
|
|
103
|
-
const value = shallowRef(initialValue);
|
|
104
|
-
return {
|
|
105
|
-
get: () => value.value,
|
|
106
|
-
set: (next) => {
|
|
107
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
108
|
-
},
|
|
109
|
-
update: (next) => {
|
|
110
|
-
const updated = next(value.value);
|
|
111
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
},
|
|
115
|
-
computed(compute) {
|
|
116
|
-
const value = computed(compute);
|
|
117
|
-
return { get: () => value.value };
|
|
118
|
-
},
|
|
119
|
-
effect(run) {
|
|
120
|
-
const stop = watchEffect((onCleanup) => {
|
|
121
|
-
const cleanup = run();
|
|
122
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
123
|
-
}, { flush: "post" });
|
|
124
|
-
stops.push(stop);
|
|
125
|
-
return stop;
|
|
126
|
-
},
|
|
127
|
-
on(event, listener) {
|
|
128
|
-
const element = root.value;
|
|
129
|
-
element?.addEventListener(event, listener);
|
|
130
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
131
|
-
stops.push(off);
|
|
132
|
-
return off;
|
|
133
|
-
},
|
|
134
|
-
dispatch
|
|
135
|
-
};
|
|
136
|
-
let cleanup;
|
|
137
|
-
onMounted(() => {
|
|
138
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
139
|
-
cleanup = result;
|
|
140
|
-
});
|
|
52
|
+
modeled: ["open"]
|
|
141
53
|
});
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
54
|
+
useComponentHost(controllerModule.default, {
|
|
55
|
+
root,
|
|
56
|
+
dispatch,
|
|
57
|
+
props,
|
|
58
|
+
state: { internalOpen }
|
|
145
59
|
});
|
|
146
60
|
return (_ctx, _cache) => {
|
|
147
61
|
return openBlock(), createElementBlock("div", mergeProps({
|
|
@@ -155,6 +69,6 @@ var UiMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
155
69
|
}), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
|
|
156
70
|
};
|
|
157
71
|
}
|
|
158
|
-
}), [["__scopeId", "data-v-
|
|
72
|
+
}), [["__scopeId", "data-v-e8df970a"]]);
|
|
159
73
|
//#endregion
|
|
160
74
|
export { UiMenu_default as t };
|
package/vue/chunks/UiMenuItem.js
CHANGED
|
@@ -26,6 +26,6 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
26
26
|
}), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
}), [["__scopeId", "data-v-
|
|
29
|
+
}), [["__scopeId", "data-v-40124183"]]);
|
|
30
30
|
//#endregion
|
|
31
31
|
export { UiMenuItem_default as t };
|
package/vue/chunks/UiPopover.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, createElementBlock, createElementVNode, defineComponent, mergeProps,
|
|
3
|
+
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-popover/ui-popover.js";
|
|
4
5
|
//#region .build/vue/UiPopover.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["data-ui-popover-state"];
|
|
@@ -29,111 +30,23 @@ var UiPopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
29
30
|
const internalOpen = ref(false);
|
|
30
31
|
/** The values the styles' :host-state() rules test. */
|
|
31
32
|
const hostState = computed(() => [internalOpen.value && "internalOpen"].filter(Boolean).join(" "));
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
close:
|
|
41
|
-
bubbles: true,
|
|
42
|
-
composed: true,
|
|
43
|
-
cancelable: false
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
const checks = {
|
|
47
|
-
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) => [
|
|
48
|
-
"open",
|
|
49
|
-
"reason",
|
|
50
|
-
"trigger"
|
|
51
|
-
].includes(key)),
|
|
52
|
-
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) => [
|
|
53
|
-
"open",
|
|
54
|
-
"reason",
|
|
55
|
-
"trigger"
|
|
56
|
-
].includes(key))
|
|
57
|
-
};
|
|
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
|
-
return props[name];
|
|
72
|
-
}
|
|
73
|
-
function write(name, value) {
|
|
74
|
-
if (name === "internalOpen") {
|
|
75
|
-
internalOpen.value = value;
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
79
|
-
}
|
|
80
|
-
const stops = [];
|
|
81
|
-
const host = {
|
|
82
|
-
get element() {
|
|
83
|
-
return root.value;
|
|
33
|
+
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) => [
|
|
34
|
+
"open",
|
|
35
|
+
"reason",
|
|
36
|
+
"trigger"
|
|
37
|
+
].includes(key));
|
|
38
|
+
const dispatch = createDispatch(root, emit, {
|
|
39
|
+
checks: {
|
|
40
|
+
open: isOpenDetail,
|
|
41
|
+
close: isOpenDetail
|
|
84
42
|
},
|
|
85
|
-
|
|
86
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
87
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
88
|
-
}),
|
|
89
|
-
refs: {},
|
|
90
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
91
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
92
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
93
|
-
} }),
|
|
94
|
-
signal(initialValue) {
|
|
95
|
-
const value = shallowRef(initialValue);
|
|
96
|
-
return {
|
|
97
|
-
get: () => value.value,
|
|
98
|
-
set: (next) => {
|
|
99
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
100
|
-
},
|
|
101
|
-
update: (next) => {
|
|
102
|
-
const updated = next(value.value);
|
|
103
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
},
|
|
107
|
-
computed(compute) {
|
|
108
|
-
const value = computed(compute);
|
|
109
|
-
return { get: () => value.value };
|
|
110
|
-
},
|
|
111
|
-
effect(run) {
|
|
112
|
-
const stop = watchEffect((onCleanup) => {
|
|
113
|
-
const cleanup = run();
|
|
114
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
115
|
-
}, { flush: "post" });
|
|
116
|
-
stops.push(stop);
|
|
117
|
-
return stop;
|
|
118
|
-
},
|
|
119
|
-
on(event, listener) {
|
|
120
|
-
const element = root.value;
|
|
121
|
-
element?.addEventListener(event, listener);
|
|
122
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
123
|
-
stops.push(off);
|
|
124
|
-
return off;
|
|
125
|
-
},
|
|
126
|
-
dispatch
|
|
127
|
-
};
|
|
128
|
-
let cleanup;
|
|
129
|
-
onMounted(() => {
|
|
130
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
131
|
-
cleanup = result;
|
|
132
|
-
});
|
|
43
|
+
modeled: ["open"]
|
|
133
44
|
});
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
45
|
+
useComponentHost(controllerModule.default, {
|
|
46
|
+
root,
|
|
47
|
+
dispatch,
|
|
48
|
+
props,
|
|
49
|
+
state: { internalOpen }
|
|
137
50
|
});
|
|
138
51
|
return (_ctx, _cache) => {
|
|
139
52
|
return openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-popover" }, _ctx.$attrs, {
|
|
@@ -143,6 +56,6 @@ var UiPopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
143
56
|
}), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
|
|
144
57
|
};
|
|
145
58
|
}
|
|
146
|
-
}), [["__scopeId", "data-v-
|
|
59
|
+
}), [["__scopeId", "data-v-3675062e"]]);
|
|
147
60
|
//#endregion
|
|
148
61
|
export { UiPopover_default as t };
|
package/vue/chunks/UiRadio.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, createElementBlock, createElementVNode, defineComponent, mergeProps,
|
|
3
|
+
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, useTemplateRef } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-radio/ui-radio.js";
|
|
4
5
|
//#region .build/vue/UiRadio.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["data-ui-radio-state"];
|
|
@@ -45,100 +46,21 @@ var UiRadio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
45
46
|
const internalChecked = ref(false);
|
|
46
47
|
/** The values the styles' :host-state() rules test. */
|
|
47
48
|
const hostState = computed(() => [props.disabled && "disabled"].filter(Boolean).join(" "));
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"checked",
|
|
57
|
-
"value",
|
|
58
|
-
"trigger"
|
|
59
|
-
].includes(key)) };
|
|
60
|
-
if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
|
|
61
|
-
const emitEvent = emit;
|
|
62
|
-
emitEvent(name, detail);
|
|
63
|
-
if (detail !== null && typeof detail === "object" && "checked" in detail) emitEvent("update:checked", detail["checked"]);
|
|
64
|
-
if (detail !== null && typeof detail === "object" && "value" in detail) emitEvent("update:value", detail["value"]);
|
|
65
|
-
return root.value?.dispatchEvent(new CustomEvent(name, {
|
|
66
|
-
bubbles: true,
|
|
67
|
-
composed: true,
|
|
68
|
-
...declared[name],
|
|
69
|
-
detail
|
|
70
|
-
})) ?? true;
|
|
71
|
-
}
|
|
72
|
-
function read(name) {
|
|
73
|
-
if (name === "internalChecked") return internalChecked.value;
|
|
74
|
-
return props[name];
|
|
75
|
-
}
|
|
76
|
-
function write(name, value) {
|
|
77
|
-
if (name === "internalChecked") {
|
|
78
|
-
internalChecked.value = value;
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
82
|
-
}
|
|
83
|
-
const stops = [];
|
|
84
|
-
const host = {
|
|
85
|
-
get element() {
|
|
86
|
-
return root.value;
|
|
87
|
-
},
|
|
88
|
-
state: new Proxy({}, {
|
|
89
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
90
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
91
|
-
}),
|
|
92
|
-
refs: { get input() {
|
|
93
|
-
return inputElement.value;
|
|
94
|
-
} },
|
|
95
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
96
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
97
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
98
|
-
} }),
|
|
99
|
-
signal(initialValue) {
|
|
100
|
-
const value = shallowRef(initialValue);
|
|
101
|
-
return {
|
|
102
|
-
get: () => value.value,
|
|
103
|
-
set: (next) => {
|
|
104
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
105
|
-
},
|
|
106
|
-
update: (next) => {
|
|
107
|
-
const updated = next(value.value);
|
|
108
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
},
|
|
112
|
-
computed(compute) {
|
|
113
|
-
const value = computed(compute);
|
|
114
|
-
return { get: () => value.value };
|
|
115
|
-
},
|
|
116
|
-
effect(run) {
|
|
117
|
-
const stop = watchEffect((onCleanup) => {
|
|
118
|
-
const cleanup = run();
|
|
119
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
120
|
-
}, { flush: "post" });
|
|
121
|
-
stops.push(stop);
|
|
122
|
-
return stop;
|
|
123
|
-
},
|
|
124
|
-
on(event, listener) {
|
|
125
|
-
const element = root.value;
|
|
126
|
-
element?.addEventListener(event, listener);
|
|
127
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
128
|
-
stops.push(off);
|
|
129
|
-
return off;
|
|
130
|
-
},
|
|
131
|
-
dispatch
|
|
132
|
-
};
|
|
133
|
-
let cleanup;
|
|
134
|
-
onMounted(() => {
|
|
135
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
136
|
-
cleanup = result;
|
|
137
|
-
});
|
|
49
|
+
const isChangeDetail = (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["checked"] === "boolean" && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
|
|
50
|
+
"checked",
|
|
51
|
+
"value",
|
|
52
|
+
"trigger"
|
|
53
|
+
].includes(key));
|
|
54
|
+
const dispatch = createDispatch(root, emit, {
|
|
55
|
+
checks: { change: isChangeDetail },
|
|
56
|
+
modeled: ["checked", "value"]
|
|
138
57
|
});
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
58
|
+
useComponentHost(controllerModule.default, {
|
|
59
|
+
root,
|
|
60
|
+
dispatch,
|
|
61
|
+
props,
|
|
62
|
+
refs: { input: inputElement },
|
|
63
|
+
state: { internalChecked }
|
|
142
64
|
});
|
|
143
65
|
return (_ctx, _cache) => {
|
|
144
66
|
return openBlock(), createElementBlock("label", mergeProps({ "data-component": "ui-radio" }, _ctx.$attrs, {
|
|
@@ -156,6 +78,6 @@ var UiRadio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
156
78
|
}, null, 40, _hoisted_2), createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
|
|
157
79
|
};
|
|
158
80
|
}
|
|
159
|
-
}), [["__scopeId", "data-v-
|
|
81
|
+
}), [["__scopeId", "data-v-2c20c2e3"]]);
|
|
160
82
|
//#endregion
|
|
161
83
|
export { UiRadio_default as t };
|