@blokkli/editor 2.0.0-alpha.24 → 2.0.0-alpha.26

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 (182) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +191 -27
  3. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue.d.ts +38 -0
  4. package/dist/runtime/blokkliPlugins/ContextMenu/index.vue.d.ts +15 -0
  5. package/dist/runtime/blokkliPlugins/DebugOverlay/index.vue.d.ts +6 -0
  6. package/dist/runtime/blokkliPlugins/ItemAction/index.vue.d.ts +28 -3
  7. package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -4
  8. package/dist/runtime/blokkliPlugins/Sidebar/index.vue +11 -3
  9. package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +138 -3
  10. package/dist/runtime/blokkliPlugins/ToolbarButton/index.vue.d.ts +114 -0
  11. package/dist/runtime/blokkliPlugins/TourItem/index.vue.d.ts +21 -0
  12. package/dist/runtime/blokkliPlugins/ViewOption/index.vue.d.ts +98 -0
  13. package/dist/runtime/components/Blocks/NotImplemented/index.vue +24 -0
  14. package/dist/runtime/components/Blocks/NotImplemented/index.vue.d.ts +6 -0
  15. package/dist/runtime/components/BlokkliEditable.vue.d.ts +11 -0
  16. package/dist/runtime/components/BlokkliItem.vue +16 -3
  17. package/dist/runtime/components/BlokkliItem.vue.d.ts +4 -2
  18. package/dist/runtime/components/Edit/Actions/index.vue +1 -1
  19. package/dist/runtime/components/Edit/AddListItem/index.vue +1 -6
  20. package/dist/runtime/components/Edit/AddListItem/index.vue.d.ts +5 -13
  21. package/dist/runtime/components/Edit/ArtboardTooltip/index.vue +6 -0
  22. package/dist/runtime/components/Edit/BlockProxy/index.vue +2 -2
  23. package/dist/runtime/components/Edit/BlokkliErrorBoundary.vue +3 -0
  24. package/dist/runtime/components/Edit/BlokkliRootErrorBoundary.vue +4 -1
  25. package/dist/runtime/components/Edit/Dialog/index.vue +15 -50
  26. package/dist/runtime/components/Edit/DraggableList.vue +12 -9
  27. package/dist/runtime/components/Edit/EditIndicator.vue +11 -4
  28. package/dist/runtime/components/Edit/EditProvider.vue +27 -24
  29. package/dist/runtime/components/Edit/Features/AddList/Actions/Action.vue +1 -0
  30. package/dist/runtime/components/Edit/Features/AddList/Blocks/index.vue +2 -3
  31. package/dist/runtime/components/Edit/Features/AddList/index.vue +17 -5
  32. package/dist/runtime/components/Edit/Features/Analyze/Icon.vue +85 -0
  33. package/dist/runtime/components/Edit/Features/Analyze/Icon.vue.d.ts +5 -0
  34. package/dist/runtime/components/Edit/Features/Analyze/Main.vue +288 -59
  35. package/dist/runtime/components/Edit/Features/Analyze/Main.vue.d.ts +8 -1
  36. package/dist/runtime/components/Edit/Features/Analyze/Renderer/fragment.glsl +25 -13
  37. package/dist/runtime/components/Edit/Features/Analyze/Renderer/index.vue +114 -52
  38. package/dist/runtime/components/Edit/Features/Analyze/Renderer/index.vue.d.ts +16 -2
  39. package/dist/runtime/components/Edit/Features/Analyze/Renderer/vertex.glsl +31 -11
  40. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue +2 -0
  41. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue.d.ts +8 -1
  42. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue +4 -4
  43. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue.d.ts +20 -2
  44. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue +11 -18
  45. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue.d.ts +10 -3
  46. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue +46 -40
  47. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue.d.ts +10 -4
  48. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue +8 -4
  49. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.js +1 -0
  50. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.d.ts +4 -3
  51. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.js +2 -1
  52. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.js +61 -20
  53. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.d.ts +15 -1
  54. package/dist/runtime/components/Edit/Features/Analyze/index.vue +23 -2
  55. package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +22 -8
  56. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +1 -1
  57. package/dist/runtime/components/Edit/Features/Artboard/Scrollbar/index.vue +8 -3
  58. package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/index.vue +10 -1
  59. package/dist/runtime/components/Edit/Features/Debug/Main.vue.d.ts +1 -1
  60. package/dist/runtime/components/Edit/Features/Debug/Rects/index.vue +2 -2
  61. package/dist/runtime/components/Edit/Features/Debug/Section/Logging.vue.d.ts +1 -1
  62. package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +8 -2
  63. package/dist/runtime/components/Edit/Features/EditForm/index.vue +1 -7
  64. package/dist/runtime/components/Edit/Features/EditableField/Overlay/Plaintext/index.vue +1 -1
  65. package/dist/runtime/components/Edit/Features/EditableField/Overlay/index.vue +4 -3
  66. package/dist/runtime/components/Edit/Features/EditableMask/index.vue +1 -1
  67. package/dist/runtime/components/Edit/Features/EntityTitle/index.vue +7 -2
  68. package/dist/runtime/components/Edit/Features/Library/EditReusable/index.vue +2 -2
  69. package/dist/runtime/components/Edit/Features/Library/LibraryDialog/index.vue +9 -2
  70. package/dist/runtime/components/Edit/Features/Library/ReusableDialog/index.vue +12 -3
  71. package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +3 -2
  72. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue.d.ts +1 -1
  73. package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +1 -0
  74. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue +9 -0
  75. package/dist/runtime/components/Edit/Features/ResponsivePreview/Frame/index.vue +3 -2
  76. package/dist/runtime/components/Edit/Features/ResponsivePreview/index.vue +3 -2
  77. package/dist/runtime/components/Edit/Features/Search/Overlay/Results/Content/index.vue +8 -2
  78. package/dist/runtime/components/Edit/Features/Search/Overlay/Results/Page/index.vue +12 -2
  79. package/dist/runtime/components/Edit/Features/Search/Overlay/index.vue +11 -3
  80. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +126 -33
  81. package/dist/runtime/components/Edit/Features/Selection/Renderer/index.vue +1 -1
  82. package/dist/runtime/components/Edit/Features/Settings/index.vue +1 -1
  83. package/dist/runtime/components/Edit/Features/Structure/List/Field/index.vue +3 -3
  84. package/dist/runtime/components/Edit/Features/Tour/Overlay/index.vue +2 -2
  85. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue +7 -1
  86. package/dist/runtime/components/Edit/Form/Textarea/index.vue +1 -1
  87. package/dist/runtime/components/Edit/FormOverlay/index.vue +1 -1
  88. package/dist/runtime/components/Edit/Indicators/index.vue +1 -1
  89. package/dist/runtime/components/Edit/InfoBox/index.vue +3 -2
  90. package/dist/runtime/components/Edit/InfoBox/index.vue.d.ts +6 -1
  91. package/dist/runtime/components/Edit/Overlay/index.vue +4 -0
  92. package/dist/runtime/components/Edit/PreviewProvider.vue +3 -3
  93. package/dist/runtime/components/Edit/ScaleToFit/index.vue +4 -4
  94. package/dist/runtime/composables/defineBlokkliFeature.d.ts +1 -1
  95. package/dist/runtime/composables/useBlokkli.d.ts +6 -1
  96. package/dist/runtime/composables/useBlokkli.js +4 -1
  97. package/dist/runtime/css/output.css +1 -1
  98. package/dist/runtime/helpers/composables/defineItemDropdownAction.d.ts +1 -1
  99. package/dist/runtime/helpers/composables/defineMenuButton.d.ts +1 -1
  100. package/dist/runtime/helpers/composables/defineRenderer.d.ts +1 -1
  101. package/dist/runtime/helpers/composables/onBroadcastEvent.d.ts +1 -1
  102. package/dist/runtime/helpers/composables/useBlockRegistration.d.ts +1 -1
  103. package/dist/runtime/helpers/composables/useBlockRegistration.js +12 -1
  104. package/dist/runtime/helpers/composables/useDebugLogger.d.ts +1 -1
  105. package/dist/runtime/helpers/composables/useFocusTrap.d.ts +52 -0
  106. package/dist/runtime/helpers/composables/useFocusTrap.js +59 -0
  107. package/dist/runtime/helpers/composables/useGlobalBlokkliObject.d.ts +1 -1
  108. package/dist/runtime/helpers/{useTransitionedValue.js → composables/useTransitionedValue.js} +1 -1
  109. package/dist/runtime/helpers/imports/index.d.ts +2 -1
  110. package/dist/runtime/helpers/imports/index.js +10 -1
  111. package/dist/runtime/helpers/{animationProvider.d.ts → providers/animation.d.ts} +100 -7
  112. package/dist/runtime/helpers/{animationProvider.js → providers/animation.js} +21 -11
  113. package/dist/runtime/helpers/providers/blocks.d.ts +25 -3
  114. package/dist/runtime/helpers/providers/blocks.js +9 -0
  115. package/dist/runtime/helpers/providers/commands.d.ts +41 -0
  116. package/dist/runtime/helpers/{commandsProvider.js → providers/commands.js} +1 -1
  117. package/dist/runtime/helpers/providers/debug.d.ts +125 -0
  118. package/dist/runtime/helpers/{debugProvider.js → providers/debug.js} +2 -2
  119. package/dist/runtime/helpers/providers/definition.d.ts +87 -0
  120. package/dist/runtime/helpers/providers/directive.d.ts +88 -2
  121. package/dist/runtime/helpers/providers/directive.js +27 -3
  122. package/dist/runtime/helpers/providers/dom.d.ts +225 -0
  123. package/dist/runtime/helpers/{domProvider.js → providers/dom.js} +31 -75
  124. package/dist/runtime/helpers/providers/dropArea.d.ts +47 -0
  125. package/dist/runtime/helpers/{dropAreaProvider.js → providers/dropArea.js} +1 -1
  126. package/dist/runtime/helpers/providers/element.d.ts +58 -1
  127. package/dist/runtime/helpers/providers/features.d.ts +56 -0
  128. package/dist/runtime/helpers/{featuresProvider.js → providers/features.js} +1 -1
  129. package/dist/runtime/helpers/providers/fields.d.ts +18 -11
  130. package/dist/runtime/helpers/providers/fields.js +1 -1
  131. package/dist/runtime/helpers/providers/indicators.d.ts +44 -0
  132. package/dist/runtime/helpers/providers/keyboard.d.ts +76 -0
  133. package/dist/runtime/helpers/{keyboardProvider.js → providers/keyboard.js} +1 -8
  134. package/dist/runtime/helpers/{pluginProvider.d.ts → providers/plugin.d.ts} +36 -0
  135. package/dist/runtime/helpers/{selectionProvider.d.ts → providers/selection.d.ts} +4 -1
  136. package/dist/runtime/helpers/{selectionProvider.js → providers/selection.js} +1 -1
  137. package/dist/runtime/helpers/providers/state.d.ts +227 -0
  138. package/dist/runtime/helpers/{stateProvider.js → providers/state.js} +3 -3
  139. package/dist/runtime/helpers/providers/storage.d.ts +64 -0
  140. package/dist/runtime/helpers/{textProvider.d.ts → providers/texts.d.ts} +1 -1
  141. package/dist/runtime/helpers/providers/theme.d.ts +119 -0
  142. package/dist/runtime/helpers/{themeProvider.js → providers/theme.js} +3 -3
  143. package/dist/runtime/helpers/providers/tour.d.ts +49 -0
  144. package/dist/runtime/helpers/{tourProvider.js → providers/tour.js} +1 -1
  145. package/dist/runtime/helpers/providers/types.d.ts +170 -0
  146. package/dist/runtime/helpers/{typesProvider.js → providers/types.js} +45 -1
  147. package/dist/runtime/helpers/providers/ui.d.ts +339 -0
  148. package/dist/runtime/helpers/{uiProvider.js → providers/ui.js} +11 -5
  149. package/dist/runtime/helpers/runtimeHelpers/index.d.ts +1 -1
  150. package/dist/runtime/helpers/symbols.d.ts +1 -0
  151. package/dist/runtime/helpers/symbols.js +3 -0
  152. package/dist/runtime/types/blockOptions.d.ts +349 -0
  153. package/dist/runtime/types/index.d.ts +22 -26
  154. package/package.json +2 -2
  155. package/dist/runtime/helpers/commandsProvider.d.ts +0 -9
  156. package/dist/runtime/helpers/debugProvider.d.ts +0 -33
  157. package/dist/runtime/helpers/definitionProvider.d.ts +0 -19
  158. package/dist/runtime/helpers/domProvider.d.ts +0 -91
  159. package/dist/runtime/helpers/dropAreaProvider.d.ts +0 -9
  160. package/dist/runtime/helpers/featuresProvider.d.ts +0 -17
  161. package/dist/runtime/helpers/indicatorsProvider.d.ts +0 -10
  162. package/dist/runtime/helpers/keyboardProvider.d.ts +0 -20
  163. package/dist/runtime/helpers/stateProvider.d.ts +0 -47
  164. package/dist/runtime/helpers/storageProvider.d.ts +0 -17
  165. package/dist/runtime/helpers/themeProvider.d.ts +0 -30
  166. package/dist/runtime/helpers/tourProvider.d.ts +0 -11
  167. package/dist/runtime/helpers/typesProvider.d.ts +0 -36
  168. package/dist/runtime/helpers/uiProvider.d.ts +0 -57
  169. package/dist/runtime/types/blokkOptions.d.ts +0 -100
  170. /package/dist/runtime/helpers/{addElementClasses.d.ts → composables/addElementClasses.d.ts} +0 -0
  171. /package/dist/runtime/helpers/{addElementClasses.js → composables/addElementClasses.js} +0 -0
  172. /package/dist/runtime/helpers/{defineElementStyle.d.ts → composables/defineElementStyle.d.ts} +0 -0
  173. /package/dist/runtime/helpers/{defineElementStyle.js → composables/defineElementStyle.js} +0 -0
  174. /package/dist/runtime/helpers/{useTransitionedValue.d.ts → composables/useTransitionedValue.d.ts} +0 -0
  175. /package/dist/runtime/helpers/{broadcastProvider.d.ts → providers/broadcast.d.ts} +0 -0
  176. /package/dist/runtime/helpers/{broadcastProvider.js → providers/broadcast.js} +0 -0
  177. /package/dist/runtime/helpers/{definitionProvider.js → providers/definition.js} +0 -0
  178. /package/dist/runtime/helpers/{indicatorsProvider.js → providers/indicators.js} +0 -0
  179. /package/dist/runtime/helpers/{pluginProvider.js → providers/plugin.js} +0 -0
  180. /package/dist/runtime/helpers/{storageProvider.js → providers/storage.js} +0 -0
  181. /package/dist/runtime/helpers/{textProvider.js → providers/texts.js} +0 -0
  182. /package/dist/runtime/types/{blokkOptions.js → blockOptions.js} +0 -0
@@ -15,9 +15,11 @@
15
15
  class="bk-sidebar-title"
16
16
  @mousedown.stop="onMouseDown($event, 'move')"
17
17
  >
18
- <slot name="icon">
19
- <Icon v-if="icon" :name="icon" />
20
- </slot>
18
+ <div class="bk-sidebar-title-icon">
19
+ <slot name="icon">
20
+ <Icon v-if="icon" :name="icon" />
21
+ </slot>
22
+ </div>
21
23
  <span>{{ title }}</span>
22
24
  <button
23
25
  @click.prevent.stop.capture="isMinimized = !isMinimized"
@@ -70,7 +72,7 @@ import {
70
72
  } from "#imports";
71
73
  import { Icon, ViewportBlockingRect, ScrollBoundary } from "#blokkli/components";
72
74
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
73
- import { addElementClasses } from "#blokkli/helpers/addElementClasses";
75
+ import { addElementClasses } from "#blokkli/helpers/composables/addElementClasses";
74
76
  const props = defineProps({
75
77
  id: { type: String, required: true },
76
78
  title: { type: String, required: true },
@@ -53,6 +53,7 @@
53
53
  </template>
54
54
  <template #default="{ width, height, isResizing }">
55
55
  <div class="bk-sidebar-content-wrapper">
56
+ <Loading v-if="isLoading" white />
56
57
  <div ref="sidebarContent" class="bk-sidebar-content">
57
58
  <slot
58
59
  :key="isRenderedDetached ? 'detached' : 'attached'"
@@ -85,6 +86,7 @@
85
86
  </div>
86
87
  </div>
87
88
  <div class="bk-sidebar-content-wrapper">
89
+ <Loading v-if="isLoading" white />
88
90
  <div ref="sidebarContent" class="bk-sidebar-content">
89
91
  <slot
90
92
  :key="isRenderedDetached ? 'detached' : 'attached'"
@@ -110,7 +112,12 @@ import {
110
112
  onBeforeUnmount,
111
113
  useTemplateRef
112
114
  } from "#imports";
113
- import { Icon, ShortcutIndicator, ScrollBoundary } from "#blokkli/components";
115
+ import {
116
+ Icon,
117
+ ShortcutIndicator,
118
+ ScrollBoundary,
119
+ Loading
120
+ } from "#blokkli/components";
114
121
  import SidebarDetached from "./Detached/index.vue";
115
122
  import defineCommands from "#blokkli/helpers/composables/defineCommands";
116
123
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
@@ -122,7 +129,7 @@ const props = defineProps({
122
129
  tourText: { type: String, required: false, default: void 0 },
123
130
  editOnly: { type: Boolean, required: false },
124
131
  icon: { type: null, required: true },
125
- weight: { type: [String, Number], required: false, default: 0 },
132
+ weight: { type: [String, Number], required: true },
126
133
  renderAlways: { type: Boolean, required: false },
127
134
  disabled: { type: Boolean, required: false },
128
135
  region: { type: String, required: false, default: "right" },
@@ -132,7 +139,8 @@ const props = defineProps({
132
139
  meta: { type: Boolean, required: false },
133
140
  shift: { type: Boolean, required: false },
134
141
  keyCode: { type: String, required: false, default: void 0 },
135
- beta: { type: Boolean, required: false }
142
+ beta: { type: Boolean, required: false },
143
+ isLoading: { type: Boolean, required: false }
136
144
  });
137
145
  const emit = defineEmits(["updated"]);
138
146
  const { storage, state, ui, $t } = useBlokkli();
@@ -1,49 +1,185 @@
1
1
  import type { BlokkliIcon } from '#blokkli-build/icons';
2
2
  import type { SidebarRegion } from '#blokkli/types';
3
3
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
4
+ /**
5
+ * Unique identifier for this sidebar.
6
+ */
4
7
  id: string;
8
+ /**
9
+ * The title displayed in the sidebar header.
10
+ */
5
11
  title: string;
12
+ /**
13
+ * Optional text for the interactive tour.
14
+ *
15
+ * If provided, this sidebar will be included in the editor tour.
16
+ */
6
17
  tourText?: string;
18
+ /**
19
+ * Whether the sidebar is only available in edit mode.
20
+ *
21
+ * If true, the sidebar is hidden in preview mode.
22
+ */
7
23
  editOnly?: boolean;
24
+ /**
25
+ * The icon displayed in the sidebar toggle button.
26
+ */
8
27
  icon: BlokkliIcon;
9
- weight?: string | number;
28
+ /**
29
+ * The weight, used for positioning the sidebar button.
30
+ *
31
+ * Lower weights appear first.
32
+ */
33
+ weight: string | number;
34
+ /**
35
+ * Whether to always render the sidebar content.
36
+ *
37
+ * By default, content is only rendered when the sidebar is open.
38
+ */
10
39
  renderAlways?: boolean;
40
+ /**
41
+ * Whether the sidebar is disabled.
42
+ */
11
43
  disabled?: boolean;
44
+ /**
45
+ * Which region to display the sidebar in.
46
+ *
47
+ * @default 'right'
48
+ */
12
49
  region?: SidebarRegion;
50
+ /**
51
+ * Minimum width when detached (in pixels).
52
+ */
13
53
  minWidth?: number;
54
+ /**
55
+ * Minimum height when detached (in pixels).
56
+ */
14
57
  minHeight?: number;
58
+ /**
59
+ * Default size when detached.
60
+ */
15
61
  size?: {
16
62
  width: number;
17
63
  height: number;
18
64
  };
65
+ /**
66
+ * Whether the keyboard shortcut needs the meta modifier key.
67
+ *
68
+ * On Mac this is Cmd, on Windows/Linux this is Ctrl.
69
+ */
19
70
  meta?: boolean;
71
+ /**
72
+ * Whether the keyboard shortcut needs the shift modifier key.
73
+ */
20
74
  shift?: boolean;
75
+ /**
76
+ * The key code to use for the keyboard shortcut.
77
+ *
78
+ * @example 'l' for the "l" key
79
+ */
21
80
  keyCode?: string;
81
+ /**
82
+ * Whether to display a BETA indicator badge.
83
+ */
22
84
  beta?: boolean;
85
+ /**
86
+ * Whether the sidebar content is currently loading.
87
+ *
88
+ * Displays a loading spinner when true.
89
+ */
90
+ isLoading?: boolean;
23
91
  }, {
24
92
  showSidebar: () => void;
25
93
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
26
94
  updated: () => any;
27
95
  }, string, import("vue").PublicProps, Readonly<{
96
+ /**
97
+ * Unique identifier for this sidebar.
98
+ */
28
99
  id: string;
100
+ /**
101
+ * The title displayed in the sidebar header.
102
+ */
29
103
  title: string;
104
+ /**
105
+ * Optional text for the interactive tour.
106
+ *
107
+ * If provided, this sidebar will be included in the editor tour.
108
+ */
30
109
  tourText?: string;
110
+ /**
111
+ * Whether the sidebar is only available in edit mode.
112
+ *
113
+ * If true, the sidebar is hidden in preview mode.
114
+ */
31
115
  editOnly?: boolean;
116
+ /**
117
+ * The icon displayed in the sidebar toggle button.
118
+ */
32
119
  icon: BlokkliIcon;
33
- weight?: string | number;
120
+ /**
121
+ * The weight, used for positioning the sidebar button.
122
+ *
123
+ * Lower weights appear first.
124
+ */
125
+ weight: string | number;
126
+ /**
127
+ * Whether to always render the sidebar content.
128
+ *
129
+ * By default, content is only rendered when the sidebar is open.
130
+ */
34
131
  renderAlways?: boolean;
132
+ /**
133
+ * Whether the sidebar is disabled.
134
+ */
35
135
  disabled?: boolean;
136
+ /**
137
+ * Which region to display the sidebar in.
138
+ *
139
+ * @default 'right'
140
+ */
36
141
  region?: SidebarRegion;
142
+ /**
143
+ * Minimum width when detached (in pixels).
144
+ */
37
145
  minWidth?: number;
146
+ /**
147
+ * Minimum height when detached (in pixels).
148
+ */
38
149
  minHeight?: number;
150
+ /**
151
+ * Default size when detached.
152
+ */
39
153
  size?: {
40
154
  width: number;
41
155
  height: number;
42
156
  };
157
+ /**
158
+ * Whether the keyboard shortcut needs the meta modifier key.
159
+ *
160
+ * On Mac this is Cmd, on Windows/Linux this is Ctrl.
161
+ */
43
162
  meta?: boolean;
163
+ /**
164
+ * Whether the keyboard shortcut needs the shift modifier key.
165
+ */
44
166
  shift?: boolean;
167
+ /**
168
+ * The key code to use for the keyboard shortcut.
169
+ *
170
+ * @example 'l' for the "l" key
171
+ */
45
172
  keyCode?: string;
173
+ /**
174
+ * Whether to display a BETA indicator badge.
175
+ */
46
176
  beta?: boolean;
177
+ /**
178
+ * Whether the sidebar content is currently loading.
179
+ *
180
+ * Displays a loading spinner when true.
181
+ */
182
+ isLoading?: boolean;
47
183
  }> & Readonly<{
48
184
  onUpdated?: (() => any) | undefined;
49
185
  }>, {
@@ -52,7 +188,6 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
52
188
  height: number;
53
189
  };
54
190
  keyCode: string;
55
- weight: string | number;
56
191
  tourText: string;
57
192
  minWidth: number;
58
193
  minHeight: number;
@@ -1,41 +1,155 @@
1
1
  import type { BlokkliIcon } from '#blokkli-build/icons';
2
2
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
3
+ /**
4
+ * Unique identifier for this toolbar button.
5
+ */
3
6
  id: string;
7
+ /**
8
+ * The title displayed in the tooltip.
9
+ */
4
10
  title: string;
11
+ /**
12
+ * Which toolbar region to render the button in.
13
+ *
14
+ * Different regions appear in different locations of the toolbar.
15
+ */
5
16
  region: "after-title" | "before-title" | "before-sidebar" | "after-menu" | "before-sidebar-right" | "view-options";
17
+ /**
18
+ * Whether the button is only available in edit mode.
19
+ *
20
+ * If true, the button is hidden in preview mode.
21
+ */
6
22
  editOnly?: boolean;
23
+ /**
24
+ * Whether the button is disabled.
25
+ */
7
26
  disabled?: boolean;
27
+ /**
28
+ * Whether the button should be displayed in an active state.
29
+ *
30
+ * Useful when the button opens a dropdown or toggles a feature.
31
+ */
8
32
  active?: boolean;
33
+ /**
34
+ * Whether the keyboard shortcut needs the meta modifier key.
35
+ *
36
+ * On Mac this is Cmd, on Windows/Linux this is Ctrl.
37
+ */
9
38
  meta?: boolean;
39
+ /**
40
+ * Whether the keyboard shortcut needs the shift modifier key.
41
+ */
10
42
  shift?: boolean;
43
+ /**
44
+ * The key code to use for the keyboard shortcut.
45
+ *
46
+ * @example 'h' for the "h" key
47
+ */
11
48
  keyCode?: string;
49
+ /**
50
+ * Optional icon to display in the button.
51
+ */
12
52
  icon?: BlokkliIcon;
53
+ /**
54
+ * The keyboard shortcut group.
55
+ *
56
+ * Used for organizing shortcuts in the shortcuts panel.
57
+ */
13
58
  shortcutGroup?: string;
59
+ /**
60
+ * Optional text for the interactive tour.
61
+ *
62
+ * If provided, this button will be included in the editor tour.
63
+ */
14
64
  tourText?: string;
15
65
  /**
16
66
  * The weight, used for positioning the button.
67
+ *
68
+ * Lower weights appear first.
17
69
  */
18
70
  weight?: number | string;
71
+ /**
72
+ * Whether to skip registering this button as a command.
73
+ *
74
+ * Useful when you want the button UI without command palette integration.
75
+ */
19
76
  noCommand?: boolean;
20
77
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
78
  click: (...args: any[]) => void;
22
79
  }, string, import("vue").PublicProps, Readonly<{
80
+ /**
81
+ * Unique identifier for this toolbar button.
82
+ */
23
83
  id: string;
84
+ /**
85
+ * The title displayed in the tooltip.
86
+ */
24
87
  title: string;
88
+ /**
89
+ * Which toolbar region to render the button in.
90
+ *
91
+ * Different regions appear in different locations of the toolbar.
92
+ */
25
93
  region: "after-title" | "before-title" | "before-sidebar" | "after-menu" | "before-sidebar-right" | "view-options";
94
+ /**
95
+ * Whether the button is only available in edit mode.
96
+ *
97
+ * If true, the button is hidden in preview mode.
98
+ */
26
99
  editOnly?: boolean;
100
+ /**
101
+ * Whether the button is disabled.
102
+ */
27
103
  disabled?: boolean;
104
+ /**
105
+ * Whether the button should be displayed in an active state.
106
+ *
107
+ * Useful when the button opens a dropdown or toggles a feature.
108
+ */
28
109
  active?: boolean;
110
+ /**
111
+ * Whether the keyboard shortcut needs the meta modifier key.
112
+ *
113
+ * On Mac this is Cmd, on Windows/Linux this is Ctrl.
114
+ */
29
115
  meta?: boolean;
116
+ /**
117
+ * Whether the keyboard shortcut needs the shift modifier key.
118
+ */
30
119
  shift?: boolean;
120
+ /**
121
+ * The key code to use for the keyboard shortcut.
122
+ *
123
+ * @example 'h' for the "h" key
124
+ */
31
125
  keyCode?: string;
126
+ /**
127
+ * Optional icon to display in the button.
128
+ */
32
129
  icon?: BlokkliIcon;
130
+ /**
131
+ * The keyboard shortcut group.
132
+ *
133
+ * Used for organizing shortcuts in the shortcuts panel.
134
+ */
33
135
  shortcutGroup?: string;
136
+ /**
137
+ * Optional text for the interactive tour.
138
+ *
139
+ * If provided, this button will be included in the editor tour.
140
+ */
34
141
  tourText?: string;
35
142
  /**
36
143
  * The weight, used for positioning the button.
144
+ *
145
+ * Lower weights appear first.
37
146
  */
38
147
  weight?: number | string;
148
+ /**
149
+ * Whether to skip registering this button as a command.
150
+ *
151
+ * Useful when you want the button UI without command palette integration.
152
+ */
39
153
  noCommand?: boolean;
40
154
  }> & Readonly<{
41
155
  onClick?: ((...args: any[]) => any) | undefined;
@@ -1,8 +1,29 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Unique identifier for this tour item.
4
+ */
2
5
  id: string;
6
+ /**
7
+ * The title of the tour step.
8
+ */
3
9
  title: string;
10
+ /**
11
+ * The description text explaining this feature.
12
+ *
13
+ * Supports markdown.
14
+ */
4
15
  text: string;
16
+ /**
17
+ * Optional CSS selector to find the target element.
18
+ *
19
+ * If provided, the tour will highlight this element.
20
+ */
5
21
  selector?: string;
22
+ /**
23
+ * Optional direct reference to the target element.
24
+ *
25
+ * Takes precedence over selector.
26
+ */
6
27
  element?: HTMLElement | null;
7
28
  };
8
29
  declare var __VLS_1: {};
@@ -1,27 +1,125 @@
1
1
  import type { BlokkliIcon } from '#blokkli-build/icons';
2
2
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
3
+ /**
4
+ * Unique identifier for this view option.
5
+ *
6
+ * Used for storage key and event tracking.
7
+ */
3
8
  id: string;
9
+ /**
10
+ * The label used in commands and tour.
11
+ */
4
12
  label: string;
13
+ /**
14
+ * The tooltip text when the option is OFF.
15
+ *
16
+ * Should describe what happens when turned on.
17
+ * @example 'Show grid'
18
+ */
5
19
  titleOn: string;
20
+ /**
21
+ * The tooltip text when the option is ON.
22
+ *
23
+ * Should describe what happens when turned off.
24
+ * @example 'Hide grid'
25
+ */
6
26
  titleOff: string;
27
+ /**
28
+ * Whether the view option is only available in edit mode.
29
+ *
30
+ * If true, the option is hidden in preview mode.
31
+ */
7
32
  editOnly?: boolean;
33
+ /**
34
+ * The key code to use for the keyboard shortcut.
35
+ *
36
+ * Automatically includes Meta modifier.
37
+ * @example 'g' for Cmd+G / Ctrl+G
38
+ */
8
39
  keyCode?: string;
40
+ /**
41
+ * The icon displayed in the button.
42
+ */
9
43
  icon?: BlokkliIcon;
44
+ /**
45
+ * Optional text for the interactive tour.
46
+ *
47
+ * If provided, this option will be included in the editor tour.
48
+ */
10
49
  tourText?: string;
50
+ /**
51
+ * Two-way binding for the active state.
52
+ *
53
+ * Can be used with v-model to track the option state.
54
+ */
11
55
  modelValue?: boolean;
56
+ /**
57
+ * The weight, used for positioning the button.
58
+ *
59
+ * Lower weights appear first.
60
+ */
12
61
  weight?: number | string;
13
62
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
14
63
  "update:modelValue": (data: boolean) => any;
15
64
  }, string, import("vue").PublicProps, Readonly<{
65
+ /**
66
+ * Unique identifier for this view option.
67
+ *
68
+ * Used for storage key and event tracking.
69
+ */
16
70
  id: string;
71
+ /**
72
+ * The label used in commands and tour.
73
+ */
17
74
  label: string;
75
+ /**
76
+ * The tooltip text when the option is OFF.
77
+ *
78
+ * Should describe what happens when turned on.
79
+ * @example 'Show grid'
80
+ */
18
81
  titleOn: string;
82
+ /**
83
+ * The tooltip text when the option is ON.
84
+ *
85
+ * Should describe what happens when turned off.
86
+ * @example 'Hide grid'
87
+ */
19
88
  titleOff: string;
89
+ /**
90
+ * Whether the view option is only available in edit mode.
91
+ *
92
+ * If true, the option is hidden in preview mode.
93
+ */
20
94
  editOnly?: boolean;
95
+ /**
96
+ * The key code to use for the keyboard shortcut.
97
+ *
98
+ * Automatically includes Meta modifier.
99
+ * @example 'g' for Cmd+G / Ctrl+G
100
+ */
21
101
  keyCode?: string;
102
+ /**
103
+ * The icon displayed in the button.
104
+ */
22
105
  icon?: BlokkliIcon;
106
+ /**
107
+ * Optional text for the interactive tour.
108
+ *
109
+ * If provided, this option will be included in the editor tour.
110
+ */
23
111
  tourText?: string;
112
+ /**
113
+ * Two-way binding for the active state.
114
+ *
115
+ * Can be used with v-model to track the option state.
116
+ */
24
117
  modelValue?: boolean;
118
+ /**
119
+ * The weight, used for positioning the button.
120
+ *
121
+ * Lower weights appear first.
122
+ */
25
123
  weight?: number | string;
26
124
  }> & Readonly<{
27
125
  "onUpdate:modelValue"?: ((data: boolean) => any) | undefined;
@@ -0,0 +1,24 @@
1
+ <template>
2
+ <div class="bk bk-block-not-implemented">
3
+ <Icon name="alert" />
4
+ <div v-html="text" />
5
+ </div>
6
+ </template>
7
+
8
+ <script setup>
9
+ import { useBlockRegistration } from "#blokkli/helpers/composables/useBlockRegistration";
10
+ import { computed, useBlokkli } from "#imports";
11
+ import { Icon } from "#blokkli/components";
12
+ const props = defineProps({
13
+ uuid: { type: String, required: true },
14
+ bundle: { type: String, required: true }
15
+ });
16
+ const { dom, $t } = useBlokkli();
17
+ const text = computed(() => {
18
+ return $t(
19
+ "blockNotImplemented",
20
+ "Missing component for block bundle <strong>@bundle</strong>."
21
+ ).replace("@bundle", props.bundle);
22
+ });
23
+ useBlockRegistration(dom, props.uuid);
24
+ </script>
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ uuid: string;
3
+ bundle: string;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -1,6 +1,17 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * The (machine) name of the field that is editable.
4
+ */
2
5
  name: string;
6
+ /**
7
+ * The text value.
8
+ */
3
9
  value?: string;
10
+ /**
11
+ * The tag to use for rendering the wrapper.
12
+ *
13
+ * @default "div"
14
+ */
4
15
  tag?: string;
5
16
  };
6
17
  type __VLS_Slots = {
@@ -14,7 +14,12 @@
14
14
  v-bind="props"
15
15
  :data-bk-in-proxy="fieldUsesProxy || (isEditing ? 'false' : void 0)"
16
16
  />
17
- <div v-else-if="isEditing">Block not implemented</div>
17
+ <Component
18
+ :is="blockNotImplemented"
19
+ v-else-if="blockNotImplemented"
20
+ :uuid
21
+ :bundle
22
+ />
18
23
  </template>
19
24
 
20
25
  <script setup>
@@ -27,6 +32,7 @@ import {
27
32
  } from "#imports";
28
33
  import { getComponent } from "#blokkli/helpers/imports";
29
34
  import {
35
+ INJECT_ALL_COMPONENTS_CHUNK,
30
36
  INJECT_BLOCK_ITEM,
31
37
  INJECT_ENTITY_CONTEXT,
32
38
  INJECT_FIELD_LIST_TYPE,
@@ -38,14 +44,19 @@ const itemEntityType = useRuntimeConfig().public.blokkli.itemEntityType;
38
44
  const componentProps = defineProps({
39
45
  uuid: { type: String, required: true },
40
46
  bundle: { type: String, required: true },
47
+ isVisible: { type: Boolean, required: false },
41
48
  options: { type: null, required: false, default: () => ({}) },
49
+ editContext: { type: Object, required: false, default: void 0 },
42
50
  props: { type: null, required: false, default: () => ({}) },
43
51
  index: { type: Number, required: false, default: 0 },
44
- editContext: { type: Object, required: false, default: void 0 },
45
52
  parentType: { type: String, required: false, default: "" },
46
53
  isEditing: { type: Boolean, required: false, default: false }
47
54
  });
48
55
  const isProxyMode = inject(INJECT_FIELD_PROXY_MODE, false);
56
+ const allComponentsChunk = inject(
57
+ INJECT_ALL_COMPONENTS_CHUNK,
58
+ null
59
+ );
49
60
  const fieldUsesProxy = inject(INJECT_FIELD_USES_PROXY, false);
50
61
  const isGlobalProxyMode = inject(
51
62
  INJECT_GLOBAL_PROXY_MODE,
@@ -59,8 +70,10 @@ const component = isProxyMode || isGlobalProxyMode?.value ? defineAsyncComponent
59
70
  "block",
60
71
  componentProps.bundle,
61
72
  fieldListType?.value || "default",
62
- componentProps.parentType
73
+ componentProps.parentType,
74
+ allComponentsChunk
63
75
  );
76
+ const blockNotImplemented = componentProps.isEditing ? defineAsyncComponent(() => import("./Blocks/NotImplemented/index.vue")) : null;
64
77
  const index = computed(() => componentProps.index);
65
78
  const item = computed(() => ({
66
79
  index,