xmlui 0.9.8 → 0.9.9

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.
@@ -12,7 +12,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
12
12
  var _executor, _DeferredPromise_instances, decorate_fn, _a2;
13
13
  import { delay as delay$1, HttpResponse, http } from "msw";
14
14
  import { isArray, isObject as isObject$1, mapValues } from "lodash-es";
15
- import { r as runEventHandlerCode, g as getDate, d as delay, m as miscellaneousUtils, a as dateFunctions, o as orderBy, T as ThrowStatementError } from "./index-CUYSE1U7.mjs";
15
+ import { r as runEventHandlerCode, g as getDate, d as delay, m as miscellaneousUtils, a as dateFunctions, o as orderBy, T as ThrowStatementError } from "./index-CmAO1zjU.mjs";
16
16
  import Dexie from "dexie";
17
17
  var POSITIONALS_EXP = /(%?)(%([sdijo]))/g;
18
18
  function serializePositional(positional, flag) {
@@ -7,7 +7,7 @@ import { useQuery, useInfiniteQuery, QueryClientProvider, QueryClient } from "@t
7
7
  import produce, { createDraft, finishDraft, enableMapSet } from "immer";
8
8
  import { throttle, get, isNil, omitBy, isUndefined, noop as noop$2, isPlainObject, isEqual, union, uniq, orderBy as orderBy$1, isEmpty, isObject, isArray, groupBy, sortBy, omit, isNumber, isString, cloneDeep, merge, defaultTo, capitalize, unset, setWith, keyBy, pick } from "lodash-es";
9
9
  import { formatDistanceToNow, parse, format, parseISO, isValid, isTomorrow, isYesterday, isToday, isThisWeek, formatRelative, isThisYear, isSameDay, differenceInMinutes } from "date-fns";
10
- import { v as validationStatusMd, l as labelPositionMd, o as orientationOptionMd, a as alignmentOptionValues, L as LinkTargetMd, b as alignmentOptionMd, i as iconPositionMd, c as buttonTypesMd, s as sizeMd, d as buttonThemeMd, e as buttonVariantMd, P as Parser, T as T_CALCULATED_MEMBER_ACCESS_EXPRESSION, f as T_MEMBER_ACCESS_EXPRESSION, g as T_IDENTIFIER, h as T_PREFIX_OP_EXPRESSION, j as T_FUNCTION_DECLARATION, k as T_ARROW_EXPRESSION, m as createXmlUiTreeNodeId, n as T_EMPTY_STATEMENT, p as T_SWITCH_STATEMENT, q as T_TRY_STATEMENT, r as T_THROW_STATEMENT, t as T_FOR_OF_STATEMENT, u as T_FOR_IN_STATEMENT, w as T_FOR_STATEMENT, x as T_EXPRESSION_STATEMENT, y as T_BREAK_STATEMENT, z as T_CONTINUE_STATEMENT, A as T_DO_WHILE_STATEMENT, B as T_WHILE_STATEMENT, C as T_RETURN_STATEMENT, D as T_IF_STATEMENT, E as T_CONST_STATEMENT, F as T_LET_STATEMENT, G as T_ARROW_EXPRESSION_STATEMENT, H as T_BLOCK_STATEMENT, I as T_VAR_STATEMENT, J as T_ASSIGNMENT_EXPRESSION, K as T_LITERAL, M as T_SPREAD_EXPRESSION, N as T_FUNCTION_INVOCATION_EXPRESSION, O as T_POSTFIX_OP_EXPRESSION, Q as T_CONDITIONAL_EXPRESSION, R as T_BINARY_EXPRESSION, S as T_UNARY_EXPRESSION, U as T_OBJECT_LITERAL, V as T_ARRAY_LITERAL, W as T_SEQUENCE_EXPRESSION, X as T_TEMPLATE_LITERAL_EXPRESSION, Y as T_VAR_DECLARATION, Z as T_DESTRUCTURE, _ as TextVariantElement, $ as VariantPropsKeys, a0 as variantOptionsMd, a1 as scrollAnchoringValues, a2 as buttonThemeNames, a3 as iconPositionNames, a4 as buttonVariantNames, a5 as nodeToComponentDef, a6 as triggerPositionNames, a7 as statusColorMd, a8 as placementMd, a9 as httpMethodNames, aa as PARSED_MARK_PROP, ab as layoutOptionKeys, ac as viewportSizeNames, ad as componentFileExtension, ae as codeBehindFileExtension, af as getLintSeverity, ag as LintSeverity, ah as lintApp, ai as printComponentLints, aj as lintErrorsComponent, ak as collectCodeBehindFromSource, al as removeCodeBehindTokensFromTree } from "./lint-B9tKGcOX.mjs";
10
+ import { v as validationStatusMd, l as labelPositionMd, o as orientationOptionMd, a as alignmentOptionValues, L as LinkTargetMd, b as alignmentOptionMd, i as iconPositionMd, c as buttonTypesMd, s as sizeMd, d as buttonThemeMd, e as buttonVariantMd, P as Parser, T as T_CALCULATED_MEMBER_ACCESS_EXPRESSION, f as T_MEMBER_ACCESS_EXPRESSION, g as T_IDENTIFIER, h as T_PREFIX_OP_EXPRESSION, j as T_FUNCTION_DECLARATION, k as T_ARROW_EXPRESSION, m as createXmlUiTreeNodeId, n as T_EMPTY_STATEMENT, p as T_SWITCH_STATEMENT, q as T_TRY_STATEMENT, r as T_THROW_STATEMENT, t as T_FOR_OF_STATEMENT, u as T_FOR_IN_STATEMENT, w as T_FOR_STATEMENT, x as T_EXPRESSION_STATEMENT, y as T_BREAK_STATEMENT, z as T_CONTINUE_STATEMENT, A as T_DO_WHILE_STATEMENT, B as T_WHILE_STATEMENT, C as T_RETURN_STATEMENT, D as T_IF_STATEMENT, E as T_CONST_STATEMENT, F as T_LET_STATEMENT, G as T_ARROW_EXPRESSION_STATEMENT, H as T_BLOCK_STATEMENT, I as T_VAR_STATEMENT, J as T_ASSIGNMENT_EXPRESSION, K as T_LITERAL, M as T_SPREAD_EXPRESSION, N as T_FUNCTION_INVOCATION_EXPRESSION, O as T_POSTFIX_OP_EXPRESSION, Q as T_CONDITIONAL_EXPRESSION, R as T_BINARY_EXPRESSION, S as T_UNARY_EXPRESSION, U as T_OBJECT_LITERAL, V as T_ARRAY_LITERAL, W as T_SEQUENCE_EXPRESSION, X as T_TEMPLATE_LITERAL_EXPRESSION, Y as T_VAR_DECLARATION, Z as T_DESTRUCTURE, _ as TextVariantElement, $ as VariantPropsKeys, a0 as variantOptionsMd, a1 as scrollAnchoringValues, a2 as buttonThemeNames, a3 as iconPositionNames, a4 as buttonVariantNames, a5 as nodeToComponentDef, a6 as triggerPositionNames, a7 as statusColorMd, a8 as placementMd, a9 as httpMethodNames, aa as PARSED_MARK_PROP, ab as layoutOptionKeys, ac as viewportSizeNames, ad as componentFileExtension, ae as codeBehindFileExtension, af as getLintSeverity, ag as LintSeverity, ah as lintApp, ai as printComponentLints, aj as lintErrorsComponent, ak as collectCodeBehindFromSource, al as removeCodeBehindTokensFromTree } from "./lint-DmJOJSJa.mjs";
11
11
  import classnames from "classnames";
12
12
  import Color from "color";
13
13
  import TextareaAutosize from "react-textarea-autosize";
@@ -8207,7 +8207,7 @@ function generateBorderSegments(theme2) {
8207
8207
  }
8208
8208
  const result = { ...theme2 };
8209
8209
  Object.entries(theme2).forEach(([key, value]) => {
8210
- var _a, _b;
8210
+ var _a, _b, _c;
8211
8211
  let match = borderRegEx.exec(key);
8212
8212
  if (match) {
8213
8213
  const remainder = match[1];
@@ -8216,9 +8216,9 @@ function generateBorderSegments(theme2) {
8216
8216
  result[`borderTop-${remainder}`] = value;
8217
8217
  result[`borderBottom-${remainder}`] = value;
8218
8218
  const border = getBorderSegments(value);
8219
- result[`borderWidth-${remainder}`] = border.thickness;
8220
- result[_a = `borderStyle-${remainder}`] ?? (result[_a] = border.style);
8221
- result[_b = `borderColor-${remainder}`] ?? (result[_b] = border.color);
8219
+ result[_a = `borderWidth-${remainder}`] ?? (result[_a] = border.thickness);
8220
+ result[_b = `borderStyle-${remainder}`] ?? (result[_b] = border.style);
8221
+ result[_c = `borderColor-${remainder}`] ?? (result[_c] = border.color);
8222
8222
  }
8223
8223
  match = thicknessBorderRegEx.exec(key);
8224
8224
  if (match) {
@@ -14556,6 +14556,7 @@ const TextBox = forwardRef(function TextBox2({
14556
14556
  labelBreak: labelBreak2,
14557
14557
  required: required2
14558
14558
  }, ref) {
14559
+ id = id || useId();
14559
14560
  const inputRef = useRef(null);
14560
14561
  useEffect(() => {
14561
14562
  if (autoFocus) {
@@ -14608,6 +14609,7 @@ const TextBox = forwardRef(function TextBox2({
14608
14609
  return /* @__PURE__ */ jsx(
14609
14610
  ItemWithLabel,
14610
14611
  {
14612
+ id,
14611
14613
  labelPosition,
14612
14614
  label: label2,
14613
14615
  labelWidth,
@@ -31675,7 +31677,7 @@ function IconProvider({ children }) {
31675
31677
  /* @__PURE__ */ jsx("svg", { style: { display: "none" }, ref: spriteRootRef })
31676
31678
  ] });
31677
31679
  }
31678
- const version = "0.9.8";
31680
+ const version = "0.9.9";
31679
31681
  const ApiInterceptorContext = createContext(null);
31680
31682
  function useApiInterceptorContext() {
31681
31683
  return useContext(ApiInterceptorContext);
@@ -35715,7 +35717,7 @@ function ApiInterceptorProvider({
35715
35717
  let interceptorWorker;
35716
35718
  (async () => {
35717
35719
  if (process.env.VITE_MOCK_ENABLED) {
35718
- const { createApiInterceptorWorker } = await import("./apiInterceptorWorker-DOyaK_s_.mjs");
35720
+ const { createApiInterceptorWorker } = await import("./apiInterceptorWorker-DmE-x8Au.mjs");
35719
35721
  if (interceptor) {
35720
35722
  interceptorWorker = await createApiInterceptorWorker(interceptor, apiWorker);
35721
35723
  if (!apiWorker) {
@@ -36331,6 +36333,7 @@ async function parseCodeBehindResponse(response) {
36331
36333
  try {
36332
36334
  parser.parseStatements();
36333
36335
  } catch (e) {
36336
+ console.error("Error parsing code behind", e);
36334
36337
  if (parser.errors.length > 0) {
36335
36338
  return {
36336
36339
  component: errReportScriptError(parser.errors[0], response.url),
@@ -36339,19 +36342,23 @@ async function parseCodeBehindResponse(response) {
36339
36342
  };
36340
36343
  }
36341
36344
  }
36342
- const codeBehind = collectCodeBehindFromSource("Main", code2);
36343
- if (Object.keys(codeBehind.moduleErrors ?? {}).length > 0) {
36345
+ try {
36346
+ const codeBehind = collectCodeBehindFromSource("Main", code2);
36347
+ if (Object.keys(codeBehind.moduleErrors ?? {}).length > 0) {
36348
+ return {
36349
+ component: errReportModuleErrors(codeBehind.moduleErrors, response.url),
36350
+ file: response.url,
36351
+ hasError: true
36352
+ };
36353
+ }
36354
+ removeCodeBehindTokensFromTree(codeBehind);
36344
36355
  return {
36345
- component: errReportModuleErrors(codeBehind.moduleErrors, response.url),
36346
- file: response.url,
36347
- hasError: true
36356
+ codeBehind,
36357
+ file: response.url
36348
36358
  };
36359
+ } catch (e) {
36360
+ console.error("Error collecting code behind", e);
36349
36361
  }
36350
- removeCodeBehindTokensFromTree(codeBehind);
36351
- return {
36352
- codeBehind,
36353
- file: response.url
36354
- };
36355
36362
  }
36356
36363
  function matchesFileName(path, fileName) {
36357
36364
  return path.endsWith(`/${fileName}.ts`) || path.endsWith(`/${fileName}.js`) || path.endsWith(`/${fileName}.${componentFileExtension}`) || path.endsWith(`/${fileName}.${codeBehindFileExtension}`);
@@ -36643,9 +36650,10 @@ function useStandalone(standaloneAppDef, runtime = EMPTY_OBJECT, extensionManage
36643
36650
  );
36644
36651
  const componentCodeBehindPromise = new Promise(async (resolve) => {
36645
36652
  try {
36646
- const codeBehindWrapper = await parseCodeBehindResponse(
36647
- await fetchWithoutCache(`components/${componentPath}.${codeBehindFileExtension}`)
36653
+ const codeBehind = await fetchWithoutCache(
36654
+ `components/${componentPath}.${codeBehindFileExtension}`
36648
36655
  );
36656
+ const codeBehindWrapper = await parseCodeBehindResponse(codeBehind);
36649
36657
  if (codeBehindWrapper.hasError) {
36650
36658
  errorComponents.push(codeBehindWrapper.component);
36651
36659
  }
@@ -4811,7 +4811,6 @@ function parseScriptModule(moduleName, source) {
4811
4811
  const parsedModule2 = {
4812
4812
  type: "ScriptModule",
4813
4813
  name: moduleName2,
4814
- exports,
4815
4814
  functions,
4816
4815
  statements,
4817
4816
  sources: /* @__PURE__ */ new Map()
@@ -47,6 +47,7 @@ const misc_1 = require("../../components-core/utils/misc");
47
47
  const InputAdornment_1 = require("../Input/InputAdornment");
48
48
  const ItemWithLabel_1 = require("../FormItem/ItemWithLabel");
49
49
  exports.TextBox = (0, react_1.forwardRef)(function TextBox({ id, type = "text", value = "", updateState = constants_1.noop, initialValue = "", style, maxLength, enabled = true, placeholder, validationStatus = "none", onDidChange = constants_1.noop, onFocus = constants_1.noop, onBlur = constants_1.noop, registerComponentApi, startText, startIcon, endText, endIcon, autoFocus, readOnly, tabIndex, label, labelPosition, labelWidth, labelBreak, required, }, ref) {
50
+ id = id || (0, react_1.useId)();
50
51
  const inputRef = (0, react_2.useRef)(null);
51
52
  (0, react_2.useEffect)(() => {
52
53
  if (autoFocus) {
@@ -96,7 +97,7 @@ exports.TextBox = (0, react_1.forwardRef)(function TextBox({ id, type = "text",
96
97
  setValue,
97
98
  });
98
99
  }, [focus, registerComponentApi, setValue]);
99
- return ((0, jsx_runtime_1.jsx)(ItemWithLabel_1.ItemWithLabel, { labelPosition: labelPosition, label: label, labelWidth: labelWidth, labelBreak: labelBreak, required: required, enabled: enabled, style: style, ref: ref, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(TextBox_module_scss_1.default.inputRoot, {
100
+ return ((0, jsx_runtime_1.jsx)(ItemWithLabel_1.ItemWithLabel, { id: id, labelPosition: labelPosition, label: label, labelWidth: labelWidth, labelBreak: labelBreak, required: required, enabled: enabled, style: style, ref: ref, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(TextBox_module_scss_1.default.inputRoot, {
100
101
  [TextBox_module_scss_1.default.disabled]: !enabled,
101
102
  [TextBox_module_scss_1.default.readOnly]: readOnly,
102
103
  [TextBox_module_scss_1.default.error]: validationStatus === "error",
@@ -246,8 +246,8 @@ function generateBorderSegments(theme) {
246
246
  const result = Object.assign({}, theme);
247
247
  // --- Iterate through theme variables and split border values
248
248
  Object.entries(theme).forEach(([key, value]) => {
249
- var _a, _b;
250
- var _c, _d;
249
+ var _a, _b, _c;
250
+ var _d, _e, _f;
251
251
  // --- Check "border-" theme variables
252
252
  let match = borderRegEx.exec(key);
253
253
  if (match) {
@@ -259,9 +259,9 @@ function generateBorderSegments(theme) {
259
259
  result[`borderBottom-${remainder}`] = value;
260
260
  // --- We have a border value to segment
261
261
  const border = getBorderSegments(value);
262
- result[`borderWidth-${remainder}`] = border.thickness;
263
- (_a = result[_c = `borderStyle-${remainder}`]) !== null && _a !== void 0 ? _a : (result[_c] = border.style);
264
- (_b = result[_d = `borderColor-${remainder}`]) !== null && _b !== void 0 ? _b : (result[_d] = border.color);
262
+ (_a = result[_d = `borderWidth-${remainder}`]) !== null && _a !== void 0 ? _a : (result[_d] = border.thickness);
263
+ (_b = result[_e = `borderStyle-${remainder}`]) !== null && _b !== void 0 ? _b : (result[_e] = border.style);
264
+ (_c = result[_f = `borderColor-${remainder}`]) !== null && _c !== void 0 ? _c : (result[_f] = border.color);
265
265
  }
266
266
  // --- Check "borderWidth-" theme variables
267
267
  match = thicknessBorderRegEx.exec(key);
@@ -74,7 +74,6 @@ function parseScriptModule(moduleName, source) {
74
74
  const parsedModule = {
75
75
  type: "ScriptModule",
76
76
  name: moduleName,
77
- exports,
78
77
  functions,
79
78
  statements: statements,
80
79
  sources: new Map(),
@@ -1822,6 +1822,7 @@ const TextBox = forwardRef(function TextBox2({
1822
1822
  labelBreak: labelBreak2,
1823
1823
  required: required2
1824
1824
  }, ref) {
1825
+ id = id || useId();
1825
1826
  const inputRef = useRef(null);
1826
1827
  useEffect(() => {
1827
1828
  if (autoFocus) {
@@ -1874,6 +1875,7 @@ const TextBox = forwardRef(function TextBox2({
1874
1875
  return /* @__PURE__ */ jsx(
1875
1876
  ItemWithLabel,
1876
1877
  {
1878
+ id,
1877
1879
  labelPosition,
1878
1880
  label: label2,
1879
1881
  labelWidth,
@@ -18902,7 +18904,6 @@ function parseScriptModule(moduleName, source) {
18902
18904
  const parsedModule2 = {
18903
18905
  type: "ScriptModule",
18904
18906
  name: moduleName2,
18905
- exports,
18906
18907
  functions,
18907
18908
  statements,
18908
18909
  sources: /* @__PURE__ */ new Map()
@@ -1821,6 +1821,7 @@
1821
1821
  labelBreak: labelBreak2,
1822
1822
  required: required2
1823
1823
  }, ref) {
1824
+ id = id || React.useId();
1824
1825
  const inputRef = React.useRef(null);
1825
1826
  React.useEffect(() => {
1826
1827
  if (autoFocus) {
@@ -1873,6 +1874,7 @@
1873
1874
  return /* @__PURE__ */ jsxRuntime.jsx(
1874
1875
  ItemWithLabel,
1875
1876
  {
1877
+ id,
1876
1878
  labelPosition,
1877
1879
  label: label2,
1878
1880
  labelWidth,
@@ -18901,7 +18903,6 @@
18901
18903
  const parsedModule2 = {
18902
18904
  type: "ScriptModule",
18903
18905
  name: moduleName2,
18904
- exports: exports2,
18905
18906
  functions,
18906
18907
  statements,
18907
18908
  sources: /* @__PURE__ */ new Map()
@@ -1,6 +1,6 @@
1
1
  import { C, o, k, i, n, h, l, a, m, j, f, e, g, b, D, E, S, q, c, d, x, u, r, t, s, p, w, v } from "./parser-B3m9ZEAK.mjs";
2
- import { am as COMPOUND_COMP_ID } from "./lint-B9tKGcOX.mjs";
3
- import { au, ao, ag, aq, as, ae, ad, ar, af, ap, ah, aj, an, a5, at, ai } from "./lint-B9tKGcOX.mjs";
2
+ import { am as COMPOUND_COMP_ID } from "./lint-DmJOJSJa.mjs";
3
+ import { au, ao, ag, aq, as, ae, ad, ar, af, ap, ah, aj, an, a5, at, ai } from "./lint-DmJOJSJa.mjs";
4
4
  const attrBreakRegex = /[\r\n<>'"&]/;
5
5
  class XmlUiHelper {
6
6
  /**
@@ -16008,7 +16008,7 @@ li ._htmlOl_1wzn5_205 {
16008
16008
  });
16009
16009
  }
16010
16010
  }
16011
- var define_process_env_default$9 = { NODE_ENV: "production", VITE_MOCK_ENABLED: true, VITE_MOCK_WORKER_LOCATION: "mockApi.js", VITE_USED_COMPONENTS_Pdf: "false", VITE_USED_COMPONENTS_Chart: "false", VITE_USER_COMPONENTS_XmluiCodeHightlighter: "false", VITE_USED_COMPONENTS_Tree: "false", VITE_XMLUI_VERSION: "0.9.8 (built 4/7/2025)" };
16011
+ var define_process_env_default$9 = { NODE_ENV: "production", VITE_MOCK_ENABLED: true, VITE_MOCK_WORKER_LOCATION: "mockApi.js", VITE_USED_COMPONENTS_Pdf: "false", VITE_USED_COMPONENTS_Chart: "false", VITE_USER_COMPONENTS_XmluiCodeHightlighter: "false", VITE_USED_COMPONENTS_Tree: "false", VITE_XMLUI_VERSION: "0.9.9 (built 4/8/2025)" };
16012
16012
  class Mutation extends Removable {
16013
16013
  constructor(config2) {
16014
16014
  super();
@@ -49553,7 +49553,7 @@ ${error2.errorObject}`;
49553
49553
  }
49554
49554
  const result = { ...theme2 };
49555
49555
  Object.entries(theme2).forEach(([key, value]) => {
49556
- var _a3, _b2;
49556
+ var _a3, _b2, _c2;
49557
49557
  let match2 = borderRegEx.exec(key);
49558
49558
  if (match2) {
49559
49559
  const remainder = match2[1];
@@ -49562,9 +49562,9 @@ ${error2.errorObject}`;
49562
49562
  result[`borderTop-${remainder}`] = value;
49563
49563
  result[`borderBottom-${remainder}`] = value;
49564
49564
  const border = getBorderSegments(value);
49565
- result[`borderWidth-${remainder}`] = border.thickness;
49566
- result[_a3 = `borderStyle-${remainder}`] ?? (result[_a3] = border.style);
49567
- result[_b2 = `borderColor-${remainder}`] ?? (result[_b2] = border.color);
49565
+ result[_a3 = `borderWidth-${remainder}`] ?? (result[_a3] = border.thickness);
49566
+ result[_b2 = `borderStyle-${remainder}`] ?? (result[_b2] = border.style);
49567
+ result[_c2 = `borderColor-${remainder}`] ?? (result[_c2] = border.color);
49568
49568
  }
49569
49569
  match2 = thicknessBorderRegEx.exec(key);
49570
49570
  if (match2) {
@@ -58727,6 +58727,7 @@ to {
58727
58727
  labelBreak: labelBreak2,
58728
58728
  required: required2
58729
58729
  }, ref) {
58730
+ id2 = id2 || reactExports.useId();
58730
58731
  const inputRef = reactExports.useRef(null);
58731
58732
  reactExports.useEffect(() => {
58732
58733
  if (autoFocus) {
@@ -58779,6 +58780,7 @@ to {
58779
58780
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
58780
58781
  ItemWithLabel,
58781
58782
  {
58783
+ id: id2,
58782
58784
  labelPosition,
58783
58785
  label: label2,
58784
58786
  labelWidth,
@@ -124896,7 +124898,6 @@ For more information, see https://radix-ui.com/primitives/docs/components/${titl
124896
124898
  const parsedModule2 = {
124897
124899
  type: "ScriptModule",
124898
124900
  name: moduleName2,
124899
- exports,
124900
124901
  functions,
124901
124902
  statements,
124902
124903
  sources: /* @__PURE__ */ new Map()
@@ -144771,7 +144772,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${titl
144771
144772
  /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { style: { display: "none" }, ref: spriteRootRef })
144772
144773
  ] });
144773
144774
  }
144774
- const version = "0.9.8";
144775
+ const version = "0.9.9";
144775
144776
  const ApiInterceptorContext = reactExports.createContext(null);
144776
144777
  function useApiInterceptorContext() {
144777
144778
  return reactExports.useContext(ApiInterceptorContext);
@@ -149582,7 +149583,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${titl
149582
149583
  ToneChangerButton: ToneChangerButtonMd,
149583
149584
  Tree: TreeMd
149584
149585
  };
149585
- var define_process_env_default$2 = { VITE_XMLUI_VERSION: "0.9.8 (built 4/7/2025)" };
149586
+ var define_process_env_default$2 = { VITE_XMLUI_VERSION: "0.9.9 (built 4/8/2025)" };
149586
149587
  const MAIN_FILE = "Main." + componentFileExtension;
149587
149588
  const MAIN_CODE_BEHIND_FILE = "Main." + codeBehindFileExtension;
149588
149589
  const CONFIG_FILE = "config.json";
@@ -149673,6 +149674,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${titl
149673
149674
  try {
149674
149675
  parser.parseStatements();
149675
149676
  } catch (e2) {
149677
+ console.error("Error parsing code behind", e2);
149676
149678
  if (parser.errors.length > 0) {
149677
149679
  return {
149678
149680
  component: errReportScriptError(parser.errors[0], response.url),
@@ -149681,19 +149683,23 @@ For more information, see https://radix-ui.com/primitives/docs/components/${titl
149681
149683
  };
149682
149684
  }
149683
149685
  }
149684
- const codeBehind = collectCodeBehindFromSource("Main", code2);
149685
- if (Object.keys(codeBehind.moduleErrors ?? {}).length > 0) {
149686
+ try {
149687
+ const codeBehind = collectCodeBehindFromSource("Main", code2);
149688
+ if (Object.keys(codeBehind.moduleErrors ?? {}).length > 0) {
149689
+ return {
149690
+ component: errReportModuleErrors(codeBehind.moduleErrors, response.url),
149691
+ file: response.url,
149692
+ hasError: true
149693
+ };
149694
+ }
149695
+ removeCodeBehindTokensFromTree(codeBehind);
149686
149696
  return {
149687
- component: errReportModuleErrors(codeBehind.moduleErrors, response.url),
149688
- file: response.url,
149689
- hasError: true
149697
+ codeBehind,
149698
+ file: response.url
149690
149699
  };
149700
+ } catch (e2) {
149701
+ console.error("Error collecting code behind", e2);
149691
149702
  }
149692
- removeCodeBehindTokensFromTree(codeBehind);
149693
- return {
149694
- codeBehind,
149695
- file: response.url
149696
- };
149697
149703
  }
149698
149704
  function matchesFileName(path2, fileName) {
149699
149705
  return path2.endsWith(`/${fileName}.ts`) || path2.endsWith(`/${fileName}.js`) || path2.endsWith(`/${fileName}.${componentFileExtension}`) || path2.endsWith(`/${fileName}.${codeBehindFileExtension}`);
@@ -149985,9 +149991,10 @@ For more information, see https://radix-ui.com/primitives/docs/components/${titl
149985
149991
  );
149986
149992
  const componentCodeBehindPromise = new Promise(async (resolve) => {
149987
149993
  try {
149988
- const codeBehindWrapper = await parseCodeBehindResponse(
149989
- await fetchWithoutCache(`components/${componentPath}.${codeBehindFileExtension}`)
149994
+ const codeBehind = await fetchWithoutCache(
149995
+ `components/${componentPath}.${codeBehindFileExtension}`
149990
149996
  );
149997
+ const codeBehindWrapper = await parseCodeBehindResponse(codeBehind);
149991
149998
  if (codeBehindWrapper.hasError) {
149992
149999
  errorComponents.push(codeBehindWrapper.component);
149993
150000
  }
@@ -153904,7 +153911,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${titl
153904
153911
  function isResponseWithoutBody(status) {
153905
153912
  return RESPONSE_STATUS_CODES_WITHOUT_BODY.has(status);
153906
153913
  }
153907
- var define_process_env_default$1 = { NODE_ENV: "production", VITE_MOCK_ENABLED: true, VITE_MOCK_WORKER_LOCATION: "mockApi.js", VITE_USED_COMPONENTS_Pdf: "false", VITE_USED_COMPONENTS_Chart: "false", VITE_USER_COMPONENTS_XmluiCodeHightlighter: "false", VITE_USED_COMPONENTS_Tree: "false", VITE_XMLUI_VERSION: "0.9.8 (built 4/7/2025)" };
153914
+ var define_process_env_default$1 = { NODE_ENV: "production", VITE_MOCK_ENABLED: true, VITE_MOCK_WORKER_LOCATION: "mockApi.js", VITE_USED_COMPONENTS_Pdf: "false", VITE_USED_COMPONENTS_Chart: "false", VITE_USER_COMPONENTS_XmluiCodeHightlighter: "false", VITE_USED_COMPONENTS_Tree: "false", VITE_XMLUI_VERSION: "0.9.9 (built 4/8/2025)" };
153908
153915
  var __defProp$7 = Object.defineProperty;
153909
153916
  var __export = (target2, all2) => {
153910
153917
  for (var name2 in all2)
package/dist/xmlui.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A, B, E, I, i, h, S, b, c, e, f, j, p, s, t, k, u } from "./index-CUYSE1U7.mjs";
1
+ import { A, B, E, I, i, h, S, b, c, e, f, j, p, s, t, k, u } from "./index-CmAO1zjU.mjs";
2
2
  export {
3
3
  A as AppRoot,
4
4
  B as Button,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xmlui",
3
- "version": "0.9.8",
3
+ "version": "0.9.9",
4
4
  "sideEffects": false,
5
5
  "scripts": {
6
6
  "start-test-bed": "cd src/testing/infrastructure && xmlui start",