@industry-theme/alexandria-panels 0.2.0 → 0.3.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EAGX,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,EAsCrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EA6F3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EA6DxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,EAavD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAqFxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAiGvD,CAAC;AA+BF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/D,iBA6HF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,YAAY,CAAC,KAChC,YAkBD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;+BAQR,MAAM,QAAQ,MAAM;6BAItB,MAAM,eAAe,OAAO;4BAI7B,eAAe;6BAMd,eAAe;;;2CAlYpB,CAAC;;;CAyY3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B;4BAEZ,MAAM,YAAY;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;mCAYnC,MAAM,WAAW,OAAO,CAAC,SAAS,CAAC;mCAInC,MAAM;uCAIF,MAAM;iCAIZ,MAAM;4CAKK,MAAM;;;;2CA7a1B,CAAC;;;CA6b3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;4BAEX,gBAAgB;gCAKZ,MAAM;;;2CAzcd,CAAC;;;CAmd3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B;4BAEZ,gBAAgB;gCAKZ,MAAM;;;2CA/dd,CAAC;;;CAye3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1C,CAMA,CAAC"}
1
+ {"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EAGX,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,EAsCrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,gBAAgB,EA6F3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAAgB,EA6DxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,EAevD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAqFxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAiGvD,CAAC;AA+BF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/D,iBA6HF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,YAAY,CAAC,KAChC,YAkBD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;+BAQR,MAAM,QAAQ,MAAM;6BAItB,MAAM,eAAe,OAAO;4BAI7B,eAAe;6BAMd,eAAe;;;2CAnYc,CAAC;;;CA0Y7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B;4BAEZ,MAAM,YAAY;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;mCAYnC,MAAM,WAAW,OAAO,CAAC,SAAS,CAAC;mCAInC,MAAM;uCAIF,MAAM;iCAIZ,MAAM;4CAKK,MAAM;;;;2CA9aQ,CAAC;;;CA8b7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;4BAEX,gBAAgB;gCAKZ,MAAM;;;2CA1coB,CAAC;;;CAod7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B;4BAEZ,gBAAgB;gCAKZ,MAAM;;;2CAheoB,CAAC;;;CA0e7D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1C,CAMA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAIzE,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,4BAA4B,EAG7B,MAAM,SAAS,CAAC;AAgBjB,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B;IAC3E,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAu4BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAIhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EA6C7C,CAAC;AAGF,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panels/LocalProjectsPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAIzE,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,4BAA4B,EAG7B,MAAM,SAAS,CAAC;AAgBjB,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B;IAC3E,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA84BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAIhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EA6C7C,CAAC;AAGF,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,52 +1,15 @@
1
1
  /**
2
2
  * Shared GitHub API Types
3
3
  *
4
- * Common types used across GitHub-related panels
4
+ * Re-exports types from @industry-theme/github-panels to avoid duplication.
5
+ * See: https://github.com/principal-ade/industry-themed-github-panels
5
6
  */
6
- /**
7
- * GitHub repository data from the API
8
- */
9
- export interface GitHubRepository {
10
- id: number;
11
- name: string;
12
- full_name: string;
13
- owner: {
14
- login: string;
15
- avatar_url: string;
16
- };
17
- private: boolean;
18
- html_url: string;
19
- description: string | null;
20
- clone_url: string;
21
- updated_at: string;
22
- pushed_at?: string;
23
- language: string | null;
24
- stargazers_count?: number;
25
- default_branch: string;
26
- fork?: boolean;
27
- /** Parent repository info (for forks) */
28
- parent?: {
29
- full_name: string;
30
- owner: {
31
- login: string;
32
- avatar_url: string;
33
- };
34
- };
35
- /** License SPDX identifier (e.g., "MIT", "Apache-2.0") */
36
- license?: string | null;
37
- }
38
- /**
39
- * GitHub organization data from the API
40
- */
41
- export interface GitHubOrganization {
42
- login: string;
43
- id: number;
44
- avatar_url: string;
45
- description: string | null;
46
- }
7
+ export type { GitHubRepository, GitHubOrganization, } from '@industry-theme/github-panels';
47
8
  /**
48
9
  * Reference to a locally cloned repository
49
10
  * Used to match GitHub repos with local Alexandria entries
11
+ *
12
+ * Note: This type is Alexandria-specific and not exported from github-panels
50
13
  */
51
14
  export interface LocalRepositoryReference {
52
15
  /** Local file system path */
@@ -1 +1 @@
1
- {"version":3,"file":"github-types.d.ts","sourceRoot":"","sources":["../../../src/panels/shared/github-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yCAAyC;IACzC,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IACF,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"github-types.d.ts","sourceRoot":"","sources":["../../../src/panels/shared/github-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -3,7 +3,7 @@
3
3
  try {
4
4
  if (typeof document != "undefined") {
5
5
  var elementStyle = document.createElement("style");
6
- elementStyle.appendChild(document.createTextNode("/* Spin animation for scanning button */\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Container query for responsive LocalProjectCard */\n.local-projects-panel {\n container-type: inline-size;\n container-name: local-projects;\n height: 100%;\n}\n\n/* Animated underline that grows from left on hover */\n.local-project-card .project-name-underline {\n position: relative;\n text-decoration: none;\n}\n\n.local-project-card .project-name-underline::after {\n content: '';\n position: absolute;\n left: 0;\n bottom: -3px;\n width: 0;\n height: 2px;\n background-color: var(--underline-color);\n transition: width 0.2s ease-out;\n}\n\n.local-project-card:hover .project-name-underline::after {\n width: 100%;\n}\n\n/* Compact mode when container is 400px or less */\n@container local-projects (max-width: 400px) {\n .local-projects-panel {\n padding: 8px !important;\n gap: 8px !important;\n }\n\n .local-projects-list {\n gap: 8px !important;\n }\n\n .local-project-card {\n padding: 8px !important;\n }\n}\n/* Shared Panel Styles */\n\n/* Header button hover states */\n.header-button {\n transition:\n color 0.2s ease,\n background-color 0.2s ease,\n border-color 0.2s ease;\n}\n\n.header-button:not(.active):hover {\n color: var(--theme-text) !important;\n}\n\n/* Search input focus state */\n.search-input:focus {\n border-color: var(--theme-primary) !important;\n}\n\n/* Clear filter button hover */\n.clear-filter-button {\n transition: color 0.2s ease;\n}\n\n.clear-filter-button:hover {\n color: var(--theme-text) !important;\n}\n\n/* Search overlay animation - grows from right to left */\n.search-overlay {\n animation: searchExpand 0.2s ease-out forwards;\n}\n\n@keyframes searchExpand {\n from {\n clip-path: inset(0 0 0 100%);\n }\n to {\n clip-path: inset(0 0 0 0);\n }\n}"));
6
+ elementStyle.appendChild(document.createTextNode("/* Spin animation for scanning button */\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Container query for responsive LocalProjectCard */\n.local-projects-panel {\n container-type: inline-size;\n container-name: local-projects;\n height: 100%;\n}\n\n/* Animated underline that grows from left on hover */\n.local-project-card .project-name-underline {\n position: relative;\n text-decoration: none;\n}\n\n.local-project-card .project-name-underline::after {\n content: '';\n position: absolute;\n left: 0;\n bottom: -3px;\n width: 0;\n height: 2px;\n background-color: var(--underline-color);\n transition: width 0.2s ease-out;\n}\n\n.local-project-card:hover .project-name-underline::after {\n width: 100%;\n}\n\n/* Header action buttons - background change on hover */\n.header-action-button {\n transition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s !important;\n}\n\n.header-action-button:hover:not(:disabled) {\n background-color: var(--button-hover-bg) !important;\n}\n\n/* Add project button - also show border on hover */\n.add-project-button {\n border: 1px solid transparent !important;\n}\n\n.add-project-button:hover:not(:disabled) {\n border-color: var(--add-button-border-color) !important;\n}\n\n/* Compact mode when container is 400px or less */\n@container local-projects (max-width: 400px) {\n .local-projects-panel {\n padding: 8px !important;\n gap: 8px !important;\n }\n\n .local-projects-list {\n gap: 8px !important;\n }\n\n .local-project-card {\n padding: 8px !important;\n }\n}\n/* Shared Panel Styles */\n\n/* Header button hover states */\n.header-button {\n transition:\n color 0.2s ease,\n background-color 0.2s ease,\n border-color 0.2s ease;\n}\n\n.header-button:not(.active):hover {\n color: var(--theme-text) !important;\n}\n\n/* Search input focus state */\n.search-input:focus {\n border-color: var(--theme-primary) !important;\n}\n\n/* Clear filter button hover */\n.clear-filter-button {\n transition: color 0.2s ease;\n}\n\n.clear-filter-button:hover {\n color: var(--theme-text) !important;\n}\n\n/* Search overlay animation - grows from right to left */\n.search-overlay {\n animation: searchExpand 0.2s ease-out forwards;\n}\n\n@keyframes searchExpand {\n from {\n clip-path: inset(0 0 0 100%);\n }\n to {\n clip-path: inset(0 0 0 0);\n }\n}"));
7
7
  document.head.appendChild(elementStyle);
8
8
  }
9
9
  } catch (e) {
@@ -650,9 +650,9 @@ function useNodesContext() {
650
650
  throw new Error("Provide a NodesContext");
651
651
  return value;
652
652
  }
653
- const DndContext$1 = createContext(null);
653
+ const DndContext$2 = createContext(null);
654
654
  function useDndContext() {
655
- const value = useContext(DndContext$1);
655
+ const value = useContext(DndContext$2);
656
656
  if (value === null)
657
657
  throw new Error("Provide a DnDContext");
658
658
  return value;
@@ -1895,7 +1895,7 @@ const ListInnerElement = forwardRef(function InnerElement(_a, ref) {
1895
1895
  const paddingBottom = (_e = (_d = tree.props.padding) !== null && _d !== void 0 ? _d : tree.props.paddingBottom) !== null && _e !== void 0 ? _e : 0;
1896
1896
  return jsx("div", Object.assign({ ref, style: Object.assign(Object.assign({}, style), { height: `${parseFloat(style.height) + paddingTop + paddingBottom}px` }) }, rest));
1897
1897
  });
1898
- var DndContext = createContext({
1898
+ var DndContext$1 = createContext({
1899
1899
  dragDropManager: void 0
1900
1900
  });
1901
1901
  var HandlerRole;
@@ -3604,7 +3604,7 @@ var DndProvider = memo(function DndProvider2(_ref) {
3604
3604
  };
3605
3605
  }
3606
3606
  }, []);
3607
- return jsx(DndContext.Provider, Object.assign({
3607
+ return jsx(DndContext$1.Provider, Object.assign({
3608
3608
  value: manager
3609
3609
  }, {
3610
3610
  children
@@ -4507,7 +4507,7 @@ function useDragSource(spec, monitor, connector) {
4507
4507
  return handler;
4508
4508
  }
4509
4509
  function useDragDropManager() {
4510
- var _useContext = useContext(DndContext), dragDropManager = _useContext.dragDropManager;
4510
+ var _useContext = useContext(DndContext$1), dragDropManager = _useContext.dragDropManager;
4511
4511
  invariant(dragDropManager != null, "Expected drag drop context");
4512
4512
  return dragDropManager;
4513
4513
  }
@@ -7525,7 +7525,7 @@ function TreeProvider({ treeProps, imperativeHandle, children }) {
7525
7525
  store.current.dispatch(actions$2.clear(true));
7526
7526
  }
7527
7527
  }, [api.props.searchTerm]);
7528
- return jsx(TreeApiContext.Provider, { value: api, children: jsx(DataUpdatesContext.Provider, { value: updateCount.current, children: jsx(NodesContext.Provider, { value: state.nodes, children: jsx(DndContext$1.Provider, { value: state.dnd, children: jsx(DndProvider, Object.assign({ backend: HTML5Backend, options: { rootElement: api.props.dndRootElement || void 0 } }, treeProps.dndManager && { manager: treeProps.dndManager }, { children })) }) }) }) });
7528
+ return jsx(TreeApiContext.Provider, { value: api, children: jsx(DataUpdatesContext.Provider, { value: updateCount.current, children: jsx(NodesContext.Provider, { value: state.nodes, children: jsx(DndContext$2.Provider, { value: state.dnd, children: jsx(DndProvider, Object.assign({ backend: HTML5Backend, options: { rootElement: api.props.dndRootElement || void 0 } }, treeProps.dndManager && { manager: treeProps.dndManager }, { children })) }) }) }) });
7529
7529
  }
7530
7530
  function useOuterDrop() {
7531
7531
  const tree = useTreeApi();
@@ -7747,6 +7747,13 @@ var useContainerHeight = (initialHeight = 600) => {
7747
7747
  }, []);
7748
7748
  return [containerRef, containerHeight];
7749
7749
  };
7750
+ var DndContext = createContext({
7751
+ dragDropManager: void 0
7752
+ });
7753
+ var useParentDndManager = () => {
7754
+ const context = useContext(DndContext);
7755
+ return context.dragDropManager;
7756
+ };
7750
7757
  var PANEL_DATA_MIME_TYPE$1 = "application/x-panel-data";
7751
7758
  function TreeNode({
7752
7759
  node,
@@ -7970,6 +7977,7 @@ var RepositoryTreeCore = ({
7970
7977
  verticalNodePadding = "6px",
7971
7978
  verticalPadding = "8px"
7972
7979
  }) => {
7980
+ const parentDndManager = useParentDndManager();
7973
7981
  const rowHeight = useMemo(() => {
7974
7982
  const paddingValue = parseFloat(verticalNodePadding);
7975
7983
  const contentLineHeight = 20;
@@ -8055,7 +8063,8 @@ var RepositoryTreeCore = ({
8055
8063
  ...selection !== void 0 && { selection },
8056
8064
  width: "100%",
8057
8065
  height: containerHeight,
8058
- rowHeight
8066
+ rowHeight,
8067
+ dndManager: parentDndManager
8059
8068
  }, NodeRenderer));
8060
8069
  };
8061
8070
  React2.createContext(null);
@@ -8897,6 +8906,7 @@ const LocalProjectsPanelContent = ({
8897
8906
  /* @__PURE__ */ jsx(
8898
8907
  "button",
8899
8908
  {
8909
+ className: "header-action-button",
8900
8910
  onClick: () => setViewMode(viewMode === "list" ? "tree" : "list"),
8901
8911
  title: viewMode === "list" ? "Switch to tree view" : "Switch to list view",
8902
8912
  style: {
@@ -8904,14 +8914,14 @@ const LocalProjectsPanelContent = ({
8904
8914
  height: "40px",
8905
8915
  borderRadius: "0",
8906
8916
  border: "none",
8907
- backgroundColor: theme.colors.backgroundSecondary,
8917
+ backgroundColor: theme.colors.background,
8908
8918
  color: theme.colors.textSecondary,
8909
8919
  cursor: "pointer",
8910
8920
  display: "flex",
8911
8921
  alignItems: "center",
8912
8922
  justifyContent: "center",
8913
- transition: "all 0.2s",
8914
- flexShrink: 0
8923
+ flexShrink: 0,
8924
+ ["--button-hover-bg"]: theme.colors.backgroundSecondary
8915
8925
  },
8916
8926
  children: viewMode === "list" ? /* @__PURE__ */ jsx(GitFork, { size: 16 }) : /* @__PURE__ */ jsx(List, { size: 16 })
8917
8927
  }
@@ -8919,6 +8929,7 @@ const LocalProjectsPanelContent = ({
8919
8929
  /* @__PURE__ */ jsx(
8920
8930
  "button",
8921
8931
  {
8932
+ className: "header-action-button",
8922
8933
  onClick: handleScanForRepos,
8923
8934
  disabled: isScanning,
8924
8935
  title: "Scan for repositories",
@@ -8927,15 +8938,15 @@ const LocalProjectsPanelContent = ({
8927
8938
  height: "40px",
8928
8939
  borderRadius: "0",
8929
8940
  border: "none",
8930
- backgroundColor: theme.colors.backgroundSecondary,
8941
+ backgroundColor: theme.colors.background,
8931
8942
  color: theme.colors.textSecondary,
8932
8943
  cursor: isScanning ? "default" : "pointer",
8933
8944
  display: "flex",
8934
8945
  alignItems: "center",
8935
8946
  justifyContent: "center",
8936
8947
  opacity: isScanning ? 0.6 : 1,
8937
- transition: "all 0.2s",
8938
- flexShrink: 0
8948
+ flexShrink: 0,
8949
+ ["--button-hover-bg"]: theme.colors.backgroundSecondary
8939
8950
  },
8940
8951
  children: /* @__PURE__ */ jsx(
8941
8952
  RefreshCw,
@@ -8951,6 +8962,7 @@ const LocalProjectsPanelContent = ({
8951
8962
  panelActions.selectDirectory && /* @__PURE__ */ jsx(
8952
8963
  "button",
8953
8964
  {
8965
+ className: "header-action-button add-project-button",
8954
8966
  onClick: handleAddProject,
8955
8967
  disabled: isAdding,
8956
8968
  title: "Add existing project",
@@ -8958,16 +8970,16 @@ const LocalProjectsPanelContent = ({
8958
8970
  padding: "0 12px",
8959
8971
  height: "40px",
8960
8972
  borderRadius: "0",
8961
- border: "none",
8962
- backgroundColor: theme.colors.primary,
8963
- color: theme.colors.background,
8973
+ backgroundColor: theme.colors.background,
8974
+ color: theme.colors.primary,
8964
8975
  cursor: isAdding ? "default" : "pointer",
8965
8976
  display: "flex",
8966
8977
  alignItems: "center",
8967
8978
  justifyContent: "center",
8968
8979
  opacity: isAdding ? 0.6 : 1,
8969
- transition: "opacity 0.2s",
8970
- flexShrink: 0
8980
+ flexShrink: 0,
8981
+ ["--button-hover-bg"]: theme.colors.backgroundSecondary,
8982
+ ["--add-button-border-color"]: theme.colors.primary
8971
8983
  },
8972
8984
  children: /* @__PURE__ */ jsx(Plus, { size: 16 })
8973
8985
  }
@@ -9038,10 +9050,10 @@ const LocalProjectsPanelContent = ({
9038
9050
  /* @__PURE__ */ jsx(
9039
9051
  "button",
9040
9052
  {
9041
- className: `header-button ${showSearch ? "active" : ""}`,
9053
+ className: `header-button header-action-button ${showSearch ? "active" : ""}`,
9042
9054
  onClick: handleToggleSearch,
9043
9055
  style: {
9044
- background: showSearch ? theme.colors.backgroundSecondary : "none",
9056
+ background: showSearch ? theme.colors.backgroundSecondary : theme.colors.background,
9045
9057
  border: "none",
9046
9058
  borderRadius: "0",
9047
9059
  cursor: "pointer",
@@ -9051,7 +9063,8 @@ const LocalProjectsPanelContent = ({
9051
9063
  alignItems: "center",
9052
9064
  justifyContent: "center",
9053
9065
  color: showSearch ? theme.colors.primary : theme.colors.textSecondary,
9054
- ["--theme-text"]: theme.colors.text
9066
+ ["--theme-text"]: theme.colors.text,
9067
+ ["--button-hover-bg"]: theme.colors.backgroundSecondary
9055
9068
  },
9056
9069
  title: showSearch ? "Close search" : "Search projects",
9057
9070
  children: /* @__PURE__ */ jsx(Search, { size: 16 })
@@ -9060,6 +9073,7 @@ const LocalProjectsPanelContent = ({
9060
9073
  /* @__PURE__ */ jsx(
9061
9074
  "button",
9062
9075
  {
9076
+ className: "header-action-button",
9063
9077
  onClick: () => setViewMode(viewMode === "list" ? "tree" : "list"),
9064
9078
  title: viewMode === "list" ? "Switch to tree view" : "Switch to list view",
9065
9079
  style: {
@@ -9067,14 +9081,14 @@ const LocalProjectsPanelContent = ({
9067
9081
  height: "40px",
9068
9082
  borderRadius: "0",
9069
9083
  border: "none",
9070
- backgroundColor: theme.colors.backgroundSecondary,
9084
+ backgroundColor: theme.colors.background,
9071
9085
  color: theme.colors.textSecondary,
9072
9086
  cursor: "pointer",
9073
9087
  display: "flex",
9074
9088
  alignItems: "center",
9075
9089
  justifyContent: "center",
9076
- transition: "all 0.2s",
9077
- flexShrink: 0
9090
+ flexShrink: 0,
9091
+ ["--button-hover-bg"]: theme.colors.backgroundSecondary
9078
9092
  },
9079
9093
  children: viewMode === "list" ? /* @__PURE__ */ jsx(GitFork, { size: 16 }) : /* @__PURE__ */ jsx(List, { size: 16 })
9080
9094
  }
@@ -9082,6 +9096,7 @@ const LocalProjectsPanelContent = ({
9082
9096
  /* @__PURE__ */ jsx(
9083
9097
  "button",
9084
9098
  {
9099
+ className: "header-action-button",
9085
9100
  onClick: handleScanForRepos,
9086
9101
  disabled: isScanning,
9087
9102
  title: "Scan for repositories",
@@ -9090,15 +9105,15 @@ const LocalProjectsPanelContent = ({
9090
9105
  height: "40px",
9091
9106
  borderRadius: "0",
9092
9107
  border: "none",
9093
- backgroundColor: theme.colors.backgroundSecondary,
9108
+ backgroundColor: theme.colors.background,
9094
9109
  color: theme.colors.textSecondary,
9095
9110
  cursor: isScanning ? "default" : "pointer",
9096
9111
  display: "flex",
9097
9112
  alignItems: "center",
9098
9113
  justifyContent: "center",
9099
9114
  opacity: isScanning ? 0.6 : 1,
9100
- transition: "all 0.2s",
9101
- flexShrink: 0
9115
+ flexShrink: 0,
9116
+ ["--button-hover-bg"]: theme.colors.backgroundSecondary
9102
9117
  },
9103
9118
  children: /* @__PURE__ */ jsx(
9104
9119
  RefreshCw,
@@ -9114,6 +9129,7 @@ const LocalProjectsPanelContent = ({
9114
9129
  panelActions.selectDirectory && /* @__PURE__ */ jsx(
9115
9130
  "button",
9116
9131
  {
9132
+ className: "header-action-button add-project-button",
9117
9133
  onClick: handleAddProject,
9118
9134
  disabled: isAdding,
9119
9135
  title: "Add existing project",
@@ -9121,16 +9137,16 @@ const LocalProjectsPanelContent = ({
9121
9137
  padding: "0 12px",
9122
9138
  height: "40px",
9123
9139
  borderRadius: "0",
9124
- border: "none",
9125
- backgroundColor: theme.colors.primary,
9126
- color: theme.colors.background,
9140
+ backgroundColor: theme.colors.background,
9141
+ color: theme.colors.primary,
9127
9142
  cursor: isAdding ? "default" : "pointer",
9128
9143
  display: "flex",
9129
9144
  alignItems: "center",
9130
9145
  justifyContent: "center",
9131
9146
  opacity: isAdding ? 0.6 : 1,
9132
- transition: "opacity 0.2s",
9133
- flexShrink: 0
9147
+ flexShrink: 0,
9148
+ ["--button-hover-bg"]: theme.colors.backgroundSecondary,
9149
+ ["--add-button-border-color"]: theme.colors.primary
9134
9150
  },
9135
9151
  children: /* @__PURE__ */ jsx(Plus, { size: 16 })
9136
9152
  }