bank20baht-ui 0.12.1 → 0.12.2

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.
@@ -2,7 +2,7 @@ import { html as y } from "lit";
2
2
  import { customElement as g } from "lit/decorators.js";
3
3
  import { ifDefined as D } from "lit/directives/if-defined.js";
4
4
  import { BahtFieldBase as w } from "../field-base.js";
5
- import { formatIsoDateTime as u, formatIsoDate as c, dateModeOf as h, parseIsoDate as l, isoDaysOf as k, parseIsoDateTime as C, parseDisabledEntry as v } from "../../core/dates.js";
5
+ import { formatIsoDateTime as u, formatIsoDate as h, dateModeOf as c, parseIsoDate as l, isoDaysOf as k, parseIsoDateTime as v, parseDisabledEntry as C } from "../../core/dates.js";
6
6
  import { t as p } from "../../core/i18n.js";
7
7
  import { renderIcon as _ } from "./icons.js";
8
8
  var I = Object.getOwnPropertyDescriptor, B = (t, e, a, s) => {
@@ -12,7 +12,12 @@ var I = Object.getOwnPropertyDescriptor, B = (t, e, a, s) => {
12
12
  };
13
13
  let f, O;
14
14
  function x() {
15
- return O ?? (O = import("flatpickr").then((t) => f = t.default));
15
+ return O ?? (O = import("flatpickr").then(
16
+ (t) => f = t.default,
17
+ (t) => {
18
+ console.warn("[bahtui] <baht-datepicker> needs the `flatpickr` peer dependency", t);
19
+ }
20
+ ));
16
21
  }
17
22
  let m = class extends w {
18
23
  constructor() {
@@ -56,10 +61,8 @@ let m = class extends w {
56
61
  }
57
62
  if (((s = this.fp) == null ? void 0 : s.input) !== e || t.has("field") || t.has("disabled") || t.has("readonly")) {
58
63
  if (this.teardown(), !f) {
59
- this.pendingLoad ?? (this.pendingLoad = x().catch((i) => {
60
- console.warn("[bahtui] <baht-datepicker> needs the `flatpickr` peer dependency", i);
61
- }).then(() => {
62
- this.pendingLoad = void 0, this.isConnected && this.requestUpdate();
64
+ this.pendingLoad ?? (this.pendingLoad = x().then((i) => {
65
+ this.pendingLoad = void 0, i && this.isConnected && this.requestUpdate();
63
66
  }));
64
67
  return;
65
68
  }
@@ -81,11 +84,11 @@ let m = class extends w {
81
84
  /** Value-equality for the picker's own selection (minute-precise with `enable_time`). */
82
85
  sameInstants(t, e) {
83
86
  if (t.length !== e.length) return !1;
84
- const a = this.field.enable_time ? u : c;
87
+ const a = this.field.enable_time ? u : h;
85
88
  return t.every((s, i) => a(s) === a(e[i]));
86
89
  }
87
90
  options() {
88
- const t = this.field, e = h(t), a = l(t.min), s = l(t.max), i = b(t);
91
+ const t = this.field, e = c(t), a = l(t.min), s = l(t.max), i = b(t);
89
92
  return {
90
93
  static: !0,
91
94
  disableMobile: !0,
@@ -142,7 +145,7 @@ let m = class extends w {
142
145
  const t = this.fp;
143
146
  if (!t || !this.todayAllowed()) return;
144
147
  const e = this.field.enable_time ? E(/* @__PURE__ */ new Date()) : o(/* @__PURE__ */ new Date());
145
- switch (h(this.field)) {
148
+ switch (c(this.field)) {
146
149
  case "range":
147
150
  t.setDate([e, e], !0);
148
151
  break;
@@ -164,13 +167,13 @@ let m = class extends w {
164
167
  * a host may not always have a time to feed back (an edited record that
165
168
  * predates this field, for one). */
166
169
  datesOf(t) {
167
- const e = (a) => (this.field.enable_time ? C(a) : null) ?? l(a);
170
+ const e = (a) => (this.field.enable_time ? v(a) : null) ?? l(a);
168
171
  return k(t).map(e).filter((a) => a !== null);
169
172
  }
170
173
  /** flatpickr's selection -> the value shape of the field's mode. */
171
174
  toValue(t) {
172
- const e = this.field.enable_time ? u : c, a = t.map(e);
173
- switch (h(this.field)) {
175
+ const e = this.field.enable_time ? u : h, a = t.map(e);
176
+ switch (c(this.field)) {
174
177
  case "range":
175
178
  return a.length === 2 ? [a[0], a[1]] : null;
176
179
  case "multiple":
@@ -190,7 +193,7 @@ function E(t) {
190
193
  return new Date(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes());
191
194
  }
192
195
  function F(t, e) {
193
- return c(t) === c(e);
196
+ return h(t) === h(e);
194
197
  }
195
198
  function L(t, e) {
196
199
  if (t instanceof Date) return F(t, e);
@@ -204,7 +207,7 @@ function L(t, e) {
204
207
  function b(t) {
205
208
  const e = [];
206
209
  for (const s of t.disabled_dates ?? []) {
207
- const i = v(s);
210
+ const i = C(s);
208
211
  i && e.push(i[0].getTime() === i[1].getTime() ? i[0] : { from: i[0], to: i[1] });
209
212
  }
210
213
  const a = t.disabled_weekdays;
@@ -1,6 +1,6 @@
1
1
  import { nothing as r, html as h } from "lit";
2
2
  import { property as c, query as m, state as f, customElement as b } from "lit/decorators.js";
3
- import { boolOff as y, BahtElement as v, hasDom as p, adoptLightChildren as u } from "../base.js";
3
+ import { boolOff as v, BahtElement as y, hasDom as p, adoptLightChildren as u } from "../base.js";
4
4
  import { afterExit as g } from "../motion.js";
5
5
  import { t as $ } from "../../core/i18n.js";
6
6
  import { renderIllustration as k } from "./illustrations.js";
@@ -13,10 +13,10 @@ const E = {
13
13
  fromAttribute: (t) => t !== null && t !== "false",
14
14
  toAttribute: (t) => t ? "" : null
15
15
  };
16
- let s = class extends v {
16
+ let s = class extends y {
17
17
  constructor() {
18
18
  super(...arguments), this.open = !1, this.heading = "", this.description = "", this.showClose = !0, this.placement = "center", this.closeOnScrim = !1, this.closing = !1, this.closeToken = 0, this.previousFocus = null, this.onKeydown = (t) => {
19
- !this.open || s.openStack.at(-1) !== this || (t.key === "Escape" ? this.requestClose("escape") : t.key === "Tab" && this.trapFocus(t));
19
+ !this.open || s.openStack.at(-1) !== this || (t.key === "Escape" ? t.defaultPrevented || this.requestClose("escape") : t.key === "Tab" && this.trapFocus(t));
20
20
  };
21
21
  }
22
22
  get titleId() {
@@ -126,7 +126,7 @@ l([
126
126
  c()
127
127
  ], s.prototype, "description", 2);
128
128
  l([
129
- c({ attribute: "show-close", converter: y })
129
+ c({ attribute: "show-close", converter: v })
130
130
  ], s.prototype, "showClose", 2);
131
131
  l([
132
132
  c()
@@ -31,7 +31,7 @@ let a = class extends g {
31
31
  return c() ? ((t = this.querySelector(".baht-swipe-row-actions")) == null ? void 0 : t.offsetWidth) ?? 0 : 0;
32
32
  }
33
33
  onPointerdown(t) {
34
- !this.hasActions || t.button !== 0 || (this.start = {
34
+ !this.hasActions || t.button !== 0 || (this.swallowClick = !1, this.start = {
35
35
  id: t.pointerId,
36
36
  x: t.clientX,
37
37
  y: t.clientY,
@@ -2,6 +2,7 @@ export * from './types.js';
2
2
  export { defaultValue } from './defaults.js';
3
3
  export { approvalFields } from './approval.js';
4
4
  export { validateField, normalizeTagsValue } from './validators.js';
5
+ export { isUnsafePattern } from './pattern-safety.js';
5
6
  export { resolveViewFields } from './views.js';
6
7
  export { applyFlags, flagEnabled } from './flags.js';
7
8
  export { getCatalog, setCatalog, setLocale, t } from './i18n.js';
@@ -0,0 +1,24 @@
1
+ /**
2
+ * ReDoS guard for `pattern` validators (CLAUDE.md engine invariant: patterns
3
+ * nesting unbounded quantifiers are rejected). A small tokenizer turns the
4
+ * source into groups/alternatives/quantified items, then flags any group
5
+ * repeated more than twice whose body can be split between iterations in
6
+ * more than one way — the shape that makes a backtracking engine go
7
+ * exponential (or high-degree polynomial for a large bounded repeat):
8
+ *
9
+ * - every mandatory item of an alternative is itself unbounded:
10
+ * `(a+)+`, `((a+))+`, `(?<n>a+)+`, `(\w+\s?)+`, `(x+x+)+`, `(a*)*`
11
+ * - one alternative is unbounded on its own: `(a+|b)+`
12
+ * - two alternatives are spelled the same: `(a|a)+`
13
+ *
14
+ * A mandatory bounded atom (`(-[a-z]+)*`, `(abc+)+`) anchors each iteration
15
+ * and is accepted. Overlap between *different* alternatives (`(a|ab)+`) is
16
+ * not detected; patterns are builder-authored, so the goal is catching the
17
+ * classic authoring mistakes at save time and before the client compiles.
18
+ */
19
+ /**
20
+ * True when `source` backtracks catastrophically on hostile input (see module
21
+ * doc). Sources that do not compile return false — callers report those as
22
+ * invalid separately.
23
+ */
24
+ export declare function isUnsafePattern(source: string): boolean;
@@ -0,0 +1,78 @@
1
+ class o {
2
+ constructor(s) {
3
+ this.src = s, this.i = 0;
4
+ }
5
+ parseAlts() {
6
+ const s = [];
7
+ let e = this.i, i = [];
8
+ for (; this.i < this.src.length && this.src[this.i] !== ")"; ) {
9
+ if (this.src[this.i] === "|") {
10
+ s.push({ items: i, source: this.src.slice(e, this.i) }), this.i++, e = this.i, i = [];
11
+ continue;
12
+ }
13
+ i.push(this.quantify(this.atom()));
14
+ }
15
+ return s.push({ items: i, source: this.src.slice(e, this.i) }), s;
16
+ }
17
+ atom() {
18
+ const s = this.src[this.i++];
19
+ if (s === "\\") {
20
+ const e = this.src[this.i++];
21
+ return { min: 1, max: 1, zeroWidth: e === "b" || e === "B" };
22
+ }
23
+ return s === "[" ? (this.skipClass(), { min: 1, max: 1, zeroWidth: !1 }) : s === "(" ? this.group() : { min: 1, max: 1, zeroWidth: s === "^" || s === "$" };
24
+ }
25
+ skipClass() {
26
+ for (this.src[this.i] === "^" && this.i++, this.src[this.i] === "]" && this.i++; this.i < this.src.length && this.src[this.i] !== "]"; )
27
+ this.i += this.src[this.i] === "\\" ? 2 : 1;
28
+ this.i++;
29
+ }
30
+ group() {
31
+ let s = !1;
32
+ if (this.src[this.i] === "?") {
33
+ const i = this.src.slice(this.i + 1);
34
+ /^(?:[=!]|<[=!])/.test(i) ? (s = !0, this.i += i.startsWith("<") ? 3 : 2) : i.startsWith(":") ? this.i += 2 : i.startsWith("<") && (this.i = this.src.indexOf(">", this.i) + 1);
35
+ }
36
+ const e = this.parseAlts();
37
+ return this.i++, { min: 1, max: 1, zeroWidth: s, alts: e };
38
+ }
39
+ quantify(s) {
40
+ const e = this.src[this.i];
41
+ let i;
42
+ if (e === "*" ? i = [0, 1 / 0] : e === "+" ? i = [1, 1 / 0] : e === "?" && (i = [0, 1]), i)
43
+ this.i++;
44
+ else {
45
+ const r = /^\{(\d+)(,(\d*))?\}/.exec(this.src.slice(this.i));
46
+ if (!r) return s;
47
+ this.i += r[0].length;
48
+ const h = Number(r[1]);
49
+ i = [h, r[2] === void 0 ? h : r[3] === "" ? 1 / 0 : Number(r[3])];
50
+ }
51
+ return this.src[this.i] === "?" && this.i++, { ...s, min: s.min * i[0], max: s.max * i[1] };
52
+ }
53
+ }
54
+ function n(t) {
55
+ var s;
56
+ return t.zeroWidth ? !1 : t.max === 1 / 0 ? !0 : ((s = t.alts) == null ? void 0 : s.some(c)) ?? !1;
57
+ }
58
+ function c(t) {
59
+ const s = t.items.filter((i) => !i.zeroWidth), e = s.filter((i) => i.min > 0);
60
+ return e.length === 0 ? s.some(n) : e.every(n);
61
+ }
62
+ function l(t) {
63
+ return new Set(t.map((s) => s.source)).size < t.length;
64
+ }
65
+ function a(t) {
66
+ return t.alts ? t.max > 2 && (t.alts.some(c) || l(t.alts)) ? !0 : t.alts.some((s) => s.items.some(a)) : !1;
67
+ }
68
+ function u(t) {
69
+ try {
70
+ new RegExp(t);
71
+ } catch {
72
+ return !1;
73
+ }
74
+ return new o(t).parseAlts().some((i) => i.items.some(a));
75
+ }
76
+ export {
77
+ u as isUnsafePattern
78
+ };
@@ -1,6 +1,7 @@
1
- import { defaultValue as w } from "./defaults.js";
1
+ import { defaultValue as x } from "./defaults.js";
2
2
  import { compareValues as k } from "./engine/conditions.js";
3
- import { isoDaysOf as _, dateModeOf as L, rangeInteriorDays as A, isDateDisabled as b } from "./dates.js";
3
+ import { isUnsafePattern as _ } from "./pattern-safety.js";
4
+ import { isoDaysOf as L, dateModeOf as b, rangeInteriorDays as A, isDateDisabled as d } from "./dates.js";
4
5
  import { t as u } from "./i18n.js";
5
6
  const E = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
6
7
  function y(e) {
@@ -10,8 +11,8 @@ function C(e) {
10
11
  const t = [...e.validators ?? []], n = (o) => t.some((r) => r.type === o);
11
12
  return e.required && !n("required") && t.push({ type: "required" }), e.max_length !== void 0 && !n("maxLength") && t.push({ type: "maxLength", value: e.max_length }), e.min_length !== void 0 && !n("minLength") && t.push({ type: "minLength", value: e.min_length }), e.min !== void 0 && !n("min") && t.push({ type: "min", value: e.min }), e.max !== void 0 && !n("max") && t.push({ type: "max", value: e.max }), e.type === "email" && !n("email") && t.push({ type: "email" }), t;
12
13
  }
13
- const d = (e) => Array.isArray(e) ? e : [e];
14
- function l(e, t) {
14
+ const $ = (e) => Array.isArray(e) ? e : [e];
15
+ function f(e, t) {
15
16
  return (n, o) => {
16
17
  const r = Number(n.value);
17
18
  return Number.isNaN(r) ? (console.warn(
@@ -19,33 +20,33 @@ function l(e, t) {
19
20
  ), null) : typeof o != "string" ? null : (e === "minLength" ? o.length < r : o.length > r) ? n.message ?? u(e, { n: n.value }) : null;
20
21
  };
21
22
  }
22
- function f(e) {
23
- return (t, n) => d(n).some((r) => {
23
+ function h(e) {
24
+ return (t, n) => $(n).some((r) => {
24
25
  const s = k(r, t.value);
25
26
  return s !== null && (e === "min" ? s < 0 : s > 0);
26
27
  }) ? t.message ?? u(e, { n: t.value }) : null;
27
28
  }
28
- const $ = {
29
+ const q = {
29
30
  eq: (e) => e === 0,
30
31
  ne: (e) => e !== 0,
31
32
  gt: (e) => e > 0,
32
33
  gte: (e) => e >= 0,
33
34
  lt: (e) => e < 0,
34
35
  lte: (e) => e <= 0
35
- }, q = (e, t, n, o) => {
36
+ }, O = (e, t, n, o) => {
36
37
  const r = o == null ? void 0 : o[e.field ?? ""];
37
38
  if (r === void 0 || y(r)) return null;
38
39
  const s = k(t, r);
39
40
  if (s === null) return null;
40
41
  const i = e.op ?? "eq";
41
- if ($[i](s)) return null;
42
+ if (q[i](s)) return null;
42
43
  const a = `compare${i[0].toUpperCase()}${i.slice(1)}`;
43
44
  return e.message ?? u(a, { other: e.field });
44
45
  }, R = (e, t) => {
45
46
  if (typeof t != "string") return null;
46
- const n = D(String(e.value));
47
+ const n = M(String(e.value));
47
48
  return n ? n.test(t) ? null : e.message ?? u("pattern") : null;
48
- }, O = (e, t, n) => {
49
+ }, N = (e, t, n) => {
49
50
  var s;
50
51
  const o = (s = n == null ? void 0 : n.validators) == null ? void 0 : s[e.fn ?? ""];
51
52
  if (!o)
@@ -54,20 +55,20 @@ const $ = {
54
55
  return r === null ? null : e.message ?? r;
55
56
  }, v = {
56
57
  required: (e, t) => y(t) ? e.message ?? u("required") : null,
57
- minLength: l("minLength", "min_length"),
58
- maxLength: l("maxLength", "max_length"),
59
- min: f("min"),
60
- max: f("max"),
58
+ minLength: f("minLength", "min_length"),
59
+ maxLength: f("maxLength", "max_length"),
60
+ min: h("min"),
61
+ max: h("max"),
61
62
  pattern: R,
62
63
  email: (e, t) => typeof t == "string" && !E.test(t) ? e.message ?? u("email") : null,
63
- compare: q,
64
- custom: O
64
+ compare: O,
65
+ custom: N
65
66
  };
66
- function N(e, t, n, o) {
67
+ function D(e, t, n, o) {
67
68
  return v[e.type](e, t, n, o);
68
69
  }
69
70
  const g = /* @__PURE__ */ new Map();
70
- function D(e) {
71
+ function M(e) {
71
72
  let t = g.get(e);
72
73
  if (t === void 0) {
73
74
  try {
@@ -75,11 +76,13 @@ function D(e) {
75
76
  } catch {
76
77
  console.warn(`[bahtui] invalid pattern ${JSON.stringify(e)} — skipped`), t = null;
77
78
  }
78
- g.set(e, t);
79
+ t && _(e) && (console.warn(
80
+ `[bahtui] unsafe pattern ${JSON.stringify(e)} (nested unbounded quantifiers) — skipped`
81
+ ), t = null), g.set(e, t);
79
82
  }
80
83
  return t;
81
84
  }
82
- function M(e, t) {
85
+ function P(e, t) {
83
86
  if (!Array.isArray(e)) return [];
84
87
  const n = T(t), o = /* @__PURE__ */ new Set(), r = [];
85
88
  for (const s of e) {
@@ -106,19 +109,19 @@ function V(e, t) {
106
109
  return t.some((r) => r.length > o) && n.push({ key: e.key, message: u("tagTooLong", { n: o }) }), n;
107
110
  }
108
111
  function z(e, t, n, o, r) {
109
- const s = [], i = e.type === "tags" ? M(t) : t, a = C(e), c = y(i);
112
+ const s = [], i = e.type === "tags" ? P(t) : t, a = C(e), c = y(i);
110
113
  for (const m of a) {
111
114
  if (m.type !== "required" && c) continue;
112
- const p = N(m, i, n, o);
115
+ const p = D(m, i, n, o);
113
116
  p !== null && s.push({ key: e.key, message: p });
114
117
  }
115
- return e.type === "repeater" && s.push(...S(e, i, n, r)), e.type === "file" && s.push(...I(e, i)), e.type === "date" && !c && s.push(...P(e, i)), e.type === "tags" && s.push(...V(e, i)), s;
118
+ return e.type === "repeater" && s.push(...J(e, i, n, r)), e.type === "file" && s.push(...I(e, i)), e.type === "date" && !c && s.push(...S(e, i)), e.type === "tags" && s.push(...V(e, i)), s;
116
119
  }
117
- function P(e, t) {
120
+ function S(e, t) {
118
121
  var o, r;
119
122
  if (!((o = e.disabled_dates) != null && o.length) && !((r = e.disabled_weekdays) != null && r.length)) return [];
120
- const n = _(t);
121
- return L(e) === "range" && n.length === 2 && n.push(...A(n[0], n[1])), n.some((s) => b(e, s)) ? [{ key: e.key, message: u("dateDisabled") }] : [];
123
+ const n = L(t);
124
+ return b(e) === "range" && n.length === 2 && n.push(...A(n[0], n[1])), n.some((s) => d(e, s)) ? [{ key: e.key, message: u("dateDisabled") }] : [];
122
125
  }
123
126
  function W(e) {
124
127
  return e !== null && typeof e == "object" && typeof e.url == "string" && typeof e.size == "number" && typeof e.name == "string";
@@ -135,7 +138,7 @@ function I(e, t) {
135
138
  e.max_size !== void 0 && r.size > e.max_size && o.push({ key: e.key, message: u("fileTooLarge") }), e.accept && !j(e.accept, r.name, r.type ?? "") && o.push({ key: e.key, message: u("fileTypeNotAllowed") });
136
139
  return o;
137
140
  }
138
- function S(e, t, n, o) {
141
+ function J(e, t, n, o) {
139
142
  if (t != null && !Array.isArray(t))
140
143
  return [{ key: e.key, message: u("pattern") }];
141
144
  const r = Array.isArray(t) ? t : [], s = [];
@@ -149,25 +152,25 @@ function S(e, t, n, o) {
149
152
  }
150
153
  const i = [...e.fields ?? []].sort((a, c) => a.order - c.order).filter((a) => a.type !== "label" && a.type !== "section" && a.type !== "repeater");
151
154
  return r.forEach((a, c) => {
152
- s.push(...F(e, i, a, c, n, o));
155
+ s.push(...U(e, i, a, c, n, o));
153
156
  }), s;
154
157
  }
155
- function F(e, t, n, o, r, s) {
158
+ function U(e, t, n, o, r, s) {
156
159
  const i = n !== null && typeof n == "object" && !Array.isArray(n) ? n : {}, a = {};
157
160
  for (const m of t)
158
- a[m.key] = Object.hasOwn(i, m.key) ? i[m.key] : w(m);
161
+ a[m.key] = Object.hasOwn(i, m.key) ? i[m.key] : x(m);
159
162
  const c = [];
160
163
  for (const m of t) {
161
164
  const p = s == null ? void 0 : s[`${e.key}[${o}].${m.key}`];
162
165
  if (p && !p.visible) continue;
163
- const x = p && p.required !== !!m.required ? { ...m, required: p.required } : m;
164
- for (const h of z(x, a[m.key], r, a))
165
- c.push({ key: `${e.key}[${o}].${h.key}`, message: h.message });
166
+ const w = p && p.required !== !!m.required ? { ...m, required: p.required } : m;
167
+ for (const l of z(w, a[m.key], r, a))
168
+ c.push({ key: `${e.key}[${o}].${l.key}`, message: l.message });
166
169
  }
167
170
  return c;
168
171
  }
169
172
  export {
170
- M as normalizeTagsValue,
173
+ P as normalizeTagsValue,
171
174
  T as optionKeyLookup,
172
175
  z as validateField
173
176
  };
package/dist/engine.js CHANGED
@@ -1,48 +1,50 @@
1
1
  import { defaultValue as r } from "./core/defaults.js";
2
2
  import { approvalFields as t } from "./core/approval.js";
3
3
  import { normalizeTagsValue as p, validateField as s } from "./core/validators.js";
4
- import { resolveViewFields as m } from "./core/views.js";
5
- import { applyFlags as x, flagEnabled as d } from "./core/flags.js";
6
- import { getCatalog as c, setCatalog as D, setLocale as g, t as u } from "./core/i18n.js";
7
- import { evaluate as C } from "./core/engine/evaluate.js";
8
- import { resolveNext as R, walkPath as I } from "./core/engine/graph.js";
9
- import { conditionRowRefs as T, evalCondition as V, parseRowRef as w, readRef as y } from "./core/engine/conditions.js";
10
- import { evalValueExpr as P } from "./core/engine/expressions.js";
11
- import { MAX_SCRIPT_DEPTH as b, createScriptContext as h, hasScripts as A, runScripts as L } from "./core/engine/scripts.js";
12
- import { displayValue as M } from "./core/display.js";
13
- import { LEGACY_KEY_MAP as k, normalizeLegacySchema as G } from "./core/legacy.js";
14
- import { formatIsoDate as K, formatIsoDateTime as N, isDateDisabled as X, parseDisabledEntry as j, parseIsoDate as q, parseIsoDateTime as B } from "./core/dates.js";
4
+ import { isUnsafePattern as m } from "./core/pattern-safety.js";
5
+ import { resolveViewFields as x } from "./core/views.js";
6
+ import { applyFlags as n, flagEnabled as c } from "./core/flags.js";
7
+ import { getCatalog as g, setCatalog as u, setLocale as v, t as C } from "./core/i18n.js";
8
+ import { evaluate as R } from "./core/engine/evaluate.js";
9
+ import { resolveNext as P, walkPath as S } from "./core/engine/graph.js";
10
+ import { conditionRowRefs as V, evalCondition as w, parseRowRef as y, readRef as F } from "./core/engine/conditions.js";
11
+ import { evalValueExpr as b } from "./core/engine/expressions.js";
12
+ import { MAX_SCRIPT_DEPTH as A, createScriptContext as L, hasScripts as z, runScripts as M } from "./core/engine/scripts.js";
13
+ import { displayValue as k } from "./core/display.js";
14
+ import { LEGACY_KEY_MAP as H, normalizeLegacySchema as K } from "./core/legacy.js";
15
+ import { formatIsoDate as U, formatIsoDateTime as X, isDateDisabled as j, parseDisabledEntry as q, parseIsoDate as B, parseIsoDateTime as J } from "./core/dates.js";
15
16
  export {
16
- k as LEGACY_KEY_MAP,
17
- b as MAX_SCRIPT_DEPTH,
18
- x as applyFlags,
17
+ H as LEGACY_KEY_MAP,
18
+ A as MAX_SCRIPT_DEPTH,
19
+ n as applyFlags,
19
20
  t as approvalFields,
20
- T as conditionRowRefs,
21
- h as createScriptContext,
21
+ V as conditionRowRefs,
22
+ L as createScriptContext,
22
23
  r as defaultValue,
23
- M as displayValue,
24
- V as evalCondition,
25
- P as evalValueExpr,
26
- C as evaluate,
27
- d as flagEnabled,
28
- K as formatIsoDate,
29
- N as formatIsoDateTime,
30
- c as getCatalog,
31
- A as hasScripts,
32
- X as isDateDisabled,
33
- G as normalizeLegacySchema,
24
+ k as displayValue,
25
+ w as evalCondition,
26
+ b as evalValueExpr,
27
+ R as evaluate,
28
+ c as flagEnabled,
29
+ U as formatIsoDate,
30
+ X as formatIsoDateTime,
31
+ g as getCatalog,
32
+ z as hasScripts,
33
+ j as isDateDisabled,
34
+ m as isUnsafePattern,
35
+ K as normalizeLegacySchema,
34
36
  p as normalizeTagsValue,
35
- j as parseDisabledEntry,
36
- q as parseIsoDate,
37
- B as parseIsoDateTime,
38
- w as parseRowRef,
39
- y as readRef,
40
- R as resolveNext,
41
- m as resolveViewFields,
42
- L as runScripts,
43
- D as setCatalog,
44
- g as setLocale,
45
- u as t,
37
+ q as parseDisabledEntry,
38
+ B as parseIsoDate,
39
+ J as parseIsoDateTime,
40
+ y as parseRowRef,
41
+ F as readRef,
42
+ P as resolveNext,
43
+ x as resolveViewFields,
44
+ M as runScripts,
45
+ u as setCatalog,
46
+ v as setLocale,
47
+ C as t,
46
48
  s as validateField,
47
- I as walkPath
49
+ S as walkPath
48
50
  };
package/dist/index.js CHANGED
@@ -1,191 +1,193 @@
1
1
  import { defaultValue as o } from "./core/defaults.js";
2
2
  import { approvalFields as a } from "./core/approval.js";
3
3
  import { normalizeTagsValue as m, validateField as f } from "./core/validators.js";
4
- import { resolveViewFields as h } from "./core/views.js";
5
- import { applyFlags as l, flagEnabled as i } from "./core/flags.js";
6
- import { getCatalog as n, setCatalog as d, setLocale as c, t as S } from "./core/i18n.js";
7
- import { evaluate as g } from "./core/engine/evaluate.js";
8
- import { resolveNext as C, walkPath as R } from "./core/engine/graph.js";
9
- import { conditionRowRefs as E, evalCondition as k, parseRowRef as v, readRef as F } from "./core/engine/conditions.js";
10
- import { evalValueExpr as y } from "./core/engine/expressions.js";
11
- import { MAX_SCRIPT_DEPTH as b, createScriptContext as w, hasScripts as A, runScripts as L } from "./core/engine/scripts.js";
12
- import { displayValue as M } from "./core/display.js";
13
- import { LEGACY_KEY_MAP as N, normalizeLegacySchema as O } from "./core/legacy.js";
14
- import { formatIsoDate as Y, formatIsoDateTime as z, isDateDisabled as G, parseDisabledEntry as K, parseIsoDate as q, parseIsoDateTime as U } from "./core/dates.js";
15
- import { BahtButton as X } from "./components/primitives/baht-button.js";
16
- import { isIconName as J, renderIcon as Q } from "./components/primitives/icons.js";
17
- import { BahtBadge as $ } from "./components/primitives/baht-badge.js";
18
- import { BahtAvatar as tr } from "./components/primitives/baht-avatar.js";
19
- import { BahtCode as er } from "./components/primitives/baht-code.js";
20
- import { BahtTable as pr } from "./components/primitives/baht-table.js";
21
- import { BahtList as fr } from "./components/primitives/baht-list.js";
22
- import { BahtPagination as hr } from "./components/primitives/baht-pagination.js";
23
- import { BahtModal as lr } from "./components/primitives/baht-modal.js";
24
- import { BahtToast as sr } from "./components/primitives/baht-toast.js";
25
- import { BahtTooltip as dr } from "./components/primitives/baht-tooltip.js";
26
- import { BahtAlert as Sr } from "./components/primitives/baht-alert.js";
27
- import { BahtRating as gr } from "./components/primitives/baht-rating.js";
28
- import { BahtRange as Cr } from "./components/primitives/baht-range.js";
29
- import { BahtOtp as Dr } from "./components/primitives/baht-otp.js";
30
- import { BahtFilter as kr } from "./components/primitives/baht-filter.js";
31
- import { BahtSwipeRow as Fr } from "./components/primitives/baht-swipe-row.js";
32
- import { BahtSkeleton as yr } from "./components/primitives/baht-skeleton.js";
33
- import { BahtProgress as br } from "./components/primitives/baht-progress.js";
34
- import { BahtProgressRing as Ar } from "./components/primitives/baht-progress-ring.js";
35
- import { BahtSpinner as _r } from "./components/primitives/baht-spinner.js";
36
- import { BahtLoadingOverlay as Vr } from "./components/primitives/baht-loading-overlay.js";
37
- import { BahtCard as Or } from "./components/primitives/baht-card.js";
38
- import { BahtFieldset as Yr } from "./components/primitives/baht-fieldset.js";
39
- import { BahtTimeline as Gr } from "./components/primitives/baht-timeline.js";
40
- import { BahtAccordion as qr } from "./components/primitives/baht-accordion.js";
41
- import { BahtLink as Wr } from "./components/primitives/baht-link.js";
42
- import { BahtBreadcrumbs as jr } from "./components/primitives/baht-breadcrumbs.js";
43
- import { BahtInput as Qr } from "./components/primitives/baht-input.js";
44
- import { BahtTextarea as $r } from "./components/primitives/baht-textarea.js";
45
- import { BahtNumber as tt } from "./components/primitives/baht-number.js";
46
- import { BahtCurrency as et } from "./components/primitives/baht-currency.js";
47
- import { BahtSelect as pt } from "./components/primitives/baht-select.js";
48
- import { BahtMultiselect as ft } from "./components/primitives/baht-multiselect.js";
49
- import { BahtTags as ht } from "./components/primitives/baht-tags.js";
50
- import { BahtCheckbox as lt } from "./components/primitives/baht-checkbox.js";
51
- import { BahtRadio as st } from "./components/primitives/baht-radio.js";
52
- import { BahtToggle as dt } from "./components/primitives/baht-toggle.js";
53
- import { BahtDatepicker as St } from "./components/primitives/baht-datepicker.js";
54
- import { BahtFile as gt } from "./components/primitives/baht-file.js";
55
- import { BahtUpload as Ct } from "./components/primitives/baht-upload.js";
56
- import { BahtText as Dt } from "./components/primitives/baht-text.js";
57
- import { BahtSection as kt } from "./components/primitives/baht-section.js";
58
- import { BahtStatChart as Ft } from "./components/primitives/baht-stat-chart.js";
59
- import { BahtStat as yt } from "./components/primitives/baht-stat.js";
60
- import { BahtSparkline as bt } from "./components/primitives/baht-sparkline.js";
61
- import { BahtDonutChart as At } from "./components/primitives/baht-donut-chart.js";
62
- import { BahtBarChart as _t } from "./components/primitives/baht-bar-chart.js";
63
- import { BahtLineChart as Vt } from "./components/primitives/baht-line-chart.js";
64
- import { BahtHeatmap as Ot } from "./components/primitives/baht-heatmap.js";
65
- import { BahtMeter as Yt } from "./components/primitives/baht-meter.js";
66
- import { BahtChartBase as Gt, chartColor as Kt, chartSeqColor as qt, foldOther as Ut, formatValue as Wt, linearScale as Xt, niceTicks as jt, renderTableTwin as Jt } from "./components/primitives/charts.js";
67
- import { BahtEmptyState as Zt } from "./components/primitives/baht-empty-state.js";
68
- import { BahtErrorState as ro } from "./components/primitives/baht-error-state.js";
69
- import { BahtKeyvalueEditor as oo } from "./components/primitives/baht-keyvalue-editor.js";
70
- import { BahtReferencePicker as ao } from "./components/primitives/baht-reference-picker.js";
71
- import { BahtTypeahead as mo } from "./components/primitives/baht-typeahead.js";
72
- import { BahtRepeater as xo } from "./components/primitives/baht-repeater.js";
73
- import { BahtSteps as Bo } from "./components/primitives/baht-steps.js";
74
- import { TAG_FOR_TYPE as io } from "./components/primitives/tag-map.js";
75
- import { isIllustrationName as no, renderIllustration as co } from "./components/primitives/illustrations.js";
76
- import { BahtFieldBase as To } from "./components/field-base.js";
77
- import { BahtElement as uo, SSR_STASH as Co, adoptLightChildren as Ro, hasDom as Do, hasSsrMarkup as Eo } from "./components/base.js";
78
- import { BahtForm as vo } from "./components/baht-form.js";
79
- import { BahtWorkflow as Io } from "./components/baht-workflow.js";
4
+ import { isUnsafePattern as h } from "./core/pattern-safety.js";
5
+ import { resolveViewFields as l } from "./core/views.js";
6
+ import { applyFlags as s, flagEnabled as n } from "./core/flags.js";
7
+ import { getCatalog as c, setCatalog as S, setLocale as T, t as g } from "./core/i18n.js";
8
+ import { evaluate as C } from "./core/engine/evaluate.js";
9
+ import { resolveNext as D, walkPath as E } from "./core/engine/graph.js";
10
+ import { conditionRowRefs as v, evalCondition as F, parseRowRef as I, readRef as P } from "./core/engine/conditions.js";
11
+ import { evalValueExpr as b } from "./core/engine/expressions.js";
12
+ import { MAX_SCRIPT_DEPTH as A, createScriptContext as L, hasScripts as _, runScripts as M } from "./core/engine/scripts.js";
13
+ import { displayValue as N } from "./core/display.js";
14
+ import { LEGACY_KEY_MAP as H, normalizeLegacySchema as Y } from "./core/legacy.js";
15
+ import { formatIsoDate as G, formatIsoDateTime as K, isDateDisabled as U, parseDisabledEntry as q, parseIsoDate as W, parseIsoDateTime as X } from "./core/dates.js";
16
+ import { BahtButton as J } from "./components/primitives/baht-button.js";
17
+ import { isIconName as Z, renderIcon as $ } from "./components/primitives/icons.js";
18
+ import { BahtBadge as tr } from "./components/primitives/baht-badge.js";
19
+ import { BahtAvatar as er } from "./components/primitives/baht-avatar.js";
20
+ import { BahtCode as pr } from "./components/primitives/baht-code.js";
21
+ import { BahtTable as fr } from "./components/primitives/baht-table.js";
22
+ import { BahtList as hr } from "./components/primitives/baht-list.js";
23
+ import { BahtPagination as lr } from "./components/primitives/baht-pagination.js";
24
+ import { BahtModal as sr } from "./components/primitives/baht-modal.js";
25
+ import { BahtToast as dr } from "./components/primitives/baht-toast.js";
26
+ import { BahtTooltip as Sr } from "./components/primitives/baht-tooltip.js";
27
+ import { BahtAlert as gr } from "./components/primitives/baht-alert.js";
28
+ import { BahtRating as Cr } from "./components/primitives/baht-rating.js";
29
+ import { BahtRange as Dr } from "./components/primitives/baht-range.js";
30
+ import { BahtOtp as kr } from "./components/primitives/baht-otp.js";
31
+ import { BahtFilter as Fr } from "./components/primitives/baht-filter.js";
32
+ import { BahtSwipeRow as Pr } from "./components/primitives/baht-swipe-row.js";
33
+ import { BahtSkeleton as br } from "./components/primitives/baht-skeleton.js";
34
+ import { BahtProgress as Ar } from "./components/primitives/baht-progress.js";
35
+ import { BahtProgressRing as _r } from "./components/primitives/baht-progress-ring.js";
36
+ import { BahtSpinner as Vr } from "./components/primitives/baht-spinner.js";
37
+ import { BahtLoadingOverlay as Or } from "./components/primitives/baht-loading-overlay.js";
38
+ import { BahtCard as Yr } from "./components/primitives/baht-card.js";
39
+ import { BahtFieldset as Gr } from "./components/primitives/baht-fieldset.js";
40
+ import { BahtTimeline as Ur } from "./components/primitives/baht-timeline.js";
41
+ import { BahtAccordion as Wr } from "./components/primitives/baht-accordion.js";
42
+ import { BahtLink as jr } from "./components/primitives/baht-link.js";
43
+ import { BahtBreadcrumbs as Qr } from "./components/primitives/baht-breadcrumbs.js";
44
+ import { BahtInput as $r } from "./components/primitives/baht-input.js";
45
+ import { BahtTextarea as tt } from "./components/primitives/baht-textarea.js";
46
+ import { BahtNumber as et } from "./components/primitives/baht-number.js";
47
+ import { BahtCurrency as pt } from "./components/primitives/baht-currency.js";
48
+ import { BahtSelect as ft } from "./components/primitives/baht-select.js";
49
+ import { BahtMultiselect as ht } from "./components/primitives/baht-multiselect.js";
50
+ import { BahtTags as lt } from "./components/primitives/baht-tags.js";
51
+ import { BahtCheckbox as st } from "./components/primitives/baht-checkbox.js";
52
+ import { BahtRadio as dt } from "./components/primitives/baht-radio.js";
53
+ import { BahtToggle as St } from "./components/primitives/baht-toggle.js";
54
+ import { BahtDatepicker as gt } from "./components/primitives/baht-datepicker.js";
55
+ import { BahtFile as Ct } from "./components/primitives/baht-file.js";
56
+ import { BahtUpload as Dt } from "./components/primitives/baht-upload.js";
57
+ import { BahtText as kt } from "./components/primitives/baht-text.js";
58
+ import { BahtSection as Ft } from "./components/primitives/baht-section.js";
59
+ import { BahtStatChart as Pt } from "./components/primitives/baht-stat-chart.js";
60
+ import { BahtStat as bt } from "./components/primitives/baht-stat.js";
61
+ import { BahtSparkline as At } from "./components/primitives/baht-sparkline.js";
62
+ import { BahtDonutChart as _t } from "./components/primitives/baht-donut-chart.js";
63
+ import { BahtBarChart as Vt } from "./components/primitives/baht-bar-chart.js";
64
+ import { BahtLineChart as Ot } from "./components/primitives/baht-line-chart.js";
65
+ import { BahtHeatmap as Yt } from "./components/primitives/baht-heatmap.js";
66
+ import { BahtMeter as Gt } from "./components/primitives/baht-meter.js";
67
+ import { BahtChartBase as Ut, chartColor as qt, chartSeqColor as Wt, foldOther as Xt, formatValue as jt, linearScale as Jt, niceTicks as Qt, renderTableTwin as Zt } from "./components/primitives/charts.js";
68
+ import { BahtEmptyState as ro } from "./components/primitives/baht-empty-state.js";
69
+ import { BahtErrorState as oo } from "./components/primitives/baht-error-state.js";
70
+ import { BahtKeyvalueEditor as ao } from "./components/primitives/baht-keyvalue-editor.js";
71
+ import { BahtReferencePicker as mo } from "./components/primitives/baht-reference-picker.js";
72
+ import { BahtTypeahead as xo } from "./components/primitives/baht-typeahead.js";
73
+ import { BahtRepeater as Bo } from "./components/primitives/baht-repeater.js";
74
+ import { BahtSteps as io } from "./components/primitives/baht-steps.js";
75
+ import { TAG_FOR_TYPE as no } from "./components/primitives/tag-map.js";
76
+ import { isIllustrationName as So, renderIllustration as To } from "./components/primitives/illustrations.js";
77
+ import { BahtFieldBase as uo } from "./components/field-base.js";
78
+ import { BahtElement as Ro, SSR_STASH as Do, adoptLightChildren as Eo, hasDom as ko, hasSsrMarkup as vo } from "./components/base.js";
79
+ import { BahtForm as Io } from "./components/baht-form.js";
80
+ import { BahtWorkflow as yo } from "./components/baht-workflow.js";
80
81
  export {
81
- qr as BahtAccordion,
82
- Sr as BahtAlert,
83
- tr as BahtAvatar,
84
- $ as BahtBadge,
85
- _t as BahtBarChart,
86
- jr as BahtBreadcrumbs,
87
- X as BahtButton,
88
- Or as BahtCard,
89
- Gt as BahtChartBase,
90
- lt as BahtCheckbox,
91
- er as BahtCode,
92
- et as BahtCurrency,
93
- St as BahtDatepicker,
94
- At as BahtDonutChart,
95
- uo as BahtElement,
96
- Zt as BahtEmptyState,
97
- ro as BahtErrorState,
98
- To as BahtFieldBase,
99
- Yr as BahtFieldset,
100
- gt as BahtFile,
101
- kr as BahtFilter,
102
- vo as BahtForm,
103
- Ot as BahtHeatmap,
104
- Qr as BahtInput,
105
- oo as BahtKeyvalueEditor,
106
- Vt as BahtLineChart,
107
- Wr as BahtLink,
108
- fr as BahtList,
109
- Vr as BahtLoadingOverlay,
110
- Yt as BahtMeter,
111
- lr as BahtModal,
112
- ft as BahtMultiselect,
113
- tt as BahtNumber,
114
- Dr as BahtOtp,
115
- hr as BahtPagination,
116
- br as BahtProgress,
117
- Ar as BahtProgressRing,
118
- st as BahtRadio,
119
- Cr as BahtRange,
120
- gr as BahtRating,
121
- ao as BahtReferencePicker,
122
- xo as BahtRepeater,
123
- kt as BahtSection,
124
- pt as BahtSelect,
125
- yr as BahtSkeleton,
126
- bt as BahtSparkline,
127
- _r as BahtSpinner,
128
- yt as BahtStat,
129
- Ft as BahtStatChart,
130
- Bo as BahtSteps,
131
- Fr as BahtSwipeRow,
132
- pr as BahtTable,
133
- ht as BahtTags,
134
- Dt as BahtText,
135
- $r as BahtTextarea,
136
- Gr as BahtTimeline,
137
- sr as BahtToast,
138
- dt as BahtToggle,
139
- dr as BahtTooltip,
140
- mo as BahtTypeahead,
141
- Ct as BahtUpload,
142
- Io as BahtWorkflow,
143
- N as LEGACY_KEY_MAP,
144
- b as MAX_SCRIPT_DEPTH,
145
- Co as SSR_STASH,
146
- io as TAG_FOR_TYPE,
147
- Ro as adoptLightChildren,
148
- l as applyFlags,
82
+ Wr as BahtAccordion,
83
+ gr as BahtAlert,
84
+ er as BahtAvatar,
85
+ tr as BahtBadge,
86
+ Vt as BahtBarChart,
87
+ Qr as BahtBreadcrumbs,
88
+ J as BahtButton,
89
+ Yr as BahtCard,
90
+ Ut as BahtChartBase,
91
+ st as BahtCheckbox,
92
+ pr as BahtCode,
93
+ pt as BahtCurrency,
94
+ gt as BahtDatepicker,
95
+ _t as BahtDonutChart,
96
+ Ro as BahtElement,
97
+ ro as BahtEmptyState,
98
+ oo as BahtErrorState,
99
+ uo as BahtFieldBase,
100
+ Gr as BahtFieldset,
101
+ Ct as BahtFile,
102
+ Fr as BahtFilter,
103
+ Io as BahtForm,
104
+ Yt as BahtHeatmap,
105
+ $r as BahtInput,
106
+ ao as BahtKeyvalueEditor,
107
+ Ot as BahtLineChart,
108
+ jr as BahtLink,
109
+ hr as BahtList,
110
+ Or as BahtLoadingOverlay,
111
+ Gt as BahtMeter,
112
+ sr as BahtModal,
113
+ ht as BahtMultiselect,
114
+ et as BahtNumber,
115
+ kr as BahtOtp,
116
+ lr as BahtPagination,
117
+ Ar as BahtProgress,
118
+ _r as BahtProgressRing,
119
+ dt as BahtRadio,
120
+ Dr as BahtRange,
121
+ Cr as BahtRating,
122
+ mo as BahtReferencePicker,
123
+ Bo as BahtRepeater,
124
+ Ft as BahtSection,
125
+ ft as BahtSelect,
126
+ br as BahtSkeleton,
127
+ At as BahtSparkline,
128
+ Vr as BahtSpinner,
129
+ bt as BahtStat,
130
+ Pt as BahtStatChart,
131
+ io as BahtSteps,
132
+ Pr as BahtSwipeRow,
133
+ fr as BahtTable,
134
+ lt as BahtTags,
135
+ kt as BahtText,
136
+ tt as BahtTextarea,
137
+ Ur as BahtTimeline,
138
+ dr as BahtToast,
139
+ St as BahtToggle,
140
+ Sr as BahtTooltip,
141
+ xo as BahtTypeahead,
142
+ Dt as BahtUpload,
143
+ yo as BahtWorkflow,
144
+ H as LEGACY_KEY_MAP,
145
+ A as MAX_SCRIPT_DEPTH,
146
+ Do as SSR_STASH,
147
+ no as TAG_FOR_TYPE,
148
+ Eo as adoptLightChildren,
149
+ s as applyFlags,
149
150
  a as approvalFields,
150
- Kt as chartColor,
151
- qt as chartSeqColor,
152
- E as conditionRowRefs,
153
- w as createScriptContext,
151
+ qt as chartColor,
152
+ Wt as chartSeqColor,
153
+ v as conditionRowRefs,
154
+ L as createScriptContext,
154
155
  o as defaultValue,
155
- M as displayValue,
156
- k as evalCondition,
157
- y as evalValueExpr,
158
- g as evaluate,
159
- i as flagEnabled,
160
- Ut as foldOther,
161
- Y as formatIsoDate,
162
- z as formatIsoDateTime,
163
- Wt as formatValue,
164
- n as getCatalog,
165
- Do as hasDom,
166
- A as hasScripts,
167
- Eo as hasSsrMarkup,
168
- G as isDateDisabled,
169
- J as isIconName,
170
- no as isIllustrationName,
171
- Xt as linearScale,
172
- jt as niceTicks,
173
- O as normalizeLegacySchema,
156
+ N as displayValue,
157
+ F as evalCondition,
158
+ b as evalValueExpr,
159
+ C as evaluate,
160
+ n as flagEnabled,
161
+ Xt as foldOther,
162
+ G as formatIsoDate,
163
+ K as formatIsoDateTime,
164
+ jt as formatValue,
165
+ c as getCatalog,
166
+ ko as hasDom,
167
+ _ as hasScripts,
168
+ vo as hasSsrMarkup,
169
+ U as isDateDisabled,
170
+ Z as isIconName,
171
+ So as isIllustrationName,
172
+ h as isUnsafePattern,
173
+ Jt as linearScale,
174
+ Qt as niceTicks,
175
+ Y as normalizeLegacySchema,
174
176
  m as normalizeTagsValue,
175
- K as parseDisabledEntry,
176
- q as parseIsoDate,
177
- U as parseIsoDateTime,
178
- v as parseRowRef,
179
- F as readRef,
180
- Q as renderIcon,
181
- co as renderIllustration,
182
- Jt as renderTableTwin,
183
- C as resolveNext,
184
- h as resolveViewFields,
185
- L as runScripts,
186
- d as setCatalog,
187
- c as setLocale,
188
- S as t,
177
+ q as parseDisabledEntry,
178
+ W as parseIsoDate,
179
+ X as parseIsoDateTime,
180
+ I as parseRowRef,
181
+ P as readRef,
182
+ $ as renderIcon,
183
+ To as renderIllustration,
184
+ Zt as renderTableTwin,
185
+ D as resolveNext,
186
+ l as resolveViewFields,
187
+ M as runScripts,
188
+ S as setCatalog,
189
+ T as setLocale,
190
+ g as t,
189
191
  f as validateField,
190
- R as walkPath
192
+ E as walkPath
191
193
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "bank20baht-ui",
4
- "version": "0.12.1",
4
+ "version": "0.12.2",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bank20baht-ui",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "type": "module",
5
5
  "description": "JSON-driven form + workflow engine. Send JSON in, get an interactive form out.",
6
6
  "license": "MIT",