@athenaintel/react 0.10.37 → 0.10.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -47482,6 +47482,51 @@ const ASSET_TYPE_ALIASES = {
47482
47482
  word_document: "document"
47483
47483
  };
47484
47484
  const isAthenaSpacesPath = (url) => url.pathname.replace(/\/+$/, "") === "/dashboard/spaces";
47485
+ const getFiniteNumber = (url, key) => {
47486
+ const value = url.searchParams.get(key);
47487
+ if (value === null || value.trim() === "") return null;
47488
+ const parsed = Number(value);
47489
+ return Number.isFinite(parsed) ? parsed : null;
47490
+ };
47491
+ const parseCitationReference = ({
47492
+ url,
47493
+ assetId
47494
+ }) => {
47495
+ const reference2 = { id: assetId };
47496
+ const anchorType = url.searchParams.get("anchor");
47497
+ const page = getFiniteNumber(url, "page");
47498
+ switch (anchorType) {
47499
+ case "page":
47500
+ if (page !== null) reference2.anchor = { type: anchorType, page };
47501
+ break;
47502
+ case "page_range": {
47503
+ const startPage = getFiniteNumber(url, "start_page");
47504
+ const endPage = getFiniteNumber(url, "end_page");
47505
+ if (startPage !== null && endPage !== null) {
47506
+ reference2.anchor = { type: anchorType, startPage, endPage };
47507
+ }
47508
+ break;
47509
+ }
47510
+ case "page_rect": {
47511
+ const x = getFiniteNumber(url, "x");
47512
+ const y = getFiniteNumber(url, "y");
47513
+ const width = getFiniteNumber(url, "width");
47514
+ const height = getFiniteNumber(url, "height");
47515
+ if (page !== null && x !== null && y !== null && width !== null && height !== null) {
47516
+ reference2.anchor = { type: anchorType, page, x, y, width, height };
47517
+ }
47518
+ break;
47519
+ }
47520
+ case "page_text": {
47521
+ const text2 = url.searchParams.get("text");
47522
+ if (page !== null && text2) reference2.anchor = { type: anchorType, page, text: text2 };
47523
+ break;
47524
+ }
47525
+ }
47526
+ const excerpt = url.searchParams.get("excerpt");
47527
+ if (excerpt) reference2.meta = { excerpt };
47528
+ return reference2;
47529
+ };
47485
47530
  const normalizeAssetType = (value) => {
47486
47531
  if (!value) {
47487
47532
  return null;
@@ -47570,7 +47615,8 @@ const parseAthenaCitationLink = ({
47570
47615
  url,
47571
47616
  assetId,
47572
47617
  assetIds,
47573
- assetType: normalizeAssetType(url.searchParams.get("asset_type") ?? url.searchParams.get("type"))
47618
+ assetType: normalizeAssetType(url.searchParams.get("asset_type") ?? url.searchParams.get("type")),
47619
+ reference: parseCitationReference({ url, assetId })
47574
47620
  };
47575
47621
  };
47576
47622
  const isAthenaCitationUrl = ({
@@ -56239,6 +56285,8 @@ function isAthenaAssetCitationClickEvent(value) {
56239
56285
  function isAthenaAssetCitationActionEvent(value) {
56240
56286
  return typeof value === "object" && value !== null && "type" in value && value.type === ATHENA_ASSET_CITATION_ACTION_MESSAGE && "version" in value && value.version === 1 && "action" in value && value.action === "open-in-spaces" && "reference" in value && typeof value.reference === "object" && value.reference !== null && "id" in value.reference && typeof value.reference.id === "string";
56241
56287
  }
56288
+ const DEFAULT_ASSET_EMBED_READ_ONLY = false;
56289
+ const DEFAULT_ASSET_EMBED_DISPLAY_MODE = "full";
56242
56290
  function buildAssetEmbedRequestBody({
56243
56291
  assetId,
56244
56292
  readOnly,
@@ -56351,10 +56399,92 @@ function resolveAssetEmbedUrl({
56351
56399
  return embedUrl;
56352
56400
  }
56353
56401
  }
56354
- function buildSdkAssetEmbedUrl(embedUrl) {
56402
+ function setFiniteNumberParam({ params, key, value }) {
56403
+ if (typeof value === "number" && Number.isFinite(value)) {
56404
+ params.set(key, String(value));
56405
+ }
56406
+ }
56407
+ function appendCitationReferenceParams({
56408
+ params,
56409
+ reference: reference2
56410
+ }) {
56411
+ var _a2;
56412
+ const anchor = reference2 == null ? void 0 : reference2.anchor;
56413
+ if (!anchor || typeof anchor !== "object" || !("type" in anchor) || typeof anchor.type !== "string") {
56414
+ return;
56415
+ }
56416
+ switch (anchor.type) {
56417
+ case "page":
56418
+ params.set("anchor", anchor.type);
56419
+ setFiniteNumberParam({
56420
+ params,
56421
+ key: "page",
56422
+ value: "page" in anchor ? anchor.page : void 0
56423
+ });
56424
+ break;
56425
+ case "page_range":
56426
+ params.set("anchor", anchor.type);
56427
+ setFiniteNumberParam({
56428
+ params,
56429
+ key: "start_page",
56430
+ value: "startPage" in anchor ? anchor.startPage : void 0
56431
+ });
56432
+ setFiniteNumberParam({
56433
+ params,
56434
+ key: "end_page",
56435
+ value: "endPage" in anchor ? anchor.endPage : void 0
56436
+ });
56437
+ break;
56438
+ case "page_rect":
56439
+ params.set("anchor", anchor.type);
56440
+ setFiniteNumberParam({
56441
+ params,
56442
+ key: "page",
56443
+ value: "page" in anchor ? anchor.page : void 0
56444
+ });
56445
+ setFiniteNumberParam({
56446
+ params,
56447
+ key: "x",
56448
+ value: "x" in anchor ? anchor.x : void 0
56449
+ });
56450
+ setFiniteNumberParam({
56451
+ params,
56452
+ key: "y",
56453
+ value: "y" in anchor ? anchor.y : void 0
56454
+ });
56455
+ setFiniteNumberParam({
56456
+ params,
56457
+ key: "width",
56458
+ value: "width" in anchor ? anchor.width : void 0
56459
+ });
56460
+ setFiniteNumberParam({
56461
+ params,
56462
+ key: "height",
56463
+ value: "height" in anchor ? anchor.height : void 0
56464
+ });
56465
+ break;
56466
+ case "page_text":
56467
+ params.set("anchor", anchor.type);
56468
+ setFiniteNumberParam({
56469
+ params,
56470
+ key: "page",
56471
+ value: "page" in anchor ? anchor.page : void 0
56472
+ });
56473
+ if ("text" in anchor && typeof anchor.text === "string") {
56474
+ params.set("text", anchor.text);
56475
+ }
56476
+ break;
56477
+ }
56478
+ const excerpt = (_a2 = reference2.meta) == null ? void 0 : _a2.excerpt;
56479
+ if (typeof excerpt === "string" && excerpt) {
56480
+ params.set("excerpt", excerpt);
56481
+ }
56482
+ }
56483
+ function buildSdkAssetEmbedUrl(embedUrl, reference2) {
56355
56484
  try {
56356
56485
  const url = new URL(embedUrl);
56357
56486
  url.searchParams.set("athena_sdk_bridge", "1");
56487
+ appendCitationReferenceParams({ params: url.searchParams, reference: reference2 });
56358
56488
  return url.toString();
56359
56489
  } catch {
56360
56490
  return embedUrl;
@@ -56390,9 +56520,9 @@ function useAssetEmbed(assetId, options = {
56390
56520
  backendUrl: ""
56391
56521
  }) {
56392
56522
  const {
56393
- readOnly = false,
56523
+ readOnly = DEFAULT_ASSET_EMBED_READ_ONLY,
56394
56524
  expiresInSeconds = 60 * 60 * 24 * 30,
56395
- displayMode = "minimal",
56525
+ displayMode = DEFAULT_ASSET_EMBED_DISPLAY_MODE,
56396
56526
  backendUrl,
56397
56527
  appUrl,
56398
56528
  apiKey,
@@ -56484,8 +56614,9 @@ const DEFAULT_STYLE = {
56484
56614
  const AUTH_SYNC_INTERVAL_MS = 6e4;
56485
56615
  const AthenaAssetEmbed = ({
56486
56616
  assetId,
56487
- displayMode = "full",
56488
- readOnly = true,
56617
+ reference: reference2,
56618
+ displayMode = DEFAULT_ASSET_EMBED_DISPLAY_MODE,
56619
+ readOnly = DEFAULT_ASSET_EMBED_READ_ONLY,
56489
56620
  expiresInSeconds,
56490
56621
  citationBehavior,
56491
56622
  onCitationClick,
@@ -56521,7 +56652,10 @@ const AthenaAssetEmbed = ({
56521
56652
  return null;
56522
56653
  }
56523
56654
  }, [embedUrl]);
56524
- const iframeSrc = useMemo(() => embedUrl ? buildSdkAssetEmbedUrl(embedUrl) : null, [embedUrl]);
56655
+ const iframeSrc = useMemo(
56656
+ () => embedUrl ? buildSdkAssetEmbedUrl(embedUrl, reference2) : null,
56657
+ [embedUrl, reference2]
56658
+ );
56525
56659
  const effectiveCitationBehavior = resolveAthenaAssetCitationBehavior({
56526
56660
  citationBehavior,
56527
56661
  hasCitationClickHandler: !!onCitationClick