@epam/ai-dial-quotations 1.2.0-dev.11 → 1.2.0-dev.112

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,CAqJ9C,CAAC"}
@@ -12,6 +12,8 @@ export interface CitationDropdownProps {
12
12
  * group has nothing previewable — the "Preview" button is hidden.
13
13
  */
14
14
  onPreview?: (annotation: Annotation) => void;
15
+ /** Whether the host can preview the active annotation. Defaults to allowing preview when `onPreview` is provided. */
16
+ isPreviewable?: (annotation: Annotation) => boolean;
15
17
  /** Called when the user clicks "Open in browser" for an annotation. */
16
18
  onOpenInBrowser: (annotation: Annotation) => void;
17
19
  /** Optional icon rendered before the marker's label. */
@@ -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,qHAAqH;IACrH,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IACpD,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,CA6EtD,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"}
@@ -7,6 +7,8 @@ import { AnnotationGroup } from '../../utils/group-annotations-by-source';
7
7
  export interface UseCitationMarkdownComponentsCallbacks {
8
8
  /** Called when a citation marker's preview action is invoked, with the clicked annotation and its group. */
9
9
  onPreview(annotation: Annotation, group: AnnotationGroup): void;
10
+ /** Whether the host can preview an annotation. Defaults to allowing preview. */
11
+ isPreviewable?(annotation: Annotation): boolean;
10
12
  /** Called when a citation marker's open-in-browser action is invoked. */
11
13
  onOpenInBrowser(annotation: Annotation): void;
12
14
  /** Builds the translated label bundles used by a given citation group's card and marker. */
@@ -1 +1 @@
1
- {"version":3,"file":"useCitationMarkdownComponents.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCitationMarkdownComponents/useCitationMarkdownComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAO3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE/E,6FAA6F;AAC7F,MAAM,WAAW,sCAAsC;IACrD,4GAA4G;IAC5G,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAChE,yEAAyE;IACzE,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,4FAA4F;IAC5F,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG;QACnC,UAAU,EAAE,kBAAkB,CAAC;QAC/B,YAAY,EAAE,oBAAoB,CAAC;KACpC,CAAC;CACH;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,EACf,QAAQ,eAAe,EAAE,EACzB,WAAW,sCAAsC,EACjD,qBAAmB,EACnB,6BAA2B,KAC1B;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,UAAU,CAAA;CA8F5D,CAAC"}
1
+ {"version":3,"file":"useCitationMarkdownComponents.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCitationMarkdownComponents/useCitationMarkdownComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAO3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE/E,6FAA6F;AAC7F,MAAM,WAAW,sCAAsC;IACrD,4GAA4G;IAC5G,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAChE,gFAAgF;IAChF,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;IAChD,yEAAyE;IACzE,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,4FAA4F;IAC5F,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG;QACnC,UAAU,EAAE,kBAAkB,CAAC;QAC/B,YAAY,EAAE,oBAAoB,CAAC;KACpC,CAAC;CACH;AAiCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,EACf,QAAQ,eAAe,EAAE,EACzB,WAAW,sCAAsC,EACjD,qBAAmB,EACnB,6BAA2B,KAC1B;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,UAAU,CAAA;CAgG5D,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 = C.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", P = 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: P,
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,72 +92,97 @@ 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
- e || u.closePopup(d);
118
- }, [u, d]), g = C(() => t ? (e) => {
119
- t(e), u.closePopup(d);
117
+ }, M = { content: "_content_xzs0h_1" }, N = ({ group: e, onPreview: t, isPreviewable: n, onOpenInBrowser: r, icon: a, headerIcon: o, cardLabels: s, markerLabels: c, cardTypography: l, markerLabelClassName: u }) => {
118
+ let d = j(), f = S(), m = d.isOpen(f), h = d.getActiveIndex(e.groupKey), g = e.annotations[h] ?? e.primaryAnnotation, v = n?.(g) ?? !0, y = b((e) => {
119
+ e || d.closePopup(f);
120
+ }, [d, f]), x = C(() => t && v ? (e) => {
121
+ t(e), d.closePopup(f);
120
122
  } : void 0, [
121
123
  t,
122
- u,
123
- d
124
+ v,
125
+ d,
126
+ f
124
127
  ]);
125
128
  return /* @__PURE__ */ _(p, {
126
- open: f,
127
- onOpenChange: h,
129
+ open: m,
130
+ onOpenChange: y,
128
131
  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, {
132
+ contentClassName: i("!p-0 !bg-transparent !border-0 !shadow-none !max-w-none !rounded-none", M.content, T.citationDropdown),
133
+ tooltip: /* @__PURE__ */ _(D, {
131
134
  group: e,
132
- activeIndex: m,
133
- onIndexChange: (t) => u.setActiveIndex(e.groupKey, t),
134
- onPreview: g,
135
- onOpenInBrowser: n,
136
- headerIcon: a,
137
- labels: o,
138
- typography: c
135
+ activeIndex: h,
136
+ onIndexChange: (t) => d.setActiveIndex(e.groupKey, t),
137
+ onPreview: x,
138
+ onOpenInBrowser: r,
139
+ headerIcon: o,
140
+ labels: s,
141
+ typography: l
139
142
  }),
140
- children: /* @__PURE__ */ _(D, {
143
+ children: /* @__PURE__ */ _(O, {
141
144
  sourceName: e.sourceName,
142
145
  annotationCount: e.annotations.length,
143
- onOpen: () => u.openPopup(d),
144
- icon: r,
145
- labels: s,
146
- labelClassName: l
146
+ onOpen: () => d.openPopup(f),
147
+ icon: a,
148
+ labels: c,
149
+ labelClassName: u
147
150
  })
148
151
  });
149
- }, N = {
152
+ }, P = (e) => {
153
+ let t = e.trim();
154
+ if (!t.startsWith("|") || !t.endsWith("|") || /[\r\n]/.test(t)) return;
155
+ let n = [], r = "";
156
+ for (let e = 1; e < t.length; e += 1) {
157
+ let i = t[e], a = t[e + 1];
158
+ i === "\\" && a != null && /[!-/:-@[-`{-~]/.test(a) ? (r += a, e += 1) : i === "|" ? (n.push(r.trim()), r = "") : r += i;
159
+ }
160
+ if (!(r !== "" || n.length < 2 || n.every((e) => e === "" || /^:?-{3,}:?$/.test(e)))) return n;
161
+ }, ee = (e) => {
162
+ if (e.type !== "docx_text_anchor" && e.type !== "pptx_text_anchor") return;
163
+ let { text: t, occurrence: n, slide: r } = e;
164
+ if (typeof t != "string" || typeof n != "number" || !Number.isSafeInteger(n) || n < 1) return;
165
+ let i = P(t);
166
+ if (i != null) {
167
+ if (e.type === "docx_text_anchor") return {
168
+ type: "docx_text_anchor",
169
+ cells: i,
170
+ occurrence: n
171
+ };
172
+ if (!(typeof r != "number" || !Number.isSafeInteger(r) || r < 1)) return {
173
+ type: "pptx_text_anchor",
174
+ cells: i,
175
+ occurrence: n,
176
+ slide: r
177
+ };
178
+ }
179
+ }, te = {
150
180
  backgroundColor: "transparent",
151
181
  borderColor: "var(--stroke-accent, #1D4ED8)",
152
182
  borderWidth: "2px",
153
183
  opacity: .5,
154
184
  hoverOpacity: .5
155
- }, ee = (e) => {
185
+ }, ne = (e) => {
156
186
  if (typeof e != "object" || !e) return;
157
187
  let t = e, { lt: n, wh: r } = t;
158
188
  if (Array.isArray(n) && Array.isArray(r) && n.length >= 2 && r.length >= 2) {
@@ -171,7 +201,7 @@ var T = {
171
201
  x2: i + o,
172
202
  y2: a + s
173
203
  };
174
- }, P = (e) => {
204
+ }, F = (e) => {
175
205
  if (!r(e)) return;
176
206
  let t = e, n;
177
207
  if (t.type === "pdf_bbox") {
@@ -182,7 +212,7 @@ var T = {
182
212
  x2: i,
183
213
  y2: a
184
214
  });
185
- } else t.type === "pdf_region" && (n = ee(t.bbox));
215
+ } else t.type === "pdf_region" && (n = ne(t.bbox));
186
216
  if (n == null) return;
187
217
  let i = t.page;
188
218
  if (!(typeof i != "number" || !Number.isInteger(i) || i < 1) && [
@@ -197,48 +227,63 @@ var T = {
197
227
  x2: n.x2,
198
228
  y2: n.y2
199
229
  };
200
- }, F = (e) => e.flatMap((e, t) => {
230
+ }, I = (e) => typeof e != "object" || !e ? String(e) : Array.isArray(e) ? `[${e.map(I).join(",")}]` : `{${Object.entries(e).filter(([, e]) => e !== void 0).sort(([e], [t]) => e < t ? -1 : +(e > t)).map(([e, t]) => `${e}=${I(t)}`).join(",")}}`, re = (e) => {
231
+ let t = 5381;
232
+ for (let n = 0; n < e.length; n += 1) t = t * 33 + e.charCodeAt(n) | 0;
233
+ return (t >>> 0).toString(36);
234
+ }, ie = (e) => {
235
+ let t = e.body?.selector;
236
+ if (t == null) return;
237
+ let n = (Array.isArray(t) ? t : [t]).flatMap((e) => {
238
+ let t = F(e);
239
+ return t == null ? [] : [t];
240
+ }), r = U(e);
241
+ if (!(n.length === 0 && r.length === 0)) return I([n, r]);
242
+ }, ae = (e) => {
243
+ let t = e.target?.selector, n = t?.type === "html_tag" ? t.id : void 0, r = typeof n == "string" ? n : void 0, i = ie(e);
244
+ if (!(r == null && i == null)) return re(`${r ?? ""}|${i ?? ""}`);
245
+ }, oe = (e) => e.flatMap((e, t) => {
201
246
  let n = e.body?.selector;
202
247
  if (n == null) return [];
203
248
  let i = (Array.isArray(n) ? n : [n]).flatMap((e) => {
204
249
  if (!r(e)) return [];
205
- let t = P(e);
250
+ let t = F(e);
206
251
  return t == null ? [] : [t];
207
252
  });
208
253
  return i.length === 0 ? [] : [{
209
- id: String(e.index ?? t),
254
+ id: L(e, t),
210
255
  bboxes: i,
211
- style: N
256
+ style: te
212
257
  }];
213
- }), te = (e, t) => String(e.index ?? t), ne = (e) => {
258
+ }), L = (e, t) => e.index == null ? ae(e) ?? String(t) : String(e.index), se = (e) => {
214
259
  let t = e.body?.selector;
215
260
  if (t == null) return;
216
261
  let n = Array.isArray(t) ? t : [t];
217
262
  for (let e of n) {
218
263
  if (!r(e)) continue;
219
- let t = P(e);
264
+ let t = F(e);
220
265
  if (t != null) return t.page;
221
266
  }
222
- }, I = (e) => {
267
+ }, R = (e) => {
223
268
  let t = e.custom_content?.annotations;
224
269
  if (t?.length) return t.filter((e) => e != null && e.body?.source?.attachment?.url != null).map(a);
225
270
  let n = e.custom_fields;
226
271
  if (typeof n != "object" || !n) return [];
227
272
  let r = n.annotations;
228
273
  return !Array.isArray(r) || r.length === 0 ? [] : o(r, e.custom_content?.attachments ?? []).map(a);
229
- }, L = (e) => {
274
+ }, z = (e) => {
230
275
  if (e.type !== "docx_text_range") return !1;
231
276
  let t = e;
232
277
  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) => {
278
+ }, B = (e) => {
234
279
  if (e.type !== "pptx_text_range") return !1;
235
280
  let t = e;
236
281
  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) => {
282
+ }, V = (e) => typeof e == "object" && !!e && typeof e.row == "number" && typeof e.col == "number", H = (e) => {
238
283
  if (e.type !== "excel_rc_range") return !1;
239
284
  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) => {
285
+ return typeof t.sheet == "string" && V(t.start) && (t.end === void 0 || t.end === null || V(t.end));
286
+ }, ce = (e) => {
242
287
  let { story: t, path: n, start: r, end: i, text: a } = e;
243
288
  if (!(!n.every((e) => Number.isInteger(e)) || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
244
289
  type: "docx_text_range",
@@ -248,7 +293,7 @@ var T = {
248
293
  endExclusive: i,
249
294
  text: a
250
295
  };
251
- }, ie = (e) => {
296
+ }, le = (e) => {
252
297
  let { slide: t, shape_id: n, start: r, end: i, text: a } = e;
253
298
  if (!(!Number.isInteger(t) || t < 1 || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
254
299
  type: "pptx_text_range",
@@ -258,7 +303,7 @@ var T = {
258
303
  endExclusive: i,
259
304
  text: a
260
305
  };
261
- }, ae = (e) => {
306
+ }, ue = (e) => {
262
307
  let { sheet: t, start: n, end: r } = e;
263
308
  if (!(t.length === 0 || !Number.isInteger(n.row) || !Number.isInteger(n.col) || n.row < 1 || n.col < 1)) {
264
309
  if (r == null) return {
@@ -273,29 +318,30 @@ var T = {
273
318
  end: r
274
319
  };
275
320
  }
276
- }, oe = (e) => {
321
+ }, U = (e) => {
277
322
  let t = e.body?.selector;
278
323
  return t == null ? [] : (Array.isArray(t) ? t : [t]).flatMap((e) => {
279
324
  if (!r(e)) return [];
280
- if (L(e)) {
281
- let t = re(e);
325
+ if (z(e)) {
326
+ let t = ce(e);
282
327
  return t ? [t] : [];
283
328
  }
284
- if (R(e)) {
285
- let t = ie(e);
329
+ if (B(e)) {
330
+ let t = le(e);
286
331
  return t ? [t] : [];
287
332
  }
288
- if (B(e)) {
289
- let t = ae(e);
333
+ if (H(e)) {
334
+ let t = ue(e);
290
335
  return t ? [t] : [];
291
336
  }
292
- return [];
337
+ let t = ee(e);
338
+ return t ? [t] : [];
293
339
  });
294
- }, se = (e, t) => C(() => t ? [] : I(e), [t, e]), ce = {
340
+ }, de = (e, t) => C(() => t ? [] : R(e), [t, e]), fe = {
295
341
  openOwnerKey: null,
296
342
  activeIndexByGroup: {}
297
- }, le = () => {
298
- let [e, t] = w(ce), n = b((e) => {
343
+ }, pe = () => {
344
+ let [e, t] = w(fe), n = b((e) => {
299
345
  t((t) => ({
300
346
  ...t,
301
347
  openOwnerKey: e
@@ -326,7 +372,7 @@ var T = {
326
372
  i,
327
373
  e
328
374
  ]);
329
- }, V = /⟦C(\d+)⟧/g, H = (e, t) => {
375
+ }, me = /⟦C(\d+)⟧/g, he = (e, t) => {
330
376
  let n = t.map((e, t) => ({
331
377
  g: e,
332
378
  idx: t
@@ -339,9 +385,9 @@ var T = {
339
385
  }).sort((e, t) => t.pos - e.pos), r = e;
340
386
  for (let { idx: e, pos: t } of n) r = `${r.slice(0, t)}⟦C${e}⟧${r.slice(t)}`;
341
387
  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) => {
388
+ }, 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
389
  if (typeof e == "string") {
344
- let n = e.split(V);
390
+ let n = e.split(me);
345
391
  if (n.length === 1) return e;
346
392
  let r = [];
347
393
  return n.forEach((e, n) => {
@@ -352,45 +398,46 @@ var T = {
352
398
  let n = K(e, t);
353
399
  return Array.isArray(n) ? n : [n];
354
400
  }) : e;
355
- }, pe = (e) => {
401
+ }, be = {}, xe = (e) => {
356
402
  let t = e.primaryAnnotation.target?.selector;
357
403
  return t?.type === "html_tag" ? t.id : void 0;
358
- }, me = (e, t) => /* @__PURE__ */ v(g, { children: [
404
+ }, Se = (e, t) => /* @__PURE__ */ v(g, { children: [
359
405
  e == null ? "<cit>" : `<cit data-id="${e}">`,
360
406
  t,
361
407
  "</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), [
408
+ ] }), Ce = (e, t, n, r = !1, a = !1) => {
409
+ let { onPreview: o, isPreviewable: s, onOpenInBrowser: c, buildLabels: l } = n, u = C(() => r ? G(e) : W(t.length > 0 ? he(e, t) : e), [
364
410
  e,
365
411
  t,
366
412
  r
367
- ]), u = l.includes("<cit");
413
+ ]), d = u.includes("<cit");
368
414
  return {
369
- processedContent: l,
415
+ processedContent: u,
370
416
  markdownComponents: C(() => {
371
417
  let e = /* @__PURE__ */ new Map();
372
418
  for (let n of t) {
373
- let t = pe(n);
419
+ let t = xe(n);
374
420
  t != null && e.set(t, n);
375
421
  }
376
422
  let n = (e) => {
377
- let { cardLabels: t, markerLabels: n } = c(e);
378
- return /* @__PURE__ */ _(M, {
423
+ let { cardLabels: t, markerLabels: n } = l(e);
424
+ return /* @__PURE__ */ _(N, {
379
425
  group: e,
380
426
  onPreview: (t) => o(t, e),
381
- onOpenInBrowser: s,
427
+ isPreviewable: s,
428
+ onOpenInBrowser: c,
382
429
  cardLabels: t,
383
430
  markerLabels: n
384
431
  }, `citation-${e.groupKey}`);
385
432
  }, r = (e) => {
386
433
  let r = t[e];
387
434
  return r ? n(r) : null;
388
- }, l = { cit: (t) => {
435
+ }, u = { cit: (t) => {
389
436
  let r = t["data-id"] == null ? void 0 : e.get(t["data-id"]);
390
- return r ? n(r) : me(t["data-id"], t.children);
437
+ return r ? n(r) : Se(t["data-id"], t.children);
391
438
  } };
392
- return t.length === 0 ? u ? l : {} : {
393
- ...l,
439
+ return t.length === 0 ? d ? u : be : {
440
+ ...u,
394
441
  p: ({ children: e, ...t }) => /* @__PURE__ */ _("p", {
395
442
  ...t,
396
443
  className: i(a ? "dial-small-paragraph-text" : "dial-body-paragraph-text", "mb-3 [overflow-wrap:anywhere] [text-wrap:pretty] last:mb-0"),
@@ -407,8 +454,9 @@ var T = {
407
454
  o,
408
455
  s,
409
456
  c,
457
+ l,
410
458
  a,
411
- u
459
+ d
412
460
  ])
413
461
  };
414
462
  }, q = (e) => {
@@ -417,20 +465,20 @@ var T = {
417
465
  } catch {
418
466
  return e;
419
467
  }
420
- }, ge = (e) => {
468
+ }, we = (e) => {
421
469
  try {
422
470
  let t = new URL(e);
423
471
  return t.pathname.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? t.hostname;
424
472
  } catch {
425
473
  return e.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? e;
426
474
  }
427
- }, J = (e, t) => e.body?.source?.attachment?.title ?? ge(t), Y = (e) => {
475
+ }, J = (e, t) => e.body?.source?.attachment?.title ?? we(t), Y = (e) => {
428
476
  let t = e.target?.selector;
429
477
  return t?.type === "html_tag" ? t : void 0;
430
- }, _e = (e) => Y(e) != null, X = (e) => {
478
+ }, Te = (e) => Y(e) != null, X = (e) => {
431
479
  let t = /* @__PURE__ */ new Map();
432
480
  for (let n of e) {
433
- if (_e(n)) continue;
481
+ if (Te(n)) continue;
434
482
  let e = n.body?.source?.attachment?.url;
435
483
  if (e == null) continue;
436
484
  let r = t.get(e);
@@ -460,16 +508,16 @@ var T = {
460
508
  });
461
509
  }
462
510
  return Array.from(t.values());
463
- }, ve = (e) => [...Z(e), ...X(e)], ye = (e, t) => {
511
+ }, Ee = (e) => [...Z(e), ...X(e)], De = (e, t) => {
464
512
  let n = e.body?.source?.attachment?.url;
465
513
  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);
514
+ }, Q = (e) => e.url == null && e.reference_url != null, Oe = /^(.*\.pdf)(?:#page=(\d+))?$/i, $ = (e) => {
515
+ let t = Oe.exec(e);
468
516
  return t ? {
469
517
  baseUrl: t[1],
470
518
  page: t[2] == null ? null : Number(t[2])
471
519
  } : null;
472
- }, xe = (t) => X((t ?? []).filter(Q).map((t) => {
520
+ }, ke = (t) => X((t ?? []).filter(Q).map((t) => {
473
521
  let n = t.reference_url, r = $(n) != null;
474
522
  return { body: {
475
523
  quote: t.data,
@@ -484,4 +532,4 @@ var T = {
484
532
  } };
485
533
  }));
486
534
  //#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 };
535
+ export { D as CitationCard, A as CitationCardProvider, N as CitationDropdown, O as CitationMarker, T as QUOTATIONS_CLASS, L as annotationHighlightId, U as annotationToOfficeHighlightLocations, oe as annotationsToPdfHighlights, De as gatherSameSourceAnnotations, se as getAnnotationPdfPage, ke as getReferenceAttachmentGroups, Ee as groupAnnotations, Z as groupAnnotationsByCitId, X as groupAnnotationsBySource, he as injectCitationSentinels, z as isDocxRangeSelector, H as isExcelRcRangeSelector, B as isPptxRangeSelector, Q as isReferenceOnlyAttachment, $ as parsePdfPageReference, K as replaceSentinelsInChildren, R as resolveMessageAnnotations, G as stripCitTagsWhileStreaming, de as useAnnotations, pe as useCitationCard, j as useCitationCardContext, Ce 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.11",
4
+ "version": "1.2.0-dev.112",
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.11",
27
- "@epam/ai-dial-ui-kit": "^0.14.2"
26
+ "@epam/ai-dial-chat-shared": "1.2.0-dev.112",
27
+ "@epam/ai-dial-ui-kit": "^0.15.0-dev.15"
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"}