foldkit 0.66.0 → 0.67.0

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.
@@ -80,9 +80,18 @@ export declare const isValid: (rules: Rules) => (state: Field) => boolean;
80
80
  /** Returns true when the rules mark the field as required. Useful for
81
81
  * rendering affordances like a `*` next to required field labels. */
82
82
  export declare const isRequired: (rules: Rules) => boolean;
83
+ /** Returns true when the state's tag is `Invalid`. Tag-only predicate;
84
+ * unlike `!isValid(rules)(state)`, this does not treat `NotValidated`
85
+ * or `Validating` as errors. Use for "has the user seen a rule failure
86
+ * on this field?" affordances like red borders or per-step error
87
+ * indicators. */
88
+ export declare const isInvalid: (state: Field) => boolean;
83
89
  /** Returns true when every `(state, rules)` pair in the input is
84
90
  * acceptable per `isValid`. Use for form-level submit gates. */
85
91
  export declare const allValid: (pairs: ReadonlyArray<readonly [Field, Rules]>) => boolean;
92
+ /** Returns true when any state in the input has tag `Invalid`. Use for
93
+ * "this step/section has errors" affordances, independent of rules. */
94
+ export declare const anyInvalid: (states: ReadonlyArray<Field>) => boolean;
86
95
  /** Creates a `Rule` that checks if a string meets a minimum length. */
87
96
  export declare const minLength: (min: number, message?: RuleMessage) => Rule;
88
97
  /** Creates a `Rule` that checks if a string does not exceed a maximum length. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fieldValidation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fieldValidation/index.ts"],"names":[],"mappings":"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"}
@@ -75,9 +75,18 @@ export const isValid = (rules) => (state) => {
75
75
  /** Returns true when the rules mark the field as required. Useful for
76
76
  * rendering affordances like a `*` next to required field labels. */
77
77
  export const isRequired = (rules) => Option.isSome(rules.requiredMessage);
78
+ /** Returns true when the state's tag is `Invalid`. Tag-only predicate;
79
+ * unlike `!isValid(rules)(state)`, this does not treat `NotValidated`
80
+ * or `Validating` as errors. Use for "has the user seen a rule failure
81
+ * on this field?" affordances like red borders or per-step error
82
+ * indicators. */
83
+ export const isInvalid = (state) => state._tag === 'Invalid';
78
84
  /** Returns true when every `(state, rules)` pair in the input is
79
85
  * acceptable per `isValid`. Use for form-level submit gates. */
80
86
  export const allValid = (pairs) => Array.every(pairs, ([state, rules]) => isValid(rules)(state));
87
+ /** Returns true when any state in the input has tag `Invalid`. Use for
88
+ * "this step/section has errors" affordances, independent of rules. */
89
+ export const anyInvalid = (states) => Array.some(states, isInvalid);
81
90
  // STRING RULES
82
91
  /** Creates a `Rule` that checks if a string meets a minimum length. */
83
92
  export const minLength = (min, message) => [
@@ -1,3 +1,3 @@
1
- export { makeRules, validate, validateAll, isValid, isRequired, allValid, resolveMessage, NotValidated, Validating, Valid, Invalid, Field, minLength, maxLength, pattern, email, url, startsWith, endsWith, includes, equals, oneOf, } from './index';
1
+ export { makeRules, validate, validateAll, isValid, isInvalid, isRequired, allValid, anyInvalid, resolveMessage, NotValidated, Validating, Valid, Invalid, Field, minLength, maxLength, pattern, email, url, startsWith, endsWith, includes, equals, oneOf, } from './index';
2
2
  export type { Rules, MakeRulesOptions, Rule, RuleMessage } from './index';
3
3
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/fieldValidation/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAAO,EACP,UAAU,EACV,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,UAAU,EACV,KAAK,EACL,OAAO,EACP,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,GAAG,EACH,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,GACN,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/fieldValidation/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,KAAK,EACL,OAAO,EACP,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,GAAG,EACH,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,GACN,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- export { makeRules, validate, validateAll, isValid, isRequired, allValid, resolveMessage, NotValidated, Validating, Valid, Invalid, Field, minLength, maxLength, pattern, email, url, startsWith, endsWith, includes, equals, oneOf, } from './index';
1
+ export { makeRules, validate, validateAll, isValid, isInvalid, isRequired, allValid, anyInvalid, resolveMessage, NotValidated, Validating, Valid, Invalid, Field, minLength, maxLength, pattern, email, url, startsWith, endsWith, includes, equals, oneOf, } from './index';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foldkit",
3
- "version": "0.66.0",
3
+ "version": "0.67.0",
4
4
  "description": "A frontend framework for TypeScript, built on Effect, using The Elm Architecture",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",