@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,44 @@
1
+ import type { fromLibraryBlockBundle } from '#blokkli-build/config';
2
+ import type { FieldListItemTyped } from '#blokkli-build/generated-types';
3
+ import type { BlokkliTableOfContentsLink } from './../../types/index.js';
4
+ type BundleWithoutLibrary = Exclude<FieldListItemTyped['bundle'], typeof fromLibraryBlockBundle>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
7
+ declare const __VLS_export: <T extends BundleWithoutLibrary>(__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<{
8
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
9
+ /**
10
+ * Which bundles to include. This will also match reusable blocks of this bundle.
11
+ */
12
+ bundles: T[];
13
+ /**
14
+ * The name of the defineBlokkli option used to toggle if a block should be
15
+ * added to the table of contents.
16
+ *
17
+ * If not provided, all blocks are included.
18
+ */
19
+ optionName?: string;
20
+ /**
21
+ * Map a block item to a link.
22
+ */
23
+ mapItem: (item: Extract<FieldListItemTyped, {
24
+ bundle: T;
25
+ }>) => BlokkliTableOfContentsLink | null;
26
+ }> & (typeof globalThis extends {
27
+ __VLS_PROPS_FALLBACK: infer P;
28
+ } ? P : {});
29
+ expose: (exposed: {}) => void;
30
+ attrs: any;
31
+ slots: {
32
+ default(props: {
33
+ links: BlokkliTableOfContentsLink[];
34
+ }): any;
35
+ };
36
+ emit: {};
37
+ }>) => import("vue").VNode & {
38
+ __ctx?: Awaited<typeof __VLS_setup>;
39
+ };
40
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
41
+ [K in keyof T]: T[K];
42
+ } : {
43
+ [K in keyof T as K]: T[K];
44
+ }) & {};
@@ -0,0 +1,43 @@
1
+ <template>
2
+ <slot :links />
3
+ </template>
4
+
5
+ <script>
6
+
7
+ </script>
8
+
9
+ <script setup>
10
+ import { falsy } from "#blokkli/helpers";
11
+ import { getRuntimeOptions } from "#blokkli/helpers/runtimeHelpers";
12
+ import { computed, useBlokkliHelper } from "#imports";
13
+ import { BK_HIDDEN_GLOBALLY } from "./../../../../../global/constants";
14
+ const props = defineProps({
15
+ bundles: { type: Array, required: true },
16
+ optionName: { type: String, required: false },
17
+ mapItem: { type: Function, required: true }
18
+ });
19
+ defineSlots();
20
+ const { queryBlocks } = useBlokkliHelper();
21
+ const items = queryBlocks(props.bundles);
22
+ const links = computed(() => {
23
+ return items.value.filter((item) => {
24
+ if ("bundle" in item) {
25
+ const options = getRuntimeOptions(item);
26
+ if (!options) {
27
+ return null;
28
+ }
29
+ if (props.optionName) {
30
+ const shouldShow = options[props.optionName];
31
+ if (!shouldShow) {
32
+ return false;
33
+ }
34
+ }
35
+ const hiddenGlobally = options[BK_HIDDEN_GLOBALLY];
36
+ if (hiddenGlobally) {
37
+ return false;
38
+ }
39
+ return true;
40
+ }
41
+ }).map(props.mapItem).filter(falsy);
42
+ });
43
+ </script>
@@ -0,0 +1,44 @@
1
+ import type { fromLibraryBlockBundle } from '#blokkli-build/config';
2
+ import type { FieldListItemTyped } from '#blokkli-build/generated-types';
3
+ import type { BlokkliTableOfContentsLink } from './../../types/index.js';
4
+ type BundleWithoutLibrary = Exclude<FieldListItemTyped['bundle'], typeof fromLibraryBlockBundle>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
7
+ declare const __VLS_export: <T extends BundleWithoutLibrary>(__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<{
8
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
9
+ /**
10
+ * Which bundles to include. This will also match reusable blocks of this bundle.
11
+ */
12
+ bundles: T[];
13
+ /**
14
+ * The name of the defineBlokkli option used to toggle if a block should be
15
+ * added to the table of contents.
16
+ *
17
+ * If not provided, all blocks are included.
18
+ */
19
+ optionName?: string;
20
+ /**
21
+ * Map a block item to a link.
22
+ */
23
+ mapItem: (item: Extract<FieldListItemTyped, {
24
+ bundle: T;
25
+ }>) => BlokkliTableOfContentsLink | null;
26
+ }> & (typeof globalThis extends {
27
+ __VLS_PROPS_FALLBACK: infer P;
28
+ } ? P : {});
29
+ expose: (exposed: {}) => void;
30
+ attrs: any;
31
+ slots: {
32
+ default(props: {
33
+ links: BlokkliTableOfContentsLink[];
34
+ }): any;
35
+ };
36
+ emit: {};
37
+ }>) => import("vue").VNode & {
38
+ __ctx?: Awaited<typeof __VLS_setup>;
39
+ };
40
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
41
+ [K in keyof T]: T[K];
42
+ } : {
43
+ [K in keyof T as K]: T[K];
44
+ }) & {};
@@ -0,0 +1,4 @@
1
+ export type BlokkliTableOfContentsLink = {
2
+ id: string;
3
+ label: string;
4
+ };
@@ -19,12 +19,16 @@ const ctx = defineBlokkli({
19
19
  disableEdit: true
20
20
  }
21
21
  });
22
+ const providerType = ctx.provider.value?.providerType;
22
23
  const allComponentsChunk = inject(INJECT_ALL_COMPONENTS_CHUNK, null);
23
24
  const component = getComponent(
24
25
  "fragment",
25
26
  componentProps.name,
26
- void 0,
27
- void 0,
27
+ {
28
+ fieldListType: void 0,
29
+ parentBundle: void 0,
30
+ providerType
31
+ },
28
32
  allComponentsChunk
29
33
  );
30
34
  provide(INJECT_FRAGMENT_CONTEXT, ctx);
@@ -52,6 +52,11 @@ type __VLS_Props = {
52
52
  * Force an alignment during drag and drop interactions.
53
53
  */
54
54
  dropAlignment?: FieldDropAlignment;
55
+ /**
56
+ * The z-index of this field, used to resolve overlapping blocks at the same
57
+ * nesting level. Higher values take priority. Default is 0.
58
+ */
59
+ zIndex?: number | string;
55
60
  /**
56
61
  * Renders proxy blocks during editing.
57
62
  *
@@ -80,6 +85,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
80
85
  fieldListType: ValidFieldListTypes;
81
86
  allowedFragments: BlokkliFragmentName[] | BlokkliFragmentName;
82
87
  dropAlignment: FieldDropAlignment;
88
+ zIndex: number | string;
83
89
  list: Array<FieldListItem | null | undefined> | FieldListItem | null;
84
90
  shouldRenderItem: (item: FieldListItem | FieldListItemTyped) => boolean;
85
91
  listClass: VueClassProp;
@@ -18,6 +18,7 @@
18
18
  { [nonEmptyClass]: filteredList.length }
19
19
  ]"
20
20
  :is-nested
21
+ :z-index
21
22
  :language="providerEntity?.language"
22
23
  :proxy-mode
23
24
  :tag
@@ -56,6 +57,7 @@ import BlokkliItem from "./BlokkliItem.vue";
56
57
  import {
57
58
  INJECT_ENTITY_CONTEXT,
58
59
  INJECT_FIELD_LIST_TYPE,
60
+ INJECT_FIELD_Z_INDEX,
59
61
  INJECT_IS_EDITING,
60
62
  INJECT_IS_IN_REUSABLE,
61
63
  INJECT_IS_NESTED,
@@ -86,6 +88,7 @@ const props = defineProps({
86
88
  nonEmptyClass: { type: String, required: false, default: "" },
87
89
  allowedFragments: { type: null, required: false, default: () => [] },
88
90
  dropAlignment: { type: String, required: false, default: void 0 },
91
+ zIndex: { type: [Number, String], required: false, default: 0 },
89
92
  proxyMode: { type: Boolean, required: false },
90
93
  shouldRenderItem: { type: Function, required: false, default: void 0 }
91
94
  });
@@ -153,6 +156,7 @@ const filteredList = computed(() => {
153
156
  });
154
157
  provide(INJECT_IS_NESTED, true);
155
158
  provide(INJECT_NESTING_LEVEL, nestingLevel + 1);
159
+ provide(INJECT_FIELD_Z_INDEX, Number(props.zIndex));
156
160
  provide(INJECT_FIELD_LIST_TYPE, fieldListType);
157
161
  provide(INJECT_FIELD_LIST_BLOCKS, filteredList);
158
162
  if (props.proxyMode) {
@@ -52,6 +52,11 @@ type __VLS_Props = {
52
52
  * Force an alignment during drag and drop interactions.
53
53
  */
54
54
  dropAlignment?: FieldDropAlignment;
55
+ /**
56
+ * The z-index of this field, used to resolve overlapping blocks at the same
57
+ * nesting level. Higher values take priority. Default is 0.
58
+ */
59
+ zIndex?: number | string;
55
60
  /**
56
61
  * Renders proxy blocks during editing.
57
62
  *
@@ -80,6 +85,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
80
85
  fieldListType: ValidFieldListTypes;
81
86
  allowedFragments: BlokkliFragmentName[] | BlokkliFragmentName;
82
87
  dropAlignment: FieldDropAlignment;
88
+ zIndex: number | string;
83
89
  list: Array<FieldListItem | null | undefined> | FieldListItem | null;
84
90
  shouldRenderItem: (item: FieldListItem | FieldListItemTyped) => boolean;
85
91
  listClass: VueClassProp;
@@ -33,7 +33,8 @@ import {
33
33
  INJECT_FIELD_PROXY_MODE,
34
34
  INJECT_FIELD_USES_PROXY,
35
35
  INJECT_GLOBAL_PROXY_MODE,
36
- INJECT_ITEM_PROPS_OVERRIDE
36
+ INJECT_ITEM_PROPS_OVERRIDE,
37
+ INJECT_PROVIDER_TYPE
37
38
  } from "../helpers/injections";
38
39
  import { fragmentBlockBundle, itemEntityType } from "#blokkli-build/config";
39
40
  const componentProps = defineProps({
@@ -53,6 +54,7 @@ const allComponentsChunk = inject(INJECT_ALL_COMPONENTS_CHUNK, null);
53
54
  const fieldUsesProxy = inject(INJECT_FIELD_USES_PROXY, false);
54
55
  const isGlobalProxyMode = inject(INJECT_GLOBAL_PROXY_MODE, null);
55
56
  const fieldListType = inject(INJECT_FIELD_LIST_TYPE, void 0);
57
+ const providerType = inject(INJECT_PROVIDER_TYPE, void 0);
56
58
  const itemProps = computed(() => {
57
59
  if (mutatedItemProps) {
58
60
  const mutatedProps = mutatedItemProps[componentProps.uuid];
@@ -70,8 +72,11 @@ const component = isProxyMode || isGlobalProxyMode?.value ? defineAsyncComponent
70
72
  ) : getComponent(
71
73
  "block",
72
74
  componentProps.bundle,
73
- fieldListType?.value || "default",
74
- componentProps.parentType,
75
+ {
76
+ fieldListType: fieldListType?.value || "default",
77
+ parentBundle: componentProps.parentType,
78
+ providerType
79
+ },
75
80
  allComponentsChunk
76
81
  );
77
82
  const blockNotImplemented = componentProps.isEditing ? defineAsyncComponent(() => import("./Blocks/NotImplemented/index.vue")) : null;
@@ -1,4 +1,5 @@
1
1
  import type { EditPermission } from '#blokkli/types/provider';
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
  /**
@@ -41,6 +42,12 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
41
42
  * Whether to isolate the provider element during editing.
42
43
  */
43
44
  isolate?: boolean;
45
+ /**
46
+ * The provider type.
47
+ *
48
+ * @default "default"
49
+ */
50
+ providerType?: ValidProviderTypes;
44
51
  } & ({
45
52
  /**
46
53
  * The entity data. Will be merged with the mutatedEntity data during editing.
@@ -15,6 +15,7 @@
15
15
  :entity-uuid
16
16
  :entity-bundle
17
17
  :language
18
+ :provider-type
18
19
  >
19
20
  <slot
20
21
  :entity="mutatedEntity"
@@ -34,6 +35,7 @@
34
35
  :language
35
36
  :isolate
36
37
  :permissions
38
+ :provider-type
37
39
  >
38
40
  <slot
39
41
  :is-editing
@@ -78,7 +80,8 @@ import {
78
80
  } from "#imports";
79
81
  import {
80
82
  INJECT_ENTITY_CONTEXT,
81
- INJECT_PROVIDER_CONTEXT
83
+ INJECT_PROVIDER_CONTEXT,
84
+ INJECT_PROVIDER_TYPE
82
85
  } from "../helpers/injections";
83
86
  const props = defineProps({
84
87
  entityType: { type: String, required: true },
@@ -91,6 +94,7 @@ const props = defineProps({
91
94
  hostOptions: { type: Object, required: false, default: void 0 },
92
95
  permissions: { type: Array, required: false, default: () => [] },
93
96
  isolate: { type: Boolean, required: false },
97
+ providerType: { type: null, required: false, default: "default" },
94
98
  entity: { type: null, required: false, default: void 0 }
95
99
  });
96
100
  defineSlots();
@@ -136,6 +140,7 @@ function edit() {
136
140
  const blokkliProviderEntityContext = computed(
137
141
  () => {
138
142
  return {
143
+ providerType: props.providerType,
139
144
  uuid: props.entityUuid,
140
145
  type: props.entityType,
141
146
  bundle: props.entityBundle,
@@ -152,6 +157,7 @@ const entityContext = computed(() => {
152
157
  });
153
158
  provide(INJECT_PROVIDER_CONTEXT, blokkliProviderEntityContext);
154
159
  provide(INJECT_ENTITY_CONTEXT, entityContext.value);
160
+ provide(INJECT_PROVIDER_TYPE, props.providerType);
155
161
  onMounted(() => {
156
162
  shouldRender.value = true;
157
163
  });
@@ -1,4 +1,5 @@
1
1
  import type { EditPermission } from '#blokkli/types/provider';
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
  /**
@@ -41,6 +42,12 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
41
42
  * Whether to isolate the provider element during editing.
42
43
  */
43
44
  isolate?: boolean;
45
+ /**
46
+ * The provider type.
47
+ *
48
+ * @default "default"
49
+ */
50
+ providerType?: ValidProviderTypes;
44
51
  } & ({
45
52
  /**
46
53
  * The entity data. Will be merged with the mutatedEntity data during editing.
@@ -32,8 +32,10 @@ function walkBlocks(matches, callback, mutatedOptions, mutatedFieldsMap, list) {
32
32
  if (!("props" in mappedItem) || !mappedItem.props) continue;
33
33
  const propNames = Object.keys(nestedFieldMapping);
34
34
  for (const propName of propNames) {
35
- const fieldName = nestedFieldMapping[propName];
36
- const key = mappedItem.uuid + ":" + fieldName;
35
+ const mapping = nestedFieldMapping[propName];
36
+ if (!mapping) continue;
37
+ if (mapping[0] !== "field") continue;
38
+ const key = mappedItem.uuid + ":" + mapping[1];
37
39
  const value = mutatedFieldsMap ? mutatedFieldsMap[key]?.list : mappedItem.props?.[propName];
38
40
  if (!value) continue;
39
41
  const valueAsArray = Array.isArray(value) ? value : [value];
@@ -43,7 +43,8 @@ const {
43
43
  animation,
44
44
  state,
45
45
  directive,
46
- blocks
46
+ blocks,
47
+ fields
47
48
  } = useBlokkli();
48
49
  function onCanvasFocus() {
49
50
  ui.setCanvasFocused(true);
@@ -80,17 +81,6 @@ let pointerDownTimestamp = 0;
80
81
  let pointerUpTimestamp = 0;
81
82
  function getInteractedElement(e) {
82
83
  const { x, y } = getInteractionCoordinates(e);
83
- const editableField = directive.getEditableAtPoint(x, y);
84
- if (editableField) {
85
- const uuid = editableField.type === itemEntityType ? editableField.uuid : void 0;
86
- return {
87
- editableFieldName: editableField.fieldName,
88
- uuid,
89
- timestamp: Date.now(),
90
- x,
91
- y
92
- };
93
- }
94
84
  const visibleUuids = dom.getVisibleBlocks();
95
85
  let deepestUuid = "";
96
86
  let deepestLevel = -1;
@@ -100,16 +90,35 @@ function getInteractedElement(e) {
100
90
  continue;
101
91
  }
102
92
  const rect = dom.getBlockRect(uuid);
103
- if (rect) {
104
- const level = state.getNestingLevel(uuid);
105
- if (level <= deepestLevel) {
106
- continue;
107
- }
108
- const relativeRect = ui.getViewportRelativeRect(rect);
109
- if (isInsideRect(x, y, relativeRect)) {
110
- deepestUuid = uuid;
111
- deepestLevel = level;
112
- }
93
+ if (!rect) {
94
+ continue;
95
+ }
96
+ const level = state.getNestingLevel(uuid);
97
+ if (level < deepestLevel) {
98
+ continue;
99
+ }
100
+ const relativeRect = ui.getViewportRelativeRect(rect);
101
+ if (!isInsideRect(x, y, relativeRect)) {
102
+ continue;
103
+ }
104
+ if (level > deepestLevel) {
105
+ deepestUuid = uuid;
106
+ deepestLevel = level;
107
+ } else if (fields.compareFieldPriority(uuid, deepestUuid) > 0) {
108
+ deepestUuid = uuid;
109
+ }
110
+ }
111
+ const editableField = directive.getEditableAtPoint(x, y);
112
+ if (editableField) {
113
+ const editableUuid = editableField.type === itemEntityType ? editableField.uuid : void 0;
114
+ if (!editableUuid || editableUuid === deepestUuid) {
115
+ return {
116
+ editableFieldName: editableField.fieldName,
117
+ uuid: editableUuid,
118
+ timestamp: Date.now(),
119
+ x,
120
+ y
121
+ };
113
122
  }
114
123
  }
115
124
  if (deepestUuid) {
@@ -3,11 +3,15 @@ import type { ThemeColorName } from './../../../../global/types/theme.js';
3
3
  type __VLS_Props = {
4
4
  id: string;
5
5
  icon: BlokkliIcon;
6
- text: string;
6
+ text?: string;
7
7
  button?: string;
8
8
  scheme?: ThemeColorName;
9
9
  };
10
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
10
+ declare var __VLS_6: {};
11
+ type __VLS_Slots = {} & {
12
+ default?: (props: typeof __VLS_6) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
11
15
  click: () => any;
12
16
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
17
  onClick?: (() => any) | undefined;
@@ -15,5 +19,11 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
15
19
  button: string;
16
20
  scheme: ThemeColorName;
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
+ };
@@ -5,7 +5,9 @@
5
5
  :class="scheme ? 'bk-scheme-' + scheme : void 0"
6
6
  >
7
7
  <Icon :name="icon" />
8
- <p v-html="text" />
8
+ <slot>
9
+ <p v-if="text" v-html="text" />
10
+ </slot>
9
11
  <button v-if="button" class="bk-banner-close" @click="$emit('click')">
10
12
  {{ button }}
11
13
  <Icon name="bk_mdi_close" />
@@ -24,7 +26,7 @@ import {
24
26
  const props = defineProps({
25
27
  id: { type: String, required: true },
26
28
  icon: { type: null, required: true },
27
- text: { type: String, required: true },
29
+ text: { type: String, required: false },
28
30
  button: { type: String, required: false, default: void 0 },
29
31
  scheme: { type: String, required: false, default: "accent" }
30
32
  });
@@ -3,11 +3,15 @@ import type { ThemeColorName } from './../../../../global/types/theme.js';
3
3
  type __VLS_Props = {
4
4
  id: string;
5
5
  icon: BlokkliIcon;
6
- text: string;
6
+ text?: string;
7
7
  button?: string;
8
8
  scheme?: ThemeColorName;
9
9
  };
10
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
10
+ declare var __VLS_6: {};
11
+ type __VLS_Slots = {} & {
12
+ default?: (props: typeof __VLS_6) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
11
15
  click: () => any;
12
16
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
17
  onClick?: (() => any) | undefined;
@@ -15,5 +19,11 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
15
19
  button: string;
16
20
  scheme: ThemeColorName;
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
+ };
@@ -13,6 +13,7 @@ type __VLS_Props = {
13
13
  fieldListType: ValidFieldListTypes;
14
14
  allowedFragments?: BlokkliFragmentName[] | BlokkliFragmentName;
15
15
  dropAlignment?: FieldDropAlignment;
16
+ zIndex?: number | string;
16
17
  proxyMode?: boolean;
17
18
  globalProxyMode?: boolean;
18
19
  nestingLevel: number;
@@ -22,6 +23,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
22
23
  tag: string;
23
24
  allowedFragments: BlokkliFragmentName[] | BlokkliFragmentName;
24
25
  dropAlignment: FieldDropAlignment;
26
+ zIndex: number | string;
25
27
  language: string;
26
28
  shouldRenderItem: (item: FieldListItem | FieldListItemTyped) => boolean;
27
29
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -87,6 +87,7 @@ const props = defineProps({
87
87
  return [];
88
88
  } },
89
89
  dropAlignment: { type: String, required: false, default: void 0 },
90
+ zIndex: { type: [Number, String], required: false, default: 0 },
90
91
  proxyMode: { type: Boolean, required: false },
91
92
  globalProxyMode: { type: Boolean, required: false },
92
93
  nestingLevel: { type: Number, required: true },
@@ -111,12 +112,14 @@ function isMuted(item) {
111
112
  }
112
113
  const data = computed(() => {
113
114
  const allowedFragments = Array.isArray(props.allowedFragments) ? props.allowedFragments : [props.allowedFragments];
115
+ const zIndex = Number(props.zIndex);
114
116
  return {
115
117
  fieldListType: props.fieldListType,
116
118
  allowedFragments,
117
119
  isNested: props.isNested,
118
120
  nestingLevel: props.nestingLevel,
119
- dropAlignment: props.dropAlignment ?? null
121
+ dropAlignment: props.dropAlignment ?? null,
122
+ zIndex: Number.isNaN(zIndex) ? 0 : zIndex
120
123
  };
121
124
  });
122
125
  watch(
@@ -13,6 +13,7 @@ type __VLS_Props = {
13
13
  fieldListType: ValidFieldListTypes;
14
14
  allowedFragments?: BlokkliFragmentName[] | BlokkliFragmentName;
15
15
  dropAlignment?: FieldDropAlignment;
16
+ zIndex?: number | string;
16
17
  proxyMode?: boolean;
17
18
  globalProxyMode?: boolean;
18
19
  nestingLevel: number;
@@ -22,6 +23,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
22
23
  tag: string;
23
24
  allowedFragments: BlokkliFragmentName[] | BlokkliFragmentName;
24
25
  dropAlignment: FieldDropAlignment;
26
+ zIndex: number | string;
25
27
  language: string;
26
28
  shouldRenderItem: (item: FieldListItem | FieldListItemTyped) => boolean;
27
29
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -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
+ };