@mulmoclaude/collection-plugin 0.7.6 → 0.8.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.
package/dist/style.css CHANGED
@@ -2072,6 +2072,10 @@
2072
2072
  color: var(--color-indigo-600);
2073
2073
  }
2074
2074
 
2075
+ .group-hover\:text-indigo-800:is(:where(.group):hover *) {
2076
+ color: var(--color-indigo-800);
2077
+ }
2078
+
2075
2079
  .group-hover\:text-indigo-950:is(:where(.group):hover *) {
2076
2080
  color: var(--color-indigo-950);
2077
2081
  }
@@ -2110,6 +2114,16 @@
2110
2114
  }
2111
2115
  }
2112
2116
 
2117
+ .hover\:bg-indigo-50\/30:hover {
2118
+ background-color: #eef2ff4d;
2119
+ }
2120
+
2121
+ @supports (color: color-mix(in lab, red, red)) {
2122
+ .hover\:bg-indigo-50\/30:hover {
2123
+ background-color: color-mix(in oklab, var(--color-indigo-50) 30%, transparent);
2124
+ }
2125
+ }
2126
+
2113
2127
  .hover\:bg-indigo-100:hover {
2114
2128
  background-color: var(--color-indigo-100);
2115
2129
  }
@@ -0,0 +1,9 @@
1
+ import type { BacklinksView } from "@mulmoclaude/core/collection";
2
+ type __VLS_Props = {
3
+ view: BacklinksView;
4
+ fieldKey: string;
5
+ };
6
+ declare const __VLS_export: 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>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
9
+ //# sourceMappingURL=CollectionBacklinksView.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionBacklinksView.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionBacklinksView.vue"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAuI7D,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionRecordPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionRecordPanel.vue"],"names":[],"mappings":"AAosBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,SAAS,EAEV,MAAM,8BAA8B,CAAC;AAQtC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,8CAA8C;IAC9C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,qEAAqE;IACrE,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,gDAAgD;IAChD,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA+JF,KAAK,gBAAgB,GAAG;IACxB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AA27CxD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"CollectionRecordPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionRecordPanel.vue"],"names":[],"mappings":"AA8sBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,SAAS,EAEV,MAAM,8BAA8B,CAAC;AAQtC,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,8CAA8C;IAC9C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,qEAAqE;IACrE,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,gDAAgD;IAChD,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAoKF,KAAK,gBAAgB,GAAG;IACxB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAy8CxD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionView.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionView.vue"],"names":[],"mappings":"AA00EA,OAAO,EAML,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAqC/B;;;;;;;;;6CAS6C;AAC7C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;;;uBAKmB;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;4EAGwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;wDAGoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;4EACwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAozHF,QAAA,MAAM,YAAY;;;cAzyHiB,eAAe;qBAAe,MAAM;oBAAc,MAAM;;;;;cAAxD,eAAe;qBAAe,MAAM;oBAAc,MAAM;;kFA4yHzF,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"CollectionView.vue.d.ts","sourceRoot":"","sources":["../../../src/vue/components/CollectionView.vue"],"names":[],"mappings":"AA60EA,OAAO,EAML,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAqC/B;;;;;;;;;6CAS6C;AAC7C,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;;;uBAKmB;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;4EAGwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;wDAGoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;4EACwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAuzHF,QAAA,MAAM,YAAY;;;cA5yHiB,eAAe;qBAAe,MAAM;oBAAc,MAAM;;;;;cAAxD,eAAe;qBAAe,MAAM;oBAAc,MAAM;;kFA+yHzF,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,5 +1,5 @@
1
1
  import type { Ref } from "vue";
2
- import type { CollectionDetail, CollectionItem, CollectionSchema, CollectionFieldSpec as FieldSpec, CollectionFieldType as FieldType, EmbedCache, EmbedView, RefCache, RefOption, RefRecordCache } from "@mulmoclaude/core/collection";
2
+ import type { BacklinksView, CollectionDetail, CollectionItem, CollectionSchema, CollectionFieldSpec as FieldSpec, CollectionFieldType as FieldType, EmbedCache, EmbedView, RefCache, RefOption, RefRecordCache } from "@mulmoclaude/core/collection";
3
3
  export interface CollectionRendering {
4
4
  refCache: Ref<RefCache>;
5
5
  refRecordCache: Ref<RefRecordCache>;
@@ -10,6 +10,7 @@ export interface CollectionRendering {
10
10
  refOptions: (targetSlug: string) => RefOption[];
11
11
  embedOptions: (targetSlug: string) => RefOption[];
12
12
  embedViewsFor: (record: CollectionItem | null) => Record<string, EmbedView>;
13
+ backlinksViewsFor: (record: CollectionItem | null) => Record<string, BacklinksView>;
13
14
  resolveCurrency: (field: FieldSpec, record: CollectionItem | null | undefined) => string | undefined;
14
15
  currencySymbol: (currency: string | undefined) => string;
15
16
  formatMoney: (value: unknown, currency: string | undefined, displayLocale: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"useCollectionRendering.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG/B,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,IAAI,SAAS,EAChC,mBAAmB,IAAI,SAAS,EAChC,UAAU,EACV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,EACf,MAAM,8BAA8B,CAAC;AAwBtC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,qBAAqB,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAChD,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAClD,aAAa,EAAE,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5E,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACrG,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7F,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IACxD,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACvC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;IACjD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzD,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC1C,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC;IAC9F,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACjD,SAAS,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,KAAK,cAAc,CAAC;IAC1G,0BAA0B,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,MAAM,GAAG,IAAI,CAAC;IACxG,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC;CACrG;AAiBD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAsBzH"}
1
+ {"version":3,"file":"useCollectionRendering.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,18 @@ export declare function hasTableRows(value: unknown): boolean;
19
19
  export declare function displayFieldFor(fields: Record<string, FieldSpec>, primaryKey: string): string;
20
20
  export declare function uniqueRefTargets(schema: CollectionSchema): string[];
21
21
  export declare function uniqueEmbedTargets(schema: CollectionSchema): string[];
22
+ /** Slugs of every SOURCE collection a `backlinks` field reverses over.
23
+ * Top-level only, like `embed` (the schema rejects `backlinks` inside a
24
+ * table's `of`). Mirrors the server's `uniqueBacklinkSources`. */
25
+ export declare function uniqueBacklinkSources(schema: CollectionSchema): string[];
22
26
  export declare function buildRefDisplayMap(detail: CollectionDetailResponse): RefDisplayMap;
27
+ /** Index DERIVED records by primary key — the client mirror of the
28
+ * server's `loadTarget` indexing: string non-empty ids only, one record
29
+ * per id (a duplicate keeps the LAST record in its FIRST position —
30
+ * plain-object key semantics). Shared by the ref-record cache and the
31
+ * backlinks view so every client consumer agrees with server enrichment
32
+ * on which source records exist. */
33
+ export declare function derivedRecordsById(schema: CollectionSchema, items: CollectionItem[]): RefRecordMap;
23
34
  export declare function buildRefRecordMap(detail: CollectionDetailResponse): RefRecordMap;
24
35
  export declare function sortedRefOptions(map: RefDisplayMap): RefOption[];
25
36
  /** Dropdown options for an `embed` field's per-record picker: every
@@ -1 +1 @@
1
- {"version":3,"file":"useCollectionRendering.helpers.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,IAAI,SAAS,EAChC,mBAAmB,IAAI,SAAS,EAChC,aAAa,EACb,SAAS,EACT,YAAY,EACb,MAAM,8BAA8B,CAAC;AAWtC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAIpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAOpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGjD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAOlE;AAED;;;;4BAI4B;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO/G;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAUvG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ5F;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAGnE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;qEACqE;AACrE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAI7F;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAYnE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAQrE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,aAAa,CAWlF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,YAAY,CAQhF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,EAAE,CAIhE;AAED;;yEAEyE;AACzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,SAAS,EAAE,CAYhG"}
1
+ {"version":3,"file":"useCollectionRendering.helpers.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,IAAI,SAAS,EAChC,mBAAmB,IAAI,SAAS,EAChC,aAAa,EACb,SAAS,EACT,YAAY,EACb,MAAM,8BAA8B,CAAC;AAWtC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAIpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAOpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGjD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAOlE;AAED;;;;4BAI4B;AAC5B,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO/G;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAUvG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ5F;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAGnE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;qEACqE;AACrE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAI7F;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAYnE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAQrE;AAED;;mEAEmE;AACnE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAMxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,aAAa,CAWlF;AAED;;;;;qCAKqC;AACrC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,YAAY,CAOlG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,YAAY,CAEhF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,EAAE,CAIhE;AAED;;yEAEyE;AACzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,SAAS,EAAE,CAYhG"}
@@ -1,4 +1,4 @@
1
- import type { CollectionItem, CollectionSchema, CollectionFieldSpec as FieldSpec, EmbedCache, EmbedView, RefCache, RefOption, RefRecordCache } from "@mulmoclaude/core/collection";
1
+ import type { BacklinksView, CollectionItem, CollectionSchema, CollectionFieldSpec as FieldSpec, EmbedCache, EmbedView, RefCache, RefOption, RefRecordCache } from "@mulmoclaude/core/collection";
2
2
  export declare function lookupRefDisplay(refCache: RefCache, targetSlug: string, itemSlug: string): string;
3
3
  export declare function refOptionsFor(refCache: RefCache, targetSlug: string): RefOption[];
4
4
  /** Dropdown options for an `embed` field's per-record picker (`idField`):
@@ -16,6 +16,16 @@ export declare function formatEmbedValue(field: FieldSpec, value: unknown, recor
16
16
  * resolves a different target per row. `schema` is the OPEN collection's
17
17
  * schema (null when no collection is loaded → no views). */
18
18
  export declare function buildEmbedViews(schema: CollectionSchema | null, embedCache: EmbedCache, record: CollectionItem | null, locale: string): Record<string, EmbedView>;
19
+ /** Build the read-only backlinks view-models for one record: for each
20
+ * `backlinks` field, the rows of `from` whose `via` points at the open
21
+ * record (matched via the SHARED `backlinkRows`, on source records
22
+ * derived exactly like the server's enrichment — so a `display`/`filter`
23
+ * on a derived column such as an invoice `total` agrees on both sides).
24
+ * Source data comes out of `embedCache` (reverse sources ride the embed
25
+ * fan-out — see `linkedTargets`). Fail-soft: an unloadable source or an
26
+ * unknown `display` key degrades to `found: false` / a raw-key column,
27
+ * never a throw. */
28
+ export declare function buildBacklinksViews(schema: CollectionSchema | null, embedCache: EmbedCache, record: CollectionItem | null, locale: string): Record<string, BacklinksView>;
19
29
  export declare function renderSubCell(subField: FieldSpec, value: unknown, record: CollectionItem | null, refCache: RefCache, locale: string): string;
20
30
  export declare function evaluateDerived(field: FieldSpec, fieldKey: string, item: CollectionItem, schema: CollectionSchema | null, refRecords: RefRecordCache): number | null;
21
31
  export declare function renderDerived(field: FieldSpec, computedValue: unknown, record: CollectionItem | null, locale: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"useCollectionRendering.renderers.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.renderers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,IAAI,SAAS,EAChC,UAAU,EAEV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,EACf,MAAM,8BAA8B,CAAC;AAGtC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAGjF;AAED;;;oEAGoE;AACpE,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAGvF;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,UAAU,EAAE,UAAU,GACrB;IAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,CAOlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxH;AAED;;;6DAG6D;AAC7D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAC/B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAmB3B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI5I;AAOD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAC/B,UAAU,EAAE,cAAc,GACzB,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7H"}
1
+ {"version":3,"file":"useCollectionRendering.renderers.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.renderers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,mBAAmB,IAAI,SAAS,EAChC,UAAU,EAEV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,EACf,MAAM,8BAA8B,CAAC;AAWtC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAGjF;AAED;;;oEAGoE;AACpE,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAGvF;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,UAAU,EAAE,UAAU,GACrB;IAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,CAOlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxH;AAED;;;6DAG6D;AAC7D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAC/B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAmB3B;AAYD;;;;;;;;qBAQqB;AACrB,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAC/B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CA0B/B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI5I;AAOD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAC/B,UAAU,EAAE,cAAc,GACzB,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7H"}
@@ -20,7 +20,11 @@ export interface LinkedCachesSnapshot {
20
20
  }
21
21
  type FetchCollectionDetail = (slug: string) => Promise<CollectionApiResult<CollectionDetailResponse>>;
22
22
  /** The de-duplicated ref + embed target slugs a schema links to. `allTargets`
23
- * is the union (each target fetched once even when both ref'd and embedded). */
23
+ * is the union (each target fetched once even when both ref'd and embedded).
24
+ * `backlinks` SOURCE collections ride in `embedTargets`: a backlink needs
25
+ * exactly what an embed target caches (the source's schema + items in
26
+ * `embedCache`), so reverse sources reuse that cache rather than adding a
27
+ * parallel one. */
24
28
  export declare function linkedTargets(schema: CollectionSchema): LinkedTargets;
25
29
  /** Fan-out fetch that hydrates the linked-collection caches. Best-effort: a
26
30
  * target whose fetch *rejects* (vs. resolving `{ ok: false }`) is coerced to a
@@ -1 +1 @@
1
- {"version":3,"file":"useLinkedCollectionCaches.d.ts","sourceRoot":"","sources":["../../src/vue/useLinkedCollectionCaches.ts"],"names":[],"mappings":"AAOA,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEvJ,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,qBAAqB,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,KAAK,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAEtG;iFACiF;AACjF,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAKrE;AAED;;;;mFAImF;AACnF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,qBAAqB,EAClC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,EACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA2BtC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,sBAAsB,CA4B1G"}
1
+ {"version":3,"file":"useLinkedCollectionCaches.d.ts","sourceRoot":"","sources":["../../src/vue/useLinkedCollectionCaches.ts"],"names":[],"mappings":"AAOA,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEvJ,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,qBAAqB,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,KAAK,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAEtG;;;;;oBAKoB;AACpB,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAKrE;AAED;;;;mFAImF;AACnF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,qBAAqB,EAClC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,EACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA2BtC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,sBAAsB,CA4B1G"}