@mapples/inlang 1.1.2 → 1.6.0-beta.20260916105611

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/CHANGELOG.md ADDED
@@ -0,0 +1,53 @@
1
+ # @mapples/inlang
2
+
3
+ ## 1.6.0-beta.20260916105611
4
+
5
+ ### Minor Changes
6
+
7
+ - a6c5872: All `@mapples/*` runtime packages now share one version and are versioned and published together from `mapplesorg/mapples-kit`; `mapples-open-kit` is a read-only mirror of the source.
8
+
9
+ ## 1.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 40751c7: Writable variables runtime: `@mapples/state` gains writable variables, action commands and `StateActionHandler` (and stops writing refs during render in `VariablesProvider`); `@mapples/types` adds API definition, variables types and their validators; `@mapples/render` supports the reserved `_visible` data binding for conditional visibility and wraps custom renderers in the state context; `@mapples/inlang` conditions accept numeric values.
14
+
15
+ ## 1.1.2
16
+
17
+ ### Patch Changes
18
+
19
+ - 6150aa1: Update typography handling logic and resolve minor isssue
20
+
21
+ ## 1.1.1
22
+
23
+ ### Patch Changes
24
+
25
+ - f2313c2: feat: introudce navigation component
26
+
27
+ ## 1.1.0
28
+
29
+ ### Minor Changes
30
+
31
+ - 8628ce2: Bump vesrions to match the system
32
+
33
+ ## 1.0.2
34
+
35
+ ### Patch Changes
36
+
37
+ - b39e19e: feat: do not ask user to put brackets for width/height value
38
+
39
+ ## 1.0.1
40
+
41
+ ### Patch Changes
42
+
43
+ - a1151e5: fix: resolve parsing issues
44
+
45
+ ## 1.0.0
46
+
47
+ ### Major Changes
48
+
49
+ - 53fb55e: Introduce inlang package
50
+
51
+ ### Patch Changes
52
+
53
+ - 53fb55e: feat: introduce inlang feature\
@@ -3,6 +3,28 @@ import { ConditionFunc, Conditions } from './types';
3
3
  export declare const eq: ConditionFunc;
4
4
  /** Strict-inequality condition: returns `true` when `a !== b`. */
5
5
  export declare const notEq: ConditionFunc;
6
+ /** Numeric `>` comparison; both operands are coerced via {@link asNumber}. */
7
+ export declare const gt: ConditionFunc;
8
+ /** Numeric `>=` comparison; both operands are coerced via {@link asNumber}. */
9
+ export declare const gte: ConditionFunc;
10
+ /** Numeric `<` comparison; both operands are coerced via {@link asNumber}. */
11
+ export declare const lt: ConditionFunc;
12
+ /** Numeric `<=` comparison; both operands are coerced via {@link asNumber}. */
13
+ export declare const lte: ConditionFunc;
14
+ /**
15
+ * Membership condition: array `a` includes `b`, or string `a` contains the
16
+ * substring `String(b)`. Non-string/array subjects are stringified.
17
+ */
18
+ export declare const contains: ConditionFunc;
19
+ /** Negated {@link contains}. */
20
+ export declare const notContains: ConditionFunc;
21
+ /**
22
+ * Unary emptiness condition: `true` for null/undefined, `''`, empty arrays
23
+ * and plain objects with no keys. Numbers and booleans are never empty.
24
+ */
25
+ export declare const isEmpty: ConditionFunc;
26
+ /** Negated {@link isEmpty}. */
27
+ export declare const isNotEmpty: ConditionFunc;
6
28
  /**
7
29
  * Lookup map from each {@link Conditions} operator to its corresponding
8
30
  * {@link ConditionFunc} implementation.
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../src/state/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpD,gEAAgE;AAChE,eAAO,MAAM,EAAE,EAAE,aAAiC,CAAC;AAEnD,kEAAkE;AAClE,eAAO,MAAM,KAAK,EAAE,aAAiC,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAG1D,CAAC"}
1
+ {"version":3,"file":"conditions.d.ts","sourceRoot":"","sources":["../../src/state/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpD,gEAAgE;AAChE,eAAO,MAAM,EAAE,EAAE,aAAiC,CAAC;AAEnD,kEAAkE;AAClE,eAAO,MAAM,KAAK,EAAE,aAAiC,CAAC;AAUtD,8EAA8E;AAC9E,eAAO,MAAM,EAAE,EAAE,aAAmD,CAAC;AAErE,+EAA+E;AAC/E,eAAO,MAAM,GAAG,EAAE,aAAoD,CAAC;AAEvE,8EAA8E;AAC9E,eAAO,MAAM,EAAE,EAAE,aAAmD,CAAC;AAErE,+EAA+E;AAC/E,eAAO,MAAM,GAAG,EAAE,aAAoD,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,aAItB,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,WAAW,EAAE,aAAyC,CAAC;AASpE;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,aAA+B,CAAC;AAEtD,+BAA+B;AAC/B,eAAO,MAAM,UAAU,EAAE,aAAgC,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAW1D,CAAC"}
@@ -3,6 +3,52 @@ import { Conditions } from './types';
3
3
  export const eq = (a, b) => a === b;
4
4
  /** Strict-inequality condition: returns `true` when `a !== b`. */
5
5
  export const notEq = (a, b) => a !== b;
6
+ /** Coerce an arbitrary state value to a number for ordering comparisons. */
7
+ const asNumber = (value) => {
8
+ if (typeof value === 'number')
9
+ return value;
10
+ if (typeof value === 'boolean')
11
+ return value ? 1 : 0;
12
+ const parsed = Number(value ?? NaN);
13
+ return isNaN(parsed) ? 0 : parsed;
14
+ };
15
+ /** Numeric `>` comparison; both operands are coerced via {@link asNumber}. */
16
+ export const gt = (a, b) => asNumber(a) > asNumber(b);
17
+ /** Numeric `>=` comparison; both operands are coerced via {@link asNumber}. */
18
+ export const gte = (a, b) => asNumber(a) >= asNumber(b);
19
+ /** Numeric `<` comparison; both operands are coerced via {@link asNumber}. */
20
+ export const lt = (a, b) => asNumber(a) < asNumber(b);
21
+ /** Numeric `<=` comparison; both operands are coerced via {@link asNumber}. */
22
+ export const lte = (a, b) => asNumber(a) <= asNumber(b);
23
+ /**
24
+ * Membership condition: array `a` includes `b`, or string `a` contains the
25
+ * substring `String(b)`. Non-string/array subjects are stringified.
26
+ */
27
+ export const contains = (a, b) => {
28
+ if (Array.isArray(a))
29
+ return a.includes(b);
30
+ if (a == null)
31
+ return false;
32
+ return String(a).includes(String(b));
33
+ };
34
+ /** Negated {@link contains}. */
35
+ export const notContains = (a, b) => !contains(a, b);
36
+ const empty = (a) => {
37
+ if (a == null || a === '')
38
+ return true;
39
+ if (Array.isArray(a))
40
+ return a.length === 0;
41
+ if (typeof a === 'object')
42
+ return Object.keys(a).length === 0;
43
+ return false;
44
+ };
45
+ /**
46
+ * Unary emptiness condition: `true` for null/undefined, `''`, empty arrays
47
+ * and plain objects with no keys. Numbers and booleans are never empty.
48
+ */
49
+ export const isEmpty = (a) => empty(a);
50
+ /** Negated {@link isEmpty}. */
51
+ export const isNotEmpty = (a) => !empty(a);
6
52
  /**
7
53
  * Lookup map from each {@link Conditions} operator to its corresponding
8
54
  * {@link ConditionFunc} implementation.
@@ -21,5 +67,13 @@ export const notEq = (a, b) => a !== b;
21
67
  export const conditionMap = {
22
68
  [Conditions.equals]: eq,
23
69
  [Conditions.notEquals]: notEq,
70
+ [Conditions.greaterThan]: gt,
71
+ [Conditions.greaterOrEqual]: gte,
72
+ [Conditions.lessThan]: lt,
73
+ [Conditions.lessOrEqual]: lte,
74
+ [Conditions.contains]: contains,
75
+ [Conditions.notContains]: notContains,
76
+ [Conditions.isEmpty]: isEmpty,
77
+ [Conditions.isNotEmpty]: isNotEmpty,
24
78
  };
25
79
  //# sourceMappingURL=conditions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/state/conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpD,gEAAgE;AAChE,MAAM,CAAC,MAAM,EAAE,GAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAEnD,kEAAkE;AAClE,MAAM,CAAC,MAAM,KAAK,GAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsC;IAC7D,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE;IACvB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK;CAC9B,CAAC"}
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/state/conditions.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,32 @@ export declare enum Conditions {
11
11
  /** Equality condition - checks if values are equal */
12
12
  equals = "eq",
13
13
  /** Not equals condition - checks if values are not equal */
14
- notEquals = "neq"
14
+ notEquals = "neq",
15
+ /** Numeric greater-than comparison */
16
+ greaterThan = "gt",
17
+ /** Numeric greater-than-or-equal comparison */
18
+ greaterOrEqual = "gte",
19
+ /** Numeric less-than comparison */
20
+ lessThan = "lt",
21
+ /** Numeric less-than-or-equal comparison */
22
+ lessOrEqual = "lte",
23
+ /** Substring (strings) or membership (arrays) check */
24
+ contains = "contains",
25
+ /** Negated {@link Conditions.contains} */
26
+ notContains = "notContains",
27
+ /** Unary: value is null/undefined, '', an empty array or empty object */
28
+ isEmpty = "isEmpty",
29
+ /** Unary: negated {@link Conditions.isEmpty} */
30
+ isNotEmpty = "isNotEmpty"
15
31
  }
32
+ /**
33
+ * Operators that take no comparison value — condition strings using them
34
+ * leave the value segment empty (e.g. `"vars.items::isEmpty::"`), and
35
+ * editors should hide the value input when one is selected.
36
+ *
37
+ * @public
38
+ */
39
+ export declare const UnaryConditions: ReadonlySet<Conditions>;
16
40
  /**
17
41
  * Type representing a simple condition string.
18
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,UAAU;IACpB,sDAAsD;IACtD,MAAM,OAAO;IACb,4DAA4D;IAC5D,SAAS,QAAQ;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,MAAM,KAAK,UAAU,KAAK,MAAM,EAAE,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,KAAK,UAAU,KAAK,MAAM,GAAG,OAAO,EAAE,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,UAAU;IACpB,sDAAsD;IACtD,MAAM,OAAO;IACb,4DAA4D;IAC5D,SAAS,QAAQ;IACjB,sCAAsC;IACtC,WAAW,OAAO;IAClB,+CAA+C;IAC/C,cAAc,QAAQ;IACtB,mCAAmC;IACnC,QAAQ,OAAO;IACf,4CAA4C;IAC5C,WAAW,QAAQ;IACnB,uDAAuD;IACvD,QAAQ,aAAa;IACrB,0CAA0C;IAC1C,WAAW,gBAAgB;IAC3B,yEAAyE;IACzE,OAAO,YAAY;IACnB,gDAAgD;IAChD,UAAU,eAAe;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,UAAU,CAGlD,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,MAAM,KAAK,UAAU,KAAK,MAAM,EAAE,CAAC;AAEpE;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,KAAK,UAAU,KAAK,MAAM,GAAG,OAAO,EAAE,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;CACtB"}
@@ -13,5 +13,32 @@ export var Conditions;
13
13
  Conditions["equals"] = "eq";
14
14
  /** Not equals condition - checks if values are not equal */
15
15
  Conditions["notEquals"] = "neq";
16
+ /** Numeric greater-than comparison */
17
+ Conditions["greaterThan"] = "gt";
18
+ /** Numeric greater-than-or-equal comparison */
19
+ Conditions["greaterOrEqual"] = "gte";
20
+ /** Numeric less-than comparison */
21
+ Conditions["lessThan"] = "lt";
22
+ /** Numeric less-than-or-equal comparison */
23
+ Conditions["lessOrEqual"] = "lte";
24
+ /** Substring (strings) or membership (arrays) check */
25
+ Conditions["contains"] = "contains";
26
+ /** Negated {@link Conditions.contains} */
27
+ Conditions["notContains"] = "notContains";
28
+ /** Unary: value is null/undefined, '', an empty array or empty object */
29
+ Conditions["isEmpty"] = "isEmpty";
30
+ /** Unary: negated {@link Conditions.isEmpty} */
31
+ Conditions["isNotEmpty"] = "isNotEmpty";
16
32
  })(Conditions || (Conditions = {}));
33
+ /**
34
+ * Operators that take no comparison value — condition strings using them
35
+ * leave the value segment empty (e.g. `"vars.items::isEmpty::"`), and
36
+ * editors should hide the value input when one is selected.
37
+ *
38
+ * @public
39
+ */
40
+ export const UnaryConditions = new Set([
41
+ Conditions.isEmpty,
42
+ Conditions.isNotEmpty,
43
+ ]);
17
44
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,sDAAsD;IACtD,2BAAa,CAAA;IACb,4DAA4D;IAC5D,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,UAqBX;AArBD,WAAY,UAAU;IACpB,sDAAsD;IACtD,2BAAa,CAAA;IACb,4DAA4D;IAC5D,+BAAiB,CAAA;IACjB,sCAAsC;IACtC,gCAAkB,CAAA;IAClB,+CAA+C;IAC/C,oCAAsB,CAAA;IACtB,mCAAmC;IACnC,6BAAe,CAAA;IACf,4CAA4C;IAC5C,iCAAmB,CAAA;IACnB,uDAAuD;IACvD,mCAAqB,CAAA;IACrB,0CAA0C;IAC1C,yCAA2B,CAAA;IAC3B,yEAAyE;IACzE,iCAAmB,CAAA;IACnB,gDAAgD;IAChD,uCAAyB,CAAA;AAC3B,CAAC,EArBW,UAAU,KAAV,UAAU,QAqBrB;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAA4B,IAAI,GAAG,CAAC;IAC9D,UAAU,CAAC,OAAO;IAClB,UAAU,CAAC,UAAU;CACtB,CAAC,CAAC"}
@@ -67,7 +67,8 @@ export declare const parseCondition: (value: SimpleCondition | BoolCondition) =>
67
67
  * where:
68
68
  * - `dataProp` is alphanumeric with dots and underscores
69
69
  * - `condition` is alphanumeric with underscores
70
- * - `value` can be a quoted string, alphanumeric, or empty
70
+ * - `value` can be a quoted string, an unquoted path/number, or empty
71
+ * (unary operators like `isEmpty` leave it empty)
71
72
  *
72
73
  * @param value - The value to check
73
74
  * @returns True if the value is a valid condition string, false otherwise
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/state/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAEb,oBAAoB,EACpB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAWjB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,QAAQ,MAAM,EAAE,WAEpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,oBAWpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,eAAe,GAAG,aAAa,KACrC,oBAgCF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAKrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,GAAG,OAAO,YAI7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,GAAG,OAAO,WAU/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,yBAErC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/state/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAEb,oBAAoB,EACpB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAWjB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,QAAQ,MAAM,EAAE,WAEpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,oBAWpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,eAAe,GAAG,aAAa,KACrC,oBAwCF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAKrD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,GAAG,OAAO,YAI7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,GAAG,OAAO,WAU/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,yBAErC,CAAC"}
@@ -101,6 +101,13 @@ export const parseCondition = (value) => {
101
101
  valueType: mapTypes[type] || 'string',
102
102
  };
103
103
  }
104
+ if (/^-?\d+(\.\d+)?$/.test(valueProp))
105
+ return {
106
+ dataProp,
107
+ condition: condition,
108
+ valueProp,
109
+ valueType: 'number',
110
+ };
104
111
  return {
105
112
  dataProp,
106
113
  condition: condition,
@@ -115,7 +122,8 @@ export const parseCondition = (value) => {
115
122
  * where:
116
123
  * - `dataProp` is alphanumeric with dots and underscores
117
124
  * - `condition` is alphanumeric with underscores
118
- * - `value` can be a quoted string, alphanumeric, or empty
125
+ * - `value` can be a quoted string, an unquoted path/number, or empty
126
+ * (unary operators like `isEmpty` leave it empty)
119
127
  *
120
128
  * @param value - The value to check
121
129
  * @returns True if the value is a valid condition string, false otherwise
@@ -132,7 +140,7 @@ export const parseCondition = (value) => {
132
140
  */
133
141
  export const isCondition = (value) => {
134
142
  return (typeof value === 'string' &&
135
- /^[a-zA-Z0-9_.]+::[a-zA-Z0-9_]+::("[^"]*"|[a-zA-Z0-9_]*|)$/.test(value));
143
+ /^[a-zA-Z0-9_.]+::[a-zA-Z0-9_]+::("[^"]*"|-?[a-zA-Z0-9_.]*|)$/.test(value));
136
144
  };
137
145
  /**
138
146
  * Converts a string or boolean value to a boolean.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AASjD,MAAM,QAAQ,GAAG;IACf,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACV,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAgB,EAAE,EAAE;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAwB,EAAE;IAC1E,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,KAAK;SAC3C,IAAI,EAAE;SACN,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEhC,OAAO;QACL,QAAQ;QACR,SAAS,EAAE,SAAuB;QAClC,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAsC,EAChB,EAAE;IACxB,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,KAAK;SAC3C,IAAI,EAAE;SACN,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEhC,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO;QAC/C,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,SAAuB;YAClC,SAAS,EAAE,SAAS,KAAK,MAAM;YAC/B,SAAS,EAAE,SAAS;SACrB,CAAC;IAEJ,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEtD,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,SAAuB;YAClC,SAAS,EAAE,KAAK;YAChB,SAAS,EACP,QAAQ,CAAC,IAA6B,CAAC,IAAK,QAAsB;SACrE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ;QACR,SAAS,EAAE,SAAuB;QAClC,SAAS;QACT,SAAS,EAAE,UAAU;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAA4B,EAAE;IACtE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,2DAA2D,CAAC,IAAI,CAAC,KAAK,CAAC,CACxE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAuB,EAAE,EAAE;IAChD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7C,OAAO,KAAK,KAAK,MAAM,CAAC;AAC1B,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAuB,EAAE,EAAE;IAClD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE/B,IAAI,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,CAAC;IAE9B,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,EAAE;IACxC,OAAO,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/state/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapples/inlang",
3
- "version": "1.1.2",
3
+ "version": "1.6.0-beta.20260916105611",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -24,4 +24,4 @@
24
24
  "README.md",
25
25
  "package.json"
26
26
  ]
27
- }
27
+ }