@epam/ai-dial-quotations 1.2.0-dev.6 → 1.2.0-dev.69
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/components/CitationCard/CitationCard.d.ts.map +1 -1
- package/components/CitationDropdown/CitationDropdown.d.ts.map +1 -1
- package/components/CitationMarker/CitationMarker.d.ts.map +1 -1
- package/constants/public-class-names.d.ts +14 -0
- package/constants/public-class-names.d.ts.map +1 -0
- package/index.css +1 -1
- package/index.d.ts +2 -1
- package/index.d.ts.map +1 -1
- package/index.js +124 -79
- package/models/office-highlight.d.ts +21 -1
- package/models/office-highlight.d.ts.map +1 -1
- package/package.json +3 -3
- package/utils/annotation.d.ts +27 -4
- package/utils/annotation.d.ts.map +1 -1
- package/utils/office-table-anchor.d.ts +5 -0
- package/utils/office-table-anchor.d.ts.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CitationCard.d.ts","sourceRoot":"","sources":["../../../src/components/CitationCard/CitationCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAe5D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CitationCard.d.ts","sourceRoot":"","sources":["../../../src/components/CitationCard/CitationCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAe5D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAG/E,+CAA+C;AAC/C,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,2GAA2G;IAC3G,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/D,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qGAAqG;AACrG,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iKAAiK;IACjK,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,KAAK,EAAE,eAAe,CAAC;IACvB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,2EAA2E;IAC3E,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAClD,wEAAwE;IACxE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,4BAA4B;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,gCAAgC;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,yFAAyF;AACzF,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAsJ9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CitationDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/CitationDropdown/CitationDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,EAAE,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CitationDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/CitationDropdown/CitationDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,EAAE,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAGnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAG1C,kDAAkD;AAClD,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,KAAK,EAAE,eAAe,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,uEAAuE;IACvE,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAClD,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uFAAuF;IACvF,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,+CAA+C;IAC/C,UAAU,EAAE,kBAAkB,CAAC;IAC/B,yDAAyD;IACzD,YAAY,EAAE,oBAAoB,CAAC;IACnC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,8HAA8H;AAC9H,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA0EtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CitationMarker.d.ts","sourceRoot":"","sources":["../../../src/components/CitationMarker/CitationMarker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CitationMarker.d.ts","sourceRoot":"","sources":["../../../src/components/CitationMarker/CitationMarker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtC,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,mEAAmE;IACnE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4BAA4B;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,8FAA8F;IAC9F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA6BlD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const QUOTATIONS_CLASS: {
|
|
2
|
+
/** The citation card's `role="dialog"` root, which carries the themed CSS variables. */
|
|
3
|
+
readonly citationCard: "dial-quotations-citation-card";
|
|
4
|
+
/** The floating panel a `CitationDropdown` reveals, which holds the card. */
|
|
5
|
+
readonly citationDropdown: "dial-quotations-citation-dropdown";
|
|
6
|
+
/**
|
|
7
|
+
* The marker pill that opens a citation, additive to the
|
|
8
|
+
* `dial-kit-base-button` that `@epam/ai-dial-ui-kit` draws. The pill caps its
|
|
9
|
+
* own width and ellipsises a long source name, so a host widening it should
|
|
10
|
+
* override `max-inline-size` here rather than unset the truncation.
|
|
11
|
+
*/
|
|
12
|
+
readonly citationMarker: "dial-quotations-citation-marker";
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=public-class-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-class-names.d.ts","sourceRoot":"","sources":["../../src/constants/public-class-names.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,gBAAgB;IAC3B,wFAAwF;;IAExF,6EAA6E;;IAE7E;;;;;OAKG;;CAEK,CAAC"}
|
package/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
._card_1kph1_1{background:var(--cc-card-bg,var(--bg-layer-raised,#fcfcfc))}._quote_1kph1_5{color:var(--cc-quote-text,var(--text-secondary,#57647a))}._title_1kph1_9{color:var(--cc-title-text,var(--text-primary,#161b2d))}._switcher_1kph1_13{color:var(--cc-switcher-text,var(--text-secondary,#57647a))}._sourceName_1kph1_17{color:var(--cc-source-name-text,var(--text-primary,#161b2d))}._content_xzs0h_1>svg{fill:var(--cc-card-bg,var(--bg-layer-raised,#fcfcfc));stroke:#0000}
|
|
2
|
-
/*$vite$:1
|
|
2
|
+
/*$vite$:1*/.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-3{margin-bottom:.75rem}.ms-1{margin-inline-start:.25rem}.line-clamp-6{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:6}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table-cell{display:table-cell}.table-row{display:table-row}.hidden{display:none}.min-h-\[3lh\]{min-height:3lh}.w-\[400px\]{width:400px}.min-w-0{min-width:0}.\!max-w-none{max-width:none!important}.max-w-\[240px\]{max-width:240px}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.\!rounded-none{border-radius:0!important}.rounded-lg{border-radius:.5rem}.\!border-0{border-width:0!important}.\!bg-transparent{background-color:transparent!important}.\!p-0{padding:0!important}.p-4{padding:1rem}.ps-3{padding-inline-start:.75rem}.align-middle{vertical-align:middle}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[text-wrap\:pretty\]{text-wrap:pretty}.last\:mb-0:last-child{margin-bottom:0}.rtl\:scale-x-\[-1\]:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
|
package/index.d.ts
CHANGED
|
@@ -13,8 +13,9 @@ export type { UseCitationMarkdownComponentsCallbacks } from './hooks/useCitation
|
|
|
13
13
|
export { gatherSameSourceAnnotations, groupAnnotations, groupAnnotationsByCitId, groupAnnotationsBySource, } from './utils/group-annotations-by-source';
|
|
14
14
|
export type { AnnotationGroup } from './utils/group-annotations-by-source';
|
|
15
15
|
export { annotationHighlightId, annotationsToPdfHighlights, annotationToOfficeHighlightLocations, getAnnotationPdfPage, isDocxRangeSelector, isExcelRcRangeSelector, isPptxRangeSelector, resolveMessageAnnotations, } from './utils/annotation';
|
|
16
|
-
export type { DocxOfficeHighlightLocation, ExcelOfficeHighlightLocation, OfficeHighlightLocation, PptxOfficeHighlightLocation, } from './models/office-highlight';
|
|
16
|
+
export type { DocxOfficeHighlightLocation, DocxTableRowOfficeHighlightLocation, ExcelOfficeHighlightLocation, OfficeHighlightLocation, PptxOfficeHighlightLocation, PptxTableRowOfficeHighlightLocation, } from './models/office-highlight';
|
|
17
17
|
export { injectCitationSentinels, replaceSentinelsInChildren, stripCitTagsWhileStreaming, } from './utils/citation-injection';
|
|
18
18
|
export { isReferenceOnlyAttachment, parsePdfPageReference, getReferenceAttachmentGroups, } from './utils/reference-attachment';
|
|
19
19
|
export type { PdfPageReference } from './utils/reference-attachment';
|
|
20
|
+
export { QUOTATIONS_CLASS } from './constants/public-class-names';
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAG5F,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qEAAqE,CAAC;AACpH,YAAY,EAAE,sCAAsC,EAAE,MAAM,qEAAqE,CAAC;AAGlI,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,oCAAoC,EACpC,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAG5F,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qEAAqE,CAAC;AACpH,YAAY,EAAE,sCAAsC,EAAE,MAAM,qEAAqE,CAAC;AAGlI,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,oCAAoC,EACpC,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,2BAA2B,EAC3B,mCAAmC,EACnC,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
|
package/index.js
CHANGED
|
@@ -3,14 +3,19 @@ import { DIAL_KIT_ICON_STROKE as s, ElementSize as c, EllipsisTooltip as l, Ghos
|
|
|
3
3
|
import { IconChevronLeft as m, IconChevronRight as h } from "@tabler/icons-react";
|
|
4
4
|
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
5
5
|
import { createContext as y, useCallback as b, useContext as x, useId as S, useMemo as C, useState as w } from "react";
|
|
6
|
+
//#region src/constants/public-class-names.ts
|
|
6
7
|
var T = {
|
|
8
|
+
citationCard: "dial-quotations-citation-card",
|
|
9
|
+
citationDropdown: "dial-quotations-citation-dropdown",
|
|
10
|
+
citationMarker: "dial-quotations-citation-marker"
|
|
11
|
+
}, E = {
|
|
7
12
|
card: "_card_1kph1_1",
|
|
8
13
|
quote: "_quote_1kph1_5",
|
|
9
14
|
title: "_title_1kph1_9",
|
|
10
15
|
switcher: "_switcher_1kph1_13",
|
|
11
16
|
sourceName: "_sourceName_1kph1_17"
|
|
12
|
-
},
|
|
13
|
-
let S = r.annotations.length, C = r.annotations[a] ?? r.primaryAnnotation, w = S > 1,
|
|
17
|
+
}, D = ({ group: r, activeIndex: a, onIndexChange: o, onPreview: d, onOpenInBrowser: p, headerIcon: g, labels: y, typography: b, colors: x }) => {
|
|
18
|
+
let S = r.annotations.length, C = r.annotations[a] ?? r.primaryAnnotation, w = S > 1, D = r.primaryAnnotation.body?.source?.attachment?.type, O = d == null || D === e.HTML || D === e.XHTML, k = b?.sourceNameClassName ?? "dial-tiny-text", A = b?.titleClassName ?? "dial-body-semi-text", j = b?.quoteClassName ?? "dial-small-text", M = b?.quoteStrongClassName ?? "dial-small-semi-text", N = b?.switcherClassName ?? "dial-tiny-text", ee = n({
|
|
14
19
|
"--cc-card-bg": x?.cardBackground,
|
|
15
20
|
"--cc-quote-text": x?.quoteText,
|
|
16
21
|
"--cc-title-text": x?.titleText,
|
|
@@ -21,8 +26,8 @@ var T = {
|
|
|
21
26
|
role: "dialog",
|
|
22
27
|
"aria-modal": "true",
|
|
23
28
|
"aria-label": y.ariaLabel,
|
|
24
|
-
style:
|
|
25
|
-
className: i("flex w-[400px] flex-col gap-3 rounded-lg p-4 shadow-lg", T.
|
|
29
|
+
style: ee,
|
|
30
|
+
className: i("flex w-[400px] flex-col gap-3 rounded-lg p-4 shadow-lg", E.card, T.citationCard),
|
|
26
31
|
children: [
|
|
27
32
|
/* @__PURE__ */ v("div", {
|
|
28
33
|
className: "flex items-center justify-between gap-2",
|
|
@@ -30,7 +35,7 @@ var T = {
|
|
|
30
35
|
className: "flex min-w-0 items-center gap-1",
|
|
31
36
|
children: [g, /* @__PURE__ */ _(l, {
|
|
32
37
|
text: r.sourceName,
|
|
33
|
-
className: i(
|
|
38
|
+
className: i(k, "min-w-0", E.sourceName)
|
|
34
39
|
})]
|
|
35
40
|
}), w && /* @__PURE__ */ v("div", {
|
|
36
41
|
className: "flex shrink-0 items-center gap-1",
|
|
@@ -46,7 +51,7 @@ var T = {
|
|
|
46
51
|
onClick: () => o((a - 1 + S) % S)
|
|
47
52
|
}),
|
|
48
53
|
/* @__PURE__ */ _("span", {
|
|
49
|
-
className: i(
|
|
54
|
+
className: i(N, E.switcher),
|
|
50
55
|
children: y.formatSwitcherText(a + 1, S)
|
|
51
56
|
}),
|
|
52
57
|
/* @__PURE__ */ _(u, {
|
|
@@ -65,17 +70,17 @@ var T = {
|
|
|
65
70
|
(C.body?.title || C.body?.quote || w) && /* @__PURE__ */ v("div", {
|
|
66
71
|
className: "flex flex-col gap-3",
|
|
67
72
|
children: [C.body?.title && /* @__PURE__ */ _("p", {
|
|
68
|
-
className: i(
|
|
73
|
+
className: i(A, E.title, "break-words"),
|
|
69
74
|
children: C.body.title
|
|
70
75
|
}), (C.body?.quote || w) && /* @__PURE__ */ _("div", {
|
|
71
|
-
className: i(
|
|
76
|
+
className: i(j, E.quote, "line-clamp-6 break-words", w && "min-h-[3lh]"),
|
|
72
77
|
children: C.body?.quote && /* @__PURE__ */ _(t, {
|
|
73
78
|
content: C.body.quote,
|
|
74
79
|
classNames: {
|
|
75
|
-
p: i(
|
|
76
|
-
ul: i(
|
|
77
|
-
ol: i(
|
|
78
|
-
strong:
|
|
80
|
+
p: i(j, E.quote),
|
|
81
|
+
ul: i(j, "ps-3"),
|
|
82
|
+
ol: i(j, "ps-3"),
|
|
83
|
+
strong: M
|
|
79
84
|
}
|
|
80
85
|
})
|
|
81
86
|
})]
|
|
@@ -87,33 +92,30 @@ var T = {
|
|
|
87
92
|
size: c.Small,
|
|
88
93
|
onClick: () => d(C)
|
|
89
94
|
}), /* @__PURE__ */ _(f, {
|
|
90
|
-
label:
|
|
95
|
+
label: O ? y.openInBrowser : y.download,
|
|
91
96
|
size: c.Small,
|
|
92
97
|
onClick: () => p(C)
|
|
93
98
|
})]
|
|
94
99
|
})
|
|
95
100
|
]
|
|
96
101
|
});
|
|
97
|
-
},
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
});
|
|
111
|
-
}, O = y(null), k = O.Provider, A = () => {
|
|
112
|
-
let e = x(O);
|
|
102
|
+
}, O = ({ annotationCount: e, onOpen: t, icon: n, labels: r, labelClassName: a = "dial-caption-text" }) => /* @__PURE__ */ _(d, {
|
|
103
|
+
size: c.Small,
|
|
104
|
+
className: i("max-w-[240px]", T.citationMarker),
|
|
105
|
+
textClassName: "min-w-0 truncate",
|
|
106
|
+
iconBefore: n,
|
|
107
|
+
label: /* @__PURE__ */ _("span", {
|
|
108
|
+
className: a,
|
|
109
|
+
children: e > 1 ? r.labelWithOverflow : r.label
|
|
110
|
+
}),
|
|
111
|
+
"aria-label": r.ariaLabel,
|
|
112
|
+
onClick: t
|
|
113
|
+
}), k = y(null), A = k.Provider, j = () => {
|
|
114
|
+
let e = x(k);
|
|
113
115
|
if (e == null) throw Error("useCitationCardContext must be used within a CitationCardProvider");
|
|
114
116
|
return e;
|
|
115
|
-
},
|
|
116
|
-
let u =
|
|
117
|
+
}, M = { content: "_content_xzs0h_1" }, N = ({ group: e, onPreview: t, onOpenInBrowser: n, icon: r, headerIcon: a, cardLabels: o, markerLabels: s, cardTypography: c, markerLabelClassName: l }) => {
|
|
118
|
+
let u = j(), d = S(), f = u.isOpen(d), m = u.getActiveIndex(e.groupKey), h = b((e) => {
|
|
117
119
|
e || u.closePopup(d);
|
|
118
120
|
}, [u, d]), g = C(() => t ? (e) => {
|
|
119
121
|
t(e), u.closePopup(d);
|
|
@@ -126,8 +128,8 @@ var T = {
|
|
|
126
128
|
open: f,
|
|
127
129
|
onOpenChange: h,
|
|
128
130
|
triggerClassName: "ms-1 inline-flex align-middle",
|
|
129
|
-
contentClassName: i("!p-0 !bg-transparent !border-0 !shadow-none !max-w-none !rounded-none",
|
|
130
|
-
tooltip: /* @__PURE__ */ _(
|
|
131
|
+
contentClassName: i("!p-0 !bg-transparent !border-0 !shadow-none !max-w-none !rounded-none", M.content, T.citationDropdown),
|
|
132
|
+
tooltip: /* @__PURE__ */ _(D, {
|
|
131
133
|
group: e,
|
|
132
134
|
activeIndex: m,
|
|
133
135
|
onIndexChange: (t) => u.setActiveIndex(e.groupKey, t),
|
|
@@ -137,7 +139,7 @@ var T = {
|
|
|
137
139
|
labels: o,
|
|
138
140
|
typography: c
|
|
139
141
|
}),
|
|
140
|
-
children: /* @__PURE__ */ _(
|
|
142
|
+
children: /* @__PURE__ */ _(O, {
|
|
141
143
|
sourceName: e.sourceName,
|
|
142
144
|
annotationCount: e.annotations.length,
|
|
143
145
|
onOpen: () => u.openPopup(d),
|
|
@@ -146,13 +148,40 @@ var T = {
|
|
|
146
148
|
labelClassName: l
|
|
147
149
|
})
|
|
148
150
|
});
|
|
149
|
-
},
|
|
151
|
+
}, ee = (e) => {
|
|
152
|
+
let t = e.trim();
|
|
153
|
+
if (!t.startsWith("|") || !t.endsWith("|") || /[\r\n]/.test(t)) return;
|
|
154
|
+
let n = [], r = "";
|
|
155
|
+
for (let e = 1; e < t.length; e += 1) {
|
|
156
|
+
let i = t[e], a = t[e + 1];
|
|
157
|
+
i === "\\" && a != null && /[!-/:-@[-`{-~]/.test(a) ? (r += a, e += 1) : i === "|" ? (n.push(r.trim()), r = "") : r += i;
|
|
158
|
+
}
|
|
159
|
+
if (!(r !== "" || n.length < 2 || n.every((e) => e === "" || /^:?-{3,}:?$/.test(e)))) return n;
|
|
160
|
+
}, te = (e) => {
|
|
161
|
+
if (e.type !== "docx_text_anchor" && e.type !== "pptx_text_anchor") return;
|
|
162
|
+
let { text: t, occurrence: n, slide: r } = e;
|
|
163
|
+
if (typeof t != "string" || typeof n != "number" || !Number.isSafeInteger(n) || n < 1) return;
|
|
164
|
+
let i = ee(t);
|
|
165
|
+
if (i != null) {
|
|
166
|
+
if (e.type === "docx_text_anchor") return {
|
|
167
|
+
type: "docx_text_anchor",
|
|
168
|
+
cells: i,
|
|
169
|
+
occurrence: n
|
|
170
|
+
};
|
|
171
|
+
if (!(typeof r != "number" || !Number.isSafeInteger(r) || r < 1)) return {
|
|
172
|
+
type: "pptx_text_anchor",
|
|
173
|
+
cells: i,
|
|
174
|
+
occurrence: n,
|
|
175
|
+
slide: r
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
}, ne = {
|
|
150
179
|
backgroundColor: "transparent",
|
|
151
180
|
borderColor: "var(--stroke-accent, #1D4ED8)",
|
|
152
181
|
borderWidth: "2px",
|
|
153
182
|
opacity: .5,
|
|
154
183
|
hoverOpacity: .5
|
|
155
|
-
},
|
|
184
|
+
}, re = (e) => {
|
|
156
185
|
if (typeof e != "object" || !e) return;
|
|
157
186
|
let t = e, { lt: n, wh: r } = t;
|
|
158
187
|
if (Array.isArray(n) && Array.isArray(r) && n.length >= 2 && r.length >= 2) {
|
|
@@ -182,7 +211,7 @@ var T = {
|
|
|
182
211
|
x2: i,
|
|
183
212
|
y2: a
|
|
184
213
|
});
|
|
185
|
-
} else t.type === "pdf_region" && (n =
|
|
214
|
+
} else t.type === "pdf_region" && (n = re(t.bbox));
|
|
186
215
|
if (n == null) return;
|
|
187
216
|
let i = t.page;
|
|
188
217
|
if (!(typeof i != "number" || !Number.isInteger(i) || i < 1) && [
|
|
@@ -197,7 +226,22 @@ var T = {
|
|
|
197
226
|
x2: n.x2,
|
|
198
227
|
y2: n.y2
|
|
199
228
|
};
|
|
200
|
-
}, F = (e) => e.
|
|
229
|
+
}, F = (e) => typeof e != "object" || !e ? String(e) : Array.isArray(e) ? `[${e.map(F).join(",")}]` : `{${Object.entries(e).filter(([, e]) => e !== void 0).sort(([e], [t]) => e < t ? -1 : +(e > t)).map(([e, t]) => `${e}=${F(t)}`).join(",")}}`, ie = (e) => {
|
|
230
|
+
let t = 5381;
|
|
231
|
+
for (let n = 0; n < e.length; n += 1) t = t * 33 + e.charCodeAt(n) | 0;
|
|
232
|
+
return (t >>> 0).toString(36);
|
|
233
|
+
}, ae = (e) => {
|
|
234
|
+
let t = e.body?.selector;
|
|
235
|
+
if (t == null) return;
|
|
236
|
+
let n = (Array.isArray(t) ? t : [t]).flatMap((e) => {
|
|
237
|
+
let t = P(e);
|
|
238
|
+
return t == null ? [] : [t];
|
|
239
|
+
}), r = H(e);
|
|
240
|
+
if (!(n.length === 0 && r.length === 0)) return F([n, r]);
|
|
241
|
+
}, oe = (e) => {
|
|
242
|
+
let t = e.target?.selector, n = t?.type === "html_tag" ? t.id : void 0, r = typeof n == "string" ? n : void 0, i = ae(e);
|
|
243
|
+
if (!(r == null && i == null)) return ie(`${r ?? ""}|${i ?? ""}`);
|
|
244
|
+
}, se = (e) => e.flatMap((e, t) => {
|
|
201
245
|
let n = e.body?.selector;
|
|
202
246
|
if (n == null) return [];
|
|
203
247
|
let i = (Array.isArray(n) ? n : [n]).flatMap((e) => {
|
|
@@ -206,11 +250,11 @@ var T = {
|
|
|
206
250
|
return t == null ? [] : [t];
|
|
207
251
|
});
|
|
208
252
|
return i.length === 0 ? [] : [{
|
|
209
|
-
id:
|
|
253
|
+
id: I(e, t),
|
|
210
254
|
bboxes: i,
|
|
211
|
-
style:
|
|
255
|
+
style: ne
|
|
212
256
|
}];
|
|
213
|
-
}),
|
|
257
|
+
}), I = (e, t) => e.index == null ? oe(e) ?? String(t) : String(e.index), ce = (e) => {
|
|
214
258
|
let t = e.body?.selector;
|
|
215
259
|
if (t == null) return;
|
|
216
260
|
let n = Array.isArray(t) ? t : [t];
|
|
@@ -219,26 +263,26 @@ var T = {
|
|
|
219
263
|
let t = P(e);
|
|
220
264
|
if (t != null) return t.page;
|
|
221
265
|
}
|
|
222
|
-
},
|
|
266
|
+
}, L = (e) => {
|
|
223
267
|
let t = e.custom_content?.annotations;
|
|
224
268
|
if (t?.length) return t.filter((e) => e != null && e.body?.source?.attachment?.url != null).map(a);
|
|
225
269
|
let n = e.custom_fields;
|
|
226
270
|
if (typeof n != "object" || !n) return [];
|
|
227
271
|
let r = n.annotations;
|
|
228
272
|
return !Array.isArray(r) || r.length === 0 ? [] : o(r, e.custom_content?.attachments ?? []).map(a);
|
|
229
|
-
},
|
|
273
|
+
}, R = (e) => {
|
|
230
274
|
if (e.type !== "docx_text_range") return !1;
|
|
231
275
|
let t = e;
|
|
232
276
|
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";
|
|
233
|
-
},
|
|
277
|
+
}, z = (e) => {
|
|
234
278
|
if (e.type !== "pptx_text_range") return !1;
|
|
235
279
|
let t = e;
|
|
236
280
|
return typeof t.slide == "number" && typeof t.shape_id == "string" && typeof t.start == "number" && typeof t.end == "number" && typeof t.text == "string";
|
|
237
|
-
},
|
|
281
|
+
}, B = (e) => typeof e == "object" && !!e && typeof e.row == "number" && typeof e.col == "number", V = (e) => {
|
|
238
282
|
if (e.type !== "excel_rc_range") return !1;
|
|
239
283
|
let t = e;
|
|
240
|
-
return typeof t.sheet == "string" &&
|
|
241
|
-
},
|
|
284
|
+
return typeof t.sheet == "string" && B(t.start) && (t.end === void 0 || t.end === null || B(t.end));
|
|
285
|
+
}, le = (e) => {
|
|
242
286
|
let { story: t, path: n, start: r, end: i, text: a } = e;
|
|
243
287
|
if (!(!n.every((e) => Number.isInteger(e)) || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
|
|
244
288
|
type: "docx_text_range",
|
|
@@ -248,7 +292,7 @@ var T = {
|
|
|
248
292
|
endExclusive: i,
|
|
249
293
|
text: a
|
|
250
294
|
};
|
|
251
|
-
},
|
|
295
|
+
}, ue = (e) => {
|
|
252
296
|
let { slide: t, shape_id: n, start: r, end: i, text: a } = e;
|
|
253
297
|
if (!(!Number.isInteger(t) || t < 1 || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
|
|
254
298
|
type: "pptx_text_range",
|
|
@@ -258,7 +302,7 @@ var T = {
|
|
|
258
302
|
endExclusive: i,
|
|
259
303
|
text: a
|
|
260
304
|
};
|
|
261
|
-
},
|
|
305
|
+
}, de = (e) => {
|
|
262
306
|
let { sheet: t, start: n, end: r } = e;
|
|
263
307
|
if (!(t.length === 0 || !Number.isInteger(n.row) || !Number.isInteger(n.col) || n.row < 1 || n.col < 1)) {
|
|
264
308
|
if (r == null) return {
|
|
@@ -273,29 +317,30 @@ var T = {
|
|
|
273
317
|
end: r
|
|
274
318
|
};
|
|
275
319
|
}
|
|
276
|
-
},
|
|
320
|
+
}, H = (e) => {
|
|
277
321
|
let t = e.body?.selector;
|
|
278
322
|
return t == null ? [] : (Array.isArray(t) ? t : [t]).flatMap((e) => {
|
|
279
323
|
if (!r(e)) return [];
|
|
280
|
-
if (
|
|
281
|
-
let t =
|
|
324
|
+
if (R(e)) {
|
|
325
|
+
let t = le(e);
|
|
282
326
|
return t ? [t] : [];
|
|
283
327
|
}
|
|
284
|
-
if (
|
|
285
|
-
let t =
|
|
328
|
+
if (z(e)) {
|
|
329
|
+
let t = ue(e);
|
|
286
330
|
return t ? [t] : [];
|
|
287
331
|
}
|
|
288
|
-
if (
|
|
289
|
-
let t =
|
|
332
|
+
if (V(e)) {
|
|
333
|
+
let t = de(e);
|
|
290
334
|
return t ? [t] : [];
|
|
291
335
|
}
|
|
292
|
-
|
|
336
|
+
let t = te(e);
|
|
337
|
+
return t ? [t] : [];
|
|
293
338
|
});
|
|
294
|
-
},
|
|
339
|
+
}, fe = (e, t) => C(() => t ? [] : L(e), [t, e]), pe = {
|
|
295
340
|
openOwnerKey: null,
|
|
296
341
|
activeIndexByGroup: {}
|
|
297
|
-
},
|
|
298
|
-
let [e, t] = w(
|
|
342
|
+
}, me = () => {
|
|
343
|
+
let [e, t] = w(pe), n = b((e) => {
|
|
299
344
|
t((t) => ({
|
|
300
345
|
...t,
|
|
301
346
|
openOwnerKey: e
|
|
@@ -326,7 +371,7 @@ var T = {
|
|
|
326
371
|
i,
|
|
327
372
|
e
|
|
328
373
|
]);
|
|
329
|
-
},
|
|
374
|
+
}, he = /⟦C(\d+)⟧/g, U = (e, t) => {
|
|
330
375
|
let n = t.map((e, t) => ({
|
|
331
376
|
g: e,
|
|
332
377
|
idx: t
|
|
@@ -339,9 +384,9 @@ var T = {
|
|
|
339
384
|
}).sort((e, t) => t.pos - e.pos), r = e;
|
|
340
385
|
for (let { idx: e, pos: t } of n) r = `${r.slice(0, t)}⟦C${e}⟧${r.slice(t)}`;
|
|
341
386
|
return r;
|
|
342
|
-
},
|
|
387
|
+
}, ge = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>/g, _e = /^<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>$/, ve = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>|<\/?cit\b[^>]*>|<\/?cit\b[^>]*$/gi, ye = (e) => e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), W = (e) => e.replace(ve, (e) => _e.test(e) ? e : ye(e)), G = (e) => W(e).replace(ge, ""), K = (e, t) => {
|
|
343
388
|
if (typeof e == "string") {
|
|
344
|
-
let n = e.split(
|
|
389
|
+
let n = e.split(he);
|
|
345
390
|
if (n.length === 1) return e;
|
|
346
391
|
let r = [];
|
|
347
392
|
return n.forEach((e, n) => {
|
|
@@ -352,15 +397,15 @@ var T = {
|
|
|
352
397
|
let n = K(e, t);
|
|
353
398
|
return Array.isArray(n) ? n : [n];
|
|
354
399
|
}) : e;
|
|
355
|
-
},
|
|
400
|
+
}, be = (e) => {
|
|
356
401
|
let t = e.primaryAnnotation.target?.selector;
|
|
357
402
|
return t?.type === "html_tag" ? t.id : void 0;
|
|
358
|
-
},
|
|
403
|
+
}, xe = (e, t) => /* @__PURE__ */ v(g, { children: [
|
|
359
404
|
e == null ? "<cit>" : `<cit data-id="${e}">`,
|
|
360
405
|
t,
|
|
361
406
|
"</cit>"
|
|
362
|
-
] }),
|
|
363
|
-
let { onPreview: o, onOpenInBrowser: s, buildLabels: c } = n, l = C(() => r ? G(e) : W(t.length > 0 ?
|
|
407
|
+
] }), Se = (e, t, n, r = !1, a = !1) => {
|
|
408
|
+
let { onPreview: o, onOpenInBrowser: s, buildLabels: c } = n, l = C(() => r ? G(e) : W(t.length > 0 ? U(e, t) : e), [
|
|
364
409
|
e,
|
|
365
410
|
t,
|
|
366
411
|
r
|
|
@@ -370,12 +415,12 @@ var T = {
|
|
|
370
415
|
markdownComponents: C(() => {
|
|
371
416
|
let e = /* @__PURE__ */ new Map();
|
|
372
417
|
for (let n of t) {
|
|
373
|
-
let t =
|
|
418
|
+
let t = be(n);
|
|
374
419
|
t != null && e.set(t, n);
|
|
375
420
|
}
|
|
376
421
|
let n = (e) => {
|
|
377
422
|
let { cardLabels: t, markerLabels: n } = c(e);
|
|
378
|
-
return /* @__PURE__ */ _(
|
|
423
|
+
return /* @__PURE__ */ _(N, {
|
|
379
424
|
group: e,
|
|
380
425
|
onPreview: (t) => o(t, e),
|
|
381
426
|
onOpenInBrowser: s,
|
|
@@ -387,7 +432,7 @@ var T = {
|
|
|
387
432
|
return r ? n(r) : null;
|
|
388
433
|
}, l = { cit: (t) => {
|
|
389
434
|
let r = t["data-id"] == null ? void 0 : e.get(t["data-id"]);
|
|
390
|
-
return r ? n(r) :
|
|
435
|
+
return r ? n(r) : xe(t["data-id"], t.children);
|
|
391
436
|
} };
|
|
392
437
|
return t.length === 0 ? u ? l : {} : {
|
|
393
438
|
...l,
|
|
@@ -417,20 +462,20 @@ var T = {
|
|
|
417
462
|
} catch {
|
|
418
463
|
return e;
|
|
419
464
|
}
|
|
420
|
-
},
|
|
465
|
+
}, Ce = (e) => {
|
|
421
466
|
try {
|
|
422
467
|
let t = new URL(e);
|
|
423
468
|
return t.pathname.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? t.hostname;
|
|
424
469
|
} catch {
|
|
425
470
|
return e.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? e;
|
|
426
471
|
}
|
|
427
|
-
}, J = (e, t) => e.body?.source?.attachment?.title ??
|
|
472
|
+
}, J = (e, t) => e.body?.source?.attachment?.title ?? Ce(t), Y = (e) => {
|
|
428
473
|
let t = e.target?.selector;
|
|
429
474
|
return t?.type === "html_tag" ? t : void 0;
|
|
430
|
-
},
|
|
475
|
+
}, we = (e) => Y(e) != null, X = (e) => {
|
|
431
476
|
let t = /* @__PURE__ */ new Map();
|
|
432
477
|
for (let n of e) {
|
|
433
|
-
if (
|
|
478
|
+
if (we(n)) continue;
|
|
434
479
|
let e = n.body?.source?.attachment?.url;
|
|
435
480
|
if (e == null) continue;
|
|
436
481
|
let r = t.get(e);
|
|
@@ -460,16 +505,16 @@ var T = {
|
|
|
460
505
|
});
|
|
461
506
|
}
|
|
462
507
|
return Array.from(t.values());
|
|
463
|
-
},
|
|
508
|
+
}, Te = (e) => [...Z(e), ...X(e)], Ee = (e, t) => {
|
|
464
509
|
let n = e.body?.source?.attachment?.url;
|
|
465
510
|
return n == null || !t.includes(e) ? [e] : t.filter((e) => e.body?.source?.attachment?.url === n);
|
|
466
|
-
}, Q = (e) => e.url == null && e.reference_url != null,
|
|
467
|
-
let t =
|
|
511
|
+
}, Q = (e) => e.url == null && e.reference_url != null, De = /^(.*\.pdf)(?:#page=(\d+))?$/i, $ = (e) => {
|
|
512
|
+
let t = De.exec(e);
|
|
468
513
|
return t ? {
|
|
469
514
|
baseUrl: t[1],
|
|
470
515
|
page: t[2] == null ? null : Number(t[2])
|
|
471
516
|
} : null;
|
|
472
|
-
},
|
|
517
|
+
}, Oe = (t) => X((t ?? []).filter(Q).map((t) => {
|
|
473
518
|
let n = t.reference_url, r = $(n) != null;
|
|
474
519
|
return { body: {
|
|
475
520
|
quote: t.data,
|
|
@@ -484,4 +529,4 @@ var T = {
|
|
|
484
529
|
} };
|
|
485
530
|
}));
|
|
486
531
|
//#endregion
|
|
487
|
-
export {
|
|
532
|
+
export { D as CitationCard, A as CitationCardProvider, N as CitationDropdown, O as CitationMarker, T as QUOTATIONS_CLASS, I as annotationHighlightId, H as annotationToOfficeHighlightLocations, se as annotationsToPdfHighlights, Ee as gatherSameSourceAnnotations, ce as getAnnotationPdfPage, Oe as getReferenceAttachmentGroups, Te as groupAnnotations, Z as groupAnnotationsByCitId, X as groupAnnotationsBySource, U as injectCitationSentinels, R as isDocxRangeSelector, V as isExcelRcRangeSelector, z as isPptxRangeSelector, Q as isReferenceOnlyAttachment, $ as parsePdfPageReference, K as replaceSentinelsInChildren, L as resolveMessageAnnotations, G as stripCitTagsWhileStreaming, fe as useAnnotations, me as useCitationCard, j as useCitationCardContext, Se as useCitationMarkdownComponents };
|
|
@@ -38,6 +38,26 @@ export interface PptxOfficeHighlightLocation {
|
|
|
38
38
|
/** The cited text, expected to equal the text resolved over `[start, endExclusive)`. */
|
|
39
39
|
text: string;
|
|
40
40
|
}
|
|
41
|
+
/** Temporary table-row location decoded from a DOCX text anchor. */
|
|
42
|
+
export interface DocxTableRowOfficeHighlightLocation {
|
|
43
|
+
/** Wire selector type. */
|
|
44
|
+
type: 'docx_text_anchor';
|
|
45
|
+
/** Plain text of each cell, in column order. */
|
|
46
|
+
cells: string[];
|
|
47
|
+
/** 1-based matching row in the document body. */
|
|
48
|
+
occurrence: number;
|
|
49
|
+
}
|
|
50
|
+
/** Temporary table-row location decoded from a PPTX text anchor. */
|
|
51
|
+
export interface PptxTableRowOfficeHighlightLocation {
|
|
52
|
+
/** Wire selector type. */
|
|
53
|
+
type: 'pptx_text_anchor';
|
|
54
|
+
/** Plain text of each cell, in column order. */
|
|
55
|
+
cells: string[];
|
|
56
|
+
/** 1-based matching row on the specified slide. */
|
|
57
|
+
occurrence: number;
|
|
58
|
+
/** 1-based slide number. */
|
|
59
|
+
slide: number;
|
|
60
|
+
}
|
|
41
61
|
/** A validated, normalised XLSX cell or same-row cell-range location. */
|
|
42
62
|
export interface ExcelOfficeHighlightLocation {
|
|
43
63
|
/** Discriminates this location within `OfficeHighlightLocation`. Mirrors the wire selector's `type`. */
|
|
@@ -58,5 +78,5 @@ export interface ExcelOfficeHighlightLocation {
|
|
|
58
78
|
* cycle is not permitted). `libs/chat-hooks`, which already depends on both,
|
|
59
79
|
* maps this into `OoxmlHighlight`/`OoxmlHighlightLocation`.
|
|
60
80
|
*/
|
|
61
|
-
export type OfficeHighlightLocation = DocxOfficeHighlightLocation | PptxOfficeHighlightLocation | ExcelOfficeHighlightLocation;
|
|
81
|
+
export type OfficeHighlightLocation = DocxOfficeHighlightLocation | PptxOfficeHighlightLocation | DocxTableRowOfficeHighlightLocation | PptxTableRowOfficeHighlightLocation | ExcelOfficeHighlightLocation;
|
|
62
82
|
//# sourceMappingURL=office-highlight.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"office-highlight.d.ts","sourceRoot":"","sources":["../../src/models/office-highlight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4GAA4G;IAC5G,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yEAAyE;AACzE,MAAM,WAAW,4BAA4B;IAC3C,wGAAwG;IACxG,IAAI,EAAE,gBAAgB,CAAC;IACvB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,iGAAiG;IACjG,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,2BAA2B,GAC3B,2BAA2B,GAC3B,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"office-highlight.d.ts","sourceRoot":"","sources":["../../src/models/office-highlight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4GAA4G;IAC5G,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oEAAoE;AACpE,MAAM,WAAW,mCAAmC;IAClD,0BAA0B;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,mCAAmC;IAClD,0BAA0B;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yEAAyE;AACzE,MAAM,WAAW,4BAA4B;IAC3C,wGAAwG;IACxG,IAAI,EAAE,gBAAgB,CAAC;IACvB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,iGAAiG;IACjG,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,2BAA2B,GAC3B,2BAA2B,GAC3B,mCAAmC,GACnC,mCAAmC,GACnC,4BAA4B,CAAC"}
|
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.2.0-dev.
|
|
4
|
+
"version": "1.2.0-dev.69",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"react": "^19.2.8",
|
|
26
|
-
"@epam/ai-dial-chat-shared": "1.2.0-dev.
|
|
27
|
-
"@epam/ai-dial-ui-kit": "^0.
|
|
26
|
+
"@epam/ai-dial-chat-shared": "1.2.0-dev.69",
|
|
27
|
+
"@epam/ai-dial-ui-kit": "^0.15.0-dev.9"
|
|
28
28
|
},
|
|
29
29
|
"repository": {
|
|
30
30
|
"type": "git",
|
package/utils/annotation.d.ts
CHANGED
|
@@ -5,11 +5,34 @@ import { OfficeHighlightLocation } from '../models/office-highlight';
|
|
|
5
5
|
* Maps a list of annotations to `InputHighlightData` entries for the PDF viewer.
|
|
6
6
|
* Recognizes `pdf_bbox` selectors and both `pdf_region` coordinate forms
|
|
7
7
|
* (`lt`/`wh` and legacy `left`/`top`/`width`/`height`); annotations whose
|
|
8
|
-
* `body.selector` contains none of these are skipped. The highlight `id`
|
|
9
|
-
* `
|
|
8
|
+
* `body.selector` contains none of these are skipped. The highlight `id` comes
|
|
9
|
+
* from `annotationHighlightId`, so it identifies the annotation itself rather
|
|
10
|
+
* than its position in this particular input list.
|
|
10
11
|
*/
|
|
11
12
|
export declare const annotationsToPdfHighlights: (annotations: Annotation[]) => InputHighlightData[];
|
|
12
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Returns a stable string ID for a given annotation, matching the IDs
|
|
15
|
+
* `annotationsToPdfHighlights` produces (it calls this function) and the ones
|
|
16
|
+
* the Office highlight path assigns.
|
|
17
|
+
*
|
|
18
|
+
* Resolved in order:
|
|
19
|
+
* 1. `annotation.index` when the wire supplied one — already unique within the
|
|
20
|
+
* message, and short.
|
|
21
|
+
* 2. Otherwise an id derived from the annotation's own identity: its `cit` tag
|
|
22
|
+
* id plus a digest of its selectors. Two annotations differing in either
|
|
23
|
+
* part get different ids; two agreeing in both describe the same cited
|
|
24
|
+
* region and may share one.
|
|
25
|
+
* 3. Otherwise `fallbackIndex` — the annotation's position in the caller's
|
|
26
|
+
* list, for an annotation carrying neither an index, a `cit` id, nor a
|
|
27
|
+
* recognised selector.
|
|
28
|
+
*
|
|
29
|
+
* The id is opaque: compare it, never parse it. A position-derived id is not
|
|
30
|
+
* unique beyond the list it came from, which is why it is the last resort — a
|
|
31
|
+
* caller gathering one citation group at a time would otherwise give every
|
|
32
|
+
* single-annotation group the same id, and the canvas could not tell two
|
|
33
|
+
* citations of one document apart (issue #8907). Ids are never persisted and
|
|
34
|
+
* never sent over the wire.
|
|
35
|
+
*/
|
|
13
36
|
export declare const annotationHighlightId: (annotation: Annotation, fallbackIndex: number) => string;
|
|
14
37
|
/**
|
|
15
38
|
* Returns the first positive integer PDF page in the annotation's body selectors,
|
|
@@ -45,7 +68,7 @@ export declare const isExcelRcRangeSelector: (selector: AnnotationSelector) => s
|
|
|
45
68
|
/**
|
|
46
69
|
* Converts an annotation's `body.selector` (scalar or array) to validated
|
|
47
70
|
* `OfficeHighlightLocation` entries, skipping any selector that is not a
|
|
48
|
-
* recognised Office range or that fails validation
|
|
71
|
+
* recognised Office range or temporary table-row anchor, or that fails validation.
|
|
49
72
|
*/
|
|
50
73
|
export declare const annotationToOfficeHighlightLocations: (annotation: Annotation) => OfficeHighlightLocation[];
|
|
51
74
|
//# sourceMappingURL=annotation.d.ts.map
|
|
@@ -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,EACP,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAGV,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,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;AAgL1E;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GACrC,aAAa,UAAU,EAAE,KACxB,kBAAkB,EAoBjB,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qBAAqB,GAChC,YAAY,UAAU,EACtB,eAAe,MAAM,KACpB,MAG+D,CAAC;AAEnE;;;;;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,EAuBzB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AnnotationSelector } from '@epam/ai-dial-chat-shared';
|
|
2
|
+
import { DocxTableRowOfficeHighlightLocation, PptxTableRowOfficeHighlightLocation } from '../models/office-highlight';
|
|
3
|
+
/** Returns a validated table-row location for the temporary Office anchor format. */
|
|
4
|
+
export declare const normalizeOfficeTableAnchor: (selector: AnnotationSelector) => DocxTableRowOfficeHighlightLocation | PptxTableRowOfficeHighlightLocation | undefined;
|
|
5
|
+
//# sourceMappingURL=office-table-anchor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"office-table-anchor.d.ts","sourceRoot":"","sources":["../../src/utils/office-table-anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EACV,mCAAmC,EACnC,mCAAmC,EACpC,MAAM,4BAA4B,CAAC;AAwCpC,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,GACrC,UAAU,kBAAkB,KAE1B,mCAAmC,GACnC,mCAAmC,GACnC,SA2BH,CAAC"}
|