@harborclient/sdk 1.1.5 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/components/Scrollbars/index.d.ts +34 -0
  2. package/dist/components/Scrollbars/index.d.ts.map +1 -0
  3. package/dist/components/Scrollbars/index.js +69 -0
  4. package/dist/components/Sidebar/index.d.ts +75 -0
  5. package/dist/components/Sidebar/index.d.ts.map +1 -0
  6. package/dist/components/Sidebar/index.js +27 -0
  7. package/dist/components/SidebarItem/SidebarColorDot.d.ts +22 -0
  8. package/dist/components/SidebarItem/SidebarColorDot.d.ts.map +1 -0
  9. package/dist/components/SidebarItem/SidebarColorDot.js +11 -0
  10. package/dist/components/SidebarItem/SidebarCommitItem.d.ts +31 -0
  11. package/dist/components/SidebarItem/SidebarCommitItem.d.ts.map +1 -0
  12. package/dist/components/SidebarItem/SidebarCommitItem.js +9 -0
  13. package/dist/components/SidebarItem/SidebarEnvironmentItem.d.ts +70 -0
  14. package/dist/components/SidebarItem/SidebarEnvironmentItem.d.ts.map +1 -0
  15. package/dist/components/SidebarItem/SidebarEnvironmentItem.js +21 -0
  16. package/dist/components/SidebarItem/SidebarFolderItem.d.ts +69 -0
  17. package/dist/components/SidebarItem/SidebarFolderItem.d.ts.map +1 -0
  18. package/dist/components/SidebarItem/SidebarFolderItem.js +21 -0
  19. package/dist/components/SidebarItem/SidebarHistoryItem.d.ts +58 -0
  20. package/dist/components/SidebarItem/SidebarHistoryItem.d.ts.map +1 -0
  21. package/dist/components/SidebarItem/SidebarHistoryItem.js +12 -0
  22. package/dist/components/SidebarItem/SidebarItem.d.ts +63 -0
  23. package/dist/components/SidebarItem/SidebarItem.d.ts.map +1 -0
  24. package/dist/components/SidebarItem/SidebarItem.js +17 -0
  25. package/dist/components/SidebarItem/SidebarMethodBadge.d.ts +17 -0
  26. package/dist/components/SidebarItem/SidebarMethodBadge.d.ts.map +1 -0
  27. package/dist/components/SidebarItem/SidebarMethodBadge.js +11 -0
  28. package/dist/components/SidebarItem/SidebarRequestItem.d.ts +143 -0
  29. package/dist/components/SidebarItem/SidebarRequestItem.d.ts.map +1 -0
  30. package/dist/components/SidebarItem/SidebarRequestItem.js +22 -0
  31. package/dist/components/SidebarItem/SidebarRunItem.d.ts +57 -0
  32. package/dist/components/SidebarItem/SidebarRunItem.d.ts.map +1 -0
  33. package/dist/components/SidebarItem/SidebarRunItem.js +13 -0
  34. package/dist/components/SidebarItem/SidebarStatusDot.d.ts +17 -0
  35. package/dist/components/SidebarItem/SidebarStatusDot.d.ts.map +1 -0
  36. package/dist/components/SidebarItem/SidebarStatusDot.js +8 -0
  37. package/dist/components/SidebarItem/SidebarStatusMarker.d.ts +21 -0
  38. package/dist/components/SidebarItem/SidebarStatusMarker.d.ts.map +1 -0
  39. package/dist/components/SidebarItem/SidebarStatusMarker.js +8 -0
  40. package/dist/components/SidebarItem/SidebarTabGroupItem.d.ts +51 -0
  41. package/dist/components/SidebarItem/SidebarTabGroupItem.d.ts.map +1 -0
  42. package/dist/components/SidebarItem/SidebarTabGroupItem.js +11 -0
  43. package/dist/components/SidebarItem/SortableSidebarItem.d.ts +35 -0
  44. package/dist/components/SidebarItem/SortableSidebarItem.d.ts.map +1 -0
  45. package/dist/components/SidebarItem/SortableSidebarItem.js +26 -0
  46. package/dist/components/SidebarItem/index.d.ts +16 -0
  47. package/dist/components/SidebarItem/index.d.ts.map +1 -0
  48. package/dist/components/SidebarItem/index.js +15 -0
  49. package/dist/components/SidebarItem/sidebarItemClasses.d.ts +27 -0
  50. package/dist/components/SidebarItem/sidebarItemClasses.d.ts.map +1 -0
  51. package/dist/components/SidebarItem/sidebarItemClasses.js +49 -0
  52. package/dist/components/SidebarItem/stopSortableDragPointerDown.d.ts +8 -0
  53. package/dist/components/SidebarItem/stopSortableDragPointerDown.d.ts.map +1 -0
  54. package/dist/components/SidebarItem/stopSortableDragPointerDown.js +8 -0
  55. package/dist/components/SidebarSection/SidebarSection.d.ts +43 -0
  56. package/dist/components/SidebarSection/SidebarSection.d.ts.map +1 -0
  57. package/dist/components/SidebarSection/SidebarSection.js +25 -0
  58. package/dist/components/SidebarSection/index.d.ts +65 -0
  59. package/dist/components/SidebarSection/index.d.ts.map +1 -0
  60. package/dist/components/SidebarSection/index.js +42 -0
  61. package/dist/components/index.d.ts +4 -0
  62. package/dist/components/index.d.ts.map +1 -1
  63. package/dist/components/index.js +4 -0
  64. package/package.json +7 -1
@@ -0,0 +1,34 @@
1
+ import type { PartialOptions } from 'overlayscrollbars';
2
+ import { type OverlayScrollbarsComponentProps } from 'overlayscrollbars-react';
3
+ import { type JSX, type ReactNode } from 'react';
4
+ /**
5
+ * Scroll axis configuration for the HarborClient scrollbar wrapper.
6
+ */
7
+ export type ScrollbarsAxis = 'vertical' | 'horizontal' | 'both';
8
+ interface Props extends Omit<OverlayScrollbarsComponentProps, 'options' | 'children'> {
9
+ /**
10
+ * Which axes should scroll when content overflows.
11
+ */
12
+ axis?: ScrollbarsAxis;
13
+ /**
14
+ * When true, scrollbars fade after scrolling stops. Horizontal scrollbars never auto-hide.
15
+ */
16
+ autoHide?: boolean;
17
+ /**
18
+ * Content rendered inside the scrollable viewport.
19
+ */
20
+ children: ReactNode;
21
+ /**
22
+ * Optional OverlayScrollbars overrides merged on top of HarborClient defaults.
23
+ */
24
+ options?: PartialOptions | false | null;
25
+ }
26
+ /**
27
+ * Theme-aware scroll container backed by OverlayScrollbars.
28
+ *
29
+ * Uses the `os-theme-harbor` CSS theme so scrollbar colors follow active
30
+ * `--mac-scrollbar-*` tokens from built-in, custom, and plugin themes.
31
+ */
32
+ export declare function Scrollbars({ axis, autoHide, children, className, options, ...rest }: Props): JSX.Element;
33
+ export {};
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Scrollbars/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAG1D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAEhE,UAAU,KAAM,SAAQ,IAAI,CAAC,+BAA+B,EAAE,SAAS,GAAG,UAAU,CAAC;IACnF;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC;CACzC;AAyCD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAiB,EACjB,QAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,GAAG,IAAI,EACR,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAkCrB"}
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
2
+ import { OverlayScrollbarsComponent } from 'overlayscrollbars-react';
3
+ import { useMemo } from 'react';
4
+ import { cn } from '../utils.js';
5
+ /**
6
+ * Default OverlayScrollbars options shared by HarborClient scroll regions.
7
+ */
8
+ const HARBOR_SCROLLBARS_OPTIONS = {
9
+ scrollbars: {
10
+ theme: 'os-theme-harbor',
11
+ visibility: 'auto',
12
+ autoHideDelay: 800
13
+ }
14
+ };
15
+ /**
16
+ * Maps the auto-hide preference to OverlayScrollbars behavior.
17
+ *
18
+ * @param enabled - When true, handles fade after scrolling stops.
19
+ * @returns OverlayScrollbars auto-hide mode.
20
+ */
21
+ function resolveScrollbarAutoHide(enabled) {
22
+ return enabled ? 'scroll' : 'never';
23
+ }
24
+ /**
25
+ * Maps a scroll axis hint to OverlayScrollbars overflow behavior.
26
+ *
27
+ * @param axis - Requested scroll direction(s).
28
+ * @returns Overflow options for the OverlayScrollbars instance.
29
+ */
30
+ function getOverflowOptions(axis) {
31
+ switch (axis) {
32
+ case 'horizontal':
33
+ return { x: 'scroll', y: 'hidden' };
34
+ case 'vertical':
35
+ return { x: 'hidden', y: 'scroll' };
36
+ case 'both':
37
+ default:
38
+ return { x: 'scroll', y: 'scroll' };
39
+ }
40
+ }
41
+ /**
42
+ * Theme-aware scroll container backed by OverlayScrollbars.
43
+ *
44
+ * Uses the `os-theme-harbor` CSS theme so scrollbar colors follow active
45
+ * `--mac-scrollbar-*` tokens from built-in, custom, and plugin themes.
46
+ */
47
+ export function Scrollbars({ axis = 'vertical', autoHide = true, children, className, options, ...rest }) {
48
+ /**
49
+ * Merges HarborClient defaults with per-instance overflow and caller overrides.
50
+ */
51
+ const mergedOptions = useMemo(() => {
52
+ const baseScrollbars = HARBOR_SCROLLBARS_OPTIONS.scrollbars ?? {};
53
+ const overrideScrollbars = options && typeof options === 'object' ? (options.scrollbars ?? {}) : {};
54
+ const axisOverflow = getOverflowOptions(axis);
55
+ const overrideOverflow = options && typeof options === 'object' ? options.overflow : undefined;
56
+ const resolvedAutoHide = axis === 'horizontal' ? 'never' : resolveScrollbarAutoHide(autoHide);
57
+ return {
58
+ ...HARBOR_SCROLLBARS_OPTIONS,
59
+ ...options,
60
+ overflow: overrideOverflow ? { ...axisOverflow, ...overrideOverflow } : axisOverflow,
61
+ scrollbars: {
62
+ ...baseScrollbars,
63
+ autoHide: resolvedAutoHide,
64
+ ...overrideScrollbars
65
+ }
66
+ };
67
+ }, [axis, autoHide, options]);
68
+ return (_jsx(OverlayScrollbarsComponent, { className: cn('hc-scrollbars', className), options: mergedOptions, ...rest, children: children }));
69
+ }
@@ -0,0 +1,75 @@
1
+ import { type JSX, type ReactNode } from 'react';
2
+ /**
3
+ * Which edge of the main content the sidebar attaches to.
4
+ */
5
+ export type SidebarSide = 'left' | 'right';
6
+ interface Props {
7
+ /**
8
+ * Which edge of the main content the sidebar attaches to.
9
+ */
10
+ side: SidebarSide;
11
+ /**
12
+ * Accessible label for the sidebar landmark.
13
+ */
14
+ ariaLabel: string;
15
+ /**
16
+ * Non-scrolling chrome rendered above the body (search, toolbar, title bar, etc.).
17
+ */
18
+ header?: ReactNode;
19
+ /**
20
+ * Sidebar body content.
21
+ */
22
+ children: ReactNode;
23
+ /**
24
+ * When true (default), wraps the body in a scrollable region.
25
+ */
26
+ scroll?: boolean;
27
+ /**
28
+ * Scroll axis when `scroll` is enabled.
29
+ */
30
+ scrollAxis?: 'vertical' | 'horizontal' | 'both';
31
+ /**
32
+ * When true, scrollbars fade after scrolling stops.
33
+ */
34
+ scrollbarAutoHide?: boolean;
35
+ /**
36
+ * Additional classes for the scrollable body wrapper.
37
+ */
38
+ bodyClassName?: string;
39
+ /**
40
+ * Additional classes for the resizable aside element.
41
+ */
42
+ asideClassName?: string;
43
+ /**
44
+ * Additional classes for the resize handle.
45
+ */
46
+ resizeHandleClassName?: string;
47
+ /**
48
+ * Accessible label for the resize handle.
49
+ */
50
+ resizeAriaLabel?: string;
51
+ /**
52
+ * Initial width when nothing is persisted.
53
+ */
54
+ defaultSize: number;
55
+ /**
56
+ * Minimum sidebar width in pixels.
57
+ */
58
+ minSize: number;
59
+ /**
60
+ * Optional dynamic maximum width in pixels.
61
+ */
62
+ getMaxSize?: () => number;
63
+ /**
64
+ * localStorage key used to persist sidebar width.
65
+ */
66
+ storageKey: string;
67
+ }
68
+ /**
69
+ * Resizable sidebar shell with side-aware handle placement and optional scrolling body.
70
+ *
71
+ * Left sidebars render `[aside][handle]`; right sidebars render `[handle][aside]`.
72
+ */
73
+ export declare function Sidebar({ side, ariaLabel, header, children, scroll, scrollAxis, scrollbarAutoHide, bodyClassName, asideClassName, resizeHandleClassName, resizeAriaLabel, defaultSize, minSize, getMaxSize, storageKey }: Props): JSX.Element;
74
+ export {};
75
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKjD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3C,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IAEhD;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,MAAa,EACb,UAAuB,EACvB,iBAAwB,EACxB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACX,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA4ErB"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@harborclient/sdk/jsx-runtime";
2
+ import { ResizeHandle, useResizable } from '../Resizable/index.js';
3
+ import { Scrollbars } from '../Scrollbars/index.js';
4
+ import { cn } from '../utils.js';
5
+ /**
6
+ * Resizable sidebar shell with side-aware handle placement and optional scrolling body.
7
+ *
8
+ * Left sidebars render `[aside][handle]`; right sidebars render `[handle][aside]`.
9
+ */
10
+ export function Sidebar({ side, ariaLabel, header, children, scroll = true, scrollAxis = 'vertical', scrollbarAutoHide = true, bodyClassName, asideClassName, resizeHandleClassName, resizeAriaLabel, defaultSize, minSize, getMaxSize, storageKey }) {
11
+ const resizableOptions = {
12
+ axis: 'x',
13
+ direction: side === 'left' ? 1 : -1,
14
+ defaultSize,
15
+ minSize,
16
+ getMaxSize,
17
+ storageKey
18
+ };
19
+ const { size: width, minSize: sidebarMinSize, maxSize: sidebarMaxSize, onResizeStart, onKeyboardResize } = useResizable(resizableOptions);
20
+ const handle = (_jsx(ResizeHandle, { orientation: "vertical", value: width, min: sidebarMinSize, max: sidebarMaxSize, onResizeStart: onResizeStart, onKeyboardResize: onKeyboardResize, ariaLabel: resizeAriaLabel ?? 'Resize sidebar', className: cn(side === 'right' && 'border-r-0 border-l border-separator', resizeHandleClassName) }));
21
+ const body = scroll ? (_jsx(Scrollbars, { axis: scrollAxis, autoHide: scrollbarAutoHide, className: cn('min-h-0 flex-1', bodyClassName), children: children })) : (_jsx("div", { className: cn('flex min-h-0 flex-1 flex-col', bodyClassName), children: children }));
22
+ const aside = (_jsxs("aside", { className: cn('hc-sidebar flex shrink-0 flex-col overflow-x-hidden bg-sidebar', side === 'right' && 'h-full min-h-0', asideClassName), style: { width }, "aria-label": ariaLabel, children: [header, body] }));
23
+ if (side === 'left') {
24
+ return (_jsxs(_Fragment, { children: [aside, handle] }));
25
+ }
26
+ return (_jsxs(_Fragment, { children: [handle, aside] }));
27
+ }
@@ -0,0 +1,22 @@
1
+ import type { JSX } from 'react';
2
+ interface Props {
3
+ /**
4
+ * CSS color string to render, or null/undefined to hide the dot.
5
+ */
6
+ color: string | null | undefined;
7
+ /**
8
+ * When false, suppresses the dot even when a color is assigned.
9
+ */
10
+ visible?: boolean;
11
+ /**
12
+ * Accessible label when the dot conveys meaning without visible text.
13
+ */
14
+ label?: string;
15
+ }
16
+ /**
17
+ * Renders a small colored circle beside a sidebar row when a color is assigned
18
+ * and visibility is enabled.
19
+ */
20
+ export declare function SidebarColorDot({ color, visible, label }: Props): JSX.Element | null;
21
+ export {};
22
+ //# sourceMappingURL=SidebarColorDot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarColorDot.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarColorDot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,OAAc,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAa3F"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "@harborclient/sdk/jsx-runtime";
2
+ /**
3
+ * Renders a small colored circle beside a sidebar row when a color is assigned
4
+ * and visibility is enabled.
5
+ */
6
+ export function SidebarColorDot({ color, visible = true, label }) {
7
+ if (!visible || color == null || color.trim() === '') {
8
+ return null;
9
+ }
10
+ return (_jsx("span", { className: "inline-block h-4 w-4 shrink-0 rounded-full", style: { backgroundColor: color }, "aria-hidden": label == null ? true : undefined, "aria-label": label }));
11
+ }
@@ -0,0 +1,31 @@
1
+ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import type { JSX, MouseEvent } from 'react';
3
+ interface Props {
4
+ /**
5
+ * Commit message shown as the primary line.
6
+ */
7
+ message: string;
8
+ /**
9
+ * Author name shown in the metadata line.
10
+ */
11
+ author: string;
12
+ /**
13
+ * Formatted timestamp string shown in the metadata line.
14
+ */
15
+ timestampLabel: string;
16
+ /**
17
+ * Branch icon shown before the commit text.
18
+ */
19
+ icon: IconDefinition;
20
+ /**
21
+ * Called when the commit row button is clicked.
22
+ */
23
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
24
+ }
25
+ /**
26
+ * Renders a recent commit row in the Git sidebar Commits section.
27
+ * Uses a distinct two-line layout rather than the standard sourceRow shell.
28
+ */
29
+ export declare function SidebarCommitItem({ message, author, timestampLabel, icon, onClick }: Props): JSX.Element;
30
+ export {};
31
+ //# sourceMappingURL=SidebarCommitItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarCommitItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarCommitItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG7C,UAAU,KAAK;IACb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,MAAM,EACN,cAAc,EACd,IAAI,EACJ,OAAO,EACR,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAgBrB"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { FaIcon } from '../FaIcon/index.js';
3
+ /**
4
+ * Renders a recent commit row in the Git sidebar Commits section.
5
+ * Uses a distinct two-line layout rather than the standard sourceRow shell.
6
+ */
7
+ export function SidebarCommitItem({ message, author, timestampLabel, icon, onClick }) {
8
+ return (_jsxs("button", { type: "button", className: "hc-sidebar-commit-item group app-no-drag flex w-full cursor-pointer rounded-md p-2 text-left hover:bg-selection/60", onClick: onClick, children: [_jsx(FaIcon, { icon: icon, className: "mr-2 h-4 w-4 shrink-0 text-muted", "aria-hidden": true }), _jsxs("div", { className: "-mt-1.5 flex flex-col gap-0.5", children: [_jsx("span", { className: "block min-w-0 truncate font-medium text-text", children: message }), _jsxs("span", { className: "block min-w-0 truncate text-[14px] text-muted", children: [author, " \u00B7 ", timestampLabel] })] })] }));
9
+ }
@@ -0,0 +1,70 @@
1
+ import type { JSX, MouseEvent, ReactNode } from 'react';
2
+ import { type SidebarItemSortableConfig } from './SidebarItem.js';
3
+ interface Props {
4
+ /**
5
+ * Environment display name.
6
+ */
7
+ name: string;
8
+ /**
9
+ * Summary text for environment variables (e.g. "3 variables").
10
+ */
11
+ variableSummary: string;
12
+ /**
13
+ * Optional color dot beside the environment name.
14
+ */
15
+ colorDot?: {
16
+ color: string | null | undefined;
17
+ visible?: boolean;
18
+ label?: string;
19
+ };
20
+ /**
21
+ * Whether this row should use selected/highlighted row styling.
22
+ */
23
+ selected?: boolean;
24
+ /**
25
+ * When true, sets aria-current="true" on the primary button.
26
+ */
27
+ ariaCurrent?: boolean;
28
+ /**
29
+ * When true, sets aria-selected="true" on the primary button.
30
+ */
31
+ ariaSelected?: boolean;
32
+ /**
33
+ * dnd-kit sortable configuration for environment reordering.
34
+ */
35
+ sortable?: SidebarItemSortableConfig;
36
+ /**
37
+ * Called when the user right-clicks the row container.
38
+ */
39
+ onContextMenu?: (event: MouseEvent<HTMLElement>) => void;
40
+ /**
41
+ * Called when the primary label button is clicked.
42
+ */
43
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
44
+ /**
45
+ * Called when the primary label button is double-clicked.
46
+ */
47
+ onDoubleClick?: () => void;
48
+ /**
49
+ * Called when Enter is pressed on the primary label button.
50
+ */
51
+ onEnter?: () => void;
52
+ /**
53
+ * Accessible label for the primary button.
54
+ */
55
+ ariaLabel?: string;
56
+ /**
57
+ * Trailing actions slot, typically a row actions menu.
58
+ */
59
+ actions?: ReactNode;
60
+ /**
61
+ * Optional data attribute value for keyboard navigation focus targets.
62
+ */
63
+ dataSidebarEnvironmentId?: string | number;
64
+ }
65
+ /**
66
+ * Renders an environment row in the Collections sidebar Environments section.
67
+ */
68
+ export declare function SidebarEnvironmentItem({ name, variableSummary, colorDot, selected, ariaCurrent, ariaSelected, sortable, onContextMenu, onClick, onDoubleClick, onEnter, ariaLabel, actions, dataSidebarEnvironmentId }: Props): JSX.Element;
69
+ export {};
70
+ //# sourceMappingURL=SidebarEnvironmentItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarEnvironmentItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarEnvironmentItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAiB,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAe,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;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,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAErC;;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,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,eAAe,EACf,QAAQ,EACR,QAAgB,EAChB,WAAmB,EACnB,YAAoB,EACpB,QAAQ,EACR,aAAa,EACb,OAAO,EACP,aAAa,EACb,OAAO,EACP,SAAS,EACT,OAAO,EACP,wBAAwB,EACzB,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA4CrB"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { SidebarColorDot } from './SidebarColorDot.js';
3
+ import { SidebarItem } from './SidebarItem.js';
4
+ import { SIDEBAR_ITEM_BUTTON_CLASS } from './sidebarItemClasses.js';
5
+ /**
6
+ * Renders an environment row in the Collections sidebar Environments section.
7
+ */
8
+ export function SidebarEnvironmentItem({ name, variableSummary, colorDot, selected = false, ariaCurrent = false, ariaSelected = false, sortable, onContextMenu, onClick, onDoubleClick, onEnter, ariaLabel, actions, dataSidebarEnvironmentId }) {
9
+ /**
10
+ * Opens environment settings when Enter is pressed on the name button.
11
+ */
12
+ const handleKeyDown = (event) => {
13
+ if (event.key !== 'Enter')
14
+ return;
15
+ event.preventDefault();
16
+ onEnter?.();
17
+ };
18
+ return (_jsx(SidebarItem, { selected: selected, sortable: sortable, onContextMenu: onContextMenu, actions: actions, children: _jsxs("button", { type: "button", className: SIDEBAR_ITEM_BUTTON_CLASS, ...(dataSidebarEnvironmentId != null
19
+ ? { 'data-sidebar-environment-id': String(dataSidebarEnvironmentId) }
20
+ : {}), "aria-current": ariaCurrent ? 'true' : undefined, "aria-selected": ariaSelected ? 'true' : undefined, "aria-label": ariaLabel, onClick: onClick, onDoubleClick: onDoubleClick, onKeyDown: handleKeyDown, children: [_jsxs("span", { className: "inline-flex min-w-0 flex-1 items-center gap-1.5", children: [_jsx("span", { className: "min-w-0 truncate", children: name }), colorDot != null ? (_jsx(SidebarColorDot, { color: colorDot.color, visible: colorDot.visible, label: colorDot.label })) : null] }), _jsx("span", { className: "shrink-0 text-muted", children: variableSummary })] }) }));
21
+ }
@@ -0,0 +1,69 @@
1
+ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import type { JSX, MouseEvent, ReactNode } from 'react';
3
+ import { type SidebarItemSortableConfig } from './SidebarItem.js';
4
+ interface Props {
5
+ /**
6
+ * Folder display name.
7
+ */
8
+ name: string;
9
+ /**
10
+ * Whether the folder tree node is expanded.
11
+ */
12
+ expanded: boolean;
13
+ /**
14
+ * Optional color dot beside the folder name.
15
+ */
16
+ colorDot?: {
17
+ color: string | null | undefined;
18
+ visible?: boolean;
19
+ label?: string;
20
+ };
21
+ /**
22
+ * When true, shows a "Drop here" affordance beside the folder name.
23
+ */
24
+ dropHighlighted?: boolean;
25
+ /**
26
+ * Whether this row should use selected/highlighted row styling.
27
+ */
28
+ selected?: boolean;
29
+ /**
30
+ * dnd-kit sortable configuration for folder reordering.
31
+ */
32
+ sortable: SidebarItemSortableConfig;
33
+ /**
34
+ * Called when the user right-clicks the row container.
35
+ */
36
+ onContextMenu?: (event: MouseEvent<HTMLElement>) => void;
37
+ /**
38
+ * Toggles folder expand/collapse state.
39
+ */
40
+ onToggleExpand: () => void;
41
+ /**
42
+ * Called when the folder name button is clicked.
43
+ */
44
+ onNameClick: () => void;
45
+ /**
46
+ * Called when the folder name button is double-clicked.
47
+ */
48
+ onNameDoubleClick?: () => void;
49
+ /**
50
+ * Called when Enter is pressed on the folder name button.
51
+ */
52
+ onNameEnter?: () => void;
53
+ /**
54
+ * Trailing actions slot, typically a row actions menu.
55
+ */
56
+ actions?: ReactNode;
57
+ /**
58
+ * Icons for expand/collapse chevrons.
59
+ */
60
+ expandIcon: IconDefinition;
61
+ collapseIcon: IconDefinition;
62
+ }
63
+ /**
64
+ * Renders a collection folder row with expand/collapse control, optional color dot,
65
+ * and optional drag-drop highlight affordance.
66
+ */
67
+ export declare function SidebarFolderItem({ name, expanded, colorDot, dropHighlighted, selected, sortable, onContextMenu, onToggleExpand, onNameClick, onNameDoubleClick, onNameEnter, actions, expandIcon, collapseIcon }: Props): JSX.Element;
68
+ export {};
69
+ //# sourceMappingURL=SidebarFolderItem.d.ts.map
@@ -0,0 +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,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;CAC9B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,eAAuB,EACvB,QAAgB,EAChB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,UAAU,EACV,YAAY,EACb,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAiDrB"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { FaIcon } from '../FaIcon/index.js';
3
+ import { SidebarColorDot } from './SidebarColorDot.js';
4
+ import { SidebarItem } from './SidebarItem.js';
5
+ import { stopSortableDragPointerDown } from './stopSortableDragPointerDown.js';
6
+ /**
7
+ * Renders a collection folder row with expand/collapse control, optional color dot,
8
+ * and optional drag-drop highlight affordance.
9
+ */
10
+ export function SidebarFolderItem({ name, expanded, colorDot, dropHighlighted = false, selected = false, sortable, onContextMenu, onToggleExpand, onNameClick, onNameDoubleClick, onNameEnter, actions, expandIcon, collapseIcon }) {
11
+ /**
12
+ * Opens folder settings when Enter is pressed on the name button.
13
+ */
14
+ const handleNameKeyDown = (event) => {
15
+ if (event.key !== 'Enter')
16
+ return;
17
+ event.preventDefault();
18
+ onNameEnter?.();
19
+ };
20
+ return (_jsxs(SidebarItem, { selected: selected, sortable: sortable, onContextMenu: onContextMenu, actions: actions, 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: onToggleExpand, onPointerDown: stopSortableDragPointerDown, "aria-expanded": expanded, "aria-label": expanded ? 'Collapse folder' : 'Expand folder', children: _jsx(FaIcon, { icon: expanded ? collapseIcon : expandIcon, className: "h-2 w-2" }) }), _jsxs("button", { type: "button", 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, onClick: onNameClick, onDoubleClick: onNameDoubleClick, onKeyDown: handleNameKeyDown, 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] })] }));
21
+ }
@@ -0,0 +1,58 @@
1
+ import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import type { JSX, MouseEvent, ReactNode } from 'react';
3
+ interface Props {
4
+ /**
5
+ * HTTP method shown in the leading badge.
6
+ */
7
+ method: string;
8
+ /**
9
+ * Primary label text for the history entry.
10
+ */
11
+ name: string;
12
+ /**
13
+ * When true, shows a run icon instead of HTTP status metadata.
14
+ */
15
+ isRun?: boolean;
16
+ /**
17
+ * HTTP status code for request history entries.
18
+ */
19
+ status?: number;
20
+ /**
21
+ * HTTP status text for request history entries.
22
+ */
23
+ statusText?: string;
24
+ /**
25
+ * Icon shown for run history entries.
26
+ */
27
+ runIcon?: IconDefinition;
28
+ /**
29
+ * Whether this row is part of a multi-selection.
30
+ */
31
+ selected?: boolean;
32
+ /**
33
+ * Tooltip title for the primary button.
34
+ */
35
+ title?: string;
36
+ /**
37
+ * Accessible label for the primary button.
38
+ */
39
+ ariaLabel: string;
40
+ /**
41
+ * Called when the user right-clicks the row container.
42
+ */
43
+ onContextMenu?: (event: MouseEvent<HTMLElement>) => void;
44
+ /**
45
+ * Called when the primary row button is clicked.
46
+ */
47
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
48
+ /**
49
+ * Trailing actions slot, typically a row actions menu.
50
+ */
51
+ actions?: ReactNode;
52
+ }
53
+ /**
54
+ * Renders a request or run history entry row in the Collections sidebar History section.
55
+ */
56
+ export declare function SidebarHistoryItem({ method, name, isRun, status, statusText, runIcon, selected, title, ariaLabel, onContextMenu, onClick, actions }: Props): JSX.Element;
57
+ export {};
58
+ //# sourceMappingURL=SidebarHistoryItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarHistoryItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarHistoryItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOxD,UAAU,KAAK;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;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,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,IAAI,EACJ,KAAa,EACb,MAAM,EACN,UAAU,EACV,OAAO,EACP,QAAgB,EAChB,KAAK,EACL,SAAS,EACT,aAAa,EACb,OAAO,EACP,OAAO,EACR,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA8BrB"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@harborclient/sdk/jsx-runtime";
2
+ import { Button } from '../Button/index.js';
3
+ import { FaIcon } from '../FaIcon/index.js';
4
+ import { SidebarItem } from './SidebarItem.js';
5
+ import { SidebarMethodBadge } from './SidebarMethodBadge.js';
6
+ import { statusDotClass } from './sidebarItemClasses.js';
7
+ /**
8
+ * Renders a request or run history entry row in the Collections sidebar History section.
9
+ */
10
+ export function SidebarHistoryItem({ method, name, isRun = false, status, statusText, runIcon, selected = false, title, ariaLabel, onContextMenu, onClick, actions }) {
11
+ return (_jsx(SidebarItem, { selected: selected, onContextMenu: onContextMenu, actions: actions, children: _jsxs(Button, { variant: "toolbar", className: "flex min-w-0 flex-1 items-center gap-2 py-0.5 text-left text-text hover:bg-transparent", title: title, "aria-label": ariaLabel, "aria-selected": selected ? 'true' : undefined, onClick: onClick, children: [_jsx(SidebarMethodBadge, { method: method, uppercase: true }), _jsxs("span", { className: "flex min-w-0 flex-1 items-center gap-1.5", children: [_jsx("span", { className: "min-w-0 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 ? (_jsxs("span", { className: "flex shrink-0 items-center gap-1.5 text-muted tabular-nums", children: [_jsx("span", { className: `inline-block h-2 w-2 shrink-0 rounded-full ${statusDotClass(status)}`, "aria-hidden": "true" }), status, " ", statusText] })) : null] }) }));
12
+ }
@@ -0,0 +1,63 @@
1
+ import type { JSX, MouseEvent, ReactNode } from 'react';
2
+ /**
3
+ * Sortable drag configuration for a sidebar row.
4
+ */
5
+ export interface SidebarItemSortableConfig {
6
+ /**
7
+ * Stable dnd-kit sortable id for this row.
8
+ */
9
+ id: string;
10
+ /**
11
+ * Accessible name for the drag handle.
12
+ */
13
+ dragHandleLabel: string;
14
+ /**
15
+ * When true, renders a static row without drag-and-drop behavior.
16
+ */
17
+ disabled?: boolean;
18
+ }
19
+ interface Props {
20
+ /**
21
+ * Whether this row should use selected/highlighted row styling.
22
+ */
23
+ selected?: boolean;
24
+ /**
25
+ * When true, uses tighter vertical padding for top-level list rows.
26
+ */
27
+ compact?: boolean;
28
+ /**
29
+ * Optional dnd-kit sortable configuration.
30
+ */
31
+ sortable?: SidebarItemSortableConfig;
32
+ /**
33
+ * Called when the user right-clicks the row container.
34
+ */
35
+ onContextMenu?: (event: MouseEvent<HTMLElement>) => void;
36
+ /**
37
+ * Trailing actions slot, typically a {@link RowActionsMenu}.
38
+ */
39
+ actions?: ReactNode;
40
+ /**
41
+ * When true, wraps the actions slot with {@link stopSortableDragPointerDown}.
42
+ */
43
+ actionsStopDrag?: boolean;
44
+ /**
45
+ * HTML element for the row container when not sortable.
46
+ */
47
+ as?: 'div' | 'li';
48
+ /**
49
+ * Additional class names merged onto the row container.
50
+ */
51
+ className?: string;
52
+ /**
53
+ * Row contents (label button, icons, metadata, etc.).
54
+ */
55
+ children: ReactNode;
56
+ }
57
+ /**
58
+ * Base shell for sidebar list rows. Applies shared row chrome, optional sortable
59
+ * drag behavior, and a trailing actions slot suitable for future Sidebar layout reuse.
60
+ */
61
+ export declare function SidebarItem({ selected, compact, sortable, onContextMenu, actions, actionsStopDrag, as: Container, className, children }: Props): JSX.Element;
62
+ export {};
63
+ //# sourceMappingURL=SidebarItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarItem.d.ts","sourceRoot":"","sources":["../../../src/components/SidebarItem/SidebarItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMxD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,KAAK;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAErC;;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,OAAO,CAAC;IAE1B;;OAEG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAgB,EAChB,OAAc,EACd,QAAQ,EACR,aAAa,EACb,OAAO,EACP,eAAsB,EACtB,EAAE,EAAE,SAAiB,EACrB,SAAS,EACT,QAAQ,EACT,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAoCrB"}