payload-intl 1.1.2 → 1.2.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.
Files changed (208) hide show
  1. package/README.md +62 -221
  2. package/dist/components/MessageController.d.ts +4 -6
  3. package/dist/components/MessageController.d.ts.map +1 -1
  4. package/dist/components/MessageController.js +25 -41
  5. package/dist/components/MessageController.js.map +1 -1
  6. package/dist/components/MessageFormContext.d.ts +29 -0
  7. package/dist/components/MessageFormContext.d.ts.map +1 -0
  8. package/dist/components/MessageFormContext.js +30 -0
  9. package/dist/components/MessageFormContext.js.map +1 -0
  10. package/dist/components/MessagesForm.d.ts +2 -2
  11. package/dist/components/MessagesForm.d.ts.map +1 -1
  12. package/dist/components/MessagesForm.js +126 -112
  13. package/dist/components/MessagesForm.js.map +1 -1
  14. package/dist/components/MessagesForm.module.css +41 -0
  15. package/dist/{exports/link.d.ts → components/MessagesLink.d.ts} +3 -3
  16. package/dist/components/MessagesLink.d.ts.map +1 -0
  17. package/dist/components/MessagesLink.js +19 -0
  18. package/dist/components/MessagesLink.js.map +1 -0
  19. package/dist/components/MessagesView.d.ts +10 -0
  20. package/dist/components/MessagesView.d.ts.map +1 -0
  21. package/dist/components/MessagesView.js +48 -0
  22. package/dist/components/MessagesView.js.map +1 -0
  23. package/dist/components/actions/JsonImport.d.ts.map +1 -1
  24. package/dist/components/actions/JsonImport.js +68 -61
  25. package/dist/components/actions/JsonImport.js.map +1 -1
  26. package/dist/components/actions/JsonImport.module.css +14 -0
  27. package/dist/components/actions/Move.d.ts.map +1 -1
  28. package/dist/components/actions/Move.js +41 -0
  29. package/dist/components/actions/Move.js.map +1 -0
  30. package/dist/components/actions/Move.module.css +8 -0
  31. package/dist/components/inputs/InputWrapper.d.ts +1 -1
  32. package/dist/components/inputs/InputWrapper.d.ts.map +1 -1
  33. package/dist/components/inputs/InputWrapper.js +31 -29
  34. package/dist/components/inputs/InputWrapper.js.map +1 -1
  35. package/dist/components/inputs/InputWrapper.module.css +34 -0
  36. package/dist/components/inputs/LexicalInput.d.ts +3 -3
  37. package/dist/components/inputs/LexicalInput.js +86 -0
  38. package/dist/components/inputs/LexicalInput.js.map +1 -0
  39. package/dist/components/inputs/MessageInput.d.ts +2 -2
  40. package/dist/components/inputs/MessageInput.d.ts.map +1 -1
  41. package/dist/components/inputs/MessageInput.js +110 -37
  42. package/dist/components/inputs/MessageInput.js.map +1 -1
  43. package/dist/components/inputs/MessageInput.module.css +25 -0
  44. package/dist/components/inputs/variables/VariableChip.d.ts +8 -2
  45. package/dist/components/inputs/variables/VariableChip.d.ts.map +1 -1
  46. package/dist/components/inputs/variables/VariableChip.js +86 -64
  47. package/dist/components/inputs/variables/VariableChip.js.map +1 -1
  48. package/dist/components/inputs/variables/VariableChip.module.css +66 -0
  49. package/dist/components/inputs/variables/VariableIcon.d.ts +1 -1
  50. package/dist/components/inputs/variables/VariableIcon.d.ts.map +1 -1
  51. package/dist/components/inputs/variables/VariableIcon.js +35 -0
  52. package/dist/components/inputs/variables/VariableIcon.js.map +1 -0
  53. package/dist/components/inputs/variables/VariableNode.d.ts +11 -0
  54. package/dist/components/inputs/variables/VariableNode.d.ts.map +1 -0
  55. package/dist/components/inputs/variables/VariableNode.js +36 -0
  56. package/dist/components/inputs/variables/VariableNode.js.map +1 -0
  57. package/dist/components/inputs/variables/VariableSuggestion.module.css +34 -0
  58. package/dist/components/inputs/variables/editors/DateVariableEditor.d.ts +2 -2
  59. package/dist/components/inputs/variables/editors/DateVariableEditor.d.ts.map +1 -1
  60. package/dist/components/inputs/variables/editors/DateVariableEditor.js +15 -0
  61. package/dist/components/inputs/variables/editors/DateVariableEditor.js.map +1 -0
  62. package/dist/components/inputs/variables/editors/PluralVariableEditor.d.ts +1 -1
  63. package/dist/components/inputs/variables/editors/PluralVariableEditor.d.ts.map +1 -1
  64. package/dist/components/inputs/variables/editors/PluralVariableEditor.js +191 -172
  65. package/dist/components/inputs/variables/editors/PluralVariableEditor.js.map +1 -1
  66. package/dist/components/inputs/variables/editors/PluralVariableEditor.module.css +149 -0
  67. package/dist/components/inputs/variables/editors/SelectVariableEditor.d.ts +1 -1
  68. package/dist/components/inputs/variables/editors/SelectVariableEditor.d.ts.map +1 -1
  69. package/dist/components/inputs/variables/editors/SelectVariableEditor.js +58 -52
  70. package/dist/components/inputs/variables/editors/SelectVariableEditor.js.map +1 -1
  71. package/dist/components/inputs/variables/editors/SelectVariableEditor.module.css +25 -0
  72. package/dist/components/inputs/variables/editors/TagVariableEditor.d.ts +1 -1
  73. package/dist/components/inputs/variables/editors/TagVariableEditor.d.ts.map +1 -1
  74. package/dist/components/inputs/variables/editors/TagVariableEditor.js +36 -32
  75. package/dist/components/inputs/variables/editors/TagVariableEditor.js.map +1 -1
  76. package/dist/components/inputs/variables/editors/TagVariableEditor.module.css +7 -0
  77. package/dist/components/inputs/variables/editors/TimeVariableEditor.d.ts +2 -2
  78. package/dist/components/inputs/variables/editors/TimeVariableEditor.d.ts.map +1 -1
  79. package/dist/components/inputs/variables/editors/TimeVariableEditor.js +15 -0
  80. package/dist/components/inputs/variables/editors/TimeVariableEditor.js.map +1 -0
  81. package/dist/components/inputs/variables/pickers/NumericVariablePicker.d.ts +1 -1
  82. package/dist/components/inputs/variables/pickers/NumericVariablePicker.d.ts.map +1 -1
  83. package/dist/components/inputs/variables/pickers/NumericVariablePicker.js +48 -51
  84. package/dist/components/inputs/variables/pickers/NumericVariablePicker.js.map +1 -1
  85. package/dist/components/inputs/variables/pickers/NumericVariablePicker.module.css +27 -0
  86. package/dist/components/inputs/variables/pickers/TemporalElementEditor.d.ts +1 -1
  87. package/dist/components/inputs/variables/pickers/TemporalElementEditor.d.ts.map +1 -1
  88. package/dist/components/inputs/variables/pickers/TemporalElementEditor.js +58 -0
  89. package/dist/components/inputs/variables/pickers/TemporalElementEditor.js.map +1 -0
  90. package/dist/components/inputs/variables/pickers/TemporalElementEditor.module.css +27 -0
  91. package/dist/components/layout/MessageField.d.ts +3 -3
  92. package/dist/components/layout/MessageField.d.ts.map +1 -1
  93. package/dist/components/layout/MessageField.js +56 -56
  94. package/dist/components/layout/MessageField.js.map +1 -1
  95. package/dist/components/layout/MessageField.module.css +19 -0
  96. package/dist/components/layout/MessagesTabs.d.ts +1 -1
  97. package/dist/components/layout/MessagesTabs.d.ts.map +1 -1
  98. package/dist/components/layout/MessagesTabs.js +40 -43
  99. package/dist/components/layout/MessagesTabs.js.map +1 -1
  100. package/dist/components/layout/MessagesTabs.module.css +21 -0
  101. package/dist/components/layout/MessagesTree.d.ts +3 -2
  102. package/dist/components/layout/MessagesTree.d.ts.map +1 -1
  103. package/dist/components/layout/MessagesTree.js +65 -67
  104. package/dist/components/layout/MessagesTree.js.map +1 -1
  105. package/dist/components/layout/MessagesTree.module.css +36 -0
  106. package/dist/const.d.ts +8 -9
  107. package/dist/const.d.ts.map +1 -1
  108. package/dist/const.js +16 -13
  109. package/dist/const.js.map +1 -1
  110. package/dist/endpoints/get-messages.d.ts +1 -1
  111. package/dist/endpoints/get-messages.d.ts.map +1 -1
  112. package/dist/endpoints/get-messages.js +7 -13
  113. package/dist/endpoints/get-messages.js.map +1 -1
  114. package/dist/endpoints/set-messages.d.ts +1 -1
  115. package/dist/endpoints/set-messages.d.ts.map +1 -1
  116. package/dist/endpoints/set-messages.js +61 -45
  117. package/dist/endpoints/set-messages.js.map +1 -1
  118. package/dist/entities.d.ts +5 -0
  119. package/dist/entities.d.ts.map +1 -0
  120. package/dist/entities.js +38 -0
  121. package/dist/entities.js.map +1 -0
  122. package/dist/exports/client.d.ts +2 -0
  123. package/dist/exports/client.d.ts.map +1 -0
  124. package/dist/exports/client.js +3 -0
  125. package/dist/exports/client.js.map +1 -0
  126. package/dist/exports/rsc.d.ts +2 -2
  127. package/dist/exports/rsc.d.ts.map +1 -1
  128. package/dist/exports/rsc.js +4 -7
  129. package/dist/exports/rsc.js.map +1 -1
  130. package/dist/hooks.d.ts +4 -0
  131. package/dist/hooks.d.ts.map +1 -0
  132. package/dist/hooks.js +24 -0
  133. package/dist/hooks.js.map +1 -0
  134. package/dist/index.d.ts +20 -3
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +64 -80
  137. package/dist/index.js.map +1 -1
  138. package/dist/payload-types.d.ts +258 -0
  139. package/dist/payload-types.d.ts.map +1 -0
  140. package/dist/payload-types.js +15 -0
  141. package/dist/payload-types.js.map +1 -0
  142. package/dist/requests/fetchMessageFromAPI.d.ts +10 -0
  143. package/dist/requests/fetchMessageFromAPI.d.ts.map +1 -0
  144. package/dist/requests/fetchMessageFromAPI.js +15 -0
  145. package/dist/requests/fetchMessageFromAPI.js.map +1 -0
  146. package/dist/requests/fetchMessageFromPayload.d.ts +3 -0
  147. package/dist/requests/fetchMessageFromPayload.d.ts.map +1 -0
  148. package/dist/requests/fetchMessageFromPayload.js +29 -0
  149. package/dist/requests/fetchMessageFromPayload.js.map +1 -0
  150. package/dist/requests/fetchMessages.d.ts +3 -11
  151. package/dist/requests/fetchMessages.d.ts.map +1 -1
  152. package/dist/requests/fetchMessages.js +10 -40
  153. package/dist/requests/fetchMessages.js.map +1 -1
  154. package/dist/types.d.ts +7 -23
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/types.js +3 -0
  157. package/dist/types.js.map +1 -0
  158. package/dist/utils/config.d.ts +3 -3
  159. package/dist/utils/config.d.ts.map +1 -1
  160. package/dist/utils/config.js +27 -17
  161. package/dist/utils/config.js.map +1 -1
  162. package/dist/utils/error-handling.js +14 -12
  163. package/dist/utils/error-handling.js.map +1 -1
  164. package/dist/utils/format.d.ts +1 -1
  165. package/dist/utils/format.js +21 -13
  166. package/dist/utils/format.js.map +1 -1
  167. package/dist/utils/guards.d.ts +2 -1
  168. package/dist/utils/guards.js +8 -18
  169. package/dist/utils/guards.js.map +1 -1
  170. package/dist/utils/icu-tranform.d.ts +13 -18
  171. package/dist/utils/icu-tranform.d.ts.map +1 -1
  172. package/dist/utils/icu-tranform.js +140 -108
  173. package/dist/utils/icu-tranform.js.map +1 -1
  174. package/dist/utils/sanitize.d.ts +1 -1
  175. package/dist/utils/sanitize.js +36 -17
  176. package/dist/utils/sanitize.js.map +1 -1
  177. package/dist/utils/schema.d.ts +1 -3
  178. package/dist/utils/schema.d.ts.map +1 -1
  179. package/dist/utils/schema.js +42 -34
  180. package/dist/utils/schema.js.map +1 -1
  181. package/dist/utils/validate.d.ts +2 -2
  182. package/dist/utils/validate.js +52 -53
  183. package/dist/utils/validate.js.map +1 -1
  184. package/package.json +35 -52
  185. package/dist/components/inputs/variables/VariableSuggestion.d.ts +0 -9
  186. package/dist/components/inputs/variables/VariableSuggestion.d.ts.map +0 -1
  187. package/dist/components/inputs/variables/VariableSuggestion.js +0 -41
  188. package/dist/components/inputs/variables/VariableSuggestion.js.map +0 -1
  189. package/dist/components/inputs/variables/extension.d.ts +0 -4
  190. package/dist/components/inputs/variables/extension.d.ts.map +0 -1
  191. package/dist/components/inputs/variables/extension.js +0 -93
  192. package/dist/components/inputs/variables/extension.js.map +0 -1
  193. package/dist/context/messages-form.d.ts +0 -29
  194. package/dist/context/messages-form.d.ts.map +0 -1
  195. package/dist/context/messages-form.js +0 -26
  196. package/dist/context/messages-form.js.map +0 -1
  197. package/dist/exports/link.d.ts.map +0 -1
  198. package/dist/exports/link.js +0 -21
  199. package/dist/exports/link.js.map +0 -1
  200. package/dist/exports/view.d.ts +0 -10
  201. package/dist/exports/view.d.ts.map +0 -1
  202. package/dist/exports/view.js +0 -53
  203. package/dist/exports/view.js.map +0 -1
  204. package/dist/styles.css +0 -1
  205. package/dist/utils/cn.d.ts +0 -3
  206. package/dist/utils/cn.d.ts.map +0 -1
  207. package/dist/utils/cn.js +0 -9
  208. package/dist/utils/cn.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,kBAAkB,WAAY,aAAa,KAAG,aAY1D,CAAC;AAEF,eAAO,MAAM,wBAAwB,WAC3B,aAAa,KACpB,gBAAgB,EAA6C,CAAC;AAgCjE,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC;AAChC,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,kBAAkB,WAAY,aAAa,KAAG,aAU1D,CAAC;AAEF,eAAO,MAAM,wBAAwB,WAC3B,aAAa,KACpB,gBAAgB,EAA6C,CAAC;AAgCjE,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC"}
@@ -1,35 +1,43 @@
1
- import { parse as r, TYPE as e } from "@formatjs/icu-messageformat-parser";
2
- const i = (a) => ({
3
- description: a.match(/^\[.+\]/)?.[0]?.slice(1, -1),
4
- // type: schema === "$RICH$" ? "rich" : "icu",
5
- type: "icu",
6
- variables: l(a)
7
- }), l = (a) => s(r(a)), s = (a) => a.flatMap((t) => {
8
- switch (t.type) {
9
- case e.literal:
10
- case e.pound:
11
- return [];
12
- case e.argument:
13
- case e.number:
14
- case e.date:
15
- case e.time:
16
- return [t];
17
- case e.plural:
18
- case e.select:
19
- return [
20
- t,
21
- ...s(
22
- Object.values(t.options).flatMap(({ value: c }) => c)
23
- )
24
- ];
25
- case e.tag:
26
- return [t, ...s(t.children)];
27
- default:
28
- return [t];
29
- }
30
- });
31
- export {
32
- l as extractTemplateVariables,
33
- i as parseMessageSchema
1
+ import { parse, TYPE } from '@formatjs/icu-messageformat-parser';
2
+ export const parseMessageSchema = (schema)=>{
3
+ const description = schema.match(/^\[.+\]/)?.[0];
4
+ // TODO add support for variables description
5
+ // const withoutDescription = schema.replace(description || "", "").trim();
6
+ // const withoutOptional = withoutDescription.split(" | ")[0]?.trim();
7
+ return {
8
+ description: description?.slice(1, -1),
9
+ variables: extractTemplateVariables(schema)
10
+ };
34
11
  };
35
- //# sourceMappingURL=schema.js.map
12
+ export const extractTemplateVariables = (schema)=>collectTemplateVariables(parse(schema));
13
+ const collectTemplateVariables = (parts)=>parts.flatMap((part)=>{
14
+ switch(part.type){
15
+ case TYPE.literal:
16
+ case TYPE.pound:
17
+ return [];
18
+ case TYPE.argument:
19
+ case TYPE.number:
20
+ case TYPE.date:
21
+ case TYPE.time:
22
+ return [
23
+ part
24
+ ];
25
+ case TYPE.plural:
26
+ case TYPE.select:
27
+ return [
28
+ part,
29
+ ...collectTemplateVariables(Object.values(part.options).flatMap(({ value })=>value))
30
+ ];
31
+ case TYPE.tag:
32
+ return [
33
+ part,
34
+ ...collectTemplateVariables(part.children)
35
+ ];
36
+ default:
37
+ return [
38
+ part
39
+ ];
40
+ }
41
+ });
42
+
43
+ //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sources":["../../src/utils/schema.ts"],"sourcesContent":["import type { MessageFormatElement } from '@formatjs/icu-messageformat-parser';\nimport { parse, TYPE } from '@formatjs/icu-messageformat-parser';\nimport type { MessageSchema, TemplateVariable } from '@/types';\n\nexport const parseMessageSchema = (schema: MessageSchema): MessageConfig => {\n const description = schema.match(/^\\[.+\\]/)?.[0];\n // TODO add support for variables description\n // const withoutDescription = schema.replace(description || \"\", \"\").trim();\n // const withoutOptional = withoutDescription.split(\" | \")[0]?.trim();\n\n return {\n description: description?.slice(1, -1),\n // type: schema === \"$RICH$\" ? \"rich\" : \"icu\",\n type: 'icu',\n variables: extractTemplateVariables(schema),\n };\n};\n\nexport const extractTemplateVariables = (\n schema: MessageSchema,\n): TemplateVariable[] => collectTemplateVariables(parse(schema));\n\nconst collectTemplateVariables = (\n parts: MessageFormatElement[],\n): TemplateVariable[] =>\n parts.flatMap<TemplateVariable>((part) => {\n switch (part.type) {\n case TYPE.literal:\n case TYPE.pound:\n return [];\n case TYPE.argument:\n case TYPE.number:\n case TYPE.date:\n case TYPE.time:\n return [part];\n case TYPE.plural:\n case TYPE.select:\n return [\n part,\n ...collectTemplateVariables(\n Object.values(part.options).flatMap(({ value }) => value),\n ),\n ];\n case TYPE.tag:\n return [part, ...collectTemplateVariables(part.children)];\n default:\n return [part];\n }\n });\n\n// MARK: Types\n\nexport type MessageType = 'icu'; // \"rich\";\nexport type MessageConfig = {\n description: string | undefined;\n type: MessageType;\n variables: TemplateVariable[];\n};\n"],"names":["parseMessageSchema","schema","extractTemplateVariables","collectTemplateVariables","parse","parts","part","TYPE","value"],"mappings":";AAIO,MAAMA,IAAqB,CAACC,OAM1B;AAAA,EACL,aANkBA,EAAO,MAAM,SAAS,IAAI,CAAC,GAMnB,MAAM,GAAG,EAAE;AAAA;AAAA,EAErC,MAAM;AAAA,EACN,WAAWC,EAAyBD,CAAM;AAAA,IAIjCC,IAA2B,CACtCD,MACuBE,EAAyBC,EAAMH,CAAM,CAAC,GAEzDE,IAA2B,CAC/BE,MAEAA,EAAM,QAA0B,CAACC,MAAS;AACxC,UAAQA,EAAK,MAAA;AAAA,IACX,KAAKC,EAAK;AAAA,IACV,KAAKA,EAAK;AACR,aAAO,CAAA;AAAA,IACT,KAAKA,EAAK;AAAA,IACV,KAAKA,EAAK;AAAA,IACV,KAAKA,EAAK;AAAA,IACV,KAAKA,EAAK;AACR,aAAO,CAACD,CAAI;AAAA,IACd,KAAKC,EAAK;AAAA,IACV,KAAKA,EAAK;AACR,aAAO;AAAA,QACLD;AAAA,QACA,GAAGH;AAAA,UACD,OAAO,OAAOG,EAAK,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAAE,EAAA,MAAYA,CAAK;AAAA,QAAA;AAAA,MAC1D;AAAA,IAEJ,KAAKD,EAAK;AACR,aAAO,CAACD,GAAM,GAAGH,EAAyBG,EAAK,QAAQ,CAAC;AAAA,IAC1D;AACE,aAAO,CAACA,CAAI;AAAA,EAAA;AAElB,CAAC;"}
1
+ {"version":3,"sources":["../../src/utils/schema.ts"],"sourcesContent":["import type { MessageFormatElement } from '@formatjs/icu-messageformat-parser';\nimport { parse, TYPE } from '@formatjs/icu-messageformat-parser';\nimport type { MessageSchema, TemplateVariable } from '@/types';\n\nexport const parseMessageSchema = (schema: MessageSchema): MessageConfig => {\n const description = schema.match(/^\\[.+\\]/)?.[0];\n // TODO add support for variables description\n // const withoutDescription = schema.replace(description || \"\", \"\").trim();\n // const withoutOptional = withoutDescription.split(\" | \")[0]?.trim();\n\n return {\n description: description?.slice(1, -1),\n variables: extractTemplateVariables(schema),\n };\n};\n\nexport const extractTemplateVariables = (\n schema: MessageSchema,\n): TemplateVariable[] => collectTemplateVariables(parse(schema));\n\nconst collectTemplateVariables = (\n parts: MessageFormatElement[],\n): TemplateVariable[] =>\n parts.flatMap<TemplateVariable>((part) => {\n switch (part.type) {\n case TYPE.literal:\n case TYPE.pound:\n return [];\n case TYPE.argument:\n case TYPE.number:\n case TYPE.date:\n case TYPE.time:\n return [part];\n case TYPE.plural:\n case TYPE.select:\n return [\n part,\n ...collectTemplateVariables(\n Object.values(part.options).flatMap(({ value }) => value),\n ),\n ];\n case TYPE.tag:\n return [part, ...collectTemplateVariables(part.children)];\n default:\n return [part];\n }\n });\n\n// MARK: Types\n\nexport type MessageConfig = {\n description: string | undefined;\n variables: TemplateVariable[];\n};\n"],"names":["parse","TYPE","parseMessageSchema","schema","description","match","slice","variables","extractTemplateVariables","collectTemplateVariables","parts","flatMap","part","type","literal","pound","argument","number","date","time","plural","select","Object","values","options","value","tag","children"],"mappings":"AACA,SAASA,KAAK,EAAEC,IAAI,QAAQ,qCAAqC;AAGjE,OAAO,MAAMC,qBAAqB,CAACC;IACjC,MAAMC,cAAcD,OAAOE,KAAK,CAAC,YAAY,CAAC,EAAE;IAChD,6CAA6C;IAC7C,2EAA2E;IAC3E,sEAAsE;IAEtE,OAAO;QACLD,aAAaA,aAAaE,MAAM,GAAG,CAAC;QACpCC,WAAWC,yBAAyBL;IACtC;AACF,EAAE;AAEF,OAAO,MAAMK,2BAA2B,CACtCL,SACuBM,yBAAyBT,MAAMG,SAAS;AAEjE,MAAMM,2BAA2B,CAC/BC,QAEAA,MAAMC,OAAO,CAAmB,CAACC;QAC/B,OAAQA,KAAKC,IAAI;YACf,KAAKZ,KAAKa,OAAO;YACjB,KAAKb,KAAKc,KAAK;gBACb,OAAO,EAAE;YACX,KAAKd,KAAKe,QAAQ;YAClB,KAAKf,KAAKgB,MAAM;YAChB,KAAKhB,KAAKiB,IAAI;YACd,KAAKjB,KAAKkB,IAAI;gBACZ,OAAO;oBAACP;iBAAK;YACf,KAAKX,KAAKmB,MAAM;YAChB,KAAKnB,KAAKoB,MAAM;gBACd,OAAO;oBACLT;uBACGH,yBACDa,OAAOC,MAAM,CAACX,KAAKY,OAAO,EAAEb,OAAO,CAAC,CAAC,EAAEc,KAAK,EAAE,GAAKA;iBAEtD;YACH,KAAKxB,KAAKyB,GAAG;gBACX,OAAO;oBAACd;uBAASH,yBAAyBG,KAAKe,QAAQ;iBAAE;YAC3D;gBACE,OAAO;oBAACf;iBAAK;QACjB;IACF"}
@@ -1,5 +1,5 @@
1
- import { ValidateResult } from 'react-hook-form';
2
- import { TemplateVariable } from '../types';
1
+ import type { ValidateResult } from 'react-hook-form';
2
+ import type { TemplateVariable } from '../types';
3
3
  export declare const validateMessage: (value: unknown, variables: TemplateVariable[]) => ValidateResult;
4
4
  export declare const createValidator: (variables: TemplateVariable[]) => MessageValidator;
5
5
  export type MessageValidator = (value: unknown) => ValidateResult;
@@ -1,57 +1,56 @@
1
- import { TYPE as n } from "@formatjs/icu-messageformat-parser";
2
- import { isNumericElement as u, isTemporalElement as l } from "./guards.js";
3
- import { extractTemplateVariables as f } from "./schema.js";
4
- const v = (o, r) => {
5
- if (typeof o != "string") return "Invalid value";
6
- try {
7
- const a = f(o);
8
- for (const e of r) {
9
- const t = a.find(
10
- (s) => s.value === e.value
11
- );
12
- if (t) {
13
- if (u(e)) {
14
- if (u(t)) continue;
15
- return `{${e.value}} has invalid type`;
1
+ import { TYPE } from '@formatjs/icu-messageformat-parser';
2
+ import { isNumericElement, isTemporalElement } from './guards';
3
+ import { extractTemplateVariables } from './schema';
4
+ export const validateMessage = (value, variables)=>{
5
+ if (typeof value !== 'string') return 'Invalid value';
6
+ try {
7
+ const variableUsages = extractTemplateVariables(value);
8
+ for (const allowedVariable of variables){
9
+ const variableUsage = variableUsages.find((placeholder)=>placeholder.value === allowedVariable.value);
10
+ if (!variableUsage) continue;
11
+ if (isNumericElement(allowedVariable)) {
12
+ if (isNumericElement(variableUsage)) continue;
13
+ return `{${allowedVariable.value}} has invalid type`;
14
+ }
15
+ if (isTemporalElement(allowedVariable)) {
16
+ if (isTemporalElement(variableUsage)) continue;
17
+ return `{${allowedVariable.value}} has invalid type`;
18
+ }
19
+ switch(allowedVariable.type){
20
+ case TYPE.argument:
21
+ if (variableUsage.type === TYPE.argument) continue;
22
+ return `{${allowedVariable.value}} has invalid type`;
23
+ case TYPE.select:
24
+ {
25
+ if (variableUsage.type !== TYPE.select) return `{${allowedVariable.value}} has invalid type`;
26
+ const allowedOptions = Object.keys(allowedVariable.options);
27
+ for (const option of allowedOptions){
28
+ if (variableUsage.options[option]) continue;
29
+ return `{${allowedVariable.value}} has missing option: ${option}`;
30
+ }
31
+ const usedOptions = Object.keys(variableUsage.options);
32
+ for (const option of usedOptions){
33
+ if (allowedOptions.includes(option)) continue;
34
+ return `{${allowedVariable.value}} has unsupported option: ${option}`;
35
+ }
36
+ continue;
37
+ }
38
+ case TYPE.tag:
39
+ if (variableUsage.type === TYPE.tag) continue;
40
+ return `{${allowedVariable.value}} has invalid type`;
41
+ }
16
42
  }
17
- if (l(e)) {
18
- if (l(t)) continue;
19
- return `{${e.value}} has invalid type`;
43
+ const supportedVariables = new Set(variables.map(({ value })=>value));
44
+ for (const variableUsage of variableUsages){
45
+ if (supportedVariables.has(variableUsage.value)) continue;
46
+ return `{${variableUsage.value}} is not supported`;
20
47
  }
21
- switch (e.type) {
22
- case n.argument:
23
- if (t.type === n.argument) continue;
24
- return `{${e.value}} has invalid type`;
25
- case n.select: {
26
- if (t.type !== n.select)
27
- return `{${e.value}} has invalid type`;
28
- const s = Object.keys(e.options);
29
- for (const i of s)
30
- if (!t.options[i])
31
- return `{${e.value}} has missing option: ${i}`;
32
- const p = Object.keys(t.options);
33
- for (const i of p)
34
- if (!s.includes(i))
35
- return `{${e.value}} has unsupported option: ${i}`;
36
- continue;
37
- }
38
- case n.tag:
39
- if (t.type === n.tag) continue;
40
- return `{${e.value}} has invalid type`;
41
- }
42
- }
48
+ return true;
49
+ } catch (error) {
50
+ if (!(error instanceof Error)) return false;
51
+ return `Invalid syntax: ${error.message}`;
43
52
  }
44
- const c = new Set(r.map(({ value: e }) => e));
45
- for (const e of a)
46
- if (!c.has(e.value))
47
- return `{${e.value}} is not supported`;
48
- return !0;
49
- } catch (a) {
50
- return a instanceof Error ? `Invalid syntax: ${a.message}` : !1;
51
- }
52
- }, g = (o) => (r) => v(r, o);
53
- export {
54
- g as createValidator,
55
- v as validateMessage
56
53
  };
57
- //# sourceMappingURL=validate.js.map
54
+ export const createValidator = (variables)=>(value)=>validateMessage(value, variables);
55
+
56
+ //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sources":["../../src/utils/validate.ts"],"sourcesContent":["import { TYPE } from '@formatjs/icu-messageformat-parser';\nimport type { ValidateResult } from 'react-hook-form';\nimport type { TemplateVariable } from '@/types';\n\nimport { isNumericElement, isTemporalElement } from './guards';\nimport { extractTemplateVariables } from './schema';\n\nexport const validateMessage = (\n value: unknown,\n variables: TemplateVariable[],\n): ValidateResult => {\n if (typeof value !== 'string') return 'Invalid value';\n\n try {\n const variableUsages = extractTemplateVariables(value);\n\n for (const allowedVariable of variables) {\n const variableUsage = variableUsages.find(\n (placeholder) => placeholder.value === allowedVariable.value,\n );\n\n if (!variableUsage) continue;\n\n if (isNumericElement(allowedVariable)) {\n if (isNumericElement(variableUsage)) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n\n if (isTemporalElement(allowedVariable)) {\n if (isTemporalElement(variableUsage)) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n\n switch (allowedVariable.type) {\n case TYPE.argument:\n if (variableUsage.type === TYPE.argument) continue;\n return `{${allowedVariable.value}} has invalid type`;\n case TYPE.select: {\n if (variableUsage.type !== TYPE.select)\n return `{${allowedVariable.value}} has invalid type`;\n\n const allowedOptions = Object.keys(allowedVariable.options);\n for (const option of allowedOptions) {\n if (variableUsage.options[option]) continue;\n return `{${allowedVariable.value}} has missing option: ${option}`;\n }\n const usedOptions = Object.keys(variableUsage.options);\n for (const option of usedOptions) {\n if (allowedOptions.includes(option)) continue;\n return `{${allowedVariable.value}} has unsupported option: ${option}`;\n }\n continue;\n }\n case TYPE.tag:\n if (variableUsage.type === TYPE.tag) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n }\n\n const supportedVariables = new Set(variables.map(({ value }) => value));\n\n for (const variableUsage of variableUsages) {\n if (supportedVariables.has(variableUsage.value)) continue;\n return `{${variableUsage.value}} is not supported`;\n }\n\n return true;\n } catch (error) {\n if (!(error instanceof Error)) return false;\n return `Invalid syntax: ${error.message}`;\n }\n};\n\nexport const createValidator =\n (variables: TemplateVariable[]): MessageValidator =>\n (value: unknown) =>\n validateMessage(value, variables);\n\nexport type MessageValidator = (value: unknown) => ValidateResult;\n"],"names":["validateMessage","value","variables","variableUsages","extractTemplateVariables","allowedVariable","variableUsage","placeholder","isNumericElement","isTemporalElement","TYPE","allowedOptions","option","usedOptions","supportedVariables","error","createValidator"],"mappings":";;;AAOO,MAAMA,IAAkB,CAC7BC,GACAC,MACmB;AACnB,MAAI,OAAOD,KAAU,SAAU,QAAO;AAEtC,MAAI;AACF,UAAME,IAAiBC,EAAyBH,CAAK;AAErD,eAAWI,KAAmBH,GAAW;AACvC,YAAMI,IAAgBH,EAAe;AAAA,QACnC,CAACI,MAAgBA,EAAY,UAAUF,EAAgB;AAAA,MAAA;AAGzD,UAAKC,GAEL;AAAA,YAAIE,EAAiBH,CAAe,GAAG;AACrC,cAAIG,EAAiBF,CAAa,EAAG;AACrC,iBAAO,IAAID,EAAgB,KAAK;AAAA,QAClC;AAEA,YAAII,EAAkBJ,CAAe,GAAG;AACtC,cAAII,EAAkBH,CAAa,EAAG;AACtC,iBAAO,IAAID,EAAgB,KAAK;AAAA,QAClC;AAEA,gBAAQA,EAAgB,MAAA;AAAA,UACtB,KAAKK,EAAK;AACR,gBAAIJ,EAAc,SAASI,EAAK,SAAU;AAC1C,mBAAO,IAAIL,EAAgB,KAAK;AAAA,UAClC,KAAKK,EAAK,QAAQ;AAChB,gBAAIJ,EAAc,SAASI,EAAK;AAC9B,qBAAO,IAAIL,EAAgB,KAAK;AAElC,kBAAMM,IAAiB,OAAO,KAAKN,EAAgB,OAAO;AAC1D,uBAAWO,KAAUD;AACnB,kBAAI,CAAAL,EAAc,QAAQM,CAAM;AAChC,uBAAO,IAAIP,EAAgB,KAAK,yBAAyBO,CAAM;AAEjE,kBAAMC,IAAc,OAAO,KAAKP,EAAc,OAAO;AACrD,uBAAWM,KAAUC;AACnB,kBAAI,CAAAF,EAAe,SAASC,CAAM;AAClC,uBAAO,IAAIP,EAAgB,KAAK,6BAA6BO,CAAM;AAErE;AAAA,UACF;AAAA,UACA,KAAKF,EAAK;AACR,gBAAIJ,EAAc,SAASI,EAAK,IAAK;AACrC,mBAAO,IAAIL,EAAgB,KAAK;AAAA,QAAA;AAAA;AAAA,IAEtC;AAEA,UAAMS,IAAqB,IAAI,IAAIZ,EAAU,IAAI,CAAC,EAAE,OAAAD,QAAYA,CAAK,CAAC;AAEtE,eAAWK,KAAiBH;AAC1B,UAAI,CAAAW,EAAmB,IAAIR,EAAc,KAAK;AAC9C,eAAO,IAAIA,EAAc,KAAK;AAGhC,WAAO;AAAA,EACT,SAASS,GAAO;AACd,WAAMA,aAAiB,QAChB,mBAAmBA,EAAM,OAAO,KADD;AAAA,EAExC;AACF,GAEaC,IACX,CAACd,MACD,CAACD,MACCD,EAAgBC,GAAOC,CAAS;"}
1
+ {"version":3,"sources":["../../src/utils/validate.ts"],"sourcesContent":["import { TYPE } from '@formatjs/icu-messageformat-parser';\nimport type { ValidateResult } from 'react-hook-form';\nimport type { TemplateVariable } from '@/types';\n\nimport { isNumericElement, isTemporalElement } from './guards';\nimport { extractTemplateVariables } from './schema';\n\nexport const validateMessage = (\n value: unknown,\n variables: TemplateVariable[],\n): ValidateResult => {\n if (typeof value !== 'string') return 'Invalid value';\n\n try {\n const variableUsages = extractTemplateVariables(value);\n\n for (const allowedVariable of variables) {\n const variableUsage = variableUsages.find(\n (placeholder) => placeholder.value === allowedVariable.value,\n );\n\n if (!variableUsage) continue;\n\n if (isNumericElement(allowedVariable)) {\n if (isNumericElement(variableUsage)) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n\n if (isTemporalElement(allowedVariable)) {\n if (isTemporalElement(variableUsage)) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n\n switch (allowedVariable.type) {\n case TYPE.argument:\n if (variableUsage.type === TYPE.argument) continue;\n return `{${allowedVariable.value}} has invalid type`;\n case TYPE.select: {\n if (variableUsage.type !== TYPE.select)\n return `{${allowedVariable.value}} has invalid type`;\n\n const allowedOptions = Object.keys(allowedVariable.options);\n for (const option of allowedOptions) {\n if (variableUsage.options[option]) continue;\n return `{${allowedVariable.value}} has missing option: ${option}`;\n }\n const usedOptions = Object.keys(variableUsage.options);\n for (const option of usedOptions) {\n if (allowedOptions.includes(option)) continue;\n return `{${allowedVariable.value}} has unsupported option: ${option}`;\n }\n continue;\n }\n case TYPE.tag:\n if (variableUsage.type === TYPE.tag) continue;\n return `{${allowedVariable.value}} has invalid type`;\n }\n }\n\n const supportedVariables = new Set(variables.map(({ value }) => value));\n\n for (const variableUsage of variableUsages) {\n if (supportedVariables.has(variableUsage.value)) continue;\n return `{${variableUsage.value}} is not supported`;\n }\n\n return true;\n } catch (error) {\n if (!(error instanceof Error)) return false;\n return `Invalid syntax: ${error.message}`;\n }\n};\n\nexport const createValidator =\n (variables: TemplateVariable[]): MessageValidator =>\n (value: unknown) =>\n validateMessage(value, variables);\n\nexport type MessageValidator = (value: unknown) => ValidateResult;\n"],"names":["TYPE","isNumericElement","isTemporalElement","extractTemplateVariables","validateMessage","value","variables","variableUsages","allowedVariable","variableUsage","find","placeholder","type","argument","select","allowedOptions","Object","keys","options","option","usedOptions","includes","tag","supportedVariables","Set","map","has","error","Error","message","createValidator"],"mappings":"AAAA,SAASA,IAAI,QAAQ,qCAAqC;AAI1D,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,WAAW;AAC/D,SAASC,wBAAwB,QAAQ,WAAW;AAEpD,OAAO,MAAMC,kBAAkB,CAC7BC,OACAC;IAEA,IAAI,OAAOD,UAAU,UAAU,OAAO;IAEtC,IAAI;QACF,MAAME,iBAAiBJ,yBAAyBE;QAEhD,KAAK,MAAMG,mBAAmBF,UAAW;YACvC,MAAMG,gBAAgBF,eAAeG,IAAI,CACvC,CAACC,cAAgBA,YAAYN,KAAK,KAAKG,gBAAgBH,KAAK;YAG9D,IAAI,CAACI,eAAe;YAEpB,IAAIR,iBAAiBO,kBAAkB;gBACrC,IAAIP,iBAAiBQ,gBAAgB;gBACrC,OAAO,CAAC,CAAC,EAAED,gBAAgBH,KAAK,CAAC,kBAAkB,CAAC;YACtD;YAEA,IAAIH,kBAAkBM,kBAAkB;gBACtC,IAAIN,kBAAkBO,gBAAgB;gBACtC,OAAO,CAAC,CAAC,EAAED,gBAAgBH,KAAK,CAAC,kBAAkB,CAAC;YACtD;YAEA,OAAQG,gBAAgBI,IAAI;gBAC1B,KAAKZ,KAAKa,QAAQ;oBAChB,IAAIJ,cAAcG,IAAI,KAAKZ,KAAKa,QAAQ,EAAE;oBAC1C,OAAO,CAAC,CAAC,EAAEL,gBAAgBH,KAAK,CAAC,kBAAkB,CAAC;gBACtD,KAAKL,KAAKc,MAAM;oBAAE;wBAChB,IAAIL,cAAcG,IAAI,KAAKZ,KAAKc,MAAM,EACpC,OAAO,CAAC,CAAC,EAAEN,gBAAgBH,KAAK,CAAC,kBAAkB,CAAC;wBAEtD,MAAMU,iBAAiBC,OAAOC,IAAI,CAACT,gBAAgBU,OAAO;wBAC1D,KAAK,MAAMC,UAAUJ,eAAgB;4BACnC,IAAIN,cAAcS,OAAO,CAACC,OAAO,EAAE;4BACnC,OAAO,CAAC,CAAC,EAAEX,gBAAgBH,KAAK,CAAC,sBAAsB,EAAEc,QAAQ;wBACnE;wBACA,MAAMC,cAAcJ,OAAOC,IAAI,CAACR,cAAcS,OAAO;wBACrD,KAAK,MAAMC,UAAUC,YAAa;4BAChC,IAAIL,eAAeM,QAAQ,CAACF,SAAS;4BACrC,OAAO,CAAC,CAAC,EAAEX,gBAAgBH,KAAK,CAAC,0BAA0B,EAAEc,QAAQ;wBACvE;wBACA;oBACF;gBACA,KAAKnB,KAAKsB,GAAG;oBACX,IAAIb,cAAcG,IAAI,KAAKZ,KAAKsB,GAAG,EAAE;oBACrC,OAAO,CAAC,CAAC,EAAEd,gBAAgBH,KAAK,CAAC,kBAAkB,CAAC;YACxD;QACF;QAEA,MAAMkB,qBAAqB,IAAIC,IAAIlB,UAAUmB,GAAG,CAAC,CAAC,EAAEpB,KAAK,EAAE,GAAKA;QAEhE,KAAK,MAAMI,iBAAiBF,eAAgB;YAC1C,IAAIgB,mBAAmBG,GAAG,CAACjB,cAAcJ,KAAK,GAAG;YACjD,OAAO,CAAC,CAAC,EAAEI,cAAcJ,KAAK,CAAC,kBAAkB,CAAC;QACpD;QAEA,OAAO;IACT,EAAE,OAAOsB,OAAO;QACd,IAAI,CAAEA,CAAAA,iBAAiBC,KAAI,GAAI,OAAO;QACtC,OAAO,CAAC,gBAAgB,EAAED,MAAME,OAAO,EAAE;IAC3C;AACF,EAAE;AAEF,OAAO,MAAMC,kBACX,CAACxB,YACD,CAACD,QACCD,gBAAgBC,OAAOC,WAAW"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload-intl",
3
- "version": "1.1.2",
3
+ "version": "1.2.0",
4
4
  "description": "Payload Plugin for I18N using ICU Messages",
5
5
  "keywords": [
6
6
  "payload",
@@ -20,7 +20,7 @@
20
20
  "directory": "packages/intl"
21
21
  },
22
22
  "license": "MIT",
23
- "author": "Michael Zeltner",
23
+ "author": "DAVINCI CODING GmbH",
24
24
  "type": "module",
25
25
  "exports": {
26
26
  ".": {
@@ -33,63 +33,57 @@
33
33
  "import": "./dist/exports/rsc.js",
34
34
  "default": "./dist/exports/rsc.js"
35
35
  },
36
- "./styles.css": "./dist/styles.css"
36
+ "./client": {
37
+ "types": "./dist/exports/client.d.ts",
38
+ "import": "./dist/exports/client.js",
39
+ "default": "./dist/exports/client.js"
40
+ }
37
41
  },
38
42
  "main": "./dist/index.js",
39
43
  "types": "./dist/index.d.ts",
40
44
  "files": [
41
45
  "dist"
42
46
  ],
47
+ "scripts": {
48
+ "prebuild": "pnpm typecheck",
49
+ "build": "plugin-build",
50
+ "clean": "rm -rf dist && rm -rf node_modules",
51
+ "dev": "plugin-build --watch",
52
+ "generate:types": "generate-types",
53
+ "lint": "biome check .",
54
+ "lint:fix": "biome check --write .",
55
+ "test": "vitest run",
56
+ "test:watch": "vitest",
57
+ "typecheck": "tsc --noEmit"
58
+ },
43
59
  "dependencies": {
44
- "@floating-ui/dom": "^1.7.3",
45
60
  "@formatjs/icu-messageformat-parser": "^2.11.2",
46
- "@radix-ui/react-dropdown-menu": "^2.1.15",
47
- "@radix-ui/react-hover-card": "^1.1.14",
48
- "@radix-ui/react-popover": "^1.1.14",
49
- "@radix-ui/react-select": "^2.2.5",
50
- "@radix-ui/react-toggle-group": "^1.1.10",
51
- "@radix-ui/react-toolbar": "^1.1.10",
52
61
  "@tabler/icons-react": "^3.36.1",
53
- "@tiptap/core": "^3.16.0",
54
- "@tiptap/extension-document": "^3.16.0",
55
- "@tiptap/extension-mention": "^3.16.0",
56
- "@tiptap/extension-paragraph": "^3.16.0",
57
- "@tiptap/extension-text": "^3.16.0",
58
- "@tiptap/pm": "^3.16.0",
59
- "@tiptap/react": "^3.16.0",
60
- "@tiptap/suggestion": "^3.16.0",
61
- "clsx": "^2.1.1",
62
+ "lexical-beautiful-mentions": "^0.1.48",
62
63
  "lodash-es": "^4.17.21",
63
64
  "radix-ui": "^1.4.2",
64
65
  "react-hook-form": "^7.58.1",
65
- "tailwind-merge": "^3.3.1",
66
- "zod": "^4.0.14"
66
+ "zod": "catalog:"
67
67
  },
68
68
  "devDependencies": {
69
- "@payloadcms/richtext-lexical": "3.72.0",
70
- "@payloadcms/ui": "3.72.0",
71
- "@tailwindcss/typography": "^0.5.16",
72
- "@tailwindcss/vite": "^4.1.11",
69
+ "@payloadcms/richtext-lexical": "catalog:payload-stack",
70
+ "@payloadcms/ui": "catalog:payload-stack",
71
+ "@repo/common": "workspace:*",
73
72
  "@types/lodash-es": "^4.17.12",
74
73
  "@types/node": "^22.5.4",
75
- "@types/react": "19.2.1",
76
- "@types/react-dom": "19.2.1",
77
- "next": "15.5.9",
78
- "payload": "3.72.0",
79
- "react": "19.2.1",
80
- "react-dom": "19.2.1",
81
- "rollup-preserve-directives": "1.1.3",
82
- "tailwindcss": "^4.1.11",
83
- "tw-animate-css": "^1.3.6",
84
- "typescript": "5.7.3",
85
- "vite": "7.0.6",
86
- "vite-plugin-dts": "4.5.4",
87
- "vite-tsconfig-paths": "5.1.4",
88
- "vitest": "^3.1.2",
89
- "@repo/configs": "0.0.1"
74
+ "@types/react": "catalog:payload-stack",
75
+ "@types/react-dom": "catalog:payload-stack",
76
+ "next": "catalog:payload-stack",
77
+ "payload": "catalog:payload-stack",
78
+ "react": "catalog:payload-stack",
79
+ "react-dom": "catalog:payload-stack",
80
+ "typescript": "catalog:payload-stack",
81
+ "vite": "catalog:vite",
82
+ "vitest": "^3.1.2"
90
83
  },
91
84
  "peerDependencies": {
92
85
  "@payloadcms/next": ">=3.72.0",
86
+ "@payloadcms/richtext-lexical": ">=3.72.0",
93
87
  "@payloadcms/ui": ">=3.72.0",
94
88
  "next": ">=15.2.3",
95
89
  "payload": ">=3.72.0"
@@ -100,16 +94,5 @@
100
94
  },
101
95
  "publishConfig": {
102
96
  "access": "public"
103
- },
104
- "scripts": {
105
- "prebuild": "pnpm typecheck",
106
- "build": "vite build",
107
- "clean": "rm -rf dist && rm -rf node_modules",
108
- "dev": "vite build --watch",
109
- "lint": "biome check .",
110
- "lint:fix": "biome check --write .",
111
- "test": "vitest run",
112
- "test:watch": "vitest",
113
- "typecheck": "tsc --noEmit"
114
97
  }
115
- }
98
+ }
@@ -1,9 +0,0 @@
1
- import { SuggestionKeyDownProps, SuggestionProps } from '@tiptap/suggestion';
2
- import { VariableMentionNodeAttrs } from '../../../types';
3
- export interface VariableSuggestionProps extends SuggestionProps<VariableMentionNodeAttrs, VariableMentionNodeAttrs> {
4
- ref: React.RefObject<{
5
- onKeyDown: (props: SuggestionKeyDownProps) => boolean;
6
- }>;
7
- }
8
- export declare function VariableSuggestion({ items, command, ref, }: VariableSuggestionProps): import("react/jsx-runtime").JSX.Element;
9
- //# sourceMappingURL=VariableSuggestion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariableSuggestion.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/variables/VariableSuggestion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAIxD,MAAM,WAAW,uBACf,SAAQ,eAAe,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAC3E,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;QACnB,SAAS,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC;KACvD,CAAC,CAAC;CACJ;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,OAAO,EACP,GAAG,GACJ,EAAE,uBAAuB,2CAiEzB"}
@@ -1,41 +0,0 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { useState as i, useEffect as f, useImperativeHandle as g } from "react";
3
- import { cn as b } from "../../../utils/cn.js";
4
- function x({
5
- items: n,
6
- command: c,
7
- ref: u
8
- }) {
9
- const [r, o] = i(0), l = (e) => {
10
- const t = n[e];
11
- t && c(t);
12
- }, d = () => {
13
- o((r + n.length - 1) % n.length);
14
- }, p = () => {
15
- o((r + 1) % n.length);
16
- }, s = () => {
17
- l(r);
18
- };
19
- return f(() => o(0), [n]), g(u, () => ({
20
- onKeyDown: ({ event: e }) => e.key === "ArrowUp" ? (d(), !0) : e.key === "ArrowDown" ? (p(), !0) : e.key === "Enter" ? (s(), !0) : !1
21
- })), /* @__PURE__ */ a("div", { className: "flex flex-col overflow-clip rounded-md bg-elevation-100 empty:hidden", children: n.map((e, t) => /* @__PURE__ */ a(
22
- "button",
23
- {
24
- className: b(
25
- "cursor-pointer text-nowrap rounded-none border-none bg-transparent px-3 py-1 text-lg",
26
- {
27
- "bg-elevation-800 text-elevation-0": t === r,
28
- "hover:bg-elevation-250": t !== r
29
- }
30
- ),
31
- onClick: () => l(t),
32
- type: "button",
33
- children: e.label
34
- },
35
- t
36
- )) });
37
- }
38
- export {
39
- x as VariableSuggestion
40
- };
41
- //# sourceMappingURL=VariableSuggestion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariableSuggestion.js","sources":["../../../../src/components/inputs/variables/VariableSuggestion.tsx"],"sourcesContent":["import type {\n SuggestionKeyDownProps,\n SuggestionProps,\n} from '@tiptap/suggestion';\nimport { useEffect, useImperativeHandle, useState } from 'react';\nimport type { VariableMentionNodeAttrs } from '@/types';\n\nimport { cn } from '@/utils/cn';\n\nexport interface VariableSuggestionProps\n extends SuggestionProps<VariableMentionNodeAttrs, VariableMentionNodeAttrs> {\n ref: React.RefObject<{\n onKeyDown: (props: SuggestionKeyDownProps) => boolean;\n }>;\n}\n\nexport function VariableSuggestion({\n items,\n command,\n ref,\n}: VariableSuggestionProps) {\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const selectItem = (index: number) => {\n const item = items[index];\n\n if (item) command(item);\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + items.length - 1) % items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => setSelectedIndex(0), [items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }) => {\n if (event.key === 'ArrowUp') {\n upHandler();\n return true;\n }\n\n if (event.key === 'ArrowDown') {\n downHandler();\n return true;\n }\n\n if (event.key === 'Enter') {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n return (\n <div className=\"flex flex-col overflow-clip rounded-md bg-elevation-100 empty:hidden\">\n {items.map((item, index) => (\n <button\n className={cn(\n 'cursor-pointer text-nowrap rounded-none border-none bg-transparent px-3 py-1 text-lg',\n {\n 'bg-elevation-800 text-elevation-0': index === selectedIndex,\n 'hover:bg-elevation-250': index !== selectedIndex,\n },\n )}\n key={index}\n onClick={() => selectItem(index)}\n type=\"button\"\n >\n {item.label}\n </button>\n ))}\n </div>\n );\n}\n"],"names":["VariableSuggestion","items","command","ref","selectedIndex","setSelectedIndex","useState","selectItem","index","item","upHandler","downHandler","enterHandler","useEffect","useImperativeHandle","event","jsx","cn"],"mappings":";;;AAgBO,SAASA,EAAmB;AAAA,EACjC,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AACF,GAA4B;AAC1B,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAS,CAAC,GAE9CC,IAAa,CAACC,MAAkB;AACpC,UAAMC,IAAOR,EAAMO,CAAK;AAExB,IAAIC,OAAcA,CAAI;AAAA,EACxB,GAEMC,IAAY,MAAM;AACtB,IAAAL,GAAkBD,IAAgBH,EAAM,SAAS,KAAKA,EAAM,MAAM;AAAA,EACpE,GAEMU,IAAc,MAAM;AACxB,IAAAN,GAAkBD,IAAgB,KAAKH,EAAM,MAAM;AAAA,EACrD,GAEMW,IAAe,MAAM;AACzB,IAAAL,EAAWH,CAAa;AAAA,EAC1B;AAGA,SAAAS,EAAU,MAAMR,EAAiB,CAAC,GAAG,CAACJ,CAAK,CAAC,GAE5Ca,EAAoBX,GAAK,OAAO;AAAA,IAC9B,WAAW,CAAC,EAAE,OAAAY,QACRA,EAAM,QAAQ,aAChBL,EAAA,GACO,MAGLK,EAAM,QAAQ,eAChBJ,EAAA,GACO,MAGLI,EAAM,QAAQ,WAChBH,EAAA,GACO,MAGF;AAAA,EACT,EACA,GAGA,gBAAAI,EAAC,SAAI,WAAU,wEACZ,YAAM,IAAI,CAACP,GAAMD,MAChB,gBAAAQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,qCAAqCT,MAAUJ;AAAA,UAC/C,0BAA0BI,MAAUJ;AAAA,QAAA;AAAA,MACtC;AAAA,MAGF,SAAS,MAAMG,EAAWC,CAAK;AAAA,MAC/B,MAAK;AAAA,MAEJ,UAAAC,EAAK;AAAA,IAAA;AAAA,IAJDD;AAAA,EAAA,CAMR,GACH;AAEJ;"}
@@ -1,4 +0,0 @@
1
- import { MentionOptions } from '@tiptap/extension-mention';
2
- import { TemplateVariable, VariableMentionNodeAttrs } from '../../../types';
3
- export declare function VariableMention(variables: TemplateVariable[]): import('@tiptap/core').Node<MentionOptions<VariableMentionNodeAttrs, VariableMentionNodeAttrs>, any>;
4
- //# sourceMappingURL=extension.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/variables/extension.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAShE,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAS1E,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,EAAE,wGA6B5D"}
@@ -1,93 +0,0 @@
1
- import { computePosition as f, shift as c, flip as p } from "@floating-ui/dom";
2
- import y from "@tiptap/extension-mention";
3
- import { ReactNodeViewRenderer as g, ReactRenderer as b, posToDOMRect as w } from "@tiptap/react";
4
- import { formatVariableLabel as R } from "../../../utils/format.js";
5
- import { isTagElement as s } from "@formatjs/icu-messageformat-parser";
6
- import { serializeICUMessage as h } from "../../../utils/icu-tranform.js";
7
- import { VariableChip as v } from "./VariableChip.js";
8
- import { VariableSuggestion as x } from "./VariableSuggestion.js";
9
- function S(r) {
10
- return y.extend({
11
- name: "variable",
12
- addNodeView: () => g(v),
13
- addAttributes: () => ({
14
- name: { default: null },
15
- icu: { default: null },
16
- label: { default: null }
17
- }),
18
- renderText: ({ node: n }) => n.attrs.icu
19
- }).configure({
20
- HTMLAttributes: {
21
- class: "variable"
22
- },
23
- suggestions: [
24
- l("@", r),
25
- l(
26
- "{",
27
- r.filter((n) => !s(n))
28
- ),
29
- l(
30
- "<",
31
- r.filter((n) => s(n))
32
- )
33
- ]
34
- });
35
- }
36
- function l(r, n) {
37
- const m = n.map((e) => ({
38
- name: e.value,
39
- label: R(e),
40
- icu: h([e])
41
- }));
42
- function a(e, o) {
43
- f({
44
- getBoundingClientRect: () => w(
45
- e.view,
46
- e.state.selection.from,
47
- e.state.selection.to
48
- )
49
- }, o, {
50
- placement: "bottom-start",
51
- strategy: "absolute",
52
- middleware: [c(), p()]
53
- }).then(({ x: i, y: u, strategy: d }) => {
54
- o.style.width = "max-content", o.style.position = d, o.style.left = `${i}px`, o.style.top = `${u}px`;
55
- });
56
- }
57
- return {
58
- char: r,
59
- items: ({ query: e }) => m.filter(
60
- (o) => o.name.toLowerCase().startsWith(e.toLowerCase())
61
- ),
62
- render: () => {
63
- let e;
64
- const o = document.getElementById(
65
- "messages-form-content"
66
- );
67
- return {
68
- onStart: (t) => {
69
- if (e = new b(x, {
70
- props: t,
71
- editor: t.editor
72
- }), !t.clientRect) return;
73
- o.style.overflow = "hidden";
74
- const i = e.element;
75
- i.style.position = "absolute", document.body.appendChild(i), a(t.editor, i);
76
- },
77
- onUpdate(t) {
78
- e.updateProps(t), t.clientRect && a(t.editor, e.element);
79
- },
80
- onKeyDown(t) {
81
- return t.event.key === "Escape" ? (e.destroy(), !0) : e.ref ? e.ref.onKeyDown(t) : !1;
82
- },
83
- onExit() {
84
- e.element.remove(), e.destroy(), o.style.overflow = "";
85
- }
86
- };
87
- }
88
- };
89
- }
90
- export {
91
- S as VariableMention
92
- };
93
- //# sourceMappingURL=extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.js","sources":["../../../../src/components/inputs/variables/extension.ts"],"sourcesContent":["import type { VirtualElement } from '@floating-ui/dom';\nimport { computePosition, flip, shift } from '@floating-ui/dom';\nimport type { MentionOptions } from '@tiptap/extension-mention';\nimport Mention from '@tiptap/extension-mention';\nimport type { Attribute, Editor } from '@tiptap/react';\nimport {\n posToDOMRect,\n ReactNodeViewRenderer,\n ReactRenderer,\n} from '@tiptap/react';\nimport type { SuggestionKeyDownProps } from '@tiptap/suggestion';\nimport type { TemplateVariable, VariableMentionNodeAttrs } from '@/types';\n\nimport { formatVariableLabel } from '@/utils/format';\nimport { isTagElement, isTemporalElement } from '@/utils/guards';\nimport { serializeICUMessage } from '@/utils/icu-tranform';\nimport { VariableChip } from './VariableChip';\nimport type { VariableSuggestionProps } from './VariableSuggestion';\nimport { VariableSuggestion } from './VariableSuggestion';\n\nexport function VariableMention(variables: TemplateVariable[]) {\n return Mention.extend<\n MentionOptions<VariableMentionNodeAttrs, VariableMentionNodeAttrs>\n >({\n name: 'variable',\n addNodeView: () => ReactNodeViewRenderer(VariableChip),\n addAttributes: () =>\n ({\n name: { default: null },\n icu: { default: null },\n label: { default: null },\n }) satisfies Record<keyof VariableMentionNodeAttrs, Attribute>,\n renderText: ({ node }) => node.attrs.icu,\n }).configure({\n HTMLAttributes: {\n class: 'variable',\n },\n suggestions: [\n createSuggestion('@', variables),\n createSuggestion(\n '{',\n variables.filter((variable) => !isTagElement(variable)),\n ),\n createSuggestion(\n '<',\n variables.filter((variable) => isTagElement(variable)),\n ),\n ],\n });\n}\n\nfunction createSuggestion(\n char: string,\n variables: TemplateVariable[],\n): MentionOptions<\n VariableMentionNodeAttrs,\n VariableMentionNodeAttrs\n>['suggestion'] {\n const items = variables.map((variable) => ({\n name: variable.value,\n label: formatVariableLabel(variable),\n icu: serializeICUMessage([variable]),\n }));\n\n function updatePosition(editor: Editor, element: HTMLElement): void {\n const virtualElement: VirtualElement = {\n getBoundingClientRect: () =>\n posToDOMRect(\n editor.view,\n editor.state.selection.from,\n editor.state.selection.to,\n ),\n };\n\n void computePosition(virtualElement, element, {\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [shift(), flip()],\n }).then(({ x, y, strategy }) => {\n element.style.width = 'max-content';\n element.style.position = strategy;\n element.style.left = `${x}px`;\n element.style.top = `${y}px`;\n });\n }\n\n return {\n char,\n items: ({ query }) =>\n items.filter((item) =>\n item.name.toLowerCase().startsWith(query.toLowerCase()),\n ),\n render: () => {\n let component: ReactRenderer<\n { onKeyDown(props: SuggestionKeyDownProps): boolean },\n VariableSuggestionProps\n >;\n\n const scrollableElement = document.getElementById(\n 'messages-form-content',\n );\n\n return {\n onStart: (props) => {\n component = new ReactRenderer<\n { onKeyDown(props: SuggestionKeyDownProps): boolean },\n VariableSuggestionProps\n >(VariableSuggestion, {\n props,\n editor: props.editor,\n });\n\n if (!props.clientRect) return;\n\n scrollableElement!.style.overflow = 'hidden';\n\n const element = component.element;\n element.style.position = 'absolute';\n document.body.appendChild(element);\n\n updatePosition(props.editor, element);\n },\n\n onUpdate(props) {\n component.updateProps(props);\n\n if (!props.clientRect) return;\n\n updatePosition(props.editor, component.element);\n },\n\n onKeyDown(props) {\n if (props.event.key === 'Escape') {\n component.destroy();\n return true;\n }\n if (!component.ref) return false;\n\n return component.ref.onKeyDown(props);\n },\n\n onExit() {\n component.element.remove();\n component.destroy();\n scrollableElement!.style.overflow = '';\n },\n };\n },\n };\n}\n"],"names":["VariableMention","variables","Mention","ReactNodeViewRenderer","VariableChip","node","createSuggestion","variable","isTagElement","char","items","formatVariableLabel","serializeICUMessage","updatePosition","editor","element","computePosition","posToDOMRect","shift","flip","x","y","strategy","query","item","component","scrollableElement","props","ReactRenderer","VariableSuggestion"],"mappings":";;;;;;;;AAoBO,SAASA,EAAgBC,GAA+B;AAC7D,SAAOC,EAAQ,OAEb;AAAA,IACA,MAAM;AAAA,IACN,aAAa,MAAMC,EAAsBC,CAAY;AAAA,IACrD,eAAe,OACZ;AAAA,MACC,MAAM,EAAE,SAAS,KAAA;AAAA,MACjB,KAAK,EAAE,SAAS,KAAA;AAAA,MAChB,OAAO,EAAE,SAAS,KAAA;AAAA,IAAK;AAAA,IAE3B,YAAY,CAAC,EAAE,MAAAC,QAAWA,EAAK,MAAM;AAAA,EAAA,CACtC,EAAE,UAAU;AAAA,IACX,gBAAgB;AAAA,MACd,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACXC,EAAiB,KAAKL,CAAS;AAAA,MAC/BK;AAAA,QACE;AAAA,QACAL,EAAU,OAAO,CAACM,MAAa,CAACC,EAAaD,CAAQ,CAAC;AAAA,MAAA;AAAA,MAExDD;AAAA,QACE;AAAA,QACAL,EAAU,OAAO,CAACM,MAAaC,EAAaD,CAAQ,CAAC;AAAA,MAAA;AAAA,IACvD;AAAA,EACF,CACD;AACH;AAEA,SAASD,EACPG,GACAR,GAIc;AACd,QAAMS,IAAQT,EAAU,IAAI,CAACM,OAAc;AAAA,IACzC,MAAMA,EAAS;AAAA,IACf,OAAOI,EAAoBJ,CAAQ;AAAA,IACnC,KAAKK,EAAoB,CAACL,CAAQ,CAAC;AAAA,EAAA,EACnC;AAEF,WAASM,EAAeC,GAAgBC,GAA4B;AAUlE,IAAKC,EATkC;AAAA,MACrC,uBAAuB,MACrBC;AAAA,QACEH,EAAO;AAAA,QACPA,EAAO,MAAM,UAAU;AAAA,QACvBA,EAAO,MAAM,UAAU;AAAA,MAAA;AAAA,IACzB,GAGiCC,GAAS;AAAA,MAC5C,WAAW;AAAA,MACX,UAAU;AAAA,MACV,YAAY,CAACG,EAAA,GAASC,GAAM;AAAA,IAAA,CAC7B,EAAE,KAAK,CAAC,EAAE,GAAAC,GAAG,GAAAC,GAAG,UAAAC,QAAe;AAC9B,MAAAP,EAAQ,MAAM,QAAQ,eACtBA,EAAQ,MAAM,WAAWO,GACzBP,EAAQ,MAAM,OAAO,GAAGK,CAAC,MACzBL,EAAQ,MAAM,MAAM,GAAGM,CAAC;AAAA,IAC1B,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,MAAAZ;AAAA,IACA,OAAO,CAAC,EAAE,OAAAc,EAAA,MACRb,EAAM;AAAA,MAAO,CAACc,MACZA,EAAK,KAAK,cAAc,WAAWD,EAAM,YAAA,CAAa;AAAA,IAAA;AAAA,IAE1D,QAAQ,MAAM;AACZ,UAAIE;AAKJ,YAAMC,IAAoB,SAAS;AAAA,QACjC;AAAA,MAAA;AAGF,aAAO;AAAA,QACL,SAAS,CAACC,MAAU;AASlB,cARAF,IAAY,IAAIG,EAGdC,GAAoB;AAAA,YACpB,OAAAF;AAAA,YACA,QAAQA,EAAM;AAAA,UAAA,CACf,GAEG,CAACA,EAAM,WAAY;AAEvB,UAAAD,EAAmB,MAAM,WAAW;AAEpC,gBAAMX,IAAUU,EAAU;AAC1B,UAAAV,EAAQ,MAAM,WAAW,YACzB,SAAS,KAAK,YAAYA,CAAO,GAEjCF,EAAec,EAAM,QAAQZ,CAAO;AAAA,QACtC;AAAA,QAEA,SAASY,GAAO;AAGd,UAFAF,EAAU,YAAYE,CAAK,GAEtBA,EAAM,cAEXd,EAAec,EAAM,QAAQF,EAAU,OAAO;AAAA,QAChD;AAAA,QAEA,UAAUE,GAAO;AACf,iBAAIA,EAAM,MAAM,QAAQ,YACtBF,EAAU,QAAA,GACH,MAEJA,EAAU,MAERA,EAAU,IAAI,UAAUE,CAAK,IAFT;AAAA,QAG7B;AAAA,QAEA,SAAS;AACP,UAAAF,EAAU,QAAQ,OAAA,GAClBA,EAAU,QAAA,GACVC,EAAmB,MAAM,WAAW;AAAA,QACtC;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAEJ;"}
@@ -1,29 +0,0 @@
1
- import { UseFormReturn } from 'react-hook-form';
2
- import { Locales, Messages, Translations } from '../types';
3
- export type FormValues = Translations<Messages>;
4
- interface MessagesFormProviderProps {
5
- locales: Locales;
6
- form: UseFormReturn<FormValues>;
7
- }
8
- export declare function MessagesFormProvider({ locales, form, children, }: React.PropsWithChildren<MessagesFormProviderProps>): import("react/jsx-runtime").JSX.Element;
9
- export declare const useMessagesForm: () => {
10
- watch: import('react-hook-form').UseFormWatch<FormValues>;
11
- getValues: import('react-hook-form').UseFormGetValues<FormValues>;
12
- getFieldState: import('react-hook-form').UseFormGetFieldState<FormValues>;
13
- setError: import('react-hook-form').UseFormSetError<FormValues>;
14
- clearErrors: import('react-hook-form').UseFormClearErrors<FormValues>;
15
- setValue: import('react-hook-form').UseFormSetValue<FormValues>;
16
- trigger: import('react-hook-form').UseFormTrigger<FormValues>;
17
- formState: import('react-hook-form').FormState<FormValues>;
18
- resetField: import('react-hook-form').UseFormResetField<FormValues>;
19
- reset: import('react-hook-form').UseFormReset<FormValues>;
20
- handleSubmit: import('react-hook-form').UseFormHandleSubmit<FormValues, FormValues>;
21
- unregister: import('react-hook-form').UseFormUnregister<FormValues>;
22
- control: import('react-hook-form').Control<FormValues, any, FormValues>;
23
- register: import('react-hook-form').UseFormRegister<FormValues>;
24
- setFocus: import('react-hook-form').UseFormSetFocus<FormValues>;
25
- subscribe: import('react-hook-form').UseFormSubscribe<FormValues>;
26
- locales: Locales;
27
- };
28
- export {};
29
- //# sourceMappingURL=messages-form.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages-form.d.ts","sourceRoot":"","sources":["../../src/context/messages-form.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAQhD,UAAU,yBAAyB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjC;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,IAAI,EACJ,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,2CAMpD;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;aAtBjB,OAAO;CA6BjB,CAAC"}