@arcgis/lumina-compiler 4.34.0-next.68 → 4.34.0-next.69

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/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { externalizeDependencies as ls, path as u, toSystemPathSeparators as te, retrievePackageJson as J, fetchPackageLocation as He, asyncRetrievePackageJson as Ue, existsAsync as z, findPath as ds, toPosixPathSeparators as Fe, isPosix as Ri, getCwd as Mi } from "@arcgis/components-build-utils";
1
+ import { externalizeDependencies as ls, path as u, toSystemPathSeparators as te, retrievePackageJson as R, fetchPackageLocation as He, asyncRetrievePackageJson as Ue, existsAsync as z, findPath as ds, toPosixPathSeparators as Fe, isPosix as Ri, getCwd as Mi } from "@arcgis/components-build-utils";
2
2
  import ps from "vite-plugin-dts";
3
3
  import o from "typescript";
4
4
  import { f as w, l as T } from "./logger-KpGU2b3R.js";
5
5
  import { getMemberName as Q, apiMemberToSynthesizedComments as X, globalPackageIdentifier as Oi, setApiDocFromJsDoc as fe, ApiExtractor as us, hasIgnoredModifier as ms, symbolToDocs as Wt, setDefaultFromInitializer as Bt, multipleJsDocTags as fs, findDecorator as _t, isApiMethod as gs, isApiProperty as ys } from "@arcgis/api-extractor";
6
6
  import { isNotUndefined as j } from "@arcgis/toolkit/predicate";
7
- import { readdir as ze, readFile as O, rm as hs, mkdir as Z, cp as vs, writeFile as D, copyFile as Ss } from "node:fs/promises";
7
+ import { readdir as ze, readFile as J, rm as hs, mkdir as Z, cp as vs, writeFile as D, copyFile as Ss } from "node:fs/promises";
8
8
  import { mappedFind as he } from "@arcgis/toolkit/array";
9
9
  import { camelToKebab as Tt, kebabToPascal as ws, uncapitalize as mt, getPreamble as bs, capitalize as Ts } from "@arcgis/toolkit/string";
10
10
  import { lazyMetaSubItemJoiner as Es, lazyMetaItemJoiner as et, lazyMetaGroupJoiner as Cs, propertyFlagAttribute as Ht, propertyFlagReflect as $s, propertyFlagBoolean as xs, propertyFlagNumber as Ps, propertyFlagState as ks, propertyFlagReadOnly as Is, propertyFlagNoAccessor as As } from "@arcgis/lumina/config";
@@ -2036,7 +2036,7 @@ function ro(e, t) {
2036
2036
  }
2037
2037
  const s = e.split("/dist/");
2038
2038
  if (s.length > 1) {
2039
- const a = s.slice(0, -1).join("/"), l = J(a).name, d = s.at(-1);
2039
+ const a = s.slice(0, -1).join("/"), l = R(a).name, d = s.at(-1);
2040
2040
  return { packageName: l, moduleName: d };
2041
2041
  }
2042
2042
  return {
@@ -2099,7 +2099,7 @@ function po(e) {
2099
2099
  }
2100
2100
  return t.length === 0 ? void 0 : t;
2101
2101
  }
2102
- const uo = /@prop\s+(?<name>--[\w-]+)\s*:(?<description>[^@/]+)/gu, mo = /\n\s+\*? ?/gu, fo = ["keyed", "ref", "repeat", "live"], le = "staticHtml", Y = "staticSvg", de = "html", oe = "svg", an = Symbol("maybe HTML namespace or maybe SVG"), cn = "css", ln = "mathml", dn = [cn, de, ln, le, Y, oe], go = new Set(dn), yo = ["safeClassMap", "safeStyleMap", "deferLoad"], ho = "nothing", vo = [...fo, ...dn, ...yo, ho], Je = (e) => o.isJsxElement(e) || o.isJsxSelfClosingElement(e) || o.isJsxFragment(e), ae = {
2102
+ const uo = /@prop\s+(?<name>--[\w-]+)\s*:(?<description>[^@/]+)/gu, mo = /\n\s+\*? ?/gu, fo = ["keyed", "ref", "repeat", "live"], le = "staticHtml", Y = "staticSvg", de = "html", oe = "svg", an = Symbol("maybe HTML namespace or maybe SVG"), cn = "css", ln = "mathml", dn = [cn, de, ln, le, Y, oe], go = new Set(dn), yo = ["safeClassMap", "safeStyleMap", "deferLoad", "stabilizedRef"], ho = "nothing", vo = [...fo, ...dn, ...yo, ho], Je = (e) => o.isJsxElement(e) || o.isJsxSelfClosingElement(e) || o.isJsxFragment(e), ae = {
2103
2103
  [de]: ["lit", "lit/html.js", "lit-html"],
2104
2104
  /**
2105
2105
  * Sadly, Lit called these "html" and "svg", rather than "staticHtml" and
@@ -2115,6 +2115,7 @@ const uo = /@prop\s+(?<name>--[\w-]+)\s*:(?<description>[^@/]+)/gu, mo = /\n\s+\
2115
2115
  safeClassMap: ["@arcgis/lumina"],
2116
2116
  safeStyleMap: ["@arcgis/lumina"],
2117
2117
  deferLoad: ["@arcgis/lumina"],
2118
+ stabilizedRef: ["@arcgis/lumina"],
2118
2119
  keyed: ["lit/directives/keyed.js", "lit-html/directives/keyed.js"],
2119
2120
  live: ["lit/directives/live.js", "lit-html/directives/live.js"],
2120
2121
  repeat: ["lit/directives/repeat.js", "lit-html/directives/repeat.js"],
@@ -2878,39 +2879,39 @@ function hn(e) {
2878
2879
  }
2879
2880
  function Vo(e, t, i) {
2880
2881
  const n = Xo(i, e);
2881
- M(e, n, t);
2882
+ O(e, n, t);
2882
2883
  for (const s of e.members) {
2883
2884
  if (s.kind === "field")
2884
2885
  Le(s.type, i, t);
2885
2886
  else {
2886
2887
  if (Le(s.return?.type, i, t), s.parameters !== void 0)
2887
2888
  for (const r of s.parameters)
2888
- Le(r.type, i, t), M(r, n, t);
2889
- s.return !== void 0 && M(s.return, n, t);
2889
+ Le(r.type, i, t), O(r, n, t);
2890
+ s.return !== void 0 && O(s.return, n, t);
2890
2891
  }
2891
- M(s, n, t);
2892
+ O(s, n, t);
2892
2893
  }
2893
2894
  if (e.events !== void 0)
2894
2895
  for (const s of e.events)
2895
- Le(s.type, i, t), M(s, n, t);
2896
+ Le(s.type, i, t), O(s, n, t);
2896
2897
  if (e.attributes !== void 0)
2897
2898
  for (const s of e.attributes)
2898
- M(s, n, t);
2899
+ O(s, n, t);
2899
2900
  if (e.slots !== void 0)
2900
2901
  for (const s of e.slots)
2901
- M(s, n, t);
2902
+ O(s, n, t);
2902
2903
  if (e.cssProperties !== void 0)
2903
2904
  for (const s of e.cssProperties)
2904
- M(s, n, t);
2905
+ O(s, n, t);
2905
2906
  if (e.cssParts !== void 0)
2906
2907
  for (const s of e.cssParts)
2907
- M(s, n, t);
2908
+ O(s, n, t);
2908
2909
  if (e.cssStates !== void 0)
2909
2910
  for (const s of e.cssStates)
2910
- M(s, n, t);
2911
+ O(s, n, t);
2911
2912
  if (e.demos !== void 0)
2912
2913
  for (const s of e.demos)
2913
- M(s, n, t);
2914
+ O(s, n, t);
2914
2915
  }
2915
2916
  function Le(e, t, i) {
2916
2917
  e !== void 0 && (e.references?.reduce(
@@ -2921,7 +2922,7 @@ function Le(e, t, i) {
2921
2922
  (n, s) => At(t.get(s)) ?? n
2922
2923
  ), e.values?.forEach(Zo, t));
2923
2924
  }
2924
- function M(e, t, i) {
2925
+ function O(e, t, i) {
2925
2926
  if (e.description && (e.description = e.description.replaceAll(rt, t).replaceAll(i.alternativeDocumentationUrl, i.normalizedDocumentationUrl)), e.docsTags)
2926
2927
  for (const n of e.docsTags)
2927
2928
  n.text && (n.text = n.text.replaceAll(rt, t).replaceAll(i.alternativeDocumentationUrl, i.normalizedDocumentationUrl));
@@ -2981,7 +2982,7 @@ async function na(e, t) {
2981
2982
  } else
2982
2983
  return await Promise.all(
2983
2984
  t.map(async (i) => {
2984
- const n = await O(i, "utf8");
2985
+ const n = await J(i, "utf8");
2985
2986
  return e.getSourceFile(i, n);
2986
2987
  })
2987
2988
  );
@@ -3010,7 +3011,7 @@ function Sn() {
3010
3011
  return vt;
3011
3012
  }
3012
3013
  async function ra(e) {
3013
- const t = J(e), i = t.dependencies ?? {}, n = t.peerDependencies ?? {}, r = (await Promise.all(
3014
+ const t = R(e), i = t.dependencies ?? {}, n = t.peerDependencies ?? {}, r = (await Promise.all(
3014
3015
  [...Object.keys(i), ...Object.keys(n)].filter((a) => !oa.has(a)).flatMap(async (a) => await wn(a, e))
3015
3016
  )).filter(j);
3016
3017
  return ht ??= r, vt = Object.fromEntries(r.flatMap((a) => Object.entries(a.components))), r;
@@ -3055,7 +3056,7 @@ let ht, vt, we;
3055
3056
  async function wn(e, t) {
3056
3057
  const i = await He(e, t), n = await Ue(i), s = "exports" in n, r = ua.bind(void 0, s), a = "@stencil/core" in (n.dependencies ?? {}) || "@stencil/core" in (n.devDependencies ?? {}), c = u.join(i, "dist/esm/loader.js");
3057
3058
  if (a ? await z(c) : !1) {
3058
- const g = await O(c, "utf8"), y = aa(g, "bootstrapLazy("), v = g.indexOf(", options", y), h = g.slice(y, v), S = h.startsWith('JSON.parse("') ? h.slice(12, -2).replaceAll('\\"', '"') : h;
3059
+ const g = await J(c, "utf8"), y = aa(g, "bootstrapLazy("), v = g.indexOf(", options", y), h = g.slice(y, v), S = h.startsWith('JSON.parse("') ? h.slice(12, -2).replaceAll('\\"', '"') : h;
3059
3060
  try {
3060
3061
  const E = JSON.parse(S), P = da(E, { packageName: e, getImportPath: r });
3061
3062
  return { packageName: e, type: "stencil", components: P };
@@ -3066,7 +3067,7 @@ Error: ${String(E)}`);
3066
3067
  }
3067
3068
  const d = ui(n.customElements);
3068
3069
  if (d != null) {
3069
- const g = u.join(i, d), y = JSON.parse(await O(g, "utf-8")), v = ca(y), h = bn(y, {
3070
+ const g = u.join(i, d), y = JSON.parse(await J(g, "utf-8")), v = ca(y), h = bn(y, {
3070
3071
  packageName: e,
3071
3072
  getImportPath: r
3072
3073
  });
@@ -3074,7 +3075,7 @@ Error: ${String(E)}`);
3074
3075
  }
3075
3076
  const p = ui(n["web-types"]);
3076
3077
  if (p != null) {
3077
- const g = u.join(i, p), y = JSON.parse(await O(g, "utf-8")), v = la(y, {
3078
+ const g = u.join(i, p), y = JSON.parse(await J(g, "utf-8")), v = la(y, {
3078
3079
  packageName: e,
3079
3080
  getImportPath: r,
3080
3081
  packageRoot: i
@@ -3155,7 +3156,7 @@ const ca = (e) => e.compiler?.name === It, la = (e, t) => Object.fromEntries(
3155
3156
  ];
3156
3157
  })
3157
3158
  ), ua = (e, t) => e ? `components/${t}` : `dist/components/${t}.js`, ma = (e) => e.startsWith("/") ? e : `/${e}`, Lt = (e, t) => `${e}@fs${ma(t)}`;
3158
- function Ge(e = J(), t = !1, i = e.name === "@esri/calcite-components") {
3159
+ function Ge(e = R(), t = !1, i = e.name === "@esri/calcite-components") {
3159
3160
  const n = e.version.includes("next"), s = e.name === "@esri/calcite-components";
3160
3161
  if (s && n)
3161
3162
  return `https://cdn.jsdelivr.net/npm/@esri/calcite-components@${e.version}/dist/calcite/`;
@@ -3317,14 +3318,17 @@ const ya = /* @__PURE__ */ new Set([
3317
3318
  });
3318
3319
  },
3319
3320
  ref(e, t) {
3320
- e.neededImports.add("ref");
3321
- const i = e.importRenames.ref;
3322
3321
  if (t === void 0 || !o.isJsxExpression(t) || t.expression === void 0)
3323
3322
  throw new Error(
3324
3323
  `ref prop value must be an expression. Found ${String(t?.getText(e.sourceFile))}`
3325
3324
  );
3325
+ const i = t.expression, n = e.compiler.options.experimental?.stabilizeRef && // ref={()=>...}
3326
+ (o.isArrowFunction(i) || // ref={this.a.bind(this, args)}
3327
+ o.isCallExpression(i) && o.isPropertyAccessExpression(i.expression) && i.expression.name.escapedText === "bind");
3328
+ e.neededImports.add(n ? "stabilizedRef" : "ref");
3329
+ const s = n ? e.importRenames.stabilizedRef : e.importRenames.ref;
3326
3330
  return [
3327
- o.factory.createCallExpression(o.factory.createIdentifier(i), void 0, [
3331
+ o.factory.createCallExpression(o.factory.createIdentifier(s), void 0, [
3328
3332
  q(e, void 0, t.expression)
3329
3333
  ])
3330
3334
  ];
@@ -3823,13 +3827,13 @@ Found ${L.getText(e.sourceFile)}`
3823
3827
  const N = va[F](e, A?.initializer ?? b, C, c);
3824
3828
  if (N.length === 0)
3825
3829
  return [];
3826
- const R = e.compiler.shouldMinifyJsx ? [" "] : Ia(Tn($, e));
3827
- return F === "key" ? (m = typeof N[0] == "object" && !Pn($, e) ? N[0] : void 0, R.some(xa) ? R : []) : F === "directives" || F === "ref" || C === "deferLoad" ? (g ||= F === "deferLoad", f.push(
3828
- ...R,
3830
+ const M = e.compiler.shouldMinifyJsx ? [" "] : Ia(Tn($, e));
3831
+ return F === "key" ? (m = typeof N[0] == "object" && !Pn($, e) ? N[0] : void 0, M.some(xa) ? M : []) : F === "directives" || F === "ref" || C === "deferLoad" ? (g ||= F === "deferLoad", f.push(
3832
+ ...M,
3829
3833
  ...N.flatMap(
3830
3834
  (U, K) => typeof U == "string" || K === 0 || typeof N[K - 1] == "string" ? U : [" ", U]
3831
3835
  )
3832
- ), []) : [...R, ...N];
3836
+ ), []) : [...M, ...N];
3833
3837
  });
3834
3838
  if (p !== void 0 && p.size > 0 && e.compiler.logLintError(
3835
3839
  "mustIncludeAllRequiredProperties",
@@ -4012,7 +4016,7 @@ function Ha(e, t) {
4012
4016
  const g = Dn(d, s);
4013
4017
  e.existingLitImports.add(g), e.importRenames[g] = l.name?.text ?? g;
4014
4018
  }
4015
- } else (l.name.text === "h" || l.name.text === "createElement") && (e.hasNonLuminaJsxImport = !0);
4019
+ } else (l.name.text === "h" || l.name.text === "createElement") && R().name !== "@arcgis/lumina" && (e.hasNonLuminaJsxImport = !0);
4016
4020
  const m = d.startsWith(d[0].toUpperCase()), f = u.isAbsolute(s);
4017
4021
  r && !l.isTypeOnly && m && f && e.importedFunctionComponentsFromModules.add(s);
4018
4022
  }), t;
@@ -4482,7 +4486,7 @@ function uc(e, t, i, n, s) {
4482
4486
  }
4483
4487
  return o.isPropertyDeclaration(t) || o.isAccessor(t) ? cc(e, t, i, n, s) : t;
4484
4488
  }
4485
- const mc = (e) => o.isCallExpression(e.expression) && o.isIdentifier(e.expression.expression) && e.expression.expression.text === "method", St = "@arcgis/core", lt = J(), $e = St in (lt.dependencies ?? {}) || St in (lt.peerDependencies ?? {}) || // Does not depend on `@arcgis/core` to avoid cycle, but uses core in Lumina tests
4489
+ const mc = (e) => o.isCallExpression(e.expression) && o.isIdentifier(e.expression.expression) && e.expression.expression.text === "method", St = "@arcgis/core", lt = R(), $e = St in (lt.dependencies ?? {}) || St in (lt.peerDependencies ?? {}) || // Does not depend on `@arcgis/core` to avoid cycle, but uses core in Lumina tests
4486
4490
  lt.name === "@arcgis/lumina";
4487
4491
  async function fc(e, t) {
4488
4492
  if (!$e)
@@ -4710,7 +4714,7 @@ async function Tc(e, t, i) {
4710
4714
  s.map(async (d, p) => {
4711
4715
  const f = p === 0 ? d : u.join(r, d), g = u.join(e.dir.root, f), y = u.join(n, f);
4712
4716
  await Z(u.dirname(y), { recursive: !0 });
4713
- const v = await O(g, "utf-8"), h = ce(u.dirname(f), `build/${i}`), S = `${l}<script type="module" src="${h}"><\/script>
4717
+ const v = await J(g, "utf-8"), h = ce(u.dirname(f), `build/${i}`), S = `${l}<script type="module" src="${h}"><\/script>
4714
4718
  `;
4715
4719
  let E = v.indexOf("<style>");
4716
4720
  if (E === -1 && (E = v.indexOf("</head>")), E === -1)
@@ -4760,7 +4764,7 @@ function Ec(e) {
4760
4764
  async writeBundle() {
4761
4765
  if (e.isInStorybook)
4762
4766
  return;
4763
- const c = $e && J().name !== "@arcgis/embeddable-components", l = Date.now(), d = Array.isArray(n.entryPoints) ? n.entryPoints.map((f) => typeof f == "string" ? { in: f, out: "" } : f) : typeof n.entryPoints == "object" ? Object.entries(n.entryPoints).map(([f, g]) => ({ in: g, out: f })) : [], p = await Cc(e, a, n, d, c);
4767
+ const c = $e && R().name !== "@arcgis/embeddable-components", l = Date.now(), d = Array.isArray(n.entryPoints) ? n.entryPoints.map((f) => typeof f == "string" ? { in: f, out: "" } : f) : typeof n.entryPoints == "object" ? Object.entries(n.entryPoints).map(([f, g]) => ({ in: g, out: f })) : [], p = await Cc(e, a, n, d, c);
4764
4768
  await $c(
4765
4769
  p,
4766
4770
  e,
@@ -4916,7 +4920,7 @@ function Pc(e, t) {
4916
4920
  // minified to a variable name that is already used inside the closure).
4917
4921
  `)($arcgis,${e}`
4918
4922
  ].join(""), n) {
4919
- const r = J().name;
4923
+ const r = R().name;
4920
4924
  i += `,"${r}/",".js"`;
4921
4925
  }
4922
4926
  return i += ")", i;
@@ -4926,15 +4930,15 @@ function Wn(e, t) {
4926
4930
  let c = 0;
4927
4931
  const l = e.code.matchAll(kc);
4928
4932
  for (const b of l) {
4929
- const [C, A, F, N, R] = b, U = R.startsWith(_e);
4933
+ const [C, A, F, N, M] = b, U = M.startsWith(_e);
4930
4934
  if (c !== 0 && c !== b.index) {
4931
4935
  const K = e.code.slice(c, b.index);
4932
4936
  s.push(K), a.push([c, K.length, 0, ""]);
4933
4937
  }
4934
4938
  if (c = b.index + C.length, U)
4935
- a.push([b.index, C.length, 0, ""]), n.push(`"${_n(R.slice(_e.length))}"`), i.push(A?.replaceAll(" as ", ":") ?? F ?? N ?? "");
4939
+ a.push([b.index, C.length, 0, ""]), n.push(`"${_n(M.slice(_e.length))}"`), i.push(A?.replaceAll(" as ", ":") ?? F ?? N ?? "");
4936
4940
  else {
4937
- const K = Bn(R, t), G = K?.isAsync === !0;
4941
+ const K = Bn(M, t), G = K?.isAsync === !0;
4938
4942
  if (A !== void 0) {
4939
4943
  const ke = [];
4940
4944
  for (const Ye of A.slice(1, -1).split(",")) {
@@ -4968,12 +4972,12 @@ ${K.code}`
4968
4972
  let p = e.code.slice(0, c);
4969
4973
  for (let b = a.length - 1; b >= 0; b--) {
4970
4974
  const [C, A, F, N] = a[b];
4971
- let R = A, U = "";
4975
+ let M = A, U = "";
4972
4976
  if (A === 0) {
4973
4977
  const G = d();
4974
- n.push(G), U = ` ${G} from`, N !== "" ? (R = F + 4, i.push(N)) : i.push("");
4978
+ n.push(G), U = ` ${G} from`, N !== "" ? (M = F + 4, i.push(N)) : i.push("");
4975
4979
  }
4976
- p = p.slice(0, C) + U + p.slice(C + R);
4980
+ p = p.slice(0, C) + U + p.slice(C + M);
4977
4981
  }
4978
4982
  const m = Ic.exec(e.code), f = m?.index ?? e.code.length;
4979
4983
  let g = "";
@@ -5270,7 +5274,7 @@ function _c(e) {
5270
5274
  if (e.isInPuppeteerTestBackEnd)
5271
5275
  return;
5272
5276
  e.isInTest && y.watcher.on("change", (h) => {
5273
- p(h, async () => await O(h, "utf8")).catch(
5277
+ p(h, async () => await J(h, "utf8")).catch(
5274
5278
  (S) => T.warn(l, h, String(S))
5275
5279
  );
5276
5280
  }), y.watcher.on("add", v), y.watcher.on("unlink", v), y.watcher.on(
@@ -5352,7 +5356,7 @@ function ye(e, t, i = Mt) {
5352
5356
  const a = Xn(r), c = Zn(e.dir, Qn(a)), l = Uc(e.viteConfig.base, c, e.dir.distCdn);
5353
5357
  e.server.middlewares.use(l, (d, p, m) => {
5354
5358
  const f = zc(d.url), g = a.type === "directory" ? u.resolve(a.source, f.slice(1)) : a.source, y = u.join(c, f), v = i.find((h) => h.match(y, e));
5355
- return (typeof g == "function" ? Promise.resolve(g()) : O(g)).then((h) => {
5359
+ return (typeof g == "function" ? Promise.resolve(g()) : J(g)).then((h) => {
5356
5360
  const S = (typeof g == "function" ? void 0 : v?.transform(h.toString("utf8"), y, e)) ?? h;
5357
5361
  p.setHeader("Cache-Control", "max-age=31536000, immutable"), p.setHeader("Content-Type", Ds.lookup(f) || "application/octet-stream"), p.write(S), p.end();
5358
5362
  }).catch((h) => {
@@ -5404,7 +5408,7 @@ async function Pi(e, t, i, n) {
5404
5408
  if (s === void 0)
5405
5409
  await Ss(e, t);
5406
5410
  else {
5407
- const r = await O(e, "utf8"), a = s.transform(r, t, n);
5411
+ const r = await J(e, "utf8"), a = s.transform(r, t, n);
5408
5412
  await D(t, a);
5409
5413
  }
5410
5414
  }
@@ -5719,7 +5723,7 @@ const ts = (e, t) => ({
5719
5723
  base: t.base ?? e.options.assets?.defaultPath ?? Ge()
5720
5724
  })
5721
5725
  });
5722
- function nl(e = J()) {
5726
+ function nl(e = R()) {
5723
5727
  const t = e.version ?? "0.0.1";
5724
5728
  return bs(t);
5725
5729
  }
@@ -5762,8 +5766,8 @@ const me = {
5762
5766
  apiJson: "docs/api.json",
5763
5767
  stencilLikeDocsJson: "docs/docs.json"
5764
5768
  };
5765
- async function ns(e, t, i, n, s = J()) {
5766
- const r = rl(e, i, n, s), a = u.join(t, "lumina.ts"), l = await z(a) ? await O(a, "utf8") : "";
5769
+ async function ns(e, t, i, n, s = R()) {
5770
+ const r = rl(e, i, n, s), a = u.join(t, "lumina.ts"), l = await z(a) ? await J(a, "utf8") : "";
5767
5771
  if (l.trim().replaceAll(`\r
5768
5772
  `, `
5769
5773
  `) === r.trim())
@@ -5783,7 +5787,7 @@ ${l}`
5783
5787
  );
5784
5788
  return Ki(a, r), !0;
5785
5789
  }
5786
- function rl(e, t, i, n = J()) {
5790
+ function rl(e, t, i, n = R()) {
5787
5791
  "@arcgis/components-controllers" in (n.dependencies ?? {}) && T.warn(
5788
5792
  "@arcgis/components-controllers",
5789
5793
  "Deprecation warning: the @arcgis/components-controllers package was merged into @arcgis/lumina. Please remove it from your package.json and rewrite code to import from @arcgis/lumina/controllers and @arcgis/lumina/controllers/accessor instead."
@@ -5913,7 +5917,7 @@ async function pl(e, t) {
5913
5917
  const i = /* @__PURE__ */ new Map();
5914
5918
  await Promise.all(
5915
5919
  e.map(async (s) => {
5916
- const r = await O(s, "utf-8"), a = r.match(ul)?.[1];
5920
+ const r = await J(s, "utf-8"), a = r.match(ul)?.[1];
5917
5921
  if (a === void 0) {
5918
5922
  T.warn(
5919
5923
  "@arcgis/lumina:parseStoryFiles",
@@ -6302,7 +6306,7 @@ const bt = "@arcgis/lumina:updatePackageJson", Tl = (e) => ({
6302
6306
  }
6303
6307
  });
6304
6308
  async function El(e) {
6305
- const t = u.join(e.dir.root, "package.json"), i = JSON.parse(await O(t, "utf-8")), n = Cl(i, e);
6309
+ const t = u.join(e.dir.root, "package.json"), i = JSON.parse(await J(t, "utf-8")), n = Cl(i, e);
6306
6310
  n && Ki(t, JSON.stringify(n, null, 2));
6307
6311
  }
6308
6312
  function Cl(e, t) {
@@ -6530,7 +6534,7 @@ ${t.join(`
6530
6534
  )
6531
6535
  );
6532
6536
  function Ol(e, t) {
6533
- const i = Jl(e), n = os(e), s = as(e), r = J();
6537
+ const i = Jl(e), n = os(e), s = as(e), r = R();
6534
6538
  return {
6535
6539
  $schema: "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
6536
6540
  name: r.name,
@@ -6865,7 +6869,7 @@ import { makeReactWrapperFactory, getReactWrapperOptions } from "@arcgis/lumina"
6865
6869
  const createWrapper = /*@__PURE__*/ makeReactWrapperFactory(React, createComponent) as typeof createComponent;
6866
6870
  `;
6867
6871
  async function dd(e, t) {
6868
- const { name: i } = J(), n = [];
6872
+ const { name: i } = R(), n = [];
6869
6873
  for (const a of e.apiJson.modules)
6870
6874
  for (const c of a.declarations)
6871
6875
  "customElement" in c && n.push(pd(c));
@@ -65,7 +65,7 @@ export declare const mathMlTag = "mathml";
65
65
  declare const litTagsArray: readonly ["css", "html", "mathml", "staticHtml", "staticSvg", "svg"];
66
66
  export declare const litTags: Set<"html" | "css" | "mathml" | "staticHtml" | "staticSvg" | "svg">;
67
67
  export type LitTag = (typeof litTagsArray)[number];
68
- export declare const jsxImportNames: readonly ["keyed", "ref", "repeat", "live", "css", "html", "mathml", "staticHtml", "staticSvg", "svg", "safeClassMap", "safeStyleMap", "deferLoad", "nothing"];
68
+ export declare const jsxImportNames: readonly ["keyed", "ref", "repeat", "live", "css", "html", "mathml", "staticHtml", "staticSvg", "svg", "safeClassMap", "safeStyleMap", "deferLoad", "stabilizedRef", "nothing"];
69
69
  export type JsxImportName = (typeof jsxImportNames)[number];
70
70
  export type JsxHost = ts.JsxElement | ts.JsxFragment | ts.JsxSelfClosingElement;
71
71
  export declare const isJsxHost: (node: ts.Node) => node is JsxHost;
@@ -64,6 +64,9 @@ export type LuminaOptions = {
64
64
  */
65
65
  readonly assets?: AssetHandlingOptions;
66
66
  readonly linting?: LintingOptions;
67
+ readonly experimental?: {
68
+ readonly stabilizeRef?: boolean;
69
+ };
67
70
  };
68
71
  export type BuildOptions = {
69
72
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/lumina-compiler",
3
- "version": "4.34.0-next.68",
3
+ "version": "4.34.0-next.69",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -18,9 +18,9 @@
18
18
  ],
19
19
  "license": "SEE LICENSE IN LICENSE.md",
20
20
  "dependencies": {
21
- "@arcgis/api-extractor": "4.34.0-next.68",
22
- "@arcgis/components-build-utils": "4.34.0-next.68",
23
- "@arcgis/toolkit": "4.34.0-next.68",
21
+ "@arcgis/api-extractor": "4.34.0-next.69",
22
+ "@arcgis/components-build-utils": "4.34.0-next.69",
23
+ "@arcgis/toolkit": "4.34.0-next.69",
24
24
  "chalk": "^5.4.1",
25
25
  "esbuild": "^0.25.5",
26
26
  "glob": "^11.0.3",
@@ -31,7 +31,7 @@
31
31
  "vitest-fail-on-console": "^0.7.1"
32
32
  },
33
33
  "peerDependencies": {
34
- "@arcgis/lumina": "~4.34.0-next.68",
34
+ "@arcgis/lumina": "~4.34.0-next.69",
35
35
  "lit": "^3.3.0",
36
36
  "typescript": "~5.8.3",
37
37
  "vite": "^7.0.0",