payload-richtext-tiptap 0.0.159 → 0.0.160

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 (41) hide show
  1. package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.d.ts.map +1 -1
  2. package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js +27 -4
  3. package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js.map +1 -1
  4. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +3 -3
  5. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts.map +1 -1
  6. package/dist/src/fields/TiptapEditor/extensions/extension-kit.js +23 -21
  7. package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
  8. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.d.ts +4 -0
  9. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.d.ts.map +1 -0
  10. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.js +32 -0
  11. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.js.map +1 -0
  12. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.d.ts +4 -0
  13. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.d.ts.map +1 -0
  14. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.js +70 -0
  15. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.js.map +1 -0
  16. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.d.ts +10 -0
  17. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.d.ts.map +1 -0
  18. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.js +249 -0
  19. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.js.map +1 -0
  20. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.d.ts +15 -0
  21. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.d.ts.map +1 -0
  22. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.js +291 -0
  23. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.js.map +1 -0
  24. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.d.ts +7 -0
  25. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.d.ts.map +1 -0
  26. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.js +7 -0
  27. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.js.map +1 -0
  28. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.d.ts +28 -0
  29. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.d.ts.map +1 -0
  30. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.js +3 -0
  31. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.js.map +1 -0
  32. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.d.ts +6 -0
  33. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.d.ts.map +1 -0
  34. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.js +222 -0
  35. package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.js.map +1 -0
  36. package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.d.ts +2 -0
  37. package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.d.ts.map +1 -0
  38. package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.js +17 -0
  39. package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.js.map +1 -0
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,222 @@
1
+ import i18next from 'i18next';
2
+ import { Facebook, Heading1, Heading2, Heading3, Image, Instagram, Link, List, Minus, Music, Quote, Twitter, Video, Youtube } from 'lucide-react';
3
+ export const getDefaultSlashMenuItems = (editor)=>{
4
+ return [
5
+ {
6
+ title: i18next.t('heading1') || 'Heading 1',
7
+ subtext: i18next.t('heading1Desc') || 'High priority section title',
8
+ aliases: [
9
+ 'h1'
10
+ ],
11
+ badge: Heading1,
12
+ group: 'format',
13
+ onSelect: ({ editor })=>{
14
+ editor.chain().focus().setHeading({
15
+ level: 1
16
+ }).run();
17
+ }
18
+ },
19
+ {
20
+ title: i18next.t('heading2') || 'Heading 2',
21
+ subtext: i18next.t('heading2Desc') || 'Medium priority section title',
22
+ aliases: [
23
+ 'h2'
24
+ ],
25
+ badge: Heading2,
26
+ group: 'format',
27
+ onSelect: ({ editor })=>{
28
+ editor.chain().focus().setHeading({
29
+ level: 2
30
+ }).run();
31
+ }
32
+ },
33
+ {
34
+ title: i18next.t('heading3') || 'Heading 3',
35
+ subtext: i18next.t('heading3Desc') || 'Low priority section title',
36
+ aliases: [
37
+ 'h3'
38
+ ],
39
+ badge: Heading3,
40
+ group: 'format',
41
+ onSelect: ({ editor })=>{
42
+ editor.chain().focus().setHeading({
43
+ level: 3
44
+ }).run();
45
+ }
46
+ },
47
+ {
48
+ title: i18next.t('bulletList') || 'Bullet List',
49
+ subtext: i18next.t('bulletListDesc') || 'Unordered list of items',
50
+ aliases: [
51
+ 'ul'
52
+ ],
53
+ badge: List,
54
+ group: 'format',
55
+ onSelect: ({ editor })=>{
56
+ editor.chain().focus().toggleBulletList().run();
57
+ }
58
+ },
59
+ // Uncomment if you want a numbered list option
60
+ // {
61
+ // title: i18next.t("numberedList") || 'Numbered List',
62
+ // subtext: i18next.t("numberedListDesc") || "Ordered list of items",
63
+ // aliases: ["ol"],
64
+ // badge: ListOrdered,
65
+ // group: "format",
66
+ // onSelect: ({ editor }) => {
67
+ // editor.chain().focus().toggleOrderedList().run();
68
+ // },
69
+ // },
70
+ {
71
+ title: i18next.t('blockquote') || 'Blockquote',
72
+ subtext: i18next.t('blockquoteDesc') || 'Element for quoting',
73
+ aliases: [],
74
+ badge: Quote,
75
+ group: 'format',
76
+ onSelect: ({ editor })=>{
77
+ editor.chain().focus().setBlockquote().run();
78
+ }
79
+ },
80
+ {
81
+ title: i18next.t('image') || 'Image',
82
+ subtext: i18next.t('imageDesc') || 'Insert an image',
83
+ aliases: [
84
+ 'img'
85
+ ],
86
+ badge: Image,
87
+ group: 'insert',
88
+ onSelect: ({ editor })=>{
89
+ editor.chain().focus().setImageUpload('image').run();
90
+ }
91
+ },
92
+ {
93
+ title: i18next.t('video') || 'Video',
94
+ subtext: i18next.t('videoDesc') || 'Insert a video',
95
+ aliases: [
96
+ 'video'
97
+ ],
98
+ badge: Video,
99
+ group: 'insert',
100
+ onSelect: ({ editor })=>{
101
+ editor.chain().focus().setImageUpload('video').run();
102
+ }
103
+ },
104
+ {
105
+ title: i18next.t('horizontalRule') || 'HorizontalRule',
106
+ subtext: i18next.t('horizontalRuleDesc') || 'Insert a horizontal divider',
107
+ aliases: [
108
+ 'hr'
109
+ ],
110
+ badge: Minus,
111
+ group: 'insert',
112
+ onSelect: ({ editor })=>{
113
+ editor.chain().focus().setHorizontalRule().run();
114
+ }
115
+ },
116
+ {
117
+ title: i18next.t('embed') || 'Embed Link',
118
+ subtext: i18next.t('iframeDesc') || 'Insert an Embed link',
119
+ aliases: [
120
+ 'linkPreview'
121
+ ],
122
+ badge: Link,
123
+ group: 'embed',
124
+ onSelect: ({ editor })=>{
125
+ editor.chain().focus().setLinkPreview().run();
126
+ }
127
+ },
128
+ {
129
+ title: i18next.t('twitter') || 'Twitter',
130
+ subtext: i18next.t('twitterDesc') || 'Insert a Twitter embed',
131
+ aliases: [
132
+ 'x',
133
+ 'twitter'
134
+ ],
135
+ badge: Twitter,
136
+ group: 'embed',
137
+ onSelect: ({ editor })=>{
138
+ editor.chain().focus().insertTwitter().run();
139
+ }
140
+ },
141
+ {
142
+ title: i18next.t('facebook') || 'Facebook',
143
+ subtext: i18next.t('facebookDesc') || 'Insert a Facebook embed',
144
+ aliases: [
145
+ 'meta',
146
+ 'facebook'
147
+ ],
148
+ badge: Facebook,
149
+ group: 'embed',
150
+ onSelect: ({ editor })=>{
151
+ editor.chain().focus().insertFacebook().run();
152
+ }
153
+ },
154
+ {
155
+ title: i18next.t('instagram') || 'Instagram',
156
+ subtext: i18next.t('instagramDesc') || 'Insert a Instagram embed',
157
+ aliases: [
158
+ 'instagram'
159
+ ],
160
+ badge: Instagram,
161
+ group: 'embed',
162
+ onSelect: ({ editor })=>{
163
+ editor.chain().focus().insertInstagram().run();
164
+ }
165
+ },
166
+ {
167
+ title: i18next.t('youtube') || 'Youtube',
168
+ subtext: i18next.t('youtubeDesc') || 'Insert a Youtube embed',
169
+ aliases: [
170
+ 'youtube'
171
+ ],
172
+ badge: Youtube,
173
+ group: 'embed',
174
+ onSelect: ({ editor })=>{
175
+ editor.chain().focus().insertYoutube().run();
176
+ }
177
+ },
178
+ {
179
+ title: i18next.t('tiktok') || 'Tiktok',
180
+ subtext: i18next.t('tiktokDesc') || 'Insert a Tiktok embed',
181
+ aliases: [
182
+ 'tiktok'
183
+ ],
184
+ badge: Music,
185
+ group: 'embed',
186
+ onSelect: ({ editor })=>{
187
+ editor.chain().focus().insertTiktok().run();
188
+ }
189
+ }
190
+ ];
191
+ };
192
+ export const filterSuggestionItems = (items, query)=>{
193
+ if (!query) return items;
194
+ const normalizedQuery = query.toLowerCase().trim();
195
+ return items.filter((item)=>{
196
+ const titleMatch = item.title.toLowerCase().includes(normalizedQuery);
197
+ const subtextMatch = item.subtext.toLowerCase().includes(normalizedQuery);
198
+ const aliasesMatch = item.aliases.some((alias)=>alias.toLowerCase().includes(normalizedQuery));
199
+ return titleMatch || subtextMatch || aliasesMatch;
200
+ });
201
+ };
202
+ export const getSlashMenuItems = (editor, config)=>{
203
+ const defaultItems = getDefaultSlashMenuItems(editor);
204
+ // Filter by enabled items
205
+ const enabledItems = defaultItems.filter((item)=>{
206
+ const itemType = item.title.toLowerCase().replace(/\s+/g, '_');
207
+ return config.enabledItems.includes(itemType) || config.enabledItems.includes('text');
208
+ });
209
+ // Add custom items
210
+ const customItems = config.customItems || [];
211
+ // Apply group assignments
212
+ const itemsWithGroups = [
213
+ ...enabledItems,
214
+ ...customItems
215
+ ].map((item)=>({
216
+ ...item,
217
+ group: config.itemGroups?.[item.title.toLowerCase().replace(/\s+/g, '_')] || item.group
218
+ }));
219
+ return itemsWithGroups;
220
+ };
221
+
222
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/ui/SlashCommand/utils.ts"],"sourcesContent":["import { Editor } from '@tiptap/core'\r\nimport { SlashMenuConfig, SlashMenuItemType, SuggestionItem } from './types.js'\r\nimport i18next from 'i18next'\r\nimport {\r\n Facebook,\r\n Heading1,\r\n Heading2,\r\n Heading3,\r\n Image,\r\n Instagram,\r\n Link,\r\n List,\r\n ListOrdered,\r\n Minus,\r\n Music,\r\n Quote,\r\n Twitter,\r\n Video,\r\n Youtube,\r\n} from 'lucide-react'\r\nexport const getDefaultSlashMenuItems = (editor: Editor): SuggestionItem[] => {\r\n return [\r\n {\r\n title: i18next.t('heading1') || 'Heading 1',\r\n subtext: i18next.t('heading1Desc') || 'High priority section title',\r\n aliases: ['h1'],\r\n badge: Heading1,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHeading({ level: 1 }).run()\r\n },\r\n },\r\n {\r\n title: i18next.t('heading2') || 'Heading 2',\r\n subtext: i18next.t('heading2Desc') || 'Medium priority section title',\r\n aliases: ['h2'],\r\n badge: Heading2,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHeading({ level: 2 }).run()\r\n },\r\n },\r\n {\r\n title: i18next.t('heading3') || 'Heading 3',\r\n subtext: i18next.t('heading3Desc') || 'Low priority section title',\r\n aliases: ['h3'],\r\n badge: Heading3,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHeading({ level: 3 }).run()\r\n },\r\n },\r\n {\r\n title: i18next.t('bulletList') || 'Bullet List',\r\n subtext: i18next.t('bulletListDesc') || 'Unordered list of items',\r\n aliases: ['ul'],\r\n badge: List,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().toggleBulletList().run()\r\n },\r\n },\r\n // Uncomment if you want a numbered list option\r\n // {\r\n // title: i18next.t(\"numberedList\") || 'Numbered List',\r\n // subtext: i18next.t(\"numberedListDesc\") || \"Ordered list of items\",\r\n // aliases: [\"ol\"],\r\n // badge: ListOrdered,\r\n // group: \"format\",\r\n // onSelect: ({ editor }) => {\r\n // editor.chain().focus().toggleOrderedList().run();\r\n // },\r\n // },\r\n {\r\n title: i18next.t('blockquote') || 'Blockquote',\r\n subtext: i18next.t('blockquoteDesc') || 'Element for quoting',\r\n aliases: [],\r\n badge: Quote,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setBlockquote().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('image') || 'Image',\r\n subtext: i18next.t('imageDesc') || 'Insert an image',\r\n aliases: ['img'],\r\n badge: Image,\r\n group: 'insert',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setImageUpload('image').run()\r\n },\r\n },\r\n {\r\n title: i18next.t('video') || 'Video',\r\n subtext: i18next.t('videoDesc') || 'Insert a video',\r\n aliases: ['video'],\r\n badge: Video,\r\n group: 'insert',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setImageUpload('video').run()\r\n },\r\n },\r\n {\r\n title: i18next.t('horizontalRule') || 'HorizontalRule',\r\n subtext: i18next.t('horizontalRuleDesc') || 'Insert a horizontal divider',\r\n aliases: ['hr'],\r\n badge: Minus,\r\n group: 'insert',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHorizontalRule().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('embed') || 'Embed Link',\r\n subtext: i18next.t('iframeDesc') || 'Insert an Embed link',\r\n aliases: ['linkPreview'],\r\n badge: Link,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setLinkPreview().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('twitter') || 'Twitter',\r\n subtext: i18next.t('twitterDesc') || 'Insert a Twitter embed',\r\n aliases: ['x', 'twitter'],\r\n badge: Twitter,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertTwitter().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('facebook') || 'Facebook',\r\n subtext: i18next.t('facebookDesc') || 'Insert a Facebook embed',\r\n aliases: ['meta', 'facebook'],\r\n badge: Facebook,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertFacebook().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('instagram') || 'Instagram',\r\n subtext: i18next.t('instagramDesc') || 'Insert a Instagram embed',\r\n aliases: ['instagram'],\r\n badge: Instagram,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertInstagram().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('youtube') || 'Youtube',\r\n subtext: i18next.t('youtubeDesc') || 'Insert a Youtube embed',\r\n aliases: ['youtube'],\r\n badge: Youtube,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertYoutube().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('tiktok') || 'Tiktok',\r\n subtext: i18next.t('tiktokDesc') || 'Insert a Tiktok embed',\r\n aliases: ['tiktok'],\r\n badge: Music,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertTiktok().run()\r\n },\r\n },\r\n ]\r\n}\r\n\r\nexport const filterSuggestionItems = (items: SuggestionItem[], query: string): SuggestionItem[] => {\r\n if (!query) return items\r\n\r\n const normalizedQuery = query.toLowerCase().trim()\r\n\r\n return items.filter((item) => {\r\n const titleMatch = item.title.toLowerCase().includes(normalizedQuery)\r\n const subtextMatch = item.subtext.toLowerCase().includes(normalizedQuery)\r\n const aliasesMatch = item.aliases.some((alias) => alias.toLowerCase().includes(normalizedQuery))\r\n\r\n return titleMatch || subtextMatch || aliasesMatch\r\n })\r\n}\r\n\r\nexport const getSlashMenuItems = (editor: Editor, config: SlashMenuConfig): SuggestionItem[] => {\r\n const defaultItems = getDefaultSlashMenuItems(editor)\r\n\r\n // Filter by enabled items\r\n const enabledItems = defaultItems.filter((item) => {\r\n const itemType = item.title.toLowerCase().replace(/\\s+/g, '_') as SlashMenuItemType\r\n return config.enabledItems.includes(itemType) || config.enabledItems.includes('text')\r\n })\r\n\r\n // Add custom items\r\n const customItems = config.customItems || []\r\n\r\n // Apply group assignments\r\n const itemsWithGroups = [...enabledItems, ...customItems].map((item) => ({\r\n ...item,\r\n group: config.itemGroups?.[item.title.toLowerCase().replace(/\\s+/g, '_')] || item.group,\r\n }))\r\n\r\n return itemsWithGroups\r\n}\r\n"],"names":["i18next","Facebook","Heading1","Heading2","Heading3","Image","Instagram","Link","List","Minus","Music","Quote","Twitter","Video","Youtube","getDefaultSlashMenuItems","editor","title","t","subtext","aliases","badge","group","onSelect","chain","focus","setHeading","level","run","toggleBulletList","setBlockquote","setImageUpload","setHorizontalRule","setLinkPreview","insertTwitter","insertFacebook","insertInstagram","insertYoutube","insertTiktok","filterSuggestionItems","items","query","normalizedQuery","toLowerCase","trim","filter","item","titleMatch","includes","subtextMatch","aliasesMatch","some","alias","getSlashMenuItems","config","defaultItems","enabledItems","itemType","replace","customItems","itemsWithGroups","map","itemGroups"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function updateImageUrl(url: string, width: number, height?: number): string;
2
+ //# sourceMappingURL=updateImageUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateImageUrl.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/lib/utils/updateImageUrl.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBlF"}
@@ -0,0 +1,17 @@
1
+ export function updateImageUrl(url, width, height) {
2
+ try {
3
+ const parsedUrl = new URL(url);
4
+ // Set or update width and height parameters
5
+ parsedUrl.searchParams.set('width', width.toString());
6
+ if (!!height) {
7
+ parsedUrl.searchParams.set('height', height.toString());
8
+ }
9
+ return parsedUrl.toString();
10
+ } catch (error) {
11
+ console.error('Invalid URL:', error);
12
+ return url // fallback in case the input URL is malformed
13
+ ;
14
+ }
15
+ }
16
+
17
+ //# sourceMappingURL=updateImageUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/lib/utils/updateImageUrl.ts"],"sourcesContent":["export function updateImageUrl(url: string, width: number, height?: number): string {\r\n try {\r\n const parsedUrl = new URL(url)\r\n\r\n // Set or update width and height parameters\r\n parsedUrl.searchParams.set('width', width.toString())\r\n\r\n if (!!height) {\r\n parsedUrl.searchParams.set('height', height.toString())\r\n }\r\n\r\n return parsedUrl.toString()\r\n } catch (error) {\r\n console.error('Invalid URL:', error)\r\n return url // fallback in case the input URL is malformed\r\n }\r\n}\r\n"],"names":["updateImageUrl","url","width","height","parsedUrl","URL","searchParams","set","toString","error","console"],"mappings":"AAAA,OAAO,SAASA,eAAeC,GAAW,EAAEC,KAAa,EAAEC,MAAe;IACxE,IAAI;QACF,MAAMC,YAAY,IAAIC,IAAIJ;QAE1B,4CAA4C;QAC5CG,UAAUE,YAAY,CAACC,GAAG,CAAC,SAASL,MAAMM,QAAQ;QAElD,IAAI,CAAC,CAACL,QAAQ;YACZC,UAAUE,YAAY,CAACC,GAAG,CAAC,UAAUJ,OAAOK,QAAQ;QACtD;QAEA,OAAOJ,UAAUI,QAAQ;IAC3B,EAAE,OAAOC,OAAO;QACdC,QAAQD,KAAK,CAAC,gBAAgBA;QAC9B,OAAOR,IAAI,8CAA8C;;IAC3D;AACF"}