@poveste/app 0.5.3 → 0.6.1
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/font.css +78 -0
- package/dist/app/style/main.pcss +4 -1
- package/dist/app/style/sandbox.css +3 -0
- package/dist/bundle-main-dev.js +1 -0
- package/dist/bundle-main.js +3 -0
- package/dist/bundled/app.css +28 -20
- package/dist/bundled/components/app/AppActions.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/bundled/components/base/BaseSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/layout/LayoutModal.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/bundled/components/layout/LayoutPane.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/bundled/components/panel/StatePresets.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/bundled/components/panel/StoryControls.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/panel/StoryDocs.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/panel/StoryEvent.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/panel/StorySidePanel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/panel/StorySourceCode.js +1 -1
- package/dist/bundled/components/panel/StorySourceCode.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/bundled/components/search/SearchItem.js +1 -1
- package/dist/bundled/components/search/SearchItem.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/bundled/components/search/SearchModal.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/search/SearchPane.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/bundled/components/story/StoryResponsivePreview.js +1 -1
- package/dist/bundled/components/story/StoryResponsivePreview.vue_vue_type_script_setup_true_lang.js +69 -64
- package/dist/bundled/components/story/StoryVariantGrid.js +3 -1
- package/dist/bundled/components/story/StoryVariantGrid.vue_vue_type_script_setup_true_lang.js +82 -35
- package/dist/bundled/components/story/StoryVariantGridItem.js +1 -1
- package/dist/bundled/components/story/StoryVariantGridItem.vue_vue_type_script_setup_true_lang.js +20 -12
- package/dist/bundled/components/story/StoryVariantListItem.js +1 -1
- package/dist/bundled/components/story/StoryVariantListItem.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/bundled/components/story/StoryVariantSinglePreviewNative.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/story/StoryVariantSinglePreviewRemote.vue_vue_type_script_setup_true_lang.js +97 -32
- package/dist/bundled/components/story/StoryVariantSingleView.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/toolbar/ToolbarBackground.js +1 -1
- package/dist/bundled/components/toolbar/ToolbarBackground.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/bundled/components/tree/StoryGroup.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/bundled/components/tree/StoryListFolder.js +1 -1
- package/dist/bundled/components/tree/StoryListFolder.vue_vue_type_script_setup_true_lang.js +2 -2
- 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 +3 -0
- package/dist/bundled/sandbox.js +53 -24
- package/dist/bundled/util/const.js +2 -1
- package/dist/bundled/util/grid-cell-height.js +18 -0
- package/dist/bundled/util/grid-slots.js +64 -0
- package/dist/bundled/util/icons.generated.js +104 -0
- package/dist/bundled/util/state-bridge.js +75 -0
- package/dist/bundled/util/state.js +19 -1
- package/dist/style.css +7 -2
- package/package.json +12 -5
- package/src/__tests__/font.spec.ts +30 -0
- package/src/__tests__/grid-slots.spec.ts +84 -0
- package/src/__tests__/icons.spec.ts +26 -0
- package/src/__tests__/state-bridge.spec.ts +155 -0
- package/src/__tests__/state-clone.spec.ts +66 -0
- package/src/app/components/app/AppActions.vue +2 -2
- package/src/app/components/layout/LayoutModal.vue +2 -2
- package/src/app/components/layout/LayoutPane.vue +4 -4
- package/src/app/components/panel/StatePresets.vue +5 -5
- package/src/app/components/panel/StoryControls.vue +1 -1
- package/src/app/components/panel/StoryDocs.vue +1 -1
- package/src/app/components/panel/StoryEvent.vue +1 -1
- package/src/app/components/panel/StorySidePanel.vue +1 -1
- package/src/app/components/panel/StorySourceCode.vue +2 -2
- package/src/app/components/search/SearchItem.vue +1 -1
- package/src/app/components/search/SearchModal.vue +1 -1
- package/src/app/components/search/SearchPane.vue +8 -0
- package/src/app/components/story/StoryResponsivePreview.vue +85 -50
- package/src/app/components/story/StoryVariantGrid.vue +126 -49
- package/src/app/components/story/StoryVariantGridItem.vue +35 -10
- package/src/app/components/story/StoryVariantListItem.vue +1 -1
- package/src/app/components/story/StoryVariantSinglePreviewNative.vue +1 -1
- package/src/app/components/story/StoryVariantSinglePreviewRemote.vue +165 -35
- package/src/app/components/story/StoryVariantSingleView.vue +1 -1
- package/src/app/components/toolbar/ToolbarBackground.vue +4 -4
- package/src/app/components/tree/StoryGroup.vue +1 -1
- package/src/app/components/tree/StoryListFolder.vue +1 -1
- package/src/app/components/tree/StoryListItem.vue +1 -1
- package/src/app/index.ts +10 -0
- package/src/app/sandbox.ts +95 -31
- package/src/app/style/font.css +78 -0
- package/src/app/style/main.pcss +4 -1
- package/src/app/style/sandbox.css +3 -0
- package/src/app/util/const.ts +1 -0
- package/src/app/util/grid-cell-height.ts +16 -0
- package/src/app/util/grid-slots.ts +72 -0
- package/src/app/util/icons.generated.ts +9 -0
- package/src/app/util/state-bridge.ts +95 -0
- package/src/app/util/state.ts +19 -0
- package/src/bundle-main-dev.js +1 -0
- package/src/bundle-main.js +3 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Upstream's sheet with the woff fallback dropped — every browser the app
|
|
3
|
+
* runs in takes the woff2, so shipping both put ~160K of never-fetched files
|
|
4
|
+
* in each book. Copied rather than imported because the package pairs the two
|
|
5
|
+
* formats in every `src`; `font.spec.ts` fails if a bump moves the subsets.
|
|
6
|
+
*
|
|
7
|
+
* Regenerate: node packages/poveste-app/scripts/font.mjs
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* noto-sans-display-cyrillic-ext-400-normal */
|
|
11
|
+
@font-face {
|
|
12
|
+
font-family: 'Noto Sans Display';
|
|
13
|
+
font-style: normal;
|
|
14
|
+
font-display: swap;
|
|
15
|
+
font-weight: 400;
|
|
16
|
+
src: url('@fontsource/noto-sans-display/files/noto-sans-display-cyrillic-ext-400-normal.woff2') format('woff2');
|
|
17
|
+
unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* noto-sans-display-cyrillic-400-normal */
|
|
21
|
+
@font-face {
|
|
22
|
+
font-family: 'Noto Sans Display';
|
|
23
|
+
font-style: normal;
|
|
24
|
+
font-display: swap;
|
|
25
|
+
font-weight: 400;
|
|
26
|
+
src: url('@fontsource/noto-sans-display/files/noto-sans-display-cyrillic-400-normal.woff2') format('woff2');
|
|
27
|
+
unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* noto-sans-display-greek-ext-400-normal */
|
|
31
|
+
@font-face {
|
|
32
|
+
font-family: 'Noto Sans Display';
|
|
33
|
+
font-style: normal;
|
|
34
|
+
font-display: swap;
|
|
35
|
+
font-weight: 400;
|
|
36
|
+
src: url('@fontsource/noto-sans-display/files/noto-sans-display-greek-ext-400-normal.woff2') format('woff2');
|
|
37
|
+
unicode-range: U+1F00-1FFF;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* noto-sans-display-greek-400-normal */
|
|
41
|
+
@font-face {
|
|
42
|
+
font-family: 'Noto Sans Display';
|
|
43
|
+
font-style: normal;
|
|
44
|
+
font-display: swap;
|
|
45
|
+
font-weight: 400;
|
|
46
|
+
src: url('@fontsource/noto-sans-display/files/noto-sans-display-greek-400-normal.woff2') format('woff2');
|
|
47
|
+
unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* noto-sans-display-vietnamese-400-normal */
|
|
51
|
+
@font-face {
|
|
52
|
+
font-family: 'Noto Sans Display';
|
|
53
|
+
font-style: normal;
|
|
54
|
+
font-display: swap;
|
|
55
|
+
font-weight: 400;
|
|
56
|
+
src: url('@fontsource/noto-sans-display/files/noto-sans-display-vietnamese-400-normal.woff2') format('woff2');
|
|
57
|
+
unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* noto-sans-display-latin-ext-400-normal */
|
|
61
|
+
@font-face {
|
|
62
|
+
font-family: 'Noto Sans Display';
|
|
63
|
+
font-style: normal;
|
|
64
|
+
font-display: swap;
|
|
65
|
+
font-weight: 400;
|
|
66
|
+
src: url('@fontsource/noto-sans-display/files/noto-sans-display-latin-ext-400-normal.woff2') format('woff2');
|
|
67
|
+
unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* noto-sans-display-latin-400-normal */
|
|
71
|
+
@font-face {
|
|
72
|
+
font-family: 'Noto Sans Display';
|
|
73
|
+
font-style: normal;
|
|
74
|
+
font-display: swap;
|
|
75
|
+
font-weight: 400;
|
|
76
|
+
src: url('@fontsource/noto-sans-display/files/noto-sans-display-latin-400-normal.woff2') format('woff2');
|
|
77
|
+
unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
|
|
78
|
+
}
|
package/dist/app/style/main.pcss
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/* The app face (Noto Sans Display) is imported by the bundle entries, not here:
|
|
2
|
+
this file is compiled by the postcss CLI into dist/style.css, which rebases
|
|
3
|
+
font URLs relative to the *source* and ships a path into node_modules. Vite
|
|
4
|
+
processes the entries and hashes the files into the book (#219). */
|
|
2
5
|
@import 'floating-vue/dist/style.css';
|
|
3
6
|
@import '@poveste/controls/dist/index.es.css';
|
|
4
7
|
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
@import '@poveste/controls/dist/index.es.css';
|
|
2
|
+
/* Same self-hosted face as the app chrome (#219), so `html { font-family }`
|
|
3
|
+
below resolves the same way in a realm that has no app stylesheet. */
|
|
4
|
+
@import './font.css';
|
|
2
5
|
|
|
3
6
|
/* Lets the toolbar's preview background show through. Not `!important`: this
|
|
4
7
|
file is wrapped in `@layer poveste-defaults` so consumer rules outrank it,
|
package/dist/bundle-main-dev.js
CHANGED
package/dist/bundle-main.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/* eslint-disable perfectionist/sort-imports -- global styles must load before app bundle */
|
|
2
2
|
import 'virtual:$poveste-global-styles'
|
|
3
3
|
import { mountMainApp } from './bundled/index.js'
|
|
4
|
+
// Self-hosted app face, here rather than in main.pcss so Vite hashes the font
|
|
5
|
+
// files into the book instead of postcss shipping a node_modules path (#219).
|
|
6
|
+
import './app/style/font.css'
|
|
4
7
|
import './style.css'
|
|
5
8
|
import './bundled/app.css'
|
|
6
9
|
|
package/dist/bundled/app.css
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
2
|
-
.bind-tree-margin[data-v-
|
|
3
|
-
margin-left: var(--
|
|
2
|
+
.bind-tree-margin[data-v-0fa5d0aa] {
|
|
3
|
+
margin-left: var(--v00f90f2e);
|
|
4
4
|
}
|
|
5
|
-
.bind-icon-color[data-v-
|
|
6
|
-
color: var(--
|
|
5
|
+
.bind-icon-color[data-v-0fa5d0aa] {
|
|
6
|
+
color: var(--fbc82fb6);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
10
|
-
.bind-tree-padding[data-v-
|
|
11
|
-
padding-left: var(--
|
|
10
|
+
.bind-tree-padding[data-v-11f8c91e] {
|
|
11
|
+
padding-left: var(--v047dbc51);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
20
|
-
.bind-preview-bg[data-v-
|
|
21
|
-
background-color: var(--
|
|
22
|
-
color: var(--
|
|
20
|
+
.bind-preview-bg[data-v-ed785ad4] {
|
|
21
|
+
background-color: var(--ca113a48);
|
|
22
|
+
color: var(--v0083f4ef);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
96
|
-
.__poveste-code-placeholder[data-v-
|
|
96
|
+
.__poveste-code-placeholder[data-v-61bf773e] {
|
|
97
97
|
color: inherit;
|
|
98
98
|
font-size: inherit;
|
|
99
99
|
}
|
|
@@ -108,21 +108,29 @@
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
111
|
-
.bind-preview-bg[data-v-
|
|
112
|
-
background-color: var(--
|
|
111
|
+
.bind-preview-bg[data-v-fa6bb28c] {
|
|
112
|
+
background-color: var(--v6d3c2da2);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
116
|
-
.bind-icon-color[data-v-
|
|
117
|
-
color: var(--
|
|
116
|
+
.bind-icon-color[data-v-a394f172] {
|
|
117
|
+
color: var(--v68878cb8);
|
|
118
118
|
}
|
|
119
|
-
.bind-preview-bg[data-v-
|
|
120
|
-
background-color: var(--
|
|
119
|
+
.bind-preview-bg[data-v-a394f172] {
|
|
120
|
+
background-color: var(--v5a063a9a);
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
/* Cells are placed with `order`, so without this Tab and a screen reader walk
|
|
125
|
+
them in slot order — the order they were recycled in, not the screen's.
|
|
126
|
+
Chromium only for now; elsewhere the rule is ignored. */
|
|
127
|
+
.poveste-story-variant-grid-cells[data-v-15980005] {
|
|
128
|
+
reading-flow: grid-order;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
132
|
+
.bind-icon-color[data-v-e5d28031] {
|
|
133
|
+
color: var(--v97886b12);
|
|
126
134
|
}
|
|
127
135
|
}
|
|
128
136
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
@@ -141,8 +149,8 @@ img.colorize-black[data-v-f632abed] {
|
|
|
141
149
|
}
|
|
142
150
|
}
|
|
143
151
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
144
|
-
.bind-icon-color[data-v-
|
|
145
|
-
color: var(--
|
|
152
|
+
.bind-icon-color[data-v-f8cfc1bd] {
|
|
153
|
+
color: var(--v1c6fbe98);
|
|
146
154
|
}
|
|
147
155
|
}
|
|
148
156
|
/*$vite$:1*/
|
|
@@ -24,7 +24,7 @@ var AppActions_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
24
24
|
!unref(isMobile) ? withDirectives((openBlock(), createBlock(TopBarChipItem_default, {
|
|
25
25
|
key: 0,
|
|
26
26
|
"aria-label": "Open layout customization",
|
|
27
|
-
"data-
|
|
27
|
+
"data-testid": "layout-btn",
|
|
28
28
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("layout"))
|
|
29
29
|
}, {
|
|
30
30
|
default: withCtx(() => [createVNode(unref(Icon), {
|
|
@@ -34,7 +34,7 @@ var AppActions_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
34
34
|
_: 1
|
|
35
35
|
})), [[_directive_tooltip, unref(makeTooltip)("Layout", ({ isMac }) => isMac ? "meta+shift+l" : "ctrl+shift+l")]]) : createCommentVNode("", true),
|
|
36
36
|
withDirectives((openBlock(), createBlock(TopBarChipItem_default, {
|
|
37
|
-
"data-
|
|
37
|
+
"data-testid": "search-btn",
|
|
38
38
|
onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("search"))
|
|
39
39
|
}, {
|
|
40
40
|
default: withCtx(() => [createVNode(unref(Icon), {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeProps, openBlock, renderList, renderSlot, toDisplayString, unref, withCtx } from "@poveste/vendors/vue";
|
|
2
|
-
import { Dropdown } from "@poveste/vendors/floating-vue";
|
|
3
2
|
import { Icon } from "@poveste/vendors/iconify";
|
|
3
|
+
import { Dropdown } from "@poveste/vendors/floating-vue";
|
|
4
4
|
//#region src/app/components/base/BaseSelect.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = { class: "cursor-pointer w-full outline-none 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" };
|
|
6
6
|
var _hoisted_2 = { class: "flex-1 truncate" };
|
|
@@ -5,7 +5,7 @@ import { Icon } from "@poveste/vendors/iconify";
|
|
|
5
5
|
//#region src/app/components/layout/LayoutModal.vue?vue&type=script&setup=true&lang.ts
|
|
6
6
|
var _hoisted_1 = {
|
|
7
7
|
class: "poveste-layout-modal fixed inset-0 bg-white/80 dark:bg-gray-900/80 z-20",
|
|
8
|
-
"data-
|
|
8
|
+
"data-testid": "layout-modal"
|
|
9
9
|
};
|
|
10
10
|
var _hoisted_2 = { class: "bg-white dark:bg-gray-900 md:mt-16 md:mx-auto w-screen max-w-[512px] shadow-xl border border-gray-200 dark:border-gray-750 rounded-lg relative divide-y divide-gray-200 dark:divide-gray-850" };
|
|
11
11
|
var _hoisted_3 = { class: "flex items-center px-6 py-3 text-gray-900 dark:text-gray-100" };
|
|
@@ -33,7 +33,7 @@ var LayoutModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
33
33
|
type: "button",
|
|
34
34
|
class: "flex items-center justify-center p-1 bg-transparent border-0 text-gray-500 dark:text-gray-400 hover:text-primary-500 dark:hover:text-primary-400 cursor-pointer",
|
|
35
35
|
"aria-label": "Close layout customization",
|
|
36
|
-
"data-
|
|
36
|
+
"data-testid": "layout-modal-close",
|
|
37
37
|
onClick: _cache[1] || (_cache[1] = ($event) => close())
|
|
38
38
|
}, [createVNode(unref(Icon), {
|
|
39
39
|
icon: "carbon:close",
|
|
@@ -14,13 +14,13 @@ var LayoutPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
14
14
|
title: "Story List",
|
|
15
15
|
icon: "carbon:open-panel-filled-left",
|
|
16
16
|
"state-icon": unref(settings).storyListVisible ? "carbon:view" : "carbon:view-off",
|
|
17
|
-
"data-
|
|
17
|
+
"data-testid": "layout-toggle-story-list",
|
|
18
18
|
onClick: _cache[0] || (_cache[0] = ($event) => unref(settings).storyListVisible = !unref(settings).storyListVisible)
|
|
19
19
|
}, null, 8, ["state-icon"]), createVNode(LayoutItem_default, {
|
|
20
20
|
title: "Story Options",
|
|
21
21
|
icon: "carbon:open-panel-filled-right",
|
|
22
22
|
"state-icon": unref(settings).storyOptionsVisible ? "carbon:view" : "carbon:view-off",
|
|
23
|
-
"data-
|
|
23
|
+
"data-testid": "layout-toggle-story-options",
|
|
24
24
|
onClick: _cache[1] || (_cache[1] = ($event) => unref(settings).storyOptionsVisible = !unref(settings).storyOptionsVisible)
|
|
25
25
|
}, null, 8, ["state-icon"])]),
|
|
26
26
|
_: 1
|
|
@@ -29,13 +29,13 @@ var LayoutPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
29
29
|
title: "Right",
|
|
30
30
|
icon: "carbon:open-panel-filled-right",
|
|
31
31
|
"is-active": unref(settings).storyOptionsPlacement === "right",
|
|
32
|
-
"data-
|
|
32
|
+
"data-testid": "layout-placement-right",
|
|
33
33
|
onClick: _cache[2] || (_cache[2] = ($event) => unref(settings).storyOptionsPlacement = "right")
|
|
34
34
|
}, null, 8, ["is-active"]), createVNode(LayoutItem_default, {
|
|
35
35
|
title: "Bottom",
|
|
36
36
|
icon: "carbon:open-panel-filled-bottom",
|
|
37
37
|
"is-active": unref(settings).storyOptionsPlacement === "bottom",
|
|
38
|
-
"data-
|
|
38
|
+
"data-testid": "layout-placement-bottom",
|
|
39
39
|
onClick: _cache[3] || (_cache[3] = ($event) => unref(settings).storyOptionsPlacement = "bottom")
|
|
40
40
|
}, null, 8, ["is-active"])]),
|
|
41
41
|
_: 1
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { toRawDeep } from "../../util/state.js";
|
|
1
|
+
import { toPresetState, toRawDeep } from "../../util/state.js";
|
|
2
2
|
import BaseSelect_default from "../base/BaseSelect.js";
|
|
3
3
|
import { onClickOutside, useStorage, useTimeoutFn } from "@poveste/vendors/vue-use";
|
|
4
4
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, isRef, nextTick, normalizeClass, onMounted, openBlock, ref, resolveDirective, toDisplayString, unref, vModelText, withCtx, withDirectives, withKeys, withModifiers } from "@poveste/vendors/vue";
|
|
5
5
|
import { Icon } from "@poveste/vendors/iconify";
|
|
6
|
-
import { applyState, clone
|
|
6
|
+
import { applyState, clone } from "@poveste/shared";
|
|
7
7
|
//#region src/app/components/panel/StatePresets.vue?vue&type=script&setup=true&lang.ts
|
|
8
8
|
var _hoisted_1 = { class: "poveste-state-presets flex gap-2 w-full items-center" };
|
|
9
9
|
var _hoisted_2 = ["onUpdate:modelValue"];
|
|
@@ -25,7 +25,7 @@ var StatePresets_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
25
25
|
const props = __props;
|
|
26
26
|
const saveId = computed(() => `${props.story.id}:${props.variant.id}`);
|
|
27
27
|
const omitKeys = ["_hPropDefs"];
|
|
28
|
-
const defaultState =
|
|
28
|
+
const defaultState = toPresetState(props.variant.state, omitKeys);
|
|
29
29
|
const selectedOption = useStorage(`_poveste-presets/${saveId.value}/selected`, DEFAULT_ID);
|
|
30
30
|
const presetStates = useStorage(`_poveste-presets/${saveId.value}/states`, /* @__PURE__ */ new Map());
|
|
31
31
|
const presetsOptions = computed(() => {
|
|
@@ -53,7 +53,7 @@ var StatePresets_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
53
53
|
async function createPreset() {
|
|
54
54
|
const id = Date.now().toString();
|
|
55
55
|
presetStates.value.set(id, {
|
|
56
|
-
state:
|
|
56
|
+
state: toPresetState(props.variant.state, omitKeys),
|
|
57
57
|
label: "New preset"
|
|
58
58
|
});
|
|
59
59
|
selectedOption.value = id;
|
|
@@ -68,7 +68,7 @@ var StatePresets_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
68
68
|
async function savePreset() {
|
|
69
69
|
if (!canEdit.value) return;
|
|
70
70
|
const preset = presetStates.value.get(selectedOption.value);
|
|
71
|
-
preset.state =
|
|
71
|
+
preset.state = toPresetState(props.variant.state, omitKeys);
|
|
72
72
|
savedNotif.value = true;
|
|
73
73
|
savedTimeout.start();
|
|
74
74
|
}
|
|
@@ -7,7 +7,7 @@ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock
|
|
|
7
7
|
import { Icon } from "@poveste/vendors/iconify";
|
|
8
8
|
//#region src/app/components/panel/StoryControls.vue?vue&type=script&setup=true&lang.ts
|
|
9
9
|
var _hoisted_1 = {
|
|
10
|
-
"data-
|
|
10
|
+
"data-testid": "story-controls",
|
|
11
11
|
class: "poveste-story-controls flex flex-col divide-y divide-gray-100 dark:divide-gray-750"
|
|
12
12
|
};
|
|
13
13
|
var _hoisted_2 = { class: "h-9 flex-none px-2 flex items-center" };
|
|
@@ -120,7 +120,7 @@ var StoryDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
|
|
|
120
120
|
ref_key: "renderedEl",
|
|
121
121
|
ref: renderedEl,
|
|
122
122
|
class: "prose dark:prose-invert p-4 max-w-none",
|
|
123
|
-
"data-
|
|
123
|
+
"data-testid": "story-docs",
|
|
124
124
|
innerHTML: unref(renderedDoc)
|
|
125
125
|
}, null, 8, _hoisted_1))], 32);
|
|
126
126
|
};
|
|
@@ -23,7 +23,7 @@ var StoryEvent_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
23
23
|
return openBlock(), createBlock(_component_VDropdown, {
|
|
24
24
|
class: "poveste-story-event group",
|
|
25
25
|
placement: "right",
|
|
26
|
-
"data-
|
|
26
|
+
"data-testid": "event-item"
|
|
27
27
|
}, {
|
|
28
28
|
default: withCtx(({ shown }) => [createElementVNode("div", { class: normalizeClass(["group-hover:bg-primary-100 dark:group-hover:bg-primary-700 cursor-pointer py-2 px-4 flex items-baseline gap-1 leading-normal", [shown ? "bg-primary-50 dark:bg-primary-600" : "group-odd:bg-gray-100/50 dark:group-odd:bg-gray-750/40"]]) }, [createElementVNode("span", { class: normalizeClass({ "text-primary-500": shown }) }, toDisplayString(__props.event.name), 3), __props.event.argument ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(formattedArgument.value), 1)) : createCommentVNode("", true)], 2)]),
|
|
29
29
|
popper: withCtx(() => [createElementVNode("div", _hoisted_2, [createElementVNode("pre", _hoisted_3, toDisplayString(__props.event.argument), 1)])]),
|
|
@@ -45,7 +45,7 @@ var StorySidePanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
45
45
|
"save-id": `story-sidepane-${innerOrientation.value}`,
|
|
46
46
|
orientation: innerOrientation.value,
|
|
47
47
|
class: "poveste-story-side-panel poveste-loaded h-full",
|
|
48
|
-
"data-
|
|
48
|
+
"data-testid": "story-side-panel"
|
|
49
49
|
}, {
|
|
50
50
|
first: withCtx(() => [createElementVNode("div", _hoisted_3, [createVNode(PaneTabs_default, {
|
|
51
51
|
story: unref(storyStore).currentStory,
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
|
|
|
2
2
|
import StorySourceCode_vue_vue_type_script_setup_true_lang_default from "./StorySourceCode.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/app/components/panel/StorySourceCode.vue
|
|
5
|
-
var StorySourceCode_default = /*#__PURE__*/ _plugin_vue_export_helper_default(StorySourceCode_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var StorySourceCode_default = /*#__PURE__*/ _plugin_vue_export_helper_default(StorySourceCode_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-61bf773e"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { StorySourceCode_default as default };
|
package/dist/bundled/components/panel/StorySourceCode.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -126,14 +126,14 @@ var StorySourceCode_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
126
126
|
class: "__poveste-code-placeholder w-full h-full p-4 outline-none bg-transparent resize-none m-0",
|
|
127
127
|
value: displayedSourceCode.value,
|
|
128
128
|
readonly: "",
|
|
129
|
-
"data-
|
|
129
|
+
"data-testid": "story-source-code",
|
|
130
130
|
onScroll
|
|
131
131
|
}, null, 40, _hoisted_5)) : (openBlock(), createElementBlock("div", {
|
|
132
132
|
key: 4,
|
|
133
133
|
ref_key: "scroller",
|
|
134
134
|
ref: scroller,
|
|
135
135
|
class: "w-full h-full overflow-auto",
|
|
136
|
-
"data-
|
|
136
|
+
"data-testid": "story-source-code",
|
|
137
137
|
onScroll
|
|
138
138
|
}, [createElementVNode("div", {
|
|
139
139
|
class: "__poveste-code __histoire-code p-4 w-fit",
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
|
|
|
2
2
|
import SearchItem_vue_vue_type_script_setup_true_lang_default from "./SearchItem.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/app/components/search/SearchItem.vue
|
|
5
|
-
var SearchItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(SearchItem_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var SearchItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(SearchItem_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f8cfc1bd"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { SearchItem_default as default };
|
|
@@ -19,7 +19,7 @@ var SearchItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
19
19
|
},
|
|
20
20
|
emits: { close: () => true },
|
|
21
21
|
setup(__props, { emit: __emit }) {
|
|
22
|
-
useCssVars((_ctx) => ({ "
|
|
22
|
+
useCssVars((_ctx) => ({ "v1c6fbe98": __props.result.iconColor }));
|
|
23
23
|
const props = __props;
|
|
24
24
|
const emit = __emit;
|
|
25
25
|
const el = ref();
|
|
@@ -34,7 +34,7 @@ var SearchItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
34
34
|
ref_key: "el",
|
|
35
35
|
ref: el,
|
|
36
36
|
class: "poveste-search-item",
|
|
37
|
-
"data-
|
|
37
|
+
"data-testid": "search-item",
|
|
38
38
|
"data-selected": unref(selected) ? "" : void 0
|
|
39
39
|
}, ["route" in __props.result ? (openBlock(), createBlock(BaseListItemLink_default, {
|
|
40
40
|
key: 0,
|
|
@@ -3,7 +3,7 @@ import { createElementBlock, createElementVNode, createVNode, defineAsyncCompone
|
|
|
3
3
|
//#region src/app/components/search/SearchModal.vue?vue&type=script&setup=true&lang.ts
|
|
4
4
|
var _hoisted_1 = {
|
|
5
5
|
class: "poveste-search-modal fixed inset-0 bg-white/80 dark:bg-gray-900/80 z-20",
|
|
6
|
-
"data-
|
|
6
|
+
"data-testid": "search-modal"
|
|
7
7
|
};
|
|
8
8
|
var _hoisted_2 = { class: "bg-white dark:bg-gray-900 md:mt-16 md:mx-auto w-screen max-w-[512px] shadow-xl border border-gray-200 dark:border-gray-750 rounded-lg relative divide-y divide-gray-200 dark:divide-gray-850" };
|
|
9
9
|
var SearchModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -184,6 +184,7 @@ var SearchPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
184
184
|
const { selectedIndex, selectNext, selectPrevious } = useSelection(results);
|
|
185
185
|
const router = useRouter();
|
|
186
186
|
onKeyboardShortcut(["enter"], () => {
|
|
187
|
+
if (!props.shown) return;
|
|
187
188
|
const result = results.value[selectedIndex.value];
|
|
188
189
|
if (!result) return;
|
|
189
190
|
if ("route" in result) router.push(result.route);
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
|
|
|
2
2
|
import StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default from "./StoryResponsivePreview.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/app/components/story/StoryResponsivePreview.vue
|
|
5
|
-
var StoryResponsivePreview_default = /*#__PURE__*/ _plugin_vue_export_helper_default(StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var StoryResponsivePreview_default = /*#__PURE__*/ _plugin_vue_export_helper_default(StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fa6bb28c"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { StoryResponsivePreview_default as default };
|
package/dist/bundled/components/story/StoryResponsivePreview.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -3,25 +3,27 @@ import CheckerboardPattern_default from "../misc/CheckerboardPattern.js";
|
|
|
3
3
|
import HatchedPattern_default from "../misc/HatchedPattern.js";
|
|
4
4
|
import { useEventListener } from "@poveste/vendors/vue-use";
|
|
5
5
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createStaticVNode, createVNode, defineComponent, normalizeClass, onUnmounted, openBlock, ref, renderSlot, unref, useCssVars, withDirectives } from "@poveste/vendors/vue";
|
|
6
|
-
import { VTooltip } from "@poveste/vendors/floating-vue";
|
|
7
6
|
import { Icon } from "@poveste/vendors/iconify";
|
|
7
|
+
import { VTooltip } from "@poveste/vendors/floating-vue";
|
|
8
8
|
//#region src/app/components/story/StoryResponsivePreview.vue?vue&type=script&setup=true&lang.ts
|
|
9
9
|
var _hoisted_1 = { class: "poveste-story-responsive-preview w-full h-full flex-1 rounded-lg relative overflow-hidden" };
|
|
10
10
|
var _hoisted_2 = {
|
|
11
11
|
key: 0,
|
|
12
12
|
class: "absolute inset-0 w-full h-full bg-gray-100 dark:bg-gray-750 rounded-r-lg border-l-2 border-gray-500/10 dark:border-gray-700/30 overflow-hidden"
|
|
13
13
|
};
|
|
14
|
-
var _hoisted_3 =
|
|
15
|
-
|
|
16
|
-
"data-test-id": "responsive-preview-bg"
|
|
17
|
-
};
|
|
18
|
-
var _hoisted_4 = { class: "p-8 h-full relative" };
|
|
19
|
-
var _hoisted_5 = { class: "w-full h-full relative" };
|
|
14
|
+
var _hoisted_3 = ["data-testid"];
|
|
15
|
+
var _hoisted_4 = { class: "w-full h-full relative" };
|
|
20
16
|
var StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
21
17
|
__name: "StoryResponsivePreview",
|
|
22
|
-
props: {
|
|
18
|
+
props: {
|
|
19
|
+
variant: {},
|
|
20
|
+
responsive: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
default: true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
23
25
|
setup(__props) {
|
|
24
|
-
useCssVars((_ctx) => ({ "
|
|
26
|
+
useCssVars((_ctx) => ({ "v6d3c2da2": unref(settings).backgroundColor }));
|
|
25
27
|
const props = __props;
|
|
26
28
|
const settings = usePreviewSettingsStore().currentSettings;
|
|
27
29
|
const resizing = ref(false);
|
|
@@ -102,67 +104,70 @@ var StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
102
104
|
useDragger(cornerDragger, responsiveHeight, 32, 2e4, "y");
|
|
103
105
|
const finalWidth = computed(() => settings.rotate ? settings.responsiveHeight : settings.responsiveWidth);
|
|
104
106
|
const finalHeight = computed(() => settings.rotate ? settings.responsiveWidth : settings.responsiveHeight);
|
|
105
|
-
const isResponsiveEnabled = computed(() => !props.variant.responsiveDisabled);
|
|
107
|
+
const isResponsiveEnabled = computed(() => props.responsive && !props.variant.responsiveDisabled);
|
|
106
108
|
const sizeTooltip = computed(() => `${responsiveWidth.value ?? "Auto"} × ${responsiveHeight.value ?? "Auto"}`);
|
|
107
109
|
return (_ctx, _cache) => {
|
|
108
110
|
return openBlock(), createElementBlock("div", _hoisted_1, [isResponsiveEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_2, [createVNode(HatchedPattern_default, { class: "w-full h-full text-black/[1%] dark:text-white/[1%]" })])) : createCommentVNode("", true), createElementVNode("div", {
|
|
109
111
|
ref_key: "previewWrapper",
|
|
110
112
|
ref: previewWrapper,
|
|
111
113
|
class: "h-full overflow-auto relative"
|
|
112
|
-
}, [createElementVNode("div", { class: normalizeClass(["
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
isResponsiveEnabled.value
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
114
|
+
}, [createElementVNode("div", { class: normalizeClass(["rounded-lg relative", [
|
|
115
|
+
__props.responsive ? "bg-white dark:bg-gray-700" : "",
|
|
116
|
+
isResponsiveEnabled.value ? {
|
|
117
|
+
"w-fit": !!finalWidth.value,
|
|
118
|
+
"h-fit": !!finalHeight.value,
|
|
119
|
+
"h-full": !finalHeight.value
|
|
120
|
+
} : "h-full",
|
|
121
|
+
isResponsiveEnabled.value && finalHeight.value ? "overflow-hidden" : "overflow-auto"
|
|
122
|
+
]]) }, [createElementVNode("div", {
|
|
123
|
+
class: normalizeClass(["rounded-lg min-h-full relative", __props.responsive ? "bind-preview-bg" : ""]),
|
|
124
|
+
"data-testid": __props.responsive ? "responsive-preview-bg" : void 0
|
|
125
|
+
}, [unref(settings).checkerboard && __props.responsive ? (openBlock(), createBlock(CheckerboardPattern_default, {
|
|
126
|
+
key: 0,
|
|
127
|
+
class: "absolute inset-0 w-full h-full text-gray-500/20"
|
|
128
|
+
})) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(["h-full relative", __props.responsive ? "p-8" : ""]) }, [createElementVNode("div", _hoisted_4, [_cache[0] || (_cache[0] = createElementVNode("div", { class: "absolute inset-0" }, null, -1)), renderSlot(_ctx.$slots, "default", {
|
|
129
|
+
isResponsiveEnabled: isResponsiveEnabled.value,
|
|
130
|
+
finalWidth: finalWidth.value,
|
|
131
|
+
finalHeight: finalHeight.value,
|
|
132
|
+
resizing: resizing.value
|
|
133
|
+
}, void 0, true)]), isResponsiveEnabled.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[1] || (_cache[1] = createStaticVNode("<div class=\"absolute top-5 left-8 h-2 w-px bg-gray-400/25\" data-v-fa6bb28c></div><div class=\"absolute top-5 right-8 h-2 w-px bg-gray-400/25\" data-v-fa6bb28c></div><div class=\"absolute bottom-5 left-8 h-2 w-px bg-gray-400/25\" data-v-fa6bb28c></div><div class=\"absolute bottom-5 right-8 h-2 w-px bg-gray-400/25\" data-v-fa6bb28c></div><div class=\"absolute left-5 top-8 w-2 h-px bg-gray-400/25\" data-v-fa6bb28c></div><div class=\"absolute left-5 bottom-8 w-2 h-px bg-gray-400/25\" data-v-fa6bb28c></div><div class=\"absolute right-5 top-8 w-2 h-px bg-gray-400/25\" data-v-fa6bb28c></div><div class=\"absolute right-5 bottom-8 w-2 h-px bg-gray-400/25\" data-v-fa6bb28c></div>", 8))], 64)) : createCommentVNode("", true)], 2)], 10, _hoisted_3), isResponsiveEnabled.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
134
|
+
withDirectives((openBlock(), createElementBlock("div", {
|
|
135
|
+
ref_key: "horizontalDragger",
|
|
136
|
+
ref: horizontalDragger,
|
|
137
|
+
class: "absolute w-4 top-0 bottom-4 right-0 hover:bg-primary-500/30 flex items-center justify-center cursor-ew-resize group hover:text-primary-500"
|
|
138
|
+
}, [createVNode(unref(Icon), {
|
|
139
|
+
icon: "mdi:drag-vertical-variant",
|
|
140
|
+
class: "w-4 h-4 opacity-20 group-hover:opacity-90"
|
|
141
|
+
})])), [[
|
|
142
|
+
unref(VTooltip),
|
|
143
|
+
sizeTooltip.value,
|
|
144
|
+
void 0,
|
|
145
|
+
{ right: true }
|
|
146
|
+
]]),
|
|
147
|
+
withDirectives((openBlock(), createElementBlock("div", {
|
|
148
|
+
ref_key: "verticalDragger",
|
|
149
|
+
ref: verticalDragger,
|
|
150
|
+
class: "absolute h-4 left-0 right-4 bottom-0 hover:bg-primary-500/30 flex items-center justify-center cursor-ns-resize group hover:text-primary-500"
|
|
151
|
+
}, [createVNode(unref(Icon), {
|
|
152
|
+
icon: "mdi:drag-horizontal-variant",
|
|
153
|
+
class: "w-4 h-4 opacity-20 group-hover:opacity-90"
|
|
154
|
+
})])), [[
|
|
155
|
+
unref(VTooltip),
|
|
156
|
+
sizeTooltip.value,
|
|
157
|
+
void 0,
|
|
158
|
+
{ bottom: true }
|
|
159
|
+
]]),
|
|
160
|
+
withDirectives(createElementVNode("div", {
|
|
161
|
+
ref_key: "cornerDragger",
|
|
162
|
+
ref: cornerDragger,
|
|
163
|
+
class: "absolute w-4 h-4 right-0 bottom-0 hover:bg-primary-500/30 flex items-center justify-center cursor-nwse-resize group hover:text-primary-500"
|
|
164
|
+
}, null, 512), [[
|
|
165
|
+
unref(VTooltip),
|
|
166
|
+
sizeTooltip.value,
|
|
167
|
+
void 0,
|
|
168
|
+
{ bottom: true }
|
|
169
|
+
]])
|
|
170
|
+
], 64)) : createCommentVNode("", true)], 2)], 512)]);
|
|
166
171
|
};
|
|
167
172
|
}
|
|
168
173
|
});
|