@ai-stack/payloadcms 3.0.0-beta.95.2 → 3.2.1-beta

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 (186) hide show
  1. package/LICENSE.md +2 -2
  2. package/README.md +19 -17
  3. package/dist/ai/models/anthropic/generateRichText.d.ts.map +1 -1
  4. package/dist/ai/models/anthropic/generateRichText.js +2 -2
  5. package/dist/ai/models/anthropic/generateRichText.js.map +1 -1
  6. package/dist/ai/models/anthropic/index.d.ts.map +1 -1
  7. package/dist/ai/models/anthropic/index.js +8 -32
  8. package/dist/ai/models/anthropic/index.js.map +1 -1
  9. package/dist/ai/models/elevenLabs/generateVoice.d.ts +1 -1
  10. package/dist/ai/models/elevenLabs/index.d.ts.map +1 -1
  11. package/dist/ai/models/elevenLabs/index.js +4 -3
  12. package/dist/ai/models/elevenLabs/index.js.map +1 -1
  13. package/dist/ai/models/openai/generateImage.d.ts +1 -1
  14. package/dist/ai/models/openai/generateRichText.js +2 -2
  15. package/dist/ai/models/openai/generateRichText.js.map +1 -1
  16. package/dist/ai/models/openai/generateVoice.d.ts +1 -1
  17. package/dist/ai/models/openai/index.d.ts.map +1 -1
  18. package/dist/ai/models/openai/index.js +9 -35
  19. package/dist/ai/models/openai/index.js.map +1 -1
  20. package/dist/ai/prompts.d.ts +1 -1
  21. package/dist/ai/prompts.d.ts.map +1 -1
  22. package/dist/ai/prompts.js +6 -3
  23. package/dist/ai/prompts.js.map +1 -1
  24. package/dist/ai/schemas/lexicalJsonSchema.d.ts +2 -0
  25. package/dist/ai/schemas/lexicalJsonSchema.d.ts.map +1 -0
  26. package/dist/ai/schemas/lexicalJsonSchema.js +317 -0
  27. package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -0
  28. package/dist/ai/utils/generateFileNameByPrompt.js.map +1 -1
  29. package/dist/ai/utils/systemGenerate.d.ts +5 -0
  30. package/dist/ai/utils/systemGenerate.d.ts.map +1 -0
  31. package/dist/ai/utils/{generateSeedPrompt.js → systemGenerate.js} +2 -2
  32. package/dist/ai/utils/systemGenerate.js.map +1 -0
  33. package/dist/collections/Instructions.d.ts +1 -1
  34. package/dist/collections/Instructions.d.ts.map +1 -1
  35. package/dist/collections/Instructions.js +177 -85
  36. package/dist/collections/Instructions.js.map +1 -1
  37. package/dist/defaults.d.ts +1 -1
  38. package/dist/defaults.d.ts.map +1 -1
  39. package/dist/defaults.js +1 -1
  40. package/dist/defaults.js.map +1 -1
  41. package/dist/endpoints/fetchFields.d.ts +3 -0
  42. package/dist/endpoints/fetchFields.d.ts.map +1 -0
  43. package/dist/endpoints/fetchFields.js +21 -0
  44. package/dist/endpoints/fetchFields.js.map +1 -0
  45. package/dist/endpoints/index.d.ts.map +1 -1
  46. package/dist/endpoints/index.js +12 -18
  47. package/dist/endpoints/index.js.map +1 -1
  48. package/dist/exports/fields.d.ts +2 -1
  49. package/dist/exports/fields.d.ts.map +1 -1
  50. package/dist/exports/fields.js +2 -1
  51. package/dist/exports/fields.js.map +1 -1
  52. package/dist/fields/ComposeField/ComposeField.d.ts +3 -0
  53. package/dist/fields/ComposeField/ComposeField.d.ts.map +1 -0
  54. package/dist/fields/ComposeField/ComposeField.js +24 -0
  55. package/dist/fields/ComposeField/ComposeField.js.map +1 -0
  56. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts +2 -0
  57. package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -0
  58. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +28 -0
  59. package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -0
  60. package/dist/fields/LexicalEditor/feature.client.d.ts +4 -1
  61. package/dist/fields/LexicalEditor/feature.client.d.ts.map +1 -1
  62. package/dist/fields/LexicalEditor/feature.client.js +15 -7
  63. package/dist/fields/LexicalEditor/feature.client.js.map +1 -1
  64. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +2 -2
  65. package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -1
  66. package/dist/fields/PromptEditorField/PromptEditorField.js +4 -8
  67. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
  68. package/dist/fields/SelectField/SelectField.d.ts +3 -2
  69. package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
  70. package/dist/fields/SelectField/SelectField.js +2 -3
  71. package/dist/fields/SelectField/SelectField.js.map +1 -1
  72. package/dist/index.d.ts +1 -6
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +1 -6
  75. package/dist/index.js.map +1 -1
  76. package/dist/init.d.ts +2 -1
  77. package/dist/init.d.ts.map +1 -1
  78. package/dist/init.js +22 -21
  79. package/dist/init.js.map +1 -1
  80. package/dist/libraries/autocomplete/AutocompleteTextArea.js +9 -7
  81. package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +1 -1
  82. package/dist/libraries/handlebars/asyncHandlebars.js +1 -1
  83. package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -1
  84. package/dist/libraries/handlebars/helpers.js.map +1 -1
  85. package/dist/plugin.d.ts.map +1 -1
  86. package/dist/plugin.js +30 -41
  87. package/dist/plugin.js.map +1 -1
  88. package/dist/providers/FieldProvider/FieldProvider.d.ts +15 -0
  89. package/dist/providers/FieldProvider/FieldProvider.d.ts.map +1 -0
  90. package/dist/providers/FieldProvider/FieldProvider.js +33 -0
  91. package/dist/providers/FieldProvider/FieldProvider.js.map +1 -0
  92. package/dist/providers/FieldProvider/useFieldProps.d.ts +6 -0
  93. package/dist/providers/FieldProvider/useFieldProps.d.ts.map +1 -0
  94. package/dist/providers/FieldProvider/useFieldProps.js +12 -0
  95. package/dist/providers/FieldProvider/useFieldProps.js.map +1 -0
  96. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +5 -1
  97. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
  98. package/dist/providers/InstructionsProvider/InstructionsProvider.js +12 -7
  99. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
  100. package/dist/providers/InstructionsProvider/useInstructions.d.ts +2 -2
  101. package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +1 -1
  102. package/dist/providers/InstructionsProvider/useInstructions.js +17 -4
  103. package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
  104. package/dist/types.d.ts +9 -41
  105. package/dist/types.d.ts.map +1 -1
  106. package/dist/types.js +1 -4
  107. package/dist/types.js.map +1 -1
  108. package/dist/ui/Compose/Compose.d.ts +9 -0
  109. package/dist/ui/Compose/Compose.d.ts.map +1 -0
  110. package/dist/ui/{Actions/Actions.js → Compose/Compose.js} +49 -39
  111. package/dist/ui/Compose/Compose.js.map +1 -0
  112. package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts.map +1 -1
  113. package/dist/ui/{Actions → Compose}/UndoRedoActions.js +15 -2
  114. package/dist/ui/Compose/UndoRedoActions.js.map +1 -0
  115. package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts +1 -1
  116. package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts.map +1 -1
  117. package/dist/ui/{Actions → Compose}/hooks/menu/Item.js +2 -2
  118. package/dist/ui/{Actions → Compose}/hooks/menu/Item.js.map +1 -1
  119. package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts.map +1 -0
  120. package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.js +11 -11
  121. package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -0
  122. package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts +8 -8
  123. package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts.map +1 -1
  124. package/dist/ui/{Actions → Compose}/hooks/menu/items.js.map +1 -1
  125. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.d.ts +1 -1
  126. package/dist/ui/Compose/hooks/menu/itemsMap.d.ts.map +1 -0
  127. package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.js +1 -2
  128. package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -0
  129. package/dist/ui/Compose/hooks/menu/useMenu.d.ts.map +1 -0
  130. package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.js +2 -1
  131. package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -0
  132. package/dist/ui/{Actions → Compose}/hooks/useGenerate.d.ts +3 -1
  133. package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -0
  134. package/dist/ui/{Actions → Compose}/hooks/useGenerate.js +19 -24
  135. package/dist/ui/Compose/hooks/useGenerate.js.map +1 -0
  136. package/dist/ui/Compose/hooks/useHistory.d.ts.map +1 -0
  137. package/dist/ui/{Actions → Compose}/hooks/useHistory.js +6 -3
  138. package/dist/ui/Compose/hooks/useHistory.js.map +1 -0
  139. package/dist/utilities/setSafeLexicalState.d.ts +2 -2
  140. package/dist/utilities/setSafeLexicalState.d.ts.map +1 -1
  141. package/dist/utilities/setSafeLexicalState.js +5 -12
  142. package/dist/utilities/setSafeLexicalState.js.map +1 -1
  143. package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
  144. package/dist/utilities/updateFieldsConfig.js +18 -6
  145. package/dist/utilities/updateFieldsConfig.js.map +1 -1
  146. package/package.json +33 -60
  147. package/dist/ai/schemas/lexical.schema.d.ts +0 -31
  148. package/dist/ai/schemas/lexical.schema.d.ts.map +0 -1
  149. package/dist/ai/schemas/lexical.schema.js +0 -102
  150. package/dist/ai/schemas/lexical.schema.js.map +0 -1
  151. package/dist/ai/utils/generateSeedPrompt.d.ts +0 -5
  152. package/dist/ai/utils/generateSeedPrompt.d.ts.map +0 -1
  153. package/dist/ai/utils/generateSeedPrompt.js.map +0 -1
  154. package/dist/fields/DescriptionField/DescriptionField.d.ts +0 -4
  155. package/dist/fields/DescriptionField/DescriptionField.d.ts.map +0 -1
  156. package/dist/fields/DescriptionField/DescriptionField.js +0 -18
  157. package/dist/fields/DescriptionField/DescriptionField.js.map +0 -1
  158. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts +0 -2
  159. package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts.map +0 -1
  160. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js +0 -15
  161. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js.map +0 -1
  162. package/dist/ui/Actions/Actions.d.ts +0 -5
  163. package/dist/ui/Actions/Actions.d.ts.map +0 -1
  164. package/dist/ui/Actions/Actions.js.map +0 -1
  165. package/dist/ui/Actions/UndoRedoActions.js.map +0 -1
  166. package/dist/ui/Actions/hooks/menu/TranslateMenu.d.ts.map +0 -1
  167. package/dist/ui/Actions/hooks/menu/TranslateMenu.js.map +0 -1
  168. package/dist/ui/Actions/hooks/menu/itemsMap.d.ts.map +0 -1
  169. package/dist/ui/Actions/hooks/menu/itemsMap.js.map +0 -1
  170. package/dist/ui/Actions/hooks/menu/useMenu.d.ts.map +0 -1
  171. package/dist/ui/Actions/hooks/menu/useMenu.js.map +0 -1
  172. package/dist/ui/Actions/hooks/useGenerate.d.ts.map +0 -1
  173. package/dist/ui/Actions/hooks/useGenerate.js.map +0 -1
  174. package/dist/ui/Actions/hooks/useHistory.d.ts.map +0 -1
  175. package/dist/ui/Actions/hooks/useHistory.js.map +0 -1
  176. package/dist/utilities/jsonToZod.d.ts +0 -3
  177. package/dist/utilities/jsonToZod.d.ts.map +0 -1
  178. package/dist/utilities/jsonToZod.js +0 -33
  179. package/dist/utilities/jsonToZod.js.map +0 -1
  180. /package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts +0 -0
  181. /package/dist/ui/{Actions/actions.module.scss → Compose/compose.module.scss} +0 -0
  182. /package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.d.ts +0 -0
  183. /package/dist/ui/{Actions → Compose}/hooks/menu/items.js +0 -0
  184. /package/dist/ui/{Actions → Compose}/hooks/menu/menu.module.scss +0 -0
  185. /package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.d.ts +0 -0
  186. /package/dist/ui/{Actions → Compose}/hooks/useHistory.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/ComposeField/ComposeField.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldDescriptionServerProps } from 'payload'\n\nimport React from 'react'\n\nimport { FieldProvider } from '../../providers/FieldProvider/FieldProvider.js'\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { Compose } from '../../ui/Compose/Compose.js'\n\nexport const ComposeField = (props: FieldDescriptionServerProps) => {\n const { id: instructionId } = useInstructions({\n schemaPath: props?.schemaPath,\n })\n\n return (\n <FieldProvider\n context={{\n type: props?.field.type,\n path: props?.path,\n schemaPath: props?.schemaPath,\n }}\n >\n <Compose descriptionProps={props as any} instructionId={instructionId} />\n </FieldProvider>\n )\n}\n"],"names":["React","FieldProvider","useInstructions","Compose","ComposeField","props","id","instructionId","schemaPath","context","type","field","path","descriptionProps"],"mappings":"AAAA;;AAIA,OAAOA,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,iDAAgD;AAC9E,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,OAAO,QAAQ,8BAA6B;AAErD,OAAO,MAAMC,eAAe,CAACC;IAC3B,MAAM,EAAEC,IAAIC,aAAa,EAAE,GAAGL,gBAAgB;QAC5CM,YAAYH,OAAOG;IACrB;IAEA,qBACE,KAACP;QACCQ,SAAS;YACPC,MAAML,OAAOM,MAAMD;YACnBE,MAAMP,OAAOO;YACbJ,YAAYH,OAAOG;QACrB;kBAEA,cAAA,KAACL;YAAQU,kBAAkBR;YAAcE,eAAeA;;;AAG9D,EAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const ComposeFeatureComponent: (props: any) => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ComposeFeatureComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposeFeatureComponent.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/ComposeFeatureComponent.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,uBAAuB,UAAW,GAAG,4CAwBjD,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { FieldProvider } from '../../providers/FieldProvider/FieldProvider.js';
4
+ import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
5
+ import { Compose } from '../../ui/Compose/Compose.js';
6
+ export const ComposeFeatureComponent = (props)=>{
7
+ const { id: instructionId } = useInstructions({
8
+ schemaPath: props?.clientProps?.schemaPath
9
+ });
10
+ return /*#__PURE__*/ _jsx(FieldProvider, {
11
+ context: {
12
+ type: props?.clientProps?.field?.type,
13
+ path: props?.clientProps?.path,
14
+ schemaPath: props?.clientProps?.schemaPath
15
+ },
16
+ children: /*#__PURE__*/ _jsx(Compose, {
17
+ descriptionProps: {
18
+ field: props?.clientProps?.field,
19
+ path: props?.clientProps?.path,
20
+ schemaPath: props?.clientProps?.schemaPath,
21
+ ...props?.clientProps
22
+ },
23
+ instructionId: instructionId
24
+ })
25
+ });
26
+ };
27
+
28
+ //# sourceMappingURL=ComposeFeatureComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/fields/LexicalEditor/ComposeFeatureComponent.tsx"],"sourcesContent":["import React from 'react'\n\nimport { FieldProvider } from '../../providers/FieldProvider/FieldProvider.js'\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { Compose } from '../../ui/Compose/Compose.js'\n\nexport const ComposeFeatureComponent = (props: any) => {\n const { id: instructionId } = useInstructions({\n schemaPath: props?.clientProps?.schemaPath,\n })\n\n return (\n <FieldProvider\n context={{\n type: props?.clientProps?.field?.type,\n path: props?.clientProps?.path,\n schemaPath: props?.clientProps?.schemaPath,\n }}\n >\n <Compose\n descriptionProps={{\n field: props?.clientProps?.field,\n path: props?.clientProps?.path,\n schemaPath: props?.clientProps?.schemaPath,\n ...props?.clientProps,\n }}\n instructionId={instructionId}\n />\n </FieldProvider>\n )\n}\n"],"names":["React","FieldProvider","useInstructions","Compose","ComposeFeatureComponent","props","id","instructionId","schemaPath","clientProps","context","type","field","path","descriptionProps"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,iDAAgD;AAC9E,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,OAAO,QAAQ,8BAA6B;AAErD,OAAO,MAAMC,0BAA0B,CAACC;IACtC,MAAM,EAAEC,IAAIC,aAAa,EAAE,GAAGL,gBAAgB;QAC5CM,YAAYH,OAAOI,aAAaD;IAClC;IAEA,qBACE,KAACP;QACCS,SAAS;YACPC,MAAMN,OAAOI,aAAaG,OAAOD;YACjCE,MAAMR,OAAOI,aAAaI;YAC1BL,YAAYH,OAAOI,aAAaD;QAClC;kBAEA,cAAA,KAACL;YACCW,kBAAkB;gBAChBF,OAAOP,OAAOI,aAAaG;gBAC3BC,MAAMR,OAAOI,aAAaI;gBAC1BL,YAAYH,OAAOI,aAAaD;gBAChC,GAAGH,OAAOI,WAAW;YACvB;YACAF,eAAeA;;;AAIvB,EAAC"}
@@ -1,5 +1,8 @@
1
- export declare const LexicalEditorFeatureClient: import("react").FC<{
1
+ export declare const LexicalEditorFeatureClient: import("@payloadcms/richtext-lexical").FeatureProviderProviderClient<undefined, {
2
2
  featureKey: string;
3
3
  order: number;
4
+ field: import("payload").RichTextFieldClient;
5
+ path: string;
6
+ schemaPath: string;
4
7
  }>;
5
8
  //# sourceMappingURL=feature.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/feature.client.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,0BAA0B;;;EAOrC,CAAA"}
1
+ {"version":3,"file":"feature.client.d.ts","sourceRoot":"","sources":["../../../src/fields/LexicalEditor/feature.client.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,0BAA0B;;;;;;EAerC,CAAA"}
@@ -1,13 +1,21 @@
1
1
  'use client';
2
2
  import { createClientFeature } from '@payloadcms/richtext-lexical/client';
3
- import { ActionsFeatureComponent } from './ActionsFeatureComponent.js';
4
- export const LexicalEditorFeatureClient = createClientFeature({
5
- plugins: [
6
- {
7
- Component: ActionsFeatureComponent,
8
- position: 'belowContainer'
3
+ import { ComposeFeatureComponent } from './ComposeFeatureComponent.js';
4
+ export const LexicalEditorFeatureClient = createClientFeature((props)=>{
5
+ return {
6
+ plugins: [
7
+ {
8
+ Component: ComposeFeatureComponent,
9
+ position: 'belowContainer'
10
+ }
11
+ ],
12
+ sanitizedClientFeatureProps: {
13
+ field: props.field,
14
+ path: props.field?.name,
15
+ schemaPath: props.schemaPath,
16
+ ...props?.props
9
17
  }
10
- ]
18
+ };
11
19
  });
12
20
 
13
21
  //# sourceMappingURL=feature.client.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/LexicalEditor/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { createClientFeature } from '@payloadcms/richtext-lexical/client'\n\nimport { ActionsFeatureComponent } from './ActionsFeatureComponent.js'\n\nexport const LexicalEditorFeatureClient = createClientFeature({\n plugins: [\n {\n Component: ActionsFeatureComponent,\n position: 'belowContainer',\n },\n ],\n})\n"],"names":["createClientFeature","ActionsFeatureComponent","LexicalEditorFeatureClient","plugins","Component","position"],"mappings":"AAAA;AAEA,SAASA,mBAAmB,QAAQ,sCAAqC;AAEzE,SAASC,uBAAuB,QAAQ,+BAA8B;AAEtE,OAAO,MAAMC,6BAA6BF,oBAAoB;IAC5DG,SAAS;QACP;YACEC,WAAWH;YACXI,UAAU;QACZ;KACD;AACH,GAAE"}
1
+ {"version":3,"sources":["../../../src/fields/LexicalEditor/feature.client.tsx"],"sourcesContent":["'use client'\n\nimport { createClientFeature } from '@payloadcms/richtext-lexical/client'\n\nimport { ComposeFeatureComponent } from './ComposeFeatureComponent.js'\n\nexport const LexicalEditorFeatureClient = createClientFeature((props) => {\n return {\n plugins: [\n {\n Component: ComposeFeatureComponent,\n position: 'belowContainer',\n },\n ],\n sanitizedClientFeatureProps: {\n field: props.field,\n path: props.field?.name,\n schemaPath: props.schemaPath,\n ...props?.props,\n },\n }\n})\n"],"names":["createClientFeature","ComposeFeatureComponent","LexicalEditorFeatureClient","props","plugins","Component","position","sanitizedClientFeatureProps","field","path","name","schemaPath"],"mappings":"AAAA;AAEA,SAASA,mBAAmB,QAAQ,sCAAqC;AAEzE,SAASC,uBAAuB,QAAQ,+BAA8B;AAEtE,OAAO,MAAMC,6BAA6BF,oBAAoB,CAACG;IAC7D,OAAO;QACLC,SAAS;YACP;gBACEC,WAAWJ;gBACXK,UAAU;YACZ;SACD;QACDC,6BAA6B;YAC3BC,OAAOL,MAAMK,KAAK;YAClBC,MAAMN,MAAMK,KAAK,EAAEE;YACnBC,YAAYR,MAAMQ,UAAU;YAC5B,GAAGR,OAAOA,KAAK;QACjB;IACF;AACF,GAAE"}
@@ -1,4 +1,4 @@
1
- import type { TextareaFieldProps } from 'payload';
1
+ import type { TextareaFieldClientProps } from 'payload';
2
2
  import React from 'react';
3
- export declare const PromptEditorField: React.FC<TextareaFieldProps>;
3
+ export declare const PromptEditorField: React.FC<TextareaFieldClientProps>;
4
4
  //# sourceMappingURL=PromptEditorField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptEditorField.d.ts","sourceRoot":"","sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGjD,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4B1D,CAAA"}
1
+ {"version":3,"file":"PromptEditorField.d.ts","sourceRoot":"","sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAGvD,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAyBhE,CAAA"}
@@ -1,24 +1,20 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { FieldLabel, useField, useFieldProps } from '@payloadcms/ui';
3
+ import { FieldLabel, useField } from '@payloadcms/ui';
4
4
  import React from 'react';
5
- import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
6
5
  import { AutocompleteTextField } from '../../libraries/autocomplete/AutocompleteTextArea.js';
6
+ import { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js';
7
7
  //NOTE: HMR does not work for plugin components anymore, I think it has to do with importMap/ string path
8
8
  export const PromptEditorField = (props)=>{
9
- const { field } = props;
10
- const { path: pathFromContext } = useFieldProps();
9
+ const { field, path: pathFromContext } = props;
11
10
  const { setValue, value } = useField({
12
11
  path: pathFromContext
13
12
  });
14
- const { promptEditorSuggestions } = useInstructions({
15
- path: pathFromContext
16
- });
13
+ const { promptEditorSuggestions } = useInstructions();
17
14
  return /*#__PURE__*/ _jsxs("div", {
18
15
  className: "field-type textarea",
19
16
  children: [
20
17
  /*#__PURE__*/ _jsx(FieldLabel, {
21
- field: field,
22
18
  label: field.label
23
19
  }),
24
20
  /*#__PURE__*/ _jsx(AutocompleteTextField, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"sourcesContent":["'use client'\n\nimport type { TextareaFieldProps } from 'payload'\n\nimport { FieldLabel, useField, useFieldProps } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\nimport { AutocompleteTextField } from '../../libraries/autocomplete/AutocompleteTextArea.js'\n\n//NOTE: HMR does not work for plugin components anymore, I think it has to do with importMap/ string path\nexport const PromptEditorField: React.FC<TextareaFieldProps> = (props) => {\n const { field } = props\n const { path: pathFromContext } = useFieldProps()\n\n const { setValue, value } = useField<string>({\n path: pathFromContext,\n })\n\n const { promptEditorSuggestions } = useInstructions({\n path: pathFromContext,\n })\n\n return (\n <div className=\"field-type textarea\">\n <FieldLabel field={field} label={field.label} />\n <AutocompleteTextField\n changeOnSelect={(trigger, selected) => {\n return trigger + selected + ' }}'\n }}\n onChange={(val: string) => {\n setValue(val)\n }}\n options={promptEditorSuggestions}\n trigger={['{{ ']}\n value={value}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","useField","useFieldProps","React","useInstructions","AutocompleteTextField","PromptEditorField","props","field","path","pathFromContext","setValue","value","promptEditorSuggestions","div","className","label","changeOnSelect","trigger","selected","onChange","val","options"],"mappings":"AAAA;;AAIA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,aAAa,QAAQ,iBAAgB;AACpE,OAAOC,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,0DAAyD;AACzF,SAASC,qBAAqB,QAAQ,uDAAsD;AAE5F,yGAAyG;AACzG,OAAO,MAAMC,oBAAkD,CAACC;IAC9D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,MAAMC,eAAe,EAAE,GAAGR;IAElC,MAAM,EAAES,QAAQ,EAAEC,KAAK,EAAE,GAAGX,SAAiB;QAC3CQ,MAAMC;IACR;IAEA,MAAM,EAAEG,uBAAuB,EAAE,GAAGT,gBAAgB;QAClDK,MAAMC;IACR;IAEA,qBACE,MAACI;QAAIC,WAAU;;0BACb,KAACf;gBAAWQ,OAAOA;gBAAOQ,OAAOR,MAAMQ,KAAK;;0BAC5C,KAACX;gBACCY,gBAAgB,CAACC,SAASC;oBACxB,OAAOD,UAAUC,WAAW;gBAC9B;gBACAC,UAAU,CAACC;oBACTV,SAASU;gBACX;gBACAC,SAAST;gBACTK,SAAS;oBAAC;iBAAM;gBAChBN,OAAOA;;;;AAIf,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/PromptEditorField/PromptEditorField.tsx"],"sourcesContent":["'use client'\n\nimport type { TextareaFieldClientProps } from 'payload'\n\nimport { FieldLabel, useField } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { AutocompleteTextField } from '../../libraries/autocomplete/AutocompleteTextArea.js'\nimport { useInstructions } from '../../providers/InstructionsProvider/useInstructions.js'\n\n//NOTE: HMR does not work for plugin components anymore, I think it has to do with importMap/ string path\nexport const PromptEditorField: React.FC<TextareaFieldClientProps> = (props) => {\n const { field, path: pathFromContext } = props\n\n const { setValue, value } = useField<string>({\n path: pathFromContext,\n })\n\n const { promptEditorSuggestions } = useInstructions()\n\n return (\n <div className=\"field-type textarea\">\n <FieldLabel label={field.label} />\n <AutocompleteTextField\n changeOnSelect={(trigger, selected) => {\n return trigger + selected + ' }}'\n }}\n onChange={(val: string) => {\n setValue(val)\n }}\n options={promptEditorSuggestions}\n trigger={['{{ ']}\n value={value}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","useField","React","AutocompleteTextField","useInstructions","PromptEditorField","props","field","path","pathFromContext","setValue","value","promptEditorSuggestions","div","className","label","changeOnSelect","trigger","selected","onChange","val","options"],"mappings":"AAAA;;AAIA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,iBAAgB;AACrD,OAAOC,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,uDAAsD;AAC5F,SAASC,eAAe,QAAQ,0DAAyD;AAEzF,yGAAyG;AACzG,OAAO,MAAMC,oBAAwD,CAACC;IACpE,MAAM,EAAEC,KAAK,EAAEC,MAAMC,eAAe,EAAE,GAAGH;IAEzC,MAAM,EAAEI,QAAQ,EAAEC,KAAK,EAAE,GAAGV,SAAiB;QAC3CO,MAAMC;IACR;IAEA,MAAM,EAAEG,uBAAuB,EAAE,GAAGR;IAEpC,qBACE,MAACS;QAAIC,WAAU;;0BACb,KAACd;gBAAWe,OAAOR,MAAMQ,KAAK;;0BAC9B,KAACZ;gBACCa,gBAAgB,CAACC,SAASC;oBACxB,OAAOD,UAAUC,WAAW;gBAC9B;gBACAC,UAAU,CAACC;oBACTV,SAASU;gBACX;gBACAC,SAAST;gBACTK,SAAS;oBAAC;iBAAM;gBAChBN,OAAOA;;;;AAIf,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { SelectFieldProps } from 'payload';
1
+ import type { SelectFieldClientProps } from 'payload';
2
2
  export declare const SelectField: (props: {
3
3
  filterByField: string;
4
4
  options: {
@@ -6,5 +6,6 @@ export declare const SelectField: (props: {
6
6
  label: string;
7
7
  value: string;
8
8
  }[];
9
- } & SelectFieldProps) => import("react/jsx-runtime").JSX.Element;
9
+ path: string;
10
+ } & SelectFieldClientProps) => import("react/jsx-runtime").JSX.Element;
10
11
  //# sourceMappingURL=SelectField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../../../src/fields/SelectField/SelectField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAM7D,eAAO,MAAM,WAAW,UACf;IACL,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC9D,GAAG,gBAAgB,4CAqCrB,CAAA"}
1
+ {"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../../../src/fields/SelectField/SelectField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMnE,eAAO,MAAM,WAAW,UACf;IACL,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7D,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,sBAAsB,4CAoC3B,CAAA"}
@@ -1,11 +1,10 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { SelectInput, useField, useFieldProps } from '@payloadcms/ui';
3
+ import { SelectInput, useField } from '@payloadcms/ui';
4
4
  import React, { useEffect, useState } from 'react';
5
5
  // Use to filter model options in settings based on field types
6
6
  export const SelectField = (props)=>{
7
- const { field, filterByField, options } = props;
8
- const { path } = useFieldProps();
7
+ const { field, filterByField, options, path } = props;
9
8
  const { value: relatedField } = useField({
10
9
  path: filterByField
11
10
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/SelectField/SelectField.tsx"],"sourcesContent":["'use client'\n\nimport type { OptionObject, SelectFieldProps } from 'payload'\n\nimport { SelectInput, useField, useFieldProps } from '@payloadcms/ui'\nimport React, { useEffect, useState } from 'react'\n\n// Use to filter model options in settings based on field types\nexport const SelectField = (\n props: {\n filterByField: string\n options: { fields: string[]; label: string; value: string }[]\n } & SelectFieldProps,\n) => {\n const { field, filterByField, options } = props\n const { path } = useFieldProps()\n const { value: relatedField } = useField<string>({\n path: filterByField,\n })\n\n const [filterOptions, setFilterOptions] = useState<OptionObject[]>([])\n\n useEffect(() => {\n if (!Array.isArray(options)) return\n\n const opts = options.filter((option) => {\n if (!relatedField || !option.fields) return true\n\n if (Array.isArray(option.fields)) {\n return option.fields.includes(relatedField)\n }\n })\n setFilterOptions(opts)\n }, [relatedField, options])\n\n const { setValue, value: selectValue } = useField<string>({ path })\n\n return (\n <SelectInput\n label={field.label}\n name={path}\n onChange={(e: OptionObject) => {\n setValue(e.value)\n }}\n options={filterOptions}\n path={path}\n value={selectValue}\n />\n )\n}\n"],"names":["SelectInput","useField","useFieldProps","React","useEffect","useState","SelectField","props","field","filterByField","options","path","value","relatedField","filterOptions","setFilterOptions","Array","isArray","opts","filter","option","fields","includes","setValue","selectValue","label","name","onChange","e"],"mappings":"AAAA;;AAIA,SAASA,WAAW,EAAEC,QAAQ,EAAEC,aAAa,QAAQ,iBAAgB;AACrE,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,+DAA+D;AAC/D,OAAO,MAAMC,cAAc,CACzBC;IAKA,MAAM,EAAEC,KAAK,EAAEC,aAAa,EAAEC,OAAO,EAAE,GAAGH;IAC1C,MAAM,EAAEI,IAAI,EAAE,GAAGT;IACjB,MAAM,EAAEU,OAAOC,YAAY,EAAE,GAAGZ,SAAiB;QAC/CU,MAAMF;IACR;IAEA,MAAM,CAACK,eAAeC,iBAAiB,GAAGV,SAAyB,EAAE;IAErED,UAAU;QACR,IAAI,CAACY,MAAMC,OAAO,CAACP,UAAU;QAE7B,MAAMQ,OAAOR,QAAQS,MAAM,CAAC,CAACC;YAC3B,IAAI,CAACP,gBAAgB,CAACO,OAAOC,MAAM,EAAE,OAAO;YAE5C,IAAIL,MAAMC,OAAO,CAACG,OAAOC,MAAM,GAAG;gBAChC,OAAOD,OAAOC,MAAM,CAACC,QAAQ,CAACT;YAChC;QACF;QACAE,iBAAiBG;IACnB,GAAG;QAACL;QAAcH;KAAQ;IAE1B,MAAM,EAAEa,QAAQ,EAAEX,OAAOY,WAAW,EAAE,GAAGvB,SAAiB;QAAEU;IAAK;IAEjE,qBACE,KAACX;QACCyB,OAAOjB,MAAMiB,KAAK;QAClBC,MAAMf;QACNgB,UAAU,CAACC;YACTL,SAASK,EAAEhB,KAAK;QAClB;QACAF,SAASI;QACTH,MAAMA;QACNC,OAAOY;;AAGb,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/SelectField/SelectField.tsx"],"sourcesContent":["'use client'\n\nimport type { OptionObject, SelectFieldClientProps } from 'payload'\n\nimport { SelectInput, useField } from '@payloadcms/ui'\nimport React, { useEffect, useState } from 'react'\n\n// Use to filter model options in settings based on field types\nexport const SelectField = (\n props: {\n filterByField: string\n options: { fields: string[]; label: string; value: string }[]\n path: string\n } & SelectFieldClientProps,\n) => {\n const { field, filterByField, options, path } = props\n const { value: relatedField } = useField<string>({\n path: filterByField,\n })\n\n const [filterOptions, setFilterOptions] = useState<OptionObject[]>([])\n\n useEffect(() => {\n if (!Array.isArray(options)) return\n\n const opts = options.filter((option) => {\n if (!relatedField || !option.fields) return true\n\n if (Array.isArray(option.fields)) {\n return option.fields.includes(relatedField)\n }\n })\n setFilterOptions(opts)\n }, [relatedField, options])\n\n const { setValue, value: selectValue } = useField<string>({ path })\n\n return (\n <SelectInput\n label={field.label}\n name={path}\n onChange={(e: OptionObject) => {\n setValue(e.value)\n }}\n options={filterOptions}\n path={path}\n value={selectValue}\n />\n )\n}\n"],"names":["SelectInput","useField","React","useEffect","useState","SelectField","props","field","filterByField","options","path","value","relatedField","filterOptions","setFilterOptions","Array","isArray","opts","filter","option","fields","includes","setValue","selectValue","label","name","onChange","e"],"mappings":"AAAA;;AAIA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,iBAAgB;AACtD,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAElD,+DAA+D;AAC/D,OAAO,MAAMC,cAAc,CACzBC;IAMA,MAAM,EAAEC,KAAK,EAAEC,aAAa,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGJ;IAChD,MAAM,EAAEK,OAAOC,YAAY,EAAE,GAAGX,SAAiB;QAC/CS,MAAMF;IACR;IAEA,MAAM,CAACK,eAAeC,iBAAiB,GAAGV,SAAyB,EAAE;IAErED,UAAU;QACR,IAAI,CAACY,MAAMC,OAAO,CAACP,UAAU;QAE7B,MAAMQ,OAAOR,QAAQS,MAAM,CAAC,CAACC;YAC3B,IAAI,CAACP,gBAAgB,CAACO,OAAOC,MAAM,EAAE,OAAO;YAE5C,IAAIL,MAAMC,OAAO,CAACG,OAAOC,MAAM,GAAG;gBAChC,OAAOD,OAAOC,MAAM,CAACC,QAAQ,CAACT;YAChC;QACF;QACAE,iBAAiBG;IACnB,GAAG;QAACL;QAAcH;KAAQ;IAE1B,MAAM,EAAEa,QAAQ,EAAEX,OAAOY,WAAW,EAAE,GAAGtB,SAAiB;QAAES;IAAK;IAEjE,qBACE,KAACV;QACCwB,OAAOjB,MAAMiB,KAAK;QAClBC,MAAMf;QACNgB,UAAU,CAACC;YACTL,SAASK,EAAEhB,KAAK;QAClB;QACAF,SAASI;QACTH,MAAMA;QACNC,OAAOY;;AAGb,EAAC"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,5 @@
1
1
  /**
2
- * @license This software is licensed under the MIT License. For commercial use,
3
- * redistribution, or embedding in proprietary systems, please refer to the
4
- * COMMERCIAL-LICENSE.md. Unauthorized commercial use or resale of modified versions
5
- * without appropriate licensing is prohibited.
2
+ * @license This software is licensed under the MIT License.
6
3
  */
7
4
  export { payloadAiPlugin } from './plugin.js';
8
- export { PayloadAiPluginLexicalEditorFeature } from './fields/LexicalEditor/feature.server.js';
9
- export { LexicalBaseNode } from './ai/schemas/lexical.schema.js';
10
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAA;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,10 +1,5 @@
1
1
  /**
2
- * @license This software is licensed under the MIT License. For commercial use,
3
- * redistribution, or embedding in proprietary systems, please refer to the
4
- * COMMERCIAL-LICENSE.md. Unauthorized commercial use or resale of modified versions
5
- * without appropriate licensing is prohibited.
2
+ * @license This software is licensed under the MIT License.
6
3
  */ export { payloadAiPlugin } from './plugin.js';
7
- export { PayloadAiPluginLexicalEditorFeature } from './fields/LexicalEditor/feature.server.js';
8
- export { LexicalBaseNode } from './ai/schemas/lexical.schema.js';
9
4
 
10
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @license This software is licensed under the MIT License. For commercial use,\n * redistribution, or embedding in proprietary systems, please refer to the\n * COMMERCIAL-LICENSE.md. Unauthorized commercial use or resale of modified versions\n * without appropriate licensing is prohibited.\n */\n\nexport { payloadAiPlugin } from './plugin.js'\nexport { PayloadAiPluginLexicalEditorFeature } from './fields/LexicalEditor/feature.server.js'\nexport { LexicalBaseNode } from './ai/schemas/lexical.schema.js'\n"],"names":["payloadAiPlugin","PayloadAiPluginLexicalEditorFeature","LexicalBaseNode"],"mappings":"AAAA;;;;;CAKC,GAED,SAASA,eAAe,QAAQ,cAAa;AAC7C,SAASC,mCAAmC,QAAQ,2CAA0C;AAC9F,SAASC,eAAe,QAAQ,iCAAgC"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @license This software is licensed under the MIT License.\n */\n\nexport { payloadAiPlugin } from './plugin.js'\n"],"names":["payloadAiPlugin"],"mappings":"AAAA;;CAEC,GAED,SAASA,eAAe,QAAQ,cAAa"}
package/dist/init.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import type { Payload } from 'payload';
2
- export declare const init: (payload: Payload, fieldSchemaPaths: any) => Promise<void>;
2
+ import type { PluginConfig } from './types.js';
3
+ export declare const init: (payload: Payload, fieldSchemaPaths: any, pluginConfig: PluginConfig) => Promise<void>;
3
4
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAOtC,eAAO,MAAM,IAAI,YAAmB,OAAO,yCAoF1C,CAAA"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAO9C,eAAO,MAAM,IAAI,YAAmB,OAAO,uCAAkC,YAAY,kBAuFxF,CAAA"}
package/dist/init.js CHANGED
@@ -1,17 +1,17 @@
1
1
  import { GenerationModels } from './ai/models/index.js';
2
2
  import { seedPrompts } from './ai/prompts.js';
3
- import { generateSeedPrompt } from './ai/utils/generateSeedPrompt.js';
4
- import { PLUGIN_INSTRUCTIONS_MAP_GLOBAL, PLUGIN_INSTRUCTIONS_TABLE } from './defaults.js';
5
- export const init = async (payload, fieldSchemaPaths)=>{
3
+ import { systemGenerate } from './ai/utils/systemGenerate.js';
4
+ import { PLUGIN_INSTRUCTIONS_TABLE } from './defaults.js';
5
+ export const init = async (payload, fieldSchemaPaths, pluginConfig)=>{
6
6
  payload.logger.info(`— AI Plugin: Initializing...`);
7
7
  const paths = Object.keys(fieldSchemaPaths);
8
8
  const fieldInstructionsMap = {};
9
9
  for(let i = 0; i < paths.length; i++){
10
10
  const path = paths[i];
11
- const { type: fieldType, label: fieldLabel } = fieldSchemaPaths[path];
12
- //TODO: if global is broken the plugin doesn't know and does not run reindexing
11
+ const { type: fieldType, label: fieldLabel, relationTo } = fieldSchemaPaths[path];
13
12
  const entry = await payload.find({
14
13
  collection: PLUGIN_INSTRUCTIONS_TABLE,
14
+ pagination: false,
15
15
  where: {
16
16
  'field-type': {
17
17
  equals: fieldType
@@ -28,11 +28,14 @@ export const init = async (payload, fieldSchemaPaths)=>{
28
28
  fieldType,
29
29
  path
30
30
  });
31
- const generatedPrompt = await generateSeedPrompt({
32
- prompt,
33
- system
34
- });
35
- payload.logger.info(`\nPrompt generated for "${fieldLabel}" field:\nprompt: ${generatedPrompt}\n\n`);
31
+ let generatedPrompt = '{{ title }}';
32
+ if (pluginConfig.generatePromptOnInit) {
33
+ generatedPrompt = await systemGenerate({
34
+ prompt,
35
+ system
36
+ });
37
+ payload.logger.info(`\nPrompt generated for "${fieldLabel}" field:\nprompt: ${generatedPrompt}\n\n`);
38
+ }
36
39
  const instructions = await payload.create({
37
40
  collection: PLUGIN_INSTRUCTIONS_TABLE,
38
41
  data: {
@@ -41,10 +44,11 @@ export const init = async (payload, fieldSchemaPaths)=>{
41
44
  return a.fields.includes(fieldType);
42
45
  })?.id,
43
46
  prompt: generatedPrompt,
47
+ 'relation-to': relationTo,
44
48
  'schema-path': path
45
49
  }
46
- }).then((a)=>a).catch((a)=>{
47
- console.log('err-', a);
50
+ }).then((a)=>a).catch((err)=>{
51
+ console.log('— AI Plugin: Error creating Compose settings-', err);
48
52
  });
49
53
  // @ts-expect-error
50
54
  if (instructions?.id) {
@@ -61,16 +65,13 @@ export const init = async (payload, fieldSchemaPaths)=>{
61
65
  };
62
66
  }
63
67
  }
64
- payload.logger.info(`— AI Plugin: Enabled fieldMap: ${JSON.stringify(fieldInstructionsMap, null, 2)}`);
65
- await payload.updateGlobal({
66
- slug: PLUGIN_INSTRUCTIONS_MAP_GLOBAL,
67
- data: {
68
- map: fieldInstructionsMap
69
- },
70
- depth: 2
71
- });
68
+ if (pluginConfig.debugging) {
69
+ payload.logger.info(`— AI Plugin: Enabled fields map: ${JSON.stringify(fieldInstructionsMap, null, 2)}`);
70
+ }
72
71
  payload.logger.info(`— AI Plugin: Initialized!`);
73
- payload.logger.info('\n\n-AI Plugin: Example prompts are added to get you started, Now go break some code 🚀🚀🚀\n\n');
72
+ if (pluginConfig.generatePromptOnInit) {
73
+ payload.logger.info('\n\n-AI Plugin: Example prompts are added to get you started, Now go break some code 🚀🚀🚀\n\n');
74
+ }
74
75
  };
75
76
 
76
77
  //# sourceMappingURL=init.js.map
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport { GenerationModels } from './ai/models/index.js'\nimport { seedPrompts } from './ai/prompts.js'\nimport { generateSeedPrompt } from './ai/utils/generateSeedPrompt.js'\nimport { PLUGIN_INSTRUCTIONS_MAP_GLOBAL, PLUGIN_INSTRUCTIONS_TABLE } from './defaults.js'\n\nexport const init = async (payload: Payload, fieldSchemaPaths) => {\n payload.logger.info(`— AI Plugin: Initializing...`)\n\n const paths = Object.keys(fieldSchemaPaths)\n\n const fieldInstructionsMap = {}\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i]\n const { type: fieldType, label: fieldLabel } = fieldSchemaPaths[path]\n //TODO: if global is broken the plugin doesn't know and does not run reindexing\n const entry = await payload.find({\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n where: {\n 'field-type': {\n equals: fieldType,\n },\n 'schema-path': {\n equals: path,\n },\n },\n })\n\n if (!entry?.docs?.length) {\n const { prompt, system } = seedPrompts({\n fieldLabel,\n fieldSchemaPaths,\n fieldType,\n path,\n })\n const generatedPrompt = await generateSeedPrompt({\n prompt,\n system,\n })\n payload.logger.info(\n `\\nPrompt generated for \"${fieldLabel}\" field:\\nprompt: ${generatedPrompt}\\n\\n`,\n )\n const instructions = await payload\n .create({\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n data: {\n 'field-type': fieldType,\n 'model-id': GenerationModels.find((a) => {\n return a.fields.includes(fieldType)\n })?.id,\n prompt: generatedPrompt,\n 'schema-path': path,\n },\n })\n .then((a) => a)\n .catch((a) => {\n console.log('err-', a)\n })\n\n // @ts-expect-error\n if (instructions?.id) {\n fieldInstructionsMap[path] = {\n id: instructions.id,\n fieldType,\n }\n }\n } else {\n const [instructions] = entry.docs\n fieldInstructionsMap[path] = {\n id: instructions.id,\n fieldType,\n }\n }\n }\n\n payload.logger.info(\n `— AI Plugin: Enabled fieldMap: ${JSON.stringify(fieldInstructionsMap, null, 2)}`,\n )\n await payload.updateGlobal({\n slug: PLUGIN_INSTRUCTIONS_MAP_GLOBAL, // required\n data: {\n map: fieldInstructionsMap,\n },\n depth: 2,\n })\n\n payload.logger.info(`— AI Plugin: Initialized!`)\n payload.logger.info(\n '\\n\\n-AI Plugin: Example prompts are added to get you started, Now go break some code 🚀🚀🚀\\n\\n',\n )\n}\n"],"names":["GenerationModels","seedPrompts","generateSeedPrompt","PLUGIN_INSTRUCTIONS_MAP_GLOBAL","PLUGIN_INSTRUCTIONS_TABLE","init","payload","fieldSchemaPaths","logger","info","paths","Object","keys","fieldInstructionsMap","i","length","path","type","fieldType","label","fieldLabel","entry","find","collection","where","equals","docs","prompt","system","generatedPrompt","instructions","create","data","a","fields","includes","id","then","catch","console","log","JSON","stringify","updateGlobal","slug","map","depth"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,uBAAsB;AACvD,SAASC,WAAW,QAAQ,kBAAiB;AAC7C,SAASC,kBAAkB,QAAQ,mCAAkC;AACrE,SAASC,8BAA8B,EAAEC,yBAAyB,QAAQ,gBAAe;AAEzF,OAAO,MAAMC,OAAO,OAAOC,SAAkBC;IAC3CD,QAAQE,MAAM,CAACC,IAAI,CAAC,CAAC,4BAA4B,CAAC;IAElD,MAAMC,QAAQC,OAAOC,IAAI,CAACL;IAE1B,MAAMM,uBAAuB,CAAC;IAC9B,IAAK,IAAIC,IAAI,GAAGA,IAAIJ,MAAMK,MAAM,EAAED,IAAK;QACrC,MAAME,OAAON,KAAK,CAACI,EAAE;QACrB,MAAM,EAAEG,MAAMC,SAAS,EAAEC,OAAOC,UAAU,EAAE,GAAGb,gBAAgB,CAACS,KAAK;QACrE,+EAA+E;QAC/E,MAAMK,QAAQ,MAAMf,QAAQgB,IAAI,CAAC;YAC/BC,YAAYnB;YACZoB,OAAO;gBACL,cAAc;oBACZC,QAAQP;gBACV;gBACA,eAAe;oBACbO,QAAQT;gBACV;YACF;QACF;QAEA,IAAI,CAACK,OAAOK,MAAMX,QAAQ;YACxB,MAAM,EAAEY,MAAM,EAAEC,MAAM,EAAE,GAAG3B,YAAY;gBACrCmB;gBACAb;gBACAW;gBACAF;YACF;YACA,MAAMa,kBAAkB,MAAM3B,mBAAmB;gBAC/CyB;gBACAC;YACF;YACAtB,QAAQE,MAAM,CAACC,IAAI,CACjB,CAAC,wBAAwB,EAAEW,WAAW,kBAAkB,EAAES,gBAAgB,IAAI,CAAC;YAEjF,MAAMC,eAAe,MAAMxB,QACxByB,MAAM,CAAC;gBACNR,YAAYnB;gBACZ4B,MAAM;oBACJ,cAAcd;oBACd,YAAYlB,iBAAiBsB,IAAI,CAAC,CAACW;wBACjC,OAAOA,EAAEC,MAAM,CAACC,QAAQ,CAACjB;oBAC3B,IAAIkB;oBACJT,QAAQE;oBACR,eAAeb;gBACjB;YACF,GACCqB,IAAI,CAAC,CAACJ,IAAMA,GACZK,KAAK,CAAC,CAACL;gBACNM,QAAQC,GAAG,CAAC,QAAQP;YACtB;YAEF,mBAAmB;YACnB,IAAIH,cAAcM,IAAI;gBACpBvB,oBAAoB,CAACG,KAAK,GAAG;oBAC3BoB,IAAIN,aAAaM,EAAE;oBACnBlB;gBACF;YACF;QACF,OAAO;YACL,MAAM,CAACY,aAAa,GAAGT,MAAMK,IAAI;YACjCb,oBAAoB,CAACG,KAAK,GAAG;gBAC3BoB,IAAIN,aAAaM,EAAE;gBACnBlB;YACF;QACF;IACF;IAEAZ,QAAQE,MAAM,CAACC,IAAI,CACjB,CAAC,+BAA+B,EAAEgC,KAAKC,SAAS,CAAC7B,sBAAsB,MAAM,GAAG,CAAC;IAEnF,MAAMP,QAAQqC,YAAY,CAAC;QACzBC,MAAMzC;QACN6B,MAAM;YACJa,KAAKhC;QACP;QACAiC,OAAO;IACT;IAEAxC,QAAQE,MAAM,CAACC,IAAI,CAAC,CAAC,yBAAyB,CAAC;IAC/CH,QAAQE,MAAM,CAACC,IAAI,CACjB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport type { PluginConfig } from './types.js'\n\nimport { GenerationModels } from './ai/models/index.js'\nimport { seedPrompts } from './ai/prompts.js'\nimport { systemGenerate } from './ai/utils/systemGenerate.js'\nimport { PLUGIN_INSTRUCTIONS_TABLE } from './defaults.js'\n\nexport const init = async (payload: Payload, fieldSchemaPaths, pluginConfig: PluginConfig) => {\n payload.logger.info(`— AI Plugin: Initializing...`)\n\n const paths = Object.keys(fieldSchemaPaths)\n\n const fieldInstructionsMap = {}\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i]\n const { type: fieldType, label: fieldLabel, relationTo } = fieldSchemaPaths[path]\n const entry = await payload.find({\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n pagination: false,\n where: {\n 'field-type': {\n equals: fieldType,\n },\n 'schema-path': {\n equals: path,\n },\n },\n })\n\n if (!entry?.docs?.length) {\n const { prompt, system } = seedPrompts({\n fieldLabel,\n fieldSchemaPaths,\n fieldType,\n path,\n })\n\n let generatedPrompt = '{{ title }}'\n if (pluginConfig.generatePromptOnInit) {\n generatedPrompt = await systemGenerate({\n prompt,\n system,\n })\n payload.logger.info(\n `\\nPrompt generated for \"${fieldLabel}\" field:\\nprompt: ${generatedPrompt}\\n\\n`,\n )\n }\n\n const instructions = await payload\n .create({\n collection: PLUGIN_INSTRUCTIONS_TABLE,\n data: {\n 'field-type': fieldType,\n 'model-id': GenerationModels.find((a) => {\n return a.fields.includes(fieldType)\n })?.id,\n prompt: generatedPrompt,\n 'relation-to': relationTo,\n 'schema-path': path,\n },\n })\n .then((a) => a)\n .catch((err) => {\n console.log('— AI Plugin: Error creating Compose settings-', err)\n })\n\n // @ts-expect-error\n if (instructions?.id) {\n fieldInstructionsMap[path] = {\n id: instructions.id,\n fieldType,\n }\n }\n } else {\n const [instructions] = entry.docs\n fieldInstructionsMap[path] = {\n id: instructions.id,\n fieldType,\n }\n }\n }\n\n if (pluginConfig.debugging) {\n payload.logger.info(\n `— AI Plugin: Enabled fields map: ${JSON.stringify(fieldInstructionsMap, null, 2)}`,\n )\n }\n\n payload.logger.info(`— AI Plugin: Initialized!`)\n if (pluginConfig.generatePromptOnInit) {\n payload.logger.info(\n '\\n\\n-AI Plugin: Example prompts are added to get you started, Now go break some code 🚀🚀🚀\\n\\n',\n )\n }\n}\n"],"names":["GenerationModels","seedPrompts","systemGenerate","PLUGIN_INSTRUCTIONS_TABLE","init","payload","fieldSchemaPaths","pluginConfig","logger","info","paths","Object","keys","fieldInstructionsMap","i","length","path","type","fieldType","label","fieldLabel","relationTo","entry","find","collection","pagination","where","equals","docs","prompt","system","generatedPrompt","generatePromptOnInit","instructions","create","data","a","fields","includes","id","then","catch","err","console","log","debugging","JSON","stringify"],"mappings":"AAIA,SAASA,gBAAgB,QAAQ,uBAAsB;AACvD,SAASC,WAAW,QAAQ,kBAAiB;AAC7C,SAASC,cAAc,QAAQ,+BAA8B;AAC7D,SAASC,yBAAyB,QAAQ,gBAAe;AAEzD,OAAO,MAAMC,OAAO,OAAOC,SAAkBC,kBAAkBC;IAC7DF,QAAQG,MAAM,CAACC,IAAI,CAAC,CAAC,4BAA4B,CAAC;IAElD,MAAMC,QAAQC,OAAOC,IAAI,CAACN;IAE1B,MAAMO,uBAAuB,CAAC;IAC9B,IAAK,IAAIC,IAAI,GAAGA,IAAIJ,MAAMK,MAAM,EAAED,IAAK;QACrC,MAAME,OAAON,KAAK,CAACI,EAAE;QACrB,MAAM,EAAEG,MAAMC,SAAS,EAAEC,OAAOC,UAAU,EAAEC,UAAU,EAAE,GAAGf,gBAAgB,CAACU,KAAK;QACjF,MAAMM,QAAQ,MAAMjB,QAAQkB,IAAI,CAAC;YAC/BC,YAAYrB;YACZsB,YAAY;YACZC,OAAO;gBACL,cAAc;oBACZC,QAAQT;gBACV;gBACA,eAAe;oBACbS,QAAQX;gBACV;YACF;QACF;QAEA,IAAI,CAACM,OAAOM,MAAMb,QAAQ;YACxB,MAAM,EAAEc,MAAM,EAAEC,MAAM,EAAE,GAAG7B,YAAY;gBACrCmB;gBACAd;gBACAY;gBACAF;YACF;YAEA,IAAIe,kBAAkB;YACtB,IAAIxB,aAAayB,oBAAoB,EAAE;gBACrCD,kBAAkB,MAAM7B,eAAe;oBACrC2B;oBACAC;gBACF;gBACAzB,QAAQG,MAAM,CAACC,IAAI,CACjB,CAAC,wBAAwB,EAAEW,WAAW,kBAAkB,EAAEW,gBAAgB,IAAI,CAAC;YAEnF;YAEA,MAAME,eAAe,MAAM5B,QACxB6B,MAAM,CAAC;gBACNV,YAAYrB;gBACZgC,MAAM;oBACJ,cAAcjB;oBACd,YAAYlB,iBAAiBuB,IAAI,CAAC,CAACa;wBACjC,OAAOA,EAAEC,MAAM,CAACC,QAAQ,CAACpB;oBAC3B,IAAIqB;oBACJV,QAAQE;oBACR,eAAeV;oBACf,eAAeL;gBACjB;YACF,GACCwB,IAAI,CAAC,CAACJ,IAAMA,GACZK,KAAK,CAAC,CAACC;gBACNC,QAAQC,GAAG,CAAC,iDAAiDF;YAC/D;YAEF,mBAAmB;YACnB,IAAIT,cAAcM,IAAI;gBACpB1B,oBAAoB,CAACG,KAAK,GAAG;oBAC3BuB,IAAIN,aAAaM,EAAE;oBACnBrB;gBACF;YACF;QACF,OAAO;YACL,MAAM,CAACe,aAAa,GAAGX,MAAMM,IAAI;YACjCf,oBAAoB,CAACG,KAAK,GAAG;gBAC3BuB,IAAIN,aAAaM,EAAE;gBACnBrB;YACF;QACF;IACF;IAEA,IAAIX,aAAasC,SAAS,EAAE;QAC1BxC,QAAQG,MAAM,CAACC,IAAI,CACjB,CAAC,iCAAiC,EAAEqC,KAAKC,SAAS,CAAClC,sBAAsB,MAAM,IAAI;IAEvF;IAEAR,QAAQG,MAAM,CAACC,IAAI,CAAC,CAAC,yBAAyB,CAAC;IAC/C,IAAIF,aAAayB,oBAAoB,EAAE;QACrC3B,QAAQG,MAAM,CAACC,IAAI,CACjB;IAEJ;AACF,EAAC"}
@@ -3,7 +3,7 @@
3
3
  * Github: https://github.com/yury-dymov/react-autocomplete-input
4
4
  *
5
5
  * Modified to only be use for PromptEditorField
6
- */ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
6
+ */ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  import * as inputSelection from 'get-input-selection';
8
8
  import isEqual from 'lodash.isequal';
9
9
  import React, { useCallback, useEffect, useRef, useState } from 'react';
@@ -159,8 +159,10 @@ export const AutocompleteTextField = (props)=>{
159
159
  matchAny
160
160
  ]);
161
161
  const updateCaretPosition = useCallback((newCaret)=>{
162
- setCaret(newCaret);
163
- inputSelection.default.setCaretPosition(inputRef.current, newCaret);
162
+ requestAnimationFrame(()=>{
163
+ setCaret(newCaret);
164
+ inputSelection.default.setCaretPosition(inputRef.current, newCaret);
165
+ });
164
166
  }, []);
165
167
  const updateHelper = useCallback((str, caretPos, helperOptions)=>{
166
168
  const slug = getMatch(str, caretPos, helperOptions);
@@ -183,6 +185,7 @@ export const AutocompleteTextField = (props)=>{
183
185
  }
184
186
  resetHelper();
185
187
  }
188
+ updateCaretPosition(caretPos);
186
189
  } else {
187
190
  resetHelper();
188
191
  }
@@ -190,7 +193,8 @@ export const AutocompleteTextField = (props)=>{
190
193
  getMatch,
191
194
  minChars,
192
195
  requestOnlyIfNoOptions,
193
- onRequestOptions
196
+ onRequestOptions,
197
+ updateCaretPosition
194
198
  ]);
195
199
  const resetHelper = useCallback(()=>{
196
200
  setHelperVisible(false);
@@ -203,8 +207,6 @@ export const AutocompleteTextField = (props)=>{
203
207
  setHelperVisible(false);
204
208
  }
205
209
  recentValue.current = str;
206
- setCaret(caretPos);
207
- setValue(e.target.value);
208
210
  if (!str.length || !caretPos) {
209
211
  return onChange(e.target.value);
210
212
  }
@@ -348,7 +350,7 @@ export const AutocompleteTextField = (props)=>{
348
350
  if (!val.startsWith(text)) {
349
351
  return text;
350
352
  }
351
- return /*#__PURE__*/ _jsxs(_Fragment, {
353
+ return /*#__PURE__*/ _jsxs(React.Fragment, {
352
354
  children: [
353
355
  text.slice(0, highlightStart),
354
356
  /*#__PURE__*/ _jsx("strong", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/libraries/autocomplete/AutocompleteTextArea.tsx"],"sourcesContent":["/**\n * Credit: Yury Dymov\n * Github: https://github.com/yury-dymov/react-autocomplete-input\n *\n * Modified to only be use for PromptEditorField\n */\n\nimport * as inputSelection from 'get-input-selection'\nimport isEqual from 'lodash.isequal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport getCaretCoordinates from 'textarea-caret'\n\nimport styles from './AutocompleteTextArea.module.scss'\n\nconst KEY_UP = 38\nconst KEY_DOWN = 40\nconst KEY_RETURN = 13\nconst KEY_ENTER = 14\nconst KEY_ESCAPE = 27\nconst KEY_TAB = 9\n\nconst OPTION_LIST_MIN_WIDTH = 100\n\nexport const AutocompleteTextField = (props) => {\n const {\n changeOnSelect = (trigger, slug) => trigger + slug,\n defaultValue = '',\n disabled = false,\n matchAny = false,\n maxOptions = 10,\n minChars = 0,\n offsetX = 0,\n offsetY = 0,\n onBlur = (e: any) => {},\n onChange = (e: any) => {},\n onKeyDown = (e: any) => {},\n onRequestOptions = (e: any) => {},\n onSelect = (e: any) => {},\n options = [],\n passThroughEnter = false,\n passThroughTab = true,\n regex = '^[A-Za-z0-9\\\\-_]+$',\n requestOnlyIfNoOptions = true,\n spaceRemovers = [',', '.', '!', '?'],\n spacer = ' ',\n trigger = '@',\n triggerCaseInsensitive = false,\n triggerMatchWholeWord = false,\n value: propValue = null,\n ...rest\n } = props\n\n const [helperVisible, setHelperVisible] = useState(false)\n const [left, setLeft] = useState(0)\n const [top, setTop] = useState(0)\n const [triggerChar, setTriggerChar] = useState(null)\n const [matchLength, setMatchLength] = useState(0)\n const [matchStart, setMatchStart] = useState(0)\n const [selection, setSelection] = useState(0)\n const [value, setValue] = useState(null)\n const [caret, setCaret] = useState(0)\n const [currentOptions, setCurrentOptions] = useState([])\n\n const recentValue = useRef(defaultValue)\n const enableSpaceRemovers = useRef(false)\n const inputRef = useRef(null)\n const currentRef = useRef(null)\n const parentRef = useRef(null)\n\n useEffect(() => {\n window.addEventListener('resize', handleResize)\n window.addEventListener('scroll', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n window.removeEventListener('scroll', handleResize)\n }\n }, [])\n\n useEffect(() => {\n if (!isEqual(options, currentOptions)) {\n updateHelper(recentValue.current, caret, options)\n }\n }, [options, caret])\n\n useEffect(() => {\n if (helperVisible && currentRef.current) {\n scrollIntoView(currentRef.current, { boundary: parentRef.current, scrollMode: 'if-needed' })\n }\n }, [helperVisible, selection])\n\n const handleResize = useCallback(() => {\n setHelperVisible(false)\n }, [])\n\n const isTrigger = useCallback(\n (triggerStr, str, i) => {\n if (!triggerStr || !triggerStr.length) {\n return true\n }\n\n if (triggerMatchWholeWord && i > 0 && str.charAt(i - 1).match(/\\w/)) {\n return false\n }\n\n if (\n str.substr(i, triggerStr.length) === triggerStr ||\n (triggerCaseInsensitive &&\n str.substr(i, triggerStr.length).toLowerCase() === triggerStr.toLowerCase())\n ) {\n return true\n }\n\n return false\n },\n [triggerMatchWholeWord, triggerCaseInsensitive],\n )\n\n const arrayTriggerMatch = useCallback((triggers, re) => {\n return triggers.map((trigger) => ({\n triggerLength: trigger.length,\n triggerMatch: trigger.match(re),\n triggerStr: trigger,\n }))\n }, [])\n\n const getMatch = useCallback(\n (str, caret, providedOptions) => {\n const re = new RegExp(regex)\n const triggers = Array.isArray(trigger) ? trigger : [trigger]\n triggers.sort()\n\n const providedOptionsObject = Array.isArray(providedOptions)\n ? triggers.reduce((acc, triggerStr) => ({ ...acc, [triggerStr]: providedOptions }), {})\n : providedOptions\n\n const triggersMatch = arrayTriggerMatch(triggers, re)\n let slugData = null\n\n for (let triggersIndex = 0; triggersIndex < triggersMatch.length; triggersIndex++) {\n const { triggerLength, triggerMatch, triggerStr } = triggersMatch[triggersIndex]\n\n for (let i = caret - 1; i >= 0; --i) {\n const substr = str.substring(i, caret)\n const match = substr.match(re)\n let matchStart = -1\n\n if (triggerLength > 0) {\n const triggerIdx = triggerMatch ? i : i - triggerLength + 1\n\n if (triggerIdx < 0) {\n break\n }\n\n if (isTrigger(triggerStr, str, triggerIdx)) {\n matchStart = triggerIdx + triggerLength\n }\n\n if (!match && matchStart < 0) {\n break\n }\n } else {\n if (match && i > 0) {\n continue\n }\n matchStart = i === 0 && match ? 0 : i + 1\n\n if (caret - matchStart === 0) {\n break\n }\n }\n\n if (matchStart >= 0) {\n const triggerOptions = providedOptionsObject[triggerStr]\n if (triggerOptions == null) {\n continue\n }\n\n const matchedSlug = str.substring(matchStart, caret)\n\n const filteredOptions = triggerOptions.filter((slug) => {\n const idx = slug.toLowerCase().indexOf(matchedSlug.toLowerCase())\n return idx !== -1 && (matchAny || idx === 0)\n })\n\n const currTrigger = triggerStr\n const matchLength = matchedSlug.length\n\n slugData = {\n matchLength,\n matchStart,\n options: filteredOptions,\n trigger: currTrigger,\n }\n }\n }\n }\n\n return slugData\n },\n [regex, trigger, arrayTriggerMatch, isTrigger, matchAny],\n )\n\n const updateCaretPosition = useCallback((newCaret) => {\n setCaret(newCaret)\n inputSelection.default.setCaretPosition(inputRef.current, newCaret)\n }, [])\n\n const updateHelper = useCallback(\n (str, caretPos, helperOptions) => {\n const slug = getMatch(str, caretPos, helperOptions)\n\n if (slug) {\n const caretCoordinates = getCaretCoordinates(inputRef.current, caretPos)\n const rect = inputRef.current.getBoundingClientRect()\n\n const newTop = caretCoordinates.top + rect.top - inputRef.current.scrollTop\n const newLeft = Math.min(\n caretCoordinates.left + rect.left - inputRef.current.scrollLeft,\n window.innerWidth - OPTION_LIST_MIN_WIDTH,\n )\n\n if (\n slug.matchLength >= minChars &&\n (slug.options.length > 1 ||\n (slug.options.length === 1 &&\n (slug.options[0].length !== slug.matchLength || slug.options[0].length === 1)))\n ) {\n setHelperVisible(true)\n setTop(newTop)\n setLeft(newLeft)\n setTriggerChar(slug.trigger)\n setMatchLength(slug.matchLength)\n setMatchStart(slug.matchStart)\n setCurrentOptions(slug.options)\n } else {\n if (!requestOnlyIfNoOptions || !slug.options.length) {\n onRequestOptions(str.substr(slug.matchStart, slug.matchLength))\n }\n resetHelper()\n }\n } else {\n resetHelper()\n }\n },\n [getMatch, minChars, requestOnlyIfNoOptions, onRequestOptions],\n )\n\n const resetHelper = useCallback(() => {\n setHelperVisible(false)\n setSelection(0)\n }, [])\n\n const handleChange = useCallback(\n (e) => {\n const str = e.target.value\n const caretPos = inputSelection.default.default(e.target).end\n\n if (!str.length) {\n setHelperVisible(false)\n }\n\n recentValue.current = str\n\n setCaret(caretPos)\n setValue(e.target.value)\n\n if (!str.length || !caretPos) {\n return onChange(e.target.value)\n }\n\n // Space removers logic\n if (enableSpaceRemovers.current && spaceRemovers.length && str.length > 2 && spacer.length) {\n for (let i = 0; i < Math.max(recentValue.current.length, str.length); ++i) {\n if (recentValue.current[i] !== str[i]) {\n if (\n i >= 2 &&\n str[i - 1] === spacer &&\n spaceRemovers.indexOf(str[i - 2]) === -1 &&\n spaceRemovers.indexOf(str[i]) !== -1 &&\n getMatch(str.substring(0, i - 2), caretPos - 3, options)\n ) {\n const newValue = `${str.slice(0, i - 1)}${str.slice(i, i + 1)}${str.slice(i - 1, i)}${str.slice(i + 1)}`\n\n updateCaretPosition(i + 1)\n inputRef.current.value = newValue\n\n if (!propValue) {\n setValue(newValue)\n }\n\n return onChange(newValue)\n }\n\n break\n }\n }\n\n enableSpaceRemovers.current = false\n }\n\n updateHelper(str, caretPos, options)\n\n if (!propValue) {\n setValue(e.target.value)\n }\n\n return onChange(e.target.value)\n },\n [\n onChange,\n propValue,\n spaceRemovers,\n spacer,\n options,\n updateCaretPosition,\n updateHelper,\n getMatch,\n ],\n )\n\n const handleBlur = useCallback(\n (e) => {\n resetHelper()\n onBlur(e)\n },\n [onBlur, resetHelper],\n )\n\n const handleSelection = useCallback(\n (idx) => {\n const slug = currentOptions[idx]\n const value = recentValue.current\n const part1 =\n triggerChar.length === 0 ? '' : value.substring(0, matchStart - triggerChar.length)\n const part2 = value.substring(matchStart + matchLength)\n\n const event = { target: inputRef.current }\n const changedStr = changeOnSelect(triggerChar, slug)\n\n event.target.value = `${part1}${changedStr}${spacer}${part2}`\n handleChange(event)\n onSelect(event.target.value)\n\n resetHelper()\n\n const advanceCaretDistance = part1.length + changedStr.length + (spacer ? spacer.length : 1)\n updateCaretPosition(advanceCaretDistance)\n\n enableSpaceRemovers.current = true\n },\n [\n currentOptions,\n triggerChar,\n matchStart,\n matchLength,\n changeOnSelect,\n spacer,\n handleChange,\n onSelect,\n resetHelper,\n updateCaretPosition,\n ],\n )\n\n const handleKeyDown = useCallback(\n (event) => {\n const optionsCount =\n maxOptions > 0 ? Math.min(currentOptions.length, maxOptions) : currentOptions.length\n\n if (helperVisible) {\n switch (event.keyCode) {\n case KEY_ESCAPE:\n event.preventDefault()\n resetHelper()\n break\n case KEY_UP:\n event.preventDefault()\n if (optionsCount > 0) {\n setSelection(\n (prevSelection) => Math.max(0, optionsCount + prevSelection - 1) % optionsCount,\n )\n }\n break\n case KEY_DOWN:\n event.preventDefault()\n if (optionsCount > 0) {\n setSelection((prevSelection) => (prevSelection + 1) % optionsCount)\n }\n break\n case KEY_ENTER:\n case KEY_RETURN:\n if (!passThroughEnter) {\n event.preventDefault()\n }\n handleSelection(selection)\n break\n case KEY_TAB:\n if (!passThroughTab) {\n event.preventDefault()\n }\n handleSelection(selection)\n break\n default:\n onKeyDown(event)\n break\n }\n } else {\n onKeyDown(event)\n }\n },\n [\n helperVisible,\n currentOptions,\n maxOptions,\n passThroughEnter,\n passThroughTab,\n selection,\n onKeyDown,\n resetHelper,\n handleSelection,\n ],\n )\n\n const renderAutocompleteList = useCallback(() => {\n if (!helperVisible || currentOptions.length === 0) {\n return null\n }\n\n if (selection >= currentOptions.length) {\n setSelection(0)\n return null\n }\n\n const optionNumber = maxOptions === 0 ? currentOptions.length : maxOptions\n\n const helperOptions = currentOptions.slice(0, optionNumber).map((val, idx) => {\n let [helper, value] = val.split(' ')\n if (!value) {\n helper = undefined\n value = val\n }\n\n const renderHighlightedText = (text) => {\n const highlightStart = text\n .toLowerCase()\n .indexOf(recentValue.current.substr(matchStart, matchLength).toLowerCase())\n\n const highlightedText = text.substr(highlightStart, matchLength)\n\n if (!val.startsWith(text)) {\n return text\n }\n\n return (\n <>\n {text.slice(0, highlightStart)}\n <strong>{highlightedText}</strong>\n {text.slice(highlightStart + matchLength)}\n </>\n )\n }\n\n return (\n <li\n className={idx === selection ? styles.active : null}\n key={val}\n onClick={() => {\n handleSelection(idx)\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n }}\n onMouseEnter={() => {\n setSelection(idx)\n }}\n ref={idx === selection ? currentRef : null}\n role=\"presentation\"\n >\n {helper && <code className={styles.helper}>{renderHighlightedText(helper)}</code>}\n {renderHighlightedText(value)}\n </li>\n )\n })\n\n const maxWidth = window.innerWidth - left - offsetX - 5\n const maxHeight = window.innerHeight - top - offsetY - 5\n\n return (\n <ul\n className={styles.autocompleteInput + ' ' + 'popup__content'}\n ref={parentRef}\n style={{\n left: left + offsetX,\n maxHeight,\n maxWidth,\n opacity: 'initial',\n pointerEvents: 'initial',\n position: 'fixed',\n top: top + offsetY,\n visibility: 'initial',\n }}\n >\n {helperOptions}\n </ul>\n )\n }, [\n helperVisible,\n currentOptions,\n selection,\n maxOptions,\n left,\n top,\n offsetX,\n offsetY,\n matchStart,\n matchLength,\n handleSelection,\n ])\n\n return (\n <div className=\"popup\">\n <textarea\n className=\"textarea-outer\"\n disabled={disabled}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={inputRef}\n rows={6}\n style={{ overflow: 'auto' }}\n value={propValue !== null ? propValue : value || defaultValue}\n {...rest}\n />\n {renderAutocompleteList()}\n </div>\n )\n}\n"],"names":["inputSelection","isEqual","React","useCallback","useEffect","useRef","useState","scrollIntoView","getCaretCoordinates","styles","KEY_UP","KEY_DOWN","KEY_RETURN","KEY_ENTER","KEY_ESCAPE","KEY_TAB","OPTION_LIST_MIN_WIDTH","AutocompleteTextField","props","changeOnSelect","trigger","slug","defaultValue","disabled","matchAny","maxOptions","minChars","offsetX","offsetY","onBlur","e","onChange","onKeyDown","onRequestOptions","onSelect","options","passThroughEnter","passThroughTab","regex","requestOnlyIfNoOptions","spaceRemovers","spacer","triggerCaseInsensitive","triggerMatchWholeWord","value","propValue","rest","helperVisible","setHelperVisible","left","setLeft","top","setTop","triggerChar","setTriggerChar","matchLength","setMatchLength","matchStart","setMatchStart","selection","setSelection","setValue","caret","setCaret","currentOptions","setCurrentOptions","recentValue","enableSpaceRemovers","inputRef","currentRef","parentRef","window","addEventListener","handleResize","removeEventListener","updateHelper","current","boundary","scrollMode","isTrigger","triggerStr","str","i","length","charAt","match","substr","toLowerCase","arrayTriggerMatch","triggers","re","map","triggerLength","triggerMatch","getMatch","providedOptions","RegExp","Array","isArray","sort","providedOptionsObject","reduce","acc","triggersMatch","slugData","triggersIndex","substring","triggerIdx","triggerOptions","matchedSlug","filteredOptions","filter","idx","indexOf","currTrigger","updateCaretPosition","newCaret","default","setCaretPosition","caretPos","helperOptions","caretCoordinates","rect","getBoundingClientRect","newTop","scrollTop","newLeft","Math","min","scrollLeft","innerWidth","resetHelper","handleChange","target","end","max","newValue","slice","handleBlur","handleSelection","part1","part2","event","changedStr","advanceCaretDistance","handleKeyDown","optionsCount","keyCode","preventDefault","prevSelection","renderAutocompleteList","optionNumber","val","helper","split","undefined","renderHighlightedText","text","highlightStart","highlightedText","startsWith","strong","li","className","active","onClick","onMouseDown","onMouseEnter","ref","role","code","maxWidth","maxHeight","innerHeight","ul","autocompleteInput","style","opacity","pointerEvents","position","visibility","div","textarea","rows","overflow"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/libraries/autocomplete/AutocompleteTextArea.tsx"],"sourcesContent":["/**\n * Credit: Yury Dymov\n * Github: https://github.com/yury-dymov/react-autocomplete-input\n *\n * Modified to only be use for PromptEditorField\n */\n\nimport * as inputSelection from 'get-input-selection'\nimport isEqual from 'lodash.isequal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport getCaretCoordinates from 'textarea-caret'\n\nimport styles from './AutocompleteTextArea.module.scss'\n\nconst KEY_UP = 38\nconst KEY_DOWN = 40\nconst KEY_RETURN = 13\nconst KEY_ENTER = 14\nconst KEY_ESCAPE = 27\nconst KEY_TAB = 9\n\nconst OPTION_LIST_MIN_WIDTH = 100\n\nexport const AutocompleteTextField = (props) => {\n const {\n changeOnSelect = (trigger, slug) => trigger + slug,\n defaultValue = '',\n disabled = false,\n matchAny = false,\n maxOptions = 10,\n minChars = 0,\n offsetX = 0,\n offsetY = 0,\n onBlur = (e: any) => {},\n onChange = (e: any) => {},\n onKeyDown = (e: any) => {},\n onRequestOptions = (e: any) => {},\n onSelect = (e: any) => {},\n options = [],\n passThroughEnter = false,\n passThroughTab = true,\n regex = '^[A-Za-z0-9\\\\-_]+$',\n requestOnlyIfNoOptions = true,\n spaceRemovers = [',', '.', '!', '?'],\n spacer = ' ',\n trigger = '@',\n triggerCaseInsensitive = false,\n triggerMatchWholeWord = false,\n value: propValue = null,\n ...rest\n } = props\n\n const [helperVisible, setHelperVisible] = useState(false)\n const [left, setLeft] = useState(0)\n const [top, setTop] = useState(0)\n const [triggerChar, setTriggerChar] = useState(null)\n const [matchLength, setMatchLength] = useState(0)\n const [matchStart, setMatchStart] = useState(0)\n const [selection, setSelection] = useState(0)\n const [value, setValue] = useState(null)\n const [caret, setCaret] = useState(0)\n const [currentOptions, setCurrentOptions] = useState([])\n\n const recentValue = useRef(defaultValue)\n const enableSpaceRemovers = useRef(false)\n const inputRef = useRef(null)\n const currentRef = useRef(null)\n const parentRef = useRef(null)\n\n useEffect(() => {\n window.addEventListener('resize', handleResize)\n window.addEventListener('scroll', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n window.removeEventListener('scroll', handleResize)\n }\n }, [])\n\n useEffect(() => {\n if (!isEqual(options, currentOptions)) {\n updateHelper(recentValue.current, caret, options)\n }\n }, [options, caret])\n\n useEffect(() => {\n if (helperVisible && currentRef.current) {\n scrollIntoView(currentRef.current, { boundary: parentRef.current, scrollMode: 'if-needed' })\n }\n }, [helperVisible, selection])\n\n const handleResize = useCallback(() => {\n setHelperVisible(false)\n }, [])\n\n const isTrigger = useCallback(\n (triggerStr, str, i) => {\n if (!triggerStr || !triggerStr.length) {\n return true\n }\n\n if (triggerMatchWholeWord && i > 0 && str.charAt(i - 1).match(/\\w/)) {\n return false\n }\n\n if (\n str.substr(i, triggerStr.length) === triggerStr ||\n (triggerCaseInsensitive &&\n str.substr(i, triggerStr.length).toLowerCase() === triggerStr.toLowerCase())\n ) {\n return true\n }\n\n return false\n },\n [triggerMatchWholeWord, triggerCaseInsensitive],\n )\n\n const arrayTriggerMatch = useCallback((triggers, re) => {\n return triggers.map((trigger) => ({\n triggerLength: trigger.length,\n triggerMatch: trigger.match(re),\n triggerStr: trigger,\n }))\n }, [])\n\n const getMatch = useCallback(\n (str, caret, providedOptions) => {\n const re = new RegExp(regex)\n const triggers = Array.isArray(trigger) ? trigger : [trigger]\n triggers.sort()\n\n const providedOptionsObject = Array.isArray(providedOptions)\n ? triggers.reduce((acc, triggerStr) => ({ ...acc, [triggerStr]: providedOptions }), {})\n : providedOptions\n\n const triggersMatch = arrayTriggerMatch(triggers, re)\n let slugData = null\n\n for (let triggersIndex = 0; triggersIndex < triggersMatch.length; triggersIndex++) {\n const { triggerLength, triggerMatch, triggerStr } = triggersMatch[triggersIndex]\n\n for (let i = caret - 1; i >= 0; --i) {\n const substr = str.substring(i, caret)\n const match = substr.match(re)\n let matchStart = -1\n\n if (triggerLength > 0) {\n const triggerIdx = triggerMatch ? i : i - triggerLength + 1\n\n if (triggerIdx < 0) {\n break\n }\n\n if (isTrigger(triggerStr, str, triggerIdx)) {\n matchStart = triggerIdx + triggerLength\n }\n\n if (!match && matchStart < 0) {\n break\n }\n } else {\n if (match && i > 0) {\n continue\n }\n matchStart = i === 0 && match ? 0 : i + 1\n\n if (caret - matchStart === 0) {\n break\n }\n }\n\n if (matchStart >= 0) {\n const triggerOptions = providedOptionsObject[triggerStr]\n if (triggerOptions == null) {\n continue\n }\n\n const matchedSlug = str.substring(matchStart, caret)\n\n const filteredOptions = triggerOptions.filter((slug) => {\n const idx = slug.toLowerCase().indexOf(matchedSlug.toLowerCase())\n return idx !== -1 && (matchAny || idx === 0)\n })\n\n const currTrigger = triggerStr\n const matchLength = matchedSlug.length\n\n slugData = {\n matchLength,\n matchStart,\n options: filteredOptions,\n trigger: currTrigger,\n }\n }\n }\n }\n\n return slugData\n },\n [regex, trigger, arrayTriggerMatch, isTrigger, matchAny],\n )\n\n const updateCaretPosition = useCallback((newCaret) => {\n requestAnimationFrame(() => {\n setCaret(newCaret)\n inputSelection.default.setCaretPosition(inputRef.current, newCaret)\n })\n }, [])\n\n const updateHelper = useCallback(\n (str, caretPos, helperOptions) => {\n const slug = getMatch(str, caretPos, helperOptions)\n\n if (slug) {\n const caretCoordinates = getCaretCoordinates(inputRef.current, caretPos)\n const rect = inputRef.current.getBoundingClientRect()\n\n const newTop = caretCoordinates.top + rect.top - inputRef.current.scrollTop\n const newLeft = Math.min(\n caretCoordinates.left + rect.left - inputRef.current.scrollLeft,\n window.innerWidth - OPTION_LIST_MIN_WIDTH,\n )\n\n if (\n slug.matchLength >= minChars &&\n (slug.options.length > 1 ||\n (slug.options.length === 1 &&\n (slug.options[0].length !== slug.matchLength || slug.options[0].length === 1)))\n ) {\n setHelperVisible(true)\n setTop(newTop)\n setLeft(newLeft)\n setTriggerChar(slug.trigger)\n setMatchLength(slug.matchLength)\n setMatchStart(slug.matchStart)\n setCurrentOptions(slug.options)\n } else {\n if (!requestOnlyIfNoOptions || !slug.options.length) {\n onRequestOptions(str.substr(slug.matchStart, slug.matchLength))\n }\n resetHelper()\n }\n updateCaretPosition(caretPos)\n } else {\n resetHelper()\n }\n },\n [getMatch, minChars, requestOnlyIfNoOptions, onRequestOptions, updateCaretPosition],\n )\n\n const resetHelper = useCallback(() => {\n setHelperVisible(false)\n setSelection(0)\n }, [])\n\n const handleChange = useCallback(\n (e) => {\n const str = e.target.value\n const caretPos = inputSelection.default.default(e.target).end\n\n if (!str.length) {\n setHelperVisible(false)\n }\n\n recentValue.current = str\n\n if (!str.length || !caretPos) {\n return onChange(e.target.value)\n }\n\n // Space removers logic\n if (enableSpaceRemovers.current && spaceRemovers.length && str.length > 2 && spacer.length) {\n for (let i = 0; i < Math.max(recentValue.current.length, str.length); ++i) {\n if (recentValue.current[i] !== str[i]) {\n if (\n i >= 2 &&\n str[i - 1] === spacer &&\n spaceRemovers.indexOf(str[i - 2]) === -1 &&\n spaceRemovers.indexOf(str[i]) !== -1 &&\n getMatch(str.substring(0, i - 2), caretPos - 3, options)\n ) {\n const newValue = `${str.slice(0, i - 1)}${str.slice(i, i + 1)}${str.slice(i - 1, i)}${str.slice(i + 1)}`\n\n updateCaretPosition(i + 1)\n inputRef.current.value = newValue\n\n if (!propValue) {\n setValue(newValue)\n }\n\n return onChange(newValue)\n }\n\n break\n }\n }\n\n enableSpaceRemovers.current = false\n }\n\n updateHelper(str, caretPos, options)\n\n if (!propValue) {\n setValue(e.target.value)\n }\n\n return onChange(e.target.value)\n },\n [\n onChange,\n propValue,\n spaceRemovers,\n spacer,\n options,\n updateCaretPosition,\n updateHelper,\n getMatch,\n ],\n )\n\n const handleBlur = useCallback(\n (e) => {\n resetHelper()\n onBlur(e)\n },\n [onBlur, resetHelper],\n )\n\n const handleSelection = useCallback(\n (idx) => {\n const slug = currentOptions[idx]\n const value = recentValue.current\n const part1 =\n triggerChar.length === 0 ? '' : value.substring(0, matchStart - triggerChar.length)\n const part2 = value.substring(matchStart + matchLength)\n\n const event = { target: inputRef.current }\n const changedStr = changeOnSelect(triggerChar, slug)\n\n event.target.value = `${part1}${changedStr}${spacer}${part2}`\n handleChange(event)\n onSelect(event.target.value)\n\n resetHelper()\n\n const advanceCaretDistance = part1.length + changedStr.length + (spacer ? spacer.length : 1)\n updateCaretPosition(advanceCaretDistance)\n\n enableSpaceRemovers.current = true\n },\n [\n currentOptions,\n triggerChar,\n matchStart,\n matchLength,\n changeOnSelect,\n spacer,\n handleChange,\n onSelect,\n resetHelper,\n updateCaretPosition,\n ],\n )\n\n const handleKeyDown = useCallback(\n (event) => {\n const optionsCount =\n maxOptions > 0 ? Math.min(currentOptions.length, maxOptions) : currentOptions.length\n\n if (helperVisible) {\n switch (event.keyCode) {\n case KEY_ESCAPE:\n event.preventDefault()\n resetHelper()\n break\n case KEY_UP:\n event.preventDefault()\n if (optionsCount > 0) {\n setSelection(\n (prevSelection) => Math.max(0, optionsCount + prevSelection - 1) % optionsCount,\n )\n }\n break\n case KEY_DOWN:\n event.preventDefault()\n if (optionsCount > 0) {\n setSelection((prevSelection) => (prevSelection + 1) % optionsCount)\n }\n break\n case KEY_ENTER:\n case KEY_RETURN:\n if (!passThroughEnter) {\n event.preventDefault()\n }\n handleSelection(selection)\n break\n case KEY_TAB:\n if (!passThroughTab) {\n event.preventDefault()\n }\n handleSelection(selection)\n break\n default:\n onKeyDown(event)\n break\n }\n } else {\n onKeyDown(event)\n }\n },\n [\n helperVisible,\n currentOptions,\n maxOptions,\n passThroughEnter,\n passThroughTab,\n selection,\n onKeyDown,\n resetHelper,\n handleSelection,\n ],\n )\n\n const renderAutocompleteList = useCallback(() => {\n if (!helperVisible || currentOptions.length === 0) {\n return null\n }\n\n if (selection >= currentOptions.length) {\n setSelection(0)\n return null\n }\n\n const optionNumber = maxOptions === 0 ? currentOptions.length : maxOptions\n\n const helperOptions = currentOptions.slice(0, optionNumber).map((val, idx) => {\n let [helper, value] = val.split(' ')\n if (!value) {\n helper = undefined\n value = val\n }\n\n const renderHighlightedText = (text) => {\n const highlightStart = text\n .toLowerCase()\n .indexOf(recentValue.current.substr(matchStart, matchLength).toLowerCase())\n\n const highlightedText = text.substr(highlightStart, matchLength)\n\n if (!val.startsWith(text)) {\n return text\n }\n\n return (\n <React.Fragment>\n {text.slice(0, highlightStart)}\n <strong>{highlightedText}</strong>\n {text.slice(highlightStart + matchLength)}\n </React.Fragment>\n )\n }\n\n return (\n <li\n className={idx === selection ? styles.active : null}\n key={val}\n onClick={() => {\n handleSelection(idx)\n }}\n onMouseDown={(e) => {\n e.preventDefault()\n }}\n onMouseEnter={() => {\n setSelection(idx)\n }}\n ref={idx === selection ? currentRef : null}\n role=\"presentation\"\n >\n {helper && <code className={styles.helper}>{renderHighlightedText(helper)}</code>}\n {renderHighlightedText(value)}\n </li>\n )\n })\n\n const maxWidth = window.innerWidth - left - offsetX - 5\n const maxHeight = window.innerHeight - top - offsetY - 5\n\n return (\n <ul\n className={styles.autocompleteInput + ' ' + 'popup__content'}\n ref={parentRef}\n style={{\n left: left + offsetX,\n maxHeight,\n maxWidth,\n opacity: 'initial',\n pointerEvents: 'initial',\n position: 'fixed',\n top: top + offsetY,\n visibility: 'initial',\n }}\n >\n {helperOptions}\n </ul>\n )\n }, [\n helperVisible,\n currentOptions,\n selection,\n maxOptions,\n left,\n top,\n offsetX,\n offsetY,\n matchStart,\n matchLength,\n handleSelection,\n ])\n\n return (\n <div className=\"popup\">\n <textarea\n className=\"textarea-outer\"\n disabled={disabled}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={inputRef}\n rows={6}\n style={{ overflow: 'auto' }}\n value={propValue !== null ? propValue : value || defaultValue}\n {...rest}\n />\n {renderAutocompleteList()}\n </div>\n )\n}\n"],"names":["inputSelection","isEqual","React","useCallback","useEffect","useRef","useState","scrollIntoView","getCaretCoordinates","styles","KEY_UP","KEY_DOWN","KEY_RETURN","KEY_ENTER","KEY_ESCAPE","KEY_TAB","OPTION_LIST_MIN_WIDTH","AutocompleteTextField","props","changeOnSelect","trigger","slug","defaultValue","disabled","matchAny","maxOptions","minChars","offsetX","offsetY","onBlur","e","onChange","onKeyDown","onRequestOptions","onSelect","options","passThroughEnter","passThroughTab","regex","requestOnlyIfNoOptions","spaceRemovers","spacer","triggerCaseInsensitive","triggerMatchWholeWord","value","propValue","rest","helperVisible","setHelperVisible","left","setLeft","top","setTop","triggerChar","setTriggerChar","matchLength","setMatchLength","matchStart","setMatchStart","selection","setSelection","setValue","caret","setCaret","currentOptions","setCurrentOptions","recentValue","enableSpaceRemovers","inputRef","currentRef","parentRef","window","addEventListener","handleResize","removeEventListener","updateHelper","current","boundary","scrollMode","isTrigger","triggerStr","str","i","length","charAt","match","substr","toLowerCase","arrayTriggerMatch","triggers","re","map","triggerLength","triggerMatch","getMatch","providedOptions","RegExp","Array","isArray","sort","providedOptionsObject","reduce","acc","triggersMatch","slugData","triggersIndex","substring","triggerIdx","triggerOptions","matchedSlug","filteredOptions","filter","idx","indexOf","currTrigger","updateCaretPosition","newCaret","requestAnimationFrame","default","setCaretPosition","caretPos","helperOptions","caretCoordinates","rect","getBoundingClientRect","newTop","scrollTop","newLeft","Math","min","scrollLeft","innerWidth","resetHelper","handleChange","target","end","max","newValue","slice","handleBlur","handleSelection","part1","part2","event","changedStr","advanceCaretDistance","handleKeyDown","optionsCount","keyCode","preventDefault","prevSelection","renderAutocompleteList","optionNumber","val","helper","split","undefined","renderHighlightedText","text","highlightStart","highlightedText","startsWith","Fragment","strong","li","className","active","onClick","onMouseDown","onMouseEnter","ref","role","code","maxWidth","maxHeight","innerHeight","ul","autocompleteInput","style","opacity","pointerEvents","position","visibility","div","textarea","rows","overflow"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import Handlebars from 'handlebars';
1
+ import Handlebars from 'handlebars/dist/handlebars.js';
2
2
  import asyncHelpers from 'handlebars-async-helpers';
3
3
  export const asyncHandlebars = asyncHelpers(Handlebars);
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/libraries/handlebars/asyncHandlebars.ts"],"sourcesContent":["import Handlebars from 'handlebars'\nimport asyncHelpers from 'handlebars-async-helpers'\n\nexport const asyncHandlebars = asyncHelpers(Handlebars)\n"],"names":["Handlebars","asyncHelpers","asyncHandlebars"],"mappings":"AAAA,OAAOA,gBAAgB,aAAY;AACnC,OAAOC,kBAAkB,2BAA0B;AAEnD,OAAO,MAAMC,kBAAkBD,aAAaD,YAAW"}
1
+ {"version":3,"sources":["../../../src/libraries/handlebars/asyncHandlebars.ts"],"sourcesContent":["import Handlebars from 'handlebars/dist/handlebars.js'\nimport asyncHelpers from 'handlebars-async-helpers'\n\nexport const asyncHandlebars = asyncHelpers(Handlebars)\n"],"names":["Handlebars","asyncHelpers","asyncHandlebars"],"mappings":"AAAA,OAAOA,gBAAgB,gCAA+B;AACtD,OAAOC,kBAAkB,2BAA0B;AAEnD,OAAO,MAAMC,kBAAkBD,aAAaD,YAAW"}