@poveste/app 0.14.0 → 0.16.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/dist/app/style/main.pcss +18 -44
- package/dist/bundled/App.vue_vue_type_script_setup_true_lang.js +9 -7
- package/dist/bundled/app.css +91 -28
- package/dist/bundled/components/app/AppActions.vue_vue_type_script_setup_true_lang.js +44 -27
- package/dist/bundled/components/app/ShortcutTooltip.js +5 -0
- package/dist/bundled/components/app/ShortcutTooltip.vue_vue_type_script_setup_true_lang.js +27 -0
- package/dist/bundled/components/app/TopBarChipItem.js +1 -1
- package/dist/bundled/components/base/BaseDropdown.js +6 -0
- package/dist/bundled/components/base/BaseDropdown.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/bundled/components/base/BaseEmpty.js +2 -2
- package/dist/bundled/components/base/BaseOverflowMenu.vue_vue_type_script_setup_true_lang.js +19 -19
- package/dist/bundled/components/base/BaseSelect.js +1 -0
- package/dist/bundled/components/base/BaseSelect.vue_vue_type_script_setup_true_lang.js +194 -33
- package/dist/bundled/components/base/BaseSplitPane.js +1 -1
- package/dist/bundled/components/base/BaseSplitPane.vue_vue_type_script_setup_true_lang.js +65 -4
- package/dist/bundled/components/command/PromptSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/panel/ControlsComponentPropItem.vue_vue_type_script_setup_true_lang.js +24 -16
- package/dist/bundled/components/panel/ControlsComponentProps.vue_vue_type_script_setup_true_lang.js +9 -6
- package/dist/bundled/components/panel/ControlsComponentState.vue_vue_type_script_setup_true_lang.js +9 -6
- package/dist/bundled/components/panel/PaneTabs.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/bundled/components/panel/StatePresets.vue_vue_type_script_setup_true_lang.js +96 -52
- package/dist/bundled/components/panel/StoryEvent.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/bundled/components/panel/StorySidePanel.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/bundled/components/panel/StorySourceCode.js +1 -1
- package/dist/bundled/components/panel/StorySourceCode.vue_vue_type_script_setup_true_lang.js +24 -18
- package/dist/bundled/components/search/SearchItemContent.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/bundled/components/search/SearchPane.vue_vue_type_script_setup_true_lang.js +1 -2
- package/dist/bundled/components/story/StoryResponsivePreview.js +1 -1
- package/dist/bundled/components/story/StoryResponsivePreview.vue_vue_type_script_setup_true_lang.js +52 -45
- package/dist/bundled/components/story/StoryVariantGridItem.js +1 -1
- package/dist/bundled/components/story/StoryVariantGridItem.vue_vue_type_script_setup_true_lang.js +22 -20
- package/dist/bundled/components/story/StoryVariantSingle.js +1 -1
- package/dist/bundled/components/story/StoryVariantSingle.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/bundled/components/story/StoryVariantSinglePreviewRemote.vue_vue_type_script_setup_true_lang.js +9 -6
- package/dist/bundled/components/story/StoryView.vue_vue_type_script_setup_true_lang.js +5 -1
- package/dist/bundled/components/toolbar/DevOnlyToolbarOpenInEditor.vue_vue_type_script_setup_true_lang.js +15 -12
- package/dist/bundled/components/toolbar/ToolbarBackground.vue_vue_type_script_setup_true_lang.js +20 -16
- package/dist/bundled/components/toolbar/ToolbarNewTab.vue_vue_type_script_setup_true_lang.js +16 -13
- package/dist/bundled/components/toolbar/ToolbarResponsiveSize.vue_vue_type_script_setup_true_lang.js +35 -24
- package/dist/bundled/components/toolbar/ToolbarTextDirection.vue_vue_type_script_setup_true_lang.js +15 -12
- package/dist/bundled/components/toolbar/ToolbarTitle.js +1 -1
- package/dist/bundled/components/toolbar/ToolbarTitle.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/tree/StoryGroup.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/bundled/components/tree/StoryList.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/bundled/components/tree/StoryListFolder.js +1 -1
- package/dist/bundled/components/tree/StoryListFolder.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/bundled/components/tree/StoryListItem.js +1 -1
- package/dist/bundled/components/tree/StoryListItem.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/bundled/index.js +0 -13
- package/dist/bundled/sandbox.js +5 -3
- package/dist/bundled/stores/story.js +2 -2
- package/dist/bundled/util/commands.js +1 -1
- package/dist/bundled/util/dark.js +1 -1
- package/dist/bundled/util/events.js +1 -1
- package/dist/bundled/util/grid-slots.js +1 -1
- package/dist/bundled/util/icons.generated.js +4 -2
- package/dist/bundled/util/keyboard.js +8 -14
- package/dist/bundled/util/mapping.js +2 -2
- package/dist/bundled/util/render-tracker.js +33 -0
- package/dist/bundled/util/scroll.js +26 -5
- package/dist/bundled/util/state.js +105 -5
- package/dist/bundled/util/variant.js +12 -2
- package/dist/style.css +753 -357
- package/package.json +28 -28
- package/src/__tests__/base-select.spec.ts +25 -0
- package/src/__tests__/render-tracker.spec.ts +38 -0
- package/src/__tests__/reset.spec.ts +53 -0
- package/src/__tests__/state-clone.spec.ts +55 -1
- package/src/__tests__/state-types.spec.ts +175 -0
- package/src/app/App.vue +44 -35
- package/src/app/components/app/AppActions.vue +42 -30
- package/src/app/components/app/ShortcutTooltip.vue +29 -0
- package/src/app/components/app/TopBarChipItem.vue +1 -1
- package/src/app/components/base/BaseDropdown.vue +142 -0
- package/src/app/components/base/BaseEmpty.vue +1 -1
- package/src/app/components/base/BaseListItemLink.vue +4 -2
- package/src/app/components/base/BaseOverflowMenu.vue +27 -21
- package/src/app/components/base/BaseSelect.vue +270 -41
- package/src/app/components/base/BaseSplitPane.vue +75 -4
- package/src/app/components/command/PromptSelect.vue +1 -1
- package/src/app/components/panel/ControlsComponentPropItem.vue +29 -17
- package/src/app/components/panel/ControlsComponentProps.vue +7 -5
- package/src/app/components/panel/ControlsComponentState.vue +7 -5
- package/src/app/components/panel/PaneTabs.vue +6 -6
- package/src/app/components/panel/StatePresets.vue +116 -74
- package/src/app/components/panel/StoryEvent.vue +10 -9
- package/src/app/components/panel/StorySidePanel.vue +2 -1
- package/src/app/components/panel/StorySourceCode.vue +51 -44
- package/src/app/components/search/SearchItemContent.vue +2 -1
- package/src/app/components/search/SearchPane.vue +2 -3
- package/src/app/components/story/StoryResponsivePreview.vue +61 -29
- package/src/app/components/story/StoryVariantGridItem.vue +20 -19
- package/src/app/components/story/StoryVariantSingle.vue +1 -0
- package/src/app/components/story/StoryVariantSinglePreviewRemote.vue +14 -8
- package/src/app/components/story/StoryView.vue +4 -1
- package/src/app/components/toolbar/DevOnlyToolbarOpenInEditor.vue +14 -12
- package/src/app/components/toolbar/ToolbarBackground.vue +22 -23
- package/src/app/components/toolbar/ToolbarNewTab.vue +14 -12
- package/src/app/components/toolbar/ToolbarResponsiveSize.vue +31 -25
- package/src/app/components/toolbar/ToolbarTextDirection.vue +14 -10
- package/src/app/components/toolbar/ToolbarTitle.vue +2 -2
- package/src/app/components/tree/StoryGroup.vue +2 -2
- package/src/app/components/tree/StoryList.vue +2 -2
- package/src/app/components/tree/StoryListFolder.vue +2 -2
- package/src/app/components/tree/StoryListItem.vue +1 -1
- package/src/app/index.ts +0 -17
- package/src/app/sandbox.ts +16 -3
- package/src/app/stores/story.ts +2 -2
- package/src/app/style/main.pcss +18 -44
- package/src/app/types.ts +4 -4
- package/src/app/util/commands.ts +1 -1
- package/src/app/util/dark.ts +1 -1
- package/src/app/util/env.ts +0 -1
- package/src/app/util/events.ts +6 -5
- package/src/app/util/grid-slots.ts +1 -1
- package/src/app/util/icons.generated.ts +2 -2
- package/src/app/util/keyboard.ts +7 -11
- package/src/app/util/mapping.ts +2 -2
- package/src/app/util/render-tracker.ts +31 -0
- package/src/app/util/scroll.ts +47 -9
- package/src/app/util/state.ts +141 -8
- package/src/app/util/variant.ts +12 -2
- package/dist/app/style/floating.pcss +0 -40
- package/dist/bundled/util/tooltip.js +0 -14
- package/src/app/style/floating.pcss +0 -40
- package/src/app/util/tooltip.ts +0 -13
package/dist/bundled/components/base/BaseOverflowMenu.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import BaseDropdown_default from "./BaseDropdown.js";
|
|
1
2
|
import { useResizeObserver } from "@poveste/vendors/vue-use";
|
|
2
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, h, onBeforeUnmount, openBlock, reactive, ref, renderSlot,
|
|
3
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, h, onBeforeUnmount, openBlock, reactive, ref, renderSlot, unref, withCtx } from "@poveste/vendors/vue";
|
|
3
4
|
import { Icon } from "@poveste/vendors/iconify";
|
|
4
5
|
//#region src/app/components/base/BaseOverflowMenu.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = {
|
|
6
|
-
|
|
7
|
+
"aria-label": "More",
|
|
7
8
|
class: "cursor-pointer hover:bg-primary-50 dark:hover:bg-primary-900 w-8 h-full flex items-center justify-center absolute top-0 right-0"
|
|
8
9
|
};
|
|
9
10
|
var _hoisted_2 = { class: "flex flex-col items-stretch" };
|
|
@@ -13,16 +14,16 @@ var BaseOverflowMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
13
14
|
setup(__props) {
|
|
14
15
|
const el = ref();
|
|
15
16
|
const availableWidth = ref(0);
|
|
16
|
-
useResizeObserver(el, (
|
|
17
|
-
|
|
18
|
-
availableWidth.value =
|
|
17
|
+
useResizeObserver(el, ([entry]) => {
|
|
18
|
+
if (!entry) return;
|
|
19
|
+
availableWidth.value = entry.contentRect.width - overflowButtonWidth;
|
|
19
20
|
});
|
|
20
21
|
const children = ref(/* @__PURE__ */ new Map());
|
|
21
22
|
const visibleChildrenCount = computed(() => {
|
|
22
23
|
let width = 0;
|
|
23
24
|
const c = [...children.value.values()].sort((a, b) => a.index - b.index);
|
|
24
|
-
for (
|
|
25
|
-
width +=
|
|
25
|
+
for (const [i, child] of c.entries()) {
|
|
26
|
+
width += child.width;
|
|
26
27
|
if (width > availableWidth.value) return i;
|
|
27
28
|
}
|
|
28
29
|
return c.length;
|
|
@@ -39,10 +40,10 @@ var BaseOverflowMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
39
40
|
width: 0,
|
|
40
41
|
index: props.index
|
|
41
42
|
});
|
|
42
|
-
useResizeObserver(el, (
|
|
43
|
+
useResizeObserver(el, ([entry]) => {
|
|
43
44
|
const element = el.value;
|
|
44
|
-
if (!element) return;
|
|
45
|
-
const width =
|
|
45
|
+
if (!element || !entry) return;
|
|
46
|
+
const width = entry.contentRect.width;
|
|
46
47
|
if (!children.value.has(element)) children.value.set(element, state);
|
|
47
48
|
state.width = width;
|
|
48
49
|
});
|
|
@@ -54,25 +55,24 @@ var BaseOverflowMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
54
55
|
return () => h("div", {
|
|
55
56
|
ref: el,
|
|
56
57
|
style: { visibility: visible.value ? "visible" : "hidden" }
|
|
57
|
-
}, slots
|
|
58
|
+
}, slots["default"]?.());
|
|
58
59
|
}
|
|
59
60
|
};
|
|
60
61
|
/**
|
|
61
62
|
* Wraps each child with a <ChildWrapper>
|
|
62
63
|
*/
|
|
63
|
-
function ChildrenRender(
|
|
64
|
-
const
|
|
65
|
-
return
|
|
64
|
+
function ChildrenRender(_props, { slots }) {
|
|
65
|
+
const children = slots["default"]?.()[0]?.children;
|
|
66
|
+
return Array.isArray(children) ? children.map((vnode, index) => h(ChildWrapper, { index }, () => [vnode])) : [];
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* Only renders a part of a children list
|
|
69
70
|
*/
|
|
70
71
|
function ChildrenSlice(props, { slots }) {
|
|
71
|
-
const
|
|
72
|
-
return
|
|
72
|
+
const children = slots["default"]?.()[0]?.children;
|
|
73
|
+
return Array.isArray(children) ? children.slice(props.start, props.end) : [];
|
|
73
74
|
}
|
|
74
75
|
return (_ctx, _cache) => {
|
|
75
|
-
const _component_VDropdown = resolveComponent("VDropdown");
|
|
76
76
|
return openBlock(), createElementBlock("div", {
|
|
77
77
|
ref_key: "el",
|
|
78
78
|
ref: el,
|
|
@@ -80,12 +80,12 @@ var BaseOverflowMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
80
80
|
}, [createVNode(ChildrenRender, null, {
|
|
81
81
|
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
82
82
|
_: 3
|
|
83
|
-
}), visibleChildrenCount.value < children.value.size ? (openBlock(), createBlock(
|
|
83
|
+
}), visibleChildrenCount.value < children.value.size ? (openBlock(), createBlock(BaseDropdown_default, { key: 0 }, {
|
|
84
84
|
popper: withCtx(() => [createElementVNode("div", _hoisted_2, [createVNode(ChildrenSlice, { start: visibleChildrenCount.value }, {
|
|
85
85
|
default: withCtx(() => [renderSlot(_ctx.$slots, "overflow")]),
|
|
86
86
|
_: 3
|
|
87
87
|
}, 8, ["start"])])]),
|
|
88
|
-
default: withCtx(() => [createElementVNode("
|
|
88
|
+
default: withCtx(() => [createElementVNode("button", _hoisted_1, [createVNode(unref(Icon), {
|
|
89
89
|
icon: "carbon:caret-down",
|
|
90
90
|
class: "w-4 h-4 opacity-50 group-hover:opacity-100"
|
|
91
91
|
})])]),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import BaseSelect_vue_vue_type_script_setup_true_lang_default from "./BaseSelect.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
/* empty css */
|
|
2
3
|
//#region src/app/components/base/BaseSelect.vue
|
|
3
4
|
var BaseSelect_default = BaseSelect_vue_vue_type_script_setup_true_lang_default;
|
|
4
5
|
//#endregion
|
|
@@ -1,57 +1,218 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { refAutoReset } from "@poveste/vendors/vue-use";
|
|
2
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, onMounted, openBlock, ref, renderList, renderSlot, shallowRef, toDisplayString, unref, useId, watch, withCtx, withModifiers } from "@poveste/vendors/vue";
|
|
2
3
|
import { Icon } from "@poveste/vendors/iconify";
|
|
3
|
-
import {
|
|
4
|
+
import { PopoverAnchor, PopoverContent, PopoverPortal, PopoverRoot, portalTarget } from "@poveste/controls";
|
|
4
5
|
//#region src/app/components/base/BaseSelect.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var _hoisted_1 =
|
|
6
|
+
var _hoisted_1 = [
|
|
7
|
+
"aria-label",
|
|
8
|
+
"aria-expanded",
|
|
9
|
+
"aria-controls",
|
|
10
|
+
"aria-activedescendant"
|
|
11
|
+
];
|
|
6
12
|
var _hoisted_2 = { class: "flex-1 truncate" };
|
|
7
|
-
var _hoisted_3 =
|
|
8
|
-
var _hoisted_4 = [
|
|
13
|
+
var _hoisted_3 = ["aria-label"];
|
|
14
|
+
var _hoisted_4 = [
|
|
15
|
+
"id",
|
|
16
|
+
"aria-selected",
|
|
17
|
+
"onMousemove",
|
|
18
|
+
"onClick"
|
|
19
|
+
];
|
|
9
20
|
var BaseSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
10
21
|
__name: "BaseSelect",
|
|
11
22
|
props: {
|
|
12
23
|
modelValue: {},
|
|
13
|
-
options: {}
|
|
24
|
+
options: {},
|
|
25
|
+
label: {}
|
|
14
26
|
},
|
|
15
27
|
emits: ["update:modelValue", "select"],
|
|
16
|
-
setup(__props, { emit: __emit }) {
|
|
28
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
17
29
|
const props = __props;
|
|
18
30
|
const emit = __emit;
|
|
19
31
|
const formattedOptions = computed(() => {
|
|
20
32
|
if (Array.isArray(props.options)) return Object.fromEntries(props.options.map((value) => [value, value]));
|
|
21
33
|
return props.options;
|
|
22
34
|
});
|
|
35
|
+
const entries = computed(() => Object.entries(formattedOptions.value));
|
|
23
36
|
const selectedLabel = computed(() => formattedOptions.value[props.modelValue]);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
37
|
+
const id = useId();
|
|
38
|
+
const listboxId = `${id}-listbox`;
|
|
39
|
+
function optionId(index) {
|
|
40
|
+
return `${id}-option-${index}`;
|
|
28
41
|
}
|
|
42
|
+
const combobox = ref();
|
|
43
|
+
const open = ref(false);
|
|
44
|
+
const activeIndex = ref(-1);
|
|
45
|
+
function openList(index) {
|
|
46
|
+
const selected = entries.value.findIndex(([value]) => value === props.modelValue);
|
|
47
|
+
activeIndex.value = index ?? Math.max(selected, 0);
|
|
48
|
+
open.value = true;
|
|
49
|
+
}
|
|
50
|
+
const typed = refAutoReset("", 500);
|
|
51
|
+
function isTypeaheadKey(event) {
|
|
52
|
+
if (event.ctrlKey || event.metaKey || event.altKey || event.key.length !== 1) return false;
|
|
53
|
+
return event.key !== " " || typed.value !== "";
|
|
54
|
+
}
|
|
55
|
+
function typeahead(char) {
|
|
56
|
+
const previous = typed.value;
|
|
57
|
+
typed.value = previous + char.toLowerCase();
|
|
58
|
+
const repeated = [...typed.value].every((c) => c === typed.value[0]);
|
|
59
|
+
const search = repeated ? typed.value.charAt(0) : typed.value;
|
|
60
|
+
const start = repeated ? activeIndex.value + 1 : Math.max(activeIndex.value, 0);
|
|
61
|
+
const count = entries.value.length;
|
|
62
|
+
for (let offset = 0; offset < count; offset++) {
|
|
63
|
+
const index = (start + offset) % count;
|
|
64
|
+
if (entries.value[index]?.[1].toLowerCase().startsWith(search)) {
|
|
65
|
+
activeIndex.value = index;
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function close() {
|
|
71
|
+
open.value = false;
|
|
72
|
+
}
|
|
73
|
+
function choose(index) {
|
|
74
|
+
const entry = entries.value[index];
|
|
75
|
+
if (entry) {
|
|
76
|
+
emit("update:modelValue", entry[0]);
|
|
77
|
+
emit("select", entry[0]);
|
|
78
|
+
}
|
|
79
|
+
close();
|
|
80
|
+
combobox.value?.focus();
|
|
81
|
+
}
|
|
82
|
+
function onKeydown(event) {
|
|
83
|
+
const last = entries.value.length - 1;
|
|
84
|
+
if (isTypeaheadKey(event)) {
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
if (!open.value) openList();
|
|
87
|
+
typeahead(event.key);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (!open.value) {
|
|
91
|
+
if ([
|
|
92
|
+
"ArrowDown",
|
|
93
|
+
"ArrowUp",
|
|
94
|
+
"Enter",
|
|
95
|
+
" ",
|
|
96
|
+
"Home",
|
|
97
|
+
"End"
|
|
98
|
+
].includes(event.key)) {
|
|
99
|
+
event.preventDefault();
|
|
100
|
+
openList(event.key === "Home" ? 0 : event.key === "End" ? last : void 0);
|
|
101
|
+
}
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
switch (event.key) {
|
|
105
|
+
case "ArrowDown":
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
activeIndex.value = Math.min(activeIndex.value + 1, last);
|
|
108
|
+
break;
|
|
109
|
+
case "ArrowUp":
|
|
110
|
+
event.preventDefault();
|
|
111
|
+
if (event.altKey) choose(activeIndex.value);
|
|
112
|
+
else activeIndex.value = Math.max(activeIndex.value - 1, 0);
|
|
113
|
+
break;
|
|
114
|
+
case "Home":
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
activeIndex.value = 0;
|
|
117
|
+
break;
|
|
118
|
+
case "End":
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
activeIndex.value = last;
|
|
121
|
+
break;
|
|
122
|
+
case "Enter":
|
|
123
|
+
case " ":
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
choose(activeIndex.value);
|
|
126
|
+
break;
|
|
127
|
+
case "Escape":
|
|
128
|
+
event.preventDefault();
|
|
129
|
+
close();
|
|
130
|
+
break;
|
|
131
|
+
case "Tab": choose(activeIndex.value);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const target = shallowRef();
|
|
135
|
+
onMounted(() => {
|
|
136
|
+
target.value = portalTarget();
|
|
137
|
+
});
|
|
138
|
+
function keepOpenOnTheTrigger(event) {
|
|
139
|
+
if (combobox.value?.contains(event.target)) event.preventDefault();
|
|
140
|
+
}
|
|
141
|
+
watch([open, activeIndex], async ([isOpen, index]) => {
|
|
142
|
+
if (!isOpen || index < 0) return;
|
|
143
|
+
await nextTick();
|
|
144
|
+
target.value?.ownerDocument.getElementById(optionId(index))?.scrollIntoView({ block: "nearest" });
|
|
145
|
+
});
|
|
146
|
+
__expose({ focus: () => combobox.value?.focus() });
|
|
29
147
|
return (_ctx, _cache) => {
|
|
30
|
-
return openBlock(), createBlock(unref(
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"auto-boundary-max-size": ""
|
|
148
|
+
return openBlock(), createBlock(unref(PopoverRoot), {
|
|
149
|
+
open: open.value,
|
|
150
|
+
"onUpdate:open": _cache[4] || (_cache[4] = ($event) => open.value = $event)
|
|
34
151
|
}, {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
152
|
+
default: withCtx(() => [createVNode(unref(PopoverAnchor), {
|
|
153
|
+
"as-child": "",
|
|
154
|
+
class: "poveste-base-select"
|
|
155
|
+
}, {
|
|
156
|
+
default: withCtx(() => [createElementVNode("div", {
|
|
157
|
+
ref_key: "combobox",
|
|
158
|
+
ref: combobox,
|
|
159
|
+
role: "combobox",
|
|
160
|
+
tabindex: "0",
|
|
161
|
+
"aria-label": __props.label,
|
|
162
|
+
"aria-haspopup": "listbox",
|
|
163
|
+
"aria-expanded": open.value,
|
|
164
|
+
"aria-controls": open.value ? listboxId : void 0,
|
|
165
|
+
"aria-activedescendant": open.value && activeIndex.value >= 0 ? optionId(activeIndex.value) : void 0,
|
|
166
|
+
class: "cursor-pointer w-full outline-none focus-visible:border-primary-500 px-2 h-[27px] -my-1 border border-solid border-black/25 dark:border-white/25 hover:border-primary-500 dark:hover:border-primary-500 rounded-sm flex gap-2 items-center leading-normal",
|
|
167
|
+
onClick: _cache[0] || (_cache[0] = ($event) => open.value ? close() : openList()),
|
|
168
|
+
onKeydown
|
|
169
|
+
}, [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", { label: selectedLabel.value }, () => [createTextVNode(toDisplayString(selectedLabel.value), 1)])]), createVNode(unref(Icon), {
|
|
170
|
+
icon: "carbon:chevron-sort",
|
|
171
|
+
class: "w-4 h-4 flex-none ml-auto"
|
|
172
|
+
})], 40, _hoisted_1)]),
|
|
173
|
+
_: 3
|
|
174
|
+
}), target.value ? (openBlock(), createBlock(unref(PopoverPortal), {
|
|
175
|
+
key: 0,
|
|
176
|
+
to: target.value
|
|
177
|
+
}, {
|
|
178
|
+
default: withCtx(() => [createVNode(unref(PopoverContent), {
|
|
179
|
+
class: "poveste-base-select-popper",
|
|
180
|
+
align: "start",
|
|
181
|
+
"side-offset": 6,
|
|
182
|
+
"collision-padding": 8,
|
|
183
|
+
onOpenAutoFocus: _cache[2] || (_cache[2] = withModifiers(() => {}, ["prevent"])),
|
|
184
|
+
onCloseAutoFocus: _cache[3] || (_cache[3] = withModifiers(() => {}, ["prevent"])),
|
|
185
|
+
onInteractOutside: keepOpenOnTheTrigger
|
|
40
186
|
}, {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
value
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
187
|
+
default: withCtx(() => [createElementVNode("div", {
|
|
188
|
+
id: listboxId,
|
|
189
|
+
role: "listbox",
|
|
190
|
+
"aria-label": __props.label,
|
|
191
|
+
class: "poveste-base-select-options flex flex-col bg-gray-50 dark:bg-gray-700 text-gray-900 dark:text-gray-100"
|
|
192
|
+
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(entries.value, ([value, optionLabel], index) => {
|
|
193
|
+
return openBlock(), createElementBlock("div", {
|
|
194
|
+
id: optionId(index),
|
|
195
|
+
key: value,
|
|
196
|
+
role: "option",
|
|
197
|
+
"aria-selected": value === __props.modelValue,
|
|
198
|
+
class: normalizeClass(["px-2 py-1 cursor-pointer hover:bg-primary-100 dark:hover:bg-primary-700", {
|
|
199
|
+
"bg-primary-200 dark:bg-primary-800": value === __props.modelValue,
|
|
200
|
+
"outline outline-2 -outline-offset-2 outline-primary-500": index === activeIndex.value
|
|
201
|
+
}]),
|
|
202
|
+
onMousedown: _cache[1] || (_cache[1] = withModifiers(() => {}, ["prevent"])),
|
|
203
|
+
onMousemove: ($event) => activeIndex.value = index,
|
|
204
|
+
onClick: ($event) => choose(index)
|
|
205
|
+
}, [renderSlot(_ctx.$slots, "option", {
|
|
206
|
+
label: optionLabel,
|
|
207
|
+
value
|
|
208
|
+
}, () => [createTextVNode(toDisplayString(optionLabel), 1)])], 42, _hoisted_4);
|
|
209
|
+
}), 128))], 8, _hoisted_3)]),
|
|
210
|
+
_: 3
|
|
211
|
+
})]),
|
|
212
|
+
_: 3
|
|
213
|
+
}, 8, ["to"])) : createCommentVNode("", true)]),
|
|
53
214
|
_: 3
|
|
54
|
-
});
|
|
215
|
+
}, 8, ["open"]);
|
|
55
216
|
};
|
|
56
217
|
}
|
|
57
218
|
});
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
|
|
|
2
2
|
import BaseSplitPane_vue_vue_type_script_setup_true_lang_default from "./BaseSplitPane.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/app/components/base/BaseSplitPane.vue
|
|
5
|
-
var BaseSplitPane_default = /*#__PURE__*/ _plugin_vue_export_helper_default(BaseSplitPane_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var BaseSplitPane_default = /*#__PURE__*/ _plugin_vue_export_helper_default(BaseSplitPane_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-c01bd041"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { BaseSplitPane_default as default };
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import { computed, createCommentVNode, createElementBlock, defineComponent, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderSlot, watch, withModifiers } from "@poveste/vendors/vue";
|
|
1
|
+
import { computed, createCommentVNode, createElementBlock, defineComponent, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderSlot, unref, useId, watch, withModifiers } from "@poveste/vendors/vue";
|
|
2
2
|
//#region src/app/components/base/BaseSplitPane.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var _hoisted_1 = ["id"];
|
|
4
|
+
var _hoisted_2 = [
|
|
5
|
+
"aria-label",
|
|
6
|
+
"aria-orientation",
|
|
7
|
+
"aria-controls",
|
|
8
|
+
"aria-valuenow",
|
|
9
|
+
"aria-valuemin",
|
|
10
|
+
"aria-valuemax"
|
|
11
|
+
];
|
|
3
12
|
var SAVE_PREFIX = "__poveste";
|
|
13
|
+
var STEP = 1;
|
|
14
|
+
var PAGE_STEP = 10;
|
|
4
15
|
var BaseSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
16
|
__name: "BaseSplitPane",
|
|
6
17
|
props: {
|
|
@@ -47,6 +58,16 @@ var BaseSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
47
58
|
default: true
|
|
48
59
|
},
|
|
49
60
|
/**
|
|
61
|
+
* What the divider is called to a screen reader.
|
|
62
|
+
*
|
|
63
|
+
* Four are on screen at once and they resize different things, so a shared
|
|
64
|
+
* default would announce four identical separators.
|
|
65
|
+
*/
|
|
66
|
+
label: {
|
|
67
|
+
type: String,
|
|
68
|
+
default: "Resize panels"
|
|
69
|
+
},
|
|
70
|
+
/**
|
|
50
71
|
* Whether the first pane exists at all.
|
|
51
72
|
*
|
|
52
73
|
* Dropping it here rather than at the call site keeps the other slot at one
|
|
@@ -149,6 +170,36 @@ var BaseSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
149
170
|
watch(hasBothPanes, (both) => {
|
|
150
171
|
if (!both && dragging.value) dragEnd();
|
|
151
172
|
});
|
|
173
|
+
function moveBy(amount) {
|
|
174
|
+
currentSplit.value = Math.min(props.max, Math.max(props.min, boundSplit.value + amount));
|
|
175
|
+
}
|
|
176
|
+
function onKeydown(event) {
|
|
177
|
+
const back = props.orientation === "landscape" ? "ArrowLeft" : "ArrowUp";
|
|
178
|
+
const forward = props.orientation === "landscape" ? "ArrowRight" : "ArrowDown";
|
|
179
|
+
switch (event.key) {
|
|
180
|
+
case back:
|
|
181
|
+
moveBy(-STEP);
|
|
182
|
+
break;
|
|
183
|
+
case forward:
|
|
184
|
+
moveBy(STEP);
|
|
185
|
+
break;
|
|
186
|
+
case "PageUp":
|
|
187
|
+
moveBy(-PAGE_STEP);
|
|
188
|
+
break;
|
|
189
|
+
case "PageDown":
|
|
190
|
+
moveBy(PAGE_STEP);
|
|
191
|
+
break;
|
|
192
|
+
case "Home":
|
|
193
|
+
currentSplit.value = props.min;
|
|
194
|
+
break;
|
|
195
|
+
case "End":
|
|
196
|
+
currentSplit.value = props.max;
|
|
197
|
+
break;
|
|
198
|
+
default: return;
|
|
199
|
+
}
|
|
200
|
+
event.preventDefault();
|
|
201
|
+
}
|
|
202
|
+
const firstPaneId = useId();
|
|
152
203
|
function removeDragListeners() {
|
|
153
204
|
window.removeEventListener("mousemove", dragMove);
|
|
154
205
|
window.removeEventListener("mouseup", dragEnd);
|
|
@@ -168,6 +219,7 @@ var BaseSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
168
219
|
}])
|
|
169
220
|
}, [__props.showFirst ? (openBlock(), createElementBlock("div", {
|
|
170
221
|
key: 0,
|
|
222
|
+
id: unref(firstPaneId),
|
|
171
223
|
class: normalizeClass(["relative top-0 left-0 z-20", {
|
|
172
224
|
"pointer-events-none": dragging.value,
|
|
173
225
|
"border-r border-gray-300/30 dark:border-gray-800": __props.orientation === "landscape" && __props.showDivider && hasBothPanes.value,
|
|
@@ -176,14 +228,23 @@ var BaseSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
176
228
|
style: normalizeStyle(leftStyle.value)
|
|
177
229
|
}, [renderSlot(_ctx.$slots, "first", {}, void 0, true), hasBothPanes.value ? (openBlock(), createElementBlock("div", {
|
|
178
230
|
key: 0,
|
|
179
|
-
|
|
231
|
+
role: "separator",
|
|
232
|
+
tabindex: "0",
|
|
233
|
+
"aria-label": __props.label,
|
|
234
|
+
"aria-orientation": __props.orientation === "landscape" ? "vertical" : "horizontal",
|
|
235
|
+
"aria-controls": unref(firstPaneId),
|
|
236
|
+
"aria-valuenow": Math.round(boundSplit.value),
|
|
237
|
+
"aria-valuemin": __props.min,
|
|
238
|
+
"aria-valuemax": __props.max,
|
|
239
|
+
class: normalizeClass(["dragger absolute z-100 hover:bg-primary-500/50 focus-visible:bg-primary-500/50 focus-visible:outline-2 focus-visible:outline-primary-500 transition-colors duration-150 delay-150", {
|
|
180
240
|
"top-0 bottom-0 cursor-ew-resize": __props.orientation === "landscape",
|
|
181
241
|
"left-0 right-0 cursor-ns-resize": __props.orientation === "portrait",
|
|
182
242
|
[`dragger-offset-${__props.draggerOffset}`]: true,
|
|
183
243
|
"bg-primary-500/25": dragging.value
|
|
184
244
|
}]),
|
|
185
|
-
onMousedown: withModifiers(dragStart, ["prevent"])
|
|
186
|
-
|
|
245
|
+
onMousedown: withModifiers(dragStart, ["prevent"]),
|
|
246
|
+
onKeydown
|
|
247
|
+
}, null, 42, _hoisted_2)) : createCommentVNode("", true)], 14, _hoisted_1)) : createCommentVNode("", true), __props.showLast ? (openBlock(), createElementBlock("div", {
|
|
187
248
|
key: 1,
|
|
188
249
|
class: normalizeClass(["relative bottom-0 right-0", {
|
|
189
250
|
"pointer-events-none": dragging.value,
|
|
@@ -60,7 +60,7 @@ var PromptSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
60
60
|
});
|
|
61
61
|
const { selectedIndex, selectNext, selectPrevious } = useSelection(formattedOptions);
|
|
62
62
|
function selectIndex(index) {
|
|
63
|
-
const result = formattedOptions.value[index]
|
|
63
|
+
const result = formattedOptions.value[index]?.value;
|
|
64
64
|
if (result) model.value = result;
|
|
65
65
|
}
|
|
66
66
|
return (_ctx, _cache) => {
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { computed, createBlock, createCommentVNode, createVNode, defineComponent, normalizeClass, openBlock,
|
|
1
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, resolveDynamicComponent, unref, withCtx } from "@poveste/vendors/vue";
|
|
2
2
|
import { Icon } from "@poveste/vendors/iconify";
|
|
3
|
-
import { HstCheckbox, HstJson, HstNumber, HstText } from "@poveste/controls";
|
|
3
|
+
import { HstCheckbox, HstJson, HstNumber, HstText, HstTooltip } from "@poveste/controls";
|
|
4
4
|
//#region src/app/components/panel/ControlsComponentPropItem.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var _hoisted_1 = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "flex items-end hover:bg-primary-100 dark:hover:bg-primary-800"
|
|
8
|
+
};
|
|
9
|
+
var _hoisted_2 = ["aria-label", "disabled"];
|
|
5
10
|
var ControlsComponentPropItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
11
|
__name: "ControlsComponentPropItem",
|
|
7
12
|
props: {
|
|
@@ -33,26 +38,29 @@ var ControlsComponentPropItem_vue_vue_type_script_setup_true_lang_default = /*@_
|
|
|
33
38
|
}
|
|
34
39
|
const canReset = computed(() => props.variant.state?._hPropState?.[props.component.index] && props.definition.name in props.variant.state._hPropState[props.component.index]);
|
|
35
40
|
return (_ctx, _cache) => {
|
|
36
|
-
|
|
37
|
-
return comp.value ? (openBlock(), createBlock(resolveDynamicComponent(comp.value), {
|
|
38
|
-
key: 0,
|
|
41
|
+
return comp.value ? (openBlock(), createElementBlock("div", _hoisted_1, [(openBlock(), createBlock(resolveDynamicComponent(comp.value), {
|
|
39
42
|
modelValue: model.value,
|
|
40
|
-
"onUpdate:modelValue": _cache[
|
|
43
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
|
|
41
44
|
placeholder: model.value === void 0 ? __props.definition?.default : null,
|
|
42
|
-
class: "poveste-controls-component-prop-item",
|
|
45
|
+
class: "poveste-controls-component-prop-item grow min-w-0",
|
|
43
46
|
title: `${__props.definition.name}${canReset.value ? " *" : ""}`
|
|
44
|
-
},
|
|
45
|
-
actions: withCtx(() => [withDirectives(createVNode(unref(Icon), {
|
|
46
|
-
icon: "carbon:erase",
|
|
47
|
-
class: normalizeClass(["cursor-pointer w-4 h-4 hover:text-primary-500 dark:hover:text-primary-400 text-gray-900 dark:text-gray-100", [canReset.value ? "opacity-50 hover:opacity-100" : "opacity-25 pointer-events-none"]]),
|
|
48
|
-
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => reset(), ["stop"]))
|
|
49
|
-
}, null, 8, ["class"]), [[_directive_tooltip, "Remove override"]])]),
|
|
50
|
-
_: 1
|
|
51
|
-
}, 8, [
|
|
47
|
+
}, null, 8, [
|
|
52
48
|
"modelValue",
|
|
53
49
|
"placeholder",
|
|
54
50
|
"title"
|
|
55
|
-
])) :
|
|
51
|
+
])), createVNode(unref(HstTooltip), { content: "Remove override" }, {
|
|
52
|
+
default: withCtx(() => [createElementVNode("button", {
|
|
53
|
+
type: "button",
|
|
54
|
+
"aria-label": `Remove override of ${__props.definition.name}`,
|
|
55
|
+
disabled: !canReset.value,
|
|
56
|
+
class: normalizeClass(["flex-none flex mr-2 mb-[10px] p-0 bg-transparent border-0 cursor-pointer text-gray-900 dark:text-gray-100 hover:text-primary-500 dark:hover:text-primary-400", [canReset.value ? "opacity-50 hover:opacity-100 focus-visible:opacity-100" : "opacity-25 pointer-events-none"]]),
|
|
57
|
+
onClick: _cache[1] || (_cache[1] = ($event) => reset())
|
|
58
|
+
}, [createVNode(unref(Icon), {
|
|
59
|
+
icon: "carbon:erase",
|
|
60
|
+
class: "w-4 h-4"
|
|
61
|
+
})], 10, _hoisted_2)]),
|
|
62
|
+
_: 1
|
|
63
|
+
})])) : createCommentVNode("", true);
|
|
56
64
|
};
|
|
57
65
|
}
|
|
58
66
|
});
|
package/dist/bundled/components/panel/ControlsComponentProps.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ControlsComponentPropItem_default from "./ControlsComponentPropItem.js";
|
|
2
|
-
import { Fragment, createBlock, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, renderList,
|
|
2
|
+
import { Fragment, createBlock, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, renderList, toDisplayString, unref, withCtx } from "@poveste/vendors/vue";
|
|
3
3
|
import { Icon } from "@poveste/vendors/iconify";
|
|
4
|
+
import { HstTooltip } from "@poveste/controls";
|
|
4
5
|
//#region src/app/components/panel/ControlsComponentProps.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = { class: "poveste-controls-component-props" };
|
|
6
7
|
var _hoisted_2 = { class: "font-mono p-2 flex items-center gap-1" };
|
|
@@ -12,11 +13,13 @@ var ControlsComponentProps_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
12
13
|
},
|
|
13
14
|
setup(__props) {
|
|
14
15
|
return (_ctx, _cache) => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [createVNode(unref(HstTooltip), { content: "Auto-detected props" }, {
|
|
17
|
+
default: withCtx(() => [createVNode(unref(Icon), {
|
|
18
|
+
icon: "carbon:flash",
|
|
19
|
+
class: "w-4 h-4 text-primary-500 flex-none"
|
|
20
|
+
})]),
|
|
21
|
+
_: 1
|
|
22
|
+
}), createElementVNode("div", null, [
|
|
20
23
|
_cache[0] || (_cache[0] = createElementVNode("span", { class: "opacity-30" }, "<", -1)),
|
|
21
24
|
createTextVNode(toDisplayString(__props.definition.name), 1),
|
|
22
25
|
_cache[1] || (_cache[1] = createElementVNode("span", { class: "opacity-30" }, ">", -1))
|
package/dist/bundled/components/panel/ControlsComponentState.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ControlsComponentStateItem_default from "./ControlsComponentStateItem.js";
|
|
2
|
-
import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, renderList,
|
|
2
|
+
import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, renderList, unref, withCtx } from "@poveste/vendors/vue";
|
|
3
3
|
import { Icon } from "@poveste/vendors/iconify";
|
|
4
|
+
import { HstTooltip } from "@poveste/controls";
|
|
4
5
|
//#region src/app/components/panel/ControlsComponentState.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = { class: "poveste-controls-component-init-state" };
|
|
6
7
|
var _hoisted_2 = { class: "p-2 flex items-center gap-1" };
|
|
@@ -11,11 +12,13 @@ var ControlsComponentState_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
11
12
|
const props = __props;
|
|
12
13
|
const stateKeys = computed(() => Object.keys(props.variant.state || {}).filter((key) => !key.startsWith("_h")));
|
|
13
14
|
return (_ctx, _cache) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [createVNode(unref(HstTooltip), { content: "Auto-detected state" }, {
|
|
16
|
+
default: withCtx(() => [createVNode(unref(Icon), {
|
|
17
|
+
icon: "carbon:data-vis-1",
|
|
18
|
+
class: "w-4 h-4 text-primary-500 flex-none"
|
|
19
|
+
})]),
|
|
20
|
+
_: 1
|
|
21
|
+
}), _cache[0] || (_cache[0] = createElementVNode("div", null, " State ", -1))]), (openBlock(true), createElementBlock(Fragment, null, renderList(stateKeys.value, (key) => {
|
|
19
22
|
return openBlock(), createBlock(ControlsComponentStateItem_default, {
|
|
20
23
|
key,
|
|
21
24
|
item: key,
|
|
@@ -29,7 +29,7 @@ var PaneTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
29
29
|
tab: ""
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
|
-
matched: !_ctx.$route.query
|
|
32
|
+
matched: !_ctx.$route.query["tab"]
|
|
33
33
|
}, {
|
|
34
34
|
default: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode(" Controls ", -1)])]),
|
|
35
35
|
_: 1
|
|
@@ -42,7 +42,7 @@ var PaneTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
42
42
|
tab: "docs"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
-
matched: _ctx.$route.query
|
|
45
|
+
matched: _ctx.$route.query["tab"] === "docs",
|
|
46
46
|
class: normalizeClass({ "opacity-70": !unref(renderedDoc) })
|
|
47
47
|
}, {
|
|
48
48
|
default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode(" Docs ", -1)])]),
|
|
@@ -60,7 +60,7 @@ var PaneTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
60
60
|
tab: "events"
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
|
-
matched: _ctx.$route.query
|
|
63
|
+
matched: _ctx.$route.query["tab"] === "events",
|
|
64
64
|
class: normalizeClass({ "opacity-70": !hasEvents.value })
|
|
65
65
|
}, {
|
|
66
66
|
default: withCtx(() => [_cache[5] || (_cache[5] = createTextVNode(" Events ", -1)), unref(eventsStore).unseen ? (openBlock(), createBlock(BaseTag_default, { key: 0 }, {
|
|
@@ -83,7 +83,7 @@ var PaneTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
83
83
|
tab: ""
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
|
-
matched: !_ctx.$route.query
|
|
86
|
+
matched: !_ctx.$route.query["tab"]
|
|
87
87
|
}, {
|
|
88
88
|
default: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Controls ", -1)])]),
|
|
89
89
|
_: 1
|
|
@@ -96,7 +96,7 @@ var PaneTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
96
96
|
tab: "docs"
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
|
-
matched: _ctx.$route.query
|
|
99
|
+
matched: _ctx.$route.query["tab"] === "docs",
|
|
100
100
|
class: normalizeClass({ "opacity-70": !unref(renderedDoc) })
|
|
101
101
|
}, {
|
|
102
102
|
default: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode(" Docs ", -1)])]),
|
|
@@ -114,7 +114,7 @@ var PaneTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
114
114
|
tab: "events"
|
|
115
115
|
}
|
|
116
116
|
},
|
|
117
|
-
matched: _ctx.$route.query
|
|
117
|
+
matched: _ctx.$route.query["tab"] === "events",
|
|
118
118
|
class: normalizeClass({ "opacity-70": !hasEvents.value })
|
|
119
119
|
}, {
|
|
120
120
|
default: withCtx(() => [_cache[2] || (_cache[2] = createTextVNode(" Events ", -1)), unref(eventsStore).unseen ? (openBlock(), createBlock(BaseTag_default, { key: 0 }, {
|