@epam/ai-dial-quotations 1.1.0-dev.488 → 1.1.0-dev.491

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -148,53 +148,93 @@ var w = {
148
148
  borderWidth: "2px",
149
149
  opacity: .5,
150
150
  hoverOpacity: .5
151
- }, N = (e) => e.flatMap((e, t) => {
151
+ }, N = (e) => {
152
+ if (typeof e != "object" || !e) return;
153
+ let t = e, { lt: n, wh: r } = t;
154
+ if (Array.isArray(n) && Array.isArray(r) && n.length >= 2 && r.length >= 2) {
155
+ let [e, t] = n, [i, a] = r;
156
+ if (typeof e == "number" && typeof t == "number" && typeof i == "number" && typeof a == "number") return {
157
+ x1: e,
158
+ y1: t,
159
+ x2: e + i,
160
+ y2: t + a
161
+ };
162
+ }
163
+ let { left: i, top: a, width: o, height: s } = t;
164
+ if (typeof i == "number" && typeof a == "number" && typeof o == "number" && typeof s == "number") return {
165
+ x1: i,
166
+ y1: a,
167
+ x2: i + o,
168
+ y2: a + s
169
+ };
170
+ }, P = (e) => {
171
+ if (!r(e)) return;
172
+ let t = e, n;
173
+ if (t.type === "pdf_bbox") {
174
+ let { x1: e, y1: r, x2: i, y2: a } = t;
175
+ typeof e == "number" && typeof r == "number" && typeof i == "number" && typeof a == "number" && (n = {
176
+ x1: e,
177
+ y1: r,
178
+ x2: i,
179
+ y2: a
180
+ });
181
+ } else t.type === "pdf_region" && (n = N(t.bbox));
182
+ if (n == null) return;
183
+ let i = t.page;
184
+ if (!(typeof i != "number" || !Number.isInteger(i) || i < 1) && [
185
+ n.x1,
186
+ n.y1,
187
+ n.x2,
188
+ n.y2
189
+ ].every(Number.isFinite)) return {
190
+ page: i,
191
+ x1: n.x1,
192
+ y1: n.y1,
193
+ x2: n.x2,
194
+ y2: n.y2
195
+ };
196
+ }, ee = (e) => e.flatMap((e, t) => {
152
197
  let n = e.body?.selector;
153
198
  if (n == null) return [];
154
199
  let i = (Array.isArray(n) ? n : [n]).flatMap((e) => {
155
- if (!r(e) || e.type !== "pdf_bbox") return [];
156
- let { page: t, x1: n, y1: i, x2: a, y2: o } = e;
157
- return !Number.isInteger(t) || t < 1 || ![
158
- n,
159
- i,
160
- a,
161
- o
162
- ].every(Number.isFinite) ? [] : [{
163
- page: t,
164
- x1: n,
165
- y1: i,
166
- x2: a,
167
- y2: o
168
- }];
200
+ if (!r(e)) return [];
201
+ let t = P(e);
202
+ return t == null ? [] : [t];
169
203
  });
170
204
  return i.length === 0 ? [] : [{
171
205
  id: String(e.index ?? t),
172
206
  bboxes: i,
173
207
  style: M
174
208
  }];
175
- }), ee = (e, t) => String(e.index ?? t), te = (e) => {
209
+ }), te = (e, t) => String(e.index ?? t), ne = (e) => {
176
210
  let t = e.body?.selector;
177
- if (t != null) return (Array.isArray(t) ? t : [t]).find((e) => r(e) && e.type === "pdf_bbox" && typeof e.page == "number" && Number.isInteger(e.page) && e.page >= 1)?.page;
178
- }, P = (e) => {
211
+ if (t == null) return;
212
+ let n = Array.isArray(t) ? t : [t];
213
+ for (let e of n) {
214
+ if (!r(e)) continue;
215
+ let t = P(e);
216
+ if (t != null) return t.page;
217
+ }
218
+ }, F = (e) => {
179
219
  let t = e.custom_content?.annotations;
180
220
  if (t?.length) return t.filter((e) => e != null && e.body?.source?.attachment?.url != null).map(a);
181
221
  let n = e.custom_fields;
182
222
  if (typeof n != "object" || !n) return [];
183
223
  let r = n.annotations;
184
224
  return !Array.isArray(r) || r.length === 0 ? [] : o(r, e.custom_content?.attachments ?? []).map(a);
185
- }, F = (e) => {
225
+ }, I = (e) => {
186
226
  if (e.type !== "docx_text_range") return !1;
187
227
  let t = e;
188
228
  return typeof t.story == "string" && Array.isArray(t.path) && t.path.every((e) => typeof e == "number") && typeof t.start == "number" && typeof t.end == "number" && typeof t.text == "string";
189
- }, I = (e) => {
229
+ }, L = (e) => {
190
230
  if (e.type !== "pptx_text_range") return !1;
191
231
  let t = e;
192
232
  return typeof t.slide == "number" && typeof t.shape_id == "string" && typeof t.start == "number" && typeof t.end == "number" && typeof t.text == "string";
193
- }, L = (e) => typeof e == "object" && !!e && typeof e.row == "number" && typeof e.col == "number", R = (e) => {
233
+ }, R = (e) => typeof e == "object" && !!e && typeof e.row == "number" && typeof e.col == "number", z = (e) => {
194
234
  if (e.type !== "excel_rc_range") return !1;
195
235
  let t = e;
196
- return typeof t.sheet == "string" && L(t.start) && (t.end === void 0 || t.end === null || L(t.end));
197
- }, ne = (e) => {
236
+ return typeof t.sheet == "string" && R(t.start) && (t.end === void 0 || t.end === null || R(t.end));
237
+ }, re = (e) => {
198
238
  let { story: t, path: n, start: r, end: i, text: a } = e;
199
239
  if (!(!n.every((e) => Number.isInteger(e)) || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
200
240
  type: "docx_text_range",
@@ -204,7 +244,7 @@ var w = {
204
244
  endExclusive: i,
205
245
  text: a
206
246
  };
207
- }, re = (e) => {
247
+ }, ie = (e) => {
208
248
  let { slide: t, shape_id: n, start: r, end: i, text: a } = e;
209
249
  if (!(!Number.isInteger(t) || t < 1 || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
210
250
  type: "pptx_text_range",
@@ -214,7 +254,7 @@ var w = {
214
254
  endExclusive: i,
215
255
  text: a
216
256
  };
217
- }, ie = (e) => {
257
+ }, ae = (e) => {
218
258
  let { sheet: t, start: n, end: r } = e;
219
259
  if (!(t.length === 0 || !Number.isInteger(n.row) || !Number.isInteger(n.col) || n.row < 1 || n.col < 1)) {
220
260
  if (r == null) return {
@@ -229,29 +269,29 @@ var w = {
229
269
  end: r
230
270
  };
231
271
  }
232
- }, ae = (e) => {
272
+ }, oe = (e) => {
233
273
  let t = e.body?.selector;
234
274
  return t == null ? [] : (Array.isArray(t) ? t : [t]).flatMap((e) => {
235
275
  if (!r(e)) return [];
236
- if (F(e)) {
237
- let t = ne(e);
238
- return t ? [t] : [];
239
- }
240
276
  if (I(e)) {
241
277
  let t = re(e);
242
278
  return t ? [t] : [];
243
279
  }
244
- if (R(e)) {
280
+ if (L(e)) {
245
281
  let t = ie(e);
246
282
  return t ? [t] : [];
247
283
  }
284
+ if (z(e)) {
285
+ let t = ae(e);
286
+ return t ? [t] : [];
287
+ }
248
288
  return [];
249
289
  });
250
- }, oe = (e, t) => S(() => t ? [] : P(e), [t, e]), se = {
290
+ }, se = (e, t) => S(() => t ? [] : F(e), [t, e]), ce = {
251
291
  openGroupKey: null,
252
292
  activeIndexByGroup: {}
253
- }, ce = () => {
254
- let [e, t] = C(se), n = b((e) => {
293
+ }, le = () => {
294
+ let [e, t] = C(ce), n = b((e) => {
255
295
  t((t) => ({
256
296
  ...t,
257
297
  openGroupKey: e
@@ -282,7 +322,7 @@ var w = {
282
322
  i,
283
323
  e
284
324
  ]);
285
- }, le = /⟦C(\d+)⟧/g, z = (e, t) => {
325
+ }, ue = /⟦C(\d+)⟧/g, B = (e, t) => {
286
326
  let n = t.map((e, t) => ({
287
327
  g: e,
288
328
  idx: t
@@ -295,9 +335,9 @@ var w = {
295
335
  }).sort((e, t) => t.pos - e.pos), r = e;
296
336
  for (let { idx: e, pos: t } of n) r = `${r.slice(0, t)}⟦C${e}⟧${r.slice(t)}`;
297
337
  return r;
298
- }, B = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>/g, V = /^<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>$/, H = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>|<\/?cit\b[^>]*>|<\/?cit\b[^>]*$/gi, U = (e) => e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), W = (e) => e.replace(H, (e) => V.test(e) ? e : U(e)), G = (e) => W(e).replace(B, ""), K = (e, t) => {
338
+ }, V = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>/g, H = /^<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>$/, de = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>|<\/?cit\b[^>]*>|<\/?cit\b[^>]*$/gi, fe = (e) => e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), U = (e) => e.replace(de, (e) => H.test(e) ? e : fe(e)), W = (e) => U(e).replace(V, ""), G = (e, t) => {
299
339
  if (typeof e == "string") {
300
- let n = e.split(le);
340
+ let n = e.split(ue);
301
341
  if (n.length === 1) return e;
302
342
  let r = [];
303
343
  return n.forEach((e, n) => {
@@ -305,18 +345,18 @@ var w = {
305
345
  }), r;
306
346
  }
307
347
  return Array.isArray(e) ? e.flatMap((e) => {
308
- let n = K(e, t);
348
+ let n = G(e, t);
309
349
  return Array.isArray(n) ? n : [n];
310
350
  }) : e;
311
- }, ue = (e) => {
351
+ }, pe = (e) => {
312
352
  let t = e.primaryAnnotation.target?.selector;
313
353
  return t?.type === "html_tag" ? t.id : void 0;
314
- }, de = (e, t) => /* @__PURE__ */ v(g, { children: [
354
+ }, me = (e, t) => /* @__PURE__ */ v(g, { children: [
315
355
  e == null ? "<cit>" : `<cit data-id="${e}">`,
316
356
  t,
317
357
  "</cit>"
318
- ] }), fe = (e, t, n, r = !1, a = !1) => {
319
- let { onPreview: o, onOpenInBrowser: s, buildLabels: c } = n, l = S(() => r ? G(e) : W(t.length > 0 ? z(e, t) : e), [
358
+ ] }), he = (e, t, n, r = !1, a = !1) => {
359
+ let { onPreview: o, onOpenInBrowser: s, buildLabels: c } = n, l = S(() => r ? W(e) : U(t.length > 0 ? B(e, t) : e), [
320
360
  e,
321
361
  t,
322
362
  r
@@ -326,7 +366,7 @@ var w = {
326
366
  markdownComponents: S(() => {
327
367
  let e = /* @__PURE__ */ new Map();
328
368
  for (let n of t) {
329
- let t = ue(n);
369
+ let t = pe(n);
330
370
  t != null && e.set(t, n);
331
371
  }
332
372
  let n = (e) => {
@@ -343,19 +383,19 @@ var w = {
343
383
  return r ? n(r) : null;
344
384
  }, l = { cit: (t) => {
345
385
  let r = t["data-id"] == null ? void 0 : e.get(t["data-id"]);
346
- return r ? n(r) : de(t["data-id"], t.children);
386
+ return r ? n(r) : me(t["data-id"], t.children);
347
387
  } };
348
388
  return t.length === 0 ? u ? l : {} : {
349
389
  ...l,
350
390
  p: ({ children: e, ...t }) => /* @__PURE__ */ _("p", {
351
391
  ...t,
352
392
  className: i(a ? "dial-small-paragraph-text" : "dial-body-paragraph-text", "mb-3 [overflow-wrap:anywhere] [text-wrap:pretty] last:mb-0"),
353
- children: K(e, r)
393
+ children: G(e, r)
354
394
  }),
355
395
  li: ({ children: e, ...t }) => /* @__PURE__ */ _("li", {
356
396
  ...t,
357
397
  className: "mb-1.5 last:mb-0",
358
- children: K(e, r)
398
+ children: G(e, r)
359
399
  })
360
400
  };
361
401
  }, [
@@ -367,42 +407,42 @@ var w = {
367
407
  u
368
408
  ])
369
409
  };
370
- }, q = (e) => {
410
+ }, K = (e) => {
371
411
  try {
372
412
  return decodeURIComponent(e);
373
413
  } catch {
374
414
  return e;
375
415
  }
376
- }, pe = (e) => {
416
+ }, ge = (e) => {
377
417
  try {
378
418
  let t = new URL(e);
379
- return t.pathname.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? t.hostname;
419
+ return t.pathname.split("/").map((e) => K(e)).filter(Boolean).at(-1) ?? t.hostname;
380
420
  } catch {
381
- return e.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? e;
421
+ return e.split("/").map((e) => K(e)).filter(Boolean).at(-1) ?? e;
382
422
  }
383
- }, J = (e, t) => e.body?.source?.attachment?.title ?? pe(t), Y = (e) => {
423
+ }, q = (e, t) => e.body?.source?.attachment?.title ?? ge(t), J = (e) => {
384
424
  let t = e.target?.selector;
385
425
  return t?.type === "html_tag" ? t : void 0;
386
- }, me = (e) => Y(e) != null, X = (e) => {
426
+ }, _e = (e) => J(e) != null, Y = (e) => {
387
427
  let t = /* @__PURE__ */ new Map();
388
428
  for (let n of e) {
389
- if (me(n)) continue;
429
+ if (_e(n)) continue;
390
430
  let e = n.body?.source?.attachment?.url;
391
431
  if (e == null) continue;
392
432
  let r = t.get(e);
393
433
  r ? r.annotations.push(n) : t.set(e, {
394
434
  groupKey: e,
395
435
  sourceUrl: e,
396
- sourceName: J(n, e),
436
+ sourceName: q(n, e),
397
437
  annotations: [n],
398
438
  primaryAnnotation: n
399
439
  });
400
440
  }
401
441
  return Array.from(t.values());
402
- }, Z = (e) => {
442
+ }, X = (e) => {
403
443
  let t = /* @__PURE__ */ new Map();
404
444
  for (let n of e) {
405
- let e = Y(n)?.id;
445
+ let e = J(n)?.id;
406
446
  if (e == null) continue;
407
447
  let r = n.body?.source?.attachment?.url;
408
448
  if (r == null) continue;
@@ -410,22 +450,22 @@ var w = {
410
450
  i ? i.annotations.push(n) : t.set(e, {
411
451
  groupKey: `cit:${e}`,
412
452
  sourceUrl: r,
413
- sourceName: J(n, r),
453
+ sourceName: q(n, r),
414
454
  annotations: [n],
415
455
  primaryAnnotation: n
416
456
  });
417
457
  }
418
458
  return Array.from(t.values());
419
- }, he = (e) => [...Z(e), ...X(e)], ge = (e, t) => {
459
+ }, ve = (e) => [...X(e), ...Y(e)], Z = (e, t) => {
420
460
  let n = e.body?.source?.attachment?.url;
421
461
  return n == null || !t.includes(e) ? [e] : t.filter((e) => e.body?.source?.attachment?.url === n);
422
- }, Q = (e) => e.url == null && e.reference_url != null, _e = /^(.*\.pdf)(?:#page=(\d+))?$/i, $ = (e) => {
423
- let t = _e.exec(e);
462
+ }, Q = (e) => e.url == null && e.reference_url != null, ye = /^(.*\.pdf)(?:#page=(\d+))?$/i, $ = (e) => {
463
+ let t = ye.exec(e);
424
464
  return t ? {
425
465
  baseUrl: t[1],
426
466
  page: t[2] == null ? null : Number(t[2])
427
467
  } : null;
428
- }, ve = (t) => X((t ?? []).filter(Q).map((t) => {
468
+ }, be = (t) => Y((t ?? []).filter(Q).map((t) => {
429
469
  let n = t.reference_url, r = $(n) != null;
430
470
  return { body: {
431
471
  quote: t.data,
@@ -440,4 +480,4 @@ var w = {
440
480
  } };
441
481
  }));
442
482
  //#endregion
443
- export { T as CitationCard, O as CitationCardProvider, j as CitationDropdown, E as CitationMarker, ee as annotationHighlightId, ae as annotationToOfficeHighlightLocations, N as annotationsToPdfHighlights, ge as gatherSameSourceAnnotations, te as getAnnotationPdfPage, ve as getReferenceAttachmentGroups, he as groupAnnotations, Z as groupAnnotationsByCitId, X as groupAnnotationsBySource, z as injectCitationSentinels, F as isDocxRangeSelector, R as isExcelRcRangeSelector, I as isPptxRangeSelector, Q as isReferenceOnlyAttachment, $ as parsePdfPageReference, K as replaceSentinelsInChildren, P as resolveMessageAnnotations, G as stripCitTagsWhileStreaming, oe as useAnnotations, ce as useCitationCard, k as useCitationCardContext, fe as useCitationMarkdownComponents };
483
+ export { T as CitationCard, O as CitationCardProvider, j as CitationDropdown, E as CitationMarker, te as annotationHighlightId, oe as annotationToOfficeHighlightLocations, ee as annotationsToPdfHighlights, Z as gatherSameSourceAnnotations, ne as getAnnotationPdfPage, be as getReferenceAttachmentGroups, ve as groupAnnotations, X as groupAnnotationsByCitId, Y as groupAnnotationsBySource, B as injectCitationSentinels, I as isDocxRangeSelector, z as isExcelRcRangeSelector, L as isPptxRangeSelector, Q as isReferenceOnlyAttachment, $ as parsePdfPageReference, G as replaceSentinelsInChildren, F as resolveMessageAnnotations, W as stripCitTagsWhileStreaming, se as useAnnotations, le as useCitationCard, k as useCitationCardContext, he as useCitationMarkdownComponents };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-quotations",
3
3
  "description": "Citation and annotation components, hooks, and utilities for AI DIAL conversations",
4
- "version": "1.1.0-dev.488",
4
+ "version": "1.1.0-dev.491",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": "^19.2.8",
26
- "@epam/ai-dial-chat-shared": "1.1.0-dev.488",
26
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.491",
27
27
  "@epam/ai-dial-ui-kit": "^0.14.2"
28
28
  },
29
29
  "repository": {
@@ -3,16 +3,19 @@ import { InputHighlightData } from '@epam/pdf-highlighter-kit';
3
3
  import { OfficeHighlightLocation } from '../models/office-highlight';
4
4
  /**
5
5
  * Maps a list of annotations to `InputHighlightData` entries for the PDF viewer.
6
- * Annotations whose `body.selector` contains no `pdf_bbox` selectors are skipped.
7
- * The highlight `id` is `annotation.index` when present, otherwise the position
8
- * in the input array.
6
+ * Recognizes `pdf_bbox` selectors and both `pdf_region` coordinate forms
7
+ * (`lt`/`wh` and legacy `left`/`top`/`width`/`height`); annotations whose
8
+ * `body.selector` contains none of these are skipped. The highlight `id` is
9
+ * `annotation.index` when present, otherwise the position in the input array.
9
10
  */
10
11
  export declare const annotationsToPdfHighlights: (annotations: Annotation[]) => InputHighlightData[];
11
12
  /** Returns a stable string ID for a given annotation, matching the IDs produced by `annotationsToPdfHighlights`. */
12
13
  export declare const annotationHighlightId: (annotation: Annotation, fallbackIndex: number) => string;
13
14
  /**
14
15
  * Returns the first positive integer PDF page in the annotation's body selectors,
15
- * or `undefined` when none exists. Independent of bounding-box coordinates.
16
+ * or `undefined` when none exists. Recognizes `pdf_bbox` selectors and both
17
+ * `pdf_region` coordinate forms; a page is returned only for a selector whose
18
+ * geometry also validates (see `readPdfSelectorBox`).
16
19
  */
17
20
  export declare const getAnnotationPdfPage: (annotation: Annotation) => number | undefined;
18
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"annotation.d.ts","sourceRoot":"","sources":["../../src/utils/annotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EAEP,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAU1E;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACrC,aAAa,UAAU,EAAE,KACxB,kBAAkB,EA0BjB,CAAC;AAEL,oHAAoH;AACpH,eAAO,MAAM,qBAAqB,GAChC,YAAY,UAAU,EACtB,eAAe,MAAM,KACpB,MAAmD,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,KACrB,MAAM,GAAG,SAcX,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,OAAO,KAAG,UAAU,EAoBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAWd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAUd,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,oBAQd,CAAC;AA8FF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,GAC/C,YAAY,UAAU,KACrB,uBAAuB,EAsBzB,CAAC"}
1
+ {"version":3,"file":"annotation.d.ts","sourceRoot":"","sources":["../../src/utils/annotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAGV,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAqG1E;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACrC,aAAa,UAAU,EAAE,KACxB,kBAAkB,EAoBjB,CAAC;AAEL,oHAAoH;AACpH,eAAO,MAAM,qBAAqB,GAChC,YAAY,UAAU,EACtB,eAAe,MAAM,KACpB,MAAmD,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,KACrB,MAAM,GAAG,SAWX,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,OAAO,KAAG,UAAU,EAoBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAWd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAUd,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,oBAQd,CAAC;AA8FF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,GAC/C,YAAY,UAAU,KACrB,uBAAuB,EAsBzB,CAAC"}