@harborclient/sdk 1.2.6 → 1.3.0

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 (80) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/components/Breadcrumb/CrumbSegment.d.ts.map +1 -1
  3. package/dist/components/Breadcrumb/CrumbSegment.js +5 -3
  4. package/dist/components/Breadcrumb/EditableSegment.d.ts.map +1 -1
  5. package/dist/components/Breadcrumb/EditableSegment.js +5 -3
  6. package/dist/components/Breadcrumb/SegmentShell.d.ts +16 -1
  7. package/dist/components/Breadcrumb/SegmentShell.d.ts.map +1 -1
  8. package/dist/components/Breadcrumb/SegmentShell.js +21 -6
  9. package/dist/components/Breadcrumb/index.d.ts +2 -0
  10. package/dist/components/Breadcrumb/index.d.ts.map +1 -1
  11. package/dist/components/Breadcrumb/index.js +5 -1
  12. package/dist/components/Breadcrumb/types.d.ts +5 -0
  13. package/dist/components/Breadcrumb/types.d.ts.map +1 -1
  14. package/dist/components/CodeEditor/index.d.ts.map +1 -1
  15. package/dist/components/CodeEditor/index.js +21 -5
  16. package/dist/components/CodeEditor/renderHighlightedPlaceholder.d.ts.map +1 -1
  17. package/dist/components/CodeEditor/renderHighlightedPlaceholder.js +4 -10
  18. package/dist/components/CodeEditor/themes.d.ts +14 -0
  19. package/dist/components/CodeEditor/themes.d.ts.map +1 -1
  20. package/dist/components/CodeEditor/themes.js +27 -0
  21. package/dist/components/FormGroup/index.d.ts +2 -2
  22. package/dist/components/FormGroup/index.d.ts.map +1 -1
  23. package/dist/components/FormGroup/index.js +4 -8
  24. package/dist/components/SegmentedTabs/index.d.ts.map +1 -1
  25. package/dist/components/SegmentedTabs/index.js +2 -2
  26. package/dist/components/SidebarItem/SidebarDocumentItem.d.ts +1 -2
  27. package/dist/components/SidebarItem/SidebarDocumentItem.d.ts.map +1 -1
  28. package/dist/components/SidebarItem/SidebarFolderItem.d.ts +2 -1
  29. package/dist/components/SidebarItem/SidebarFolderItem.d.ts.map +1 -1
  30. package/dist/components/SidebarItem/SidebarFolderItem.js +5 -3
  31. package/dist/components/SidebarItem/SidebarItem.d.ts +2 -2
  32. package/dist/components/SidebarItem/SidebarItem.d.ts.map +1 -1
  33. package/dist/components/SidebarItem/SidebarItem.js +6 -6
  34. package/dist/components/SidebarItem/SortableSidebarItem.d.ts +10 -4
  35. package/dist/components/SidebarItem/SortableSidebarItem.d.ts.map +1 -1
  36. package/dist/components/SidebarItem/SortableSidebarItem.js +8 -6
  37. package/dist/components/SidebarItem/index.d.ts +1 -1
  38. package/dist/components/SidebarItem/index.d.ts.map +1 -1
  39. package/dist/components/SidebarItem/index.js +1 -1
  40. package/dist/components/SidebarItem/sidebarItemClasses.d.ts +18 -5
  41. package/dist/components/SidebarItem/sidebarItemClasses.d.ts.map +1 -1
  42. package/dist/components/SidebarItem/sidebarItemClasses.js +18 -5
  43. package/dist/components/SidebarSection/SectionItem.d.ts.map +1 -1
  44. package/dist/components/SidebarSection/SectionItem.js +3 -1
  45. package/dist/components/TabBar/TabBarShell.js +1 -1
  46. package/dist/components/TabBar/TabNewButton.d.ts +1 -1
  47. package/dist/components/TabBar/TabNewButton.d.ts.map +1 -1
  48. package/dist/components/TabBar/TabNewButton.js +2 -2
  49. package/dist/components/TabBar/index.d.ts.map +1 -1
  50. package/dist/components/TabBar/index.js +6 -4
  51. package/dist/components/Toolbar/index.d.ts +1 -0
  52. package/dist/components/Toolbar/index.d.ts.map +1 -1
  53. package/dist/components/Toolbar/index.js +2 -1
  54. package/dist/components/classes.d.ts +6 -3
  55. package/dist/components/classes.d.ts.map +1 -1
  56. package/dist/components/classes.js +8 -5
  57. package/dist/components/forms/Switch.d.ts +21 -0
  58. package/dist/components/forms/Switch.d.ts.map +1 -0
  59. package/dist/components/forms/Switch.js +13 -0
  60. package/dist/components/forms/classes.d.ts +8 -2
  61. package/dist/components/forms/classes.d.ts.map +1 -1
  62. package/dist/components/forms/classes.js +8 -2
  63. package/dist/components/forms/index.d.ts +2 -1
  64. package/dist/components/forms/index.d.ts.map +1 -1
  65. package/dist/components/forms/index.js +2 -1
  66. package/dist/components/index.d.ts +2 -2
  67. package/dist/components/index.d.ts.map +1 -1
  68. package/dist/components/index.js +2 -2
  69. package/dist/styles.css +20 -3
  70. package/dist/types.d.ts +3 -2
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/ui/appearanceTheme.d.ts +11 -0
  73. package/dist/ui/appearanceTheme.d.ts.map +1 -0
  74. package/dist/ui/appearanceTheme.js +37 -0
  75. package/dist/ui/codeEditorSettings.d.ts +1 -1
  76. package/dist/ui/codeEditorSettings.js +2 -2
  77. package/dist/ui/index.d.ts +1 -0
  78. package/dist/ui/index.d.ts.map +1 -1
  79. package/dist/ui/index.js +1 -0
  80. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 1.3.0 - 2026-07-26
8
+
9
+ - Enhance release workflows with concurrency and rebase logic. (`e26c79de`)
10
+ - Enhance testing and plugin management functionality. (`48799cc9`)
11
+ - Enhance AI chat settings and UI components. (`ad9d10c9`)
12
+ - Enhance Toolbar component to support responsive action icon wrapping. (`f1cad2f6`)
13
+
14
+ ## 1.2.7 - 2026-07-25
15
+
16
+ - Update documentation deployment workflow and enhance UI components. (`a82232bd`)
17
+
7
18
  ## 1.2.5 - 2026-07-25
8
19
 
9
20
  - feat(CodeEditor): support diagnostic actions in lint hover tooltips. (`40c83c3`)
@@ -1 +1 @@
1
- {"version":3,"file":"CrumbSegment.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/CrumbSegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAc,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,KAAK;IACb;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAkCnE"}
1
+ {"version":3,"file":"CrumbSegment.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/CrumbSegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAyB,MAAM,OAAO,CAAC;AAGxD,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,KAAK;IACb;;OAEG;IACH,OAAO,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAyCnE"}
@@ -1,11 +1,12 @@
1
- import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { FaIcon } from '../FaIcon/index.js';
2
3
  import { cn } from '../utils.js';
3
4
  import { SegmentShell } from './SegmentShell.js';
4
5
  /**
5
6
  * Renders one leading, non-editable breadcrumb segment.
6
7
  */
7
8
  export function CrumbSegment({ segment, shape }) {
8
- const contentClass = cn('block w-full truncate border-none bg-transparent p-0 text-left', segment.onClick && 'cursor-pointer hover:text-text focus-visible:text-text');
9
+ const contentClass = cn('flex w-full min-w-0 items-center gap-2 border-none bg-transparent p-0 text-left', segment.onClick && 'cursor-pointer hover:text-text focus-visible:text-text');
9
10
  /**
10
11
  * Stops click propagation so breadcrumb navigation does not trigger edit mode.
11
12
  *
@@ -15,5 +16,6 @@ export function CrumbSegment({ segment, shape }) {
15
16
  event.stopPropagation();
16
17
  segment.onClick?.();
17
18
  };
18
- return (_jsx(SegmentShell, { shape: shape, children: segment.onClick ? (_jsx("button", { type: "button", className: cn(contentClass, 'app-no-drag focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent'), onClick: handleClick, children: segment.label })) : (_jsx("span", { className: contentClass, children: segment.label })) }));
19
+ const content = (_jsxs(_Fragment, { children: [segment.icon && _jsx(FaIcon, { icon: segment.icon, className: "h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "min-w-0 truncate", children: segment.label })] }));
20
+ return (_jsx(SegmentShell, { shape: shape, tone: shape === 'first' ? 'selection' : 'path', children: segment.onClick ? (_jsx("button", { type: "button", className: cn(contentClass, 'app-no-drag focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent'), onClick: handleClick, children: content })) : (_jsx("span", { className: contentClass, children: content })) }));
19
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EditableSegment.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/EditableSegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAEpE,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,EACL,QAAQ,EACR,cAAc,EACd,aAAa,EACb,aAAa,EACd,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAmCrB"}
1
+ {"version":3,"file":"EditableSegment.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/EditableSegment.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAEpE,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,EACL,QAAQ,EACR,cAAc,EACd,aAAa,EACb,aAAa,EACd,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAwCrB"}
@@ -1,14 +1,16 @@
1
- import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { faPen } from '@fortawesome/free-solid-svg-icons';
3
+ import { FaIcon } from '../FaIcon/index.js';
2
4
  import { Input } from '../forms/index.js';
3
5
  import { SegmentShell } from './SegmentShell.js';
4
6
  /**
5
7
  * Renders the trailing breadcrumb segment with click-to-edit behavior.
6
8
  */
7
9
  export function EditableSegment({ value, placeholder, editableLabel, editing, shape, inputRef, onStartEditing, onStopEditing, onValueChange }) {
8
- return (_jsx(SegmentShell, { shape: shape, grow: true, children: editing ? (_jsx(Input, { ref: inputRef, variant: "plain", "aria-label": editableLabel, className: "app-no-drag w-full min-w-0 border-none bg-transparent p-0 font-semibold text-text outline-none", type: "text", value: value, onChange: (event) => onValueChange(event.target.value), onBlur: onStopEditing, onKeyDown: (event) => {
10
+ return (_jsx(SegmentShell, { shape: shape, tone: "current", grow: true, children: editing ? (_jsx(Input, { ref: inputRef, variant: "plain", "aria-label": editableLabel, className: "app-no-drag w-full min-w-0 border-none bg-transparent p-0 font-semibold text-text outline-none", type: "text", value: value, onChange: (event) => onValueChange(event.target.value), onBlur: onStopEditing, onKeyDown: (event) => {
9
11
  if (event.key === 'Enter' || event.key === 'Escape') {
10
12
  event.preventDefault();
11
13
  onStopEditing();
12
14
  }
13
- } })) : (_jsx("button", { type: "button", "aria-current": "page", "aria-label": editableLabel, className: "app-no-drag flex w-full min-w-0 cursor-text items-center border-none bg-transparent p-0 text-left font-semibold text-text hover:opacity-80 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent", onClick: onStartEditing, children: _jsx("span", { className: "min-w-0 truncate", children: value ? value : _jsx("span", { className: "font-normal text-muted", children: placeholder }) }) })) }));
15
+ } })) : (_jsxs("button", { type: "button", "aria-current": "page", "aria-label": editableLabel, className: "app-no-drag inline-flex max-w-full min-w-0 cursor-text items-center border-none bg-transparent p-0 text-left font-semibold text-text hover:opacity-80 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-accent", onClick: onStartEditing, children: [_jsx("span", { className: "min-w-0 truncate", children: value ? value : _jsx("span", { className: "font-normal text-muted", children: placeholder }) }), _jsx(FaIcon, { icon: faPen, className: "ms-3 h-2.5 w-2.5 shrink-0 cursor-pointer text-muted opacity-60", "aria-hidden": true })] })) }));
14
16
  }
@@ -3,6 +3,12 @@ import type { JSX, ReactNode } from 'react';
3
3
  * Shape position within the interlocking breadcrumb bar.
4
4
  */
5
5
  export type SegmentShape = 'first' | 'middle' | 'last' | 'only';
6
+ /**
7
+ * Background tone for a segment: `path` for leading collection/folder crumbs,
8
+ * `selection` for the first path crumb highlight, `current` for the trailing
9
+ * request-name crumb.
10
+ */
11
+ export type SegmentTone = 'path' | 'selection' | 'current';
6
12
  /**
7
13
  * Shared shell classes and clip-path styling for one breadcrumb segment.
8
14
  */
@@ -11,6 +17,11 @@ interface Props {
11
17
  * Segment position within the bar.
12
18
  */
13
19
  shape: SegmentShape;
20
+ /**
21
+ * Background tone; leading crumbs use `path` (or `selection` for the first),
22
+ * the editable crumb `current`.
23
+ */
24
+ tone?: SegmentTone;
14
25
  /**
15
26
  * When true, the segment grows to fill remaining horizontal space.
16
27
  */
@@ -26,7 +37,11 @@ interface Props {
26
37
  }
27
38
  /**
28
39
  * Renders the arrow-shaped background shell shared by crumb and editable segments.
40
+ *
41
+ * First and only shapes use an overflow-hidden rounded wrapper so the left (or
42
+ * full) edge can be pill-capped like the URL bar; middle and last keep a single
43
+ * clip-path layer for chevron interlocking.
29
44
  */
30
- export declare function SegmentShell({ shape, grow, className, children }: Props): JSX.Element;
45
+ export declare function SegmentShell({ shape, tone, grow, className, children }: Props): JSX.Element;
31
46
  export {};
32
47
  //# sourceMappingURL=SegmentShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentShell.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/SegmentShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM5C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAsBhE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,IAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAuB7F"}
1
+ {"version":3,"file":"SegmentShell.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/SegmentShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM5C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAsB3D;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,IAAa,EACb,IAAY,EACZ,SAAS,EACT,QAAQ,EACT,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAsDrB"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
2
  import { cn } from '../utils.js';
3
3
  /** Pixel width of the chevron notch shared between interlocking segments. */
4
4
  const CHEVRON_PX = 9;
@@ -6,7 +6,7 @@ const CHEVRON_PX = 9;
6
6
  * Returns a CSS clip-path polygon for the given segment shape.
7
7
  *
8
8
  * @param shape - Which segment position to clip for.
9
- * @returns Clip-path polygon string for inline style use.
9
+ * @returns Clip-path polygon string for inline style use, or `none` when unused.
10
10
  */
11
11
  function clipPathForShape(shape) {
12
12
  switch (shape) {
@@ -23,13 +23,28 @@ function clipPathForShape(shape) {
23
23
  }
24
24
  /**
25
25
  * Renders the arrow-shaped background shell shared by crumb and editable segments.
26
+ *
27
+ * First and only shapes use an overflow-hidden rounded wrapper so the left (or
28
+ * full) edge can be pill-capped like the URL bar; middle and last keep a single
29
+ * clip-path layer for chevron interlocking.
26
30
  */
27
- export function SegmentShell({ shape, grow = false, className, children }) {
31
+ export function SegmentShell({ shape, tone = 'path', grow = false, className, children }) {
28
32
  const hasChevron = shape !== 'only';
29
33
  const clipPath = clipPathForShape(shape);
30
34
  const needsLeadingInset = shape !== 'first' && shape !== 'only';
31
- return (_jsx("div", { className: cn('hc-breadcrumb-segment relative flex min-h-[30px] min-w-0 items-center bg-breadcrumb-segment py-2', grow ? 'min-w-[6rem] flex-1' : 'max-w-[45%] shrink-0', hasChevron && shape !== 'last' && '-mr-[6px]', !needsLeadingInset && 'pl-3', 'pr-3', className), style: {
35
+ const toneClass = tone === 'current'
36
+ ? 'bg-breadcrumb-current'
37
+ : tone === 'selection'
38
+ ? 'bg-selection'
39
+ : 'bg-breadcrumb-segment';
40
+ const usesPillCap = shape === 'first' || shape === 'only';
41
+ const layoutClass = cn('hc-breadcrumb-segment relative flex min-h-[26px] min-w-0 items-center py-2', grow ? 'min-w-[6rem] flex-1' : 'max-w-[45%] shrink-0', hasChevron && shape !== 'last' && '-mr-[6px]', !needsLeadingInset && 'pl-5', 'pr-5', className);
42
+ const content = _jsx("div", { className: "relative w-full min-w-0 truncate", children: children });
43
+ if (usesPillCap) {
44
+ return (_jsxs("div", { className: cn(layoutClass, 'overflow-hidden', shape === 'only' ? 'rounded-full!' : 'rounded-l-full!'), style: needsLeadingInset ? { paddingLeft: `${CHEVRON_PX + 16}px` } : undefined, children: [_jsx("div", { "aria-hidden": true, className: cn('pointer-events-none absolute inset-0', toneClass), style: clipPath !== 'none' ? { clipPath } : undefined }), content] }));
45
+ }
46
+ return (_jsx("div", { className: cn(layoutClass, toneClass), style: {
32
47
  ...(clipPath !== 'none' ? { clipPath } : {}),
33
- ...(needsLeadingInset ? { paddingLeft: `${CHEVRON_PX + 8}px` } : {})
34
- }, children: _jsx("div", { className: "w-full min-w-0 truncate", children: children }) }));
48
+ ...(needsLeadingInset ? { paddingLeft: `${CHEVRON_PX + 16}px` } : {})
49
+ }, children: content }));
35
50
  }
@@ -35,6 +35,8 @@ interface Props {
35
35
  /**
36
36
  * Full-width breadcrumb bar with interlocking arrow-shaped segments. Leading
37
37
  * segments are optionally clickable; the trailing segment is inline-editable.
38
+ * The track background is clipped to the segments' pill silhouette so the
39
+ * rounded caps read against the surrounding surface instead of a square band.
38
40
  */
39
41
  export declare function Breadcrumb({ segments, value, placeholder, editableLabel, onValueChange, className, flush }: Props): JSX.Element;
40
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,OAAO,CAAC;AAKrE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,KAAK;IACb;;OAEG;IACH,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,WAAgB,EAChB,aAAsB,EACtB,aAAa,EACb,SAAS,EACT,KAAa,EACd,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA2DrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,OAAO,CAAC;AAKrE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,KAAK;IACb;;OAEG;IACH,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,WAAgB,EAChB,aAAsB,EACtB,aAAa,EACb,SAAS,EACT,KAAa,EACd,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAgErB"}
@@ -6,6 +6,8 @@ import { EditableSegment } from './EditableSegment.js';
6
6
  /**
7
7
  * Full-width breadcrumb bar with interlocking arrow-shaped segments. Leading
8
8
  * segments are optionally clickable; the trailing segment is inline-editable.
9
+ * The track background is clipped to the segments' pill silhouette so the
10
+ * rounded caps read against the surrounding surface instead of a square band.
9
11
  */
10
12
  export function Breadcrumb({ segments, value, placeholder = '', editableLabel = 'Name', onValueChange, className, flush = false }) {
11
13
  const [editing, setEditing] = useState(false);
@@ -34,5 +36,7 @@ export function Breadcrumb({ segments, value, placeholder = '', editableLabel =
34
36
  return 'middle';
35
37
  };
36
38
  const editableShape = segments.length === 0 ? 'only' : 'last';
37
- return (_jsxs("nav", { id: navId, "aria-label": "Breadcrumb", className: cn('hc-breadcrumb flex min-w-0 items-stretch bg-breadcrumb-background', flush ? '-mx-3 -mt-3 w-[calc(100%+1.5rem)]' : 'w-full', className), children: [segments.map((segment, index) => (_jsx(CrumbSegment, { segment: segment, shape: leadingShape(index) }, segment.id ?? `${segment.label}-${index}`))), _jsx(EditableSegment, { value: value, placeholder: placeholder, editableLabel: editableLabel, editing: editing, shape: editableShape, inputRef: inputRef, onStartEditing: () => setEditing(true), onStopEditing: () => setEditing(false), onValueChange: onValueChange })] }));
39
+ return (_jsxs("nav", { id: navId, "aria-label": "Breadcrumb", className: cn('hc-breadcrumb flex min-w-0 items-stretch bg-breadcrumb-background', flush
40
+ ? '-mx-3 -mt-3 w-[calc(100%+1.5rem)]'
41
+ : cn('w-full overflow-hidden', editableShape === 'only' ? 'rounded-full' : 'rounded-l-full'), className), children: [segments.map((segment, index) => (_jsx(CrumbSegment, { segment: segment, shape: leadingShape(index) }, segment.id ?? `${segment.label}-${index}`))), _jsx(EditableSegment, { value: value, placeholder: placeholder, editableLabel: editableLabel, editing: editing, shape: editableShape, inputRef: inputRef, onStartEditing: () => setEditing(true), onStopEditing: () => setEditing(false), onValueChange: onValueChange })] }));
38
42
  }
@@ -1,3 +1,4 @@
1
+ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
1
2
  /**
2
3
  * One non-editable breadcrumb segment rendered before the trailing editable item.
3
4
  */
@@ -6,6 +7,10 @@ export interface BreadcrumbSegment {
6
7
  * Visible label for the segment.
7
8
  */
8
9
  label: string;
10
+ /**
11
+ * Optional decorative icon rendered before the label.
12
+ */
13
+ icon?: IconDefinition;
9
14
  /**
10
15
  * Optional stable key; falls back to the segment index when omitted.
11
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CodeEditor/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAmC,MAAM,0BAA0B,CAAC;AAkBlG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAWxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAUjF,OAAO,EAAE,KAAK,oBAAoB,EAA+B,MAAM,sBAAsB,CAAC;AAM9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAE7F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,wBAAwB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAEvD;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,KAAM,SAAQ,IAAI,CACjC,wBAAwB,CAAC,KAAK,CAAC,EAC7B,UAAU,GACV,UAAU,GACV,WAAW,GACX,IAAI,GACJ,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,OAAO,CACV;IACC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAE5C;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAEzC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAE/C;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;;OAKG;IACH,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAErC;;OAEG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAoyBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAiB,EACjB,QAAgB,EAChB,QAAQ,EACR,WAAW,EACX,oBAA4B,EAC5B,SAAmB,EACnB,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAc,EACd,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,IAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,EAAE,EACF,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAAE,eAAe,EACnC,GAAG,KAAK,EACT,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA+rBrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CodeEditor/index.tsx"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { Compartment, Prec } from '@codemirror/state';
10
10
  import { Decoration, EditorView, MatchDecorator, ViewPlugin, hoverTooltip, keymap } from '@codemirror/view';
11
11
  import { createElement, useCallback, useEffect, useId, useMemo, useRef, useState } from '@harborclient/sdk/react';
12
12
  import CodeMirrorImport from '@uiw/react-codemirror';
13
+ import { isAppearanceDark } from '../../ui/appearanceTheme.js';
13
14
  import { normalizeCodeEditorFontSize } from '../../ui/codeEditorSettings.js';
14
15
  import { VARIABLE_NAME_CHARS, getVariableTooltipContent } from '../../variables/index.js';
15
16
  import { Button } from '../Button/index.js';
@@ -625,7 +626,7 @@ export function CodeEditor({ value, onChange, language = 'text', readOnly = fals
625
626
  const resolvedSetup = setupOverride ?? (readOnly ? null : config.setup);
626
627
  const resolvedFontSize = normalizeCodeEditorFontSize(fontSize ?? config.fontSize);
627
628
  const resolvedEditable = editable ?? !readOnly;
628
- const [isDark, setIsDark] = useState(() => window.matchMedia('(prefers-color-scheme: dark)').matches);
629
+ const [isDark, setIsDark] = useState(() => isAppearanceDark());
629
630
  const [selectionTooltip, setSelectionTooltip] = useState(null);
630
631
  const selectionTooltipRef = useRef(selectionTooltip);
631
632
  selectionTooltipRef.current = selectionTooltip;
@@ -824,13 +825,28 @@ export function CodeEditor({ value, onChange, language = 'text', readOnly = fals
824
825
  */
825
826
  const editorThemeExt = useMemo(() => createEditorTheme(resolvedFontSize), [resolvedFontSize]);
826
827
  /**
827
- * Tracks system dark mode so syntax highlighting matches the active theme.
828
+ * Tracks the resolved app appearance so syntax highlighting and placeholder
829
+ * rendering match the active theme. Listens for host theme applications
830
+ * (`harborclient:theme-colors-applied`), OS color-scheme changes (System
831
+ * appearance), and `data-theme` attribute swaps on the document root, and
832
+ * cleans up all listeners on unmount.
828
833
  */
829
834
  useEffect(() => {
835
+ const syncAppearance = () => setIsDark(isAppearanceDark());
830
836
  const media = window.matchMedia('(prefers-color-scheme: dark)');
831
- const handleChange = () => setIsDark(media.matches);
832
- media.addEventListener('change', handleChange);
833
- return () => media.removeEventListener('change', handleChange);
837
+ media.addEventListener('change', syncAppearance);
838
+ window.addEventListener('harborclient:theme-colors-applied', syncAppearance);
839
+ const observer = new MutationObserver(syncAppearance);
840
+ observer.observe(document.documentElement, {
841
+ attributes: true,
842
+ attributeFilter: ['data-theme']
843
+ });
844
+ syncAppearance();
845
+ return () => {
846
+ media.removeEventListener('change', syncAppearance);
847
+ window.removeEventListener('harborclient:theme-colors-applied', syncAppearance);
848
+ observer.disconnect();
849
+ };
834
850
  }, []);
835
851
  /**
836
852
  * Stable selection listener that debounces view-state persistence.
@@ -1 +1 @@
1
- {"version":3,"file":"renderHighlightedPlaceholder.d.ts","sourceRoot":"","sources":["../../../src/components/CodeEditor/renderHighlightedPlaceholder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,KAAK,gBAAgB,EAAiC,MAAM,8BAA8B,CAAC;AAGpG;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACpC;AA8DD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,mCAAmC,GAC3C,WAAW,CA4Cb"}
1
+ {"version":3,"file":"renderHighlightedPlaceholder.d.ts","sourceRoot":"","sources":["../../../src/components/CodeEditor/renderHighlightedPlaceholder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,KAAK,gBAAgB,EAAiC,MAAM,8BAA8B,CAAC;AAGpG;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACpC;AAyDD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,mCAAmC,GAC3C,WAAW,CA6Cb"}
@@ -1,9 +1,8 @@
1
1
  import { javascript } from '@codemirror/lang-javascript';
2
2
  import { EditorState } from '@codemirror/state';
3
3
  import { EditorView } from '@codemirror/view';
4
- import { createBuiltInSyntaxHighlighting } from './editorChrome.js';
5
4
  import { createSlashCommandHighlighter } from './slashCommandHighlighter.js';
6
- import { getCodeEditorThemeExtension } from './themes.js';
5
+ import { resolvePlaceholderSyntaxHighlighting } from './themes.js';
7
6
  const renderCache = new Map();
8
7
  /**
9
8
  * Builds a stable cache key for rendered placeholder DOM.
@@ -45,13 +44,7 @@ function buildOffscreenPlaceholderExtensions(options) {
45
44
  }
46
45
  })
47
46
  ];
48
- const themeExtension = getCodeEditorThemeExtension(options.theme);
49
- if (themeExtension) {
50
- extensions.push(themeExtension);
51
- }
52
- else {
53
- extensions.push(createBuiltInSyntaxHighlighting(options.isDark));
54
- }
47
+ extensions.push(resolvePlaceholderSyntaxHighlighting(options.theme, options.isDark));
55
48
  if (options.slashCommands && options.slashCommands.length > 0) {
56
49
  extensions.push(createSlashCommandHighlighter(options.slashCommands));
57
50
  }
@@ -86,7 +79,8 @@ export function renderHighlightedPlaceholderDom(text, options) {
86
79
  wrap.style.display = 'inline-block';
87
80
  wrap.style.verticalAlign = 'top';
88
81
  wrap.style.whiteSpace = 'pre-wrap';
89
- wrap.style.opacity = '0.55';
82
+ // Light token colors need less fading to stay readable on the light surface.
83
+ wrap.style.opacity = options.isDark ? '0.55' : '0.75';
90
84
  wrap.style.fontFamily = 'var(--font-mono)';
91
85
  wrap.style.fontSize = options.fontSize;
92
86
  wrap.style.userSelect = 'none';
@@ -16,4 +16,18 @@ export declare const CODE_EDITOR_THEME_OPTIONS: Array<{
16
16
  * @returns Theme extension to append to the editor, or null when using built-in highlighting.
17
17
  */
18
18
  export declare function getCodeEditorThemeExtension(value: CodeEditorTheme): Extension | null;
19
+ /**
20
+ * Resolves syntax highlighting for placeholder ghost rendering.
21
+ *
22
+ * Placeholders render on the transparent editor surface, so dark-background
23
+ * themes (Monokai, Dracula, ...) produce washed-out pastel tokens in light
24
+ * appearance. In light mode, only light-native themes keep their own colors;
25
+ * everything else falls back to the built-in light highlight style. Dark mode
26
+ * keeps the user's selected theme unchanged.
27
+ *
28
+ * @param theme - Persisted CodeMirror theme selection.
29
+ * @param isDark - Whether the resolved app appearance is dark.
30
+ * @returns Extension providing readable token colors for the placeholder.
31
+ */
32
+ export declare function resolvePlaceholderSyntaxHighlighting(theme: CodeEditorTheme, isDark: boolean): Extension;
19
33
  //# sourceMappingURL=themes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/components/CodeEditor/themes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAStF,CAAC;AAYF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAKpF"}
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/components/CodeEditor/themes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAStF,CAAC;AAYF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAKpF;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,OAAO,GACd,SAAS,CAKX"}
@@ -1,5 +1,6 @@
1
1
  import { dracula, githubDark, githubLight, monokai, nord, solarizedLight, tokyoNight } from '@uiw/codemirror-themes-all';
2
2
  import { CODE_EDITOR_THEME_IDS } from '../../ui/codeEditorSettings.js';
3
+ import { createBuiltInSyntaxHighlighting } from './editorChrome.js';
3
4
  export { CODE_EDITOR_THEME_IDS };
4
5
  /**
5
6
  * Theme options shown in the syntax highlighting settings dropdown.
@@ -35,3 +36,29 @@ export function getCodeEditorThemeExtension(value) {
35
36
  }
36
37
  return themeExtensions[value];
37
38
  }
39
+ /**
40
+ * Syntax themes whose token colors are designed for light backgrounds.
41
+ */
42
+ const LIGHT_NATIVE_THEMES = new Set([
43
+ 'githubLight',
44
+ 'solarizedLight'
45
+ ]);
46
+ /**
47
+ * Resolves syntax highlighting for placeholder ghost rendering.
48
+ *
49
+ * Placeholders render on the transparent editor surface, so dark-background
50
+ * themes (Monokai, Dracula, ...) produce washed-out pastel tokens in light
51
+ * appearance. In light mode, only light-native themes keep their own colors;
52
+ * everything else falls back to the built-in light highlight style. Dark mode
53
+ * keeps the user's selected theme unchanged.
54
+ *
55
+ * @param theme - Persisted CodeMirror theme selection.
56
+ * @param isDark - Whether the resolved app appearance is dark.
57
+ * @returns Extension providing readable token colors for the placeholder.
58
+ */
59
+ export function resolvePlaceholderSyntaxHighlighting(theme, isDark) {
60
+ if (!isDark && !LIGHT_NATIVE_THEMES.has(theme)) {
61
+ return createBuiltInSyntaxHighlighting(false);
62
+ }
63
+ return getCodeEditorThemeExtension(theme) ?? createBuiltInSyntaxHighlighting(isDark);
64
+ }
@@ -30,11 +30,11 @@ interface Props extends Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'clas
30
30
  */
31
31
  error?: ReactNode;
32
32
  /**
33
- * Explicit id for the error element; defaults to `${htmlFor}-error` when `htmlFor` is set.
33
+ * Explicit id for the error element; defaults to `${controlId}-error`.
34
34
  */
35
35
  errorId?: string;
36
36
  /**
37
- * Explicit id for the description element; defaults to `${htmlFor}-description` when `htmlFor` is set.
37
+ * Explicit id for the description element; defaults to `${controlId}-description`.
38
38
  */
39
39
  descriptionId?: string;
40
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FormGroup/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItE;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,kBAAkB,GAClB,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,UAAU,KAAM,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACrF;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoCD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,KAAK,EACL,OAAO,EACP,aAAa,EACb,MAAkB,EAClB,SAAqB,EACrB,MAAc,EACd,SAAS,EACT,cAAc,EACd,QAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAkJrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FormGroup/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItE;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,kBAAkB,GAClB,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,UAAU,KAAM,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACrF;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoCD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,KAAK,EACL,OAAO,EACP,aAAa,EACb,MAAkB,EAClB,SAAqB,EACrB,MAAc,EACd,SAAS,EACT,cAAc,EACd,QAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA8IrB"}
@@ -68,11 +68,9 @@ export function FormGroup({ label, children, htmlFor, description, error, errorI
68
68
  }
69
69
  if (layout === 'checkbox') {
70
70
  const resolvedDescriptionId = description != null && description !== ''
71
- ? (descriptionId ?? (htmlFor ? `${htmlFor}-description` : undefined))
72
- : undefined;
73
- const resolvedErrorId = error != null && error !== ''
74
- ? (errorId ?? (htmlFor ? `${htmlFor}-error` : undefined))
71
+ ? (descriptionId ?? `${controlId}-description`)
75
72
  : undefined;
73
+ const resolvedErrorId = error != null && error !== '' ? (errorId ?? `${controlId}-error`) : undefined;
76
74
  const describedByIds = [resolvedDescriptionId, resolvedErrorId].filter((id) => id != null);
77
75
  const describedBy = describedByIds.length > 0 ? describedByIds.join(' ') : undefined;
78
76
  const linkedChildren = enhanceControl(children, {
@@ -89,11 +87,9 @@ export function FormGroup({ label, children, htmlFor, description, error, errorI
89
87
  return (_jsxs("label", { htmlFor: controlId, className: wrapperClasses, children: [_jsx("span", { className: labelClasses(labelTone, srOnly, true), children: label }), linkedChildren] }));
90
88
  }
91
89
  const resolvedDescriptionId = description != null && description !== ''
92
- ? (descriptionId ?? (htmlFor ? `${htmlFor}-description` : undefined))
93
- : undefined;
94
- const resolvedErrorId = error != null && error !== ''
95
- ? (errorId ?? (htmlFor ? `${htmlFor}-error` : undefined))
90
+ ? (descriptionId ?? `${controlId}-description`)
96
91
  : undefined;
92
+ const resolvedErrorId = error != null && error !== '' ? (errorId ?? `${controlId}-error`) : undefined;
97
93
  const describedByIds = [resolvedDescriptionId, resolvedErrorId].filter((id) => id != null);
98
94
  const describedBy = describedByIds.length > 0 ? describedByIds.join(' ') : undefined;
99
95
  const control = enhanceControl(children, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SegmentedTabs/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAiB,MAAM,OAAO,CAAC;AAM1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAgD1C,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAC5C,wBAAwB,CAAC,KAAK,CAAC,EAC/B,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CACrD;IACC;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;IAEvB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC;IAE9B;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,EAC9C,IAAI,EACJ,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,QAAe,EACf,gBAAgB,EAAE,oBAAoB,EACtC,uBAAuB,EACvB,wBAAwB,EACxB,SAAiB,EACjB,SAAS,EACT,OAAgB,EAChB,SAAS,EAAE,aAAa,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CA0PxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SegmentedTabs/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAE,GAAG,EAAiB,MAAM,OAAO,CAAC;AAM1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAgD1C,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAC5C,wBAAwB,CAAC,KAAK,CAAC,EAC/B,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CACrD;IACC;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;IAEvB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC;IAE9B;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,EAC9C,IAAI,EACJ,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,QAAe,EACf,gBAAgB,EAAE,oBAAoB,EACtC,uBAAuB,EACvB,wBAAwB,EACxB,SAAiB,EACjB,SAAS,EACT,OAAgB,EAChB,SAAS,EAAE,aAAa,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CA4PxB"}
@@ -138,7 +138,7 @@ export function SegmentedTabs({ tabs, value: valueProp, onChange: onChangeProp,
138
138
  }
139
139
  }, [editable, onChange, value, visibleSet, visibleTabs]);
140
140
  const outerClassName = cn('hc-segmented-tabs', segmentGroup, 'items-start gap-1', fullWidth ? 'min-w-0 flex-1' : '', className);
141
- const tabListClassName = cn('hc-segmented-tabs-list flex w-full min-w-0 flex-1 flex-wrap items-center gap-y-2');
141
+ const tabListClassName = cn('hc-segmented-tabs-list flex min-w-0 flex-1 flex-wrap items-center gap-y-2');
142
142
  const isRadiogroup = pattern === 'radiogroup';
143
143
  /**
144
144
  * Moves selection with arrow, Home, and End keys and focuses the newly
@@ -191,7 +191,7 @@ export function SegmentedTabs({ tabs, value: valueProp, onChange: onChangeProp,
191
191
  }, [visibleTabs, value, onChange, isRadiogroup, context, getPanelId]);
192
192
  return (_jsxs("div", { ...props, className: outerClassName, children: [_jsx("div", { className: tabListClassName, role: isRadiogroup ? 'radiogroup' : 'tablist', "aria-label": ariaLabel, ...(!isRadiogroup ? { 'aria-orientation': 'horizontal' } : {}), onKeyDown: handleKeyDown, children: visibleTabs.map((tab) => {
193
193
  const selected = value === tab.value;
194
- const tabClassName = `hc-segmented-tabs-tab flex items-center justify-center ${segment(selected)}${fullWidth ? ' flex-1' : ''}`;
194
+ const tabClassName = cn('hc-segmented-tabs-tab flex items-center justify-center whitespace-nowrap', segment(selected), fullWidth ? 'flex-1' : 'shrink-0');
195
195
  return (_jsx("button", { ref: (element) => {
196
196
  if (element)
197
197
  tabRefs.current.set(tab.value, element);
@@ -8,8 +8,7 @@ interface Props {
8
8
  /**
9
9
  * Optional Tailwind classes merged onto the leading icon. The icon already
10
10
  * includes `pl-1` so its left edge aligns with `SidebarMethodBadge` text on
11
- * non-sortable rows; pass `SIDEBAR_DOCUMENT_ICON_REQUEST_ALIGN_CLASS` for
12
- * additional margin beside sortable request rows.
11
+ * neighboring request rows.
13
12
  */
14
13
  iconClassName?: string;
15
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarDocumentItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarDocumentItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQxD,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,IAAkB,EAClB,aAAa,EACb,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,QAAgB,EAChB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,aAAa,EACb,OAAO,EACP,EAAS,EACV,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAiDrB"}
1
+ {"version":3,"file":"SidebarDocumentItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarDocumentItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQxD,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,IAAkB,EAClB,aAAa,EACb,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,QAAgB,EAChB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,aAAa,EACb,OAAO,EACP,EAAS,EACV,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAiDrB"}
@@ -86,7 +86,8 @@ interface Props {
86
86
  }
87
87
  /**
88
88
  * Renders a collection folder row with expand/collapse control, optional color dot,
89
- * and optional drag-drop highlight affordance.
89
+ * and optional drag-drop highlight affordance. Chevron size and label spacing use
90
+ * the shared `SIDEBAR_CHEVRON_*` classes (Cursor-like explorer twisties).
90
91
  *
91
92
  * Wrap folder trees in {@link SidebarTree} and pass `as="li"` for valid tree semantics.
92
93
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarFolderItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarFolderItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAiB,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAe,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,yBAAyB,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,cAAc,CAAC;IAC3B,YAAY,EAAE,cAAc,CAAC;IAE7B;;OAEG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,eAAuB,EACvB,QAAgB,EAChB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,UAAU,EACV,YAAY,EACZ,EAAS,EACV,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAwErB"}
1
+ {"version":3,"file":"SidebarFolderItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarFolderItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAiB,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAe,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAQ/E,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,yBAAyB,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,cAAc,CAAC;IAC3B,YAAY,EAAE,cAAc,CAAC;IAE7B;;OAEG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,eAAuB,EACvB,QAAgB,EAChB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,UAAU,EACV,YAAY,EACZ,EAAS,EACV,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA2ErB"}
@@ -2,10 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
2
  import { FaIcon } from '../FaIcon/index.js';
3
3
  import { SidebarColorDot } from './SidebarColorDot.js';
4
4
  import { SidebarItem } from './SidebarItem.js';
5
+ import { SIDEBAR_CHEVRON_BUTTON_CLASS, SIDEBAR_CHEVRON_ICON_CLASS, SIDEBAR_CHEVRON_LABEL_OFFSET_CLASS } from './sidebarItemClasses.js';
5
6
  import { stopSortableDragPointerDown } from './stopSortableDragPointerDown.js';
6
7
  /**
7
8
  * Renders a collection folder row with expand/collapse control, optional color dot,
8
- * and optional drag-drop highlight affordance.
9
+ * and optional drag-drop highlight affordance. Chevron size and label spacing use
10
+ * the shared `SIDEBAR_CHEVRON_*` classes (Cursor-like explorer twisties).
9
11
  *
10
12
  * Wrap folder trees in {@link SidebarTree} and pass `as="li"` for valid tree semantics.
11
13
  */
@@ -35,8 +37,8 @@ export function SidebarFolderItem({ name, expanded, childrenId, level, setSize,
35
37
  onDoubleClick: onNameDoubleClick != null ? () => onNameDoubleClick() : undefined,
36
38
  onKeyDown: onNameEnter != null ? handleNameKeyDown : undefined
37
39
  }
38
- : undefined, children: [_jsx("button", { type: "button", className: "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", onClick: (event) => {
40
+ : undefined, children: [_jsx("button", { type: "button", className: SIDEBAR_CHEVRON_BUTTON_CLASS, onClick: (event) => {
39
41
  event.stopPropagation();
40
42
  onToggleExpand();
41
- }, onPointerDown: stopSortableDragPointerDown, tabIndex: -1, "aria-label": chevronLabel, children: _jsx(FaIcon, { icon: expanded ? collapseIcon : expandIcon, className: "h-2 w-2" }) }), _jsxs("span", { className: "app-no-drag ml-0.5 min-w-0 flex-1 cursor-pointer truncate border-none bg-transparent py-0 text-left leading-none font-medium text-inherit", "aria-current": selected ? 'true' : undefined, children: [_jsxs("span", { className: "inline-flex min-w-0 items-center gap-1.5", children: [name, colorDot != null ? (_jsx(SidebarColorDot, { color: colorDot.color, visible: colorDot.visible, label: colorDot.label })) : null] }), dropHighlighted ? _jsx("span", { className: "ml-1.5 font-normal text-info", children: "Drop here" }) : null] })] }));
43
+ }, onPointerDown: stopSortableDragPointerDown, tabIndex: -1, "aria-label": chevronLabel, children: _jsx(FaIcon, { icon: expanded ? collapseIcon : expandIcon, className: SIDEBAR_CHEVRON_ICON_CLASS }) }), _jsxs("span", { className: `app-no-drag ${SIDEBAR_CHEVRON_LABEL_OFFSET_CLASS} min-w-0 flex-1 cursor-pointer truncate border-none bg-transparent py-0 text-left leading-none font-medium text-inherit`, "aria-current": selected ? 'true' : undefined, children: [_jsxs("span", { className: "inline-flex min-w-0 items-center gap-1.5", children: [name, colorDot != null ? (_jsx(SidebarColorDot, { color: colorDot.color, visible: colorDot.visible, label: colorDot.label })) : null] }), dropHighlighted ? _jsx("span", { className: "ml-1.5 font-normal text-info", children: "Drop here" }) : null] })] }));
42
44
  }
@@ -146,8 +146,8 @@ interface Props {
146
146
  }
147
147
  /**
148
148
  * Base shell for sidebar list rows. Applies shared row chrome, optional sortable
149
- * drag behavior via a leading grip handle, and a trailing actions slot suitable
150
- * for future Sidebar layout reuse.
149
+ * drag behavior via a trailing grip handle (before actions), and a trailing
150
+ * actions slot suitable for Sidebar layout reuse.
151
151
  */
152
152
  export declare function SidebarItem({ selected, compact, sortable, listboxOption, treeItem, onContextMenu, actions, actionsStopDrag, as: Container, className, children }: Props): JSX.Element;
153
153
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SidebarItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarItem.tsx"],"names":[],"mappings":"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"}