@industry-theme/backlogmd-kanban-panel 1.0.30 → 1.0.31

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,5 +1,17 @@
1
1
  import React from 'react';
2
2
  import type { PanelComponentProps } from '../types';
3
+ /**
4
+ * Configuration options for TaskDetailPanel
5
+ */
6
+ export interface TaskDetailPanelConfig {
7
+ editable?: boolean;
8
+ }
9
+ /**
10
+ * Extended props for TaskDetailPanel that includes optional config
11
+ */
12
+ export interface TaskDetailPanelProps extends PanelComponentProps {
13
+ config?: TaskDetailPanelConfig;
14
+ }
3
15
  /**
4
16
  * TaskDetailPanel - A panel for viewing task details from Backlog.md
5
17
  *
@@ -10,5 +22,5 @@ import type { PanelComponentProps } from '../types';
10
22
  *
11
23
  * Listens for 'task:selected' events from other panels (e.g., KanbanPanel)
12
24
  */
13
- export declare const TaskDetailPanel: React.FC<PanelComponentProps>;
25
+ export declare const TaskDetailPanel: React.FC<TaskDetailPanelProps>;
14
26
  //# sourceMappingURL=TaskDetailPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/TaskDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,UAAU,CAAC;AA+IvE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkRzD,CAAC"}
1
+ {"version":3,"file":"TaskDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/TaskDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,UAAU,CAAC;AAuEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC;AA0ED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAsR1D,CAAC"}
@@ -2,11 +2,12 @@ import React from 'react';
2
2
  import type { StoryObj } from '@storybook/react-vite';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: React.FC<import("@principal-ade/panel-framework-core").PanelComponentProps>;
5
+ component: React.FC<import("./TaskDetailPanel").TaskDetailPanelProps>;
6
6
  parameters: {
7
7
  layout: string;
8
8
  };
9
9
  decorators: ((Story: import("storybook/internal/csf").PartialStoryFn<import("@storybook/react").ReactRenderer, {
10
+ config?: import("./TaskDetailPanel").TaskDetailPanelConfig | undefined;
10
11
  context: import("@principal-ade/panel-framework-core").PanelContextValue;
11
12
  actions: import("@principal-ade/panel-framework-core").PanelActions;
12
13
  events: import("@principal-ade/panel-framework-core").PanelEventEmitter;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskDetailPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/TaskDetailPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,QAAA,MAAM,IAAI;;;;;;;;;;;;CAkB8B,CAAC;AAEzC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAkFnC,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAC;AAQF,eAAO,MAAM,gBAAgB,EAAE,KAoB9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KA6B9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KA4BzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KA2B5B,CAAC"}
1
+ {"version":3,"file":"TaskDetailPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/TaskDetailPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,QAAA,MAAM,IAAI;;;;;;;;;;;;;CAkB8B,CAAC;AAEzC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAkFnC,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAC;AAQF,eAAO,MAAM,gBAAgB,EAAE,KAoB9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KA6B9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KA4BzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KA2B5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/components/KanbanColumn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,UAAU,iBAAiB;IACzB,mDAAmD;IACnD,QAAQ,EAAE,YAAY,CAAC;IACvB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuKpD,CAAC"}
1
+ {"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/components/KanbanColumn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,UAAU,iBAAiB;IACzB,mDAAmD;IACnD,QAAQ,EAAE,YAAY,CAAC;IACvB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyKpD,CAAC"}
@@ -6354,7 +6354,7 @@ const KanbanColumn = ({
6354
6354
  transition: "background-color 0.2s ease, border 0.2s ease"
6355
6355
  },
6356
6356
  children: [
6357
- /* @__PURE__ */ jsxs(
6357
+ !fullWidth && /* @__PURE__ */ jsxs(
6358
6358
  "div",
6359
6359
  {
6360
6360
  style: {
@@ -49328,7 +49328,8 @@ var createIndustryMarkdownComponents = ({
49328
49328
  enableHtmlPopout,
49329
49329
  slideHeaderMarginTopOverride,
49330
49330
  index: index2,
49331
- repositoryInfo
49331
+ repositoryInfo,
49332
+ editable = false
49332
49333
  }) => {
49333
49334
  const getLuminance = (hex) => {
49334
49335
  const rgb = hex.replace("#", "").match(/.{2}/g);
@@ -49460,19 +49461,20 @@ var createIndustryMarkdownComponents = ({
49460
49461
  checked: isChecked,
49461
49462
  onChange: handleChange,
49462
49463
  onClick: (e) => e.stopPropagation(),
49464
+ disabled: !editable,
49463
49465
  style: {
49464
49466
  marginRight: theme2.space[2],
49465
49467
  marginTop: theme2.space[1],
49466
49468
  width: "16px",
49467
49469
  height: "16px",
49468
- cursor: "pointer"
49470
+ cursor: editable ? "pointer" : "default"
49469
49471
  },
49470
49472
  id
49471
49473
  }), /* @__PURE__ */ React2__default.createElement("label", {
49472
49474
  htmlFor: id,
49473
49475
  style: {
49474
49476
  flex: 1,
49475
- cursor: "pointer",
49477
+ cursor: editable ? "pointer" : "default",
49476
49478
  color: isChecked ? theme2.colors.textMuted : "inherit",
49477
49479
  lineHeight: theme2.lineHeights.relaxed
49478
49480
  }
@@ -50554,7 +50556,8 @@ var IndustryMarkdownSlide = React2__default.memo(function IndustryMarkdownSlide2
50554
50556
  maxScreenWidth: _maxScreenWidth,
50555
50557
  enableKeyboardScrolling = true,
50556
50558
  keyboardScrollConfig,
50557
- repositoryInfo
50559
+ repositoryInfo,
50560
+ editable = false
50558
50561
  }) {
50559
50562
  const slideRef = useRef(null);
50560
50563
  const scrollPositionsRef = useRef(/* @__PURE__ */ new Map());
@@ -50910,7 +50913,8 @@ var IndustryMarkdownSlide = React2__default.memo(function IndustryMarkdownSlide2
50910
50913
  enableHtmlPopout,
50911
50914
  slideHeaderMarginTopOverride,
50912
50915
  index: chunkIndex,
50913
- repositoryInfo
50916
+ repositoryInfo,
50917
+ editable
50914
50918
  });
50915
50919
  if (searchQuery) {
50916
50920
  return {
@@ -50943,7 +50947,8 @@ var IndustryMarkdownSlide = React2__default.memo(function IndustryMarkdownSlide2
50943
50947
  enableHtmlPopout,
50944
50948
  slideHeaderMarginTopOverride,
50945
50949
  repositoryInfo,
50946
- searchQuery
50950
+ searchQuery,
50951
+ editable
50947
50952
  ]);
50948
50953
  return /* @__PURE__ */ React2__default.createElement("div", {
50949
50954
  className: "markdown-slide",
@@ -52728,7 +52733,8 @@ var DocumentView = ({
52728
52733
  repositoryInfo,
52729
52734
  fontSizeScale,
52730
52735
  theme: theme2,
52731
- transparentBackground = false
52736
+ transparentBackground = false,
52737
+ editable = false
52732
52738
  }) => {
52733
52739
  const containerRef = useRef(null);
52734
52740
  const backgroundColor = transparentBackground ? "transparent" : theme2.colors.background;
@@ -52760,7 +52766,8 @@ var DocumentView = ({
52760
52766
  fontSizeScale,
52761
52767
  handlePromptCopy,
52762
52768
  repositoryInfo,
52763
- transparentBackground
52769
+ transparentBackground,
52770
+ editable
52764
52771
  })));
52765
52772
  };
52766
52773
  function getTaskBodyMarkdown(task, options = {}) {
@@ -52863,9 +52870,10 @@ const MetadataRow = ({ icon, label, value }) => {
52863
52870
  }
52864
52871
  );
52865
52872
  };
52866
- const TaskDetailPanel = ({ context, actions, events: events2 }) => {
52873
+ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
52867
52874
  const { theme: theme2 } = useTheme();
52868
52875
  const [selectedTask, setSelectedTask] = useState(null);
52876
+ const { editable = false } = config ?? {};
52869
52877
  useEffect(() => {
52870
52878
  if (!events2) return;
52871
52879
  const handleTaskSelected = (event) => {
@@ -53119,7 +53127,8 @@ const TaskDetailPanel = ({ context, actions, events: events2 }) => {
53119
53127
  content: bodyMarkdown,
53120
53128
  theme: theme2,
53121
53129
  maxWidth: "100%",
53122
- transparentBackground: true
53130
+ transparentBackground: true,
53131
+ editable
53123
53132
  }
53124
53133
  ) : /* @__PURE__ */ jsx(
53125
53134
  "div",