@poveste/app 0.20.0 → 0.21.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/bundled/app.css +55 -27
- package/dist/bundled/components/layout/LayoutModal.vue_vue_type_script_setup_true_lang.js +44 -5
- package/dist/bundled/components/panel/ComponentDocs.js +1 -1
- package/dist/bundled/components/panel/ComponentDocs.vue_vue_type_script_setup_true_lang.js +72 -40
- package/dist/bundled/components/panel/StoryDocs.vue_vue_type_script_setup_true_lang.js +34 -10
- 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/story/StoryResponsivePreview.js +1 -1
- package/dist/bundled/components/story/StoryResponsivePreview.vue_vue_type_script_setup_true_lang.js +5 -3
- package/dist/bundled/components/story/StoryVariantGridItem.js +1 -1
- package/dist/bundled/components/story/StoryVariantGridItem.vue_vue_type_script_setup_true_lang.js +5 -3
- package/dist/bundled/components/story/StoryVariantSinglePreviewRemote.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/bundled/index.js +5 -1
- package/dist/bundled/sandbox.js +2 -0
- package/dist/bundled/util/component-docs-data.js +5 -1
- package/dist/bundled/util/component-docs.js +90 -14
- package/dist/bundled/util/dark.js +3 -1
- package/dist/bundled/util/docs.js +12 -2
- package/dist/bundled/util/highlighter.js +1 -1
- package/dist/bundled/util/icons.generated.js +1 -0
- package/dist/bundled/util/keyboard.js +5 -4
- package/dist/style.css +317 -150
- package/package.json +7 -7
- package/src/app/components/layout/LayoutModal.vue +55 -2
- package/src/app/components/panel/ComponentDocs.vue +83 -17
- package/src/app/components/panel/StoryDocs.vue +30 -3
- package/src/app/components/panel/StorySourceCode.vue +2 -2
- package/src/app/components/story/StoryResponsivePreview.vue +4 -1
- package/src/app/components/story/StoryVariantGridItem.vue +4 -1
- package/src/app/components/story/StoryVariantSinglePreviewRemote.vue +6 -4
- package/src/app/index.ts +12 -3
- package/src/app/sandbox.ts +5 -0
- package/src/app/util/component-docs-data.ts +6 -3
- package/src/app/util/component-docs.ts +102 -11
- package/src/app/util/dark.ts +6 -0
- package/src/app/util/docs.ts +18 -2
- package/src/app/util/highlighter.ts +2 -1
- package/src/app/util/icons.generated.ts +1 -1
- package/src/app/util/keyboard.ts +8 -4
package/dist/bundled/app.css
CHANGED
|
@@ -215,93 +215,121 @@ from {
|
|
|
215
215
|
}
|
|
216
216
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
217
217
|
.poveste-component-docs {
|
|
218
|
-
&[data-v-
|
|
218
|
+
&[data-v-3b01b847] {
|
|
219
219
|
padding: 1rem;
|
|
220
220
|
font-size: .875rem;
|
|
221
221
|
color: var(--color-gray-800);
|
|
222
222
|
|
|
223
223
|
/* On the subject, not `.ptw-dark &`: `.ptw-dark` sits above the `@scope` root (#101). */
|
|
224
224
|
}
|
|
225
|
-
&[data-v-
|
|
225
|
+
&[data-v-3b01b847]:where(.ptw-dark, .ptw-dark *) {
|
|
226
226
|
color: var(--color-gray-200);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
-
|
|
229
|
+
details + details[data-v-3b01b847] {
|
|
230
230
|
margin-top: 1.5rem;
|
|
231
231
|
}
|
|
232
|
-
|
|
232
|
+
summary[data-v-3b01b847] {
|
|
233
|
+
cursor: pointer;
|
|
234
|
+
margin-bottom: .5rem;
|
|
235
|
+
}
|
|
236
|
+
h3[data-v-3b01b847] {
|
|
237
|
+
display: inline;
|
|
233
238
|
font-weight: 600;
|
|
234
239
|
font-size: 1rem;
|
|
235
|
-
margin-bottom: .5rem;
|
|
236
240
|
}
|
|
237
|
-
table[data-v-
|
|
241
|
+
table[data-v-3b01b847] {
|
|
238
242
|
width: 100%;
|
|
239
243
|
border-collapse: collapse;
|
|
240
244
|
margin-bottom: 1rem;
|
|
241
245
|
}
|
|
242
|
-
th[data-v-
|
|
246
|
+
th[data-v-3b01b847] {
|
|
243
247
|
text-align: start;
|
|
244
248
|
font-weight: 500;
|
|
245
249
|
color: var(--color-gray-500);
|
|
246
250
|
}
|
|
247
251
|
th,
|
|
248
252
|
td {
|
|
249
|
-
&[data-v-
|
|
253
|
+
&[data-v-3b01b847] {
|
|
250
254
|
padding: .375rem .5rem;
|
|
251
255
|
border-bottom: 1px solid var(--color-gray-200);
|
|
252
256
|
vertical-align: top;
|
|
253
257
|
}
|
|
254
|
-
&[data-v-
|
|
258
|
+
&[data-v-3b01b847]:where(.ptw-dark, .ptw-dark *) {
|
|
255
259
|
border-color: var(--color-gray-750);
|
|
256
260
|
}
|
|
257
261
|
}
|
|
258
262
|
code {
|
|
259
|
-
&[data-v-
|
|
263
|
+
&[data-v-3b01b847] {
|
|
260
264
|
font-size: .8125rem;
|
|
261
265
|
background-color: var(--color-gray-100);
|
|
262
266
|
border-radius: .25rem;
|
|
263
267
|
padding: 0 .25rem;
|
|
264
268
|
}
|
|
265
|
-
&[data-v-
|
|
269
|
+
&[data-v-3b01b847]:where(.ptw-dark, .ptw-dark *) {
|
|
266
270
|
background-color: var(--color-gray-750);
|
|
267
271
|
}
|
|
268
272
|
}
|
|
269
|
-
pre code[data-v-
|
|
273
|
+
pre code[data-v-3b01b847] {
|
|
270
274
|
display: block;
|
|
271
275
|
padding: .5rem;
|
|
272
276
|
margin-top: .25rem;
|
|
273
277
|
white-space: pre-wrap;
|
|
274
278
|
}
|
|
275
|
-
.deprecated[data-v-
|
|
279
|
+
.deprecated[data-v-3b01b847] {
|
|
276
280
|
text-decoration: line-through;
|
|
277
281
|
}
|
|
278
|
-
|
|
282
|
+
/* Its own line: a constraint wrapped beside the name broke mid-phrase in the narrow panel. */
|
|
283
|
+
/* A prop a slot passes its content, under the slot it belongs to. */
|
|
284
|
+
[data-slot-prop] td[data-v-3b01b847]:first-child {
|
|
285
|
+
padding-inline-start: 1rem;
|
|
286
|
+
}
|
|
287
|
+
[data-slot='generic'][data-v-3b01b847] {
|
|
288
|
+
display: block;
|
|
289
|
+
width: fit-content;
|
|
290
|
+
margin-top: .25rem;
|
|
291
|
+
font-size: .75rem;
|
|
292
|
+
font-weight: 400;
|
|
293
|
+
cursor: help;
|
|
294
|
+
}
|
|
295
|
+
[data-slot='required'][data-v-3b01b847] {
|
|
279
296
|
color: var(--color-red-500);
|
|
280
297
|
margin-inline-start: .125rem;
|
|
281
298
|
}
|
|
299
|
+
[data-slot='model'] {
|
|
300
|
+
&[data-v-3b01b847] {
|
|
301
|
+
display: inline-block;
|
|
302
|
+
margin-inline-start: .375rem;
|
|
303
|
+
color: var(--color-primary-600);
|
|
304
|
+
cursor: help;
|
|
305
|
+
}
|
|
306
|
+
&[data-v-3b01b847]:where(.ptw-dark, .ptw-dark *) {
|
|
307
|
+
color: var(--color-primary-400);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
282
310
|
[data-slot='deprecated'],
|
|
283
311
|
[data-slot='default-conflict'] {
|
|
284
|
-
&[data-v-
|
|
312
|
+
&[data-v-3b01b847] {
|
|
285
313
|
color: var(--color-amber-600);
|
|
286
314
|
font-weight: 500;
|
|
287
315
|
}
|
|
288
|
-
&[data-v-
|
|
316
|
+
&[data-v-3b01b847]:where(.ptw-dark, .ptw-dark *) {
|
|
289
317
|
color: var(--color-amber-400);
|
|
290
318
|
}
|
|
291
319
|
}
|
|
292
|
-
[data-slot='default-conflict'][data-v-
|
|
320
|
+
[data-slot='default-conflict'][data-v-3b01b847] {
|
|
293
321
|
margin-inline-start: .25rem;
|
|
294
322
|
cursor: help;
|
|
295
323
|
}
|
|
296
|
-
[data-slot='see'][data-v-
|
|
324
|
+
[data-slot='see'][data-v-3b01b847] {
|
|
297
325
|
display: block;
|
|
298
326
|
margin-top: .25rem;
|
|
299
327
|
}
|
|
300
|
-
a[data-slot='see'][data-v-
|
|
328
|
+
a[data-slot='see'][data-v-3b01b847] {
|
|
301
329
|
color: var(--color-primary-500);
|
|
302
330
|
text-decoration: underline;
|
|
303
331
|
}
|
|
304
|
-
[data-slot='error'][data-v-
|
|
332
|
+
[data-slot='error'][data-v-3b01b847] {
|
|
305
333
|
color: var(--color-gray-500);
|
|
306
334
|
}
|
|
307
335
|
}
|
|
@@ -323,7 +351,7 @@ a[data-slot='see'][data-v-aa8468d5] {
|
|
|
323
351
|
}
|
|
324
352
|
}
|
|
325
353
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
326
|
-
.__poveste-code-placeholder[data-v-
|
|
354
|
+
.__poveste-code-placeholder[data-v-cecbc93b] {
|
|
327
355
|
color: inherit;
|
|
328
356
|
font-size: inherit;
|
|
329
357
|
}
|
|
@@ -338,16 +366,16 @@ a[data-slot='see'][data-v-aa8468d5] {
|
|
|
338
366
|
}
|
|
339
367
|
}
|
|
340
368
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
341
|
-
.bind-preview-bg[data-v-
|
|
342
|
-
background-color: var(--
|
|
369
|
+
.bind-preview-bg[data-v-bbd56e9f] {
|
|
370
|
+
background-color: var(--v59fa22e6);
|
|
343
371
|
}
|
|
344
372
|
}
|
|
345
373
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
346
|
-
.bind-icon-color[data-v-
|
|
347
|
-
color: var(--
|
|
374
|
+
.bind-icon-color[data-v-9a717688] {
|
|
375
|
+
color: var(--ff0ecc2c);
|
|
348
376
|
}
|
|
349
|
-
.bind-preview-bg[data-v-
|
|
350
|
-
background-color: var(--
|
|
377
|
+
.bind-preview-bg[data-v-9a717688] {
|
|
378
|
+
background-color: var(--v59a40d7e);
|
|
351
379
|
}
|
|
352
380
|
}
|
|
353
381
|
@scope (:root) to (.__poveste-render-story:not(.__poveste-render-custom-controls)) {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { onKeyboardShortcut } from "../../util/keyboard.js";
|
|
2
2
|
import LayoutPane_default from "./LayoutPane.js";
|
|
3
|
-
import { createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, unref, vShow, withDirectives } from "@poveste/vendors/vue";
|
|
3
|
+
import { createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, openBlock, ref, unref, vShow, watch, withDirectives, withKeys } from "@poveste/vendors/vue";
|
|
4
4
|
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
8
|
"data-testid": "layout-modal"
|
|
9
9
|
};
|
|
10
|
-
var _hoisted_2 = { class: "
|
|
11
|
-
var
|
|
10
|
+
var _hoisted_2 = { class: "flex items-center px-6 py-3 text-gray-900 dark:text-gray-100" };
|
|
11
|
+
var FOCUSABLE = "button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])";
|
|
12
12
|
var LayoutModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
13
13
|
__name: "LayoutModal",
|
|
14
14
|
props: { shown: {
|
|
@@ -25,11 +25,50 @@ var LayoutModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
25
25
|
onKeyboardShortcut(["escape"], () => {
|
|
26
26
|
if (props.shown) close();
|
|
27
27
|
});
|
|
28
|
+
const panel = ref();
|
|
29
|
+
let opener = null;
|
|
30
|
+
function focusables() {
|
|
31
|
+
return [...panel.value?.querySelectorAll(FOCUSABLE) ?? []].filter((element) => !element.hasAttribute("disabled") && element.getClientRects().length > 0);
|
|
32
|
+
}
|
|
33
|
+
watch(() => props.shown, async (shown) => {
|
|
34
|
+
if (shown) {
|
|
35
|
+
opener = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
36
|
+
await nextTick();
|
|
37
|
+
focusables()[0]?.focus();
|
|
38
|
+
} else if (opener?.isConnected) {
|
|
39
|
+
opener.focus();
|
|
40
|
+
opener = null;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
function keepFocusInside(event) {
|
|
44
|
+
const elements = focusables();
|
|
45
|
+
const first = elements[0];
|
|
46
|
+
const last = elements.at(-1);
|
|
47
|
+
if (!first || !last) return;
|
|
48
|
+
if (event.shiftKey && document.activeElement === first) {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
last.focus();
|
|
51
|
+
} else if (!event.shiftKey && document.activeElement === last) {
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
first.focus();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
28
56
|
return (_ctx, _cache) => {
|
|
29
57
|
return withDirectives((openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", {
|
|
30
58
|
class: "absolute inset-0",
|
|
31
59
|
onClick: _cache[0] || (_cache[0] = ($event) => close())
|
|
32
|
-
}), createElementVNode("div",
|
|
60
|
+
}), createElementVNode("div", {
|
|
61
|
+
ref_key: "panel",
|
|
62
|
+
ref: panel,
|
|
63
|
+
role: "dialog",
|
|
64
|
+
"aria-modal": "true",
|
|
65
|
+
"aria-labelledby": "poveste-layout-modal-title",
|
|
66
|
+
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",
|
|
67
|
+
onKeydown: withKeys(keepFocusInside, ["tab"])
|
|
68
|
+
}, [createElementVNode("div", _hoisted_2, [_cache[2] || (_cache[2] = createElementVNode("h2", {
|
|
69
|
+
id: "poveste-layout-modal-title",
|
|
70
|
+
class: "flex-1 text-sm font-medium m-0"
|
|
71
|
+
}, " Customize Layout ", -1)), createElementVNode("button", {
|
|
33
72
|
type: "button",
|
|
34
73
|
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
74
|
"aria-label": "Close layout customization",
|
|
@@ -39,7 +78,7 @@ var LayoutModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
39
78
|
icon: "carbon:close",
|
|
40
79
|
class: "w-5 h-5",
|
|
41
80
|
"aria-hidden": "true"
|
|
42
|
-
})])]), createVNode(LayoutPane_default)])], 512)), [[vShow, __props.shown]]);
|
|
81
|
+
})])]), createVNode(LayoutPane_default)], 544)], 512)), [[vShow, __props.shown]]);
|
|
43
82
|
};
|
|
44
83
|
}
|
|
45
84
|
});
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
|
|
|
2
2
|
import ComponentDocs_vue_vue_type_script_setup_true_lang_default from "./ComponentDocs.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/app/components/panel/ComponentDocs.vue
|
|
5
|
-
var ComponentDocs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ComponentDocs_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var ComponentDocs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ComponentDocs_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3b01b847"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { ComponentDocs_default as default };
|
|
@@ -1,68 +1,82 @@
|
|
|
1
|
-
import { tagHref, tagText } from "../../util/component-docs.js";
|
|
2
|
-
import { Fragment, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString, unref } from "@poveste/vendors/vue";
|
|
1
|
+
import { modelLabel, rootFirst, tagHref, tagText } from "../../util/component-docs.js";
|
|
2
|
+
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString, unref } from "@poveste/vendors/vue";
|
|
3
3
|
//#region src/app/components/panel/ComponentDocs.vue?vue&type=script&setup=true&lang.ts
|
|
4
4
|
var _hoisted_1 = {
|
|
5
5
|
class: "poveste-component-docs",
|
|
6
6
|
"data-testid": "component-docs"
|
|
7
7
|
};
|
|
8
|
-
var _hoisted_2 = ["data-component"];
|
|
8
|
+
var _hoisted_2 = ["open", "data-component"];
|
|
9
9
|
var _hoisted_3 = { "data-slot": "component-name" };
|
|
10
10
|
var _hoisted_4 = {
|
|
11
11
|
key: 0,
|
|
12
|
-
|
|
12
|
+
title: "The component's type parameters, as its script declares them",
|
|
13
|
+
"data-slot": "generic"
|
|
13
14
|
};
|
|
14
15
|
var _hoisted_5 = {
|
|
16
|
+
key: 0,
|
|
17
|
+
"data-slot": "error"
|
|
18
|
+
};
|
|
19
|
+
var _hoisted_6 = {
|
|
15
20
|
key: 0,
|
|
16
21
|
"data-slot": "props"
|
|
17
22
|
};
|
|
18
|
-
var
|
|
19
|
-
var
|
|
23
|
+
var _hoisted_7 = ["data-prop"];
|
|
24
|
+
var _hoisted_8 = {
|
|
20
25
|
key: 0,
|
|
21
26
|
title: "Required",
|
|
22
27
|
"data-slot": "required"
|
|
23
28
|
};
|
|
24
|
-
var _hoisted_8 = { key: 0 };
|
|
25
29
|
var _hoisted_9 = ["title"];
|
|
26
|
-
var _hoisted_10 = {
|
|
30
|
+
var _hoisted_10 = { key: 0 };
|
|
31
|
+
var _hoisted_11 = ["title"];
|
|
32
|
+
var _hoisted_12 = {
|
|
27
33
|
key: 0,
|
|
28
34
|
"data-slot": "deprecated"
|
|
29
35
|
};
|
|
30
|
-
var
|
|
31
|
-
var
|
|
36
|
+
var _hoisted_13 = ["href"];
|
|
37
|
+
var _hoisted_14 = {
|
|
32
38
|
key: 1,
|
|
33
39
|
"data-slot": "see"
|
|
34
40
|
};
|
|
35
|
-
var
|
|
41
|
+
var _hoisted_15 = {
|
|
36
42
|
key: 1,
|
|
37
43
|
"data-slot": "example"
|
|
38
44
|
};
|
|
39
|
-
var
|
|
45
|
+
var _hoisted_16 = {
|
|
40
46
|
key: 1,
|
|
41
47
|
"data-slot": "slots"
|
|
42
48
|
};
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
49
|
+
var _hoisted_17 = ["data-slot-name"];
|
|
50
|
+
var _hoisted_18 = { key: 0 };
|
|
51
|
+
var _hoisted_19 = ["data-slot-prop"];
|
|
52
|
+
var _hoisted_20 = {
|
|
46
53
|
key: 2,
|
|
47
54
|
"data-slot": "events"
|
|
48
55
|
};
|
|
49
|
-
var
|
|
50
|
-
var
|
|
56
|
+
var _hoisted_21 = ["data-event"];
|
|
57
|
+
var _hoisted_22 = ["title"];
|
|
58
|
+
var _hoisted_23 = { key: 0 };
|
|
51
59
|
var ComponentDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
52
60
|
__name: "ComponentDocs",
|
|
53
|
-
props: {
|
|
61
|
+
props: {
|
|
62
|
+
components: {},
|
|
63
|
+
storyFile: {}
|
|
64
|
+
},
|
|
54
65
|
setup(__props) {
|
|
66
|
+
const props = __props;
|
|
67
|
+
const ordered = computed(() => rootFirst(props.components, props.storyFile));
|
|
55
68
|
function shownDefault(prop) {
|
|
56
69
|
return prop.default ?? prop.defaultTag;
|
|
57
70
|
}
|
|
58
71
|
return (_ctx, _cache) => {
|
|
59
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
60
|
-
return openBlock(), createElementBlock("
|
|
72
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [(openBlock(true), createElementBlock(Fragment, null, renderList(ordered.value, (component, index) => {
|
|
73
|
+
return openBlock(), createElementBlock("details", {
|
|
61
74
|
key: component.file,
|
|
75
|
+
open: ordered.value.length <= unref(3) || index === 0,
|
|
62
76
|
"data-slot": "component",
|
|
63
77
|
"data-component": component.name
|
|
64
|
-
}, [createElementVNode("h3", _hoisted_3, toDisplayString(component.name), 1), component.error ? (openBlock(), createElementBlock("p",
|
|
65
|
-
component.doc.props.length ? (openBlock(), createElementBlock("table",
|
|
78
|
+
}, [createElementVNode("summary", null, [createElementVNode("h3", _hoisted_3, [createTextVNode(toDisplayString(component.name), 1), component.doc?.generic ? (openBlock(), createElementBlock("code", _hoisted_4, "<" + toDisplayString(component.doc.generic) + ">", 1)) : createCommentVNode("", true)])]), component.error ? (openBlock(), createElementBlock("p", _hoisted_5, " Could not read this component's types: " + toDisplayString(component.error), 1)) : component.doc ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
79
|
+
component.doc.props.length ? (openBlock(), createElementBlock("table", _hoisted_6, [_cache[1] || (_cache[1] = createElementVNode("thead", null, [createElementVNode("tr", null, [
|
|
66
80
|
createElementVNode("th", null, "Prop"),
|
|
67
81
|
createElementVNode("th", null, "Type"),
|
|
68
82
|
createElementVNode("th", null, "Default"),
|
|
@@ -72,15 +86,23 @@ var ComponentDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
72
86
|
key: prop.name,
|
|
73
87
|
"data-prop": prop.name
|
|
74
88
|
}, [
|
|
75
|
-
createElementVNode("td", null, [
|
|
89
|
+
createElementVNode("td", null, [
|
|
90
|
+
createElementVNode("code", { class: normalizeClass({ deprecated: unref(tagText)(prop.tags, "deprecated") !== void 0 }) }, toDisplayString(prop.name), 3),
|
|
91
|
+
prop.required ? (openBlock(), createElementBlock("span", _hoisted_8, "*")) : createCommentVNode("", true),
|
|
92
|
+
unref(modelLabel)(component.doc, prop.name) ? (openBlock(), createElementBlock("code", {
|
|
93
|
+
key: 1,
|
|
94
|
+
title: `Bound two ways with ${unref(modelLabel)(component.doc, prop.name)}, through the update:${prop.name} event`,
|
|
95
|
+
"data-slot": "model"
|
|
96
|
+
}, toDisplayString(unref(modelLabel)(component.doc, prop.name)), 9, _hoisted_9)) : createCommentVNode("", true)
|
|
97
|
+
]),
|
|
76
98
|
createElementVNode("td", null, [createElementVNode("code", null, toDisplayString(prop.type), 1)]),
|
|
77
|
-
createElementVNode("td", null, [shownDefault(prop) !== void 0 ? (openBlock(), createElementBlock("code",
|
|
99
|
+
createElementVNode("td", null, [shownDefault(prop) !== void 0 ? (openBlock(), createElementBlock("code", _hoisted_10, toDisplayString(shownDefault(prop)), 1)) : createCommentVNode("", true), _ctx.__POVESTE_DEV__ && prop.defaultConflict ? (openBlock(), createElementBlock("span", {
|
|
78
100
|
key: 1,
|
|
79
101
|
title: `The code's default is shown; the @default tag says ${prop.defaultTag}`,
|
|
80
102
|
"data-slot": "default-conflict"
|
|
81
|
-
}, "≠", 8,
|
|
103
|
+
}, "≠", 8, _hoisted_11)) : createCommentVNode("", true)]),
|
|
82
104
|
createElementVNode("td", null, [
|
|
83
|
-
unref(tagText)(prop.tags, "deprecated") !== void 0 ? (openBlock(), createElementBlock("span",
|
|
105
|
+
unref(tagText)(prop.tags, "deprecated") !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_12, [_cache[0] || (_cache[0] = createTextVNode("Deprecated", -1)), unref(tagText)(prop.tags, "deprecated") ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(": " + toDisplayString(unref(tagText)(prop.tags, "deprecated")), 1)], 64)) : createCommentVNode("", true)])) : createCommentVNode("", true),
|
|
84
106
|
createTextVNode(" " + toDisplayString(prop.description) + " ", 1),
|
|
85
107
|
(openBlock(true), createElementBlock(Fragment, null, renderList(prop.tags.filter((tag) => tag.name === "see" || tag.name === "link"), (tag) => {
|
|
86
108
|
return openBlock(), createElementBlock(Fragment, { key: tag.text }, [unref(tagHref)(tag.text ?? "") ? (openBlock(), createElementBlock("a", {
|
|
@@ -89,27 +111,33 @@ var ComponentDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
89
111
|
target: "_blank",
|
|
90
112
|
rel: "noopener",
|
|
91
113
|
"data-slot": "see"
|
|
92
|
-
}, toDisplayString(tag.text), 9,
|
|
114
|
+
}, toDisplayString(tag.text), 9, _hoisted_13)) : (openBlock(), createElementBlock("span", _hoisted_14, toDisplayString(tag.text), 1))], 64);
|
|
93
115
|
}), 128)),
|
|
94
|
-
unref(tagText)(prop.tags, "example") ? (openBlock(), createElementBlock("pre",
|
|
116
|
+
unref(tagText)(prop.tags, "example") ? (openBlock(), createElementBlock("pre", _hoisted_15, [createElementVNode("code", null, toDisplayString(unref(tagText)(prop.tags, "example")), 1)])) : createCommentVNode("", true)
|
|
95
117
|
])
|
|
96
|
-
], 8,
|
|
118
|
+
], 8, _hoisted_7);
|
|
97
119
|
}), 128))])])) : createCommentVNode("", true),
|
|
98
|
-
component.doc.slots.length ? (openBlock(), createElementBlock("table",
|
|
120
|
+
component.doc.slots.length ? (openBlock(), createElementBlock("table", _hoisted_16, [_cache[2] || (_cache[2] = createElementVNode("thead", null, [createElementVNode("tr", null, [
|
|
99
121
|
createElementVNode("th", null, "Slot"),
|
|
100
122
|
createElementVNode("th", null, "Type"),
|
|
101
123
|
createElementVNode("th", null, "Description")
|
|
102
124
|
])], -1)), createElementVNode("tbody", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(component.doc.slots, (slot) => {
|
|
103
|
-
return openBlock(), createElementBlock("tr", {
|
|
104
|
-
key: slot.name,
|
|
105
|
-
"data-slot-name": slot.name
|
|
106
|
-
}, [
|
|
125
|
+
return openBlock(), createElementBlock(Fragment, { key: slot.name }, [createElementVNode("tr", { "data-slot-name": slot.name }, [
|
|
107
126
|
createElementVNode("td", null, [createElementVNode("code", null, toDisplayString(slot.name), 1)]),
|
|
108
|
-
createElementVNode("td", null, [slot.type ? (openBlock(), createElementBlock("code",
|
|
127
|
+
createElementVNode("td", null, [slot.type && !slot.props?.length ? (openBlock(), createElementBlock("code", _hoisted_18, toDisplayString(slot.type), 1)) : createCommentVNode("", true)]),
|
|
109
128
|
createElementVNode("td", null, toDisplayString(slot.description), 1)
|
|
110
|
-
], 8,
|
|
129
|
+
], 8, _hoisted_17), (openBlock(true), createElementBlock(Fragment, null, renderList(slot.props ?? [], (slotProp) => {
|
|
130
|
+
return openBlock(), createElementBlock("tr", {
|
|
131
|
+
key: `${slot.name}.${slotProp.name}`,
|
|
132
|
+
"data-slot-prop": slotProp.name
|
|
133
|
+
}, [
|
|
134
|
+
createElementVNode("td", null, [createElementVNode("code", null, toDisplayString(slotProp.name), 1)]),
|
|
135
|
+
createElementVNode("td", null, [createElementVNode("code", null, toDisplayString(slotProp.type), 1)]),
|
|
136
|
+
createElementVNode("td", null, toDisplayString(slotProp.description), 1)
|
|
137
|
+
], 8, _hoisted_19);
|
|
138
|
+
}), 128))], 64);
|
|
111
139
|
}), 128))])])) : createCommentVNode("", true),
|
|
112
|
-
component.doc.events.length ? (openBlock(), createElementBlock("table",
|
|
140
|
+
component.doc.events.length ? (openBlock(), createElementBlock("table", _hoisted_20, [_cache[3] || (_cache[3] = createElementVNode("thead", null, [createElementVNode("tr", null, [
|
|
113
141
|
createElementVNode("th", null, "Event"),
|
|
114
142
|
createElementVNode("th", null, "Payload"),
|
|
115
143
|
createElementVNode("th", null, "Description")
|
|
@@ -118,10 +146,14 @@ var ComponentDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
118
146
|
key: event.name,
|
|
119
147
|
"data-event": event.name
|
|
120
148
|
}, [
|
|
121
|
-
createElementVNode("td", null, [createElementVNode("code", null, toDisplayString(event.name), 1)
|
|
122
|
-
|
|
149
|
+
createElementVNode("td", null, [createElementVNode("code", null, toDisplayString(event.name), 1), unref(modelLabel)(component.doc, event.name) ? (openBlock(), createElementBlock("code", {
|
|
150
|
+
key: 0,
|
|
151
|
+
title: `Bound two ways with ${unref(modelLabel)(component.doc, event.name)}, with the ${event.name.slice(7)} prop`,
|
|
152
|
+
"data-slot": "model"
|
|
153
|
+
}, toDisplayString(unref(modelLabel)(component.doc, event.name)), 9, _hoisted_22)) : createCommentVNode("", true)]),
|
|
154
|
+
createElementVNode("td", null, [event.type ? (openBlock(), createElementBlock("code", _hoisted_23, toDisplayString(event.type), 1)) : createCommentVNode("", true)]),
|
|
123
155
|
createElementVNode("td", null, toDisplayString(event.description), 1)
|
|
124
|
-
], 8,
|
|
156
|
+
], 8, _hoisted_21);
|
|
125
157
|
}), 128))])])) : createCommentVNode("", true)
|
|
126
158
|
], 64)) : createCommentVNode("", true)], 8, _hoisted_2);
|
|
127
159
|
}), 128))]);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { povesteConfig } from "../../util/config.js";
|
|
2
2
|
import DevOnlyToolbarOpenInEditor_default from "../toolbar/DevOnlyToolbarOpenInEditor.js";
|
|
3
3
|
import BaseEmpty_default from "../base/BaseEmpty.js";
|
|
4
|
-
import { useComponentDocs } from "../../util/component-docs.js";
|
|
4
|
+
import { onlySections, useComponentDocs } from "../../util/component-docs.js";
|
|
5
5
|
import ComponentDocs_default from "./ComponentDocs.js";
|
|
6
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, openBlock, ref, toRefs, unref, watch, watchEffect, withCtx } from "@poveste/vendors/vue";
|
|
6
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, openBlock, ref, toDisplayString, toRefs, unref, watch, watchEffect, withCtx } from "@poveste/vendors/vue";
|
|
7
7
|
import { Icon } from "@poveste/vendors/iconify";
|
|
8
8
|
import { useRoute, useRouter } from "@poveste/vendors/vue-router";
|
|
9
9
|
import { markdownFiles } from "virtual:$poveste-markdown-files";
|
|
@@ -51,7 +51,8 @@ var StoryDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
|
|
|
51
51
|
const emit = __emit;
|
|
52
52
|
const { story } = toRefs(props);
|
|
53
53
|
const { renderedDoc } = useStoryDoc(story);
|
|
54
|
-
const { components } = useComponentDocs(computed(() => story.value?.id));
|
|
54
|
+
const { components: allComponents, pending, off } = useComponentDocs(computed(() => story.value?.id));
|
|
55
|
+
const components = computed(() => allComponents.value && onlySections(allComponents.value, story.value?.autoDocs));
|
|
55
56
|
const router = useRouter();
|
|
56
57
|
const fakeHost = `http://a.com`;
|
|
57
58
|
function onClick(e) {
|
|
@@ -116,25 +117,48 @@ var StoryDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
|
|
|
116
117
|
file: filePath.value,
|
|
117
118
|
tooltip: "Edit docs in editor"
|
|
118
119
|
}, null, 8, ["file"])) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
|
|
119
|
-
!unref(renderedDoc) && !
|
|
120
|
+
_ctx.__POVESTE_DEV__ && !unref(renderedDoc) && !components.value?.length && unref(pending) ? (openBlock(), createBlock(BaseEmpty_default, {
|
|
121
|
+
key: 1,
|
|
122
|
+
"data-testid": "docs-pending"
|
|
123
|
+
}, {
|
|
124
|
+
default: withCtx(() => [
|
|
125
|
+
createVNode(unref(Icon), {
|
|
126
|
+
icon: "carbon:circle-dash",
|
|
127
|
+
class: "w-8 h-8 opacity-50 mb-6 animate-spin"
|
|
128
|
+
}),
|
|
129
|
+
_cache[0] || (_cache[0] = createTextVNode(" Reading component types… ", -1)),
|
|
130
|
+
_cache[1] || (_cache[1] = createElementVNode("span", { class: "text-sm opacity-70 mt-2" }, "The first time can take a while.", -1))
|
|
131
|
+
]),
|
|
132
|
+
_: 1
|
|
133
|
+
})) : !unref(pending) && !unref(renderedDoc) && !components.value?.length && unref(off) ? (openBlock(), createBlock(BaseEmpty_default, {
|
|
134
|
+
key: 2,
|
|
135
|
+
"data-testid": "docs-off"
|
|
136
|
+
}, {
|
|
120
137
|
default: withCtx(() => [createVNode(unref(Icon), {
|
|
121
138
|
icon: "carbon:document-unknown",
|
|
122
139
|
class: "w-8 h-8 opacity-50 mb-6"
|
|
123
|
-
}),
|
|
140
|
+
}), createTextVNode(" " + toDisplayString(unref(off)), 1)]),
|
|
141
|
+
_: 1
|
|
142
|
+
})) : !unref(pending) && !unref(renderedDoc) && !components.value?.length ? (openBlock(), createBlock(BaseEmpty_default, { key: 3 }, {
|
|
143
|
+
default: withCtx(() => [createVNode(unref(Icon), {
|
|
144
|
+
icon: "carbon:document-unknown",
|
|
145
|
+
class: "w-8 h-8 opacity-50 mb-6"
|
|
146
|
+
}), _cache[2] || (_cache[2] = createTextVNode(" No documentation available ", -1))]),
|
|
124
147
|
_: 1
|
|
125
148
|
})) : createCommentVNode("", true),
|
|
126
149
|
unref(renderedDoc) ? (openBlock(), createElementBlock("div", {
|
|
127
|
-
key:
|
|
150
|
+
key: 4,
|
|
128
151
|
ref_key: "renderedEl",
|
|
129
152
|
ref: renderedEl,
|
|
130
153
|
class: "prose dark:prose-invert p-4 max-w-none",
|
|
131
154
|
"data-testid": "story-docs",
|
|
132
155
|
innerHTML: unref(renderedDoc)
|
|
133
156
|
}, null, 8, _hoisted_1)) : createCommentVNode("", true),
|
|
134
|
-
|
|
135
|
-
key:
|
|
136
|
-
components:
|
|
137
|
-
|
|
157
|
+
components.value?.length ? (openBlock(), createBlock(ComponentDocs_default, {
|
|
158
|
+
key: 5,
|
|
159
|
+
components: components.value,
|
|
160
|
+
"story-file": unref(story).file?.filePath
|
|
161
|
+
}, null, 8, ["components", "story-file"])) : createCommentVNode("", true)
|
|
138
162
|
], 32);
|
|
139
163
|
};
|
|
140
164
|
}
|
|
@@ -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-cecbc93b"]]);
|
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isDark } from "../../util/dark.js";
|
|
2
2
|
import BaseEmpty_default from "../base/BaseEmpty.js";
|
|
3
|
-
import { getDynamicSourceCode, getStaticSourceCode, loadGenerateSourceCode } from "../../util/docs.js";
|
|
3
|
+
import { getDynamicSourceCode, getStaticSourceCode, loadGenerateSourceCode, sourceLang } from "../../util/docs.js";
|
|
4
4
|
import { getHighlighter } from "../../util/highlighter.js";
|
|
5
5
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, markRaw, nextTick, normalizeClass, onMounted, openBlock, ref, shallowRef, toDisplayString, unref, watch, watchEffect, withCtx } from "@poveste/vendors/vue";
|
|
6
6
|
import { Icon } from "@poveste/vendors/iconify";
|
|
@@ -82,7 +82,7 @@ var StorySourceCode_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
const sourceHtml = computed(() => displayedSourceCode.value ? highlighter.value?.codeToHtml(displayedSourceCode.value, {
|
|
85
|
-
lang:
|
|
85
|
+
lang: sourceLang(props.story),
|
|
86
86
|
theme: isDark.value ? "github-dark" : "github-light-high-contrast"
|
|
87
87
|
}) : "");
|
|
88
88
|
let lastScroll = 0;
|
|
@@ -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-bbd56e9f"]]);
|
|
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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { usePreviewDark } from "../../util/color-scheme.js";
|
|
1
2
|
import { usePreviewSettingsStore } from "../../stores/preview-settings.js";
|
|
2
3
|
import CheckerboardPattern_default from "../misc/CheckerboardPattern.js";
|
|
3
4
|
import HatchedPattern_default from "../misc/HatchedPattern.js";
|
|
@@ -23,9 +24,10 @@ var StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
23
24
|
}
|
|
24
25
|
},
|
|
25
26
|
setup(__props) {
|
|
26
|
-
useCssVars((_ctx) => ({ "
|
|
27
|
+
useCssVars((_ctx) => ({ "v59fa22e6": unref(settings).backgroundColor }));
|
|
27
28
|
const props = __props;
|
|
28
29
|
const settings = usePreviewSettingsStore().currentSettings;
|
|
30
|
+
const previewDark = usePreviewDark(settings);
|
|
29
31
|
const resizing = ref(false);
|
|
30
32
|
const onUnmountedCleanupFns = [];
|
|
31
33
|
onUnmounted(() => {
|
|
@@ -127,7 +129,7 @@ var StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
127
129
|
ref: previewWrapper,
|
|
128
130
|
class: "h-full overflow-auto relative"
|
|
129
131
|
}, [createElementVNode("div", { class: normalizeClass(["rounded-lg relative", [
|
|
130
|
-
__props.responsive ? "bg-
|
|
132
|
+
__props.responsive ? unref(previewDark) ? "bg-gray-700" : "bg-white" : "",
|
|
131
133
|
isResponsiveEnabled.value ? {
|
|
132
134
|
"w-fit": !!finalWidth.value,
|
|
133
135
|
"h-fit": !!finalHeight.value,
|
|
@@ -145,7 +147,7 @@ var StoryResponsivePreview_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
145
147
|
finalWidth: finalWidth.value,
|
|
146
148
|
finalHeight: finalHeight.value,
|
|
147
149
|
resizing: resizing.value
|
|
148
|
-
}, 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-
|
|
150
|
+
}, 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-bbd56e9f></div><div class=\"absolute top-5 right-8 h-2 w-px bg-gray-400/25\" data-v-bbd56e9f></div><div class=\"absolute bottom-5 left-8 h-2 w-px bg-gray-400/25\" data-v-bbd56e9f></div><div class=\"absolute bottom-5 right-8 h-2 w-px bg-gray-400/25\" data-v-bbd56e9f></div><div class=\"absolute left-5 top-8 w-2 h-px bg-gray-400/25\" data-v-bbd56e9f></div><div class=\"absolute left-5 bottom-8 w-2 h-px bg-gray-400/25\" data-v-bbd56e9f></div><div class=\"absolute right-5 top-8 w-2 h-px bg-gray-400/25\" data-v-bbd56e9f></div><div class=\"absolute right-5 bottom-8 w-2 h-px bg-gray-400/25\" data-v-bbd56e9f></div>", 8))], 64)) : createCommentVNode("", true)], 2)], 10, _hoisted_3), isResponsiveEnabled.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
149
151
|
createVNode(unref(HstTooltip), {
|
|
150
152
|
content: sizeTooltip.value,
|
|
151
153
|
side: "right"
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
|
|
|
2
2
|
import StoryVariantGridItem_vue_vue_type_script_setup_true_lang_default from "./StoryVariantGridItem.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/app/components/story/StoryVariantGridItem.vue
|
|
5
|
-
var StoryVariantGridItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(StoryVariantGridItem_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var StoryVariantGridItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(StoryVariantGridItem_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-9a717688"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { StoryVariantGridItem_default as default };
|