@xtrable-ltd/nanoesis 0.1.36 → 0.1.37

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 (28) hide show
  1. package/dist/adapter-azure-blob.js +1 -1
  2. package/dist/adapter-sharp.js +4 -1
  3. package/dist/{chunk-2OWUWOGB.js → chunk-APYNH4WV.js} +1 -1
  4. package/dist/{chunk-AH2MVN2O.js → chunk-PC4CBVFU.js} +11 -10
  5. package/dist/editor-api.js +2 -2
  6. package/dist/index.d.ts +16 -8
  7. package/dist/index.js +1 -1
  8. package/dist/mcp.js +3 -3
  9. package/editor/assets/{MigrationsPane-DNIZD5v9.js → MigrationsPane-Gl4TRput.js} +1 -1
  10. package/editor/assets/{TemplatesPane-tI-X3c-0.js → TemplatesPane-B61rHJkg.js} +7 -7
  11. package/editor/assets/{cssMode-BHqRWMex.js → cssMode-bYk8sP3U.js} +1 -1
  12. package/editor/assets/{freemarker2-CfiPR_ij.js → freemarker2-BU4rgrfa.js} +1 -1
  13. package/editor/assets/{handlebars-0ARiDNDT.js → handlebars-CZr10U1G.js} +1 -1
  14. package/editor/assets/{html-Dp9xFEzA.js → html-BHiPgbpO.js} +1 -1
  15. package/editor/assets/{htmlMode-Di7FTYZK.js → htmlMode-CRDc1TY9.js} +1 -1
  16. package/editor/assets/{index-CMn2xISn.js → index-CHzAqQHp.js} +52 -52
  17. package/editor/assets/{javascript-CzNePMtj.js → javascript-BnirEF_x.js} +1 -1
  18. package/editor/assets/{jsonMode-CrPeML79.js → jsonMode-CGYlgPX5.js} +1 -1
  19. package/editor/assets/{liquid-Cfq-Fp7b.js → liquid-CE01l5IB.js} +1 -1
  20. package/editor/assets/{mdx-sMGe_OUc.js → mdx-WWDFUE9y.js} +1 -1
  21. package/editor/assets/{python-lEgAHzP3.js → python-336D9sQt.js} +1 -1
  22. package/editor/assets/{razor-BbvZMZxa.js → razor-D-m82ylU.js} +1 -1
  23. package/editor/assets/{tsMode-DMVtz8YS.js → tsMode-Dtinbfel.js} +1 -1
  24. package/editor/assets/{typescript-D-p3vFTx.js → typescript-C3y5Ddzl.js} +1 -1
  25. package/editor/assets/{xml-CmbnTHPn.js → xml-Dh77Kjd0.js} +1 -1
  26. package/editor/assets/{yaml-HnvHlCHy.js → yaml-4PsSVpRL.js} +1 -1
  27. package/editor/index.html +1 -1
  28. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  contentHash,
3
3
  contentTypeFor
4
- } from "./chunk-AH2MVN2O.js";
4
+ } from "./chunk-PC4CBVFU.js";
5
5
 
6
6
  // ../../adapters/azure-blob/src/container.ts
7
7
  var InMemoryBlobContainer = class {
@@ -7,7 +7,10 @@ function createSharpEncoder() {
7
7
  const metadata = await sharp(buffer).metadata();
8
8
  const sourceWidth = metadata.width ?? 0;
9
9
  const sourceHeight = metadata.height ?? 0;
10
- const widths = [.../* @__PURE__ */ new Set([...request.widths, sourceWidth])].filter((width) => width > 0 && width <= sourceWidth).sort((a, b) => a - b);
10
+ const fitted = [
11
+ ...new Set(request.widths.filter((width) => width > 0 && width <= sourceWidth))
12
+ ];
13
+ const widths = (fitted.length > 0 ? fitted : [sourceWidth]).sort((a, b) => a - b);
11
14
  const variants = [];
12
15
  for (const format of request.formats) {
13
16
  for (const width of widths) {
@@ -18,7 +18,7 @@ import {
18
18
  renderReferenceMarkdown,
19
19
  validateSite,
20
20
  workingStoreRoundTripDiagnostic
21
- } from "./chunk-AH2MVN2O.js";
21
+ } from "./chunk-PC4CBVFU.js";
22
22
 
23
23
  // ../editor-api/src/scaffold.ts
24
24
  var HOME_HTML = `<!doctype html>
@@ -1664,7 +1664,7 @@ function cacheControlFor(artifact) {
1664
1664
  }
1665
1665
 
1666
1666
  // ../engine/src/media/media.ts
1667
- var DEFAULT_WIDTHS = [400, 800, 1200, 1600];
1667
+ var DEFAULT_WIDTHS = [1600];
1668
1668
  var MIME = {
1669
1669
  avif: "image/avif",
1670
1670
  webp: "image/webp",
@@ -1707,9 +1707,11 @@ function buildImageOutput(assetPath, hash, source, variants, bytesFor) {
1707
1707
  byFormat.set(variant.format, list);
1708
1708
  }
1709
1709
  const srcsetOf = (format) => (byFormat.get(format) ?? []).map((entry) => `${entry.url} ${entry.width}w`).join(", ");
1710
- const sources = ["avif", "webp"].filter((format) => byFormat.has(format)).map((format) => ({ format, mime: MIME[format], srcset: srcsetOf(format) }));
1711
- const fallbackList = byFormat.get(fallbackFormat) ?? [];
1712
- const fallbackSrc = fallbackList[fallbackList.length - 1]?.url ?? `/${assetPath}`;
1710
+ const produced = [...byFormat.keys()];
1711
+ const imgFormat = byFormat.has(fallbackFormat) ? fallbackFormat : produced[0];
1712
+ const sources = ["avif", "webp"].filter((format) => format !== imgFormat && byFormat.has(format)).map((format) => ({ format, mime: MIME[format], srcset: srcsetOf(format) }));
1713
+ const imgList = imgFormat === void 0 ? [] : byFormat.get(imgFormat) ?? [];
1714
+ const fallbackSrc = imgList[imgList.length - 1]?.url ?? `/${assetPath}`;
1713
1715
  const info = {
1714
1716
  width: source.width,
1715
1717
  height: source.height,
@@ -1721,9 +1723,7 @@ function buildImageOutput(assetPath, hash, source, variants, bytesFor) {
1721
1723
  }
1722
1724
  var EMPTY_BYTES = new Uint8Array(0);
1723
1725
  async function processImage(input, assetPath, encoder) {
1724
- const fallbackFormat = fallbackFormatFor(assetPath);
1725
- const formats = [.../* @__PURE__ */ new Set(["avif", "webp", fallbackFormat])];
1726
- const encoded = await encoder.encode(input, { widths: DEFAULT_WIDTHS, formats });
1726
+ const encoded = await encoder.encode(input, { widths: DEFAULT_WIDTHS, formats: ["webp"] });
1727
1727
  const hash = contentHash(input);
1728
1728
  const bytesByVariant = /* @__PURE__ */ new Map();
1729
1729
  const variants = [];
@@ -1763,11 +1763,12 @@ function blur(blurDataUri) {
1763
1763
  return blurDataUri !== void 0 ? { blurDataUri } : {};
1764
1764
  }
1765
1765
  function buildPictureMarkup(info, extraAttrs) {
1766
+ const carried = extraAttrs.filter(([name]) => name !== "src" && name !== "width" && name !== "height").map(([name, value]) => ` ${name}="${escapeHtmlAttribute(value)}"`).join("");
1767
+ const img = `<img src="${escapeHtmlAttribute(info.fallbackSrc)}" width="${info.width}" height="${info.height}" loading="lazy" decoding="async"${carried}>`;
1768
+ if (info.sources.length === 0) return img;
1766
1769
  const sources = info.sources.map(
1767
1770
  (source) => `<source type="${source.mime}" srcset="${escapeHtmlAttribute(source.srcset)}">`
1768
1771
  ).join("");
1769
- const carried = extraAttrs.filter(([name]) => name !== "src" && name !== "width" && name !== "height").map(([name, value]) => ` ${name}="${escapeHtmlAttribute(value)}"`).join("");
1770
- const img = `<img src="${escapeHtmlAttribute(info.fallbackSrc)}" width="${info.width}" height="${info.height}" loading="lazy" decoding="async"${carried}>`;
1771
1772
  return `<picture>${sources}${img}</picture>`;
1772
1773
  }
1773
1774
 
@@ -2680,7 +2681,7 @@ var FIELD_TYPE_DOCS = [
2680
2681
  },
2681
2682
  {
2682
2683
  type: "image",
2683
- summary: "An image asset. On publish it runs the media pipeline (responsive <picture> variants). Inferred from <img src>.",
2684
+ summary: "An image asset. On publish it is re-encoded to an optimised WebP and the <img> is rewritten to point at it (lazy-loaded, fixed dimensions). Inferred from <img src>.",
2684
2685
  example: '<img src="{hero}" alt="{caption}">'
2685
2686
  },
2686
2687
  {
@@ -21,8 +21,8 @@ import {
21
21
  serveEditorAsset,
22
22
  templateSnapshotIntegrityDiagnostic,
23
23
  templateSuffixConflictDiagnostic
24
- } from "./chunk-2OWUWOGB.js";
25
- import "./chunk-AH2MVN2O.js";
24
+ } from "./chunk-APYNH4WV.js";
25
+ import "./chunk-PC4CBVFU.js";
26
26
  export {
27
27
  FileBrandingStore,
28
28
  InMemoryBrandingStore,
package/dist/index.d.ts CHANGED
@@ -552,15 +552,20 @@ declare function compilePage(source: ContentSource, itemPath: string, options?:
552
552
  declare function buildResolveContext(tree: DirNode): ResolveContext;
553
553
 
554
554
  /**
555
- * The media pipeline (DESIGN §8). Images are transformed into responsive,
556
- * modern-format variants and an `<img>` is expanded into an optimised `<picture>`.
557
- * The *policy* (which widths/formats, content-hashed names, picture markup) lives
558
- * here in the pure engine; the actual pixel encoding is a port (CLAUDE.md §3) so
559
- * the engine needs no native dependency and stays testable.
555
+ * The media pipeline (DESIGN §8). Each image is re-encoded once into a single, modern,
556
+ * content-hashed **WebP** and the author's `<img>` is rewritten to point at it (lazy-loaded,
557
+ * with intrinsic width/height so there is no layout shift). WebP has near-universal support
558
+ * and is much smaller than the original; one encode per image keeps publish fast (the earlier
559
+ * AVIF + multi-width + JPEG-fallback fan-out made adding images take minutes on a small
560
+ * instance). Display sizing is the site's CSS job, so we do not emit a responsive `srcset`.
561
+ * The *policy* (one WebP, the width cap, content-hashed names) lives here in the pure engine;
562
+ * the actual pixel encoding is a port (CLAUDE.md §3) so the engine needs no native dependency
563
+ * and stays testable.
560
564
  */
561
565
  type ImageFormat = 'avif' | 'webp' | 'jpeg' | 'png';
562
566
  interface EncodeRequest {
563
- /** Candidate widths; the encoder must not upscale and should include the native width. */
567
+ /** Candidate widths (a size cap): the encoder emits each that does not upscale, and falls
568
+ * back to the native width only when none fit. It does not otherwise add the native width. */
564
569
  readonly widths: readonly number[];
565
570
  readonly formats: readonly ImageFormat[];
566
571
  }
@@ -650,8 +655,11 @@ declare function processImageFromCache(assetPath: string, hash: string, cached:
650
655
  readonly info: ImageInfo;
651
656
  };
652
657
  /**
653
- * Build the `<picture>` markup for an image (DESIGN §8). `extraAttrs` carries the
654
- * resolved attributes from the original `<img>` (alt, class, …) onto the fallback.
658
+ * Build the markup for a processed image (DESIGN §8). `extraAttrs` carries the resolved
659
+ * attributes from the author's `<img>` (alt, class, …) onto the emitted `<img>`. With no
660
+ * alternate-format sources (the default, single-WebP policy) this is a plain optimised
661
+ * `<img>`; when {@link ImageInfo.sources} carries other formats it is wrapped in a
662
+ * `<picture>` with one `<source>` each.
655
663
  */
656
664
  declare function buildPictureMarkup(info: ImageInfo, extraAttrs: ReadonlyArray<readonly [string, string]>): string;
657
665
 
package/dist/index.js CHANGED
@@ -84,7 +84,7 @@ import {
84
84
  versionNumber,
85
85
  wholeValueToken,
86
86
  workingStoreRoundTripDiagnostic
87
- } from "./chunk-AH2MVN2O.js";
87
+ } from "./chunk-PC4CBVFU.js";
88
88
  export {
89
89
  CACHE_IMMUTABLE,
90
90
  CACHE_REVALIDATE,
package/dist/mcp.js CHANGED
@@ -3,8 +3,8 @@ import {
3
3
  MCP_TOOLS,
4
4
  callMcpTool,
5
5
  readMcpResource
6
- } from "./chunk-2OWUWOGB.js";
7
- import "./chunk-AH2MVN2O.js";
6
+ } from "./chunk-APYNH4WV.js";
7
+ import "./chunk-PC4CBVFU.js";
8
8
 
9
9
  // ../../hosts/host-mcp/src/http.ts
10
10
  import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
@@ -56,7 +56,7 @@ function createMcpServer(deps, identity) {
56
56
  }
57
57
 
58
58
  // ../../hosts/host-mcp/src/http.ts
59
- var DEFAULT_VERSION = true ? "0.1.36" : "0.0.0-workspace";
59
+ var DEFAULT_VERSION = true ? "0.1.37" : "0.0.0-workspace";
60
60
  async function handleMcpRequest(deps, request, opts) {
61
61
  const server = createMcpServer(deps, {
62
62
  name: opts?.name ?? "nanoesis",
@@ -1,4 +1,4 @@
1
- import{ai as Ke,aG as F,ag as Te,aa as g,W as w,T as e,h as n,ab as Qe,q as a,Q as z,aH as h,y as j,aC as o,R as _,au as v,r as Ve,J as U,x as Ye,i as ze,aN as Ue,aA as c,aI as J,aw as X,ax as _e,Y as Xe,at as Ze,ac as ea}from"./index-CMn2xISn.js";var aa=_('<p class="placeholder svelte-1lpfi31">Loading preview…</p>'),ta=_('<p class="error svelte-1lpfi31" role="alert"> </p>'),la=_("<option> </option>"),sa=_('<select class="svelte-1lpfi31"></select>'),ra=_('<li class="orphan svelte-1lpfi31"><div class="orphan-head svelte-1lpfi31"><code class="orphan-name svelte-1lpfi31"> </code> <span class="orphan-value svelte-1lpfi31"> </span></div> <div class="orphan-actions svelte-1lpfi31" role="radiogroup"><label class="svelte-1lpfi31"><input type="radio" value="drop"/> Drop</label> <label class="svelte-1lpfi31"><input type="radio" value="keep"/> Keep (unrendered)</label> <label class="svelte-1lpfi31"><input type="radio" value="rename"/> Rename to</label> <!></div></li>'),ia=_(`<section class="resolutions svelte-1lpfi31" aria-label="Orphan field resolutions"><h3 class="svelte-1lpfi31">Orphan fields</h3> <p class="hint svelte-1lpfi31">These fields exist in this item's JSON but the current template doesn't render them.
1
+ import{ai as Ke,aG as F,ag as Te,aa as g,W as w,T as e,h as n,ab as Qe,q as a,Q as z,aH as h,y as j,aC as o,R as _,au as v,r as Ve,J as U,x as Ye,i as ze,aN as Ue,aA as c,aI as J,aw as X,ax as _e,Y as Xe,at as Ze,ac as ea}from"./index-CHzAqQHp.js";var aa=_('<p class="placeholder svelte-1lpfi31">Loading preview…</p>'),ta=_('<p class="error svelte-1lpfi31" role="alert"> </p>'),la=_("<option> </option>"),sa=_('<select class="svelte-1lpfi31"></select>'),ra=_('<li class="orphan svelte-1lpfi31"><div class="orphan-head svelte-1lpfi31"><code class="orphan-name svelte-1lpfi31"> </code> <span class="orphan-value svelte-1lpfi31"> </span></div> <div class="orphan-actions svelte-1lpfi31" role="radiogroup"><label class="svelte-1lpfi31"><input type="radio" value="drop"/> Drop</label> <label class="svelte-1lpfi31"><input type="radio" value="keep"/> Keep (unrendered)</label> <label class="svelte-1lpfi31"><input type="radio" value="rename"/> Rename to</label> <!></div></li>'),ia=_(`<section class="resolutions svelte-1lpfi31" aria-label="Orphan field resolutions"><h3 class="svelte-1lpfi31">Orphan fields</h3> <p class="hint svelte-1lpfi31">These fields exist in this item's JSON but the current template doesn't render them.
2
2
  Pick what to do with each.</p> <ul class="orphans svelte-1lpfi31"></ul></section>`),na=_('<p class="error svelte-1lpfi31" role="alert"> </p>'),oa=_('<div class="diff svelte-1lpfi31"><section class="pane svelte-1lpfi31" aria-label="Previous version (left)"><header class="pane-head svelte-1lpfi31"><!></header> <pre class="source svelte-1lpfi31"> </pre></section> <section class="pane svelte-1lpfi31" aria-label="Current template (right)"><header class="pane-head svelte-1lpfi31"> </header> <pre class="source svelte-1lpfi31"> </pre></section></div> <!> <!> <div class="commit-bar svelte-1lpfi31"><button type="button" class="primary svelte-1lpfi31"> </button></div>',1),va=_('<header class="detail-head svelte-1lpfi31"><button type="button" class="back svelte-1lpfi31">← Back</button> <h2 class="svelte-1lpfi31"> </h2></header> <!>',1),pa=_('<p class="error svelte-1lpfi31" role="alert"> </p>'),ca=_('<p class="placeholder svelte-1lpfi31">Loading…</p>'),fa=_(`<div class="empty svelte-1lpfi31"><h3 class="svelte-1lpfi31">All caught up</h3> <p>Every content item's fields match its bound template. Migrations show up here when a
3
3
  destructive template edit (or a manual hand-edit) leaves an item with orphan fields.</p></div>`),ua=_('<li class="item"><button class="item-row svelte-1lpfi31" type="button"><span class="item-path svelte-1lpfi31"><code> </code></span> <span class="item-summary svelte-1lpfi31"><!> <!> <!></span> <span class="open-icon svelte-1lpfi31">→</span></button></li>'),da=_('<section class="group svelte-1lpfi31"><h3 class="group-title svelte-1lpfi31"><code class="svelte-1lpfi31"> </code> <span class="count svelte-1lpfi31"> </span></h3> <ul class="items svelte-1lpfi31"></ul></section>'),ma=_('<header class="list-head svelte-1lpfi31"><h2>Migrations</h2> <button type="button" class="svelte-1lpfi31"> </button></header> <!>',1),_a=_('<div class="migrations svelte-1lpfi31"><!> <!></div>');function ga(Re,Le){Ke(Le,!0);let M=F(null),u=F(null),Z=F(!1),C=F(null),r=F(Te({})),he=F(Te({})),N=F(!1),W=F(null);g.ensureLoaded();async function Ce(s){v(M,s,!0),v(r,{},!0),v(he,{},!0),v(u,null),v(C,null),v(Z,!0);try{v(u,await ea(s),!0);const f={};for(const l of e(u).orphans){const d=Ee(l.name,e(u).currentTemplateFields);f[l.name]=d?{rename:d}:"keep"}v(r,f,!0)}catch(f){v(C,f instanceof Error?f.message:String(f),!0)}finally{v(Z,!1)}}function ge(){v(M,null),v(u,null),v(C,null)}function Ee(s,f){const l=s.toLowerCase();for(const d of f)if(d.toLowerCase().startsWith(l)||d.toLowerCase().endsWith(l))return d;return null}async function Se(){if(!(e(M)===null||e(u)===null)){v(N,!0),v(W,null);try{const s={drop:Object.entries(e(r)).filter(([,l])=>l==="drop").map(([l])=>l),keep:Object.entries(e(r)).filter(([,l])=>l==="keep").map(([l])=>l),rename:Object.fromEntries(Object.entries(e(r)).filter(([,l])=>typeof l=="object"&&l!==null&&"rename"in l).map(([l,d])=>[l,d.rename])),fill:{...e(he)}},f=await ze(e(M),s);g.refresh().catch(()=>{}),ge()}catch(s){v(W,s instanceof Error?s.message:String(s),!0)}finally{v(N,!1)}}}function Pe(s){return typeof s=="string"?s:JSON.stringify(s)}const qe=Ue(()=>g.list===null?[]:Object.entries(g.list.byTemplate).map(([s,f])=>({template:s,items:[...f].sort((l,d)=>l.path.localeCompare(d.path))})));var be=_a(),xe=a(be);{var Ae=s=>{var f=va(),l=z(f),d=a(l),ee=o(d,2),ae=a(ee),te=o(l,2);{var le=i=>{var m=aa();n(i,m)},se=i=>{var m=ta(),k=a(m);h(()=>c(k,e(C))),n(i,m)},re=i=>{var m=oa(),k=z(m),R=a(k),O=a(R),I=a(O);{var $=p=>{var x=J();h(()=>c(x,`Before — ${e(u).left.template??""}`)),n(p,x)},D=p=>{var x=J("Before — no snapshot available");n(p,x)};w(I,p=>{e(u).left?p($):p(D,-1)})}var ie=o(O,2),ne=a(ie),oe=o(R,2),G=a(oe),E=a(G),b=o(G,2),H=a(b),S=o(k,2);{var K=p=>{var x=ia(),P=o(a(x),4);U(P,21,()=>e(u).orphans,q=>q.name,(q,t)=>{var y=ra(),V=a(y),ye=a(V),We=a(ye),Ie=o(ye,2),$e=a(Ie),we=o(V,2),ke=a(we),fe=a(ke),Fe=o(ke,2),ue=a(Fe),je=o(Fe,2),de=a(je),De=o(je,2);{var Ge=A=>{var T=sa();U(T,20,()=>e(u).currentTemplateFields,B=>B,(B,me)=>{var Y=la(),He=a(Y),Oe={};h(()=>{c(He,me),Oe!==(Oe=me)&&(Y.value=(Y.__value=me)??"")}),n(B,Y)});var Me;Xe(T),h(()=>{Me!==(Me=e(r)[e(t).name].rename)&&(T.value=(T.__value=e(r)[e(t).name].rename)??"",Ze(T,e(r)[e(t).name].rename))}),j("change",T,B=>v(r,{...e(r),[e(t).name]:{rename:B.currentTarget.value}},!0)),n(A,T)};w(De,A=>{typeof e(r)[e(t).name]=="object"&&e(r)[e(t).name]!==null&&"rename"in e(r)[e(t).name]&&A(Ge)})}h(A=>{c(We,e(t).name),c($e,A),X(we,"aria-label",`Resolution for ${e(t).name}`),X(fe,"name",`d-${e(t).name}`),_e(fe,e(r)[e(t).name]==="drop"),X(ue,"name",`d-${e(t).name}`),_e(ue,e(r)[e(t).name]==="keep"),X(de,"name",`d-${e(t).name}`),_e(de,typeof e(r)[e(t).name]=="object"&&e(r)[e(t).name]!==null&&"rename"in e(r)[e(t).name])},[()=>Pe(e(t).value)]),j("change",fe,()=>v(r,{...e(r),[e(t).name]:"drop"},!0)),j("change",ue,()=>v(r,{...e(r),[e(t).name]:"keep"},!0)),j("change",de,()=>v(r,{...e(r),[e(t).name]:{rename:e(u).currentTemplateFields[0]??""}},!0)),n(q,y)}),n(p,x)};w(S,p=>{e(u).orphans.length>0&&p(K)})}var Q=o(S,2);{var ve=p=>{var x=na(),P=a(x);h(()=>c(P,e(W))),n(p,x)};w(Q,p=>{e(W)&&p(ve)})}var pe=o(Q,2),L=a(pe),ce=a(L);h(()=>{var p;c(ne,((p=e(u).left)==null?void 0:p.html)??"(no snapshot covers this item)"),c(E,`After — ${e(u).right.template??""}`),c(H,e(u).right.html),L.disabled=e(N)||e(u).orphans.length===0,c(ce,e(N)?"Migrating…":"Migrate item")}),j("click",L,Se),n(i,m)};w(te,i=>{e(Z)?i(le):e(C)?i(se,1):e(u)&&i(re,2)})}h(()=>c(ae,e(M))),j("click",d,ge),n(s,f)},Be=s=>{var f=ma(),l=z(f),d=o(a(l),2),ee=a(d),ae=o(l,2);{var te=i=>{var m=pa(),k=a(m);h(()=>c(k,g.error)),n(i,m)},le=i=>{var m=ca();n(i,m)},se=i=>{var m=fa();n(i,m)},re=i=>{var m=Ve(),k=z(m);U(k,17,()=>e(qe),R=>R.template,(R,O)=>{var I=da(),$=a(I),D=a($),ie=a(D),ne=o(D,2),oe=a(ne),G=o($,2);U(G,21,()=>e(O).items,E=>E.path,(E,b)=>{var H=ua(),S=a(H),K=a(S),Q=a(K),ve=a(Q),pe=o(K,2),L=a(pe);{var ce=t=>{var y=J();h(V=>c(y,`${e(b).orphanFields.length??""} orphan field${e(b).orphanFields.length===1?"":"s"}:
4
4
  ${V??""}`),[()=>e(b).orphanFields.join(", ")]),n(t,y)};w(L,t=>{e(b).orphanFields.length>0&&t(ce)})}var p=o(L,2);{var x=t=>{var y=J();h(()=>c(y,`· ${e(b).missingRequiredFields.length??""} missing required`)),n(t,y)};w(p,t=>{e(b).missingRequiredFields.length>0&&t(x)})}var P=o(p,2);{var q=t=>{var y=J();h(()=>c(y,`· best-fit: ${e(b).bestFitSnapshot??""}`)),n(t,y)};w(P,t=>{e(b).bestFitSnapshot&&t(q)})}h(()=>c(ve,e(b).path)),j("click",S,()=>Ce(e(b).path)),n(E,H)}),h(()=>{c(ie,e(O).template),c(oe,`${e(O).items.length??""} item${e(O).items.length===1?"":"s"}`)}),n(R,I)}),n(i,m)};w(ae,i=>{g.error?i(te):g.loading&&g.list===null?i(le,1):g.count===0?i(se,2):i(re,-1)})}h(()=>{d.disabled=g.loading,c(ee,g.loading?"Refreshing…":"Refresh")}),j("click",d,()=>g.refresh()),n(s,f)};w(xe,s=>{e(M)!==null?s(Ae):s(Be,-1)})}var Je=o(xe,2);{var Ne=s=>{};w(Je,s=>{!e(M)&&g.list===null&&s(Ne)})}n(Re,be),Qe()}Ye(["click","change"]);export{ga as default};