@conduction/nextcloud-vue 2.62.0 → 2.64.0

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 (209) hide show
  1. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js +10 -0
  2. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js.map +1 -0
  3. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js +189 -0
  4. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js.map +1 -0
  5. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js +72 -0
  6. package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js.map +1 -0
  7. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +425 -39
  8. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
  9. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js +119 -42
  10. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
  11. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +186 -9
  12. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  13. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +65 -42
  14. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  15. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +61 -16
  16. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
  17. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
  18. package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue2.js +20 -0
  19. package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue2.js.map +1 -1
  20. package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue3.js +3 -2
  21. package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue3.js.map +1 -1
  22. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +33 -2
  23. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
  24. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
  25. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  26. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +53 -37
  27. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  28. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +29 -0
  29. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  30. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +152 -135
  31. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  32. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js +10 -0
  33. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js.map +1 -0
  34. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +293 -0
  35. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -0
  36. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +189 -0
  37. package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -0
  38. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +253 -9
  39. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  40. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +126 -50
  41. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  42. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +66 -14
  43. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  44. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +23 -14
  45. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  46. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  47. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +2 -1
  48. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  49. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js +3 -1
  50. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js.map +1 -1
  51. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js +1 -1
  52. package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js.map +1 -1
  53. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +234 -9
  54. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  55. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +96 -57
  56. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  57. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js +81 -4
  58. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js.map +1 -1
  59. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js +22 -5
  60. package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js.map +1 -1
  61. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +81 -2
  62. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  63. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +7 -3
  64. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  65. package/dist/esm/components/CnIndexPage/selfModeActions.js +3 -3
  66. package/dist/esm/components/CnIndexPage/selfModeActions.js.map +1 -1
  67. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +41 -2
  68. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  69. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +8 -3
  70. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  71. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js +121 -12
  72. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js.map +1 -1
  73. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js +3 -1
  74. package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js.map +1 -1
  75. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +326 -1
  76. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  77. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +112 -26
  78. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  79. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js +63 -2
  80. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
  81. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js +96 -37
  82. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
  83. package/dist/esm/components/CnStagesWidget/stagesModel.js +5 -2
  84. package/dist/esm/components/CnStagesWidget/stagesModel.js.map +1 -1
  85. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +52 -2
  86. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
  87. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +6 -6
  88. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
  89. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +14 -2
  90. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
  91. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +2 -1
  92. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
  93. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +10 -0
  94. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js.map +1 -0
  95. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +337 -0
  96. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -0
  97. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js +102 -0
  98. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -0
  99. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js +34 -0
  100. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js.map +1 -0
  101. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js +131 -8
  102. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js.map +1 -1
  103. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js +40 -38
  104. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js.map +1 -1
  105. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +8 -6
  106. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  107. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  108. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  109. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js +73 -1
  110. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js.map +1 -1
  111. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js +14 -2
  112. package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js.map +1 -1
  113. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +19 -0
  114. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
  115. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js +1 -1
  116. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
  117. package/dist/esm/composables/useDependencyCheck.js +65 -0
  118. package/dist/esm/composables/useDependencyCheck.js.map +1 -0
  119. package/dist/esm/composables/useWalkthrough.js +218 -6
  120. package/dist/esm/composables/useWalkthrough.js.map +1 -1
  121. package/dist/esm/index.js +2 -0
  122. package/dist/esm/index.js.map +1 -1
  123. package/dist/esm/l10n/en.json.js +45 -1
  124. package/dist/esm/l10n/en.json.js.map +1 -1
  125. package/dist/esm/l10n/nl.json.js +45 -1
  126. package/dist/esm/l10n/nl.json.js.map +1 -1
  127. package/dist/esm/nextcloud-vue.css +780 -81
  128. package/dist/esm/store/useObjectStore.js +8 -0
  129. package/dist/esm/store/useObjectStore.js.map +1 -1
  130. package/dist/esm/utils/columnFilters.js +311 -0
  131. package/dist/esm/utils/columnFilters.js.map +1 -0
  132. package/dist/esm/utils/groupAutocomplete.js +123 -0
  133. package/dist/esm/utils/groupAutocomplete.js.map +1 -0
  134. package/dist/esm/utils/libraryWidgetKeys.js +2 -0
  135. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  136. package/dist/esm/utils/pickerOptions.js +198 -0
  137. package/dist/esm/utils/pickerOptions.js.map +1 -0
  138. package/dist/esm/utils/schema.js +83 -7
  139. package/dist/esm/utils/schema.js.map +1 -1
  140. package/dist/esm/utils/schemaRefSlug.js +19 -3
  141. package/dist/esm/utils/schemaRefSlug.js.map +1 -1
  142. package/dist/esm/utils/timelineEvents.js +174 -0
  143. package/dist/esm/utils/timelineEvents.js.map +1 -0
  144. package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
  145. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  146. package/dist/esm/utils/walkthroughSignals.js +88 -0
  147. package/dist/esm/utils/walkthroughSignals.js.map +1 -0
  148. package/dist/nextcloud-vue.cjs.js +13088 -7937
  149. package/dist/nextcloud-vue.cjs.js.map +2 -2
  150. package/dist/nextcloud-vue.css +780 -81
  151. package/l10n/en.json +45 -0
  152. package/l10n/nl.json +45 -0
  153. package/package.json +1 -1
  154. package/src/components/CnAdminActionCard/CnAdminActionCard.vue +234 -0
  155. package/src/components/CnAdminActionCard/index.js +4 -0
  156. package/src/components/CnAppNav/CnAppNav.vue +568 -43
  157. package/src/components/CnAppRoot/CnAppRoot.md +4 -0
  158. package/src/components/CnAppRoot/CnAppRoot.vue +223 -16
  159. package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +61 -16
  160. package/src/components/CnAuditTrailWidget/CnAuditTrailWidget.vue +22 -1
  161. package/src/components/CnCellRenderer/CnCellRenderer.vue +33 -2
  162. package/src/components/CnChoiceCards/CnChoiceCards.vue +56 -31
  163. package/src/components/CnDashboardPage/CnDashboardPage.vue +45 -4
  164. package/src/components/CnDataTable/CnColumnFilterPopover.vue +524 -0
  165. package/src/components/CnDataTable/CnDataTable.md +3 -0
  166. package/src/components/CnDataTable/CnDataTable.vue +305 -5
  167. package/src/components/CnDetailPage/CnDetailPage.md +4 -0
  168. package/src/components/CnDetailPage/CnDetailPage.vue +60 -1
  169. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +2 -2
  170. package/src/components/CnFieldHelper/CnFieldHelper.vue +4 -2
  171. package/src/components/CnFormDialog/CnFormDialog.vue +290 -31
  172. package/src/components/CnHeaderWidget/CnHeaderWidget.vue +116 -6
  173. package/src/components/CnIndexPage/CnIndexPage.vue +87 -4
  174. package/src/components/CnIndexPage/selfModeActions.js +3 -3
  175. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +46 -2
  176. package/src/components/CnResourceSelect/CnResourceSelect.vue +123 -12
  177. package/src/components/CnSetupWizard/CnSetupWizard.vue +392 -3
  178. package/src/components/CnStagesWidget/CnStagesWidget.vue +180 -2
  179. package/src/components/CnStagesWidget/stagesModel.js +5 -2
  180. package/src/components/CnStatWidget/CnStatWidget.vue +57 -3
  181. package/src/components/CnTabsWidget/CnTabsWidget.vue +15 -2
  182. package/src/components/CnTimelineWidget/CnTimelineWidget.vue +477 -0
  183. package/src/components/CnTimelineWidget/dashboardRegistration.js +32 -0
  184. package/src/components/CnTimelineWidget/index.js +4 -0
  185. package/src/components/CnWalkthrough/CnWalkthrough.vue +143 -10
  186. package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
  187. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  188. package/src/components/CnWidgetWrapper/CnWidgetWrapper.md +4 -0
  189. package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +107 -1
  190. package/src/components/CnWizardDialog/CnWizardDialog.vue +20 -1
  191. package/src/components/index.js +2 -0
  192. package/src/composables/useDependencyCheck.js +61 -0
  193. package/src/composables/useWalkthrough.js +217 -5
  194. package/src/css/dashboard.css +49 -0
  195. package/src/css/detail-page.css +29 -4
  196. package/src/css/kpi-card.css +24 -1
  197. package/src/css/table.css +99 -6
  198. package/src/index.js +2 -0
  199. package/src/schemas/app-manifest-v2.schema.json +135 -3
  200. package/src/store/useObjectStore.js +8 -0
  201. package/src/utils/columnFilters.js +324 -0
  202. package/src/utils/groupAutocomplete.js +119 -0
  203. package/src/utils/libraryWidgetKeys.js +2 -0
  204. package/src/utils/pickerOptions.js +194 -0
  205. package/src/utils/schema.js +83 -7
  206. package/src/utils/schemaRefSlug.js +19 -3
  207. package/src/utils/timelineEvents.js +171 -0
  208. package/src/utils/validateManifestV2.compiled.js +2 -2
  209. package/src/utils/walkthroughSignals.js +94 -0
@@ -1,4 +1,4 @@
1
- import { resolveComponent, openBlock, createBlock, createSlots, withCtx, createElementBlock, Fragment, renderList, resolveDynamicComponent, createVNode, renderSlot, mergeProps, createTextVNode, toDisplayString, createCommentVNode, createElementVNode } from 'vue';
1
+ import { resolveComponent, openBlock, createBlock, createSlots, withCtx, createElementBlock, Fragment, renderList, resolveDynamicComponent, createVNode, renderSlot, normalizeClass, mergeProps, createTextVNode, toDisplayString, createCommentVNode, createElementVNode } from 'vue';
2
2
 
3
3
  const _hoisted_1 = {
4
4
  key: 0,
@@ -8,24 +8,42 @@ const _hoisted_1 = {
8
8
  const _hoisted_2 = ["src", "alt"];
9
9
  const _hoisted_3 = {
10
10
  key: 1,
11
+ class: "cn-app-nav__brand-emblem cn-app-nav__brand-emblem--theme",
12
+ "data-testid": "cn-nav-brand-emblem",
13
+ "aria-hidden": "true"
14
+ };
15
+ const _hoisted_4 = ["src", "alt"];
16
+ const _hoisted_5 = {
17
+ key: 3,
11
18
  class: "cn-app-nav__brand-text"
12
19
  };
13
- const _hoisted_4 = {
20
+ const _hoisted_6 = {
14
21
  key: 0,
15
22
  class: "cn-app-nav__brand-name"
16
23
  };
17
- const _hoisted_5 = {
24
+ const _hoisted_7 = {
18
25
  key: 1,
19
26
  class: "cn-app-nav__brand-caption"
20
27
  };
21
- const _hoisted_6 = {
28
+ const _hoisted_8 = {
22
29
  key: 0,
23
- class: "app-navigation-new cn-app-nav__primary-action",
30
+ class: "app-navigation-new cn-app-nav__primary-action cn-app-nav__primary-action--solid",
24
31
  "data-testid": "cn-nav-primary-action"
25
32
  };
26
- const _hoisted_7 = { class: "cn-app-nav__settings-list" };
33
+ const _hoisted_9 = {
34
+ key: 0,
35
+ class: "cn-app-nav__card",
36
+ "data-testid": "cn-nav-card"
37
+ };
38
+ const _hoisted_10 = { class: "cn-app-nav__card-title" };
39
+ const _hoisted_11 = {
40
+ key: 0,
41
+ class: "cn-app-nav__card-text"
42
+ };
43
+ const _hoisted_12 = { class: "cn-app-nav__settings-list" };
27
44
 
28
45
  function render(_ctx, _cache, $props, $setup, $data, $options) {
46
+ const _component_CnActionButtons = resolveComponent("CnActionButtons");
29
47
  const _component_NcButton = resolveComponent("NcButton");
30
48
  const _component_NcAppNavigationNew = resolveComponent("NcAppNavigationNew");
31
49
  const _component_NcAppNavigationCaption = resolveComponent("NcAppNavigationCaption");
@@ -174,34 +192,46 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
174
192
  ]),
175
193
  default: withCtx(() => [
176
194
  renderSlot(_ctx.$slots, "primary-action", {}, () => [
177
- ($options.activePrimaryAction && $options.primaryActionLink)
178
- ? (openBlock(), createElementBlock("div", _hoisted_6, [
179
- createVNode(_component_NcButton, mergeProps({
180
- variant: "primary",
181
- wide: ""
182
- }, $options.primaryActionLink, { onClick: $options.onPrimaryActionClick }), {
183
- icon: withCtx(() => [
184
- (openBlock(), createBlock(resolveDynamicComponent($options.primaryActionIconComponent), { size: 20 }))
185
- ]),
186
- default: withCtx(() => [
187
- createTextVNode(" " + toDisplayString($options.resolveLabel($options.activePrimaryAction)), 1 /* TEXT */)
188
- ]),
189
- _: 1 /* STABLE */
190
- }, 16 /* FULL_PROPS */, ["onClick"])
195
+ ($options.activePrimaryAction && $options.primaryDispatchEntry)
196
+ ? (openBlock(), createElementBlock("div", _hoisted_8, [
197
+ createVNode(_component_CnActionButtons, {
198
+ actions: [$options.primaryDispatchEntry],
199
+ "data-testid": "cn-nav-primary-action-dispatch",
200
+ onCreated: $options.onPrimaryActionCreated
201
+ }, null, 8 /* PROPS */, ["actions", "onCreated"])
191
202
  ]))
192
- : ($options.activePrimaryAction)
193
- ? (openBlock(), createBlock(_component_NcAppNavigationNew, {
203
+ : ($options.activePrimaryAction && ($options.primaryActionLink || $options.activePrimaryAction.solid === true))
204
+ ? (openBlock(), createElementBlock("div", {
194
205
  key: 1,
195
- text: $options.resolveLabel($options.activePrimaryAction),
196
- "data-testid": "cn-nav-primary-action",
197
- onClick: $options.onPrimaryActionClick
198
- }, {
199
- icon: withCtx(() => [
200
- (openBlock(), createBlock(resolveDynamicComponent($options.primaryActionIconComponent), { size: 20 }))
201
- ]),
202
- _: 1 /* STABLE */
203
- }, 8 /* PROPS */, ["text", "onClick"]))
204
- : createCommentVNode("v-if", true)
206
+ class: normalizeClass(["app-navigation-new cn-app-nav__primary-action", { 'cn-app-nav__primary-action--solid': $options.activePrimaryAction.solid === true }]),
207
+ "data-testid": "cn-nav-primary-action"
208
+ }, [
209
+ createVNode(_component_NcButton, mergeProps({
210
+ variant: "primary",
211
+ wide: ""
212
+ }, $options.primaryActionLink || {}, { onClick: $options.onPrimaryActionClick }), {
213
+ icon: withCtx(() => [
214
+ (openBlock(), createBlock(resolveDynamicComponent($options.primaryActionIconComponent), { size: 20 }))
215
+ ]),
216
+ default: withCtx(() => [
217
+ createTextVNode(" " + toDisplayString($options.resolveLabel($options.activePrimaryAction)), 1 /* TEXT */)
218
+ ]),
219
+ _: 1 /* STABLE */
220
+ }, 16 /* FULL_PROPS */, ["onClick"])
221
+ ], 2 /* CLASS */))
222
+ : ($options.activePrimaryAction)
223
+ ? (openBlock(), createBlock(_component_NcAppNavigationNew, {
224
+ key: 2,
225
+ text: $options.resolveLabel($options.activePrimaryAction),
226
+ "data-testid": "cn-nav-primary-action",
227
+ onClick: $options.onPrimaryActionClick
228
+ }, {
229
+ icon: withCtx(() => [
230
+ (openBlock(), createBlock(resolveDynamicComponent($options.primaryActionIconComponent), { size: 20 }))
231
+ ]),
232
+ _: 1 /* STABLE */
233
+ }, 8 /* PROPS */, ["text", "onClick"]))
234
+ : createCommentVNode("v-if", true)
205
235
  ])
206
236
  ]),
207
237
  _: 2 /* DYNAMIC */
@@ -213,21 +243,31 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
213
243
  renderSlot(_ctx.$slots, "brand", { brand: $options.resolvedBrand }, () => [
214
244
  ($options.resolvedBrand)
215
245
  ? (openBlock(), createElementBlock("div", _hoisted_1, [
216
- ($options.resolvedBrand.logo)
246
+ (typeof $options.resolvedBrand.emblem === 'string' && $options.resolvedBrand.emblem !== '')
217
247
  ? (openBlock(), createElementBlock("img", {
218
248
  key: 0,
219
- class: "cn-app-nav__brand-logo",
220
- src: $options.resolvedBrand.logo,
249
+ class: "cn-app-nav__brand-emblem",
250
+ "data-testid": "cn-nav-brand-emblem",
251
+ src: $options.resolvedBrand.emblem,
221
252
  alt: $options.resolvedBrand.name ? '' : $options.resolvedBrand.alt
222
253
  }, null, 8 /* PROPS */, _hoisted_2))
223
- : createCommentVNode("v-if", true),
254
+ : ($options.resolvedBrand.emblem === true)
255
+ ? (openBlock(), createElementBlock("span", _hoisted_3))
256
+ : ($options.resolvedBrand.logo)
257
+ ? (openBlock(), createElementBlock("img", {
258
+ key: 2,
259
+ class: "cn-app-nav__brand-logo",
260
+ src: $options.resolvedBrand.logo,
261
+ alt: $options.resolvedBrand.name ? '' : $options.resolvedBrand.alt
262
+ }, null, 8 /* PROPS */, _hoisted_4))
263
+ : createCommentVNode("v-if", true),
224
264
  ($options.resolvedBrand.name || $options.resolvedBrand.caption)
225
- ? (openBlock(), createElementBlock("span", _hoisted_3, [
265
+ ? (openBlock(), createElementBlock("span", _hoisted_5, [
226
266
  ($options.resolvedBrand.name)
227
- ? (openBlock(), createElementBlock("strong", _hoisted_4, toDisplayString($options.resolvedBrand.name), 1 /* TEXT */))
267
+ ? (openBlock(), createElementBlock("strong", _hoisted_6, toDisplayString($options.resolvedBrand.name), 1 /* TEXT */))
228
268
  : createCommentVNode("v-if", true),
229
269
  ($options.resolvedBrand.caption)
230
- ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString($options.resolvedBrand.caption), 1 /* TEXT */))
270
+ ? (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString($options.resolvedBrand.caption), 1 /* TEXT */))
231
271
  : createCommentVNode("v-if", true)
232
272
  ]))
233
273
  : createCommentVNode("v-if", true)
@@ -239,16 +279,53 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
239
279
  key: "0"
240
280
  }
241
281
  : undefined,
242
- ($options.footerItems.length > 0 || $options.showSettingsFoldout)
282
+ ($options.footerItems.length > 0 || $options.showSettingsFoldout || $options.resolvedCard || $options.resolvedHelp)
243
283
  ? {
244
284
  name: "footer",
245
285
  fn: withCtx(() => [
246
- ($options.footerItems.length > 0)
286
+ renderSlot(_ctx.$slots, "card", { card: $options.resolvedCard }, () => [
287
+ ($options.resolvedCard)
288
+ ? (openBlock(), createElementBlock("div", _hoisted_9, [
289
+ createElementVNode("strong", _hoisted_10, toDisplayString($options.resolvedCard.title), 1 /* TEXT */),
290
+ ($options.resolvedCard.text)
291
+ ? (openBlock(), createElementBlock("span", _hoisted_11, toDisplayString($options.resolvedCard.text), 1 /* TEXT */))
292
+ : createCommentVNode("v-if", true),
293
+ ($options.resolvedCard.linkTag)
294
+ ? (openBlock(), createBlock(resolveDynamicComponent($options.resolvedCard.linkTag), mergeProps({
295
+ key: 1,
296
+ class: "cn-app-nav__card-link",
297
+ "data-testid": "cn-nav-card-link"
298
+ }, $options.resolvedCard.linkAttrs, { onClick: $options.onCardLinkClick }), {
299
+ default: withCtx(() => [
300
+ createTextVNode(toDisplayString($options.resolvedCard.linkLabel), 1 /* TEXT */)
301
+ ]),
302
+ _: 1 /* STABLE */
303
+ }, 16 /* FULL_PROPS */, ["onClick"]))
304
+ : createCommentVNode("v-if", true)
305
+ ]))
306
+ : createCommentVNode("v-if", true)
307
+ ]),
308
+ ($options.footerItems.length > 0 || $options.resolvedHelp)
247
309
  ? (openBlock(), createBlock(_component_NcAppNavigationList, {
248
310
  key: 0,
249
311
  class: "cn-app-nav__footer-list"
250
312
  }, {
251
313
  default: withCtx(() => [
314
+ ($options.resolvedHelp)
315
+ ? (openBlock(), createBlock(_component_NcAppNavigationItem, {
316
+ key: 0,
317
+ name: $options.resolvedHelp.label,
318
+ to: $options.resolvedHelp.to,
319
+ href: $options.resolvedHelp.href,
320
+ target: $options.resolvedHelp.href ? '_blank' : undefined,
321
+ "data-testid": "cn-nav-help"
322
+ }, {
323
+ icon: withCtx(() => [
324
+ createVNode(_component_HelpCircleOutline, { size: 20 })
325
+ ]),
326
+ _: 1 /* STABLE */
327
+ }, 8 /* PROPS */, ["name", "to", "href", "target"]))
328
+ : createCommentVNode("v-if", true),
252
329
  (openBlock(true), createElementBlock(Fragment, null, renderList($options.footerItems, (item) => {
253
330
  return (openBlock(), createBlock(_component_NcAppNavigationItem, {
254
331
  key: item.id,
@@ -309,7 +386,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
309
386
  "data-testid": "cn-nav-settings"
310
387
  }, {
311
388
  default: withCtx(() => [
312
- createElementVNode("ul", _hoisted_7, [
389
+ createElementVNode("ul", _hoisted_12, [
313
390
  ($options.includePersonalSettings)
314
391
  ? (openBlock(), createBlock(_component_NcAppNavigationItem, {
315
392
  key: 0,