@industry-theme/agent-panels 0.2.9 → 0.2.10

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.
@@ -2,6 +2,12 @@ import React from 'react';
2
2
  import type { PanelComponentProps } from '../types';
3
3
  import './SkillDetailPanel.css';
4
4
  export interface SkillDetailPanelProps extends PanelComponentProps {
5
+ /**
6
+ * Optional skill ID to display.
7
+ * If provided, this takes precedence over event-based selection.
8
+ * This allows the host to control panel state via props instead of events.
9
+ */
10
+ selectedSkillId?: string | null;
5
11
  }
6
12
  export declare const SkillDetailPanel: React.FC<SkillDetailPanelProps>;
7
13
  //# sourceMappingURL=SkillDetailPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/SkillDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAQpD,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAG;AAErE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA+R5D,CAAC"}
1
+ {"version":3,"file":"SkillDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/SkillDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAQpD,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0S5D,CAAC"}
@@ -47941,14 +47941,16 @@ var SkillMarkdown = ({
47941
47941
  const SkillDetailPanel = ({
47942
47942
  context,
47943
47943
  events,
47944
- actions
47944
+ actions,
47945
+ selectedSkillId: selectedSkillIdProp
47945
47946
  }) => {
47946
47947
  var _a, _b, _c, _d, _e2, _f;
47947
47948
  const { theme: theme2 } = useTheme();
47948
47949
  const { skills, isLoading, error } = useSkillsData({ context });
47949
- const [selectedSkillId, setSelectedSkillId] = useState(null);
47950
+ const [selectedSkillIdState, setSelectedSkillIdState] = useState(null);
47950
47951
  const [skill, setSkill] = useState(null);
47951
47952
  const panelRef = useRef(null);
47953
+ const selectedSkillId = selectedSkillIdProp !== void 0 ? selectedSkillIdProp : selectedSkillIdState;
47952
47954
  gt(
47953
47955
  "skill-detail",
47954
47956
  events,
@@ -47958,19 +47960,24 @@ const SkillDetailPanel = ({
47958
47960
  }
47959
47961
  );
47960
47962
  useEffect(() => {
47963
+ if (selectedSkillIdProp !== void 0) {
47964
+ return;
47965
+ }
47961
47966
  const unsubscribe = events.on("skill:selected", (event) => {
47962
47967
  const payload = event.payload;
47963
47968
  const skillId = payload == null ? void 0 : payload.skillId;
47964
47969
  if (skillId) {
47965
- setSelectedSkillId(skillId);
47970
+ setSelectedSkillIdState(skillId);
47966
47971
  }
47967
47972
  });
47968
47973
  return unsubscribe;
47969
- }, [events]);
47974
+ }, [events, selectedSkillIdProp]);
47970
47975
  useEffect(() => {
47971
47976
  if (selectedSkillId && skills.length > 0) {
47972
47977
  const foundSkill = skills.find((s2) => s2.id === selectedSkillId);
47973
47978
  setSkill(foundSkill || null);
47979
+ } else if (!selectedSkillId) {
47980
+ setSkill(null);
47974
47981
  }
47975
47982
  }, [selectedSkillId, skills]);
47976
47983
  if (error) {