@blokkli/editor 2.0.0-alpha.34 → 2.0.0-alpha.36

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 (204) hide show
  1. package/dist/global/types/blockOptions.d.ts +9 -2
  2. package/dist/global/types/definitions.d.ts +12 -5
  3. package/dist/module.d.mts +2 -2
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +56 -4
  6. package/dist/modules/agent/index.d.mts +1 -1
  7. package/dist/modules/agent/index.mjs +38 -20
  8. package/dist/modules/agent/runtime/app/composables/agentProvider.d.ts +2 -2
  9. package/dist/modules/agent/runtime/app/composables/agentProvider.js +3 -3
  10. package/dist/modules/agent/runtime/app/features/agent/Panel/Input/Actions/index.vue +34 -60
  11. package/dist/modules/agent/runtime/app/features/agent/Transcript/index.d.vue.ts +8 -0
  12. package/dist/modules/agent/runtime/app/features/agent/Transcript/index.vue +138 -0
  13. package/dist/modules/agent/runtime/app/features/agent/Transcript/index.vue.d.ts +8 -0
  14. package/dist/modules/agent/runtime/app/features/agent/index.vue +5 -1
  15. package/dist/modules/agent/runtime/app/tools/get_bundle_info/index.js +175 -0
  16. package/dist/modules/agent/runtime/app/tools/get_paragraph_context/index.js +5 -0
  17. package/dist/modules/agent/runtime/app/tools/schemas.d.ts +9 -0
  18. package/dist/modules/agent/runtime/app/tools/schemas.js +36 -23
  19. package/dist/modules/agent/runtime/server/Session.d.ts +4 -2
  20. package/dist/modules/agent/runtime/server/Session.js +61 -57
  21. package/dist/modules/agent/runtime/server/agentPrompt.d.ts +9 -1
  22. package/dist/modules/agent/runtime/server/agentPrompt.js +26 -0
  23. package/dist/modules/agent/runtime/shared/types.d.ts +35 -1
  24. package/dist/modules/charts/index.d.mts +35 -0
  25. package/dist/modules/charts/index.mjs +43 -0
  26. package/dist/modules/charts/runtime/blokkli/skills/charts.d.ts +2 -0
  27. package/dist/modules/charts/runtime/blokkli/skills/charts.js +42 -0
  28. package/dist/modules/charts/runtime/blokkli/tools/chart_schemas.d.ts +63 -0
  29. package/dist/modules/charts/runtime/blokkli/tools/chart_schemas.js +98 -0
  30. package/dist/modules/charts/runtime/blokkli/tools/create_chart/index.d.ts +2 -0
  31. package/dist/modules/charts/runtime/blokkli/tools/create_chart/index.js +86 -0
  32. package/dist/modules/charts/runtime/blokkli/tools/get_chart_data/index.d.ts +2 -0
  33. package/dist/modules/charts/runtime/blokkli/tools/get_chart_data/index.js +74 -0
  34. package/dist/modules/charts/runtime/blokkli/tools/get_chart_type_options/index.d.ts +2 -0
  35. package/dist/modules/charts/runtime/blokkli/tools/get_chart_type_options/index.js +42 -0
  36. package/dist/modules/charts/runtime/blokkli/tools/update_chart/index.d.ts +2 -0
  37. package/dist/modules/charts/runtime/blokkli/tools/update_chart/index.js +101 -0
  38. package/dist/modules/charts/runtime/chartTypes/area.d.ts +2 -0
  39. package/dist/modules/charts/runtime/chartTypes/area.js +68 -0
  40. package/dist/modules/charts/runtime/chartTypes/bar.d.ts +2 -0
  41. package/dist/modules/charts/runtime/chartTypes/bar.js +76 -0
  42. package/dist/modules/charts/runtime/chartTypes/define.d.ts +2 -0
  43. package/dist/modules/charts/runtime/chartTypes/define.js +3 -0
  44. package/dist/modules/charts/runtime/chartTypes/donut.d.ts +2 -0
  45. package/dist/modules/charts/runtime/chartTypes/donut.js +45 -0
  46. package/dist/modules/charts/runtime/chartTypes/heatmap.d.ts +2 -0
  47. package/dist/modules/charts/runtime/chartTypes/heatmap.js +54 -0
  48. package/dist/modules/charts/runtime/chartTypes/index.d.ts +21 -0
  49. package/dist/modules/charts/runtime/chartTypes/index.js +47 -0
  50. package/dist/modules/charts/runtime/chartTypes/line.d.ts +2 -0
  51. package/dist/modules/charts/runtime/chartTypes/line.js +68 -0
  52. package/dist/modules/charts/runtime/chartTypes/pie.d.ts +2 -0
  53. package/dist/modules/charts/runtime/chartTypes/pie.js +28 -0
  54. package/dist/modules/charts/runtime/chartTypes/radar.d.ts +2 -0
  55. package/dist/modules/charts/runtime/chartTypes/radar.js +52 -0
  56. package/dist/modules/charts/runtime/chartTypes/radialBar.d.ts +2 -0
  57. package/dist/modules/charts/runtime/chartTypes/radialBar.js +44 -0
  58. package/dist/modules/charts/runtime/chartTypes/shared.d.ts +52 -0
  59. package/dist/modules/charts/runtime/chartTypes/shared.js +103 -0
  60. package/dist/modules/charts/runtime/chartTypes/types.d.ts +29 -0
  61. package/dist/modules/charts/runtime/chartTypes/types.js +0 -0
  62. package/dist/modules/charts/runtime/components/ChartRenderer/index.d.vue.ts +4 -0
  63. package/dist/modules/charts/runtime/components/ChartRenderer/index.vue +120 -0
  64. package/dist/modules/charts/runtime/components/ChartRenderer/index.vue.d.ts +4 -0
  65. package/dist/modules/charts/runtime/components/Fragment/BlokkliChart.d.vue.ts +3 -0
  66. package/dist/modules/charts/runtime/components/Fragment/BlokkliChart.vue +29 -0
  67. package/dist/modules/charts/runtime/components/Fragment/BlokkliChart.vue.d.ts +3 -0
  68. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypeOptions/index.d.vue.ts +15 -0
  69. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypeOptions/index.vue +97 -0
  70. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypeOptions/index.vue.d.ts +15 -0
  71. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypePicker/index.d.vue.ts +11 -0
  72. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypePicker/index.vue +34 -0
  73. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypePicker/index.vue.d.ts +11 -0
  74. package/dist/modules/charts/runtime/features/charts/Editor/ColorDropdown/index.d.vue.ts +12 -0
  75. package/dist/modules/charts/runtime/features/charts/Editor/ColorDropdown/index.vue +49 -0
  76. package/dist/modules/charts/runtime/features/charts/Editor/ColorDropdown/index.vue.d.ts +12 -0
  77. package/dist/modules/charts/runtime/features/charts/Editor/CsvImport/index.d.vue.ts +19 -0
  78. package/dist/modules/charts/runtime/features/charts/Editor/CsvImport/index.vue +90 -0
  79. package/dist/modules/charts/runtime/features/charts/Editor/CsvImport/index.vue.d.ts +19 -0
  80. package/dist/modules/charts/runtime/features/charts/Editor/DataTable/index.d.vue.ts +23 -0
  81. package/dist/modules/charts/runtime/features/charts/Editor/DataTable/index.vue +224 -0
  82. package/dist/modules/charts/runtime/features/charts/Editor/DataTable/index.vue.d.ts +23 -0
  83. package/dist/modules/charts/runtime/features/charts/Editor/FootnoteEditor/index.d.vue.ts +10 -0
  84. package/dist/modules/charts/runtime/features/charts/Editor/FootnoteEditor/index.vue +61 -0
  85. package/dist/modules/charts/runtime/features/charts/Editor/FootnoteEditor/index.vue.d.ts +10 -0
  86. package/dist/modules/charts/runtime/features/charts/Editor/Preview/index.d.vue.ts +8 -0
  87. package/dist/modules/charts/runtime/features/charts/Editor/Preview/index.vue +23 -0
  88. package/dist/modules/charts/runtime/features/charts/Editor/Preview/index.vue.d.ts +8 -0
  89. package/dist/modules/charts/runtime/features/charts/Editor/index.d.vue.ts +10 -0
  90. package/dist/modules/charts/runtime/features/charts/Editor/index.vue +243 -0
  91. package/dist/modules/charts/runtime/features/charts/Editor/index.vue.d.ts +10 -0
  92. package/dist/modules/charts/runtime/features/charts/Editor/useChartEditorState.d.ts +17 -0
  93. package/dist/modules/charts/runtime/features/charts/Editor/useChartEditorState.js +90 -0
  94. package/dist/modules/charts/runtime/features/charts/index.d.vue.ts +3 -0
  95. package/dist/modules/charts/runtime/features/charts/index.vue +72 -0
  96. package/dist/modules/charts/runtime/features/charts/index.vue.d.ts +3 -0
  97. package/dist/modules/charts/runtime/helpers/index.d.ts +1 -0
  98. package/dist/modules/charts/runtime/helpers/index.js +17 -0
  99. package/dist/modules/charts/runtime/types.d.ts +51 -0
  100. package/dist/modules/charts/runtime/types.js +64 -0
  101. package/dist/modules/drupal/graphql/features/fragments.graphql +2 -0
  102. package/dist/modules/drupal/index.d.mts +1 -1
  103. package/dist/modules/drupal/runtime/adapter/index.js +12 -8
  104. package/dist/modules/table-of-contents/index.d.mts +11 -0
  105. package/dist/modules/table-of-contents/index.mjs +24 -0
  106. package/dist/modules/table-of-contents/runtime/components/BlokkliTableOfContents/index.d.vue.ts +44 -0
  107. package/dist/modules/table-of-contents/runtime/components/BlokkliTableOfContents/index.vue +43 -0
  108. package/dist/modules/table-of-contents/runtime/components/BlokkliTableOfContents/index.vue.d.ts +44 -0
  109. package/dist/modules/table-of-contents/runtime/types/index.d.ts +4 -0
  110. package/dist/modules/table-of-contents/runtime/types/index.js +0 -0
  111. package/dist/runtime/components/Blocks/Fragment/index.vue +6 -2
  112. package/dist/runtime/components/BlokkliField.d.vue.ts +6 -0
  113. package/dist/runtime/components/BlokkliField.vue +4 -0
  114. package/dist/runtime/components/BlokkliField.vue.d.ts +6 -0
  115. package/dist/runtime/components/BlokkliItem.vue +8 -3
  116. package/dist/runtime/components/BlokkliProvider.d.vue.ts +7 -0
  117. package/dist/runtime/components/BlokkliProvider.vue +7 -1
  118. package/dist/runtime/components/BlokkliProvider.vue.d.ts +7 -0
  119. package/dist/runtime/composables/useBlokkliHelper.js +4 -2
  120. package/dist/runtime/editor/components/AnimationCanvas/index.vue +31 -22
  121. package/dist/runtime/editor/components/Banner/index.d.vue.ts +12 -2
  122. package/dist/runtime/editor/components/Banner/index.vue +4 -2
  123. package/dist/runtime/editor/components/Banner/index.vue.d.ts +12 -2
  124. package/dist/runtime/editor/components/DraggableList.d.vue.ts +2 -0
  125. package/dist/runtime/editor/components/DraggableList.vue +4 -1
  126. package/dist/runtime/editor/components/DraggableList.vue.d.ts +2 -0
  127. package/dist/runtime/editor/components/Dropdown/index.d.vue.ts +27 -0
  128. package/dist/runtime/editor/components/Dropdown/index.vue +107 -0
  129. package/dist/runtime/editor/components/Dropdown/index.vue.d.ts +27 -0
  130. package/dist/{modules/agent/runtime/app/features/agent/Panel/Input/Actions → runtime/editor/components}/DropdownItem/index.vue +1 -1
  131. package/dist/runtime/editor/components/EditProvider.d.vue.ts +2 -0
  132. package/dist/runtime/editor/components/EditProvider.vue +4 -3
  133. package/dist/runtime/editor/components/EditProvider.vue.d.ts +2 -0
  134. package/dist/runtime/editor/components/Form/Radio/index.d.vue.ts +1 -0
  135. package/dist/runtime/editor/components/Form/Radio/index.vue +3 -2
  136. package/dist/runtime/editor/components/Form/Radio/index.vue.d.ts +1 -0
  137. package/dist/runtime/editor/components/ItemIcon/index.vue +10 -2
  138. package/dist/runtime/editor/components/NestedEditorOverlay/index.d.vue.ts +13 -3
  139. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue +15 -7
  140. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue.d.ts +13 -3
  141. package/dist/runtime/editor/components/PreviewProvider.d.vue.ts +2 -0
  142. package/dist/runtime/editor/components/PreviewProvider.vue +3 -2
  143. package/dist/runtime/editor/components/PreviewProvider.vue.d.ts +2 -0
  144. package/dist/runtime/editor/components/ShortcutIndicator/index.vue +1 -1
  145. package/dist/runtime/editor/components/index.d.ts +3 -1
  146. package/dist/runtime/editor/components/index.js +4 -0
  147. package/dist/runtime/editor/composables/onElementResize.js +0 -1
  148. package/dist/runtime/editor/composables/useEditableFieldOverride.js +4 -5
  149. package/dist/runtime/editor/css/output.css +1 -1
  150. package/dist/runtime/editor/events/index.d.ts +7 -0
  151. package/dist/runtime/editor/features/add-list/Help/Item.vue +5 -2
  152. package/dist/runtime/editor/features/artboard/Renderer.vue +1 -1
  153. package/dist/runtime/editor/features/clipboard/index.vue +1 -1
  154. package/dist/runtime/editor/features/debug/index.vue +1 -1
  155. package/dist/runtime/editor/features/dev-mode/index.vue +86 -2
  156. package/dist/runtime/editor/features/edit/index.vue +20 -0
  157. package/dist/runtime/editor/features/fragments/types.d.ts +1 -0
  158. package/dist/runtime/editor/features/hover/Renderer/index.vue +30 -3
  159. package/dist/runtime/editor/features/hover/index.vue +1 -1
  160. package/dist/runtime/editor/features/options/Form/Checkbox/index.d.vue.ts +2 -2
  161. package/dist/runtime/editor/features/options/Form/Checkbox/index.vue +3 -3
  162. package/dist/runtime/editor/features/options/Form/Checkbox/index.vue.d.ts +2 -2
  163. package/dist/runtime/editor/features/options/Form/Checkboxes/index.d.vue.ts +2 -2
  164. package/dist/runtime/editor/features/options/Form/Checkboxes/index.vue +5 -5
  165. package/dist/runtime/editor/features/options/Form/Checkboxes/index.vue.d.ts +2 -2
  166. package/dist/runtime/editor/features/options/Form/Item.d.vue.ts +2 -2
  167. package/dist/runtime/editor/features/options/Form/Item.vue +14 -48
  168. package/dist/runtime/editor/features/options/Form/Item.vue.d.ts +2 -2
  169. package/dist/runtime/editor/features/options/Form/Number/index.d.vue.ts +3 -3
  170. package/dist/runtime/editor/features/options/Form/Number/index.vue +7 -17
  171. package/dist/runtime/editor/features/options/Form/Number/index.vue.d.ts +3 -3
  172. package/dist/runtime/editor/features/options/Form/Range/index.d.vue.ts +2 -2
  173. package/dist/runtime/editor/features/options/Form/Range/index.vue +4 -4
  174. package/dist/runtime/editor/features/options/Form/Range/index.vue.d.ts +2 -2
  175. package/dist/runtime/editor/features/options/Form/index.vue +10 -5
  176. package/dist/runtime/editor/features/selection/index.vue +2 -2
  177. package/dist/runtime/editor/features/transform/index.vue +1 -3
  178. package/dist/runtime/editor/providers/definition.d.ts +2 -2
  179. package/dist/runtime/editor/providers/definition.js +7 -1
  180. package/dist/runtime/editor/providers/dom.d.ts +5 -0
  181. package/dist/runtime/editor/providers/dom.js +11 -2
  182. package/dist/runtime/editor/providers/fields.d.ts +19 -1
  183. package/dist/runtime/editor/providers/fields.js +54 -2
  184. package/dist/runtime/editor/translations/de.json +269 -1
  185. package/dist/runtime/editor/translations/fr.json +269 -1
  186. package/dist/runtime/editor/translations/gsw_CH.json +269 -1
  187. package/dist/runtime/editor/translations/it.json +269 -1
  188. package/dist/runtime/editor/types/field.d.ts +2 -1
  189. package/dist/runtime/helpers/imports/index.d.ts +8 -1
  190. package/dist/runtime/helpers/imports/index.js +15 -6
  191. package/dist/runtime/helpers/injections.d.ts +10 -1
  192. package/dist/runtime/helpers/injections.js +6 -0
  193. package/dist/runtime/helpers/runtimeHelpers/index.js +14 -0
  194. package/dist/runtime/types/definitions.d.ts +8 -5
  195. package/dist/runtime/types/provider.d.ts +2 -0
  196. package/dist/shared/editor.6D5vApr0.mjs +30 -0
  197. package/dist/shared/{editor.DMFfaLVE.mjs → editor.BFIzNSQM.mjs} +1 -30
  198. package/dist/shared/{editor.Iax3GCvt.d.mts → editor.CWQIFIEQ.d.mts} +22 -0
  199. package/dist/types.d.mts +1 -1
  200. package/package.json +17 -1
  201. package/dist/modules/agent/runtime/app/tools/get_available_bundles/index.js +0 -104
  202. /package/dist/modules/agent/runtime/app/tools/{get_available_bundles → get_bundle_info}/index.d.ts +0 -0
  203. /package/dist/{modules/agent/runtime/app/features/agent/Panel/Input/Actions → runtime/editor/components}/DropdownItem/index.d.vue.ts +0 -0
  204. /package/dist/{modules/agent/runtime/app/features/agent/Panel/Input/Actions → runtime/editor/components}/DropdownItem/index.vue.d.ts +0 -0
@@ -0,0 +1,107 @@
1
+ <template>
2
+ <div ref="container" class="bk-dropdown-menu">
3
+ <button
4
+ class="bk-dropdown-menu-trigger"
5
+ :disabled="disabled"
6
+ @click="showMenu = !showMenu"
7
+ >
8
+ <slot name="button" />
9
+ </button>
10
+ <BlokkliTransition name="drop-up">
11
+ <div
12
+ v-if="showMenu"
13
+ ref="contentEl"
14
+ class="bk-dropdown-menu-content"
15
+ :class="positionClass"
16
+ @keydown="onContentKeydown"
17
+ >
18
+ <slot :close="close" />
19
+ </div>
20
+ </BlokkliTransition>
21
+ </div>
22
+ </template>
23
+
24
+ <script setup>
25
+ import {
26
+ ref,
27
+ computed,
28
+ watch,
29
+ nextTick,
30
+ onMounted,
31
+ onBeforeUnmount,
32
+ useTemplateRef,
33
+ useBlokkli
34
+ } from "#imports";
35
+ import { BlokkliTransition } from "#blokkli/editor/components";
36
+ const props = defineProps({
37
+ position: { type: String, required: false, default: "bottom-left" },
38
+ disabled: { type: Boolean, required: false, default: false }
39
+ });
40
+ const { eventBus } = useBlokkli();
41
+ const container = useTemplateRef("container");
42
+ const contentEl = useTemplateRef("contentEl");
43
+ const showMenu = ref(false);
44
+ const positionClass = computed(() => `bk-is-${props.position}`);
45
+ function getFocusableItems() {
46
+ if (!contentEl.value) return [];
47
+ return Array.from(
48
+ contentEl.value.querySelectorAll("button, input, [tabindex]")
49
+ );
50
+ }
51
+ function focusTrigger() {
52
+ const trigger = container.value?.querySelector(
53
+ ".bk-dropdown-menu-trigger"
54
+ );
55
+ trigger?.focus();
56
+ }
57
+ function close() {
58
+ if (!showMenu.value) return;
59
+ showMenu.value = false;
60
+ focusTrigger();
61
+ }
62
+ watch(showMenu, (open) => {
63
+ if (open) {
64
+ nextTick(() => {
65
+ const items = getFocusableItems();
66
+ items[0]?.focus();
67
+ });
68
+ }
69
+ });
70
+ function onContentKeydown(e) {
71
+ const { key } = e;
72
+ if (key === "Escape") {
73
+ e.preventDefault();
74
+ e.stopPropagation();
75
+ close();
76
+ return;
77
+ }
78
+ if (key === "ArrowDown" || key === "ArrowUp") {
79
+ e.preventDefault();
80
+ e.stopPropagation();
81
+ const items = getFocusableItems();
82
+ if (!items.length) return;
83
+ const current = items.indexOf(document.activeElement);
84
+ let next;
85
+ if (key === "ArrowDown") {
86
+ next = current < items.length - 1 ? current + 1 : 0;
87
+ } else {
88
+ next = current > 0 ? current - 1 : items.length - 1;
89
+ }
90
+ items[next]?.focus();
91
+ return;
92
+ }
93
+ e.stopPropagation();
94
+ }
95
+ function onDocumentClick(e) {
96
+ if (!container.value?.contains(e.target)) {
97
+ close();
98
+ }
99
+ }
100
+ eventBus.on("mouse:up", close);
101
+ onMounted(() => document.addEventListener("click", onDocumentClick));
102
+ onBeforeUnmount(() => {
103
+ document.removeEventListener("click", onDocumentClick);
104
+ eventBus.off("mouse:up", close);
105
+ });
106
+ defineExpose({ close });
107
+ </script>
@@ -0,0 +1,27 @@
1
+ type __VLS_Props = {
2
+ position?: 'bottom-left' | 'top-left' | 'top-right';
3
+ disabled?: boolean;
4
+ };
5
+ declare function close(): void;
6
+ declare var __VLS_1: {}, __VLS_9: {
7
+ close: typeof close;
8
+ };
9
+ type __VLS_Slots = {} & {
10
+ button?: (props: typeof __VLS_1) => any;
11
+ } & {
12
+ default?: (props: typeof __VLS_9) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
15
+ close: typeof close;
16
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
+ disabled: boolean;
18
+ position: "bottom-left" | "top-left" | "top-right";
19
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_WithSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <button @click="$emit('click')">
2
+ <button class="bk-dropdown-menu-item" @click="$emit('click')">
3
3
  <Icon :name="icon" />
4
4
  <span>{{ text }}</span>
5
5
  </button>
@@ -1,5 +1,6 @@
1
1
  import '#blokkli-build/styles.css';
2
2
  import type { EditPermission } from '#blokkli/types/provider';
3
+ import type { ValidProviderTypes } from '#blokkli-build/generated-types';
3
4
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
5
  props: import("vue").PublicProps & __VLS_PrettifyLocal<{
5
6
  entity?: T;
@@ -10,6 +11,7 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
10
11
  isolate?: boolean;
11
12
  permissions: Array<EditPermission | null>;
12
13
  providerEl: HTMLElement;
14
+ providerType: ValidProviderTypes;
13
15
  }> & (typeof globalThis extends {
14
16
  __VLS_PROPS_FALLBACK: infer P;
15
17
  } ? P : {});
@@ -139,7 +139,8 @@ const props = defineProps({
139
139
  language: { type: String, required: false, default: "en" },
140
140
  isolate: { type: Boolean, required: false },
141
141
  permissions: { type: Array, required: true },
142
- providerEl: { type: null, required: true }
142
+ providerEl: { type: null, required: true },
143
+ providerType: { type: null, required: true }
143
144
  });
144
145
  defineSlots();
145
146
  const mainLayoutElement = useTemplateRef("mainLayoutElement");
@@ -166,7 +167,7 @@ const route = useRoute();
166
167
  const toolbarLoaded = ref(false);
167
168
  const featuresLoaded = ref(false);
168
169
  const isInitializing = ref(true);
169
- const definitions = definitionProvider();
170
+ const definitions = definitionProvider(props.providerType);
170
171
  const $t = textProvider(context);
171
172
  const state = await editStateProvider(
172
173
  eventBus,
@@ -213,7 +214,7 @@ const animation = animationProvider(
213
214
  const types = await typesProvider(adapter, selection, context);
214
215
  const indicators = indicatorsProvider();
215
216
  const directive = directiveProvider(debug, ui);
216
- const fields = fieldsProvider(dom, types);
217
+ const fields = fieldsProvider(dom, types, state);
217
218
  const permissionsInstance = await permissionsProvider(adapter);
218
219
  const mutatedEntityProps = computed(() => state.mutatedItemProps.HOST);
219
220
  const mutatedEntity = computed(() => {
@@ -1,5 +1,6 @@
1
1
  import '#blokkli-build/styles.css';
2
2
  import type { EditPermission } from '#blokkli/types/provider';
3
+ import type { ValidProviderTypes } from '#blokkli-build/generated-types';
3
4
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
5
  props: import("vue").PublicProps & __VLS_PrettifyLocal<{
5
6
  entity?: T;
@@ -10,6 +11,7 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
10
11
  isolate?: boolean;
11
12
  permissions: Array<EditPermission | null>;
12
13
  providerEl: HTMLElement;
14
+ providerType: ValidProviderTypes;
13
15
  }> & (typeof globalThis extends {
14
16
  __VLS_PROPS_FALLBACK: infer P;
15
17
  } ? P : {});
@@ -8,6 +8,7 @@ type __VLS_Props = {
8
8
  required?: boolean;
9
9
  disabled?: boolean;
10
10
  description?: string;
11
+ inline?: boolean;
11
12
  };
12
13
  type __VLS_ModelProps = {
13
14
  modelValue?: string;
@@ -3,7 +3,7 @@
3
3
  <div class="bk-form-label">
4
4
  {{ label }}<span v-if="required" class="bk-required-indicator">*</span>
5
5
  </div>
6
- <div>
6
+ <div :class="{ 'bk-radio-inline': inline }">
7
7
  <label v-for="option in options" :key="option.value" class="bk-radio">
8
8
  <input
9
9
  v-model="value"
@@ -27,7 +27,8 @@ defineProps({
27
27
  options: { type: Array, required: true },
28
28
  required: { type: Boolean, required: false },
29
29
  disabled: { type: Boolean, required: false },
30
- description: { type: String, required: false }
30
+ description: { type: String, required: false },
31
+ inline: { type: Boolean, required: false }
31
32
  });
32
33
  const value = defineModel({ type: String });
33
34
  </script>
@@ -8,6 +8,7 @@ type __VLS_Props = {
8
8
  required?: boolean;
9
9
  disabled?: boolean;
10
10
  description?: string;
11
+ inline?: boolean;
11
12
  };
12
13
  type __VLS_ModelProps = {
13
14
  modelValue?: string;
@@ -8,7 +8,10 @@
8
8
  <script setup>
9
9
  import { computed, useBlokkli } from "#imports";
10
10
  import { Icon } from "#blokkli/editor/components";
11
- import { fromLibraryBlockBundle } from "#blokkli-build/config";
11
+ import {
12
+ fragmentBlockBundle,
13
+ fromLibraryBlockBundle
14
+ } from "#blokkli-build/config";
12
15
  const props = defineProps({
13
16
  bundle: { type: String, required: false },
14
17
  icon: { type: null, required: false }
@@ -26,7 +29,12 @@ const iconName = computed(() => {
26
29
  return name;
27
30
  }
28
31
  }
29
- return props.icon ?? "bk_mdi_question_mark";
32
+ if (props.icon) {
33
+ return props.icon;
34
+ } else if (props.bundle === fragmentBlockBundle) {
35
+ return "bk_mdi_newspaper";
36
+ }
37
+ return "bk_mdi_question_mark";
30
38
  });
31
39
  </script>
32
40
 
@@ -1,19 +1,29 @@
1
1
  import type { BlokkliIcon } from '#blokkli-build/icons';
2
2
  export type NestedEditorOverlayProps = {
3
- url: string;
3
+ url?: string;
4
4
  uuid: string;
5
5
  title: string;
6
- theme: 'lime' | 'red';
6
+ theme: 'lime' | 'red' | 'accent';
7
7
  icon: BlokkliIcon;
8
8
  blockUuid?: string;
9
9
  element?: HTMLElement | null;
10
10
  };
11
- declare const __VLS_export: import("vue").DefineComponent<NestedEditorOverlayProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ declare var __VLS_38: {};
12
+ type __VLS_Slots = {} & {
13
+ default?: (props: typeof __VLS_38) => any;
14
+ };
15
+ declare const __VLS_base: import("vue").DefineComponent<NestedEditorOverlayProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
16
  close: (...args: any[]) => void;
13
17
  submit: (...args: any[]) => void;
14
18
  }, string, import("vue").PublicProps, Readonly<NestedEditorOverlayProps> & Readonly<{
15
19
  onClose?: ((...args: any[]) => any) | undefined;
16
20
  onSubmit?: ((...args: any[]) => any) | undefined;
17
21
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
23
  declare const _default: typeof __VLS_export;
19
24
  export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };
@@ -34,12 +34,17 @@
34
34
  class="bk bk-library-edit-overlay"
35
35
  :class="'bk-is-' + theme"
36
36
  >
37
- <iframe
38
- ref="iframe"
39
- :src="url"
40
- style="width: 100%; height: 100%"
41
- @load="onLoad"
42
- />
37
+ <div class="bk-library-edit-overlay-frame">
38
+ <slot>
39
+ <iframe
40
+ v-if="url"
41
+ ref="iframe"
42
+ :src="url"
43
+ style="width: 100%; height: 100%"
44
+ @load="onLoad"
45
+ />
46
+ </slot>
47
+ </div>
43
48
  </div>
44
49
  </Transition>
45
50
  </Teleport>
@@ -57,7 +62,7 @@ import {
57
62
  import { Icon } from "#blokkli/editor/components";
58
63
  import { onBroadcastEvent } from "#blokkli/editor/composables";
59
64
  const props = defineProps({
60
- url: { type: String, required: true },
65
+ url: { type: String, required: false },
61
66
  uuid: { type: String, required: true },
62
67
  title: { type: String, required: true },
63
68
  theme: { type: String, required: true },
@@ -241,6 +246,9 @@ function onEditorLoaded({ uuid }) {
241
246
  onMounted(() => {
242
247
  isLoaded.value = true;
243
248
  ui.setNestedEditor(props.uuid);
249
+ if (!props.url) {
250
+ isLoaded.value = true;
251
+ }
244
252
  });
245
253
  onBeforeUnmount(() => {
246
254
  ui.setNestedEditor(null);
@@ -1,19 +1,29 @@
1
1
  import type { BlokkliIcon } from '#blokkli-build/icons';
2
2
  export type NestedEditorOverlayProps = {
3
- url: string;
3
+ url?: string;
4
4
  uuid: string;
5
5
  title: string;
6
- theme: 'lime' | 'red';
6
+ theme: 'lime' | 'red' | 'accent';
7
7
  icon: BlokkliIcon;
8
8
  blockUuid?: string;
9
9
  element?: HTMLElement | null;
10
10
  };
11
- declare const __VLS_export: import("vue").DefineComponent<NestedEditorOverlayProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ declare var __VLS_38: {};
12
+ type __VLS_Slots = {} & {
13
+ default?: (props: typeof __VLS_38) => any;
14
+ };
15
+ declare const __VLS_base: import("vue").DefineComponent<NestedEditorOverlayProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
16
  close: (...args: any[]) => void;
13
17
  submit: (...args: any[]) => void;
14
18
  }, string, import("vue").PublicProps, Readonly<NestedEditorOverlayProps> & Readonly<{
15
19
  onClose?: ((...args: any[]) => any) | undefined;
16
20
  onSubmit?: ((...args: any[]) => any) | undefined;
17
21
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
23
  declare const _default: typeof __VLS_export;
19
24
  export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };
@@ -1,4 +1,5 @@
1
1
  import '#blokkli-build/styles.css';
2
+ import type { ValidProviderTypes } from '#blokkli-build/generated-types';
2
3
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
4
  props: import("vue").PublicProps & __VLS_PrettifyLocal<{
4
5
  entity?: T;
@@ -6,6 +7,7 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
6
7
  entityUuid: string;
7
8
  entityBundle: string;
8
9
  language: string;
10
+ providerType: ValidProviderTypes;
9
11
  }> & (typeof globalThis extends {
10
12
  __VLS_PROPS_FALLBACK: infer P;
11
13
  } ? P : {});
@@ -31,7 +31,8 @@ const props = defineProps({
31
31
  entityType: { type: String, required: true },
32
32
  entityUuid: { type: String, required: true },
33
33
  entityBundle: { type: String, required: true },
34
- language: { type: String, required: true }
34
+ language: { type: String, required: true },
35
+ providerType: { type: null, required: true }
35
36
  });
36
37
  defineSlots();
37
38
  const context = computed(() => {
@@ -45,7 +46,7 @@ const context = computed(() => {
45
46
  const adapter = await getAdapter(context);
46
47
  const router = useRouter();
47
48
  const broadcast = broadcastProvider();
48
- const definitions = definitionProvider();
49
+ const definitions = definitionProvider(props.providerType);
49
50
  let timeout = null;
50
51
  let lastChanged = 0;
51
52
  const mutatedFieldsMap = reactive({});
@@ -1,4 +1,5 @@
1
1
  import '#blokkli-build/styles.css';
2
+ import type { ValidProviderTypes } from '#blokkli-build/generated-types';
2
3
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
4
  props: import("vue").PublicProps & __VLS_PrettifyLocal<{
4
5
  entity?: T;
@@ -6,6 +7,7 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
6
7
  entityUuid: string;
7
8
  entityBundle: string;
8
9
  language: string;
10
+ providerType: ValidProviderTypes;
9
11
  }> & (typeof globalThis extends {
10
12
  __VLS_PROPS_FALLBACK: infer P;
11
13
  } ? P : {});
@@ -53,7 +53,7 @@ if (!props.viewOnly) {
53
53
  });
54
54
  }
55
55
  onBlokkliEvent("keyPressed", (e) => {
56
- if (ui.hasDialogOpen.value) {
56
+ if (ui.hasDialogOpen.value || ui.hasNestedEditorOpen.value) {
57
57
  return;
58
58
  }
59
59
  const checkKey = [e.meta, e.shift, e.code.toLowerCase()].join("-");
@@ -7,6 +7,8 @@ import BlockPreviewRenderer from './BlockPreviewRenderer/index.vue.js';
7
7
  import BlokkliTransition from './Transition/index.vue.js';
8
8
  import BundleSelector from './BundleSelector/index.vue.js';
9
9
  import ConfigForm from './PluginConfigForm/index.vue.js';
10
+ import Dropdown from './Dropdown/index.vue.js';
11
+ import DropdownItem from './DropdownItem/index.vue.js';
10
12
  import DialogModal from './Dialog/index.vue.js';
11
13
  import DiffValue from './DiffViewer/DiffValue.vue.js';
12
14
  import DiffViewerState from './DiffViewer/State.vue.js';
@@ -41,4 +43,4 @@ import Sortli from './Sortli/index.vue.js';
41
43
  import StatusIcon from './StatusIcon/index.vue.js';
42
44
  import TransitionHeight from './Transition/Height.vue.js';
43
45
  import ViewportBlockingRect from './ViewportBlockingRect/index.vue.js';
44
- export { AddListItem, ArtboardTooltip, AutoHeight, Banner, BlockPreviewItem, BlockPreviewRenderer, BlokkliTransition, BundleSelector, ConfigForm, DialogModal, DiffValue, DiffViewerState, ErrorBoundary, FlexTextarea, FormCheckboxes, FormDatepicker, FormGroup, FormItem, FormOverlay, FormRadio, FormRadioTabs, FormSelect, FormText, FormTextarea, FormToggle, Highlight, Icon, InfoBox, ItemIcon, ItemIconBox, Loading, NestedEditorOverlay, Pagination, RelativeTime, Resizable, ScaleToFit, ScheduleDate, ScrollBoundary, ShortcutIndicator, Sortli, StatusIcon, TransitionHeight, ViewportBlockingRect, };
46
+ export { AddListItem, ArtboardTooltip, AutoHeight, Banner, BlockPreviewItem, BlockPreviewRenderer, BlokkliTransition, BundleSelector, ConfigForm, Dropdown, DropdownItem, DialogModal, DiffValue, DiffViewerState, ErrorBoundary, FlexTextarea, FormCheckboxes, FormDatepicker, FormGroup, FormItem, FormOverlay, FormRadio, FormRadioTabs, FormSelect, FormText, FormTextarea, FormToggle, Highlight, Icon, InfoBox, ItemIcon, ItemIconBox, Loading, NestedEditorOverlay, Pagination, RelativeTime, Resizable, ScaleToFit, ScheduleDate, ScrollBoundary, ShortcutIndicator, Sortli, StatusIcon, TransitionHeight, ViewportBlockingRect, };
@@ -7,6 +7,8 @@ import BlockPreviewRenderer from "./BlockPreviewRenderer/index.vue";
7
7
  import BlokkliTransition from "./Transition/index.vue";
8
8
  import BundleSelector from "./BundleSelector/index.vue";
9
9
  import ConfigForm from "./PluginConfigForm/index.vue";
10
+ import Dropdown from "./Dropdown/index.vue";
11
+ import DropdownItem from "./DropdownItem/index.vue";
10
12
  import DialogModal from "./Dialog/index.vue";
11
13
  import DiffValue from "./DiffViewer/DiffValue.vue";
12
14
  import DiffViewerState from "./DiffViewer/State.vue";
@@ -51,6 +53,8 @@ export {
51
53
  BlokkliTransition,
52
54
  BundleSelector,
53
55
  ConfigForm,
56
+ Dropdown,
57
+ DropdownItem,
54
58
  DialogModal,
55
59
  DiffValue,
56
60
  DiffViewerState,
@@ -23,7 +23,6 @@ export function onElementResize(el, cb) {
23
23
  if (!boxSize) {
24
24
  return;
25
25
  }
26
- console.log("CB");
27
26
  cb({
28
27
  width: boxSize.inlineSize,
29
28
  height: boxSize.blockSize
@@ -1,5 +1,4 @@
1
1
  import { useBlokkli } from "#imports";
2
- import { FIELD_MAPPING } from "#blokkli-build/runtime-options";
3
2
  import { itemEntityType } from "#blokkli-build/config";
4
3
  const NOOP_OVERRIDE = {
5
4
  element: null,
@@ -32,7 +31,7 @@ export function useEditableFieldOverride(fieldName, host) {
32
31
  const isComponent = !!editableData?.isComponent;
33
32
  function findMatchingProp(mapping) {
34
33
  return Object.entries(mapping).find(
35
- ([_prop, field]) => field === fieldName
34
+ ([_prop, propMapping]) => propMapping?.name === fieldName && propMapping.type === "editable"
36
35
  )?.[0] ?? null;
37
36
  }
38
37
  const providerDefinition = definitions.getProviderDefinition(
@@ -41,9 +40,9 @@ export function useEditableFieldOverride(fieldName, host) {
41
40
  );
42
41
  let matchingProp = null;
43
42
  if (host.type === itemEntityType) {
44
- const mapping = FIELD_MAPPING[host.bundle];
45
- if (mapping) {
46
- matchingProp = findMatchingProp(mapping);
43
+ const defintion = definitions.getBlockDefinition(host.bundle, "default");
44
+ if (defintion?.propsFieldMapping) {
45
+ matchingProp = findMatchingProp(defintion.propsFieldMapping);
47
46
  }
48
47
  } else if (providerDefinition) {
49
48
  const mapping = providerDefinition.propsFieldMapping;