@ai-stack/payloadcms 3.0.0-beta.65.2 → 3.0.0-beta.95.1

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 (132) hide show
  1. package/dist/ai/models/anthropic/index.d.ts.map +1 -1
  2. package/dist/ai/models/anthropic/index.js +3 -3
  3. package/dist/ai/models/anthropic/index.js.map +1 -1
  4. package/dist/ai/models/elevenLabs/index.d.ts.map +1 -1
  5. package/dist/ai/models/elevenLabs/index.js +1 -11
  6. package/dist/ai/models/elevenLabs/index.js.map +1 -1
  7. package/dist/ai/models/index.js +2 -2
  8. package/dist/ai/models/index.js.map +1 -1
  9. package/dist/ai/models/openai/index.d.ts.map +1 -1
  10. package/dist/ai/models/openai/index.js +3 -2
  11. package/dist/ai/models/openai/index.js.map +1 -1
  12. package/dist/ai/prompts.d.ts +1 -0
  13. package/dist/ai/prompts.d.ts.map +1 -1
  14. package/dist/ai/prompts.js +5 -2
  15. package/dist/ai/prompts.js.map +1 -1
  16. package/dist/ai/{editor → schemas}/lexical.schema.d.ts +2 -2
  17. package/dist/ai/schemas/lexical.schema.d.ts.map +1 -0
  18. package/dist/ai/schemas/lexical.schema.js.map +1 -0
  19. package/dist/collections/Instructions.d.ts.map +1 -1
  20. package/dist/collections/Instructions.js +9 -12
  21. package/dist/collections/Instructions.js.map +1 -1
  22. package/dist/endpoints/index.d.ts +1 -1
  23. package/dist/endpoints/index.d.ts.map +1 -1
  24. package/dist/endpoints/index.js +17 -50
  25. package/dist/endpoints/index.js.map +1 -1
  26. package/dist/exports/client.d.ts +4 -0
  27. package/dist/exports/client.d.ts.map +1 -0
  28. package/dist/exports/client.js +5 -0
  29. package/dist/exports/client.js.map +1 -0
  30. package/dist/exports/fields.d.ts +2 -1
  31. package/dist/exports/fields.d.ts.map +1 -1
  32. package/dist/exports/fields.js +2 -0
  33. package/dist/exports/fields.js.map +1 -1
  34. package/dist/fields/DescriptionField/DescriptionField.d.ts +1 -2
  35. package/dist/fields/DescriptionField/DescriptionField.d.ts.map +1 -1
  36. package/dist/fields/DescriptionField/DescriptionField.js +2 -1
  37. package/dist/fields/DescriptionField/DescriptionField.js.map +1 -1
  38. package/dist/fields/DescriptionField/DescriptionFieldComponent.d.ts +1 -2
  39. package/dist/fields/DescriptionField/DescriptionFieldComponent.d.ts.map +1 -1
  40. package/dist/fields/DescriptionField/DescriptionFieldComponent.js +2 -1
  41. package/dist/fields/DescriptionField/DescriptionFieldComponent.js.map +1 -1
  42. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js +1 -1
  43. package/dist/fields/LexicalEditor/ActionsFeatureComponent.js.map +1 -1
  44. package/dist/fields/LexicalEditor/feature.server.d.ts +1 -7
  45. package/dist/fields/LexicalEditor/feature.server.d.ts.map +1 -1
  46. package/dist/fields/LexicalEditor/feature.server.js +3 -11
  47. package/dist/fields/LexicalEditor/feature.server.js.map +1 -1
  48. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +1 -1
  49. package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -1
  50. package/dist/fields/PromptEditorField/PromptEditorField.js +32 -51
  51. package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
  52. package/dist/fields/SelectField/SelectField.d.ts +9 -2
  53. package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
  54. package/dist/fields/SelectField/SelectField.js +26 -23
  55. package/dist/fields/SelectField/SelectField.js.map +1 -1
  56. package/dist/index.d.ts +2 -2
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +3 -3
  59. package/dist/index.js.map +1 -1
  60. package/dist/init.d.ts.map +1 -1
  61. package/dist/init.js +14 -2
  62. package/dist/init.js.map +1 -1
  63. package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts +8 -0
  64. package/dist/libraries/autocomplete/AutocompleteTextArea.d.ts.map +1 -0
  65. package/dist/libraries/autocomplete/AutocompleteTextArea.js +435 -0
  66. package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +1 -0
  67. package/dist/libraries/autocomplete/AutocompleteTextArea.module.scss +35 -0
  68. package/dist/libraries/handlebars/asyncHandlebars.d.ts +2 -0
  69. package/dist/libraries/handlebars/asyncHandlebars.d.ts.map +1 -0
  70. package/dist/libraries/handlebars/asyncHandlebars.js +5 -0
  71. package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -0
  72. package/dist/libraries/handlebars/helpers.d.ts +2 -0
  73. package/dist/libraries/handlebars/helpers.d.ts.map +1 -0
  74. package/dist/libraries/handlebars/helpers.js +22 -0
  75. package/dist/libraries/handlebars/helpers.js.map +1 -0
  76. package/dist/libraries/handlebars/helpersMap.d.ts +12 -0
  77. package/dist/libraries/handlebars/helpersMap.d.ts.map +1 -0
  78. package/dist/libraries/handlebars/helpersMap.js +13 -0
  79. package/dist/libraries/handlebars/helpersMap.js.map +1 -0
  80. package/dist/libraries/handlebars/replacePlaceholders.d.ts +2 -0
  81. package/dist/libraries/handlebars/replacePlaceholders.d.ts.map +1 -0
  82. package/dist/libraries/handlebars/replacePlaceholders.js +8 -0
  83. package/dist/libraries/handlebars/replacePlaceholders.js.map +1 -0
  84. package/dist/plugin.d.ts.map +1 -1
  85. package/dist/plugin.js +6 -3
  86. package/dist/plugin.js.map +1 -1
  87. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +1 -3
  88. package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
  89. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
  90. package/dist/providers/InstructionsProvider/useInstructions.d.ts +4 -0
  91. package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +1 -0
  92. package/dist/providers/InstructionsProvider/useInstructions.js +34 -0
  93. package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -0
  94. package/dist/types.d.ts +1 -1
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js.map +1 -1
  97. package/dist/ui/Actions/Actions.js +32 -39
  98. package/dist/ui/Actions/Actions.js.map +1 -1
  99. package/dist/ui/Actions/hooks/useGenerate.d.ts.map +1 -1
  100. package/dist/ui/Actions/hooks/useGenerate.js +4 -4
  101. package/dist/ui/Actions/hooks/useGenerate.js.map +1 -1
  102. package/dist/utilities/getFieldBySchemaPath.d.ts +2 -2
  103. package/dist/utilities/getFieldBySchemaPath.d.ts.map +1 -1
  104. package/dist/utilities/getFieldBySchemaPath.js.map +1 -1
  105. package/dist/utilities/getFieldInfo.d.ts +3 -0
  106. package/dist/utilities/getFieldInfo.d.ts.map +1 -0
  107. package/dist/utilities/getFieldInfo.js +14 -0
  108. package/dist/utilities/getFieldInfo.js.map +1 -0
  109. package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
  110. package/dist/utilities/updateFieldsConfig.js +1 -5
  111. package/dist/utilities/updateFieldsConfig.js.map +1 -1
  112. package/package.json +59 -38
  113. package/dist/ai/editor/lexical.schema.d.ts.map +0 -1
  114. package/dist/ai/editor/lexical.schema.js.map +0 -1
  115. package/dist/ai/models/style.d.ts +0 -2
  116. package/dist/ai/models/style.d.ts.map +0 -1
  117. package/dist/ai/models/style.js +0 -31
  118. package/dist/ai/models/style.js.map +0 -1
  119. package/dist/providers/InstructionsProvider/hook.d.ts +0 -9
  120. package/dist/providers/InstructionsProvider/hook.d.ts.map +0 -1
  121. package/dist/providers/InstructionsProvider/hook.js +0 -17
  122. package/dist/providers/InstructionsProvider/hook.js.map +0 -1
  123. package/dist/providers/InstructionsProvider/index.d.ts +0 -5
  124. package/dist/providers/InstructionsProvider/index.d.ts.map +0 -1
  125. package/dist/providers/InstructionsProvider/index.js +0 -10
  126. package/dist/providers/InstructionsProvider/index.js.map +0 -1
  127. package/dist/ui/Floatype/Floatype.d.ts +0 -21
  128. package/dist/ui/Floatype/Floatype.d.ts.map +0 -1
  129. package/dist/ui/Floatype/Floatype.js +0 -245
  130. package/dist/ui/Floatype/Floatype.js.map +0 -1
  131. package/dist/ui/Floatype/floatype.module.css +0 -25
  132. /package/dist/ai/{editor → schemas}/lexical.schema.js +0 -0
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Credit: Yury Dymov
3
+ * Github: https://github.com/yury-dymov/react-autocomplete-input
4
+ *
5
+ * Modified to only be use for PromptEditorField
6
+ */
7
+ export declare const AutocompleteTextField: (props: any) => import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=AutocompleteTextArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutocompleteTextArea.d.ts","sourceRoot":"","sources":["../../../src/libraries/autocomplete/AutocompleteTextArea.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,eAAO,MAAM,qBAAqB,yDAkgBjC,CAAA"}
@@ -0,0 +1,435 @@
1
+ /**
2
+ * Credit: Yury Dymov
3
+ * Github: https://github.com/yury-dymov/react-autocomplete-input
4
+ *
5
+ * Modified to only be use for PromptEditorField
6
+ */ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
7
+ import * as inputSelection from 'get-input-selection';
8
+ import isEqual from 'lodash.isequal';
9
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
10
+ import scrollIntoView from 'scroll-into-view-if-needed';
11
+ import getCaretCoordinates from 'textarea-caret';
12
+ import styles from './AutocompleteTextArea.module.scss';
13
+ const KEY_UP = 38;
14
+ const KEY_DOWN = 40;
15
+ const KEY_RETURN = 13;
16
+ const KEY_ENTER = 14;
17
+ const KEY_ESCAPE = 27;
18
+ const KEY_TAB = 9;
19
+ const OPTION_LIST_MIN_WIDTH = 100;
20
+ export const AutocompleteTextField = (props)=>{
21
+ const { changeOnSelect = (trigger, slug)=>trigger + slug, defaultValue = '', disabled = false, matchAny = false, maxOptions = 10, minChars = 0, offsetX = 0, offsetY = 0, onBlur = (e)=>{}, onChange = (e)=>{}, onKeyDown = (e)=>{}, onRequestOptions = (e)=>{}, onSelect = (e)=>{}, options = [], passThroughEnter = false, passThroughTab = true, regex = '^[A-Za-z0-9\\-_]+$', requestOnlyIfNoOptions = true, spaceRemovers = [
22
+ ',',
23
+ '.',
24
+ '!',
25
+ '?'
26
+ ], spacer = ' ', trigger = '@', triggerCaseInsensitive = false, triggerMatchWholeWord = false, value: propValue = null, ...rest } = props;
27
+ const [helperVisible, setHelperVisible] = useState(false);
28
+ const [left, setLeft] = useState(0);
29
+ const [top, setTop] = useState(0);
30
+ const [triggerChar, setTriggerChar] = useState(null);
31
+ const [matchLength, setMatchLength] = useState(0);
32
+ const [matchStart, setMatchStart] = useState(0);
33
+ const [selection, setSelection] = useState(0);
34
+ const [value, setValue] = useState(null);
35
+ const [caret, setCaret] = useState(0);
36
+ const [currentOptions, setCurrentOptions] = useState([]);
37
+ const recentValue = useRef(defaultValue);
38
+ const enableSpaceRemovers = useRef(false);
39
+ const inputRef = useRef(null);
40
+ const currentRef = useRef(null);
41
+ const parentRef = useRef(null);
42
+ useEffect(()=>{
43
+ window.addEventListener('resize', handleResize);
44
+ window.addEventListener('scroll', handleResize);
45
+ return ()=>{
46
+ window.removeEventListener('resize', handleResize);
47
+ window.removeEventListener('scroll', handleResize);
48
+ };
49
+ }, []);
50
+ useEffect(()=>{
51
+ if (!isEqual(options, currentOptions)) {
52
+ updateHelper(recentValue.current, caret, options);
53
+ }
54
+ }, [
55
+ options,
56
+ caret
57
+ ]);
58
+ useEffect(()=>{
59
+ if (helperVisible && currentRef.current) {
60
+ scrollIntoView(currentRef.current, {
61
+ boundary: parentRef.current,
62
+ scrollMode: 'if-needed'
63
+ });
64
+ }
65
+ }, [
66
+ helperVisible,
67
+ selection
68
+ ]);
69
+ const handleResize = useCallback(()=>{
70
+ setHelperVisible(false);
71
+ }, []);
72
+ const isTrigger = useCallback((triggerStr, str, i)=>{
73
+ if (!triggerStr || !triggerStr.length) {
74
+ return true;
75
+ }
76
+ if (triggerMatchWholeWord && i > 0 && str.charAt(i - 1).match(/\w/)) {
77
+ return false;
78
+ }
79
+ if (str.substr(i, triggerStr.length) === triggerStr || triggerCaseInsensitive && str.substr(i, triggerStr.length).toLowerCase() === triggerStr.toLowerCase()) {
80
+ return true;
81
+ }
82
+ return false;
83
+ }, [
84
+ triggerMatchWholeWord,
85
+ triggerCaseInsensitive
86
+ ]);
87
+ const arrayTriggerMatch = useCallback((triggers, re)=>{
88
+ return triggers.map((trigger)=>({
89
+ triggerLength: trigger.length,
90
+ triggerMatch: trigger.match(re),
91
+ triggerStr: trigger
92
+ }));
93
+ }, []);
94
+ const getMatch = useCallback((str, caret, providedOptions)=>{
95
+ const re = new RegExp(regex);
96
+ const triggers = Array.isArray(trigger) ? trigger : [
97
+ trigger
98
+ ];
99
+ triggers.sort();
100
+ const providedOptionsObject = Array.isArray(providedOptions) ? triggers.reduce((acc, triggerStr)=>({
101
+ ...acc,
102
+ [triggerStr]: providedOptions
103
+ }), {}) : providedOptions;
104
+ const triggersMatch = arrayTriggerMatch(triggers, re);
105
+ let slugData = null;
106
+ for(let triggersIndex = 0; triggersIndex < triggersMatch.length; triggersIndex++){
107
+ const { triggerLength, triggerMatch, triggerStr } = triggersMatch[triggersIndex];
108
+ for(let i = caret - 1; i >= 0; --i){
109
+ const substr = str.substring(i, caret);
110
+ const match = substr.match(re);
111
+ let matchStart = -1;
112
+ if (triggerLength > 0) {
113
+ const triggerIdx = triggerMatch ? i : i - triggerLength + 1;
114
+ if (triggerIdx < 0) {
115
+ break;
116
+ }
117
+ if (isTrigger(triggerStr, str, triggerIdx)) {
118
+ matchStart = triggerIdx + triggerLength;
119
+ }
120
+ if (!match && matchStart < 0) {
121
+ break;
122
+ }
123
+ } else {
124
+ if (match && i > 0) {
125
+ continue;
126
+ }
127
+ matchStart = i === 0 && match ? 0 : i + 1;
128
+ if (caret - matchStart === 0) {
129
+ break;
130
+ }
131
+ }
132
+ if (matchStart >= 0) {
133
+ const triggerOptions = providedOptionsObject[triggerStr];
134
+ if (triggerOptions == null) {
135
+ continue;
136
+ }
137
+ const matchedSlug = str.substring(matchStart, caret);
138
+ const filteredOptions = triggerOptions.filter((slug)=>{
139
+ const idx = slug.toLowerCase().indexOf(matchedSlug.toLowerCase());
140
+ return idx !== -1 && (matchAny || idx === 0);
141
+ });
142
+ const currTrigger = triggerStr;
143
+ const matchLength = matchedSlug.length;
144
+ slugData = {
145
+ matchLength,
146
+ matchStart,
147
+ options: filteredOptions,
148
+ trigger: currTrigger
149
+ };
150
+ }
151
+ }
152
+ }
153
+ return slugData;
154
+ }, [
155
+ regex,
156
+ trigger,
157
+ arrayTriggerMatch,
158
+ isTrigger,
159
+ matchAny
160
+ ]);
161
+ const updateCaretPosition = useCallback((newCaret)=>{
162
+ setCaret(newCaret);
163
+ inputSelection.default.setCaretPosition(inputRef.current, newCaret);
164
+ }, []);
165
+ const updateHelper = useCallback((str, caretPos, helperOptions)=>{
166
+ const slug = getMatch(str, caretPos, helperOptions);
167
+ if (slug) {
168
+ const caretCoordinates = getCaretCoordinates(inputRef.current, caretPos);
169
+ const rect = inputRef.current.getBoundingClientRect();
170
+ const newTop = caretCoordinates.top + rect.top - inputRef.current.scrollTop;
171
+ const newLeft = Math.min(caretCoordinates.left + rect.left - inputRef.current.scrollLeft, window.innerWidth - OPTION_LIST_MIN_WIDTH);
172
+ if (slug.matchLength >= minChars && (slug.options.length > 1 || slug.options.length === 1 && (slug.options[0].length !== slug.matchLength || slug.options[0].length === 1))) {
173
+ setHelperVisible(true);
174
+ setTop(newTop);
175
+ setLeft(newLeft);
176
+ setTriggerChar(slug.trigger);
177
+ setMatchLength(slug.matchLength);
178
+ setMatchStart(slug.matchStart);
179
+ setCurrentOptions(slug.options);
180
+ } else {
181
+ if (!requestOnlyIfNoOptions || !slug.options.length) {
182
+ onRequestOptions(str.substr(slug.matchStart, slug.matchLength));
183
+ }
184
+ resetHelper();
185
+ }
186
+ } else {
187
+ resetHelper();
188
+ }
189
+ }, [
190
+ getMatch,
191
+ minChars,
192
+ requestOnlyIfNoOptions,
193
+ onRequestOptions
194
+ ]);
195
+ const resetHelper = useCallback(()=>{
196
+ setHelperVisible(false);
197
+ setSelection(0);
198
+ }, []);
199
+ const handleChange = useCallback((e)=>{
200
+ const str = e.target.value;
201
+ const caretPos = inputSelection.default.default(e.target).end;
202
+ if (!str.length) {
203
+ setHelperVisible(false);
204
+ }
205
+ recentValue.current = str;
206
+ setCaret(caretPos);
207
+ setValue(e.target.value);
208
+ if (!str.length || !caretPos) {
209
+ return onChange(e.target.value);
210
+ }
211
+ // Space removers logic
212
+ if (enableSpaceRemovers.current && spaceRemovers.length && str.length > 2 && spacer.length) {
213
+ for(let i = 0; i < Math.max(recentValue.current.length, str.length); ++i){
214
+ if (recentValue.current[i] !== str[i]) {
215
+ if (i >= 2 && str[i - 1] === spacer && spaceRemovers.indexOf(str[i - 2]) === -1 && spaceRemovers.indexOf(str[i]) !== -1 && getMatch(str.substring(0, i - 2), caretPos - 3, options)) {
216
+ const newValue = `${str.slice(0, i - 1)}${str.slice(i, i + 1)}${str.slice(i - 1, i)}${str.slice(i + 1)}`;
217
+ updateCaretPosition(i + 1);
218
+ inputRef.current.value = newValue;
219
+ if (!propValue) {
220
+ setValue(newValue);
221
+ }
222
+ return onChange(newValue);
223
+ }
224
+ break;
225
+ }
226
+ }
227
+ enableSpaceRemovers.current = false;
228
+ }
229
+ updateHelper(str, caretPos, options);
230
+ if (!propValue) {
231
+ setValue(e.target.value);
232
+ }
233
+ return onChange(e.target.value);
234
+ }, [
235
+ onChange,
236
+ propValue,
237
+ spaceRemovers,
238
+ spacer,
239
+ options,
240
+ updateCaretPosition,
241
+ updateHelper,
242
+ getMatch
243
+ ]);
244
+ const handleBlur = useCallback((e)=>{
245
+ resetHelper();
246
+ onBlur(e);
247
+ }, [
248
+ onBlur,
249
+ resetHelper
250
+ ]);
251
+ const handleSelection = useCallback((idx)=>{
252
+ const slug = currentOptions[idx];
253
+ const value = recentValue.current;
254
+ const part1 = triggerChar.length === 0 ? '' : value.substring(0, matchStart - triggerChar.length);
255
+ const part2 = value.substring(matchStart + matchLength);
256
+ const event = {
257
+ target: inputRef.current
258
+ };
259
+ const changedStr = changeOnSelect(triggerChar, slug);
260
+ event.target.value = `${part1}${changedStr}${spacer}${part2}`;
261
+ handleChange(event);
262
+ onSelect(event.target.value);
263
+ resetHelper();
264
+ const advanceCaretDistance = part1.length + changedStr.length + (spacer ? spacer.length : 1);
265
+ updateCaretPosition(advanceCaretDistance);
266
+ enableSpaceRemovers.current = true;
267
+ }, [
268
+ currentOptions,
269
+ triggerChar,
270
+ matchStart,
271
+ matchLength,
272
+ changeOnSelect,
273
+ spacer,
274
+ handleChange,
275
+ onSelect,
276
+ resetHelper,
277
+ updateCaretPosition
278
+ ]);
279
+ const handleKeyDown = useCallback((event)=>{
280
+ const optionsCount = maxOptions > 0 ? Math.min(currentOptions.length, maxOptions) : currentOptions.length;
281
+ if (helperVisible) {
282
+ switch(event.keyCode){
283
+ case KEY_ESCAPE:
284
+ event.preventDefault();
285
+ resetHelper();
286
+ break;
287
+ case KEY_UP:
288
+ event.preventDefault();
289
+ if (optionsCount > 0) {
290
+ setSelection((prevSelection)=>Math.max(0, optionsCount + prevSelection - 1) % optionsCount);
291
+ }
292
+ break;
293
+ case KEY_DOWN:
294
+ event.preventDefault();
295
+ if (optionsCount > 0) {
296
+ setSelection((prevSelection)=>(prevSelection + 1) % optionsCount);
297
+ }
298
+ break;
299
+ case KEY_ENTER:
300
+ case KEY_RETURN:
301
+ if (!passThroughEnter) {
302
+ event.preventDefault();
303
+ }
304
+ handleSelection(selection);
305
+ break;
306
+ case KEY_TAB:
307
+ if (!passThroughTab) {
308
+ event.preventDefault();
309
+ }
310
+ handleSelection(selection);
311
+ break;
312
+ default:
313
+ onKeyDown(event);
314
+ break;
315
+ }
316
+ } else {
317
+ onKeyDown(event);
318
+ }
319
+ }, [
320
+ helperVisible,
321
+ currentOptions,
322
+ maxOptions,
323
+ passThroughEnter,
324
+ passThroughTab,
325
+ selection,
326
+ onKeyDown,
327
+ resetHelper,
328
+ handleSelection
329
+ ]);
330
+ const renderAutocompleteList = useCallback(()=>{
331
+ if (!helperVisible || currentOptions.length === 0) {
332
+ return null;
333
+ }
334
+ if (selection >= currentOptions.length) {
335
+ setSelection(0);
336
+ return null;
337
+ }
338
+ const optionNumber = maxOptions === 0 ? currentOptions.length : maxOptions;
339
+ const helperOptions = currentOptions.slice(0, optionNumber).map((val, idx)=>{
340
+ let [helper, value] = val.split(' ');
341
+ if (!value) {
342
+ helper = undefined;
343
+ value = val;
344
+ }
345
+ const renderHighlightedText = (text)=>{
346
+ const highlightStart = text.toLowerCase().indexOf(recentValue.current.substr(matchStart, matchLength).toLowerCase());
347
+ const highlightedText = text.substr(highlightStart, matchLength);
348
+ if (!val.startsWith(text)) {
349
+ return text;
350
+ }
351
+ return /*#__PURE__*/ _jsxs(_Fragment, {
352
+ children: [
353
+ text.slice(0, highlightStart),
354
+ /*#__PURE__*/ _jsx("strong", {
355
+ children: highlightedText
356
+ }),
357
+ text.slice(highlightStart + matchLength)
358
+ ]
359
+ });
360
+ };
361
+ return /*#__PURE__*/ _jsxs("li", {
362
+ className: idx === selection ? styles.active : null,
363
+ onClick: ()=>{
364
+ handleSelection(idx);
365
+ },
366
+ onMouseDown: (e)=>{
367
+ e.preventDefault();
368
+ },
369
+ onMouseEnter: ()=>{
370
+ setSelection(idx);
371
+ },
372
+ ref: idx === selection ? currentRef : null,
373
+ role: "presentation",
374
+ children: [
375
+ helper && /*#__PURE__*/ _jsx("code", {
376
+ className: styles.helper,
377
+ children: renderHighlightedText(helper)
378
+ }),
379
+ renderHighlightedText(value)
380
+ ]
381
+ }, val);
382
+ });
383
+ const maxWidth = window.innerWidth - left - offsetX - 5;
384
+ const maxHeight = window.innerHeight - top - offsetY - 5;
385
+ return /*#__PURE__*/ _jsx("ul", {
386
+ className: styles.autocompleteInput + ' ' + 'popup__content',
387
+ ref: parentRef,
388
+ style: {
389
+ left: left + offsetX,
390
+ maxHeight,
391
+ maxWidth,
392
+ opacity: 'initial',
393
+ pointerEvents: 'initial',
394
+ position: 'fixed',
395
+ top: top + offsetY,
396
+ visibility: 'initial'
397
+ },
398
+ children: helperOptions
399
+ });
400
+ }, [
401
+ helperVisible,
402
+ currentOptions,
403
+ selection,
404
+ maxOptions,
405
+ left,
406
+ top,
407
+ offsetX,
408
+ offsetY,
409
+ matchStart,
410
+ matchLength,
411
+ handleSelection
412
+ ]);
413
+ return /*#__PURE__*/ _jsxs("div", {
414
+ className: "popup",
415
+ children: [
416
+ /*#__PURE__*/ _jsx("textarea", {
417
+ className: "textarea-outer",
418
+ disabled: disabled,
419
+ onBlur: handleBlur,
420
+ onChange: handleChange,
421
+ onKeyDown: handleKeyDown,
422
+ ref: inputRef,
423
+ rows: 6,
424
+ style: {
425
+ overflow: 'auto'
426
+ },
427
+ value: propValue !== null ? propValue : value || defaultValue,
428
+ ...rest
429
+ }),
430
+ renderAutocompleteList()
431
+ ]
432
+ });
433
+ };
434
+
435
+ //# sourceMappingURL=AutocompleteTextArea.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,35 @@
1
+ .autocompleteInput {
2
+ background-clip: padding-box;
3
+ border: 1px solid rgba(0,0,0,0.15);
4
+ bottom: auto;
5
+ box-shadow: 0 6px 12px rgba(0,0,0,0.175);
6
+ display: block;
7
+ font-size: 14px;
8
+ list-style: none;
9
+ position: fixed;
10
+ text-align: left;
11
+ z-index: 20000;
12
+ overflow-y: auto;
13
+ margin-top: 1em;
14
+
15
+ padding: var(--popup-padding)
16
+ }
17
+
18
+ .autocompleteInput > li {
19
+ cursor: pointer;
20
+ padding: 4px 8px;
21
+ min-width: 110px;
22
+ color: var(--theme-elevation-800);
23
+ }
24
+
25
+ .autocompleteInput > li.active {
26
+ background-color: var(--theme-elevation-100);
27
+ }
28
+
29
+ .helper {
30
+ padding: 0.2em;
31
+ font-size: 12px;
32
+ margin-right: 0.5em;
33
+ background: rgb(0 255 111 / 10%);
34
+ border-radius: 4px;
35
+ }
@@ -0,0 +1,2 @@
1
+ export declare const asyncHandlebars: any;
2
+ //# sourceMappingURL=asyncHandlebars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncHandlebars.d.ts","sourceRoot":"","sources":["../../../src/libraries/handlebars/asyncHandlebars.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,KAA2B,CAAA"}
@@ -0,0 +1,5 @@
1
+ import Handlebars from 'handlebars';
2
+ import asyncHelpers from 'handlebars-async-helpers';
3
+ export const asyncHandlebars = asyncHelpers(Handlebars);
4
+
5
+ //# sourceMappingURL=asyncHandlebars.js.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export declare const registerEditorHelper: (payload: any, schemaPath: any) => void;
2
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/libraries/handlebars/helpers.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB,yCAqBhC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { getFieldInfo } from '../../utilities/getFieldInfo.js';
2
+ import { lexicalToHTML } from '../../utilities/lexicalToHTML.js';
3
+ import { asyncHandlebars } from './asyncHandlebars.js';
4
+ import { handlebarsHelpersMap } from './helpersMap.js';
5
+ export const registerEditorHelper = (payload, schemaPath)=>{
6
+ //TODO: add autocomplete ability using handlebars template on PromptEditorField and include custom helpers in dropdown
7
+ let fieldInfo = getFieldInfo(payload.collections, schemaPath);
8
+ const schemaPathChunks = schemaPath.split('.');
9
+ asyncHandlebars.registerHelper(handlebarsHelpersMap.toHTML.name, async function(content, options) {
10
+ const collectionSlug = schemaPathChunks[0];
11
+ const { ids } = options;
12
+ for (const id of ids){
13
+ //TODO: Find a better way to get schemaPath of defined field in prompt editor
14
+ const path = `${collectionSlug}.${id}`;
15
+ fieldInfo = getFieldInfo(payload.collections, path);
16
+ }
17
+ const html = await lexicalToHTML(content, fieldInfo.editor?.editorConfig);
18
+ return new asyncHandlebars.SafeString(html);
19
+ });
20
+ };
21
+
22
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/libraries/handlebars/helpers.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\n\nimport { getFieldInfo } from '../../utilities/getFieldInfo.js'\nimport { lexicalToHTML } from '../../utilities/lexicalToHTML.js'\nimport { asyncHandlebars } from './asyncHandlebars.js'\nimport { handlebarsHelpersMap } from './helpersMap.js'\n\nexport const registerEditorHelper = (payload, schemaPath) => {\n //TODO: add autocomplete ability using handlebars template on PromptEditorField and include custom helpers in dropdown\n\n let fieldInfo = getFieldInfo(payload.collections, schemaPath)\n const schemaPathChunks = schemaPath.split('.')\n\n asyncHandlebars.registerHelper(\n handlebarsHelpersMap.toHTML.name,\n async function (content: SerializedEditorState, options) {\n const collectionSlug = schemaPathChunks[0]\n const { ids } = options\n for (const id of ids) {\n //TODO: Find a better way to get schemaPath of defined field in prompt editor\n const path = `${collectionSlug}.${id}`\n fieldInfo = getFieldInfo(payload.collections, path)\n }\n\n const html = await lexicalToHTML(content, fieldInfo.editor?.editorConfig)\n return new asyncHandlebars.SafeString(html)\n },\n )\n}\n"],"names":["getFieldInfo","lexicalToHTML","asyncHandlebars","handlebarsHelpersMap","registerEditorHelper","payload","schemaPath","fieldInfo","collections","schemaPathChunks","split","registerHelper","toHTML","name","content","options","collectionSlug","ids","id","path","html","editor","editorConfig","SafeString"],"mappings":"AAEA,SAASA,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,aAAa,QAAQ,mCAAkC;AAChE,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,oBAAoB,QAAQ,kBAAiB;AAEtD,OAAO,MAAMC,uBAAuB,CAACC,SAASC;IAC5C,sHAAsH;IAEtH,IAAIC,YAAYP,aAAaK,QAAQG,WAAW,EAAEF;IAClD,MAAMG,mBAAmBH,WAAWI,KAAK,CAAC;IAE1CR,gBAAgBS,cAAc,CAC5BR,qBAAqBS,MAAM,CAACC,IAAI,EAChC,eAAgBC,OAA8B,EAAEC,OAAO;QACrD,MAAMC,iBAAiBP,gBAAgB,CAAC,EAAE;QAC1C,MAAM,EAAEQ,GAAG,EAAE,GAAGF;QAChB,KAAK,MAAMG,MAAMD,IAAK;YACpB,6EAA6E;YAC7E,MAAME,OAAO,CAAC,EAAEH,eAAe,CAAC,EAAEE,GAAG,CAAC;YACtCX,YAAYP,aAAaK,QAAQG,WAAW,EAAEW;QAChD;QAEA,MAAMC,OAAO,MAAMnB,cAAca,SAASP,UAAUc,MAAM,EAAEC;QAC5D,OAAO,IAAIpB,gBAAgBqB,UAAU,CAACH;IACxC;AAEJ,EAAC"}
@@ -0,0 +1,12 @@
1
+ type SupportedHelpers = 'toHTML' | 'toText';
2
+ interface HelperFieldConfig {
3
+ field: string;
4
+ name: string;
5
+ }
6
+ type HandlebarsHelpers = {
7
+ [K in SupportedHelpers]: HelperFieldConfig;
8
+ };
9
+ export declare const handlebarsHelpersMap: HandlebarsHelpers;
10
+ export declare const handlebarsHelpers: string[];
11
+ export {};
12
+ //# sourceMappingURL=helpersMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpersMap.d.ts","sourceRoot":"","sources":["../../../src/libraries/handlebars/helpersMap.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE3C,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,KAAK,iBAAiB,GAAG;KACtB,CAAC,IAAI,gBAAgB,GAAG,iBAAiB;CAC3C,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,iBASlC,CAAA;AAED,eAAO,MAAM,iBAAiB,UAAoC,CAAA"}
@@ -0,0 +1,13 @@
1
+ export const handlebarsHelpersMap = {
2
+ toHTML: {
3
+ name: 'toHTML',
4
+ field: 'richText'
5
+ },
6
+ toText: {
7
+ name: 'toText',
8
+ field: '-'
9
+ }
10
+ };
11
+ export const handlebarsHelpers = Object.keys(handlebarsHelpersMap);
12
+
13
+ //# sourceMappingURL=helpersMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/libraries/handlebars/helpersMap.ts"],"sourcesContent":["type SupportedHelpers = 'toHTML' | 'toText'\n\ninterface HelperFieldConfig {\n field: string\n name: string\n}\n\ntype HandlebarsHelpers = {\n [K in SupportedHelpers]: HelperFieldConfig\n}\n\nexport const handlebarsHelpersMap: HandlebarsHelpers = {\n toHTML: {\n name: 'toHTML',\n field: 'richText',\n },\n toText: {\n name: 'toText',\n field: '-',\n },\n}\n\nexport const handlebarsHelpers = Object.keys(handlebarsHelpersMap)\n"],"names":["handlebarsHelpersMap","toHTML","name","field","toText","handlebarsHelpers","Object","keys"],"mappings":"AAWA,OAAO,MAAMA,uBAA0C;IACrDC,QAAQ;QACNC,MAAM;QACNC,OAAO;IACT;IACAC,QAAQ;QACNF,MAAM;QACNC,OAAO;IACT;AACF,EAAC;AAED,OAAO,MAAME,oBAAoBC,OAAOC,IAAI,CAACP,sBAAqB"}
@@ -0,0 +1,2 @@
1
+ export declare const replacePlaceholders: (prompt: string, values: object) => any;
2
+ //# sourceMappingURL=replacePlaceholders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replacePlaceholders.d.ts","sourceRoot":"","sources":["../../../src/libraries/handlebars/replacePlaceholders.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,WAAY,MAAM,UAAU,MAAM,QAEjE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { asyncHandlebars } from './asyncHandlebars.js';
2
+ export const replacePlaceholders = (prompt, values)=>{
3
+ return asyncHandlebars.compile(prompt, {
4
+ trackIds: true
5
+ })(values);
6
+ };
7
+
8
+ //# sourceMappingURL=replacePlaceholders.js.map