@fern-api/fdr-sdk 1.2.79-88e3cf0ca5 → 1.2.80-050d6c9417

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.
Files changed (82) hide show
  1. package/dist/js/client/FdrClient.js +13 -3
  2. package/dist/js/client/FdrClient.js.map +1 -1
  3. package/dist/js/client/FdrClient.mjs +13 -3
  4. package/dist/js/client/FdrClient.mjs.map +1 -1
  5. package/dist/js/client/types.js.map +1 -1
  6. package/dist/js/client/types.mjs.map +1 -1
  7. package/dist/js/converters/index.js +39 -25
  8. package/dist/js/converters/index.js.map +1 -1
  9. package/dist/js/converters/index.mjs +39 -25
  10. package/dist/js/converters/index.mjs.map +1 -1
  11. package/dist/js/index.js +52 -28
  12. package/dist/js/index.js.map +1 -1
  13. package/dist/js/index.mjs +52 -28
  14. package/dist/js/index.mjs.map +1 -1
  15. package/dist/js/navigation/index.js +39 -25
  16. package/dist/js/navigation/index.js.map +1 -1
  17. package/dist/js/navigation/index.mjs +39 -25
  18. package/dist/js/navigation/index.mjs.map +1 -1
  19. package/dist/js/navigation/ledger-root-builder.js +29 -5
  20. package/dist/js/navigation/ledger-root-builder.js.map +1 -1
  21. package/dist/js/navigation/ledger-root-builder.mjs +29 -5
  22. package/dist/js/navigation/ledger-root-builder.mjs.map +1 -1
  23. package/dist/js/navigation/types/latest.js.map +1 -1
  24. package/dist/js/navigation/types/latest.mjs.map +1 -1
  25. package/dist/js/navigation/types/v1.js.map +1 -1
  26. package/dist/js/navigation/types/v1.mjs.map +1 -1
  27. package/dist/js/orpc-client.js +13 -3
  28. package/dist/js/orpc-client.js.map +1 -1
  29. package/dist/js/orpc-client.mjs +13 -3
  30. package/dist/js/orpc-client.mjs.map +1 -1
  31. package/dist/navigation/__test__/ledger-root-builder.playgroundPreservation.test.d.ts +2 -0
  32. package/dist/navigation/__test__/ledger-root-builder.playgroundPreservation.test.d.ts.map +1 -0
  33. package/dist/navigation/__test__/ledger-root-builder.playgroundPreservation.test.js +185 -0
  34. package/dist/navigation/__test__/ledger-root-builder.playgroundPreservation.test.js.map +1 -0
  35. package/dist/navigation/ledger-root-builder.d.ts.map +1 -1
  36. package/dist/navigation/ledger-root-builder.js +41 -5
  37. package/dist/navigation/ledger-root-builder.js.map +1 -1
  38. package/dist/navigation/types/latest.d.ts +1 -0
  39. package/dist/navigation/types/latest.d.ts.map +1 -1
  40. package/dist/navigation/types/v1.d.ts +1 -0
  41. package/dist/navigation/types/v1.d.ts.map +1 -1
  42. package/dist/navigation/utils/__test__/resolveCurrentTab.test.d.ts +2 -0
  43. package/dist/navigation/utils/__test__/resolveCurrentTab.test.d.ts.map +1 -0
  44. package/dist/navigation/utils/__test__/resolveCurrentTab.test.js +70 -0
  45. package/dist/navigation/utils/__test__/resolveCurrentTab.test.js.map +1 -0
  46. package/dist/navigation/utils/findNode.d.ts.map +1 -1
  47. package/dist/navigation/utils/findNode.js +3 -30
  48. package/dist/navigation/utils/findNode.js.map +1 -1
  49. package/dist/navigation/utils/index.d.ts +1 -0
  50. package/dist/navigation/utils/index.d.ts.map +1 -1
  51. package/dist/navigation/utils/index.js +1 -0
  52. package/dist/navigation/utils/index.js.map +1 -1
  53. package/dist/navigation/utils/resolveCurrentTab.d.ts +26 -0
  54. package/dist/navigation/utils/resolveCurrentTab.d.ts.map +1 -0
  55. package/dist/navigation/utils/resolveCurrentTab.js +60 -0
  56. package/dist/navigation/utils/resolveCurrentTab.js.map +1 -0
  57. package/dist/orpc-client/docs-ledger/contract.d.ts +5126 -0
  58. package/dist/orpc-client/docs-ledger/contract.d.ts.map +1 -1
  59. package/dist/orpc-client/docs-ledger/contract.js +17 -3
  60. package/dist/orpc-client/docs-ledger/contract.js.map +1 -1
  61. package/dist/orpc-client/docs-ledger/ledger-manifest.d.ts +7356 -0
  62. package/dist/orpc-client/docs-ledger/ledger-manifest.d.ts.map +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/dist/types/navigation/__test__/ledger-root-builder.playgroundPreservation.test.d.ts +2 -0
  65. package/dist/types/navigation/__test__/ledger-root-builder.playgroundPreservation.test.d.ts.map +1 -0
  66. package/dist/types/navigation/ledger-root-builder.d.ts.map +1 -1
  67. package/dist/types/navigation/types/latest.d.ts +1 -0
  68. package/dist/types/navigation/types/latest.d.ts.map +1 -1
  69. package/dist/types/navigation/types/v1.d.ts +1 -0
  70. package/dist/types/navigation/types/v1.d.ts.map +1 -1
  71. package/dist/types/navigation/utils/__test__/resolveCurrentTab.test.d.ts +2 -0
  72. package/dist/types/navigation/utils/__test__/resolveCurrentTab.test.d.ts.map +1 -0
  73. package/dist/types/navigation/utils/findNode.d.ts.map +1 -1
  74. package/dist/types/navigation/utils/index.d.ts +1 -0
  75. package/dist/types/navigation/utils/index.d.ts.map +1 -1
  76. package/dist/types/navigation/utils/resolveCurrentTab.d.ts +26 -0
  77. package/dist/types/navigation/utils/resolveCurrentTab.d.ts.map +1 -0
  78. package/dist/types/orpc-client/docs-ledger/contract.d.ts +5126 -0
  79. package/dist/types/orpc-client/docs-ledger/contract.d.ts.map +1 -1
  80. package/dist/types/orpc-client/docs-ledger/ledger-manifest.d.ts +7356 -0
  81. package/dist/types/orpc-client/docs-ledger/ledger-manifest.d.ts.map +1 -1
  82. package/package.json +1 -1
@@ -5,12 +5,12 @@ import { isApiReferenceNode } from "../versions/latest/isApiReferenceNode";
5
5
  import { isProductGroupNode } from "../versions/latest/isProductGroupNode";
6
6
  import { isProductNode } from "../versions/latest/isProductNode";
7
7
  import { isSidebarRootNode } from "../versions/latest/isSidebarRootNode";
8
- import { isTabbedNode } from "../versions/latest/isTabbedNode";
9
8
  import { isUnversionedNode } from "../versions/latest/isUnversionedNode";
10
9
  import { isVariantNode } from "../versions/latest/isVariantNode";
11
10
  import { isVersionNode } from "../versions/latest/isVersionNode";
12
11
  import { canonicalSlugKey } from "./canonicalSlugKey";
13
12
  import { createBreadcrumb } from "./createBreadcrumb";
13
+ import { getEnclosingTabbedNode, resolveCurrentTab } from "./resolveCurrentTab";
14
14
  export function findNode(root, slug) {
15
15
  const collector = NodeCollector.collect(root);
16
16
  const found = collector.getSlugMapWithParents().get(canonicalSlugKey(slug));
@@ -53,7 +53,6 @@ export function findNode(root, slug) {
53
53
  const currentProduct = found.parents.find(isProductNode);
54
54
  const currentVersion = found.parents.find(isVersionNode);
55
55
  const unversionedNode = found.parents.find(isUnversionedNode);
56
- const versionChild = (currentVersion ?? unversionedNode)?.child;
57
56
  const currentVariant = found.parents.find(isVariantNode);
58
57
  if (!sidebar && currentVersion != null) {
59
58
  if (isSidebarRootNode(currentVersion.child)) {
@@ -61,15 +60,10 @@ export function findNode(root, slug) {
61
60
  }
62
61
  }
63
62
  const landingPage = (currentProductGroup ?? currentVersion ?? unversionedNode)?.landingPage;
64
- const tabbedNode = found.parents.find(isTabbedNode) ??
65
- // fallback to the version child because the current node may be a landing page
66
- (versionChild != null && isTabbedNode(versionChild) ? versionChild : undefined);
63
+ const tabbedNode = getEnclosingTabbedNode(found.parents);
67
64
  const apiReference = found.parents.find(isApiReferenceNode) ?? (found.node.type === "apiReference" ? found.node : undefined);
68
65
  // if the node is visible (because it's a page), return it as "found"
69
66
  if (FernNavigation.isPage(found.node)) {
70
- const parentsAndNode = [...found.parents, found.node];
71
- const tabbedNodeIndex = parentsAndNode.findIndex((node) => node === tabbedNode);
72
- const currentTabNode = tabbedNodeIndex !== -1 ? parentsAndNode[tabbedNodeIndex + 1] : undefined;
73
67
  const products = collector.getProductNodes().map((node) => {
74
68
  if (node.default) {
75
69
  // if we're currently viewing the default product, we may be viewing the non-pruned product node
@@ -103,28 +97,7 @@ export function findNode(root, slug) {
103
97
  }
104
98
  return node;
105
99
  });
106
- let currentTab = currentTabNode?.type === "tab" || currentTabNode?.type === "changelog" ? currentTabNode : undefined;
107
- // If currentTab is undefined and we have tabs, try to find the appropriate tab
108
- if (currentTab == null && tabbedNode != null) {
109
- // First, check if any tab's pointsTo matches the current page's slug
110
- for (const tab of tabbedNode.children) {
111
- if (tab.type === "tab" && tab.pointsTo === found.node.slug) {
112
- currentTab = tab;
113
- break;
114
- }
115
- if (tab.type === "changelog" && tab.slug === found.node.slug) {
116
- currentTab = tab;
117
- break;
118
- }
119
- }
120
- // If still no tab found and we're on a landing page, select the first tab
121
- if (currentTab == null && found.node.type === "landingPage") {
122
- const firstTab = tabbedNode.children.find((tab) => tab.type === "tab" || tab.type === "changelog");
123
- if (firstTab != null && (firstTab.type === "tab" || firstTab.type === "changelog")) {
124
- currentTab = firstTab;
125
- }
126
- }
127
- }
100
+ const currentTab = resolveCurrentTab(found.node, found.parents);
128
101
  // External product links don't have slugs, so fall back to version or root slug
129
102
  const slugPrefix = currentVariant?.slug ??
130
103
  (currentProduct?.type === "product" ? currentProduct.slug : undefined) ??
@@ -1 +1 @@
1
- {"version":3,"file":"findNode.js","sourceRoot":"","sources":["../../../src/navigation/utils/findNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA2DtD,MAAM,UAAU,QAAQ,CAAC,IAA6B,EAAE,IAAyB;IAC7E,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5E,+FAA+F;IAC/F,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChB,IAAI,yBAAyB,GAGM,IAAI,CAAC;QACxC,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,2CAA2C;QAC3C,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;YACpD,wDAAwD;YACxD,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtE,yBAAyB,GAAG,WAAW,CAAC;gBACxC,gBAAgB,GAAG,IAAI,CAAC;gBACxB,MAAM;YACV,CAAC;QACL,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,2CAA2C;YAC3C,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,yBAAyB,GAAG,WAAW,CAAC;oBACxC,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO;YACH,IAAI,EAAE,UAAU;YAChB,qFAAqF;YACrF,QAAQ,EACJ,yBAAyB,CAAC,IAAI,KAAK,MAAM;gBACzC,yBAAyB,CAAC,IAAI,KAAK,SAAS;gBAC5C,yBAAyB,CAAC,IAAI,KAAK,SAAS;gBACxC,CAAC,CAAC,yBAAyB,CAAC,QAAQ;gBACpC,CAAC,CAAC,SAAS;YACnB,MAAM,EAAE,yBAAyB,CAAC,MAAM;SAC3C,CAAC;IACN,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpD,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,CAAC,cAAc,IAAI,eAAe,CAAC,EAAE,KAAK,CAAC;IAEhE,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEzD,IAAI,CAAC,OAAO,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;QACrC,IAAI,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC;QACnC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,mBAAmB,IAAI,cAAc,IAAI,eAAe,CAAC,EAAE,WAAW,CAAC;IAE5F,MAAM,UAAU,GACZ,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAChC,+EAA+E;QAC/E,CAAC,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEpF,MAAM,YAAY,GACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE5G,qEAAqE;IACrE,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAChF,MAAM,cAAc,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhG,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,gGAAgG;gBAChG,IAAI,IAAI,CAAC,EAAE,KAAK,cAAc,EAAE,EAAE,EAAE,CAAC;oBACjC,OAAO,cAAc,CAAC;gBAC1B,CAAC;gBACD,0DAA0D;gBAC1D,OAAO,SAAS,CAAC,kBAAkB,IAAI,IAAI,CAAC;YAChD,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,2FAA2F;gBAC3F,IAAI,IAAI,CAAC,EAAE,KAAK,cAAc,EAAE,EAAE,EAAE,CAAC;oBACjC,OAAO,cAAc,CAAC;gBAC1B,CAAC;gBACD,0DAA0D;gBAC1D,OAAO,SAAS,CAAC,kBAAkB,IAAI,IAAI,CAAC;YAChD,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,2FAA2F;gBAC3F,IAAI,IAAI,CAAC,EAAE,KAAK,cAAc,EAAE,EAAE,EAAE,CAAC;oBACjC,OAAO,cAAc,CAAC;gBAC1B,CAAC;gBACD,0DAA0D;gBAC1D,OAAO,SAAS,CAAC,kBAAkB,IAAI,IAAI,CAAC;YAChD,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,GACV,cAAc,EAAE,IAAI,KAAK,KAAK,IAAI,cAAc,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAExG,+EAA+E;QAC/E,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YAC3C,qEAAqE;YACrE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACzD,UAAU,GAAG,GAAG,CAAC;oBACjB,MAAM;gBACV,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC3D,UAAU,GAAG,GAAG,CAAC;oBACjB,MAAM;gBACV,CAAC;YACL,CAAC;YAED,0EAA0E;YAC1E,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;gBACnG,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;oBACjF,UAAU,GAAG,QAAQ,CAAC;gBAC1B,CAAC;YACL,CAAC;QACL,CAAC;QACD,gFAAgF;QAChF,MAAM,UAAU,GACZ,cAAc,EAAE,IAAI;YACpB,CAAC,cAAc,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,EAAE,IAAI;YACpB,IAAI,CAAC,IAAI,CAAC;QACd,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAC3E,CAAC;QACF,OAAO;YACH,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI;YACJ,QAAQ,EAAE,8CAA8C;YACxD,IAAI,EAAE,UAAU,EAAE,QAAQ,IAAI,EAAE;YAChC,QAAQ;YACR,cAAc;YACd,cAAc;YACd,uBAAuB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK;YAC1G,uBAAuB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK;YAC1G,QAAQ,EAAE,8CAA8C;YACxD,cAAc;YACd,uBAAuB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK;YAC1G,UAAU;YACV,OAAO;YACP,YAAY;YACZ,WAAW;YACX,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS;YACT,eAAe;SAClB,CAAC;IACN,CAAC;IAED,iFAAiF;IACjF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9E,CAAC;IAED,wCAAwC;IACxC,IAAI,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACxE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1F,CAAC;IAED,8FAA8F;IAC9F,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QACtG,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChF,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,cAAc,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;QACnD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;KAC5B,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAmC;IAC5D,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAQ,IAAY,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"findNode.js","sourceRoot":"","sources":["../../../src/navigation/utils/findNode.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export * from "./createBreadcrumb";
7
7
  export * from "./findNode";
8
8
  export * from "./getApiReferenceId";
9
9
  export * from "./getNoIndexFromFrontmatter";
10
+ export * from "./resolveCurrentTab";
10
11
  export * from "./syntheticSectionPath";
11
12
  export * from "./toApis";
12
13
  export * from "./toPages";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
@@ -7,6 +7,7 @@ export * from "./createBreadcrumb";
7
7
  export * from "./findNode";
8
8
  export * from "./getApiReferenceId";
9
9
  export * from "./getNoIndexFromFrontmatter";
10
+ export * from "./resolveCurrentTab";
10
11
  export * from "./syntheticSectionPath";
11
12
  export * from "./toApis";
12
13
  export * from "./toPages";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/navigation/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/navigation/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { FernNavigation } from "../..";
2
+ /**
3
+ * Resolve the `tabbed` node that encloses a page, given its ancestor chain.
4
+ *
5
+ * Normally the tabbed node is an ancestor, but a version/product **landing
6
+ * page** hangs off its version as a *sibling* of the tabbed node (via
7
+ * `landingPage`, not `child`), so it isn't in the ancestor chain — fall back to
8
+ * the version child in that case.
9
+ */
10
+ export declare function getEnclosingTabbedNode(parents: readonly FernNavigation.NavigationNodeParent[]): FernNavigation.TabbedNode | undefined;
11
+ /**
12
+ * Resolve the header tab that should be highlighted for a page, given the page
13
+ * node and its ancestor chain.
14
+ *
15
+ * This is the single source of truth shared by `findNode` (used by the Vercel
16
+ * runtime) and the Astro static build's `buildSlugToTabId`, so both highlight
17
+ * the same tab and can't drift apart. The resolution order:
18
+ *
19
+ * 1. The tabbed node's child on the path to this page — a `tab` (Guides, API
20
+ * Reference) or a `changelog` (Changelog, Blog); both are valid header tabs.
21
+ * 2. A tab whose `pointsTo` (or a changelog whose `slug`) targets this page
22
+ * from another subtree.
23
+ * 3. The first tab, when this page is a version/product landing page.
24
+ */
25
+ export declare function resolveCurrentTab(node: FernNavigation.NavigationNodeWithMetadata, parents: readonly FernNavigation.NavigationNodeParent[]): FernNavigation.TabNode | FernNavigation.ChangelogNode | undefined;
26
+ //# sourceMappingURL=resolveCurrentTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveCurrentTab.d.ts","sourceRoot":"","sources":["../../../src/navigation/utils/resolveCurrentTab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAS5C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,SAAS,cAAc,CAAC,oBAAoB,EAAE,GACxD,cAAc,CAAC,UAAU,GAAG,SAAS,CAKvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,cAAc,CAAC,0BAA0B,EAC/C,OAAO,EAAE,SAAS,cAAc,CAAC,oBAAoB,EAAE,GACxD,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,aAAa,GAAG,SAAS,CAgCnE"}
@@ -0,0 +1,60 @@
1
+ import { isTabbedNode } from "../versions/latest/isTabbedNode";
2
+ import { isUnversionedNode } from "../versions/latest/isUnversionedNode";
3
+ import { isVersionNode } from "../versions/latest/isVersionNode";
4
+ /** A tabbed node's child that is a real header tab — a `link` child owns no page. */
5
+ const isHeaderTab = (child) => child.type === "tab" || child.type === "changelog";
6
+ /**
7
+ * Resolve the `tabbed` node that encloses a page, given its ancestor chain.
8
+ *
9
+ * Normally the tabbed node is an ancestor, but a version/product **landing
10
+ * page** hangs off its version as a *sibling* of the tabbed node (via
11
+ * `landingPage`, not `child`), so it isn't in the ancestor chain — fall back to
12
+ * the version child in that case.
13
+ */
14
+ export function getEnclosingTabbedNode(parents) {
15
+ const versionChild = (parents.find(isVersionNode) ?? parents.find(isUnversionedNode))?.child;
16
+ return (parents.find(isTabbedNode) ?? (versionChild != null && isTabbedNode(versionChild) ? versionChild : undefined));
17
+ }
18
+ /**
19
+ * Resolve the header tab that should be highlighted for a page, given the page
20
+ * node and its ancestor chain.
21
+ *
22
+ * This is the single source of truth shared by `findNode` (used by the Vercel
23
+ * runtime) and the Astro static build's `buildSlugToTabId`, so both highlight
24
+ * the same tab and can't drift apart. The resolution order:
25
+ *
26
+ * 1. The tabbed node's child on the path to this page — a `tab` (Guides, API
27
+ * Reference) or a `changelog` (Changelog, Blog); both are valid header tabs.
28
+ * 2. A tab whose `pointsTo` (or a changelog whose `slug`) targets this page
29
+ * from another subtree.
30
+ * 3. The first tab, when this page is a version/product landing page.
31
+ */
32
+ export function resolveCurrentTab(node, parents) {
33
+ const tabbedNode = getEnclosingTabbedNode(parents);
34
+ if (tabbedNode == null) {
35
+ return undefined;
36
+ }
37
+ const parentsAndNode = [...parents, node];
38
+ const tabbedNodeIndex = parentsAndNode.indexOf(tabbedNode);
39
+ const currentTabNode = tabbedNodeIndex !== -1 ? parentsAndNode[tabbedNodeIndex + 1] : undefined;
40
+ let currentTab = currentTabNode?.type === "tab" || currentTabNode?.type === "changelog" ? currentTabNode : undefined;
41
+ if (currentTab == null) {
42
+ // A tab whose pointsTo (or changelog whose slug) targets this page.
43
+ for (const tab of tabbedNode.children) {
44
+ if (tab.type === "tab" && tab.pointsTo === node.slug) {
45
+ currentTab = tab;
46
+ break;
47
+ }
48
+ if (tab.type === "changelog" && tab.slug === node.slug) {
49
+ currentTab = tab;
50
+ break;
51
+ }
52
+ }
53
+ // The first tab, for a version/product landing page.
54
+ if (currentTab == null && node.type === "landingPage") {
55
+ currentTab = tabbedNode.children.find(isHeaderTab);
56
+ }
57
+ }
58
+ return currentTab;
59
+ }
60
+ //# sourceMappingURL=resolveCurrentTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveCurrentTab.js","sourceRoot":"","sources":["../../../src/navigation/utils/resolveCurrentTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,qFAAqF;AACrF,MAAM,WAAW,GAAG,CAAC,KAA8B,EAAkE,EAAE,CACnH,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAClC,OAAuD;IAEvD,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC;IAC7F,OAAO,CACH,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAChH,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC7B,IAA+C,EAC/C,OAAuD;IAEvD,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,IAAI,UAAU,GACV,cAAc,EAAE,IAAI,KAAK,KAAK,IAAI,cAAc,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAExG,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACrB,oEAAoE;QACpE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnD,UAAU,GAAG,GAAG,CAAC;gBACjB,MAAM;YACV,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrD,UAAU,GAAG,GAAG,CAAC;gBACjB,MAAM;YACV,CAAC;QACL,CAAC;QAED,qDAAqD;QACrD,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpD,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC"}