@conduction/nextcloud-vue 2.89.2 → 2.91.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 (52) hide show
  1. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
  2. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js +13 -0
  3. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
  4. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +3 -1
  5. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
  6. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  7. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +18 -0
  8. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  9. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -2
  10. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  11. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  12. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +15 -1
  13. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  14. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +1 -1
  15. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  16. package/dist/esm/components/CnDialog/CnDialog.vue2.js +1 -1
  17. package/dist/esm/components/CnDialog/CnDialog.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDialog/CnDialog.vue3.js.map +1 -1
  19. package/dist/esm/components/CnDialogHeader/CnDialogHeader.vue2.js +1 -1
  20. package/dist/esm/components/CnDialogHeader/CnDialogHeader.vue2.js.map +1 -1
  21. package/dist/esm/components/CnDialogHeader/CnDialogHeader.vue3.js.map +1 -1
  22. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +1 -1
  23. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +16 -1
  24. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -1
  25. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +1 -1
  26. package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -1
  27. package/dist/esm/components/CnObjectSidebar/CnObjectSidebar.vue.js +1 -1
  28. package/dist/esm/components/CnObjectSidebar/CnObjectSidebar.vue2.js +6 -3
  29. package/dist/esm/components/CnObjectSidebar/CnObjectSidebar.vue2.js.map +1 -1
  30. package/dist/esm/components/CnObjectSidebar/CnObjectSidebar.vue3.js.map +1 -1
  31. package/dist/esm/index.js +2 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/library-style.js +1 -1
  34. package/dist/esm/nextcloud-vue.css +74 -74
  35. package/dist/esm/utils/declaredProps.js +106 -0
  36. package/dist/esm/utils/declaredProps.js.map +1 -0
  37. package/dist/nextcloud-vue.cjs.js +185 -20
  38. package/dist/nextcloud-vue.cjs.js.map +2 -2
  39. package/dist/nextcloud-vue.css +74 -74
  40. package/package.json +1 -1
  41. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +14 -1
  42. package/src/components/CnDashboardPage/CnDashboardPage.vue +20 -2
  43. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +16 -2
  44. package/src/components/CnDialog/CnDialog.vue +1 -1
  45. package/src/components/CnDialog/index.js +7 -0
  46. package/src/components/CnDialogHeader/CnDialogHeader.vue +1 -1
  47. package/src/components/CnDialogHeader/index.js +7 -0
  48. package/src/components/CnIndexPage/CnIndexPageWidgets.vue +17 -2
  49. package/src/components/CnObjectSidebar/CnObjectSidebar.vue +6 -3
  50. package/src/components/index.js +2 -0
  51. package/src/index.js +2 -0
  52. package/src/utils/declaredProps.js +115 -0
@@ -26166,7 +26166,7 @@ script$6Y.__scopeId = "data-v-52ba5fea";
26166
26166
  const __sfc_main$6S = script$6Y;
26167
26167
 
26168
26168
  /**
26169
- * CnDialogHeader (internal) - the board dialog header: eyebrow, 20px title,
26169
+ * CnDialogHeader - the board dialog header: eyebrow, 20px title,
26170
26170
  * subtitle and a round 36px close button.
26171
26171
  *
26172
26172
  * The close button emits `close` and is disabled while `noClose` is set, so a
@@ -26293,7 +26293,7 @@ function resolveDialogWidth(width, defaultWidth) {
26293
26293
  }
26294
26294
 
26295
26295
  /**
26296
- * CnDialog (internal) - the one place where a `Cn*` dialog turns into the
26296
+ * CnDialog - the one place where a `Cn*` dialog turns into the
26297
26297
  * board dialog (screens-dialog-parity).
26298
26298
  *
26299
26299
  * In the Nextcloud look it is `NcDialog` with the caller's `size`, unchanged.
@@ -51261,7 +51261,7 @@ function matchPlainBrackets(state, pos, dir, tree, tokenType, maxScanDistance, b
51261
51261
  }
51262
51262
  const noTokens = /*@__PURE__*/Object.create(null);
51263
51263
  const typeArray = [NodeType.none];
51264
- const warned$2 = [];
51264
+ const warned$3 = [];
51265
51265
  // Cache of node types by name and tags
51266
51266
  const byTag = /*@__PURE__*/Object.create(null);
51267
51267
  const defaultTable = /*@__PURE__*/Object.create(null);
@@ -51281,9 +51281,9 @@ for (let [legacyName, name] of [
51281
51281
  ])
51282
51282
  defaultTable[legacyName] = /*@__PURE__*/createTokenType(noTokens, name);
51283
51283
  function warnForPart(part, msg) {
51284
- if (warned$2.indexOf(part) > -1)
51284
+ if (warned$3.indexOf(part) > -1)
51285
51285
  return;
51286
- warned$2.push(part);
51286
+ warned$3.push(part);
51287
51287
  console.warn(msg);
51288
51288
  }
51289
51289
  function createTokenType(extra, tagStr) {
@@ -152257,6 +152257,108 @@ script$4K.render = render$4K;
152257
152257
  script$4K.__scopeId = "data-v-f0af265a";
152258
152258
  const __sfc_main$4E = script$4K;
152259
152259
 
152260
+ /**
152261
+ * SPDX-FileCopyrightText: 2026 Conduction B.V.
152262
+ * SPDX-License-Identifier: EUPL-1.2
152263
+ */
152264
+
152265
+
152266
+ const warned$2 = new Set();
152267
+
152268
+ /**
152269
+ * Add the prop names one component options object declares, following its
152270
+ * `extends` and `mixins`.
152271
+ *
152272
+ * @param {object} options A component options object.
152273
+ * @param {Set<string>} names The set to add camelCase prop names to.
152274
+ * @param {number} depth Recursion guard.
152275
+ */
152276
+ function collect(options, names, depth) {
152277
+ if (!options || typeof options !== 'object' || depth > 8) {
152278
+ return
152279
+ }
152280
+ const props = options.props;
152281
+ if (Array.isArray(props)) {
152282
+ props.forEach((name) => names.add(vue$1.camelize(String(name))));
152283
+ } else if (props && typeof props === 'object') {
152284
+ Object.keys(props).forEach((name) => names.add(vue$1.camelize(name)));
152285
+ }
152286
+ collect(options.extends, names, depth + 1);
152287
+ if (Array.isArray(options.mixins)) {
152288
+ options.mixins.forEach((mixin) => collect(mixin, names, depth + 1));
152289
+ }
152290
+ }
152291
+
152292
+ /**
152293
+ * The prop names a component declares, or `null` when it takes every
152294
+ * attribute itself and so must keep receiving all of them:
152295
+ * - `inheritAttrs: false`: the component forwards `$attrs` on purpose;
152296
+ * - a functional component without `props`: its attrs are its props;
152297
+ * - an async component that has not resolved yet.
152298
+ *
152299
+ * @spec openspec/changes/dashboard-declared-widget-props/specs/dashboard-page/spec.md#requirement-a-dashboard-widget-receives-only-the-content-keys-it-declares
152300
+ * @param {object|((...args: unknown[]) => unknown)|null} component A component definition.
152301
+ * @return {Set<string>|null} camelCase prop names, or null for "all".
152302
+ */
152303
+ function declaredPropNames(component) {
152304
+ if (!component) {
152305
+ return null
152306
+ }
152307
+ if (typeof component === 'function') {
152308
+ if (!component.props) {
152309
+ return null
152310
+ }
152311
+ const names = new Set();
152312
+ collect({ props: component.props }, names, 0);
152313
+ return names
152314
+ }
152315
+ if (typeof component !== 'object') {
152316
+ return null
152317
+ }
152318
+ if (component.__asyncLoader) {
152319
+ return component.__asyncResolved ? declaredPropNames(component.__asyncResolved) : null
152320
+ }
152321
+ const chain = [component, component.extends, ...(component.mixins || [])];
152322
+ if (chain.some((options) => options && options.inheritAttrs === false)) {
152323
+ return null
152324
+ }
152325
+ const names = new Set();
152326
+ collect(component, names, 0);
152327
+ return names
152328
+ }
152329
+
152330
+ /**
152331
+ * Keep the entries of `bindings` whose key `component` declares as a prop.
152332
+ * A component for which {@link declaredPropNames} returns null gets every
152333
+ * entry. A dropped key is warned about once outside production when the
152334
+ * component has no `content` prop either, so the key reaches nothing.
152335
+ *
152336
+ * @spec openspec/changes/dashboard-declared-widget-props/specs/dashboard-page/spec.md#requirement-a-dashboard-widget-receives-only-the-content-keys-it-declares
152337
+ * @param {object|((...args: unknown[]) => unknown)|null} component The component that will receive the bindings.
152338
+ * @param {object} bindings The candidate bindings.
152339
+ * @param {string} label Names the component in the warning (for example the widget type).
152340
+ * @return {object} The bindings the component declares.
152341
+ */
152342
+ function pickDeclaredProps(component, bindings, label) {
152343
+ const declared = declaredPropNames(component);
152344
+ if (!declared || !bindings || typeof bindings !== 'object') {
152345
+ return bindings
152346
+ }
152347
+ const out = {};
152348
+ for (const [key, value] of Object.entries(bindings)) {
152349
+ if (declared.has(vue$1.camelize(key))) {
152350
+ out[key] = value;
152351
+ continue
152352
+ }
152353
+ if (process.env.NODE_ENV !== 'production' && !declared.has('content') && !warned$2.has(`${label}\u0000${key}`)) {
152354
+ warned$2.add(`${label}\u0000${key}`);
152355
+ // eslint-disable-next-line no-console
152356
+ console.warn(`[nextcloud-vue] content key "${key}" is not passed to widget "${label}": it declares neither that prop nor \`content\`.`);
152357
+ }
152358
+ }
152359
+ return out
152360
+ }
152361
+
152260
152362
  // SPDX-FileCopyrightText: 2026 Conduction B.V.
152261
152363
  // SPDX-License-Identifier: EUPL-1.2
152262
152364
 
@@ -163778,7 +163880,20 @@ var script$4p = {
163778
163880
  if (title) {
163779
163881
  base.title = title;
163780
163882
  }
163781
- return { ...base, ...this.content }
163883
+ return { ...base, ...this.declaredContent }
163884
+ },
163885
+
163886
+ /**
163887
+ * The content keys the renderer declares as props. An undeclared key
163888
+ * would fall through as an attribute onto the renderer's root and could
163889
+ * override a value the widget computes there; the whole content still
163890
+ * arrives as `content`.
163891
+ *
163892
+ * @return {object} The declared content keys.
163893
+ * @spec openspec/changes/declared-props-detail-index-sidebar/specs/widget-hosts/spec.md#requirement-a-widget-host-passes-only-the-keys-a-widget-declares
163894
+ */
163895
+ declaredContent() {
163896
+ return pickDeclaredProps(this.renderer, this.content, this.widget?.type || '')
163782
163897
  },
163783
163898
 
163784
163899
  /**
@@ -164268,7 +164383,7 @@ function render$4p(_ctx, _cache, $props, $setup, $data, $options) {
164268
164383
  class: "cn-detail-page__card-fit"
164269
164384
  }, vue$1.createSlots({
164270
164385
  default: vue$1.withCtx(() => [
164271
- (vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent($options.renderer), vue$1.mergeProps({ content: $options.content }, $options.content), null, 16 /* FULL_PROPS */, ["content"]))
164386
+ (vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent($options.renderer), vue$1.mergeProps({ content: $options.content }, $options.declaredContent), null, 16 /* FULL_PROPS */, ["content"]))
164272
164387
  ]),
164273
164388
  _: 2 /* DYNAMIC */
164274
164389
  }, [
@@ -164295,7 +164410,7 @@ function render$4p(_ctx, _cache, $props, $setup, $data, $options) {
164295
164410
  }
164296
164411
 
164297
164412
  script$4p.render = render$4p;
164298
- script$4p.__scopeId = "data-v-e7ff148e";
164413
+ script$4p.__scopeId = "data-v-47b3ec9e";
164299
164414
  const __sfc_main$4j = script$4p;
164300
164415
 
164301
164416
  /**
@@ -257390,6 +257505,19 @@ var script$2k = {
257390
257505
  default: '',
257391
257506
  },
257392
257507
 
257508
+ /**
257509
+ * Mount a tab's `tab-<id>` slot only while that tab is open, and
257510
+ * unmount it when another tab opens, so each visit mounts it afresh
257511
+ * and the page does not load every tab at once. Off (the default),
257512
+ * every panel stays mounted and only the open one shows.
257513
+ *
257514
+ * @spec openspec/changes/admin-settings-lazy-tabs/specs/settings-board-look/spec.md#requirement-the-admin-shell-can-mount-only-the-open-tab
257515
+ */
257516
+ lazyTabs: {
257517
+ type: Boolean,
257518
+ default: false,
257519
+ },
257520
+
257393
257521
  /**
257394
257522
  * How the `tabs` strip is drawn, as CnTabs' `variant`: `line`, the
257395
257523
  * folder tabs (the default), or `underline`, plain labels on a rule
@@ -257950,7 +258078,9 @@ function render$2k(_ctx, _cache, $props, $setup, $data, $options) {
257950
258078
  class: "cn-admin-settings-shell__panel",
257951
258079
  "data-tab": tab.id
257952
258080
  }, [
257953
- vue$1.renderSlot(_ctx.$slots, `tab-${tab.id}`)
258081
+ (!$props.lazyTabs || tab.id === $options.activeTabId)
258082
+ ? vue$1.renderSlot(_ctx.$slots, `tab-${tab.id}`, {}, undefined, undefined, 0)
258083
+ : vue$1.createCommentVNode("v-if", true)
257954
258084
  ], 8 /* PROPS */, _hoisted_11$N)
257955
258085
  ]),
257956
258086
  _: 2 /* DYNAMIC */
@@ -258089,7 +258219,7 @@ function render$2k(_ctx, _cache, $props, $setup, $data, $options) {
258089
258219
  }
258090
258220
 
258091
258221
  script$2k.render = render$2k;
258092
- script$2k.__scopeId = "data-v-c3ceda64";
258222
+ script$2k.__scopeId = "data-v-038f200a";
258093
258223
  const __sfc_main$2k = script$2k;
258094
258224
 
258095
258225
  /**
@@ -265277,7 +265407,7 @@ var script$25 = {
265277
265407
  * The renderable entries, in the listed order.
265278
265408
  *
265279
265409
  * @spec openspec/changes/screens-index-stat-row/specs/index-page/spec.md#requirement-an-index-page-can-draw-a-stat-row-above-the-list
265280
- * @return {Array<{id: string, title: string, content: object, headerLink: (object|null), renderer: object}>}
265410
+ * @return {Array<{id: string, type: string, title: string, content: object, headerLink: (object|null), renderer: object}>}
265281
265411
  */
265282
265412
  entries() {
265283
265413
  const list = Array.isArray(this.widgets) ? this.widgets : [];
@@ -265297,6 +265427,7 @@ var script$25 = {
265297
265427
  const translate = typeof this.cnTranslate === 'function' ? this.cnTranslate : (key) => key;
265298
265428
  out.push({
265299
265429
  id: def.id,
265430
+ type: def.type,
265300
265431
  title: typeof def.title === 'string' && def.title !== '' ? translate(def.title) : '',
265301
265432
  content: (def.content && typeof def.content === 'object') ? def.content : {},
265302
265433
  headerLink: (def.headerLink && typeof def.headerLink === 'object') ? def.headerLink : null,
@@ -265308,6 +265439,19 @@ var script$25 = {
265308
265439
  },
265309
265440
 
265310
265441
  methods: {
265442
+ /**
265443
+ * The content keys an entry's renderer declares as props. An undeclared
265444
+ * key would fall through onto the renderer's root; the whole content
265445
+ * still arrives as `content`.
265446
+ *
265447
+ * @param {{ renderer: object, content: object, type?: string, id: string }} entry A resolved entry.
265448
+ * @return {object} The declared content keys.
265449
+ * @spec openspec/changes/declared-props-detail-index-sidebar/specs/widget-hosts/spec.md#requirement-a-widget-host-passes-only-the-keys-a-widget-declares
265450
+ */
265451
+ declaredContent(entry) {
265452
+ return pickDeclaredProps(entry.renderer, entry.content, entry.type || entry.id)
265453
+ },
265454
+
265311
265455
  /**
265312
265456
  * Resolve a widget type: the consumer registry, then the dashboard
265313
265457
  * catalog (the type as written, then its alias), then the built-ins.
@@ -265361,7 +265505,7 @@ function render$25(_ctx, _cache, $props, $setup, $data, $options) {
265361
265505
  (vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent(entry.renderer), vue$1.mergeProps({
265362
265506
  widgetId: entry.id,
265363
265507
  content: entry.content
265364
- }, { ref_for: true }, entry.content), null, 16 /* FULL_PROPS */, ["widgetId", "content"]))
265508
+ }, { ref_for: true }, $options.declaredContent(entry)), null, 16 /* FULL_PROPS */, ["widgetId", "content"]))
265365
265509
  ]),
265366
265510
  _: 2 /* DYNAMIC */
265367
265511
  }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["widgetId", "title", "showTitle", "headerLink", "flush"])
@@ -265374,7 +265518,7 @@ function render$25(_ctx, _cache, $props, $setup, $data, $options) {
265374
265518
  }
265375
265519
 
265376
265520
  script$25.render = render$25;
265377
- script$25.__scopeId = "data-v-5e716bba";
265521
+ script$25.__scopeId = "data-v-319129cb";
265378
265522
  const __sfc_main$25 = script$25;
265379
265523
 
265380
265524
  /**
@@ -321041,6 +321185,23 @@ var script$1i = {
321041
321185
  return outcome ? { ...content, conditionOutcome: outcome } : content
321042
321186
  },
321043
321187
 
321188
+ /**
321189
+ * The content keys a registry widget receives as props: only the ones
321190
+ * its renderer declares. An undeclared key would otherwise fall through
321191
+ * as an attribute onto the renderer's root component and could override
321192
+ * a value the widget computes for it. The whole content still arrives
321193
+ * as `content`. A renderer that forwards its own attributes
321194
+ * (`inheritAttrs: false`) keeps receiving every key.
321195
+ *
321196
+ * @param {object} item Layout item.
321197
+ * @return {object} The bindings the renderer declares.
321198
+ * @spec openspec/changes/dashboard-declared-widget-props/specs/dashboard-page/spec.md#requirement-a-dashboard-widget-receives-only-the-content-keys-it-declares
321199
+ */
321200
+ registryWidgetProps(item) {
321201
+ const def = this.getWidgetDef(item.widgetId);
321202
+ return pickDeclaredProps(this.registryRenderer(item), this.registryWidgetBindings(item), def?.type || item.widgetId)
321203
+ },
321204
+
321044
321205
  /**
321045
321206
  * What a container widget (registry `container`, such as `tabs`) needs
321046
321207
  * beside its content: the page's widget definitions, so its tabs find
@@ -322681,7 +322842,7 @@ function render$1i(_ctx, _cache, $props, $setup, $data, $options) {
322681
322842
  (vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent($options.registryRenderer(item)), vue$1.mergeProps({
322682
322843
  widgetId: item.widgetId,
322683
322844
  content: $options.registryWidgetBindings(item)
322684
- }, { ref_for: true }, { ...$options.registryWidgetBindings(item), ...$options.containerBindings(item) }, {
322845
+ }, { ref_for: true }, { ...$options.registryWidgetProps(item), ...$options.containerBindings(item) }, {
322685
322846
  onHeader: $event => ($options.onWidgetHeader(item, $event))
322686
322847
  }), null, 16 /* FULL_PROPS */, ["widgetId", "content", "onHeader"]))
322687
322848
  ]),
@@ -323150,7 +323311,7 @@ function render$1i(_ctx, _cache, $props, $setup, $data, $options) {
323150
323311
  (vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent($options.registryRenderer(item)), vue$1.mergeProps({
323151
323312
  widgetId: item.widgetId,
323152
323313
  content: $options.registryWidgetBindings(item)
323153
- }, { ref_for: true }, { ...$options.registryWidgetBindings(item), ...$options.containerBindings(item), ...$options.cellChromeBindings(item) }, {
323314
+ }, { ref_for: true }, { ...$options.registryWidgetProps(item), ...$options.containerBindings(item), ...$options.cellChromeBindings(item) }, {
323154
323315
  onHeader: $event => ($options.onWidgetHeader(item, $event))
323155
323316
  }), null, 16 /* FULL_PROPS */, ["widgetId", "content", "onHeader"]))
323156
323317
  ]),
@@ -323310,7 +323471,7 @@ function render$1i(_ctx, _cache, $props, $setup, $data, $options) {
323310
323471
  }
323311
323472
 
323312
323473
  script$1i.render = render$1i;
323313
- script$1i.__scopeId = "data-v-20ca81f3";
323474
+ script$1i.__scopeId = "data-v-42bc14a4";
323314
323475
  const __sfc_main$1i = script$1i;
323315
323476
 
323316
323477
  var CnDashboardPage = /*#__PURE__*/Object.freeze({
@@ -334901,9 +335062,11 @@ var script$N = {
334901
335062
  * widgets get the shared coordinate context plus the loaded object
334902
335063
  * (`objectData`); the prop-driven `data` built-in also gets the schema
334903
335064
  * OBJECT bound to its `schema` prop (the other tabs use the `schema`
334904
- * slug string, so the override is scoped to `type: 'data'`). A widget's
334905
- * own `props` win on overlap.
335065
+ * slug string, so the override is scoped to `type: 'data'`). Of a
335066
+ * widget's own `props`, the ones its component declares win on overlap;
335067
+ * an undeclared one would only fall through onto the component's root.
334906
335068
  *
335069
+ * @spec openspec/changes/declared-props-detail-index-sidebar/specs/widget-hosts/spec.md#requirement-a-widget-host-passes-only-the-keys-a-widget-declares
334907
335070
  * @param {{ type: string, props?: object }} w Widget spec
334908
335071
  * @return {object} Props to v-bind onto the resolved widget component
334909
335072
  */
@@ -334916,7 +335079,7 @@ var script$N = {
334916
335079
  // a String `schema`.
334917
335080
  bindings.schema = this.objectSchema;
334918
335081
  }
334919
- return { ...bindings, ...(w.props || {}) }
335082
+ return { ...bindings, ...pickDeclaredProps(this.resolveWidgetComponent(w.type), w.props || {}, w.type || '') }
334920
335083
  },
334921
335084
 
334922
335085
  /**
@@ -335238,7 +335401,7 @@ function render$N(_ctx, _cache, $props, $setup, $data, $options) {
335238
335401
  }
335239
335402
 
335240
335403
  script$N.render = render$N;
335241
- script$N.__scopeId = "data-v-8b218df0";
335404
+ script$N.__scopeId = "data-v-09402703";
335242
335405
  const __sfc_main$N = script$N;
335243
335406
 
335244
335407
  /**
@@ -397423,6 +397586,8 @@ exports.CnDetailCard = __sfc_main$6E;
397423
397586
  exports.CnDetailGrid = __sfc_main$4J;
397424
397587
  exports.CnDetailPage = __sfc_main$1m;
397425
397588
  exports.CnDetailWidgetHost = __sfc_main$4j;
397589
+ exports.CnDialog = __sfc_main$6Q;
397590
+ exports.CnDialogHeader = __sfc_main$6R;
397426
397591
  exports.CnDividerWidget = __sfc_main$4B;
397427
397592
  exports.CnDividerWidgetForm = __sfc_main$42;
397428
397593
  exports.CnDocumentReviewList = __sfc_main$76;
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/dist/nextcloud-vue.cjs.js.map
3
- size: 40768932 bytes
4
- sha256: 5eaf232e7473c7af37c95cfc8b0839550069002fa540192d0ea4b88131fbc06d
3
+ size: 40783800 bytes
4
+ sha256: 38ecb05b1a9c62bd250ca390394a3597748055d8c7dc1363ad11aa8069730ec1