@poveste/app 0.1.1 → 0.1.3

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.
Files changed (184) hide show
  1. package/dist/app/assets/poveste-text-dark.svg +15 -0
  2. package/dist/app/assets/poveste-text.svg +15 -0
  3. package/dist/app/assets/poveste.svg +14 -0
  4. package/dist/app/style/floating.pcss +34 -0
  5. package/dist/app/style/main.pcss +100 -0
  6. package/dist/app/style/sandbox.css +24 -0
  7. package/dist/app/style/transitions.pcss +51 -0
  8. package/dist/bundle-index.js +1 -0
  9. package/dist/bundle-main-dev.js +4 -0
  10. package/dist/bundle-main.js +5 -0
  11. package/dist/bundle-sandbox-dev.js +2 -0
  12. package/dist/bundle-sandbox.js +2 -0
  13. package/dist/bundled/App.vue.js +5 -0
  14. package/dist/bundled/App.vue2.js +167 -0
  15. package/dist/bundled/_virtual/_plugin-vue_export-helper.js +10 -0
  16. package/dist/bundled/api.js +12 -0
  17. package/dist/bundled/app.css +116 -0
  18. package/dist/bundled/assets/poveste-text-dark.svg.js +4 -0
  19. package/dist/bundled/assets/poveste-text.svg.js +4 -0
  20. package/dist/bundled/assets/poveste.svg.js +4 -0
  21. package/dist/bundled/components/HomeView.vue.js +5 -0
  22. package/dist/bundled/components/HomeView.vue2.js +66 -0
  23. package/dist/bundled/components/app/AppHeader.vue.js +5 -0
  24. package/dist/bundled/components/app/AppHeader.vue2.js +71 -0
  25. package/dist/bundled/components/app/AppLogo.vue.js +5 -0
  26. package/dist/bundled/components/app/AppLogo.vue2.js +29 -0
  27. package/dist/bundled/components/app/Breadcrumb.vue.js +8 -0
  28. package/dist/bundled/components/app/Breadcrumb.vue2.js +91 -0
  29. package/dist/bundled/components/app/HomeCounter.vue.js +5 -0
  30. package/dist/bundled/components/app/HomeCounter.vue2.js +42 -0
  31. package/dist/bundled/components/app/InitialLoading.vue.js +5 -0
  32. package/dist/bundled/components/app/InitialLoading.vue2.js +51 -0
  33. package/dist/bundled/components/app/MobileOverlay.vue.js +5 -0
  34. package/dist/bundled/components/app/MobileOverlay.vue2.js +45 -0
  35. package/dist/bundled/components/base/BaseButton.vue.js +5 -0
  36. package/dist/bundled/components/base/BaseButton.vue2.js +39 -0
  37. package/dist/bundled/components/base/BaseCheckbox.vue.js +5 -0
  38. package/dist/bundled/components/base/BaseCheckbox.vue2.js +78 -0
  39. package/dist/bundled/components/base/BaseEmpty.vue.js +14 -0
  40. package/dist/bundled/components/base/BaseIcon.vue.js +8 -0
  41. package/dist/bundled/components/base/BaseIcon.vue2.js +29 -0
  42. package/dist/bundled/components/base/BaseKeyboardShortcut.vue.js +5 -0
  43. package/dist/bundled/components/base/BaseKeyboardShortcut.vue2.js +20 -0
  44. package/dist/bundled/components/base/BaseListItem.vue.js +5 -0
  45. package/dist/bundled/components/base/BaseListItem.vue2.js +33 -0
  46. package/dist/bundled/components/base/BaseListItemLink.vue.js +33 -0
  47. package/dist/bundled/components/base/BaseListItemLink.vue2.js +26 -0
  48. package/dist/bundled/components/base/BaseOverflowMenu.vue.js +5 -0
  49. package/dist/bundled/components/base/BaseOverflowMenu.vue2.js +100 -0
  50. package/dist/bundled/components/base/BaseOverflowTab.vue.js +36 -0
  51. package/dist/bundled/components/base/BaseOverflowTab.vue2.js +18 -0
  52. package/dist/bundled/components/base/BaseSelect.vue.js +5 -0
  53. package/dist/bundled/components/base/BaseSelect.vue2.js +77 -0
  54. package/dist/bundled/components/base/BaseSplitPane.vue.js +8 -0
  55. package/dist/bundled/components/base/BaseSplitPane.vue2.js +183 -0
  56. package/dist/bundled/components/base/BaseTab.vue.js +36 -0
  57. package/dist/bundled/components/base/BaseTab.vue2.js +18 -0
  58. package/dist/bundled/components/base/BaseTag.vue.js +13 -0
  59. package/dist/bundled/components/command/CommandPrompts.vue.js +5 -0
  60. package/dist/bundled/components/command/CommandPrompts.vue2.js +91 -0
  61. package/dist/bundled/components/command/CommandPromptsModal.vue.js +5 -0
  62. package/dist/bundled/components/command/CommandPromptsModal.vue2.js +45 -0
  63. package/dist/bundled/components/command/PromptSelect.vue.js +5 -0
  64. package/dist/bundled/components/command/PromptSelect.vue2.js +142 -0
  65. package/dist/bundled/components/command/PromptText.vue.js +5 -0
  66. package/dist/bundled/components/command/PromptText.vue2.js +67 -0
  67. package/dist/bundled/components/misc/CheckerboardPattern.vue.js +40 -0
  68. package/dist/bundled/components/misc/HatchedPattern.vue.js +12 -0
  69. package/dist/bundled/components/panel/ControlsComponentPropItem.vue.js +5 -0
  70. package/dist/bundled/components/panel/ControlsComponentPropItem.vue2.js +72 -0
  71. package/dist/bundled/components/panel/ControlsComponentProps.vue.js +5 -0
  72. package/dist/bundled/components/panel/ControlsComponentProps.vue2.js +45 -0
  73. package/dist/bundled/components/panel/ControlsComponentState.vue.js +5 -0
  74. package/dist/bundled/components/panel/ControlsComponentState.vue2.js +41 -0
  75. package/dist/bundled/components/panel/ControlsComponentStateItem.vue.js +5 -0
  76. package/dist/bundled/components/panel/ControlsComponentStateItem.vue2.js +46 -0
  77. package/dist/bundled/components/panel/PaneTabs.vue.js +5 -0
  78. package/dist/bundled/components/panel/PaneTabs.vue2.js +114 -0
  79. package/dist/bundled/components/panel/StatePresets.vue.js +5 -0
  80. package/dist/bundled/components/panel/StatePresets.vue2.js +193 -0
  81. package/dist/bundled/components/panel/StoryControls.vue.js +5 -0
  82. package/dist/bundled/components/panel/StoryControls.vue2.js +87 -0
  83. package/dist/bundled/components/panel/StoryDocs.vue.js +7 -0
  84. package/dist/bundled/components/panel/StoryDocs.vue2.js +161 -0
  85. package/dist/bundled/components/panel/StoryEvent.vue.js +5 -0
  86. package/dist/bundled/components/panel/StoryEvent.vue2.js +59 -0
  87. package/dist/bundled/components/panel/StoryEvents.vue.js +5 -0
  88. package/dist/bundled/components/panel/StoryEvents.vue2.js +53 -0
  89. package/dist/bundled/components/panel/StorySidePanel.vue.js +5 -0
  90. package/dist/bundled/components/panel/StorySidePanel.vue2.js +83 -0
  91. package/dist/bundled/components/panel/StorySourceCode.vue.js +8 -0
  92. package/dist/bundled/components/panel/StorySourceCode.vue2.js +204 -0
  93. package/dist/bundled/components/search/SearchItem.vue.js +8 -0
  94. package/dist/bundled/components/search/SearchItem.vue2.js +93 -0
  95. package/dist/bundled/components/search/SearchItemContent.vue.js +5 -0
  96. package/dist/bundled/components/search/SearchItemContent.vue2.js +71 -0
  97. package/dist/bundled/components/search/SearchLoading.vue.js +5 -0
  98. package/dist/bundled/components/search/SearchLoading.vue2.js +21 -0
  99. package/dist/bundled/components/search/SearchModal.vue.js +5 -0
  100. package/dist/bundled/components/search/SearchModal.vue2.js +51 -0
  101. package/dist/bundled/components/search/SearchPane.vue.js +5 -0
  102. package/dist/bundled/components/search/SearchPane.vue2.js +272 -0
  103. package/dist/bundled/components/search/search-docs-data.js +11 -0
  104. package/dist/bundled/components/search/search-title-data.js +11 -0
  105. package/dist/bundled/components/story/GenericMountStory.vue.js +5 -0
  106. package/dist/bundled/components/story/GenericMountStory.vue2.js +34 -0
  107. package/dist/bundled/components/story/GenericRenderStory.vue.js +5 -0
  108. package/dist/bundled/components/story/GenericRenderStory.vue2.js +39 -0
  109. package/dist/bundled/components/story/StoryResponsivePreview.vue.js +8 -0
  110. package/dist/bundled/components/story/StoryResponsivePreview.vue2.js +207 -0
  111. package/dist/bundled/components/story/StoryVariantGrid.vue.js +5 -0
  112. package/dist/bundled/components/story/StoryVariantGrid.vue2.js +146 -0
  113. package/dist/bundled/components/story/StoryVariantGridItem.vue.js +8 -0
  114. package/dist/bundled/components/story/StoryVariantGridItem.vue2.js +155 -0
  115. package/dist/bundled/components/story/StoryVariantListItem.vue.js +8 -0
  116. package/dist/bundled/components/story/StoryVariantListItem.vue2.js +55 -0
  117. package/dist/bundled/components/story/StoryVariantSingle.vue.js +8 -0
  118. package/dist/bundled/components/story/StoryVariantSingle.vue2.js +107 -0
  119. package/dist/bundled/components/story/StoryVariantSinglePreviewNative.vue.js +5 -0
  120. package/dist/bundled/components/story/StoryVariantSinglePreviewNative.vue2.js +72 -0
  121. package/dist/bundled/components/story/StoryVariantSinglePreviewRemote.vue.js +5 -0
  122. package/dist/bundled/components/story/StoryVariantSinglePreviewRemote.vue2.js +128 -0
  123. package/dist/bundled/components/story/StoryVariantSingleView.vue.js +5 -0
  124. package/dist/bundled/components/story/StoryVariantSingleView.vue2.js +66 -0
  125. package/dist/bundled/components/story/StoryView.vue.js +5 -0
  126. package/dist/bundled/components/story/StoryView.vue2.js +104 -0
  127. package/dist/bundled/components/story/StoryViewer.vue.js +8 -0
  128. package/dist/bundled/components/story/StoryViewer.vue2.js +55 -0
  129. package/dist/bundled/components/toolbar/DevOnlyToolbarOpenInEditor.vue.js +5 -0
  130. package/dist/bundled/components/toolbar/DevOnlyToolbarOpenInEditor.vue2.js +31 -0
  131. package/dist/bundled/components/toolbar/ToolbarBackground.vue.js +8 -0
  132. package/dist/bundled/components/toolbar/ToolbarBackground.vue2.js +98 -0
  133. package/dist/bundled/components/toolbar/ToolbarNewTab.vue.js +5 -0
  134. package/dist/bundled/components/toolbar/ToolbarNewTab.vue2.js +36 -0
  135. package/dist/bundled/components/toolbar/ToolbarResponsiveSize.vue.js +5 -0
  136. package/dist/bundled/components/toolbar/ToolbarResponsiveSize.vue2.js +127 -0
  137. package/dist/bundled/components/toolbar/ToolbarTextDirection.vue.js +5 -0
  138. package/dist/bundled/components/toolbar/ToolbarTextDirection.vue2.js +27 -0
  139. package/dist/bundled/components/toolbar/ToolbarTitle.vue.js +5 -0
  140. package/dist/bundled/components/toolbar/ToolbarTitle.vue2.js +26 -0
  141. package/dist/bundled/components/tree/StoryGroup.vue.js +5 -0
  142. package/dist/bundled/components/tree/StoryGroup.vue2.js +74 -0
  143. package/dist/bundled/components/tree/StoryList.vue.js +5 -0
  144. package/dist/bundled/components/tree/StoryList.vue2.js +41 -0
  145. package/dist/bundled/components/tree/StoryListFolder.vue.js +8 -0
  146. package/dist/bundled/components/tree/StoryListFolder.vue2.js +86 -0
  147. package/dist/bundled/components/tree/StoryListItem.vue.js +8 -0
  148. package/dist/bundled/components/tree/StoryListItem.vue2.js +69 -0
  149. package/dist/bundled/index.js +35 -0
  150. package/dist/bundled/plugin.js +49 -0
  151. package/dist/bundled/router.js +32 -0
  152. package/dist/bundled/sandbox.js +87 -0
  153. package/dist/bundled/stores/command.js +25 -0
  154. package/dist/bundled/stores/events.js +29 -0
  155. package/dist/bundled/stores/folder.js +54 -0
  156. package/dist/bundled/stores/preview-settings.js +19 -0
  157. package/dist/bundled/stores/story.js +43 -0
  158. package/dist/bundled/util/commands.js +57 -0
  159. package/dist/bundled/util/config.js +8 -0
  160. package/dist/bundled/util/const.js +10 -0
  161. package/dist/bundled/util/dark.js +28 -0
  162. package/dist/bundled/util/docs.js +26 -0
  163. package/dist/bundled/util/env.js +4 -0
  164. package/dist/bundled/util/events.js +33 -0
  165. package/dist/bundled/util/keyboard.js +90 -0
  166. package/dist/bundled/util/mapping.js +70 -0
  167. package/dist/bundled/util/open-in-editor.js +6 -0
  168. package/dist/bundled/util/preview-settings.js +22 -0
  169. package/dist/bundled/util/responsive.js +6 -0
  170. package/dist/bundled/util/sandbox.js +11 -0
  171. package/dist/bundled/util/scroll.js +31 -0
  172. package/dist/bundled/util/select.js +28 -0
  173. package/dist/bundled/util/state.js +41 -0
  174. package/dist/bundled/util/tooltip.js +15 -0
  175. package/dist/bundled/util/variant.js +21 -0
  176. package/dist/style.css +2853 -0
  177. package/package.json +8 -4
  178. package/postcss-scope-wrapper.cjs +0 -35
  179. package/postcss.config.cjs +0 -9
  180. package/scripts/copy.mjs +0 -12
  181. package/scripts/watchAndCopy.mjs +0 -15
  182. package/tailwind.config.cjs +0 -137
  183. package/tsconfig.json +0 -53
  184. package/vite.config.ts +0 -88
@@ -0,0 +1,91 @@
1
+ import { defineComponent, reactive, ref, onMounted, createElementBlock, openBlock, withKeys, withModifiers, createElementVNode, toDisplayString, Fragment, renderList, createBlock, resolveDynamicComponent, createVNode, withCtx, nextTick } from "@poveste/vendors/vue";
2
+ import { getCommandContext, executeCommand } from "../../util/commands.js";
3
+ import "../base/BaseButton.vue.js";
4
+ import "../base/BaseKeyboardShortcut.vue.js";
5
+ import "./PromptSelect.vue.js";
6
+ import "./PromptText.vue.js";
7
+ import _sfc_main$1 from "./PromptSelect.vue2.js";
8
+ import _sfc_main$2 from "./PromptText.vue2.js";
9
+ import _sfc_main$3 from "../base/BaseButton.vue2.js";
10
+ import _sfc_main$4 from "../base/BaseKeyboardShortcut.vue2.js";
11
+ "use strict";
12
+ const _hoisted_1 = { class: "htw-p-4 htw-opacity-70" };
13
+ const _hoisted_2 = { class: "htw-flex htw-justify-end htw-gap-2 htw-p-2" };
14
+ const _sfc_main = /* @__PURE__ */ defineComponent({
15
+ __name: "CommandPrompts",
16
+ props: {
17
+ command: {}
18
+ },
19
+ emits: ["close"],
20
+ setup(__props, { emit: __emit }) {
21
+ const props = __props;
22
+ const emit = __emit;
23
+ const promptTypes = {
24
+ text: _sfc_main$2,
25
+ select: _sfc_main$1
26
+ };
27
+ const answers = reactive({});
28
+ for (const prompt of props.command.prompts) {
29
+ let defaultValue;
30
+ if (typeof prompt.defaultValue === "function") {
31
+ defaultValue = prompt.defaultValue(answers);
32
+ } else {
33
+ defaultValue = prompt.defaultValue;
34
+ }
35
+ answers[prompt.field] = defaultValue;
36
+ }
37
+ function submit() {
38
+ const params = props.command.getParams ? props.command.getParams({ ...getCommandContext(), answers }) : answers;
39
+ executeCommand(props.command, params);
40
+ emit("close");
41
+ }
42
+ const promptComps = ref([]);
43
+ function focusPrompt(index) {
44
+ nextTick(() => {
45
+ promptComps.value[index]?.focus?.();
46
+ });
47
+ }
48
+ onMounted(() => {
49
+ focusPrompt(0);
50
+ });
51
+ return (_ctx, _cache) => {
52
+ return openBlock(), createElementBlock("form", {
53
+ class: "poveste-command-prompts htw-flex htw-flex-col",
54
+ onSubmit: _cache[0] || (_cache[0] = withModifiers(($event) => submit(), ["prevent"])),
55
+ onKeyup: _cache[1] || (_cache[1] = withKeys(($event) => _ctx.$emit("close"), ["escape"]))
56
+ }, [
57
+ createElementVNode("div", _hoisted_1, toDisplayString(__props.command.label), 1),
58
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.command.prompts, (prompt, index) => {
59
+ return openBlock(), createBlock(resolveDynamicComponent(promptTypes[prompt.type]), {
60
+ key: prompt.field,
61
+ ref_for: true,
62
+ ref_key: "promptComps",
63
+ ref: promptComps,
64
+ modelValue: answers[prompt.field],
65
+ "onUpdate:modelValue": ($event) => answers[prompt.field] = $event,
66
+ prompt,
67
+ answers,
68
+ index,
69
+ class: "hover:htw-bg-gray-500/10 focus-within:htw-bg-gray-500/5",
70
+ onNext: ($event) => focusPrompt(index + 1)
71
+ }, null, 40, ["modelValue", "onUpdate:modelValue", "prompt", "answers", "index", "onNext"]);
72
+ }), 128)),
73
+ createElementVNode("div", _hoisted_2, [
74
+ createVNode(_sfc_main$3, {
75
+ type: "submit",
76
+ class: "htw-px-4 htw-py-2 htw-flex htw-items-start htw-gap-2"
77
+ }, {
78
+ default: withCtx(() => [
79
+ createVNode(_sfc_main$4, { shortcut: "Enter" }),
80
+ _cache[2] || (_cache[2] = createElementVNode("span", null, "Submit", -1))
81
+ ]),
82
+ _: 1
83
+ })
84
+ ])
85
+ ], 32);
86
+ };
87
+ }
88
+ });
89
+ export {
90
+ _sfc_main as default
91
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./CommandPromptsModal.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,45 @@
1
+ import { defineComponent, defineAsyncComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, unref } from "@poveste/vendors/vue";
2
+ import { useCommandStore } from "../../stores/command.js";
3
+ "use strict";
4
+ const _hoisted_1 = {
5
+ key: 0,
6
+ class: "poveste-command-prompts-modal htw-fixed htw-inset-0 htw-bg-white/80 dark:htw-bg-gray-900/80 htw-z-20"
7
+ };
8
+ const _hoisted_2 = { class: "htw-bg-white dark:htw-bg-gray-900 md:htw-mt-16 md:htw-mx-auto htw-w-screen htw-max-w-[512px] htw-max-h-[80vh] htw-overflow-y-auto htw-scroll-smooth htw-shadow-xl htw-border htw-border-gray-200 dark:htw-border-gray-750 htw-rounded-lg htw-relative htw-divide-y htw-divide-gray-200 dark:htw-divide-gray-850" };
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ __name: "CommandPromptsModal",
11
+ props: {
12
+ shown: {
13
+ type: Boolean,
14
+ default: false
15
+ }
16
+ },
17
+ emits: {
18
+ close: () => true
19
+ },
20
+ setup(__props, { emit: __emit }) {
21
+ const CommandPrompts = defineAsyncComponent(() => import("./CommandPrompts.vue.js"));
22
+ const emit = __emit;
23
+ function close() {
24
+ emit("close");
25
+ }
26
+ const commandStore = useCommandStore();
27
+ return (_ctx, _cache) => {
28
+ return __props.shown ? (openBlock(), createElementBlock("div", _hoisted_1, [
29
+ createElementVNode("div", {
30
+ class: "htw-absolute htw-inset-0",
31
+ onClick: _cache[0] || (_cache[0] = ($event) => close())
32
+ }),
33
+ createElementVNode("div", _hoisted_2, [
34
+ createVNode(unref(CommandPrompts), {
35
+ command: unref(commandStore).selectedCommand,
36
+ onClose: _cache[1] || (_cache[1] = ($event) => close())
37
+ }, null, 8, ["command"])
38
+ ])
39
+ ])) : createCommentVNode("", true);
40
+ };
41
+ }
42
+ });
43
+ export {
44
+ _sfc_main as default
45
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./PromptSelect.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,142 @@
1
+ import { defineComponent, computed, ref, watchEffect, createElementBlock, openBlock, withDirectives, createElementVNode, vModelText, createCommentVNode, toDisplayString, createTextVNode, createVNode, withKeys, withModifiers, unref, Fragment, renderList, normalizeClass, createBlock } from "@poveste/vendors/vue";
2
+ import { Icon } from "@poveste/vendors/iconify";
3
+ import { useSelection } from "../../util/select.js";
4
+ import "../base/BaseKeyboardShortcut.vue.js";
5
+ import _sfc_main$1 from "../base/BaseKeyboardShortcut.vue2.js";
6
+ "use strict";
7
+ const _hoisted_1 = { class: "poveste-prompt-select htw-relative htw-group" };
8
+ const _hoisted_2 = ["required"];
9
+ const _hoisted_3 = { class: "htw-flex htw-flex-col htw-gap-2 htw-p-2" };
10
+ const _hoisted_4 = { class: "htw-px-2 htw-flex" };
11
+ const _hoisted_5 = {
12
+ key: 0,
13
+ class: "htw-opacity-70"
14
+ };
15
+ const _hoisted_6 = { class: "htw-opacity-40 htw-text-sm htw-ml-auto htw-invisible group-focus-within:htw-visible" };
16
+ const _hoisted_7 = { class: "htw-overflow-auto max-h-[300px] htw-mb-2" };
17
+ const _hoisted_8 = ["onClick"];
18
+ const _hoisted_9 = { class: "htw-flex-1" };
19
+ const _sfc_main = /* @__PURE__ */ defineComponent({
20
+ __name: "PromptSelect",
21
+ props: {
22
+ modelValue: {},
23
+ prompt: {},
24
+ answers: {}
25
+ },
26
+ emits: ["update:modelValue", "next"],
27
+ setup(__props, { expose: __expose, emit: __emit }) {
28
+ const props = __props;
29
+ const emit = __emit;
30
+ const model = computed({
31
+ get: () => props.modelValue,
32
+ set: (value) => {
33
+ emit("update:modelValue", value);
34
+ emit("next");
35
+ }
36
+ });
37
+ const input = ref();
38
+ function focus() {
39
+ input.value?.focus();
40
+ input.value?.select();
41
+ }
42
+ __expose({
43
+ focus
44
+ });
45
+ const search = ref("");
46
+ const options = ref([]);
47
+ let requestId = 0;
48
+ watchEffect(async () => {
49
+ if (typeof props.prompt.options === "function") {
50
+ const rId = ++requestId;
51
+ const result = await props.prompt.options(search.value, props.answers);
52
+ if (rId === requestId) {
53
+ options.value = result;
54
+ }
55
+ } else {
56
+ options.value = props.prompt.options;
57
+ }
58
+ });
59
+ const formattedOptions = computed(() => {
60
+ return options.value.map((option) => {
61
+ if (typeof option === "string") {
62
+ return {
63
+ value: option,
64
+ label: option
65
+ };
66
+ } else {
67
+ return option;
68
+ }
69
+ });
70
+ });
71
+ const {
72
+ selectedIndex,
73
+ selectNext,
74
+ selectPrevious
75
+ } = useSelection(formattedOptions);
76
+ function selectIndex(index) {
77
+ const result = formattedOptions.value[index].value;
78
+ if (result) {
79
+ model.value = result;
80
+ }
81
+ }
82
+ return (_ctx, _cache) => {
83
+ return openBlock(), createElementBlock("div", _hoisted_1, [
84
+ withDirectives(createElementVNode("input", {
85
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
86
+ required: __props.prompt.required,
87
+ tabindex: "-1",
88
+ class: "htw-absolute htw-inset-0 htw-opacity-0 htw-pointer-events-none"
89
+ }, null, 8, _hoisted_2), [
90
+ [vModelText, model.value]
91
+ ]),
92
+ createElementVNode("label", _hoisted_3, [
93
+ createElementVNode("span", _hoisted_4, [
94
+ createElementVNode("span", null, toDisplayString(__props.prompt.label), 1),
95
+ __props.prompt.required ? (openBlock(), createElementBlock("span", _hoisted_5, "*")) : createCommentVNode("", true),
96
+ createElementVNode("span", _hoisted_6, [
97
+ _cache[5] || (_cache[5] = createTextVNode(" Press ", -1)),
98
+ createVNode(_sfc_main$1, { shortcut: "Space" }),
99
+ _cache[6] || (_cache[6] = createTextVNode(" to select ", -1))
100
+ ])
101
+ ]),
102
+ withDirectives(createElementVNode("input", {
103
+ ref_key: "input",
104
+ ref: input,
105
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => search.value = $event),
106
+ class: "htw-bg-transparent htw-w-full htw-p-2 htw-border htw-border-gray-500/50 focus:htw-border-primary-500/50 htw-rounded htw-outline-none",
107
+ onKeydown: [
108
+ _cache[2] || (_cache[2] = withKeys(withModifiers(($event) => unref(selectNext)(), ["prevent"]), ["down"])),
109
+ _cache[3] || (_cache[3] = withKeys(withModifiers(($event) => unref(selectPrevious)(), ["prevent"]), ["up"])),
110
+ _cache[4] || (_cache[4] = withKeys(withModifiers(($event) => selectIndex(unref(selectedIndex)), ["prevent"]), ["space"]))
111
+ ]
112
+ }, null, 544), [
113
+ [vModelText, search.value]
114
+ ])
115
+ ]),
116
+ createElementVNode("div", _hoisted_7, [
117
+ (openBlock(true), createElementBlock(Fragment, null, renderList(formattedOptions.value, (option, index) => {
118
+ return openBlock(), createElementBlock("button", {
119
+ key: option.value,
120
+ type: "button",
121
+ tabindex: "-1",
122
+ class: normalizeClass([[
123
+ model.value === option.value ? "htw-bg-primary-500/20" : index === unref(selectedIndex) ? "htw-bg-primary-500/10" : "htw-bg-transparent"
124
+ ], "htw-w-full htw-text-left htw-px-4 htw-py-2 hover:htw-bg-primary-500/10 htw-flex htw-items-center"]),
125
+ onClick: ($event) => model.value = option.value
126
+ }, [
127
+ createElementVNode("span", _hoisted_9, toDisplayString(option.label), 1),
128
+ model.value === option.value ? (openBlock(), createBlock(unref(Icon), {
129
+ key: 0,
130
+ icon: "carbon:checkmark",
131
+ class: "htw-w-4 htw-h-4 htw-text-primary-500"
132
+ })) : createCommentVNode("", true)
133
+ ], 10, _hoisted_8);
134
+ }), 128))
135
+ ])
136
+ ]);
137
+ };
138
+ }
139
+ });
140
+ export {
141
+ _sfc_main as default
142
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./PromptText.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,67 @@
1
+ import { defineComponent, computed, ref, watch, createElementBlock, openBlock, createElementVNode, withDirectives, createCommentVNode, toDisplayString, vModelText } from "@poveste/vendors/vue";
2
+ "use strict";
3
+ const _hoisted_1 = { class: "poveste-prompt-text" };
4
+ const _hoisted_2 = { class: "htw-flex htw-flex-col htw-gap-2 htw-p-2" };
5
+ const _hoisted_3 = { class: "htw-px-2" };
6
+ const _hoisted_4 = {
7
+ key: 0,
8
+ class: "htw-opacity-70"
9
+ };
10
+ const _hoisted_5 = ["required"];
11
+ const _sfc_main = /* @__PURE__ */ defineComponent({
12
+ __name: "PromptText",
13
+ props: {
14
+ modelValue: {},
15
+ prompt: {},
16
+ answers: {}
17
+ },
18
+ emits: ["update:modelValue"],
19
+ setup(__props, { expose: __expose, emit: __emit }) {
20
+ const props = __props;
21
+ const emit = __emit;
22
+ const model = computed({
23
+ get: () => props.modelValue,
24
+ set: (value) => emit("update:modelValue", value)
25
+ });
26
+ const input = ref();
27
+ function focus() {
28
+ input.value?.focus();
29
+ input.value?.select();
30
+ }
31
+ __expose({
32
+ focus
33
+ });
34
+ const defaultValue = computed(() => {
35
+ if (typeof props.prompt.defaultValue === "function") {
36
+ return props.prompt.defaultValue(props.answers);
37
+ } else {
38
+ return props.prompt.defaultValue;
39
+ }
40
+ });
41
+ watch(defaultValue, (value) => {
42
+ model.value = value;
43
+ });
44
+ return (_ctx, _cache) => {
45
+ return openBlock(), createElementBlock("div", _hoisted_1, [
46
+ createElementVNode("label", _hoisted_2, [
47
+ createElementVNode("span", _hoisted_3, [
48
+ createElementVNode("span", null, toDisplayString(__props.prompt.label), 1),
49
+ __props.prompt.required ? (openBlock(), createElementBlock("span", _hoisted_4, "*")) : createCommentVNode("", true)
50
+ ]),
51
+ withDirectives(createElementVNode("input", {
52
+ ref_key: "input",
53
+ ref: input,
54
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
55
+ class: "htw-bg-transparent htw-w-full htw-p-2 htw-border htw-border-gray-500/50 focus:htw-border-primary-500/50 htw-rounded htw-outline-none",
56
+ required: __props.prompt.required
57
+ }, null, 8, _hoisted_5), [
58
+ [vModelText, model.value]
59
+ ])
60
+ ])
61
+ ]);
62
+ };
63
+ }
64
+ });
65
+ export {
66
+ _sfc_main as default
67
+ };
@@ -0,0 +1,40 @@
1
+ import { createElementBlock, openBlock, createElementVNode } from "@poveste/vendors/vue";
2
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
3
+ const _sfc_main = {};
4
+ const _hoisted_1 = { fill: "none" };
5
+ function _sfc_render(_ctx, _cache) {
6
+ return openBlock(), createElementBlock("svg", _hoisted_1, [..._cache[0] || (_cache[0] = [
7
+ createElementVNode("pattern", {
8
+ id: "checkerboard",
9
+ width: "64",
10
+ height: "64",
11
+ patternUnits: "userSpaceOnUse"
12
+ }, [
13
+ createElementVNode("rect", {
14
+ x: "0",
15
+ y: "0",
16
+ width: "32",
17
+ height: "32",
18
+ fill: "currentColor"
19
+ }),
20
+ createElementVNode("rect", {
21
+ x: "32",
22
+ y: "32",
23
+ width: "32",
24
+ height: "32",
25
+ fill: "currentColor"
26
+ })
27
+ ], -1),
28
+ createElementVNode("rect", {
29
+ x: "0",
30
+ y: "0",
31
+ width: "100%",
32
+ height: "100%",
33
+ fill: "url(#checkerboard)"
34
+ }, null, -1)
35
+ ])]);
36
+ }
37
+ const CheckerboardPattern = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
38
+ export {
39
+ CheckerboardPattern as default
40
+ };
@@ -0,0 +1,12 @@
1
+ import { createElementBlock, openBlock } from "@poveste/vendors/vue";
2
+ /* empty css */
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const _sfc_main = {};
5
+ const _hoisted_1 = { class: "__poveste-hatched-pattern" };
6
+ function _sfc_render(_ctx, _cache) {
7
+ return openBlock(), createElementBlock("div", _hoisted_1);
8
+ }
9
+ const HatchedPattern = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-c1be54fa"]]);
10
+ export {
11
+ HatchedPattern as default
12
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./ControlsComponentPropItem.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,72 @@
1
+ import { defineComponent, computed, resolveDirective, createBlock, createCommentVNode, openBlock, resolveDynamicComponent, withCtx, withDirectives, createVNode, unref, withModifiers, normalizeClass } from "@poveste/vendors/vue";
2
+ import { Icon } from "@poveste/vendors/iconify";
3
+ import { HstJson, HstCheckbox, HstNumber, HstText } from "@poveste/controls";
4
+ "use strict";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "ControlsComponentPropItem",
7
+ props: {
8
+ variant: {},
9
+ component: {},
10
+ definition: {}
11
+ },
12
+ setup(__props) {
13
+ const props = __props;
14
+ const comp = computed(() => {
15
+ switch (props.definition.types?.[0]) {
16
+ case "string":
17
+ return HstText;
18
+ case "number":
19
+ return HstNumber;
20
+ case "boolean":
21
+ return HstCheckbox;
22
+ case "object":
23
+ default:
24
+ return HstJson;
25
+ }
26
+ });
27
+ const model = computed({
28
+ get: () => {
29
+ return props.variant.state._hPropState[props.component.index]?.[props.definition.name];
30
+ },
31
+ set: (value) => {
32
+ if (!props.variant.state._hPropState[props.component.index]) {
33
+ props.variant.state._hPropState[props.component.index] = {};
34
+ }
35
+ props.variant.state._hPropState[props.component.index][props.definition.name] = value;
36
+ }
37
+ });
38
+ function reset() {
39
+ if (props.variant.state._hPropState[props.component.index]) {
40
+ delete props.variant.state._hPropState[props.component.index][props.definition.name];
41
+ }
42
+ }
43
+ const canReset = computed(() => props.variant.state?._hPropState?.[props.component.index] && props.definition.name in props.variant.state._hPropState[props.component.index]);
44
+ return (_ctx, _cache) => {
45
+ const _directive_tooltip = resolveDirective("tooltip");
46
+ return comp.value ? (openBlock(), createBlock(resolveDynamicComponent(comp.value), {
47
+ key: 0,
48
+ modelValue: model.value,
49
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => model.value = $event),
50
+ placeholder: model.value === void 0 ? __props.definition?.default : null,
51
+ class: "poveste-controls-component-prop-item",
52
+ title: `${__props.definition.name}${canReset.value ? " *" : ""}`
53
+ }, {
54
+ actions: withCtx(() => [
55
+ withDirectives(createVNode(unref(Icon), {
56
+ icon: "carbon:erase",
57
+ class: normalizeClass(["htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", [
58
+ canReset.value ? "htw-opacity-50 hover:htw-opacity-100" : "htw-opacity-25 htw-pointer-events-none"
59
+ ]]),
60
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => reset(), ["stop"]))
61
+ }, null, 8, ["class"]), [
62
+ [_directive_tooltip, "Remove override"]
63
+ ])
64
+ ]),
65
+ _: 1
66
+ }, 8, ["modelValue", "placeholder", "title"])) : createCommentVNode("", true);
67
+ };
68
+ }
69
+ });
70
+ export {
71
+ _sfc_main as default
72
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./ControlsComponentProps.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,45 @@
1
+ import { defineComponent, resolveDirective, createElementBlock, openBlock, createElementVNode, withDirectives, createVNode, unref, createTextVNode, toDisplayString, Fragment, renderList, createBlock } from "@poveste/vendors/vue";
2
+ import { Icon } from "@poveste/vendors/iconify";
3
+ import "./ControlsComponentPropItem.vue.js";
4
+ import _sfc_main$1 from "./ControlsComponentPropItem.vue2.js";
5
+ "use strict";
6
+ const _hoisted_1 = { class: "poveste-controls-component-props" };
7
+ const _hoisted_2 = { class: "htw-font-mono htw-p-2 htw-flex htw-items-center htw-gap-1" };
8
+ const _sfc_main = /* @__PURE__ */ defineComponent({
9
+ __name: "ControlsComponentProps",
10
+ props: {
11
+ variant: {},
12
+ definition: {}
13
+ },
14
+ setup(__props) {
15
+ return (_ctx, _cache) => {
16
+ const _directive_tooltip = resolveDirective("tooltip");
17
+ return openBlock(), createElementBlock("div", _hoisted_1, [
18
+ createElementVNode("div", _hoisted_2, [
19
+ withDirectives(createVNode(unref(Icon), {
20
+ icon: "carbon:flash",
21
+ class: "htw-w-4 htw-h-4 htw-text-primary-500 htw-flex-none"
22
+ }, null, 512), [
23
+ [_directive_tooltip, "Auto-detected props"]
24
+ ]),
25
+ createElementVNode("div", null, [
26
+ _cache[0] || (_cache[0] = createElementVNode("span", { class: "htw-opacity-30" }, "<", -1)),
27
+ createTextVNode(toDisplayString(__props.definition.name), 1),
28
+ _cache[1] || (_cache[1] = createElementVNode("span", { class: "htw-opacity-30" }, ">", -1))
29
+ ])
30
+ ]),
31
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.definition.props, (prop) => {
32
+ return openBlock(), createBlock(_sfc_main$1, {
33
+ key: prop.name,
34
+ variant: __props.variant,
35
+ component: __props.definition,
36
+ definition: prop
37
+ }, null, 8, ["variant", "component", "definition"]);
38
+ }), 128))
39
+ ]);
40
+ };
41
+ }
42
+ });
43
+ export {
44
+ _sfc_main as default
45
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./ControlsComponentState.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,41 @@
1
+ import { defineComponent, computed, resolveDirective, createElementBlock, openBlock, createElementVNode, withDirectives, createVNode, unref, Fragment, renderList, createBlock } from "@poveste/vendors/vue";
2
+ import { Icon } from "@poveste/vendors/iconify";
3
+ import "./ControlsComponentStateItem.vue.js";
4
+ import _sfc_main$1 from "./ControlsComponentStateItem.vue2.js";
5
+ "use strict";
6
+ const _hoisted_1 = { class: "poveste-controls-component-init-state" };
7
+ const _hoisted_2 = { class: "htw-p-2 htw-flex htw-items-center htw-gap-1" };
8
+ const _sfc_main = /* @__PURE__ */ defineComponent({
9
+ __name: "ControlsComponentState",
10
+ props: {
11
+ variant: {}
12
+ },
13
+ setup(__props) {
14
+ const props = __props;
15
+ const stateKeys = computed(() => Object.keys(props.variant.state || {}).filter((key) => !key.startsWith("_h")));
16
+ return (_ctx, _cache) => {
17
+ const _directive_tooltip = resolveDirective("tooltip");
18
+ return openBlock(), createElementBlock("div", _hoisted_1, [
19
+ createElementVNode("div", _hoisted_2, [
20
+ withDirectives(createVNode(unref(Icon), {
21
+ icon: "carbon:data-vis-1",
22
+ class: "htw-w-4 htw-h-4 htw-text-primary-500 htw-flex-none"
23
+ }, null, 512), [
24
+ [_directive_tooltip, "Auto-detected state"]
25
+ ]),
26
+ _cache[0] || (_cache[0] = createElementVNode("div", null, " State ", -1))
27
+ ]),
28
+ (openBlock(true), createElementBlock(Fragment, null, renderList(stateKeys.value, (key) => {
29
+ return openBlock(), createBlock(_sfc_main$1, {
30
+ key,
31
+ item: key,
32
+ variant: __props.variant
33
+ }, null, 8, ["item", "variant"]);
34
+ }), 128))
35
+ ]);
36
+ };
37
+ }
38
+ });
39
+ export {
40
+ _sfc_main as default
41
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./ControlsComponentStateItem.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,46 @@
1
+ import { defineComponent, computed, createBlock, createCommentVNode, openBlock, resolveDynamicComponent } from "@poveste/vendors/vue";
2
+ import { HstJson, HstCheckbox, HstNumber, HstText } from "@poveste/controls";
3
+ "use strict";
4
+ const _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "ControlsComponentStateItem",
6
+ props: {
7
+ variant: {},
8
+ item: {}
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ const comp = computed(() => {
13
+ switch (typeof props.variant.state[props.item]) {
14
+ case "string":
15
+ return HstText;
16
+ case "number":
17
+ return HstNumber;
18
+ case "boolean":
19
+ return HstCheckbox;
20
+ case "object":
21
+ default:
22
+ return HstJson;
23
+ }
24
+ });
25
+ const model = computed({
26
+ get: () => {
27
+ return props.variant.state[props.item];
28
+ },
29
+ set: (value) => {
30
+ props.variant.state[props.item] = value;
31
+ }
32
+ });
33
+ return (_ctx, _cache) => {
34
+ return comp.value ? (openBlock(), createBlock(resolveDynamicComponent(comp.value), {
35
+ key: 0,
36
+ modelValue: model.value,
37
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
38
+ class: "poveste-controls-component-prop-item",
39
+ title: props.item
40
+ }, null, 8, ["modelValue", "title"])) : createCommentVNode("", true);
41
+ };
42
+ }
43
+ });
44
+ export {
45
+ _sfc_main as default
46
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./PaneTabs.vue2.js";
2
+ "use strict";
3
+ export {
4
+ _sfc_main as default
5
+ };