@harborclient/sdk 1.6.5 → 1.6.7

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 (70) hide show
  1. package/CHANGELOG.md +10 -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/CodeEditor/selectionActionToolbar.d.ts +11 -7
  9. package/dist/components/CodeEditor/selectionActionToolbar.d.ts.map +1 -1
  10. package/dist/components/CodeEditor/selectionActionToolbar.js +39 -10
  11. package/dist/components/CopyToChatButton/index.js +1 -1
  12. package/dist/components/FooterButton/index.js +2 -2
  13. package/dist/components/FooterIcon/index.js +1 -1
  14. package/dist/components/FormDataEditor/index.d.ts.map +1 -1
  15. package/dist/components/FormDataEditor/index.js +2 -2
  16. package/dist/components/FormGroup/index.js +2 -2
  17. package/dist/components/KeyValueEditor/index.d.ts.map +1 -1
  18. package/dist/components/KeyValueEditor/index.js +1 -1
  19. package/dist/components/MethodSelect/MethodSelectMenu.js +1 -1
  20. package/dist/components/MethodSelect/MethodSelectOption.js +1 -1
  21. package/dist/components/MethodSelect/index.js +1 -1
  22. package/dist/components/Resizable/ResizeHandle.js +1 -1
  23. package/dist/components/Resizable/footerPanelUtils.d.ts +1 -1
  24. package/dist/components/Resizable/footerPanelUtils.d.ts.map +1 -1
  25. package/dist/components/Resizable/footerPanelUtils.js +2 -2
  26. package/dist/components/RowActionsMenu/Submenu.js +1 -1
  27. package/dist/components/RowActionsMenu/index.js +1 -1
  28. package/dist/components/SidebarItem/SidebarBadge.js +2 -2
  29. package/dist/components/SidebarItem/SidebarCommitItem.js +1 -1
  30. package/dist/components/SidebarItem/SidebarFolderItem.js +1 -1
  31. package/dist/components/SidebarItem/SidebarHistoryItem.d.ts +5 -1
  32. package/dist/components/SidebarItem/SidebarHistoryItem.d.ts.map +1 -1
  33. package/dist/components/SidebarItem/SidebarHistoryItem.js +3 -2
  34. package/dist/components/SidebarItem/sidebarItemClasses.d.ts +3 -3
  35. package/dist/components/SidebarItem/sidebarItemClasses.d.ts.map +1 -1
  36. package/dist/components/SidebarItem/sidebarItemClasses.js +5 -5
  37. package/dist/components/SidebarRail/SidebarRailItem.js +1 -1
  38. package/dist/components/SidebarRail/index.js +2 -2
  39. package/dist/components/SidebarSection/SectionItem.js +1 -1
  40. package/dist/components/SortButton/SortMenu.js +1 -1
  41. package/dist/components/SortButton/SortMenuOption.js +1 -1
  42. package/dist/components/TabBar/TabBarShell.js +1 -1
  43. package/dist/components/TabBar/TabContextMenu.js +1 -1
  44. package/dist/components/TabBar/TabNewButton.js +2 -2
  45. package/dist/components/TabBar/index.d.ts.map +1 -1
  46. package/dist/components/TabBar/index.js +2 -2
  47. package/dist/components/TabCloseButton/index.js +1 -1
  48. package/dist/components/Toolbar/index.js +2 -2
  49. package/dist/components/VariableInput/index.d.ts +2 -2
  50. package/dist/components/VariableInput/index.js +2 -2
  51. package/dist/components/VariableTooltip/dom.js +2 -2
  52. package/dist/components/VisibilityMenu/MenuCheckboxItem.js +1 -1
  53. package/dist/components/VisibilityMenu/index.js +1 -1
  54. package/dist/components/classes.d.ts +1 -1
  55. package/dist/components/classes.d.ts.map +1 -1
  56. package/dist/components/classes.js +5 -5
  57. package/dist/components/forms/classes.d.ts +1 -1
  58. package/dist/components/forms/classes.d.ts.map +1 -1
  59. package/dist/components/forms/classes.js +1 -1
  60. package/dist/components/rowActionsMenuHelpers.d.ts.map +1 -1
  61. package/dist/components/rowActionsMenuHelpers.js +1 -1
  62. package/dist/http/resolveRequest.d.ts +3 -0
  63. package/dist/http/resolveRequest.d.ts.map +1 -1
  64. package/dist/http/resolveRequest.js +4 -1
  65. package/dist/http/substitute.d.ts +1 -0
  66. package/dist/http/substitute.d.ts.map +1 -1
  67. package/dist/http/substitute.js +9 -0
  68. package/dist/types.d.ts +54 -35
  69. package/dist/types.d.ts.map +1 -1
  70. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { Badge } from '../Badge/index.js';
2
3
  import { FaIcon } from '../FaIcon/index.js';
3
4
  import { SidebarItem } from './SidebarItem.js';
4
5
  import { SidebarMethodBadge } from './SidebarMethodBadge.js';
@@ -7,7 +8,7 @@ import { SIDEBAR_ITEM_BUTTON_CLASS, statusDotClass } from './sidebarItemClasses.
7
8
  /**
8
9
  * Renders a request or run history entry row in the Collections sidebar History section.
9
10
  */
10
- export function SidebarHistoryItem({ method, name, isRun = false, status, statusText, statusDotVisible = true, methodColors = true, runIcon, selected = false, title, ariaLabel, onContextMenu, onClick, actions, as = 'li', className }) {
11
+ export function SidebarHistoryItem({ method, name, isRun = false, status, statusText, statusDotVisible = true, methodColors = true, corrupt = false, runIcon, selected = false, title, ariaLabel, onContextMenu, onClick, actions, as = 'li', className }) {
11
12
  const useListboxOption = as === 'li';
12
13
  const optionAriaLabel = !isRun && status != null && statusText != null
13
14
  ? `${ariaLabel}, responded ${status} ${statusText}`
@@ -17,5 +18,5 @@ export function SidebarHistoryItem({ method, name, isRun = false, status, status
17
18
  ariaLabel: optionAriaLabel,
18
19
  onClick
19
20
  }
20
- : undefined, children: _jsxs("span", { className: `${SIDEBAR_ITEM_BUTTON_CLASS} py-0.5`, title: title, children: [_jsx(SidebarMethodBadge, { method: method, uppercase: true, methodColors: methodColors }), _jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-text", children: name }), isRun && runIcon != null ? (_jsx(FaIcon, { icon: runIcon, className: "h-3.5 w-3.5 shrink-0 text-muted", "aria-hidden": true })) : null] }), !isRun && status != null && statusText != null ? (_jsx(SidebarStatusDot, { className: statusDotClass(status), visible: statusDotVisible, title: `${status} ${statusText}`, srOnlyLabel: `${status} ${statusText}` })) : null] }) }));
21
+ : undefined, children: _jsxs("span", { className: `${SIDEBAR_ITEM_BUTTON_CLASS} py-0.5`, title: title, children: [_jsx(SidebarMethodBadge, { method: method, uppercase: true, methodColors: methodColors }), _jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-text", children: name }), corrupt ? (_jsx(Badge, { variant: "danger", title: "Stored headers or params JSON for this entry is corrupt", children: "Corrupt" })) : null, isRun && runIcon != null ? (_jsx(FaIcon, { icon: runIcon, className: "h-3.5 w-3.5 shrink-0 text-muted", "aria-hidden": true })) : null] }), !isRun && status != null && statusText != null ? (_jsx(SidebarStatusDot, { className: statusDotClass(status), visible: statusDotVisible, title: `${status} ${statusText}`, srOnlyLabel: `${status} ${statusText}` })) : null] }) }));
21
22
  }
@@ -49,16 +49,16 @@ export declare function statusDotClass(status: number): string;
49
49
  /**
50
50
  * Standard primary button classes for sidebar item label areas.
51
51
  */
52
- export declare const SIDEBAR_ITEM_BUTTON_CLASS = "flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 border-none bg-transparent py-0 text-left text-inherit app-no-drag";
52
+ export declare const SIDEBAR_ITEM_BUTTON_CLASS = "flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 border-none bg-transparent py-0 text-left text-inherit";
53
53
  /**
54
54
  * Tailwind classes for the sortable row drag handle. Hidden until row hover or handle focus.
55
55
  */
56
- export declare const SIDEBAR_DRAG_HANDLE_CLASS = "app-no-drag inline-flex h-4 w-4 shrink-0 cursor-grab items-center justify-center rounded border-none bg-transparent p-0 text-muted opacity-0 hover:text-text focus-visible:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent active:cursor-grabbing group-hover:opacity-100";
56
+ export declare const SIDEBAR_DRAG_HANDLE_CLASS = "inline-flex h-4 w-4 shrink-0 cursor-grab items-center justify-center rounded border-none bg-transparent p-0 text-muted opacity-0 hover:text-text focus-visible:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent active:cursor-grabbing group-hover:opacity-100";
57
57
  /**
58
58
  * Expand/collapse chevron button (collection and folder rows). 16×16 hit target
59
59
  * sized to match Cursor’s file explorer twistie.
60
60
  */
61
- export declare const SIDEBAR_CHEVRON_BUTTON_CLASS = "app-no-drag inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded border-none bg-transparent p-0 text-muted hover:text-text";
61
+ export declare const SIDEBAR_CHEVRON_BUTTON_CLASS = "inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded border-none bg-transparent p-0 text-muted hover:text-text";
62
62
  /**
63
63
  * Expand/collapse chevron glyph size (12×12), forced past Font Awesome's
64
64
  * text-relative dimensions to match Cursor’s explorer carets.
@@ -1 +1 @@
1
- {"version":3,"file":"sidebarItemClasses.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/sidebarItemClasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,MAAM,CAKpE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,MAAM,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,UAAO,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,+HACwF,CAAC;AAE/H;;GAEG;AACH,eAAO,MAAM,yBAAyB,oVAC6S,CAAC;AAEpV;;;GAGG;AACH,eAAO,MAAM,4BAA4B,0JACgH,CAAC;AAE1J;;;GAGG;AACH,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kEAC0B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,kCAAkC,WAAW,CAAC"}
1
+ {"version":3,"file":"sidebarItemClasses.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/sidebarItemClasses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,MAAM,CAKpE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,MAAM,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,UAAO,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,mHAC4E,CAAC;AAEnH;;GAEG;AACH,eAAO,MAAM,yBAAyB,wUACiS,CAAC;AAExU;;;GAGG;AACH,eAAO,MAAM,4BAA4B,8IACoG,CAAC;AAE9I;;;GAGG;AACH,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,kEAC0B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,kCAAkC,WAAW,CAAC"}
@@ -15,8 +15,8 @@ import { statusDotVariantClass } from '../StatusDot/index.js';
15
15
  export function sourceRow(selected, compact = false) {
16
16
  const py = compact ? 'py-0' : 'py-0.5';
17
17
  return selected
18
- ? `group flex items-center gap-1 rounded-md bg-selection pl-1.5 pr-0 ${py} app-no-drag`
19
- : `group flex items-center gap-1 rounded-md pl-1.5 pr-0 ${py} hover:bg-selection/60 app-no-drag`;
18
+ ? `group flex items-center gap-1 rounded-md bg-selection pl-1.5 pr-0 ${py}`
19
+ : `group flex items-center gap-1 rounded-md pl-1.5 pr-0 ${py} hover:bg-selection/60`;
20
20
  }
21
21
  /**
22
22
  * HTTP method color classes keyed by lowercase method name.
@@ -82,16 +82,16 @@ export function statusDotClass(status) {
82
82
  /**
83
83
  * Standard primary button classes for sidebar item label areas.
84
84
  */
85
- export const SIDEBAR_ITEM_BUTTON_CLASS = 'flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 border-none bg-transparent py-0 text-left text-inherit app-no-drag';
85
+ export const SIDEBAR_ITEM_BUTTON_CLASS = 'flex min-w-0 flex-1 cursor-pointer items-center gap-1.5 border-none bg-transparent py-0 text-left text-inherit';
86
86
  /**
87
87
  * Tailwind classes for the sortable row drag handle. Hidden until row hover or handle focus.
88
88
  */
89
- export const SIDEBAR_DRAG_HANDLE_CLASS = 'app-no-drag inline-flex h-4 w-4 shrink-0 cursor-grab items-center justify-center rounded border-none bg-transparent p-0 text-muted opacity-0 hover:text-text focus-visible:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent active:cursor-grabbing group-hover:opacity-100';
89
+ export const SIDEBAR_DRAG_HANDLE_CLASS = 'inline-flex h-4 w-4 shrink-0 cursor-grab items-center justify-center rounded border-none bg-transparent p-0 text-muted opacity-0 hover:text-text focus-visible:opacity-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent active:cursor-grabbing group-hover:opacity-100';
90
90
  /**
91
91
  * Expand/collapse chevron button (collection and folder rows). 16×16 hit target
92
92
  * sized to match Cursor’s file explorer twistie.
93
93
  */
94
- export const SIDEBAR_CHEVRON_BUTTON_CLASS = 'app-no-drag inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded border-none bg-transparent p-0 text-muted hover:text-text';
94
+ export const SIDEBAR_CHEVRON_BUTTON_CLASS = 'inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded border-none bg-transparent p-0 text-muted hover:text-text';
95
95
  /**
96
96
  * Expand/collapse chevron glyph size (12×12), forced past Font Awesome's
97
97
  * text-relative dimensions to match Cursor’s explorer carets.
@@ -59,7 +59,7 @@ function railItemSectionClasses(active) {
59
59
  * @returns Class string for the item button.
60
60
  */
61
61
  function railItemButtonClasses(active, expanded) {
62
- return cn('hc-sidebar-rail-item app-no-drag relative inline-flex min-h-12 w-full shrink-0 cursor-pointer items-center rounded-none border-none bg-transparent py-5', expanded ? 'gap-2 px-3' : 'justify-center', !active && 'hover:bg-sidebar-rail-active', railItemFocusVisible);
62
+ return cn('hc-sidebar-rail-item relative inline-flex min-h-12 w-full shrink-0 cursor-pointer items-center rounded-none border-none bg-transparent py-5', expanded ? 'gap-2 px-3' : 'justify-center', !active && 'hover:bg-sidebar-rail-active', railItemFocusVisible);
63
63
  }
64
64
  /**
65
65
  * Single rail navigation tab: full-width active chrome with an icon button.
@@ -113,10 +113,10 @@ export function SidebarRail({ items, activeId, onSelect, expanded, onExpandedCha
113
113
  }, [expanded, onExpandedChange]);
114
114
  const expandLabel = expanded ? 'Collapse' : 'Expand';
115
115
  const expandAriaLabel = expanded ? 'Collapse sidebar rail' : 'Expand sidebar rail';
116
- return (_jsxs("div", { ...props, className: cn('hc-sidebar-rail app-no-drag flex h-full shrink-0 flex-col bg-sidebar-rail text-sidebar-rail-text', expanded ? 'w-[168px]' : 'w-18', 'transition-[width] duration-200 ease-out motion-reduce:transition-none', className), children: [_jsx("div", { role: "tablist", "aria-orientation": "vertical", "aria-label": ariaLabel, className: "hc-sidebar-rail-items flex min-h-0 flex-1 flex-col items-stretch overflow-x-hidden overflow-y-auto", children: items.flatMap((item, index) => [
116
+ return (_jsxs("div", { ...props, className: cn('hc-sidebar-rail flex h-full shrink-0 flex-col bg-sidebar-rail text-sidebar-rail-text', expanded ? 'w-[168px]' : 'w-18', 'transition-[width] duration-200 ease-out motion-reduce:transition-none', className), children: [_jsx("div", { role: "tablist", "aria-orientation": "vertical", "aria-label": ariaLabel, className: "hc-sidebar-rail-items flex min-h-0 flex-1 flex-col items-stretch overflow-x-hidden overflow-y-auto", children: items.flatMap((item, index) => [
117
117
  _jsx(SidebarRailItem, { item: item, active: item.id === activeId, expanded: expanded, tabIndex: item.id === activeId ? 0 : -1, panelId: panelId, onSelect: () => onSelect(item.id), onKeyDown: (event) => handleItemKeyDown(event, index), buttonRef: (node) => {
118
118
  itemRefs.current[index] = node;
119
119
  } }, item.id),
120
120
  _jsx(SidebarRailSeparator, {}, `${item.id}-separator`)
121
- ]) }), _jsxs("div", { className: "hc-sidebar-rail-footer shrink-0", children: [footer != null ? _jsx("div", { className: "hc-sidebar-rail-footer-content", children: footer }) : null, _jsxs("button", { type: "button", className: cn('hc-sidebar-rail-expand app-no-drag inline-flex min-h-12 w-full cursor-pointer items-center rounded-none border-none bg-transparent py-3 text-sidebar-rail-text', expanded ? 'gap-2 px-3' : 'justify-center', 'hover:bg-sidebar-rail-active', railExpandFocusVisible), "aria-label": expanded ? undefined : expandAriaLabel, "aria-expanded": expanded, title: expandLabel, onClick: handleToggleExpanded, children: [_jsx(FaIcon, { icon: expanded ? faAnglesLeft : faAnglesRight, className: "h-[18px]! w-[18px]!", "aria-hidden": true }), expanded ? _jsx("span", { className: "min-w-0 truncate text-left", children: expandLabel }) : null] })] })] }));
121
+ ]) }), _jsxs("div", { className: "hc-sidebar-rail-footer shrink-0", children: [footer != null ? _jsx("div", { className: "hc-sidebar-rail-footer-content", children: footer }) : null, _jsxs("button", { type: "button", className: cn('hc-sidebar-rail-expand inline-flex min-h-12 w-full cursor-pointer items-center rounded-none border-none bg-transparent py-3 text-sidebar-rail-text', expanded ? 'gap-2 px-3' : 'justify-center', 'hover:bg-sidebar-rail-active', railExpandFocusVisible), "aria-label": expanded ? undefined : expandAriaLabel, "aria-expanded": expanded, title: expandLabel, onClick: handleToggleExpanded, children: [_jsx(FaIcon, { icon: expanded ? faAnglesLeft : faAnglesRight, className: "h-[18px]! w-[18px]!", "aria-hidden": true }), expanded ? _jsx("span", { className: "min-w-0 truncate text-left", children: expandLabel }) : null] })] })] }));
122
122
  }
@@ -17,7 +17,7 @@ const SectionItem = memo(function SectionItem({ forwardedRef, itemRef, state, to
17
17
  const [transitionStyle, panelRef] = useHeightTransition(state);
18
18
  const itemElementRef = useMergeRef(forwardedRef, itemRef);
19
19
  const { status, isMounted, isEnter } = state;
20
- return (_jsxs("div", { ref: itemElementRef, className: "mb-1", children: [_jsxs("div", { className: `hc-sidebar-section-header flex min-h-8 items-center justify-between gap-2 border-b border-sidebar-rail-separator bg-sidebar-section py-1 pl-0.5 ${flushBody ? 'mb-0' : 'mb-1'}`, children: [_jsxs("button", { ...buttonProps, type: "button", className: "app-no-drag inline-flex min-w-0 flex-1 cursor-pointer items-center gap-2.5 border-none bg-transparent p-0 text-left", children: [_jsx("span", { className: SIDEBAR_CHEVRON_SLOT_CLASS, children: _jsx(FaIcon, { icon: isEnter ? faChevronDown : faChevronRight, className: `${SIDEBAR_CHEVRON_ICON_CLASS} text-sidebar-section-text` }) }), _jsx("h2", { tabIndex: -1, className: "hc-sidebar-section-label m-0 text-[15px] leading-none font-medium tracking-wide text-sidebar-section-text uppercase", children: title })] }), (headerActions || onAdd) && (_jsxs("div", { className: "hc-sidebar-section-header-actions flex shrink-0 items-center gap-1", children: [headerActions, onAdd ? (_jsx("button", { type: "button", className: "hc-sidebar-add-button app-no-drag inline-flex shrink-0 cursor-pointer items-center justify-center border-none bg-transparent text-muted hover:bg-selection hover:text-text focus-visible:bg-selection focus-visible:text-text", title: addLabel ?? 'Add', "aria-label": addLabel ?? 'Add', onClick: onAdd, children: _jsx(FaIcon, { icon: faPlus, className: "h-3.5 w-3.5" }) })) : null] }))] }), isMounted ? (_jsx("div", { style: {
20
+ return (_jsxs("div", { ref: itemElementRef, className: "mb-1", children: [_jsxs("div", { className: `hc-sidebar-section-header flex min-h-8 items-center justify-between gap-2 border-b border-sidebar-rail-separator bg-sidebar-section py-1 pl-0.5 ${flushBody ? 'mb-0' : 'mb-1'}`, children: [_jsxs("button", { ...buttonProps, type: "button", className: "inline-flex min-w-0 flex-1 cursor-pointer items-center gap-2.5 border-none bg-transparent p-0 text-left", children: [_jsx("span", { className: SIDEBAR_CHEVRON_SLOT_CLASS, children: _jsx(FaIcon, { icon: isEnter ? faChevronDown : faChevronRight, className: `${SIDEBAR_CHEVRON_ICON_CLASS} text-sidebar-section-text` }) }), _jsx("h2", { tabIndex: -1, className: "hc-sidebar-section-label m-0 text-[15px] leading-none font-medium tracking-wide text-sidebar-section-text uppercase", children: title })] }), (headerActions || onAdd) && (_jsxs("div", { className: "hc-sidebar-section-header-actions flex shrink-0 items-center gap-1", children: [headerActions, onAdd ? (_jsx("button", { type: "button", className: "hc-sidebar-add-button inline-flex shrink-0 cursor-pointer items-center justify-center border-none bg-transparent text-muted hover:bg-selection hover:text-text focus-visible:bg-selection focus-visible:text-text", title: addLabel ?? 'Add', "aria-label": addLabel ?? 'Add', onClick: onAdd, children: _jsx(FaIcon, { icon: faPlus, className: "h-3.5 w-3.5" }) })) : null] }))] }), isMounted ? (_jsx("div", { style: {
21
21
  display: status === 'exited' ? 'none' : undefined,
22
22
  ...transitionStyle
23
23
  }, className: "transition-[height] duration-200 ease-out motion-reduce:transition-none", children: _jsx("div", { ...panelProps, ref: panelRef, children: children }) })) : null] }));
@@ -131,7 +131,7 @@ export function SortMenu({ anchorRef, options, value, ariaLabel = 'Sort', onSele
131
131
  if (position == null) {
132
132
  return null;
133
133
  }
134
- return portalToBody(_jsx("div", { ref: listboxRef, id: listboxId, role: "listbox", "aria-label": ariaLabel, className: "hc-sort-menu-listbox app-no-drag fixed z-50 max-h-[280px] overflow-y-auto rounded-md border border-separator bg-surface py-1 shadow-md", style: { top: position.y, left: position.x, width: LISTBOX_WIDTH_PX }, onKeyDown: handleListboxKeyDown, children: options.map((option, index) => (_jsx(SortMenuOption, { label: option.label, selected: option.id === value, focused: index === focusedIndex, optionRef: (element) => {
134
+ return portalToBody(_jsx("div", { ref: listboxRef, id: listboxId, role: "listbox", "aria-label": ariaLabel, className: "hc-sort-menu-listbox fixed z-50 max-h-[280px] overflow-y-auto rounded-md border border-separator bg-surface py-1 shadow-md", style: { top: position.y, left: position.x, width: LISTBOX_WIDTH_PX }, onKeyDown: handleListboxKeyDown, children: options.map((option, index) => (_jsx(SortMenuOption, { label: option.label, selected: option.id === value, focused: index === focusedIndex, optionRef: (element) => {
135
135
  optionRefs.current[index] = element;
136
136
  }, onSelect: () => onSelect(option.id) }, option.id))) }));
137
137
  }
@@ -11,7 +11,7 @@ import { FaIcon } from '../FaIcon/index.js';
11
11
  * @param onSelect - Called when the option is activated.
12
12
  */
13
13
  export function SortMenuOption({ label, selected, focused, optionRef, onSelect }) {
14
- return (_jsxs("button", { ref: optionRef, type: "button", role: "option", "aria-selected": selected, tabIndex: focused ? 0 : -1, className: "app-no-drag 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", onClick: (event) => {
14
+ return (_jsxs("button", { ref: optionRef, type: "button", role: "option", "aria-selected": selected, tabIndex: focused ? 0 : -1, className: "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", onClick: (event) => {
15
15
  event.stopPropagation();
16
16
  onSelect();
17
17
  }, children: [_jsx("span", { className: "inline-flex w-4 shrink-0 justify-center", "aria-hidden": true, children: selected ? _jsx(FaIcon, { icon: faCheck, className: "h-3 w-3" }) : null }), _jsx("span", { className: "min-w-0 truncate", children: label })] }));
@@ -30,7 +30,7 @@ export function TabBarShell({ item, tabIndex, sortableId, sortableDisabled = fal
30
30
  : (event) => {
31
31
  event.preventDefault();
32
32
  onContextMenu?.(item.id, event);
33
- }, onKeyDown: exiting ? undefined : handleTabKeyDown, ...(sortableDisabled || exiting ? {} : listeners), children: [_jsx("span", { className: "app-no-drag flex min-w-0 flex-1 items-center gap-1.5 py-2 text-inherit", children: item.content }), !exiting && (_jsx("span", { className: "app-no-drag flex shrink-0 items-center self-center", onPointerDown: (event) => event.stopPropagation(), children: _jsx(TabCloseButton, { ariaLabel: item.closeAccessibleName, title: item.closeAccessibleName, tabIndex: 0, onClick: (event) => {
33
+ }, onKeyDown: exiting ? undefined : handleTabKeyDown, ...(sortableDisabled || exiting ? {} : listeners), children: [_jsx("span", { className: "flex min-w-0 flex-1 items-center gap-1.5 py-2 text-inherit", children: item.content }), !exiting && (_jsx("span", { className: "flex shrink-0 items-center self-center", onPointerDown: (event) => event.stopPropagation(), children: _jsx(TabCloseButton, { ariaLabel: item.closeAccessibleName, title: item.closeAccessibleName, tabIndex: 0, onClick: (event) => {
34
34
  event.stopPropagation();
35
35
  onClose(item.id);
36
36
  } }) }))] }));
@@ -104,7 +104,7 @@ export function TabContextMenu({ groups, position, onClose, ariaLabel = 'Tab act
104
104
  if (flatItems.length === 0) {
105
105
  return null;
106
106
  }
107
- return portalToBody(_jsx("div", { ref: menuRef, role: "menu", "aria-label": ariaLabel, className: "hc-tab-context-menu app-no-drag fixed z-[70] min-w-[200px] rounded-md border border-separator bg-surface py-1 shadow-md", style: { left: clampedPosition.x, top: clampedPosition.y }, onKeyDown: handleMenuKeyDown, children: groups.map((group, groupIndex) => {
107
+ return portalToBody(_jsx("div", { ref: menuRef, role: "menu", "aria-label": ariaLabel, className: "hc-tab-context-menu fixed z-[70] min-w-[200px] rounded-md border border-separator bg-surface py-1 shadow-md", style: { left: clampedPosition.x, top: clampedPosition.y }, onKeyDown: handleMenuKeyDown, children: groups.map((group, groupIndex) => {
108
108
  let flatIndex = groups
109
109
  .slice(0, groupIndex)
110
110
  .reduce((count, groupItems) => count + groupItems.length, 0);
@@ -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
  }