xmlui 0.12.19 → 0.12.21

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 (37) hide show
  1. package/dist/lib/{index-WVT6bIgM.js → index-CznbWBUF.js} +3224 -4066
  2. package/dist/lib/index.css +1 -1
  3. package/dist/lib/{initMock-r2IRBsLf.js → initMock-Dj__hABf.js} +2 -2
  4. package/dist/lib/{parser-DpwXEUNb.js → parser-zOoMLvLx.js} +120 -139
  5. package/dist/lib/testing.d.ts +18 -19
  6. package/dist/lib/testing.js +2 -2
  7. package/dist/lib/{xmlui-parser-Cs8kB0VK.js → xmlui-parser-CtU8O3Av.js} +43 -19
  8. package/dist/lib/xmlui-parser.d.ts +23 -19
  9. package/dist/lib/xmlui-parser.js +2 -2
  10. package/dist/lib/{xmlui-serializer-3MPLSsOp.js → xmlui-serializer-C-Iuczzr.js} +9 -8
  11. package/dist/lib/xmlui.d.ts +130 -125
  12. package/dist/lib/xmlui.js +38 -36
  13. package/dist/metadata/TextBox-B-GWiq0J.cjs +1 -0
  14. package/dist/metadata/{TextBox-CwicjBJI.js → TextBox-DHSTy0g0.js} +3407 -4256
  15. package/dist/metadata/behaviors.cjs +1 -1
  16. package/dist/metadata/behaviors.js +1 -1
  17. package/dist/metadata/{initMock-BMq6JN4I.js → initMock-SQIcDMzP.js} +1 -1
  18. package/dist/metadata/{initMock-BKBkbEgr.cjs → initMock-wSFvfKcr.cjs} +1 -1
  19. package/dist/metadata/metadata-utils.cjs +1 -1
  20. package/dist/metadata/metadata-utils.js +1 -1
  21. package/dist/metadata/transform-BOf-UbgP.cjs +1 -0
  22. package/dist/metadata/{transform-D0SWbm8g.js → transform-fGDqiHwH.js} +120 -139
  23. package/dist/metadata/xmlui-metadata.cjs +1 -1
  24. package/dist/metadata/xmlui-metadata.js +12 -8
  25. package/dist/metadata/xmlui.css +2 -2
  26. package/dist/nodejs/bin/index.mjs +63 -79
  27. package/dist/nodejs/index.cjs +63 -79
  28. package/dist/nodejs/index.mjs +63 -79
  29. package/dist/nodejs/server.cjs +1886 -1053
  30. package/dist/nodejs/server.mjs +1886 -1053
  31. package/dist/nodejs/vite-xmlui-plugin.cjs +63 -79
  32. package/dist/nodejs/vite-xmlui-plugin.mjs +63 -79
  33. package/dist/standalone/xmlui-standalone.es.d.ts +192 -179
  34. package/dist/standalone/xmlui-standalone.umd.js +11 -11
  35. package/package.json +1 -1
  36. package/dist/metadata/TextBox-C-4gnBpw.cjs +0 -1
  37. package/dist/metadata/transform-CkTQ-Bfe.cjs +0 -1
@@ -114,7 +114,7 @@ declare interface BinaryExpression extends ExpressionBase {
114
114
  right: Expression;
115
115
  }
116
116
 
117
- declare type BinaryOpSymbols = "**" | "*" | "/" | "%" | "+" | "-" | "<<" | ">>" | ">>>" | "<" | "<=" | ">" | ">=" | "==" | "===" | "!=" | "!==" | "&" | "|" | "^" | "&&" | "||" | "??" | "in";
117
+ declare type BinaryOpSymbols = "**" | "*" | "/" | "%" | "+" | "-" | "<<" | ">>" | ">>>" | "<" | "<=" | ">" | ">=" | "==" | "===" | "!=" | "!==" | "&" | "|" | "^" | "&&" | "||" | "??" | "in" | "instanceof";
118
118
 
119
119
  declare type BLOCK_STATEMENT = typeof T_BLOCK_STATEMENT;
120
120
 
@@ -824,7 +824,6 @@ declare type IDENTIFIER = typeof T_IDENTIFIER;
824
824
  declare interface Identifier extends ExpressionBase {
825
825
  type: IDENTIFIER;
826
826
  name: string;
827
- isGlobal?: boolean;
828
827
  }
829
828
 
830
829
  declare type IF_STATEMENT = typeof T_IF_STATEMENT;
@@ -1618,23 +1617,23 @@ declare enum TokenType {
1618
1617
  SignedShiftRight = 55,
1619
1618
  Dot = 56,
1620
1619
  Spread = 57,
1621
- Global = 58,
1622
- Backtick = 59,
1623
- DollarLBrace = 60,
1624
- Arrow = 61,
1625
- DecimalLiteral = 62,
1626
- HexadecimalLiteral = 63,
1627
- BinaryLiteral = 64,
1628
- RealLiteral = 65,
1629
- StringLiteral = 66,
1630
- Infinity = 67,
1631
- NaN = 68,
1632
- True = 69,
1633
- False = 70,
1634
- Typeof = 71,
1635
- Null = 72,
1636
- Undefined = 73,
1637
- In = 74,
1620
+ Backtick = 58,
1621
+ DollarLBrace = 59,
1622
+ Arrow = 60,
1623
+ DecimalLiteral = 61,
1624
+ HexadecimalLiteral = 62,
1625
+ BinaryLiteral = 63,
1626
+ RealLiteral = 64,
1627
+ StringLiteral = 65,
1628
+ Infinity = 66,
1629
+ NaN = 67,
1630
+ True = 68,
1631
+ False = 69,
1632
+ Typeof = 70,
1633
+ Null = 71,
1634
+ Undefined = 72,
1635
+ In = 73,
1636
+ Instanceof = 74,
1638
1637
  Let = 75,
1639
1638
  Const = 76,
1640
1639
  Var = 77,
@@ -1,7 +1,7 @@
1
1
  import { expect as expect$1, test as test$1, devices } from "@playwright/test";
2
- import { x as xmlUiMarkupToComponent, P as PART_START_ADORNMENT, a as PART_END_ADORNMENT, b as PART_INPUT } from "./xmlui-parser-Cs8kB0VK.js";
2
+ import { x as xmlUiMarkupToComponent, P as PART_START_ADORNMENT, a as PART_END_ADORNMENT, b as PART_INPUT } from "./xmlui-parser-CtU8O3Av.js";
3
3
  import "chroma-js";
4
- import { H as collectCodeBehindFromSource } from "./parser-DpwXEUNb.js";
4
+ import { H as collectCodeBehindFromSource } from "./parser-zOoMLvLx.js";
5
5
  function parseComponentIfNecessary(rawComponent) {
6
6
  if (typeof rawComponent === "string") {
7
7
  return xmlUiMarkupToComponent(rawComponent);
@@ -1,4 +1,4 @@
1
- import { i as createXmlUiParser, G as DocumentCursor, x as nodeToComponentDef, T as TransformDiag, S as SyntaxKind } from "./parser-DpwXEUNb.js";
1
+ import { i as createXmlUiParser, G as DocumentCursor, x as nodeToComponentDef, T as TransformDiag, S as SyntaxKind } from "./parser-zOoMLvLx.js";
2
2
  const PART_LABEL = "label";
3
3
  const PART_LABELED_ITEM = "labeledItem";
4
4
  const PART_INPUT = "input";
@@ -15,6 +15,18 @@ const PART_TITLE = "title";
15
15
  const PART_SUBTITLE = "subtitle";
16
16
  const PART_HEADER = "header";
17
17
  const PART_CONTENT = "content";
18
+ const PART_HAMBURGER = "hamburger";
19
+ const PART_LIST_WRAPPER = "listWrapper";
20
+ const PART_NAV_PANEL_FOOTER = "footer";
21
+ const PART_SPINNER_UP = "spinnerUp";
22
+ const PART_SPINNER_DOWN = "spinnerDown";
23
+ const PART_PAGINATION_CONTROLS = "pagination-controls";
24
+ const PART_PAGE_INFO = "page-info";
25
+ const PART_PAGE_SIZE_SELECTOR_CONTAINER = "page-size-selector-container";
26
+ const PART_OVERFLOW = "overflow";
27
+ const PART_RING = "ring";
28
+ const PART_PRIMARY_PANEL = "primaryPanel";
29
+ const PART_SECONDARY_PANEL = "secondaryPanel";
18
30
  const COLOR_DANGER_100 = "hsl(356, 100%, 91%)";
19
31
  const COLOR_DANGER_300 = "hsl(356, 100%, 70%)";
20
32
  const COLOR_PRIMARY = "hsl(204, 30.3%, 13%)";
@@ -508,25 +520,37 @@ function errorWithDisplayFields(err, cursor, source) {
508
520
  };
509
521
  }
510
522
  export {
523
+ PART_YEAR as A,
524
+ PART_MONTH as B,
525
+ PART_DAY as C,
526
+ errReportMessage as D,
527
+ errReportScriptError as E,
528
+ errReportModuleErrors as F,
511
529
  PART_START_ADORNMENT as P,
512
530
  PART_END_ADORNMENT as a,
513
531
  PART_INPUT as b,
514
- PART_LABELED_ITEM as c,
515
- PART_LABEL as d,
516
- PART_ICON as e,
517
- PART_CONTENT as f,
518
- PART_HEADER as g,
519
- errReportComponent as h,
520
- PART_CONCISE_VALIDATION_FEEDBACK as i,
521
- PART_AVATAR as j,
522
- PART_TITLE as k,
523
- PART_SUBTITLE as l,
524
- PART_CLEAR_BUTTON as m,
525
- PART_YEAR as n,
526
- PART_MONTH as o,
527
- PART_DAY as p,
528
- errReportMessage as q,
529
- errReportScriptError as r,
530
- errReportModuleErrors as s,
531
- xmlUiMarkupToComponent as x
532
+ PART_RING as c,
533
+ PART_LABELED_ITEM as d,
534
+ PART_LABEL as e,
535
+ PART_ICON as f,
536
+ PART_OVERFLOW as g,
537
+ PART_CONTENT as h,
538
+ PART_HEADER as i,
539
+ errReportComponent as j,
540
+ PART_HAMBURGER as k,
541
+ PART_NAV_PANEL_FOOTER as l,
542
+ PART_CONCISE_VALIDATION_FEEDBACK as m,
543
+ PART_LIST_WRAPPER as n,
544
+ PART_CLEAR_BUTTON as o,
545
+ PART_PAGINATION_CONTROLS as p,
546
+ PART_PAGE_SIZE_SELECTOR_CONTAINER as q,
547
+ PART_PAGE_INFO as r,
548
+ PART_AVATAR as s,
549
+ PART_TITLE as t,
550
+ PART_SUBTITLE as u,
551
+ PART_PRIMARY_PANEL as v,
552
+ PART_SECONDARY_PANEL as w,
553
+ xmlUiMarkupToComponent as x,
554
+ PART_SPINNER_UP as y,
555
+ PART_SPINNER_DOWN as z
532
556
  };
@@ -229,7 +229,7 @@ declare interface BinaryExpression extends ExpressionBase {
229
229
  right: Expression;
230
230
  }
231
231
 
232
- declare type BinaryOpSymbols = "**" | "*" | "/" | "%" | "+" | "-" | "<<" | ">>" | ">>>" | "<" | "<=" | ">" | ">=" | "==" | "===" | "!=" | "!==" | "&" | "|" | "^" | "&&" | "||" | "??" | "in";
232
+ declare type BinaryOpSymbols = "**" | "*" | "/" | "%" | "+" | "-" | "<<" | ">>" | ">>>" | "<" | "<=" | ">" | ">=" | "==" | "===" | "!=" | "!==" | "&" | "|" | "^" | "&&" | "||" | "??" | "in" | "instanceof";
233
233
 
234
234
  declare type BLOCK_STATEMENT = typeof T_BLOCK_STATEMENT;
235
235
 
@@ -244,6 +244,10 @@ declare interface BreakStatement extends ScripNodeBase {
244
244
  type: BREAK_STATEMENT;
245
245
  }
246
246
 
247
+ declare type ButtonThemeColor = (typeof buttonThemeValues)[number];
248
+
249
+ declare const buttonThemeValues: readonly ["attention", "primary", "secondary"];
250
+
247
251
  declare type CALCULATED_MEMBER_ACCESS_EXPRESSION = typeof T_CALCULATED_MEMBER_ACCESS_EXPRESSION;
248
252
 
249
253
  declare interface CalculatedMemberAccessExpression extends ExpressionBase {
@@ -611,6 +615,7 @@ declare type ConfirmOptions = {
611
615
  actionLabel?: string;
612
616
  cancelLabel?: string;
613
617
  width?: string;
618
+ actionThemeColor?: ButtonThemeColor;
614
619
  };
615
620
 
616
621
  declare type CONST_STATEMENT = typeof T_CONST_STATEMENT;
@@ -1166,7 +1171,6 @@ declare type IDENTIFIER = typeof T_IDENTIFIER;
1166
1171
  declare interface Identifier extends ExpressionBase {
1167
1172
  type: IDENTIFIER;
1168
1173
  name: string;
1169
- isGlobal?: boolean;
1170
1174
  }
1171
1175
 
1172
1176
  declare type IF_STATEMENT = typeof T_IF_STATEMENT;
@@ -1829,23 +1833,23 @@ declare enum TokenType {
1829
1833
  SignedShiftRight = 55,
1830
1834
  Dot = 56,
1831
1835
  Spread = 57,
1832
- Global = 58,
1833
- Backtick = 59,
1834
- DollarLBrace = 60,
1835
- Arrow = 61,
1836
- DecimalLiteral = 62,
1837
- HexadecimalLiteral = 63,
1838
- BinaryLiteral = 64,
1839
- RealLiteral = 65,
1840
- StringLiteral = 66,
1841
- Infinity = 67,
1842
- NaN = 68,
1843
- True = 69,
1844
- False = 70,
1845
- Typeof = 71,
1846
- Null = 72,
1847
- Undefined = 73,
1848
- In = 74,
1836
+ Backtick = 58,
1837
+ DollarLBrace = 59,
1838
+ Arrow = 60,
1839
+ DecimalLiteral = 61,
1840
+ HexadecimalLiteral = 62,
1841
+ BinaryLiteral = 63,
1842
+ RealLiteral = 64,
1843
+ StringLiteral = 65,
1844
+ Infinity = 66,
1845
+ NaN = 67,
1846
+ True = 68,
1847
+ False = 69,
1848
+ Typeof = 70,
1849
+ Null = 71,
1850
+ Undefined = 72,
1851
+ In = 73,
1852
+ Instanceof = 74,
1849
1853
  Let = 75,
1850
1854
  Const = 76,
1851
1855
  Var = 77,
@@ -1,5 +1,5 @@
1
- import { q, s, A, u, w, C, r, a, c, d, g, f, h, e, D, o, E, b, N, S, t, T, U, j, i, F, n, k, m, l, x, v, p, y, B, z } from "./parser-DpwXEUNb.js";
2
- import { b as b2, L, X, a as a2, c as c2, e as e2, g as g2, f as f2, l as l2, d as d2, m as m2, p as p2 } from "./xmlui-serializer-3MPLSsOp.js";
1
+ import { q, s, A, u, w, C, r, a, c, d, g, f, h, e, D, o, E, b, N, S, t, T, U, j, i, F, n, k, m, l, x, v, p, y, B, z } from "./parser-zOoMLvLx.js";
2
+ import { b as b2, L, X, a as a2, c as c2, e as e2, g as g2, f as f2, l as l2, d as d2, m as m2, p as p2 } from "./xmlui-serializer-C-Iuczzr.js";
3
3
  export {
4
4
  q as AttributeKeyNode,
5
5
  s as AttributeListNode,
@@ -1,6 +1,6 @@
1
1
  import { useRef, useInsertionEffect, useCallback } from "react";
2
2
  import { throttle, get, isString, isPlainObject } from "lodash-es";
3
- import { M as MediaBreakpointKeys, P as Parser, I as T_CALCULATED_MEMBER_ACCESS_EXPRESSION, J as T_MEMBER_ACCESS_EXPRESSION, K as T_IDENTIFIER, L as T_PREFIX_OP_EXPRESSION, O as T_FUNCTION_DECLARATION, Q as T_ARROW_EXPRESSION, R as createXmlUiTreeNodeId, V as T_EMPTY_STATEMENT, W as T_SWITCH_STATEMENT, X as T_TRY_STATEMENT, Y as T_THROW_STATEMENT, Z as T_FOR_OF_STATEMENT, _ as T_FOR_IN_STATEMENT, $ as T_FOR_STATEMENT, a0 as T_EXPRESSION_STATEMENT, a1 as T_BREAK_STATEMENT, a2 as T_CONTINUE_STATEMENT, a3 as T_DO_WHILE_STATEMENT, a4 as T_WHILE_STATEMENT, a5 as T_RETURN_STATEMENT, a6 as T_IF_STATEMENT, a7 as T_CONST_STATEMENT, a8 as T_LET_STATEMENT, a9 as T_ARROW_EXPRESSION_STATEMENT, aa as T_BLOCK_STATEMENT, ab as T_VAR_STATEMENT, ac as T_ASYNC_FUNCTION_DECLARATION, ad as T_ASSIGNMENT_EXPRESSION, ae as T_LITERAL, af as T_NEW_EXPRESSION, ag as T_AWAIT_EXPRESSION, ah as T_SPREAD_EXPRESSION, ai as T_FUNCTION_INVOCATION_EXPRESSION, aj as T_POSTFIX_OP_EXPRESSION, ak as T_CONDITIONAL_EXPRESSION, al as T_BINARY_EXPRESSION, am as T_UNARY_EXPRESSION, an as T_OBJECT_LITERAL, ao as T_ARRAY_LITERAL, ap as T_SEQUENCE_EXPRESSION, aq as T_TEMPLATE_LITERAL_EXPRESSION, ar as isArrowExpressionObject, as as T_VAR_DECLARATION, at as T_DESTRUCTURE, w as CORE_NAMESPACE_VALUE, u as COMPOUND_COMP_ID } from "./parser-DpwXEUNb.js";
3
+ import { M as MediaBreakpointKeys, P as Parser, I as T_CALCULATED_MEMBER_ACCESS_EXPRESSION, J as T_MEMBER_ACCESS_EXPRESSION, K as T_IDENTIFIER, L as T_PREFIX_OP_EXPRESSION, O as T_FUNCTION_DECLARATION, Q as T_ARROW_EXPRESSION, R as createXmlUiTreeNodeId, V as T_EMPTY_STATEMENT, W as T_SWITCH_STATEMENT, X as T_TRY_STATEMENT, Y as T_THROW_STATEMENT, Z as T_FOR_OF_STATEMENT, _ as T_FOR_IN_STATEMENT, $ as T_FOR_STATEMENT, a0 as T_EXPRESSION_STATEMENT, a1 as T_BREAK_STATEMENT, a2 as T_CONTINUE_STATEMENT, a3 as T_DO_WHILE_STATEMENT, a4 as T_WHILE_STATEMENT, a5 as T_RETURN_STATEMENT, a6 as T_IF_STATEMENT, a7 as T_CONST_STATEMENT, a8 as T_LET_STATEMENT, a9 as T_ARROW_EXPRESSION_STATEMENT, aa as T_BLOCK_STATEMENT, ab as T_VAR_STATEMENT, ac as T_ASYNC_FUNCTION_DECLARATION, ad as T_ASSIGNMENT_EXPRESSION, ae as T_LITERAL, af as T_NEW_EXPRESSION, ag as T_AWAIT_EXPRESSION, ah as T_SPREAD_EXPRESSION, ai as T_FUNCTION_INVOCATION_EXPRESSION, aj as T_POSTFIX_OP_EXPRESSION, ak as T_CONDITIONAL_EXPRESSION, al as T_BINARY_EXPRESSION, am as T_UNARY_EXPRESSION, an as T_OBJECT_LITERAL, ao as T_ARRAY_LITERAL, ap as T_SEQUENCE_EXPRESSION, aq as T_TEMPLATE_LITERAL_EXPRESSION, ar as isArrowExpressionObject, as as T_VAR_DECLARATION, at as T_DESTRUCTURE, w as CORE_NAMESPACE_VALUE, u as COMPOUND_COMP_ID } from "./parser-zOoMLvLx.js";
4
4
  import memoizeOne from "memoize-one";
5
5
  import { formatDistanceToNow } from "date-fns";
6
6
  class EngineError extends Error {
@@ -1937,10 +1937,7 @@ function evalLiteral(thisStack, expr, thread) {
1937
1937
  function getIdentifierScope(expr, evalContext, thread) {
1938
1938
  let type;
1939
1939
  let scope;
1940
- if (expr.isGlobal) {
1941
- scope = globalThis;
1942
- type = "global";
1943
- } else {
1940
+ {
1944
1941
  let currentThread = thread ?? evalContext.mainThread;
1945
1942
  while (currentThread && !scope) {
1946
1943
  if (currentThread.blocks) {
@@ -2121,6 +2118,9 @@ function evalBinaryCore(expr, thisStack, evalContext, thread) {
2121
2118
  case "in":
2122
2119
  value = l in r;
2123
2120
  break;
2121
+ case "instanceof":
2122
+ value = l instanceof r;
2123
+ break;
2124
2124
  case "==":
2125
2125
  value = l == r;
2126
2126
  break;
@@ -2487,7 +2487,7 @@ function hoistFunctionDeclarations(thread, statements) {
2487
2487
  block.constVars.add(id);
2488
2488
  });
2489
2489
  }
2490
- const SYNC_EVAL_TIMEOUT = 1e3;
2490
+ const DEFAULT_SYNC_EVAL_TIMEOUT = 1e3;
2491
2491
  function processStatementQueue(statements, evalContext, thread) {
2492
2492
  if (!thread) {
2493
2493
  thread = ensureMainThread(evalContext);
@@ -2505,8 +2505,9 @@ function processStatementQueue(statements, evalContext, thread) {
2505
2505
  maxLoops: 0
2506
2506
  };
2507
2507
  while (queue.length > 0) {
2508
- if (evalContext.startTick !== void 0 && (/* @__PURE__ */ new Date()).valueOf() - evalContext.startTick > SYNC_EVAL_TIMEOUT) {
2509
- throw new Error(`Sync evaluation timeout exceeded ${SYNC_EVAL_TIMEOUT} milliseconds`);
2508
+ const syncTimeout = evalContext.appContext?.appGlobals?.syncExecutionTimeout ?? DEFAULT_SYNC_EVAL_TIMEOUT;
2509
+ if (evalContext.startTick !== void 0 && (/* @__PURE__ */ new Date()).valueOf() - evalContext.startTick > syncTimeout) {
2510
+ throw new Error(`Sync evaluation timeout exceeded ${syncTimeout} milliseconds`);
2510
2511
  }
2511
2512
  const queueItem = queue.dequeue();
2512
2513
  thread.breakLabelValue = queue.length > 0 ? queue.peek().label : -1;