@blokkli/editor 2.0.0-alpha.12 → 2.0.0-alpha.14
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/module.d.mts +1 -1
- package/dist/module.json +5 -5
- package/dist/module.mjs +4006 -1164
- package/dist/modules/drupal/graphql/base/fragment.ParagraphsBlokkliConfigInput.graphql +31 -0
- package/dist/modules/drupal/graphql/base/fragment.blokkliProps.graphql +1 -0
- package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +1 -0
- package/dist/modules/drupal/graphql/base/query.pbEntityConfig.graphql +5 -0
- package/dist/modules/drupal/graphql/features/transform.graphql +9 -1
- package/dist/modules/drupal/graphql/features/transform_host.graphql +38 -0
- package/dist/modules/drupal/graphql/mutations/update_host_options.graphql +15 -0
- package/dist/modules/drupal/index.d.mts +1 -1
- package/dist/modules/drupal/index.mjs +20 -7
- package/dist/modules/drupal/runtime/adapter/index.js +109 -4
- package/dist/runtime/adapter/index.d.ts +54 -1
- package/dist/runtime/blokkliPlugins/AddAction/index.vue +27 -3
- package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue +65 -0
- package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue.d.ts +26 -0
- package/dist/runtime/blokkliPlugins/ContextMenu/Menu/index.vue +3 -0
- package/dist/runtime/blokkliPlugins/ContextMenu/index.vue +3 -2
- package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue +3 -3
- package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue +49 -11
- package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue.d.ts +29 -15
- package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -7
- package/dist/runtime/blokkliPlugins/Sidebar/index.vue +2 -9
- package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +4 -4
- package/dist/runtime/blokkliPlugins/ViewOption/index.vue +6 -3
- package/dist/runtime/blokkliPlugins/index.d.ts +8 -7
- package/dist/runtime/blokkliPlugins/index.js +15 -13
- package/dist/runtime/components/Blocks/Fragment/icon.svg +1 -1
- package/dist/runtime/components/BlokkliProvider.vue +1 -0
- package/dist/runtime/components/BlokkliProvider.vue.d.ts +1 -0
- package/dist/runtime/components/Edit/Actions/index.vue +39 -67
- package/dist/runtime/components/Edit/AddListItem/index.vue +2 -5
- package/dist/runtime/components/Edit/AddListItem/index.vue.d.ts +1 -1
- package/dist/runtime/components/Edit/AddListItemIcon/index.vue +19 -0
- package/dist/runtime/components/Edit/AddListItemIcon/index.vue.d.ts +15 -0
- package/dist/runtime/components/Edit/AppMenu/index.vue +5 -5
- package/dist/runtime/components/Edit/Dialog/index.vue +5 -1
- package/dist/runtime/components/Edit/Dialog/index.vue.d.ts +1 -1
- package/dist/runtime/components/Edit/DiffViewer/State.vue +276 -0
- package/dist/runtime/components/Edit/DiffViewer/State.vue.d.ts +16 -0
- package/dist/runtime/components/Edit/DragInteractions/index.vue +45 -8
- package/dist/runtime/components/Edit/EditProvider.vue +46 -35
- package/dist/runtime/components/Edit/Features/AddList/index.vue +15 -25
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/fragment.glsl +58 -0
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue +168 -0
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue.d.ts +9 -0
- package/dist/runtime/components/Edit/Features/Analyze/Overlay/vertex.glsl +72 -0
- package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue +159 -0
- package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue +100 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue +56 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue.d.ts +3 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue +87 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue +101 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue.d.ts +8 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue +18 -0
- package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue.d.ts +8 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue +92 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue.d.ts +17 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue +77 -0
- package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.d.ts +12 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.js +75 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.d.ts +4 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.js +5 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.d.ts +32 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.js +45 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.d.ts +5 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.js +95 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.d.ts +3 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.js +13 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.js +2 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.js +165 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.d.ts +44 -0
- package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.js +0 -0
- package/dist/runtime/components/Edit/Features/Analyze/helper.d.ts +5 -0
- package/dist/runtime/components/Edit/Features/Analyze/helper.js +28 -0
- package/dist/runtime/components/Edit/Features/Analyze/index.vue +44 -0
- package/dist/runtime/components/Edit/Features/Anchors/Renderer.vue +136 -0
- package/dist/runtime/components/Edit/Features/Anchors/index.vue +32 -0
- package/dist/runtime/components/Edit/Features/Anchors/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +25 -13
- package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +296 -0
- package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Features/Artboard/index.vue +10 -245
- package/dist/runtime/components/Edit/Features/Assistant/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/BlockAddList/index.vue +4 -4
- package/dist/runtime/components/Edit/Features/Clipboard/index.vue +161 -28
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue +16 -4
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue.d.ts +0 -1
- package/dist/runtime/components/Edit/Features/CommandPalette/Palette/index.vue +4 -53
- package/dist/runtime/components/Edit/Features/CommandPalette/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Conversions/index.vue +12 -14
- package/dist/runtime/components/Edit/Features/Debug/Viewport/index.vue +14 -0
- package/dist/runtime/components/Edit/Features/Debug/index.vue +27 -24
- package/dist/runtime/components/Edit/Features/Diff/DiffView/index.vue +13 -190
- package/dist/runtime/components/Edit/Features/Diff/index.vue +2 -2
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DragItems/index.vue +4 -4
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/fragment.glsl +1 -1
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue +35 -71
- package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/vertex.glsl +1 -1
- package/dist/runtime/components/Edit/Features/DraggingOverlay/index.vue +62 -48
- package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/EditForm/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/EditableField/index.vue +6 -2
- package/dist/runtime/components/Edit/Features/EditableMask/index.vue +3 -20
- package/dist/runtime/components/Edit/Features/Fragments/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/History/index.vue +35 -12
- package/dist/runtime/components/Edit/Features/ImportExisting/Dialog/index.vue +6 -2
- package/dist/runtime/components/Edit/Features/ImportExisting/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Library/index.vue +11 -9
- package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +5 -8
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/fragment.glsl +1 -1
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/index.vue +9 -4
- package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/vertex.glsl +1 -1
- package/dist/runtime/components/Edit/Features/MultiSelect/index.vue +8 -14
- package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Features/Options/Form/Item.vue +9 -3
- package/dist/runtime/components/Edit/Features/Options/Form/Item.vue.d.ts +0 -1
- package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue +37 -19
- package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue.d.ts +8 -2
- package/dist/runtime/components/Edit/Features/Options/Form/index.vue +81 -37
- package/dist/runtime/components/Edit/Features/Options/Form/index.vue.d.ts +5 -5
- package/dist/runtime/components/Edit/Features/Options/index.vue +30 -6
- package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue +1 -0
- package/dist/runtime/components/Edit/Features/Publish/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Revert/index.vue +3 -3
- package/dist/runtime/components/Edit/Features/Search/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue +54 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue.d.ts +14 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +120 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue.d.ts +15 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue +459 -0
- package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Features/Selection/Overlay/fragment.glsl +15 -10
- package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue +32 -11
- package/dist/runtime/components/Edit/Features/Selection/Overlay/vertex.glsl +1 -1
- package/dist/runtime/components/Edit/Features/Selection/index.vue +76 -7
- package/dist/runtime/components/Edit/Features/Settings/Dialog/FeatureSetting/index.vue +12 -17
- package/dist/runtime/components/Edit/Features/Settings/index.vue +11 -25
- package/dist/runtime/components/Edit/Features/Theme/Color/index.vue +5 -1
- package/dist/runtime/components/Edit/Features/Theme/index.vue +2 -1
- package/dist/runtime/components/Edit/Features/TouchActionBar/index.vue +3 -2
- package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue +198 -0
- package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue.d.ts +13 -0
- package/dist/runtime/components/Edit/Features/Transform/index.vue +155 -44
- package/dist/runtime/components/Edit/Form/Radio/index.vue +33 -0
- package/dist/runtime/components/Edit/Form/Radio/index.vue.d.ts +20 -0
- package/dist/runtime/components/Edit/Form/RadioTabs/index.vue +37 -0
- package/dist/runtime/components/Edit/Form/RadioTabs/index.vue.d.ts +22 -0
- package/dist/runtime/components/Edit/Form/Select/index.vue +29 -0
- package/dist/runtime/components/Edit/Form/Select/index.vue.d.ts +20 -0
- package/dist/runtime/components/Edit/Form/Text/index.vue +33 -0
- package/dist/runtime/components/Edit/Form/Text/index.vue.d.ts +19 -0
- package/dist/runtime/components/Edit/Form/Textarea/index.vue +13 -6
- package/dist/runtime/components/Edit/Form/Textarea/index.vue.d.ts +4 -0
- package/dist/runtime/components/Edit/FormOverlay/index.vue +1 -1
- package/dist/runtime/components/Edit/Indicators/index.vue +123 -0
- package/dist/runtime/components/Edit/Indicators/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/ItemIcon/index.vue +2 -1
- package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue +66 -0
- package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue.d.ts +7 -0
- package/dist/runtime/components/Edit/Konami/Game/blokkli.png +0 -0
- package/dist/runtime/components/Edit/Konami/Game/charmap.d.ts +2 -0
- package/dist/runtime/components/Edit/Konami/Game/charmap.js +168 -0
- package/dist/runtime/components/Edit/Konami/Game/index.vue +745 -0
- package/dist/runtime/components/Edit/Konami/Game/index.vue.d.ts +6 -0
- package/dist/runtime/components/Edit/Konami/Game/textRendering.d.ts +8 -0
- package/dist/runtime/components/Edit/Konami/Game/textRendering.js +138 -0
- package/dist/runtime/components/Edit/Konami/Game/useIconRendering.d.ts +9 -0
- package/dist/runtime/components/Edit/Konami/Game/useIconRendering.js +130 -0
- package/dist/runtime/components/Edit/Konami/index.vue +44 -0
- package/dist/runtime/components/Edit/Konami/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Loading/index.vue +6 -2
- package/dist/runtime/components/Edit/Loading/index.vue.d.ts +2 -0
- package/dist/runtime/components/Edit/Messages/index.vue +8 -3
- package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue +17 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue.d.ts +11 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue +37 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue.d.ts +11 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue +43 -0
- package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue.d.ts +11 -0
- package/dist/runtime/components/Edit/PluginConfigForm/index.vue +57 -0
- package/dist/runtime/components/Edit/PluginConfigForm/index.vue.d.ts +16 -0
- package/dist/runtime/components/Edit/PreviewProvider.vue +3 -4
- package/dist/runtime/components/Edit/RelativeTime/index.vue +3 -2
- package/dist/runtime/components/Edit/ShortcutIndicator/index.vue +8 -3
- package/dist/runtime/components/Edit/SystemRequirements/index.vue +3 -3
- package/dist/runtime/components/Edit/Toolbar/index.vue +3 -2
- package/dist/runtime/components/Edit/Transition/index.vue +41 -0
- package/dist/runtime/components/Edit/Transition/index.vue.d.ts +19 -0
- package/dist/runtime/components/Edit/index.d.ts +23 -15
- package/dist/runtime/components/Edit/index.js +44 -28
- package/dist/runtime/composables/defineBlokkli.js +7 -3
- package/dist/runtime/composables/defineBlokkliFeature.d.ts +4 -7
- package/dist/runtime/composables/defineBlokkliProvider.d.ts +11 -0
- package/dist/runtime/composables/defineBlokkliProvider.js +46 -0
- package/dist/runtime/composables/useBlokkliHelper.js +1 -1
- package/dist/runtime/constants/index.d.ts +3 -0
- package/dist/runtime/constants/index.js +3 -0
- package/dist/runtime/css/output.css +1 -1
- package/dist/runtime/helpers/addElementClasses.d.ts +2 -0
- package/dist/runtime/helpers/addElementClasses.js +24 -0
- package/dist/runtime/helpers/animationProvider.d.ts +4 -2
- package/dist/runtime/helpers/animationProvider.js +7 -2
- package/dist/runtime/helpers/bundles/index.d.ts +1 -0
- package/dist/runtime/helpers/bundles/index.js +4 -0
- package/dist/runtime/helpers/composables/useStickyToolbar.d.ts +20 -0
- package/dist/runtime/helpers/composables/useStickyToolbar.js +215 -0
- package/dist/runtime/helpers/definitionProvider.d.ts +2 -1
- package/dist/runtime/helpers/definitionProvider.js +17 -0
- package/dist/runtime/helpers/dom/index.d.ts +59 -0
- package/dist/runtime/helpers/dom/index.js +48 -0
- package/dist/runtime/helpers/domProvider.d.ts +2 -1
- package/dist/runtime/helpers/domProvider.js +89 -43
- package/dist/runtime/helpers/dropTargets/index.d.ts +6 -0
- package/dist/runtime/helpers/dropTargets/index.js +49 -0
- package/dist/runtime/helpers/eventBus.d.ts +1 -1
- package/dist/runtime/helpers/eventBus.js +2 -2
- package/dist/runtime/helpers/index.d.ts +10 -1
- package/dist/runtime/helpers/index.js +57 -0
- package/dist/runtime/helpers/indicatorsProvider.d.ts +10 -0
- package/dist/runtime/helpers/indicatorsProvider.js +23 -0
- package/dist/runtime/helpers/keyboardProvider.d.ts +2 -0
- package/dist/runtime/helpers/keyboardProvider.js +17 -1
- package/dist/runtime/helpers/pluginProvider.d.ts +10 -0
- package/dist/runtime/helpers/pluginProvider.js +33 -0
- package/dist/runtime/helpers/renderCycle.d.ts +1 -0
- package/dist/runtime/helpers/renderCycle.js +10 -0
- package/dist/runtime/helpers/runtimeHelpers/index.js +14 -11
- package/dist/runtime/helpers/selectionProvider.d.ts +16 -0
- package/dist/runtime/helpers/selectionProvider.js +47 -35
- package/dist/runtime/helpers/stateProvider.d.ts +6 -2
- package/dist/runtime/helpers/stateProvider.js +58 -14
- package/dist/runtime/helpers/storageProvider.d.ts +4 -3
- package/dist/runtime/helpers/storageProvider.js +56 -3
- package/dist/runtime/helpers/symbols.d.ts +1 -0
- package/dist/runtime/helpers/symbols.js +1 -0
- package/dist/runtime/helpers/textProvider.js +6 -0
- package/dist/runtime/helpers/themeProvider.d.ts +2 -0
- package/dist/runtime/helpers/themeProvider.js +4 -1
- package/dist/runtime/helpers/transform.js +1 -3
- package/dist/runtime/helpers/uiProvider.d.ts +7 -2
- package/dist/runtime/helpers/uiProvider.js +49 -47
- package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
- package/dist/runtime/helpers/useTransitionedValue.js +57 -0
- package/dist/runtime/icons/anchor.svg +1 -0
- package/dist/runtime/icons/arrow-left.svg +1 -1
- package/dist/runtime/icons/arrow-right.svg +1 -1
- package/dist/runtime/icons/arrow-top-right.svg +1 -0
- package/dist/runtime/icons/chart.svg +1 -0
- package/dist/runtime/icons/copy.svg +1 -0
- package/dist/runtime/icons/cursor-move.svg +1 -1
- package/dist/runtime/icons/diff.svg +1 -1
- package/dist/runtime/icons/eye.svg +1 -1
- package/dist/runtime/icons/info.svg +1 -1
- package/dist/runtime/icons/link.svg +1 -0
- package/dist/runtime/icons/speedometer.svg +1 -0
- package/dist/runtime/types/blokkOptions.d.ts +8 -0
- package/dist/runtime/types/index.d.ts +163 -5
- package/dist/runtime/types/theme.d.ts +2 -1
- package/dist/shared/{editor.gz_ac6uT.d.mts → editor.CKsrTpc1.d.mts} +1 -1
- package/package.json +55 -38
- package/dist/runtime/components/Edit/Features/FieldAreas/Overlay/index.vue +0 -22
- package/dist/runtime/components/Edit/Features/FieldAreas/index.vue +0 -41
- /package/dist/runtime/components/Edit/Features/{FieldAreas/Overlay → Analyze}/index.vue.d.ts +0 -0
- /package/dist/runtime/components/Edit/Features/{FieldAreas/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
|
@@ -2,29 +2,37 @@ import {
|
|
|
2
2
|
onMounted,
|
|
3
3
|
onBeforeUnmount,
|
|
4
4
|
ref,
|
|
5
|
-
computed
|
|
6
|
-
watch
|
|
5
|
+
computed
|
|
7
6
|
} from "vue";
|
|
8
7
|
import { eventBus } from "./eventBus.js";
|
|
9
8
|
import { falsy } from "./index.js";
|
|
10
|
-
|
|
9
|
+
import { addElementClasses } from "./addElementClasses.js";
|
|
10
|
+
import { defaultLanguage, forceDefaultLanguage } from "#blokkli-build/config";
|
|
11
11
|
const CLASS_PROXY_MODE = "bk-is-proxy-mode";
|
|
12
|
-
export default function(storage, state) {
|
|
12
|
+
export default function(storage, state, context) {
|
|
13
13
|
let cachedRootElement = null;
|
|
14
14
|
let cachedArtboardElement = null;
|
|
15
15
|
let cachedProviderElement = null;
|
|
16
|
+
const interfaceLanguage = computed(() => {
|
|
17
|
+
return forceDefaultLanguage ? defaultLanguage : context.value.language;
|
|
18
|
+
});
|
|
16
19
|
const isProxyMode = ref(false);
|
|
17
20
|
const menuIsOpen = ref(false);
|
|
21
|
+
const hasDialogOpen = ref(false);
|
|
22
|
+
const hasAddTooltipOpen = ref(false);
|
|
23
|
+
const hasTransformOverlayOpen = ref(false);
|
|
18
24
|
const isAnimating = ref(false);
|
|
25
|
+
const isAnalyzing = ref(false);
|
|
19
26
|
const transformLabel = ref("");
|
|
20
27
|
const openContextMenu = ref("");
|
|
21
28
|
const selectionTopLeft = ref({ x: 0, y: 0 });
|
|
22
|
-
const useAnimationsSetting = storage.use("useAnimations", true);
|
|
23
|
-
const useAnimations = computed(() => useAnimationsSetting.value);
|
|
24
29
|
const baseSettings = storage.use("feature:settings:settings", {});
|
|
25
30
|
const lowPerformanceMode = computed(
|
|
26
31
|
() => baseSettings.value.lowPerformanceMode
|
|
27
32
|
);
|
|
33
|
+
const useAnimations = computed(
|
|
34
|
+
() => baseSettings.value.useAnimations !== false
|
|
35
|
+
);
|
|
28
36
|
const viewportBlockingRectsMap = ref(
|
|
29
37
|
{}
|
|
30
38
|
);
|
|
@@ -109,16 +117,6 @@ export default function(storage, state) {
|
|
|
109
117
|
eventBus.emit("ui:resized");
|
|
110
118
|
}, 400);
|
|
111
119
|
};
|
|
112
|
-
const isArtboard = () => {
|
|
113
|
-
return document.documentElement.classList.contains(ARTBOARD_CLASS);
|
|
114
|
-
};
|
|
115
|
-
watch(isAnimating, (is) => {
|
|
116
|
-
if (is) {
|
|
117
|
-
document.documentElement.classList.add("bk-is-animating");
|
|
118
|
-
} else {
|
|
119
|
-
document.documentElement.classList.remove("bk-is-animating");
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
120
|
const toolbarHeight = computed(() => {
|
|
123
121
|
if (isMobile.value) {
|
|
124
122
|
return 80;
|
|
@@ -200,35 +198,6 @@ export default function(storage, state) {
|
|
|
200
198
|
height: visibleViewportHeight.value - 20
|
|
201
199
|
};
|
|
202
200
|
});
|
|
203
|
-
function setProxyModeClass() {
|
|
204
|
-
document.documentElement.classList.remove(CLASS_PROXY_MODE);
|
|
205
|
-
if (isProxyMode.value) {
|
|
206
|
-
document.documentElement.classList.add(CLASS_PROXY_MODE);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
watch(isProxyMode, setProxyModeClass);
|
|
210
|
-
onMounted(() => {
|
|
211
|
-
document.documentElement.classList.add("bk-html-root");
|
|
212
|
-
document.body.classList.add("bk-body");
|
|
213
|
-
document.documentElement.classList.add(ARTBOARD_CLASS);
|
|
214
|
-
setProxyModeClass();
|
|
215
|
-
viewportWidth.value = window.innerWidth;
|
|
216
|
-
viewportHeight.value = window.innerHeight;
|
|
217
|
-
window.addEventListener("resize", onResize);
|
|
218
|
-
const artboard = artboardElement();
|
|
219
|
-
resizeObserver.observe(artboard);
|
|
220
|
-
});
|
|
221
|
-
onBeforeUnmount(() => {
|
|
222
|
-
window.removeEventListener("resize", onResize);
|
|
223
|
-
document.documentElement.classList.remove("bk-html-root");
|
|
224
|
-
document.body.classList.remove("bk-body");
|
|
225
|
-
document.documentElement.classList.remove(ARTBOARD_CLASS);
|
|
226
|
-
document.documentElement.classList.remove(CLASS_PROXY_MODE);
|
|
227
|
-
clearTimeout(resizeTimeout);
|
|
228
|
-
const artboard = artboardElement();
|
|
229
|
-
resizeObserver.unobserve(artboard);
|
|
230
|
-
resizeObserver.disconnect();
|
|
231
|
-
});
|
|
232
201
|
const viewport = computed(() => {
|
|
233
202
|
return {
|
|
234
203
|
width: viewportWidth.value,
|
|
@@ -260,6 +229,35 @@ export default function(storage, state) {
|
|
|
260
229
|
function setTransform(label) {
|
|
261
230
|
transformLabel.value = label || "";
|
|
262
231
|
}
|
|
232
|
+
addElementClasses(document.documentElement, "bk-is-animating", isAnimating);
|
|
233
|
+
addElementClasses(
|
|
234
|
+
document.documentElement,
|
|
235
|
+
"bk-has-sidebar-left",
|
|
236
|
+
activeSidebarLeft
|
|
237
|
+
);
|
|
238
|
+
addElementClasses(
|
|
239
|
+
document.documentElement,
|
|
240
|
+
"bk-has-sidebar-right",
|
|
241
|
+
activeSidebarRight
|
|
242
|
+
);
|
|
243
|
+
addElementClasses(document.documentElement, ["bk-html-root"]);
|
|
244
|
+
addElementClasses(document.body, "bk-body");
|
|
245
|
+
addElementClasses(document.documentElement, CLASS_PROXY_MODE, isProxyMode);
|
|
246
|
+
addElementClasses(document.documentElement, "bk-is-analyzing", isAnalyzing);
|
|
247
|
+
onMounted(() => {
|
|
248
|
+
viewportWidth.value = window.innerWidth;
|
|
249
|
+
viewportHeight.value = window.innerHeight;
|
|
250
|
+
window.addEventListener("resize", onResize);
|
|
251
|
+
const artboard = artboardElement();
|
|
252
|
+
resizeObserver.observe(artboard);
|
|
253
|
+
});
|
|
254
|
+
onBeforeUnmount(() => {
|
|
255
|
+
window.removeEventListener("resize", onResize);
|
|
256
|
+
clearTimeout(resizeTimeout);
|
|
257
|
+
const artboard = artboardElement();
|
|
258
|
+
resizeObserver.unobserve(artboard);
|
|
259
|
+
resizeObserver.disconnect();
|
|
260
|
+
});
|
|
263
261
|
return {
|
|
264
262
|
menu: {
|
|
265
263
|
isOpen: menuIsOpen,
|
|
@@ -271,8 +269,8 @@ export default function(storage, state) {
|
|
|
271
269
|
providerElement,
|
|
272
270
|
isMobile,
|
|
273
271
|
isDesktop,
|
|
274
|
-
isArtboard,
|
|
275
272
|
isAnimating,
|
|
273
|
+
isAnalyzing,
|
|
276
274
|
isTransforming,
|
|
277
275
|
setTransform,
|
|
278
276
|
transformLabel: computed(() => transformLabel.value),
|
|
@@ -293,6 +291,10 @@ export default function(storage, state) {
|
|
|
293
291
|
selectionTopLeft,
|
|
294
292
|
lowPerformanceMode,
|
|
295
293
|
getAbsoluteElementRect,
|
|
296
|
-
getViewportRelativeRect
|
|
294
|
+
getViewportRelativeRect,
|
|
295
|
+
interfaceLanguage,
|
|
296
|
+
hasDialogOpen,
|
|
297
|
+
hasTransformOverlayOpen,
|
|
298
|
+
hasAddTooltipOpen
|
|
297
299
|
};
|
|
298
300
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RGB } from '#blokkli/types/theme';
|
|
2
|
+
interface TransitionOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Duration in milliseconds.
|
|
5
|
+
*/
|
|
6
|
+
duration?: number;
|
|
7
|
+
/**
|
|
8
|
+
* The easing method. Defaults to "ease out quad".
|
|
9
|
+
*/
|
|
10
|
+
easing?: (t: number) => number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a computed property from the given callback and transitions between values.
|
|
14
|
+
*
|
|
15
|
+
* Returns a method that, when called, will return the current transitioned value.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useTransitionedValue<T extends RGB | number>(valueCallback: () => T, options?: TransitionOptions): () => T;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { computed, watch } from "vue";
|
|
2
|
+
import { easeOutQuad } from "./easing.js";
|
|
3
|
+
function isRGB(value) {
|
|
4
|
+
return Array.isArray(value) && value.length === 3;
|
|
5
|
+
}
|
|
6
|
+
function lerp(start, end, t) {
|
|
7
|
+
return start + (end - start) * t;
|
|
8
|
+
}
|
|
9
|
+
function interpolateColor(from, to, t) {
|
|
10
|
+
return [
|
|
11
|
+
lerp(from[0], to[0], t),
|
|
12
|
+
lerp(from[1], to[1], t),
|
|
13
|
+
lerp(from[2], to[2], t)
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
function interpolateValue(from, to, t) {
|
|
17
|
+
if (isRGB(from) && isRGB(to)) {
|
|
18
|
+
return interpolateColor(from, to, t);
|
|
19
|
+
} else if (typeof from === "number" && typeof to === "number") {
|
|
20
|
+
return lerp(from, to, t);
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
}
|
|
24
|
+
function cloneValue(value) {
|
|
25
|
+
if (isRGB(value)) {
|
|
26
|
+
return [...value];
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
export function useTransitionedValue(valueCallback, options = {}) {
|
|
31
|
+
const { duration = 300, easing = easeOutQuad } = options;
|
|
32
|
+
const value = computed(valueCallback);
|
|
33
|
+
const initial = value.value;
|
|
34
|
+
let current = cloneValue(initial);
|
|
35
|
+
let target = cloneValue(initial);
|
|
36
|
+
let from = cloneValue(initial);
|
|
37
|
+
let startTime = null;
|
|
38
|
+
watch(value, (newValue) => {
|
|
39
|
+
from = cloneValue(current);
|
|
40
|
+
target = cloneValue(newValue);
|
|
41
|
+
startTime = Date.now();
|
|
42
|
+
});
|
|
43
|
+
return function getCurrentValue() {
|
|
44
|
+
if (startTime !== null) {
|
|
45
|
+
const elapsed = Date.now() - startTime;
|
|
46
|
+
const rawProgress = Math.min(elapsed / duration, 1);
|
|
47
|
+
if (rawProgress >= 1) {
|
|
48
|
+
current = cloneValue(target);
|
|
49
|
+
startTime = null;
|
|
50
|
+
} else {
|
|
51
|
+
const easedProgress = easing(rawProgress);
|
|
52
|
+
current = interpolateValue(from, target, easedProgress);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return current;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2A3 3 0 0 0 9 5A3 3 0 0 0 11 7.83V9H8V11H11V19.92C10.26 19.79 9.5 19.58 8.79 19.27C8.05 18.95 7.4 18.56 6.82 18.09C6.24 17.62 5.78 17.11 5.44 16.55L7 15L3 12V15C3 15.97 3.27 16.88 3.82 17.72C4.37 18.56 5.09 19.31 6 19.95C6.87 20.59 7.84 21.09 8.88 21.45C9.93 21.81 10.97 22 12 22C13.03 22 14.07 21.8 15.12 21.44C16.16 21.08 17.13 20.58 18 19.95C18.92 19.31 19.63 18.57 20.18 17.72C20.73 16.88 21 15.97 21 15V12L17 15L18.56 16.55C18.22 17.11 17.76 17.62 17.18 18.09C16.6 18.56 15.95 18.95 15.21 19.27C14.5 19.58 13.74 19.79 13 19.92V11H16V9H13V7.82A3 3 0 0 0 15 5A3 3 0 0 0 12 2M12 4A1 1 0 0 1 13 5A1 1 0 0 1 12 6A1 1 0 0 1 11 5A1 1 0 0 1 12 4Z" /></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" /></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z" /></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z" /></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22,21H2V3H4V19H6V10H10V19H12V6H16V19H18V14H22V21Z" /></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" /></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z" /></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13,23H11V1H13V23M9,19H5V5H9V3H5C3.89,3 3,3.89 3,5V19C3,20.11 3.9,21 5,21H9V19M19,7V9H21V7H19M19,5H21C21,3.89 20.1,3 19,3V5M21,15H19V17H21V15M19,11V13H21V11H19M17,3H15V5H17V3M19,21C20.11,21 21,20.11 21,19H19V21M17,19H15V21H17V19Z" /></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z" /></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22M11 7H13V9H11V7M14 17H10V15H11V13H10V11H13V15H14V17Z" /></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z" /></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,16A3,3 0 0,1 9,13C9,11.88 9.61,10.9 10.5,10.39L20.21,4.77L14.68,14.35C14.18,15.33 13.17,16 12,16M12,3C13.81,3 15.5,3.5 16.97,4.32L14.87,5.53C14,5.19 13,5 12,5A8,8 0 0,0 4,13C4,15.21 4.89,17.21 6.34,18.65H6.35C6.74,19.04 6.74,19.67 6.35,20.06C5.96,20.45 5.32,20.45 4.93,20.07V20.07C3.12,18.26 2,15.76 2,13A10,10 0 0,1 12,3M22,13C22,15.76 20.88,18.26 19.07,20.07V20.07C18.68,20.45 18.05,20.45 17.66,20.06C17.27,19.67 17.27,19.04 17.66,18.65V18.65C19.11,17.2 20,15.21 20,13C20,12 19.81,11 19.46,10.1L20.67,8C21.5,9.5 22,11.18 22,13Z" /></svg>
|
|
@@ -3,6 +3,7 @@ type DefinitionOptionText = {
|
|
|
3
3
|
type: 'text';
|
|
4
4
|
default: string;
|
|
5
5
|
label: string;
|
|
6
|
+
description?: string;
|
|
6
7
|
inputType?: 'text' | 'number' | 'date';
|
|
7
8
|
group?: string;
|
|
8
9
|
};
|
|
@@ -10,6 +11,7 @@ type DefinitionOptionNumber = {
|
|
|
10
11
|
type: 'number';
|
|
11
12
|
default: number;
|
|
12
13
|
label: string;
|
|
14
|
+
description?: string;
|
|
13
15
|
min: number;
|
|
14
16
|
max: number;
|
|
15
17
|
group?: string;
|
|
@@ -18,6 +20,7 @@ type DefinitionOptionRange = {
|
|
|
18
20
|
type: 'range';
|
|
19
21
|
default: number;
|
|
20
22
|
label: string;
|
|
23
|
+
description?: string;
|
|
21
24
|
min: number;
|
|
22
25
|
max: number;
|
|
23
26
|
step: number;
|
|
@@ -26,6 +29,7 @@ type DefinitionOptionRange = {
|
|
|
26
29
|
type DefinitionOptionDateTimeLocal = {
|
|
27
30
|
type: 'datetime-local';
|
|
28
31
|
label: string;
|
|
32
|
+
description?: string;
|
|
29
33
|
default?: string;
|
|
30
34
|
min?: string;
|
|
31
35
|
max?: string;
|
|
@@ -35,17 +39,20 @@ type DefinitionOptionCheckbox = {
|
|
|
35
39
|
type: 'checkbox';
|
|
36
40
|
default: boolean;
|
|
37
41
|
label: string;
|
|
42
|
+
description?: string;
|
|
38
43
|
group?: string;
|
|
39
44
|
};
|
|
40
45
|
type DefinitionOptionColor = {
|
|
41
46
|
type: 'color';
|
|
42
47
|
default: `#${string}`;
|
|
43
48
|
label: string;
|
|
49
|
+
description?: string;
|
|
44
50
|
group?: string;
|
|
45
51
|
};
|
|
46
52
|
type DefinitionOptionCheckboxes = {
|
|
47
53
|
type: 'checkboxes';
|
|
48
54
|
label: string;
|
|
55
|
+
description?: string;
|
|
49
56
|
/**
|
|
50
57
|
* The default values.
|
|
51
58
|
*/
|
|
@@ -85,6 +92,7 @@ type DefinitionOptionRadiosIcons = {
|
|
|
85
92
|
type DefinitionOptionRadios = {
|
|
86
93
|
type: 'radios';
|
|
87
94
|
label: string;
|
|
95
|
+
description?: string;
|
|
88
96
|
default: string;
|
|
89
97
|
group?: string;
|
|
90
98
|
} & (DefinitionOptionRadiosColors | DefinitionOptionRadiosGrid | DefinitionOptionRadiosRadios | DefinitionOptionRadiosIcons);
|
|
@@ -9,6 +9,7 @@ import type { UiProvider } from '../helpers/uiProvider.js';
|
|
|
9
9
|
import type { AnimationProvider } from '../helpers/animationProvider.js';
|
|
10
10
|
import type { StateProvider } from '../helpers/stateProvider.js';
|
|
11
11
|
import type { TextProvider } from '../helpers/textProvider.js';
|
|
12
|
+
import type { PluginProvider } from '../helpers/pluginProvider.js';
|
|
12
13
|
import type { eventBus } from './../helpers/eventBus.js';
|
|
13
14
|
import type { BlockOptionDefinition } from './blokkOptions.js';
|
|
14
15
|
import type { BlokkliAdapter, AdapterContext, MutationResponseLike } from './../adapter/index.js';
|
|
@@ -26,6 +27,7 @@ import type { RGB } from './theme.js';
|
|
|
26
27
|
import type { DebugProvider } from '#blokkli/helpers/debugProvider';
|
|
27
28
|
import type getVideoId from 'get-video-id';
|
|
28
29
|
import type { DefinitionProvider } from '../helpers/definitionProvider.js';
|
|
30
|
+
import type { IndicatorsProvider } from '#blokkli/helpers/indicatorsProvider';
|
|
29
31
|
export type MutateWithLoadingStateFunction = (promise: () => Promise<MutationResponseLike<any>> | undefined, errorMessage?: string, successMessage?: string) => Promise<boolean>;
|
|
30
32
|
type GetType<T> = T extends {
|
|
31
33
|
options: infer O;
|
|
@@ -89,6 +91,15 @@ export type DefineBlokkliContext<T extends BlockDefinitionOptionsInput = BlockDe
|
|
|
89
91
|
*/
|
|
90
92
|
provider: ComputedRef<BlokkliProviderEntityContext | null>;
|
|
91
93
|
};
|
|
94
|
+
export type DefineProviderContext<T extends BlockDefinitionOptionsInput = BlockDefinitionOptionsInput, G extends ValidGlobalConfigKeys | undefined = undefined> = {
|
|
95
|
+
/**
|
|
96
|
+
* The reactive runtime options.
|
|
97
|
+
*
|
|
98
|
+
* This includes both the locally defined options and the inherited global
|
|
99
|
+
* options.
|
|
100
|
+
*/
|
|
101
|
+
options: ComputedRef<(T extends BlockDefinitionOptionsInput ? WithOptions<T> : object) & (G extends ValidGlobalConfigKeys ? GlobalOptionsKeyTypes<G> : object)>;
|
|
102
|
+
};
|
|
92
103
|
type DetermineVisibleOptionsContext<T extends BlockDefinitionOptionsInput = BlockDefinitionOptionsInput, G extends GlobalOptionsKey[] | undefined = undefined, B extends BundleKey | string = string> = {
|
|
93
104
|
options: (T extends BlockDefinitionOptionsInput ? WithOptions<T> : object) & (G extends ValidGlobalConfigKeys ? GlobalOptionsKeyTypes<G> : object);
|
|
94
105
|
parentType: BlockBundleWithNested | undefined;
|
|
@@ -99,7 +110,7 @@ type DetermineVisibleOptionsContext<T extends BlockDefinitionOptionsInput = Bloc
|
|
|
99
110
|
type ExtractGlobalOptions<G extends GlobalOptionsKey[]> = G[number] extends GlobalOptionsKey ? G[number] : never;
|
|
100
111
|
type CombineKeysAndGlobalOptions<T extends BlockDefinitionOptionsInput, G extends GlobalOptionsKey[] | undefined> = keyof T | ExtractGlobalOptions<NonNullable<G>>;
|
|
101
112
|
export type BlokkliDefinitionAddBehaviour = 'no-form' | 'form' | `editable:${string}`;
|
|
102
|
-
export type BlokkliDefinitionInputEditor<Options extends BlockDefinitionOptionsInput = BlockDefinitionOptionsInput, GlobalOptions extends GlobalOptionsKey[] | undefined = undefined, Bundle extends BundleKey | string = string
|
|
113
|
+
export type BlokkliDefinitionInputEditor<Options extends BlockDefinitionOptionsInput = BlockDefinitionOptionsInput, GlobalOptions extends GlobalOptionsKey[] | undefined = undefined, Bundle extends BundleKey | string = string, PropsType = Bundle extends BundleKey ? BundleProps[Bundle] : Record<string, any>> = {
|
|
103
114
|
/**
|
|
104
115
|
* Determine which options should be visible in the editor based on the
|
|
105
116
|
* given context.
|
|
@@ -234,7 +245,7 @@ export type BlokkliDefinitionInputEditor<Options extends BlockDefinitionOptionsI
|
|
|
234
245
|
* You can also return HTML as the value. The feature uses an HTML differ to
|
|
235
246
|
* render the diff.
|
|
236
247
|
*/
|
|
237
|
-
mapDiffProps?: (props?:
|
|
248
|
+
mapDiffProps?: (props?: PropsType) => Record<string, string>;
|
|
238
249
|
};
|
|
239
250
|
export type BlockDefinitionRenderForParent = {
|
|
240
251
|
parentBundle: BlockBundleWithNested;
|
|
@@ -396,6 +407,50 @@ export interface ConversionItem {
|
|
|
396
407
|
sourceBundle: string;
|
|
397
408
|
targetBundle: string;
|
|
398
409
|
}
|
|
410
|
+
export type PluginConfigInputText = {
|
|
411
|
+
type: 'text';
|
|
412
|
+
name: string;
|
|
413
|
+
label: string;
|
|
414
|
+
description?: string;
|
|
415
|
+
required: boolean;
|
|
416
|
+
defaultValue?: string;
|
|
417
|
+
minLength?: number;
|
|
418
|
+
maxLength?: number;
|
|
419
|
+
placeholder?: string;
|
|
420
|
+
pattern?: string;
|
|
421
|
+
multiline?: boolean;
|
|
422
|
+
rows?: number;
|
|
423
|
+
};
|
|
424
|
+
export type PluginConfigInputSeed = {
|
|
425
|
+
type: 'seed';
|
|
426
|
+
name: string;
|
|
427
|
+
label: string;
|
|
428
|
+
description?: string;
|
|
429
|
+
required: boolean;
|
|
430
|
+
};
|
|
431
|
+
export type PluginConfigInputCheckbox = {
|
|
432
|
+
type: 'checkbox';
|
|
433
|
+
name: string;
|
|
434
|
+
label: string;
|
|
435
|
+
description?: string;
|
|
436
|
+
required: boolean;
|
|
437
|
+
checkboxLabel?: string;
|
|
438
|
+
defaultValue: boolean;
|
|
439
|
+
};
|
|
440
|
+
export type PluginConfigInputOptions = {
|
|
441
|
+
type: 'options';
|
|
442
|
+
name: string;
|
|
443
|
+
label: string;
|
|
444
|
+
description?: string;
|
|
445
|
+
required: boolean;
|
|
446
|
+
defaultValue?: string;
|
|
447
|
+
variant: 'select' | 'radio';
|
|
448
|
+
options: {
|
|
449
|
+
value: string;
|
|
450
|
+
label: string;
|
|
451
|
+
}[];
|
|
452
|
+
};
|
|
453
|
+
export type PluginConfigInput = PluginConfigInputText | PluginConfigInputSeed | PluginConfigInputCheckbox | PluginConfigInputOptions;
|
|
399
454
|
export interface TransformPlugin {
|
|
400
455
|
/**
|
|
401
456
|
* The ID of the plugin.
|
|
@@ -412,7 +467,7 @@ export interface TransformPlugin {
|
|
|
412
467
|
/**
|
|
413
468
|
* The array of bundles that the transform might create.
|
|
414
469
|
*/
|
|
415
|
-
targetBundles
|
|
470
|
+
targetBundles?: string[];
|
|
416
471
|
/**
|
|
417
472
|
* The minimum number of items required.
|
|
418
473
|
*/
|
|
@@ -421,6 +476,38 @@ export interface TransformPlugin {
|
|
|
421
476
|
* The maximum number of items.
|
|
422
477
|
*/
|
|
423
478
|
max: number;
|
|
479
|
+
configInputs?: PluginConfigInput[];
|
|
480
|
+
description?: string;
|
|
481
|
+
/**
|
|
482
|
+
* Whether the transform plugin supports previewing the changes first.
|
|
483
|
+
*
|
|
484
|
+
* If true, the plugin is expected to to defer producing any side effects
|
|
485
|
+
* to when it's executed in non-preview mode.
|
|
486
|
+
*/
|
|
487
|
+
preview?: boolean;
|
|
488
|
+
}
|
|
489
|
+
export type PluginConfigInputItem = {
|
|
490
|
+
name: string;
|
|
491
|
+
value: string;
|
|
492
|
+
};
|
|
493
|
+
export interface HostTransformPlugin {
|
|
494
|
+
/**
|
|
495
|
+
* The ID of the plugin.
|
|
496
|
+
*/
|
|
497
|
+
id: string;
|
|
498
|
+
/**
|
|
499
|
+
* The label of the transform plugin which is shown in the editor.
|
|
500
|
+
*/
|
|
501
|
+
label: string;
|
|
502
|
+
configInputs?: PluginConfigInput[];
|
|
503
|
+
description?: string;
|
|
504
|
+
/**
|
|
505
|
+
* Whether the transform plugin supports previewing the changes first.
|
|
506
|
+
*
|
|
507
|
+
* If true, the plugin is expected to to defer producing any side effects
|
|
508
|
+
* to when it's executed in non-preview mode.
|
|
509
|
+
*/
|
|
510
|
+
preview?: boolean;
|
|
424
511
|
}
|
|
425
512
|
export interface LibraryItem {
|
|
426
513
|
uuid: string;
|
|
@@ -465,6 +552,7 @@ export interface MappedState {
|
|
|
465
552
|
ownerName: string;
|
|
466
553
|
mutatedState?: {
|
|
467
554
|
mutatedOptions?: any;
|
|
555
|
+
mutatedHostOptions?: Record<string, string>;
|
|
468
556
|
fields?: MutatedField[];
|
|
469
557
|
violations?: Validation[];
|
|
470
558
|
};
|
|
@@ -718,6 +806,10 @@ export type UpdateBlockOptionEvent = {
|
|
|
718
806
|
key: string;
|
|
719
807
|
value: string;
|
|
720
808
|
};
|
|
809
|
+
export type UpdateHostOptionEvent = {
|
|
810
|
+
key: string;
|
|
811
|
+
value: string;
|
|
812
|
+
};
|
|
721
813
|
export type EditBlockEvent = {
|
|
722
814
|
uuid: string;
|
|
723
815
|
bundle: string;
|
|
@@ -743,6 +835,7 @@ export type Message = {
|
|
|
743
835
|
type: 'success' | 'error';
|
|
744
836
|
message: string;
|
|
745
837
|
additional?: string | Error | unknown;
|
|
838
|
+
replace?: boolean;
|
|
746
839
|
};
|
|
747
840
|
export type Size = {
|
|
748
841
|
width: number;
|
|
@@ -789,6 +882,11 @@ export type ScrollIntoViewEvent = {
|
|
|
789
882
|
uuid: string;
|
|
790
883
|
center?: boolean;
|
|
791
884
|
immediate?: boolean;
|
|
885
|
+
} | {
|
|
886
|
+
element: HTMLElement;
|
|
887
|
+
center?: boolean;
|
|
888
|
+
immediate?: boolean;
|
|
889
|
+
highlight?: boolean;
|
|
792
890
|
};
|
|
793
891
|
export type PluginMountEvent = {
|
|
794
892
|
type: 'ItemDropdown';
|
|
@@ -840,7 +938,7 @@ export type BlokkliFieldElement = {
|
|
|
840
938
|
dropAlignment?: 'vertical' | 'horizontal';
|
|
841
939
|
};
|
|
842
940
|
export type ActionPlacedEvent = {
|
|
843
|
-
|
|
941
|
+
id: string;
|
|
844
942
|
preceedingUuid?: string;
|
|
845
943
|
host: DraggableHostData;
|
|
846
944
|
field: BlokkliFieldElement;
|
|
@@ -906,9 +1004,17 @@ export type AnimationFrameBeforeEvent = {
|
|
|
906
1004
|
mouseX: number;
|
|
907
1005
|
mouseY: number;
|
|
908
1006
|
};
|
|
1007
|
+
type MultiSelectStartEvent = {
|
|
1008
|
+
x: number;
|
|
1009
|
+
y: number;
|
|
1010
|
+
};
|
|
909
1011
|
export type EventbusEvents = {
|
|
910
1012
|
select: string | string[];
|
|
911
1013
|
'select:unselect': undefined;
|
|
1014
|
+
'select:force': string | string[];
|
|
1015
|
+
'select:host': undefined;
|
|
1016
|
+
'select:host:unselect': undefined;
|
|
1017
|
+
'multi-select:start': MultiSelectStartEvent;
|
|
912
1018
|
'item:edit': EditBlockEvent;
|
|
913
1019
|
batchTranslate: undefined;
|
|
914
1020
|
'dragging:start': DraggableStartEvent;
|
|
@@ -950,6 +1056,7 @@ export type EventbusEvents = {
|
|
|
950
1056
|
'sidebar:close': undefined;
|
|
951
1057
|
'sidebar:open': string;
|
|
952
1058
|
'action:placed': ActionPlacedEvent;
|
|
1059
|
+
'action:selected': undefined;
|
|
953
1060
|
'animator:add': AnimatorAddEvent;
|
|
954
1061
|
'ui:resized': undefined;
|
|
955
1062
|
'add-list:change': undefined;
|
|
@@ -965,6 +1072,19 @@ export type EventbusEvents = {
|
|
|
965
1072
|
* Edit a library item.
|
|
966
1073
|
*/
|
|
967
1074
|
'library:edit-item': LibraryEditItemEvent;
|
|
1075
|
+
/**
|
|
1076
|
+
* Emitted when a view option is being toggled.
|
|
1077
|
+
*/
|
|
1078
|
+
'view-option:toggle': {
|
|
1079
|
+
id: string;
|
|
1080
|
+
};
|
|
1081
|
+
/**
|
|
1082
|
+
* An analyze node target was clicked.
|
|
1083
|
+
*/
|
|
1084
|
+
'analyze:click-node': {
|
|
1085
|
+
id: string;
|
|
1086
|
+
target: HTMLElement;
|
|
1087
|
+
};
|
|
968
1088
|
};
|
|
969
1089
|
export type Eventbus = Emitter<EventbusEvents>;
|
|
970
1090
|
export type ItemEditContext = {
|
|
@@ -1002,6 +1122,8 @@ export interface BlokkliApp {
|
|
|
1002
1122
|
tour: TourProvider;
|
|
1003
1123
|
dropAreas: DropAreaProvider;
|
|
1004
1124
|
debug: DebugProvider;
|
|
1125
|
+
indicators: IndicatorsProvider;
|
|
1126
|
+
plugins: PluginProvider;
|
|
1005
1127
|
}
|
|
1006
1128
|
export type PasteExistingBlocksEvent = {
|
|
1007
1129
|
uuids: string[];
|
|
@@ -1132,7 +1254,7 @@ export type DropArea = {
|
|
|
1132
1254
|
label: string;
|
|
1133
1255
|
icon?: BlokkliIcon;
|
|
1134
1256
|
element: HTMLElement;
|
|
1135
|
-
onDrop: () => Promise<any
|
|
1257
|
+
onDrop: () => Promise<any> | any;
|
|
1136
1258
|
};
|
|
1137
1259
|
export type ContextMenuRule = {
|
|
1138
1260
|
type: 'rule';
|
|
@@ -1181,6 +1303,26 @@ export type FragmentDefinitionInput<Options extends BlockDefinitionOptionsInput
|
|
|
1181
1303
|
*/
|
|
1182
1304
|
editor?: BlokkliDefinitionInputEditor<Options, GlobalOptions>;
|
|
1183
1305
|
};
|
|
1306
|
+
export type ProviderDefinitionInput<Options extends BlockDefinitionOptionsInput = BlockDefinitionOptionsInput, GlobalOptions extends GlobalOptionsKey[] | undefined = undefined> = {
|
|
1307
|
+
/**
|
|
1308
|
+
* The entity type.
|
|
1309
|
+
*/
|
|
1310
|
+
entityType: string;
|
|
1311
|
+
/**
|
|
1312
|
+
* The bundle.
|
|
1313
|
+
*/
|
|
1314
|
+
bundle: string;
|
|
1315
|
+
/**
|
|
1316
|
+
* Define options available for this block.
|
|
1317
|
+
*/
|
|
1318
|
+
options?: Options;
|
|
1319
|
+
/**
|
|
1320
|
+
* Global options to use.
|
|
1321
|
+
*
|
|
1322
|
+
* These options will be merged with the component-specific options.
|
|
1323
|
+
*/
|
|
1324
|
+
globalOptions?: GlobalOptions;
|
|
1325
|
+
};
|
|
1184
1326
|
export type TourItem = {
|
|
1185
1327
|
id: string;
|
|
1186
1328
|
title: string;
|
|
@@ -1218,5 +1360,21 @@ export type GetEditStatesItem = {
|
|
|
1218
1360
|
entity: EditEntity;
|
|
1219
1361
|
currentUserIsOwner: boolean;
|
|
1220
1362
|
};
|
|
1363
|
+
export type BlockIndicator = {
|
|
1364
|
+
id: string;
|
|
1365
|
+
uuid: string;
|
|
1366
|
+
element: HTMLElement;
|
|
1367
|
+
position: 'left' | 'right';
|
|
1368
|
+
};
|
|
1369
|
+
export type AddActionColor = 'rose' | 'lime' | 'accent';
|
|
1370
|
+
export type AddAction = {
|
|
1371
|
+
id: string;
|
|
1372
|
+
icon: BlokkliIcon;
|
|
1373
|
+
color: AddActionColor;
|
|
1374
|
+
itemBundle?: string;
|
|
1375
|
+
title: string;
|
|
1376
|
+
description?: string;
|
|
1377
|
+
enabled?: boolean;
|
|
1378
|
+
};
|
|
1221
1379
|
declare const _default: {};
|
|
1222
1380
|
export default _default;
|
|
@@ -25,7 +25,8 @@ export type ThemeContextColorGroup =
|
|
|
25
25
|
/**
|
|
26
26
|
* The lime color used for reusable blocks / library and status indicators.
|
|
27
27
|
*/
|
|
28
|
-
| 'lime';
|
|
28
|
+
| 'lime' | 'orange';
|
|
29
|
+
export type ThemeColorName = ThemeColorGroup | ThemeContextColorGroup;
|
|
29
30
|
export type ThemeColorShade = '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | '950';
|
|
30
31
|
export type ThemeContextColorShade = 'light' | 'normal' | 'dark';
|
|
31
32
|
export type ThemeColors = Record<ThemeColorShade, RGB>;
|
|
@@ -25,7 +25,7 @@ type ModuleFileTemplate = {
|
|
|
25
25
|
};
|
|
26
26
|
type ModuleTemplate = ModuleCodeTemplate | ModuleFileTemplate;
|
|
27
27
|
|
|
28
|
-
type CollectedBlockType = 'main' | 'context' | 'fragment';
|
|
28
|
+
type CollectedBlockType = 'main' | 'context' | 'fragment' | 'provider';
|
|
29
29
|
declare class CollectedBlockFile extends CollectedFile {
|
|
30
30
|
folder: string;
|
|
31
31
|
iconPath: string | null;
|