@harborclient/sdk 1.6.4 → 1.6.6

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 (67) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/components/AnchorMenuPanel/index.js +1 -1
  3. package/dist/components/Breadcrumb/CrumbSegment.js +1 -1
  4. package/dist/components/Breadcrumb/EditableSegment.js +2 -2
  5. package/dist/components/Button/index.js +1 -1
  6. package/dist/components/CodeEditor/index.d.ts +2 -2
  7. package/dist/components/CodeEditor/index.js +5 -5
  8. package/dist/components/CopyToChatButton/index.js +1 -1
  9. package/dist/components/FooterButton/index.js +2 -2
  10. package/dist/components/FooterIcon/index.js +1 -1
  11. package/dist/components/FormDataEditor/index.d.ts.map +1 -1
  12. package/dist/components/FormDataEditor/index.js +2 -2
  13. package/dist/components/FormGroup/index.js +2 -2
  14. package/dist/components/KeyValueEditor/index.d.ts.map +1 -1
  15. package/dist/components/KeyValueEditor/index.js +1 -1
  16. package/dist/components/MethodSelect/MethodSelectMenu.js +1 -1
  17. package/dist/components/MethodSelect/MethodSelectOption.js +1 -1
  18. package/dist/components/MethodSelect/index.js +1 -1
  19. package/dist/components/Resizable/ResizeHandle.js +1 -1
  20. package/dist/components/Resizable/footerPanelUtils.d.ts +1 -1
  21. package/dist/components/Resizable/footerPanelUtils.d.ts.map +1 -1
  22. package/dist/components/Resizable/footerPanelUtils.js +2 -2
  23. package/dist/components/RowActionsMenu/Submenu.js +1 -1
  24. package/dist/components/RowActionsMenu/index.js +1 -1
  25. package/dist/components/SidebarItem/SidebarBadge.js +2 -2
  26. package/dist/components/SidebarItem/SidebarCommitItem.js +1 -1
  27. package/dist/components/SidebarItem/SidebarFolderItem.js +1 -1
  28. package/dist/components/SidebarItem/SidebarHistoryItem.d.ts +5 -1
  29. package/dist/components/SidebarItem/SidebarHistoryItem.d.ts.map +1 -1
  30. package/dist/components/SidebarItem/SidebarHistoryItem.js +3 -2
  31. package/dist/components/SidebarItem/sidebarItemClasses.d.ts +3 -3
  32. package/dist/components/SidebarItem/sidebarItemClasses.d.ts.map +1 -1
  33. package/dist/components/SidebarItem/sidebarItemClasses.js +5 -5
  34. package/dist/components/SidebarRail/SidebarRailItem.js +1 -1
  35. package/dist/components/SidebarRail/index.js +2 -2
  36. package/dist/components/SidebarSection/SectionItem.js +1 -1
  37. package/dist/components/SortButton/SortMenu.js +1 -1
  38. package/dist/components/SortButton/SortMenuOption.js +1 -1
  39. package/dist/components/TabBar/TabBarShell.js +1 -1
  40. package/dist/components/TabBar/TabContextMenu.js +1 -1
  41. package/dist/components/TabBar/TabNewButton.js +2 -2
  42. package/dist/components/TabBar/index.d.ts.map +1 -1
  43. package/dist/components/TabBar/index.js +2 -2
  44. package/dist/components/TabCloseButton/index.js +1 -1
  45. package/dist/components/Toolbar/index.js +2 -2
  46. package/dist/components/VariableInput/index.d.ts +2 -2
  47. package/dist/components/VariableInput/index.js +2 -2
  48. package/dist/components/VariableTooltip/dom.js +2 -2
  49. package/dist/components/VisibilityMenu/MenuCheckboxItem.js +1 -1
  50. package/dist/components/VisibilityMenu/index.js +1 -1
  51. package/dist/components/classes.d.ts +1 -1
  52. package/dist/components/classes.d.ts.map +1 -1
  53. package/dist/components/classes.js +5 -5
  54. package/dist/components/forms/classes.d.ts +1 -1
  55. package/dist/components/forms/classes.d.ts.map +1 -1
  56. package/dist/components/forms/classes.js +1 -1
  57. package/dist/components/rowActionsMenuHelpers.d.ts.map +1 -1
  58. package/dist/components/rowActionsMenuHelpers.js +1 -1
  59. package/dist/http/resolveRequest.d.ts +3 -0
  60. package/dist/http/resolveRequest.d.ts.map +1 -1
  61. package/dist/http/resolveRequest.js +4 -1
  62. package/dist/http/substitute.d.ts +1 -0
  63. package/dist/http/substitute.d.ts.map +1 -1
  64. package/dist/http/substitute.js +9 -0
  65. package/dist/types.d.ts +54 -35
  66. package/dist/types.d.ts.map +1 -1
  67. package/package.json +1 -1
@@ -8,7 +8,7 @@ import { cn } from '../utils.js';
8
8
  */
9
9
  export function TabNewButton({ ariaLabel, title, wrapped, onClick }) {
10
10
  if (wrapped) {
11
- return (_jsx("div", { className: "flex shrink-0", children: _jsx("button", { type: "button", className: cn('app-no-drag inline-flex min-h-12 shrink-0 cursor-pointer items-center justify-center self-end rounded-t-lg border border-b-2 px-3 text-[14px]', tabItem(false)), title: title, "aria-label": ariaLabel, onClick: onClick, style: { width: 50 }, children: _jsx(FaIcon, { icon: faPlus, className: "h-3.5 w-3.5" }) }) }));
11
+ return (_jsx("div", { className: "flex shrink-0", children: _jsx("button", { type: "button", className: cn('inline-flex min-h-12 shrink-0 cursor-pointer items-center justify-center self-end rounded-t-lg border border-b-2 px-3 text-[14px]', tabItem(false)), title: title, "aria-label": ariaLabel, onClick: onClick, style: { width: 50 }, children: _jsx(FaIcon, { icon: faPlus, className: "h-3.5 w-3.5" }) }) }));
12
12
  }
13
- return (_jsx("div", { className: "flex shrink-0 items-end px-1", children: _jsx("button", { type: "button", className: "hc-tab-new-button app-no-drag mb-2.5 inline-flex shrink-0 cursor-pointer items-center justify-center border-none bg-transparent px-3 text-[14px] text-muted hover:bg-selection hover:text-text focus-visible:bg-selection focus-visible:text-text", title: title, "aria-label": ariaLabel, onClick: onClick, style: { width: 50 }, children: _jsx(FaIcon, { icon: faPlus, className: "h-3.5 w-3.5" }) }) }));
13
+ return (_jsx("div", { className: "flex shrink-0 items-end px-1", children: _jsx("button", { type: "button", className: "hc-tab-new-button mb-2.5 inline-flex shrink-0 cursor-pointer items-center justify-center border-none bg-transparent px-3 text-[14px] text-muted hover:bg-selection hover:text-text focus-visible:bg-selection focus-visible:text-text", title: title, "aria-label": ariaLabel, onClick: onClick, style: { width: 50 }, children: _jsx(FaIcon, { icon: faPlus, className: "h-3.5 w-3.5" }) }) }));
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TabBar/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TabBar/index.tsx"],"names":[],"mappings":"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"}
@@ -254,10 +254,10 @@ export function TabBar({ tabs, activeId, wrap, ariaLabel, tabIdPrefix, panelIdPr
254
254
  tabIndex: -1,
255
255
  sortableDisabled: true,
256
256
  exiting: true
257
- }) }, exitingTab.exitKey)))] }), wrap ? newTabButton : null] }), _jsx(DragOverlay, { children: activeDragTab ? (_jsx("div", { className: "rounded-t-lg border border-separator bg-surface px-3 py-2 text-[14px] font-medium shadow-md", children: activeDragTab.dragLabel })) : null })] }), wrap ? null : newTabButton] }));
257
+ }) }, exitingTab.exitKey)))] }), wrap ? newTabButton : null] }), _jsx(DragOverlay, { children: activeDragTab ? (_jsx("div", { className: "rounded-t-lg border border-separator bg-tab-active px-3 py-2 text-[14px] font-medium shadow-md", children: activeDragTab.dragLabel })) : null })] }), wrap ? null : newTabButton] }));
258
258
  const defaultScrollContainer = (row) => (_jsx("div", { className: "min-w-0 flex-1 overflow-x-auto", children: row }));
259
259
  const scrollContainer = renderScrollContainer ?? defaultScrollContainer;
260
- const containerClassName = cn('app-no-drag flex shrink-0 items-end bg-header pr-2 pl-0', className);
260
+ const containerClassName = cn('flex shrink-0 items-end bg-tab-bar pr-2 pl-0', className);
261
261
  return (_jsxs("div", { className: containerClassName, children: [wrap ? _jsx("div", { className: "min-w-0 flex-1", children: tabRow }) : scrollContainer(tabRow), contextMenu != null && buildContextMenuGroups != null && (_jsx(TabContextMenu, { groups: contextMenuGroups, position: { x: contextMenu.x, y: contextMenu.y }, onClose: closeContextMenu }))] }));
262
262
  }
263
263
  export { TabNewButton } from './TabNewButton.js';
@@ -6,5 +6,5 @@ import { cn } from '../utils.js';
6
6
  * Close control for document-style tabs in the request editor and AI chat.
7
7
  */
8
8
  export function TabCloseButton({ ariaLabel, onClick, title = 'Close tab', tabIndex, className, ...props }) {
9
- return (_jsx("button", { ...props, type: "button", className: cn('hc-tab-close-button app-no-drag inline-flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center self-center rounded-full border-none bg-transparent text-[14px] text-muted hover:bg-selection hover:text-text focus-visible:bg-selection focus-visible:text-text', className), title: title, "aria-label": ariaLabel, tabIndex: tabIndex, onClick: onClick, children: _jsx(FaIcon, { icon: faXmark, className: "hc-tab-close-button-icon h-3.5 w-3.5" }) }));
9
+ return (_jsx("button", { ...props, type: "button", className: cn('hc-tab-close-button inline-flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center self-center rounded-full border-none bg-transparent text-[14px] text-muted hover:bg-selection hover:text-text focus-visible:bg-selection focus-visible:text-text', className), title: title, "aria-label": ariaLabel, tabIndex: tabIndex, onClick: onClick, children: _jsx(FaIcon, { icon: faXmark, className: "hc-tab-close-button-icon h-3.5 w-3.5" }) }));
10
10
  }
@@ -24,7 +24,7 @@ function isToolbarActionActive(action) {
24
24
  * @returns Class string for the action button.
25
25
  */
26
26
  function toolbarActionButtonClasses(active) {
27
- return cn('hc-toolbar-action app-no-drag inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-none', active
27
+ return cn('hc-toolbar-action inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-none', active
28
28
  ? 'bg-sidebar-section text-toolbar-action-active'
29
29
  : 'bg-transparent text-text hover:bg-selection focus-visible:bg-selection focus-visible:text-text', 'disabled:cursor-not-allowed disabled:opacity-50');
30
30
  }
@@ -44,5 +44,5 @@ function renderAction(action) {
44
44
  * Action icons wrap to additional rows when the sidebar is narrower than one row.
45
45
  */
46
46
  export function Toolbar({ actions, toggles, ariaLabel = 'Toolbar', className, ...props }) {
47
- return (_jsxs("div", { ...props, role: "toolbar", "aria-label": ariaLabel, className: cn('hc-toolbar app-no-drag flex min-w-0 shrink-0 flex-wrap items-center gap-y-1 border-b border-separator bg-sidebar-toolbar px-2 py-2', className), children: [_jsx("div", { className: "hc-toolbar-actions flex min-w-0 flex-1 flex-wrap items-center gap-1 leading-none", children: actions.map(renderAction) }), toggles && toggles.length > 0 ? (_jsx("div", { className: "hc-toolbar-toggles ml-auto flex shrink-0 items-center gap-1", children: toggles.map(renderAction) })) : null] }));
47
+ return (_jsxs("div", { ...props, role: "toolbar", "aria-label": ariaLabel, className: cn('hc-toolbar flex min-w-0 shrink-0 flex-wrap items-center gap-y-1 border-b border-separator bg-sidebar-toolbar px-2 py-2', className), children: [_jsx("div", { className: "hc-toolbar-actions flex min-w-0 flex-1 flex-wrap items-center gap-1 leading-none", children: actions.map(renderAction) }), toggles && toggles.length > 0 ? (_jsx("div", { className: "hc-toolbar-toggles ml-auto flex shrink-0 items-center gap-1", children: toggles.map(renderAction) })) : null] }));
48
48
  }
@@ -81,8 +81,8 @@ export interface Props extends Omit<ComponentPropsWithoutRef<'div'>, 'children'
81
81
  * The variable tooltip is portaled to `document.body` so fixed positioning is not
82
82
  * trapped under host chrome (for example request tabs above a scroll container).
83
83
  *
84
- * Token highlight color (`text-[#32D2E2]`) and the tooltip `app-no-drag` class rely on
85
- * host styling in HarborClient `styles.css`.
84
+ * Token highlight color (`text-[#32D2E2]`) relies on host styling in HarborClient
85
+ * `styles.css`.
86
86
  */
87
87
  export declare function VariableInput({ value, onChange, variables, placeholder, onKeyDown, className, wrapperClassName, onEditVariable, id, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, source, beforeSuggestionsOpen, onSuggestionsOpenChange, onSuggestionSelect, ...props }: Props): JSX.Element;
88
88
  //# sourceMappingURL=index.d.ts.map
@@ -19,8 +19,8 @@ const TOOLTIP_HIDE_DELAY_MS = 400;
19
19
  * The variable tooltip is portaled to `document.body` so fixed positioning is not
20
20
  * trapped under host chrome (for example request tabs above a scroll container).
21
21
  *
22
- * Token highlight color (`text-[#32D2E2]`) and the tooltip `app-no-drag` class rely on
23
- * host styling in HarborClient `styles.css`.
22
+ * Token highlight color (`text-[#32D2E2]`) relies on host styling in HarborClient
23
+ * `styles.css`.
24
24
  */
25
25
  export function VariableInput({ value, onChange, variables, placeholder, onKeyDown, className = '', wrapperClassName, onEditVariable, id, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, source, beforeSuggestionsOpen, onSuggestionsOpenChange, onSuggestionSelect, ...props }) {
26
26
  const safeValue = value ?? '';
@@ -41,7 +41,7 @@ export function appendVariableTooltipValueRow(parent, value, key, muted) {
41
41
  }
42
42
  const copyBtn = document.createElement('button');
43
43
  copyBtn.type = 'button';
44
- copyBtn.className = 'cm-variable-tooltip-copy app-no-drag';
44
+ copyBtn.className = 'cm-variable-tooltip-copy';
45
45
  copyBtn.setAttribute('aria-label', `Copy value for ${key}`);
46
46
  copyBtn.appendChild(createTooltipIcon(COPY_ICON_PATH));
47
47
  /**
@@ -81,7 +81,7 @@ export function buildVariableTooltipDom(key, variables, onEditVariable) {
81
81
  const btn = document.createElement('button');
82
82
  btn.type = 'button';
83
83
  btn.textContent = 'Edit value';
84
- btn.className = 'cm-variable-tooltip-edit app-no-drag';
84
+ btn.className = 'cm-variable-tooltip-edit';
85
85
  btn.setAttribute('aria-label', `Edit value for ${key}`);
86
86
  btn.addEventListener('mousedown', (event) => {
87
87
  event.preventDefault();
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
2
  import { faCheck } from '@fortawesome/free-solid-svg-icons';
3
3
  import { FaIcon } from '../FaIcon/index.js';
4
4
  import { cn } from '../utils.js';
5
- const menuItemClass = 'flex w-full cursor-pointer items-center gap-2 border-none bg-transparent px-3.5 py-1.5 text-left text-[14px] text-text hover:bg-selection app-no-drag';
5
+ const menuItemClass = 'flex w-full cursor-pointer items-center gap-2 border-none bg-transparent px-3.5 py-1.5 text-left text-[14px] text-text hover:bg-selection';
6
6
  /**
7
7
  * Single checkbox-style row in the visibility menu.
8
8
  */
@@ -129,7 +129,7 @@ export function VisibilityMenu({ items, visibleValues, onToggle }) {
129
129
  else {
130
130
  openMenu(false);
131
131
  }
132
- }, onKeyDown: handleTriggerKeyDown, children: _jsx(FaIcon, { icon: faCaretDown, className: "h-3.5 w-3.5" }) }), isOpen && (_jsx("div", { id: menuElementId, role: "menu", className: "hc-visibility-menu-panel app-no-drag absolute top-full right-0 z-10 mt-0.5 min-w-[140px] rounded-md border border-separator bg-surface py-1 shadow-md", onKeyDown: handleMenuKeyDown, children: items.map((item, index) => {
132
+ }, onKeyDown: handleTriggerKeyDown, children: _jsx(FaIcon, { icon: faCaretDown, className: "h-3.5 w-3.5" }) }), isOpen && (_jsx("div", { id: menuElementId, role: "menu", className: "hc-visibility-menu-panel absolute top-full right-0 z-10 mt-0.5 min-w-[140px] rounded-md border border-separator bg-surface py-1 shadow-md", onKeyDown: handleMenuKeyDown, children: items.map((item, index) => {
133
133
  const checked = visibleSet.has(item.value);
134
134
  return (_jsx(MenuCheckboxItem, { ref: (element) => {
135
135
  itemRefs.current[index] = element;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shared macOS-style Tailwind class strings for SDK UI components.
3
3
  */
4
- export declare const segmentGroup = "flex min-w-0 max-w-full w-full p-3 border-b border-separator shadow-[inset_0_0.5px_1px_rgba(0,0,0,0.06)] app-no-drag";
4
+ export declare const segmentGroup = "flex min-w-0 max-w-full w-full p-3 border-b border-separator shadow-[inset_0_0.5px_1px_rgba(0,0,0,0.06)]";
5
5
  /**
6
6
  * Tailwind classes for a segmented control button.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/components/classes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,yHAC+F,CAAC;AAKzH;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAI/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAI/C"}
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/components/classes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,6GACmF,CAAC;AAK7G;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAI/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAI/C"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shared macOS-style Tailwind class strings for SDK UI components.
3
3
  */
4
- export const segmentGroup = 'flex min-w-0 max-w-full w-full p-3 border-b border-separator shadow-[inset_0_0.5px_1px_rgba(0,0,0,0.06)] app-no-drag';
4
+ export const segmentGroup = 'flex min-w-0 max-w-full w-full p-3 border-b border-separator shadow-[inset_0_0.5px_1px_rgba(0,0,0,0.06)]';
5
5
  const segmentFocusVisible = 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent';
6
6
  /**
7
7
  * Tailwind classes for a segmented control button.
@@ -10,8 +10,8 @@ const segmentFocusVisible = 'focus-visible:outline focus-visible:outline-2 focus
10
10
  */
11
11
  export function segment(active) {
12
12
  return active
13
- ? `cursor-pointer rounded-md border-none bg-selection px-3 h-[32px] leading-none text-text app-no-drag ${segmentFocusVisible}`
14
- : `cursor-pointer rounded-md border-none bg-transparent px-3 h-[32px] leading-none text-muted hover:text-text app-no-drag ${segmentFocusVisible}`;
13
+ ? `cursor-pointer rounded-md border-none bg-selection px-3 h-[32px] leading-none text-text ${segmentFocusVisible}`
14
+ : `cursor-pointer rounded-md border-none bg-transparent px-3 h-[32px] leading-none text-muted hover:text-text ${segmentFocusVisible}`;
15
15
  }
16
16
  /**
17
17
  * Active/inactive surface classes for a document-style tab in the tab bar.
@@ -26,6 +26,6 @@ export function segment(active) {
26
26
  */
27
27
  export function tabItem(active) {
28
28
  return active
29
- ? 'relative z-[1] border-separator/70 border-b-surface bg-surface text-text [border-bottom-width:var(--mac-tab-border-width)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent'
30
- : 'border-separator/50 border-b-separator/50 bg-control/20 text-muted [border-bottom-width:var(--mac-tab-border-width)] hover:bg-selection/60 hover:text-text focus-visible:bg-selection/60 focus-visible:text-text focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent';
29
+ ? 'relative z-[1] border-separator/70 border-b-tab-active bg-tab-active text-tab-text [border-bottom-width:var(--mac-tab-border-width)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent'
30
+ : 'border-separator/50 border-b-separator/50 bg-tab-inactive text-tab-text-inactive [border-bottom-width:var(--mac-tab-border-width)] hover:bg-tab-hover hover:text-tab-text focus-visible:bg-tab-hover focus-visible:text-tab-text focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent';
31
31
  }
@@ -7,7 +7,7 @@ export type FieldVariant = 'control' | 'surface' | 'plain';
7
7
  */
8
8
  export declare const fieldFrame = "overflow-hidden rounded-lg border border-separator bg-field";
9
9
  /** Inset control style for standard settings and editor fields. */
10
- export declare const field = "rounded-lg border border-separator bg-field px-2.5 py-1.5 text-text app-no-drag";
10
+ export declare const field = "rounded-lg border border-separator bg-field px-2.5 py-1.5 text-text";
11
11
  /** Surface style for modal and Team Hub form fields. */
12
12
  export declare const surfaceField = "w-full rounded-lg border border-separator bg-field px-3 py-2.5 text-[15px] text-text";
13
13
  /** Transparent overlay checkbox input sized to {@link checkboxBox}. */
@@ -1 +1 @@
1
- {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/components/forms/classes.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,UAAU,gEAAgE,CAAC;AAExF,mEAAmE;AACnE,eAAO,MAAM,KAAK,oFACiE,CAAC;AAEpF,wDAAwD;AACxD,eAAO,MAAM,YAAY,yFAC+D,CAAC;AAEzF,uEAAuE;AACvE,eAAO,MAAM,aAAa,iGACsE,CAAC;AAEjG,qGAAqG;AACrG,eAAO,MAAM,WAAW,ibACwZ,CAAC;AAEjb,oEAAoE;AACpE,eAAO,MAAM,UAAU,iGACyE,CAAC;AAEjG,kGAAkG;AAClG,eAAO,MAAM,WAAW,8ZACqY,CAAC;AAE9Z,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,8GACwF,CAAC;AAE9G,uEAAuE;AACvE,eAAO,MAAM,WAAW,iGACwE,CAAC;AAEjG,0FAA0F;AAC1F,eAAO,MAAM,WAAW,wcAC+a,CAAC;AAExc,uFAAuF;AACvF,eAAO,MAAM,WAAW,0JACiI,CAAC;AAE1J;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAOpB"}
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/components/forms/classes.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,UAAU,gEAAgE,CAAC;AAExF,mEAAmE;AACnE,eAAO,MAAM,KAAK,wEAAwE,CAAC;AAE3F,wDAAwD;AACxD,eAAO,MAAM,YAAY,yFAC+D,CAAC;AAEzF,uEAAuE;AACvE,eAAO,MAAM,aAAa,iGACsE,CAAC;AAEjG,qGAAqG;AACrG,eAAO,MAAM,WAAW,ibACwZ,CAAC;AAEjb,oEAAoE;AACpE,eAAO,MAAM,UAAU,iGACyE,CAAC;AAEjG,kGAAkG;AAClG,eAAO,MAAM,WAAW,8ZACqY,CAAC;AAE9Z,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,8GACwF,CAAC;AAE9G,uEAAuE;AACvE,eAAO,MAAM,WAAW,iGACwE,CAAC;AAEjG,0FAA0F;AAC1F,eAAO,MAAM,WAAW,wcAC+a,CAAC;AAExc,uFAAuF;AACvF,eAAO,MAAM,WAAW,0JACiI,CAAC;AAE1J;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAOpB"}
@@ -7,7 +7,7 @@ import { cn } from '../utils.js';
7
7
  */
8
8
  export const fieldFrame = 'overflow-hidden rounded-lg border border-separator bg-field';
9
9
  /** Inset control style for standard settings and editor fields. */
10
- export const field = 'rounded-lg border border-separator bg-field px-2.5 py-1.5 text-text app-no-drag';
10
+ export const field = 'rounded-lg border border-separator bg-field px-2.5 py-1.5 text-text';
11
11
  /** Surface style for modal and Team Hub form fields. */
12
12
  export const surfaceField = 'w-full rounded-lg border border-separator bg-field px-3 py-2.5 text-[15px] text-text';
13
13
  /** Transparent overlay checkbox input sized to {@link checkboxBox}. */
@@ -1 +1 @@
1
- {"version":3,"file":"rowActionsMenuHelpers.d.ts","sourceRoot":"","sources":["../../src/components/rowActionsMenuHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAatF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,QAAQ,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAChB,MAAM,GAAG,IAAI,CAWf;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAYvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,GACzC,QAAQ,EAAE,EAAE,CAsBd"}
1
+ {"version":3,"file":"rowActionsMenuHelpers.d.ts","sourceRoot":"","sources":["../../src/components/rowActionsMenuHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAYtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,QAAQ,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAChB,MAAM,GAAG,IAAI,CAWf;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAYvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,GACzC,QAAQ,EAAE,EAAE,CAsBd"}
@@ -3,7 +3,7 @@
3
3
  * `RowActionsMenu` panel and its flyout `Submenu` panels.
4
4
  */
5
5
  export function menuItemClass(variant, disabled) {
6
- const base = 'flex w-full items-center gap-2 border-none bg-transparent px-3.5 py-1.5 text-left app-no-drag';
6
+ const base = 'flex w-full items-center gap-2 border-none bg-transparent px-3.5 py-1.5 text-left';
7
7
  if (disabled) {
8
8
  return `${base} cursor-not-allowed text-muted opacity-60`;
9
9
  }
@@ -38,7 +38,10 @@ export declare function encodeBasicAuth(username: string, password: string): str
38
38
  /**
39
39
  * Builds the Authorization header value from an auth config.
40
40
  *
41
+ * OAuth 2.0 returns null here — token fetch is host-side, not a static header.
42
+ *
41
43
  * @param auth - Auth configuration from the request or collection.
44
+ * @returns Header value such as `Basic …` or `Bearer …`, or null when auth is inactive.
42
45
  */
43
46
  export declare function buildAuthHeaderValue(auth: AuthConfig): string | null;
44
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRequest.d.ts","sourceRoot":"","sources":["../../src/http/resolveRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG/E,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAiBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW1E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAiBpE;AA4BD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAwBpE;AAsBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAwB1E"}
1
+ {"version":3,"file":"resolveRequest.d.ts","sourceRoot":"","sources":["../../src/http/resolveRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG/E,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAiBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW1E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAiBpE;AA4BD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAwBpE;AAsBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAwB1E"}
@@ -34,10 +34,13 @@ export function encodeBasicAuth(username, password) {
34
34
  /**
35
35
  * Builds the Authorization header value from an auth config.
36
36
  *
37
+ * OAuth 2.0 returns null here — token fetch is host-side, not a static header.
38
+ *
37
39
  * @param auth - Auth configuration from the request or collection.
40
+ * @returns Header value such as `Basic …` or `Bearer …`, or null when auth is inactive.
38
41
  */
39
42
  export function buildAuthHeaderValue(auth) {
40
- if (auth.type === 'none') {
43
+ if (auth.type === 'none' || auth.type === 'oauth2') {
41
44
  return null;
42
45
  }
43
46
  if (auth.type === 'basic') {
@@ -16,6 +16,7 @@ export declare function substituteVariables(text: string, runtimeVars: Record<st
16
16
  *
17
17
  * @param auth - Auth config with raw editor values.
18
18
  * @param substitute - Function that resolves placeholders in a string.
19
+ * @returns Auth config with substituted credential fields.
19
20
  */
20
21
  export declare function resolveAuthVariables(auth: AuthConfig, substitute: (text: string) => string): AuthConfig;
21
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"substitute.d.ts","sourceRoot":"","sources":["../../src/http/substitute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAE7F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACnC,UAAU,CAWZ;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,QAAQ,EAAE,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,QAAQ,EAAE,CAKZ"}
1
+ {"version":3,"file":"substitute.d.ts","sourceRoot":"","sources":["../../src/http/substitute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAE7F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACnC,UAAU,CAmBZ;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,QAAQ,EAAE,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,QAAQ,EAAE,CAKZ"}
@@ -13,6 +13,7 @@ export function substituteVariables(text, runtimeVars) {
13
13
  *
14
14
  * @param auth - Auth config with raw editor values.
15
15
  * @param substitute - Function that resolves placeholders in a string.
16
+ * @returns Auth config with substituted credential fields.
16
17
  */
17
18
  export function resolveAuthVariables(auth, substitute) {
18
19
  return {
@@ -23,6 +24,14 @@ export function resolveAuthVariables(auth, substitute) {
23
24
  },
24
25
  bearer: {
25
26
  token: substitute(auth.bearer.token)
27
+ },
28
+ oauth2: {
29
+ tokenUrl: substitute(auth.oauth2.tokenUrl),
30
+ clientId: substitute(auth.oauth2.clientId),
31
+ clientSecret: substitute(auth.oauth2.clientSecret),
32
+ scope: substitute(auth.oauth2.scope),
33
+ audience: substitute(auth.oauth2.audience),
34
+ clientAuth: auth.oauth2.clientAuth
26
35
  }
27
36
  };
28
37
  }
package/dist/types.d.ts CHANGED
@@ -273,9 +273,44 @@ export interface ModalContribution extends UiContributionBase {
273
273
  /**
274
274
  * Authorization type for the Auth tab; none inherits collection auth at send time.
275
275
  */
276
- export type AuthType = 'none' | 'basic' | 'bearer';
276
+ export type AuthType = 'none' | 'basic' | 'bearer' | 'oauth2';
277
277
  /**
278
- * Basic and bearer credential fields stored together so switching type preserves values.
278
+ * How OAuth client credentials are sent to the token endpoint.
279
+ */
280
+ export type OAuth2ClientAuth = 'body' | 'header';
281
+ /**
282
+ * OAuth 2.0 Client Credentials configuration stored on requests and collections.
283
+ */
284
+ export interface OAuth2Config {
285
+ /**
286
+ * Token endpoint URL.
287
+ */
288
+ tokenUrl: string;
289
+ /**
290
+ * OAuth client id.
291
+ */
292
+ clientId: string;
293
+ /**
294
+ * OAuth client secret.
295
+ */
296
+ clientSecret: string;
297
+ /**
298
+ * Space-delimited OAuth scopes.
299
+ */
300
+ scope: string;
301
+ /**
302
+ * Optional audience claim for token requests.
303
+ */
304
+ audience: string;
305
+ /**
306
+ * Whether client credentials are sent in the POST body or as HTTP Basic auth.
307
+ */
308
+ clientAuth: OAuth2ClientAuth;
309
+ }
310
+ /**
311
+ * Basic, bearer, and OAuth credential fields stored together so switching type preserves values.
312
+ *
313
+ * Mirrors `@harborclient/core` AuthConfig used by requests, collections, and live pages.
279
314
  */
280
315
  export interface AuthConfig {
281
316
  /**
@@ -295,6 +330,10 @@ export interface AuthConfig {
295
330
  bearer: {
296
331
  token: string;
297
332
  };
333
+ /**
334
+ * OAuth 2.0 Client Credentials settings.
335
+ */
336
+ oauth2: OAuth2Config;
298
337
  }
299
338
  /**
300
339
  * Request body encoding selected in the Body tab.
@@ -962,6 +1001,12 @@ export interface StatusBarItemContribution {
962
1001
  * - `accent` — links, focus rings, primary actions
963
1002
  * - `selection` — selected row / highlight fill
964
1003
  * - `doc-markdown` — collection sidebar markdown document icon
1004
+ * - `tab-bar` — request editor tab bar strip background
1005
+ * - `tab-active` — active request/editor tab fill
1006
+ * - `tab-inactive` — inactive request/editor tab fill
1007
+ * - `tab-hover` — inactive request/editor tab hover and focus-visible fill
1008
+ * - `tab-text` — active (and hover/focus) request/editor tab label color
1009
+ * - `tab-text-inactive` — inactive request/editor tab label color
965
1010
  * - `tab-unsaved` — request/markdown tab title when the tab has unsaved changes
966
1011
  * - `tab-underline` — active request tab underline
967
1012
  * - `resize-separator` — resizable panel separator track and edge border
@@ -973,7 +1018,7 @@ export interface StatusBarItemContribution {
973
1018
  * - `script-stage-before-all`, `script-stage-before-each`, `script-stage-main`, `script-stage-after-each`, `script-stage-after-all` — script row stage accent colors
974
1019
  * - `terminal` — footer terminal background
975
1020
  */
976
- export type ThemeColorToken = 'surface' | 'header' | 'page-header' | 'page-header-text' | 'page-header-muted' | 'sidebar' | 'sidebar-toolbar' | 'sidebar-rail' | 'sidebar-rail-active' | 'sidebar-rail-text' | 'sidebar-rail-separator' | 'sidebar-section' | 'sidebar-section-text' | 'footer' | 'footer-text' | 'footer-muted' | 'footer-icon-active' | 'toolbar-action-active' | 'breadcrumb-background' | 'breadcrumb-segment' | 'breadcrumb-current' | 'git-staged' | 'git-uncommitted' | 'git-unstaged' | 'git-untracked' | 'control' | 'field' | 'separator' | 'text' | 'text-secondary' | 'muted' | 'accent' | 'selection' | 'doc-markdown' | 'tab-unsaved' | 'tab-underline' | 'resize-separator' | 'resize-handle' | 'variable-token' | 'danger' | 'danger-light' | 'warning' | 'success' | 'info' | 'method-get' | 'method-post' | 'method-put' | 'method-patch' | 'method-delete' | 'method-head' | 'method-options' | 'method-sse' | 'scrollbar-track' | 'scrollbar-thumb' | 'scrollbar-thumb-hover' | 'scrollbar-thumb-active' | 'script-stage-before-all' | 'script-stage-before-each' | 'script-stage-main' | 'script-stage-after-each' | 'script-stage-after-all' | 'terminal';
1021
+ export type ThemeColorToken = 'surface' | 'header' | 'page-header' | 'page-header-text' | 'page-header-muted' | 'sidebar' | 'sidebar-toolbar' | 'sidebar-rail' | 'sidebar-rail-active' | 'sidebar-rail-text' | 'sidebar-rail-separator' | 'sidebar-section' | 'sidebar-section-text' | 'footer' | 'footer-text' | 'footer-muted' | 'footer-icon-active' | 'toolbar-action-active' | 'breadcrumb-background' | 'breadcrumb-segment' | 'breadcrumb-current' | 'git-staged' | 'git-uncommitted' | 'git-unstaged' | 'git-untracked' | 'control' | 'field' | 'separator' | 'text' | 'text-secondary' | 'muted' | 'accent' | 'selection' | 'doc-markdown' | 'tab-bar' | 'tab-active' | 'tab-inactive' | 'tab-hover' | 'tab-text' | 'tab-text-inactive' | 'tab-unsaved' | 'tab-underline' | 'resize-separator' | 'resize-handle' | 'variable-token' | 'danger' | 'danger-light' | 'warning' | 'success' | 'info' | 'method-get' | 'method-post' | 'method-put' | 'method-patch' | 'method-delete' | 'method-head' | 'method-options' | 'method-sse' | 'scrollbar-track' | 'scrollbar-thumb' | 'scrollbar-thumb-hover' | 'scrollbar-thumb-active' | 'script-stage-before-all' | 'script-stage-before-each' | 'script-stage-main' | 'script-stage-after-each' | 'script-stage-after-all' | 'terminal';
977
1022
  /**
978
1023
  * HarborClient UI metric token ids (typography and geometry).
979
1024
  *
@@ -1453,6 +1498,8 @@ export interface LiveServerResponseHeader {
1453
1498
  export interface LiveServerRoute {
1454
1499
  /**
1455
1500
  * `*` for all paths, or a regex source matched against the URL pathname.
1501
+ * Regex sources are length-capped and rejected when they contain nested
1502
+ * quantifiers associated with catastrophic backtracking.
1456
1503
  */
1457
1504
  match: string;
1458
1505
  /**
@@ -2422,40 +2469,12 @@ export interface WebsiteScriptRef {
2422
2469
  stage?: ScriptStage;
2423
2470
  }
2424
2471
  /**
2425
- * Authorization stored on a saved website (includes OAuth 2.0 fields for parity with core).
2472
+ * Authorization stored on a saved website.
2426
2473
  *
2427
- * Mirrors `@harborclient/core` AuthConfig used by {@link Website}.
2474
+ * Alias of {@link AuthConfig} for parity with `@harborclient/core` Website auth.
2475
+ * OAuth 2.0 fields are stored but not applied to guest navigations today.
2428
2476
  */
2429
- export interface WebsiteAuthConfig {
2430
- /**
2431
- * Selected auth mode; none means no chrome-driven auth header.
2432
- */
2433
- type: 'none' | 'basic' | 'bearer' | 'oauth2';
2434
- /**
2435
- * Username and password for Basic Auth.
2436
- */
2437
- basic: {
2438
- username: string;
2439
- password: string;
2440
- };
2441
- /**
2442
- * Token value for Bearer Token auth.
2443
- */
2444
- bearer: {
2445
- token: string;
2446
- };
2447
- /**
2448
- * OAuth 2.0 Client Credentials settings (not applied to guest navigations today).
2449
- */
2450
- oauth2: {
2451
- tokenUrl: string;
2452
- clientId: string;
2453
- clientSecret: string;
2454
- scope: string;
2455
- audience: string;
2456
- clientAuth: 'body' | 'header';
2457
- };
2458
- }
2477
+ export type WebsiteAuthConfig = AuthConfig;
2459
2478
  /**
2460
2479
  * A saved embedded-browser website (live page) in the local registry.
2461
2480
  *