@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.
@@ -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;AACtC,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,CAqJ9C,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;AAEnE,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,CAyEtD,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":"AACA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtC,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,CAwBlD,CAAC"}
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,GAC5B,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"}
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
- }, E = ({ group: r, activeIndex: a, onIndexChange: o, onPreview: d, onOpenInBrowser: p, headerIcon: g, labels: y, typography: b, colors: x }) => {
13
- let S = r.annotations.length, C = r.annotations[a] ?? r.primaryAnnotation, w = S > 1, E = r.primaryAnnotation.body?.source?.attachment?.type, D = d == null || E === e.HTML || E === e.XHTML, O = b?.sourceNameClassName ?? "dial-tiny-text", k = b?.titleClassName ?? "dial-body-semi-text", A = b?.quoteClassName ?? "dial-small-text", j = b?.quoteStrongClassName ?? "dial-small-semi-text", M = b?.switcherClassName ?? "dial-tiny-text", N = n({
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: N,
25
- className: i("flex w-[400px] flex-col gap-3 rounded-lg p-4 shadow-lg", T.card),
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(O, "min-w-0", T.sourceName)
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(M, T.switcher),
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(k, T.title, "break-words"),
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(A, T.quote, "line-clamp-6 break-words", w && "min-h-[3lh]"),
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(A, T.quote),
76
- ul: i(A, "ps-3"),
77
- ol: i(A, "ps-3"),
78
- strong: j
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: D ? y.openInBrowser : y.download,
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
- }, D = ({ annotationCount: e, onOpen: t, icon: n, labels: r, labelClassName: i = "dial-caption-text" }) => {
98
- let a = /* @__PURE__ */ v("span", {
99
- className: "flex items-center gap-1",
100
- children: [n, /* @__PURE__ */ _("span", {
101
- className: i,
102
- children: e > 1 ? r.labelWithOverflow : r.label
103
- })]
104
- });
105
- return /* @__PURE__ */ _(d, {
106
- size: c.Small,
107
- label: a,
108
- "aria-label": r.ariaLabel,
109
- onClick: t
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
- }, j = { content: "_content_xzs0h_1" }, M = ({ group: e, onPreview: t, onOpenInBrowser: n, icon: r, headerIcon: a, cardLabels: o, markerLabels: s, cardTypography: c, markerLabelClassName: l }) => {
116
- let u = A(), d = S(), f = u.isOpen(d), m = u.getActiveIndex(e.groupKey), h = b((e) => {
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", j.content),
130
- tooltip: /* @__PURE__ */ _(E, {
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__ */ _(D, {
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
- }, N = {
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
- }, ee = (e) => {
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 = ee(t.bbox));
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.flatMap((e, t) => {
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: String(e.index ?? t),
253
+ id: I(e, t),
210
254
  bboxes: i,
211
- style: N
255
+ style: ne
212
256
  }];
213
- }), te = (e, t) => String(e.index ?? t), ne = (e) => {
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
- }, I = (e) => {
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
- }, L = (e) => {
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
- }, R = (e) => {
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
- }, z = (e) => typeof e == "object" && !!e && typeof e.row == "number" && typeof e.col == "number", B = (e) => {
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" && z(t.start) && (t.end === void 0 || t.end === null || z(t.end));
241
- }, re = (e) => {
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
- }, ie = (e) => {
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
- }, ae = (e) => {
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
- }, oe = (e) => {
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 (L(e)) {
281
- let t = re(e);
324
+ if (R(e)) {
325
+ let t = le(e);
282
326
  return t ? [t] : [];
283
327
  }
284
- if (R(e)) {
285
- let t = ie(e);
328
+ if (z(e)) {
329
+ let t = ue(e);
286
330
  return t ? [t] : [];
287
331
  }
288
- if (B(e)) {
289
- let t = ae(e);
332
+ if (V(e)) {
333
+ let t = de(e);
290
334
  return t ? [t] : [];
291
335
  }
292
- return [];
336
+ let t = te(e);
337
+ return t ? [t] : [];
293
338
  });
294
- }, se = (e, t) => C(() => t ? [] : I(e), [t, e]), ce = {
339
+ }, fe = (e, t) => C(() => t ? [] : L(e), [t, e]), pe = {
295
340
  openOwnerKey: null,
296
341
  activeIndexByGroup: {}
297
- }, le = () => {
298
- let [e, t] = w(ce), n = b((e) => {
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
- }, V = /⟦C(\d+)⟧/g, H = (e, t) => {
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
- }, U = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>/g, ue = /^<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;"), W = (e) => e.replace(de, (e) => ue.test(e) ? e : fe(e)), G = (e) => W(e).replace(U, ""), K = (e, t) => {
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, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), 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(V);
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
- }, pe = (e) => {
400
+ }, be = (e) => {
356
401
  let t = e.primaryAnnotation.target?.selector;
357
402
  return t?.type === "html_tag" ? t.id : void 0;
358
- }, me = (e, t) => /* @__PURE__ */ v(g, { children: [
403
+ }, xe = (e, t) => /* @__PURE__ */ v(g, { children: [
359
404
  e == null ? "<cit>" : `<cit data-id="${e}">`,
360
405
  t,
361
406
  "</cit>"
362
- ] }), he = (e, t, n, r = !1, a = !1) => {
363
- let { onPreview: o, onOpenInBrowser: s, buildLabels: c } = n, l = C(() => r ? G(e) : W(t.length > 0 ? H(e, t) : e), [
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 = pe(n);
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__ */ _(M, {
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) : me(t["data-id"], t.children);
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
- }, ge = (e) => {
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 ?? ge(t), Y = (e) => {
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
- }, _e = (e) => Y(e) != null, X = (e) => {
475
+ }, we = (e) => Y(e) != null, X = (e) => {
431
476
  let t = /* @__PURE__ */ new Map();
432
477
  for (let n of e) {
433
- if (_e(n)) continue;
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
- }, ve = (e) => [...Z(e), ...X(e)], ye = (e, t) => {
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, be = /^(.*\.pdf)(?:#page=(\d+))?$/i, $ = (e) => {
467
- let t = be.exec(e);
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
- }, xe = (t) => X((t ?? []).filter(Q).map((t) => {
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 { E as CitationCard, k as CitationCardProvider, M as CitationDropdown, D as CitationMarker, te as annotationHighlightId, oe as annotationToOfficeHighlightLocations, F as annotationsToPdfHighlights, ye as gatherSameSourceAnnotations, ne as getAnnotationPdfPage, xe as getReferenceAttachmentGroups, ve as groupAnnotations, Z as groupAnnotationsByCitId, X as groupAnnotationsBySource, H as injectCitationSentinels, L as isDocxRangeSelector, B as isExcelRcRangeSelector, R as isPptxRangeSelector, Q as isReferenceOnlyAttachment, $ as parsePdfPageReference, K as replaceSentinelsInChildren, I as resolveMessageAnnotations, G as stripCitTagsWhileStreaming, se as useAnnotations, le as useCitationCard, A as useCitationCardContext, he as useCitationMarkdownComponents };
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.6",
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.6",
27
- "@epam/ai-dial-ui-kit": "^0.14.2"
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",
@@ -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` is
9
- * `annotation.index` when present, otherwise the position in the input array.
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
- /** Returns a stable string ID for a given annotation, matching the IDs produced by `annotationsToPdfHighlights`. */
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 — never throwing.
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;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"}
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"}