@mittwald/flow-react-components 0.2.0-alpha.289 → 0.2.0-alpha.290

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 CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.2.0-alpha.290](https://github.com/mittwald/flow/compare/0.2.0-alpha.289...0.2.0-alpha.290) (2025-06-23)
7
+
8
+ ### Features
9
+
10
+ * **PasswordCreationField:** add password rule translations ([#1645](https://github.com/mittwald/flow/issues/1645)) ([3e02633](https://github.com/mittwald/flow/commit/3e0263346021fa17f241ca20ea5d4ceb299fffb3))
11
+
6
12
  # [0.2.0-alpha.289](https://github.com/mittwald/flow/compare/0.2.0-alpha.288...0.2.0-alpha.289) (2025-06-23)
7
13
 
8
14
  ### Bug Fixes
@@ -4,8 +4,10 @@ const locales = {"de-DE": { "button.generate": `Generieren`,
4
4
  "button.generate.tooltip.hide": `Passwort verbergen`,
5
5
  "button.generate.tooltip.show": `Passwort anzeigen`,
6
6
  "password.requirements.heading": `Anforderungen an dein Passwort`,
7
+ "validation.atLeastOneCapitalLetter": `Mindestens ein Großbuchstabe`,
7
8
  "validation.blocklist": (args, formatter) => `${formatter.select({true: `Das Passwort enthält keine verbotenen Wörter.`, other: () => `Das Passwort enthält ein verbotenes Wort "${args.blockedSubstrings}".`}, args.isValid)}`,
8
9
  "validation.blocklist.short": (args, formatter) => `${formatter.select({true: `Keine verbotenen Wörter`, other: () => `Verbotenes Wort "${args.blockedSubstrings}"`}, args.isValid)}`,
10
+ "validation.canNotStartWithSpecialCharacter": `Darf nicht mit Sonderzeichen anfangen`,
9
11
  "validation.charPool.numbers.max": (args, formatter) => `${formatter.plural(args.max, {one: `Bitte verwende maximal eine Zahl.`, other: () => `Bitte verwende maximal ${args.max} Zahlen.`})}`,
10
12
  "validation.charPool.numbers.max.short": (args, formatter) => `${formatter.plural(args.max, {one: `Maximal eine Zahl`, other: () => `Maximal ${args.max} Zahlen`})}`,
11
13
  "validation.charPool.numbers.min": (args, formatter) => `${formatter.plural(args.min, {one: `Bitte verwende mindestens eine Zahl.`, other: () => `Bitte verwende mindestens ${args.min} Zahlen.`})}`,
@@ -33,8 +35,10 @@ const locales = {"de-DE": { "button.generate": `Generieren`,
33
35
  "button.generate.tooltip.hide": `Hide password`,
34
36
  "button.generate.tooltip.show": `Show password`,
35
37
  "password.requirements.heading": `Requirements for your password`,
38
+ "validation.atLeastOneCapitalLetter": `At least one capital letter`,
36
39
  "validation.blocklist": (args, formatter) => `${formatter.select({true: `The password does not contain any forbidden words.`, other: () => `The password contains a forbidden word "${args.blockedSubstrings}".`}, args.isValid)}`,
37
40
  "validation.blocklist.short": (args, formatter) => `${formatter.select({true: `No forbidden words`, other: () => `Forbidden word "${args.blockedSubstrings}"`}, args.isValid)}`,
41
+ "validation.canNotStartWithSpecialCharacter": `Can not start with special character`,
38
42
  "validation.charPool.numbers.max": (args, formatter) => `${formatter.plural(args.max, {one: `Please use a maximum of one number.`, other: () => `Please use a maximum of ${args.max} numbers.`})}`,
39
43
  "validation.charPool.numbers.max.short": (args, formatter) => `${formatter.plural(args.max, {one: `Maximum one number`, other: () => `Maximum ${args.max} numbers`})}`,
40
44
  "validation.charPool.numbers.min": (args, formatter) => `${formatter.plural(args.min, {one: `Please use at least one number.`, other: () => `Please use at least ${args.min} numbers.`})}`,
@@ -1 +1 @@
1
- {"version":3,"file":"_.locale.json@95341064edeb0e38b66d786dbd62955c.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"_.locale.json@95341064edeb0e38b66d786dbd62955c.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,9 @@
1
1
  "use client"
2
2
  /* */
3
3
  const generateTranslationString = (rule, shortVersion = false) => {
4
+ if (rule.translationKey) {
5
+ return `validation.${rule.translationKey}`;
6
+ }
4
7
  const translateString = `validation.${rule.ruleType ?? "general"}`;
5
8
  let finalTranslationString = "";
6
9
  if ("min" in rule || "max" in rule) {
@@ -1 +1 @@
1
- {"version":3,"file":"generateValidationTranslation.mjs","sources":["../../../../../../../src/components/PasswordCreationField/lib/generateValidationTranslation.ts"],"sourcesContent":["import type { RuleValidationResult } from \"@mittwald/password-tools-js/rules\";\n\nconst generateTranslationString = (\n rule: Partial<RuleValidationResult>,\n shortVersion = false,\n): string => {\n const translateString = `validation.${rule.ruleType ?? \"general\"}`;\n let finalTranslationString = \"\";\n\n if (\"min\" in rule || \"max\" in rule) {\n const breakingBoundaryProperty = rule.failingBoundary\n ? rule.failingBoundary\n : \"min\";\n\n if (rule.identifier) {\n finalTranslationString = `${translateString}.${rule.identifier}.${breakingBoundaryProperty}`;\n } else {\n finalTranslationString = `${translateString}.${breakingBoundaryProperty}`;\n }\n } else if (rule.identifier) {\n finalTranslationString = `${translateString}.${rule.identifier}`;\n } else {\n finalTranslationString = translateString;\n }\n\n return shortVersion\n ? `${finalTranslationString}.short`\n : finalTranslationString;\n};\n\nexport const generateValidationTranslation = (\n r: Partial<RuleValidationResult>,\n shotVersion = false,\n): [string, Record<string, string | number | boolean> | undefined] => {\n const translationKey = generateTranslationString(r, shotVersion);\n\n return [\n translationKey,\n r as unknown as Record<string, string | number | boolean> | undefined,\n ];\n};\n\nexport default generateValidationTranslation;\n"],"names":[],"mappings":"AAEA,MAAM,yBAA4B,GAAA,CAChC,IACA,EAAA,YAAA,GAAe,KACJ,KAAA;AACX,EAAA,MAAM,eAAkB,GAAA,CAAA,WAAA,EAAc,IAAK,CAAA,QAAA,IAAY,SAAS,CAAA,CAAA;AAChE,EAAA,IAAI,sBAAyB,GAAA,EAAA;AAE7B,EAAI,IAAA,KAAA,IAAS,IAAQ,IAAA,KAAA,IAAS,IAAM,EAAA;AAClC,IAAA,MAAM,wBAA2B,GAAA,IAAA,CAAK,eAClC,GAAA,IAAA,CAAK,eACL,GAAA,KAAA;AAEJ,IAAA,IAAI,KAAK,UAAY,EAAA;AACnB,MAAA,sBAAA,GAAyB,GAAG,eAAe,CAAA,CAAA,EAAI,IAAK,CAAA,UAAU,IAAI,wBAAwB,CAAA,CAAA;AAAA,KACrF,MAAA;AACL,MAAyB,sBAAA,GAAA,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,wBAAwB,CAAA,CAAA;AAAA;AACzE,GACF,MAAA,IAAW,KAAK,UAAY,EAAA;AAC1B,IAAA,sBAAA,GAAyB,CAAG,EAAA,eAAe,CAAI,CAAA,EAAA,IAAA,CAAK,UAAU,CAAA,CAAA;AAAA,GACzD,MAAA;AACL,IAAyB,sBAAA,GAAA,eAAA;AAAA;AAG3B,EAAO,OAAA,YAAA,GACH,CAAG,EAAA,sBAAsB,CACzB,MAAA,CAAA,GAAA,sBAAA;AACN,CAAA;AAEO,MAAM,6BAAgC,GAAA,CAC3C,CACA,EAAA,WAAA,GAAc,KACsD,KAAA;AACpE,EAAM,MAAA,cAAA,GAAiB,yBAA0B,CAAA,CAAA,EAAG,WAAW,CAAA;AAE/D,EAAO,OAAA;AAAA,IACL,cAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"generateValidationTranslation.mjs","sources":["../../../../../../../src/components/PasswordCreationField/lib/generateValidationTranslation.ts"],"sourcesContent":["import type { RuleValidationResult } from \"@mittwald/password-tools-js/rules\";\n\nconst generateTranslationString = (\n rule: Partial<RuleValidationResult> & { translationKey?: string },\n shortVersion = false,\n): string => {\n if (rule.translationKey) {\n return `validation.${rule.translationKey}`;\n }\n const translateString = `validation.${rule.ruleType ?? \"general\"}`;\n let finalTranslationString = \"\";\n\n if (\"min\" in rule || \"max\" in rule) {\n const breakingBoundaryProperty = rule.failingBoundary\n ? rule.failingBoundary\n : \"min\";\n\n if (rule.identifier) {\n finalTranslationString = `${translateString}.${rule.identifier}.${breakingBoundaryProperty}`;\n } else {\n finalTranslationString = `${translateString}.${breakingBoundaryProperty}`;\n }\n } else if (rule.identifier) {\n finalTranslationString = `${translateString}.${rule.identifier}`;\n } else {\n finalTranslationString = translateString;\n }\n\n return shortVersion\n ? `${finalTranslationString}.short`\n : finalTranslationString;\n};\n\nexport const generateValidationTranslation = (\n r: Partial<RuleValidationResult>,\n shotVersion = false,\n): [string, Record<string, string | number | boolean> | undefined] => {\n const translationKey = generateTranslationString(r, shotVersion);\n\n return [\n translationKey,\n r as unknown as Record<string, string | number | boolean> | undefined,\n ];\n};\n\nexport default generateValidationTranslation;\n"],"names":[],"mappings":"AAEA,MAAM,yBAA4B,GAAA,CAChC,IACA,EAAA,YAAA,GAAe,KACJ,KAAA;AACX,EAAA,IAAI,KAAK,cAAgB,EAAA;AACvB,IAAO,OAAA,CAAA,WAAA,EAAc,KAAK,cAAc,CAAA,CAAA;AAAA;AAE1C,EAAA,MAAM,eAAkB,GAAA,CAAA,WAAA,EAAc,IAAK,CAAA,QAAA,IAAY,SAAS,CAAA,CAAA;AAChE,EAAA,IAAI,sBAAyB,GAAA,EAAA;AAE7B,EAAI,IAAA,KAAA,IAAS,IAAQ,IAAA,KAAA,IAAS,IAAM,EAAA;AAClC,IAAA,MAAM,wBAA2B,GAAA,IAAA,CAAK,eAClC,GAAA,IAAA,CAAK,eACL,GAAA,KAAA;AAEJ,IAAA,IAAI,KAAK,UAAY,EAAA;AACnB,MAAA,sBAAA,GAAyB,GAAG,eAAe,CAAA,CAAA,EAAI,IAAK,CAAA,UAAU,IAAI,wBAAwB,CAAA,CAAA;AAAA,KACrF,MAAA;AACL,MAAyB,sBAAA,GAAA,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,wBAAwB,CAAA,CAAA;AAAA;AACzE,GACF,MAAA,IAAW,KAAK,UAAY,EAAA;AAC1B,IAAA,sBAAA,GAAyB,CAAG,EAAA,eAAe,CAAI,CAAA,EAAA,IAAA,CAAK,UAAU,CAAA,CAAA;AAAA,GACzD,MAAA;AACL,IAAyB,sBAAA,GAAA,eAAA;AAAA;AAG3B,EAAO,OAAA,YAAA,GACH,CAAG,EAAA,sBAAsB,CACzB,MAAA,CAAA,GAAA,sBAAA;AACN,CAAA;AAEO,MAAM,6BAAgC,GAAA,CAC3C,CACA,EAAA,WAAA,GAAc,KACsD,KAAA;AACpE,EAAM,MAAA,cAAA,GAAiB,yBAA0B,CAAA,CAAA,EAAG,WAAW,CAAA;AAE/D,EAAO,OAAA;AAAA,IACL,cAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateValidationTranslation.d.ts","sourceRoot":"","sources":["../../../../../src/components/PasswordCreationField/lib/generateValidationTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AA8B9E,eAAO,MAAM,6BAA6B,GACxC,GAAG,OAAO,CAAC,oBAAoB,CAAC,EAChC,qBAAmB,KAClB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAOhE,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
1
+ {"version":3,"file":"generateValidationTranslation.d.ts","sourceRoot":"","sources":["../../../../../src/components/PasswordCreationField/lib/generateValidationTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAiC9E,eAAO,MAAM,6BAA6B,GACxC,GAAG,OAAO,CAAC,oBAAoB,CAAC,EAChC,qBAAmB,KAClB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,CAOhE,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/PasswordCreationField/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAyDjD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,qBAAqB,CAU5C,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpD,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAAsC,CAAC;AAE9D,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAE7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAW/B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAsBtB,CAAC"}
1
+ {"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/PasswordCreationField/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA8DjD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,qBAAqB,CAU5C,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpD,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAAsC,CAAC;AAE9D,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAE7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAW/B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAsBtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/flow-react-components",
3
- "version": "0.2.0-alpha.289",
3
+ "version": "0.2.0-alpha.290",
4
4
  "type": "module",
5
5
  "description": "A React implementation of Flow, mittwald’s design system",
6
6
  "homepage": "https://mittwald.github.io/flow",
@@ -58,7 +58,7 @@
58
58
  "@chakra-ui/live-region": "^2.1.0",
59
59
  "@internationalized/string-compiler": "^3.2.6",
60
60
  "@mittwald/password-tools-js": "^2.1.4",
61
- "@mittwald/react-tunnel": "0.2.0-alpha.289",
61
+ "@mittwald/react-tunnel": "0.2.0-alpha.290",
62
62
  "@mittwald/react-use-promise": "^3.0.4",
63
63
  "@react-aria/form": "^3.0.16",
64
64
  "@react-aria/utils": "^3.29.0",
@@ -99,7 +99,7 @@
99
99
  "@faker-js/faker": "^9.8.0",
100
100
  "@internationalized/date": "^3.8.1",
101
101
  "@mittwald/flow-core": "",
102
- "@mittwald/flow-design-tokens": "0.2.0-alpha.289",
102
+ "@mittwald/flow-design-tokens": "0.2.0-alpha.290",
103
103
  "@mittwald/react-use-promise": "^3.0.4",
104
104
  "@mittwald/remote-dom-react": "1.2.2-mittwald.3",
105
105
  "@mittwald/typescript-config": "",
@@ -181,5 +181,5 @@
181
181
  "optional": true
182
182
  }
183
183
  },
184
- "gitHead": "636c751be98c29250d4c1018e6ac32916c9e9e65"
184
+ "gitHead": "2587982231346f9350840a0926fccd7526348f6b"
185
185
  }