@industry-theme/backlogmd-kanban-panel 1.2.10 → 1.2.12

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.
@@ -6336,7 +6336,7 @@ function gt(o, e, t, r2) {
6336
6336
  };
6337
6337
  }, [o, e, t, r2]);
6338
6338
  }
6339
- const version = "1.2.10";
6339
+ const version = "1.2.11";
6340
6340
  const packageJson = {
6341
6341
  version
6342
6342
  };
@@ -8971,10 +8971,6 @@ const KanbanPanel = ({
8971
8971
  "task.id": task.id,
8972
8972
  "task.status": task.status || "unknown"
8973
8973
  });
8974
- span.setStatus({
8975
- code: SpanStatusCode.OK
8976
- });
8977
- span.end();
8978
8974
  if (events2) {
8979
8975
  events2.emit({
8980
8976
  type: "task:selected",
@@ -8985,7 +8981,14 @@ const KanbanPanel = ({
8985
8981
  task
8986
8982
  }
8987
8983
  });
8984
+ span.addEvent("task.selected.emitted", {
8985
+ "task.id": task.id
8986
+ });
8988
8987
  }
8988
+ span.setStatus({
8989
+ code: SpanStatusCode.OK
8990
+ });
8991
+ span.end();
8989
8992
  }, [events2]);
8990
8993
  useEffect(() => {
8991
8994
  if (!events2) return;
@@ -54089,7 +54092,8 @@ const TaskDetailPanel = ({
54089
54092
  context: context2,
54090
54093
  events: events2,
54091
54094
  actions,
54092
- config
54095
+ config,
54096
+ core: coreProp
54093
54097
  }) => {
54094
54098
  var _a, _b;
54095
54099
  const {
@@ -54104,9 +54108,17 @@ const TaskDetailPanel = ({
54104
54108
  status: "idle"
54105
54109
  });
54106
54110
  const panelRef = useRef(null);
54111
+ const deleteSpanRef = useRef(null);
54107
54112
  const {
54108
54113
  editable = false
54109
54114
  } = config ?? {};
54115
+ const {
54116
+ core: hookCore
54117
+ } = useBacklogCore({
54118
+ context: context2,
54119
+ actions
54120
+ });
54121
+ const core2 = coreProp ?? hookCore;
54110
54122
  gt("task-detail", events2, () => {
54111
54123
  var _a2;
54112
54124
  return (_a2 = panelRef.current) == null ? void 0 : _a2.focus();
@@ -54157,47 +54169,66 @@ const TaskDetailPanel = ({
54157
54169
  const handleOpenDeleteModal = useCallback(() => {
54158
54170
  if (!selectedTask) return;
54159
54171
  const tracer = getTracer();
54160
- const span = tracer.startSpan("detail.interaction", {
54172
+ const span = tracer.startSpan("task.delete", {
54161
54173
  attributes: {
54162
54174
  "task.id": selectedTask.id
54163
54175
  }
54164
54176
  });
54177
+ deleteSpanRef.current = span;
54165
54178
  span.addEvent("delete.modal.opened", {
54166
54179
  "task.id": selectedTask.id
54167
54180
  });
54168
- span.setStatus({
54169
- code: SpanStatusCode.OK
54170
- });
54171
- span.end();
54172
54181
  setIsDeleteModalOpen(true);
54173
54182
  }, [selectedTask]);
54174
54183
  const handleDeleteConfirm = useCallback(async () => {
54175
54184
  if (!selectedTask) return;
54176
- if (!(actions == null ? void 0 : actions.deleteTask)) {
54185
+ const span = deleteSpanRef.current;
54186
+ const canDeleteWithCore = Boolean(core2);
54187
+ const canDeleteWithActions = Boolean(actions == null ? void 0 : actions.deleteTask);
54188
+ if (!canDeleteWithCore && !canDeleteWithActions) {
54177
54189
  setDeleteState({
54178
54190
  status: "error",
54179
- error: "Delete action not available"
54191
+ error: "Delete not available"
54180
54192
  });
54193
+ if (span) {
54194
+ span.addEvent("task.deleted", {
54195
+ "task.id": selectedTask.id
54196
+ });
54197
+ span.addEvent("task.save.error", {
54198
+ "task.id": selectedTask.id,
54199
+ "operation": "delete",
54200
+ "error.type": "DeleteNotAvailable",
54201
+ "error.message": "Neither Core nor deleteTask action available"
54202
+ });
54203
+ span.setStatus({
54204
+ code: SpanStatusCode.ERROR,
54205
+ message: "Delete not available"
54206
+ });
54207
+ span.end();
54208
+ deleteSpanRef.current = null;
54209
+ }
54181
54210
  return;
54182
54211
  }
54183
54212
  setDeleteState({
54184
54213
  status: "loading"
54185
54214
  });
54186
54215
  try {
54187
- await actions.deleteTask(selectedTask.id);
54188
- const tracer = getTracer();
54189
- const span = tracer.startSpan("task.mutation", {
54190
- attributes: {
54191
- "task.id": selectedTask.id
54192
- }
54193
- });
54194
- span.addEvent("task.deleted", {
54195
- "task.id": selectedTask.id
54196
- });
54197
- span.setStatus({
54198
- code: SpanStatusCode.OK
54199
- });
54200
- span.end();
54216
+ if (core2) {
54217
+ await core2.deleteTask(selectedTask.id);
54218
+ } else if (actions == null ? void 0 : actions.deleteTask) {
54219
+ await actions.deleteTask(selectedTask.id);
54220
+ }
54221
+ if (span) {
54222
+ span.addEvent("task.deleted", {
54223
+ "task.id": selectedTask.id,
54224
+ "delete.method": core2 ? "core" : "actions"
54225
+ });
54226
+ span.setStatus({
54227
+ code: SpanStatusCode.OK
54228
+ });
54229
+ span.end();
54230
+ deleteSpanRef.current = null;
54231
+ }
54201
54232
  setDeleteState({
54202
54233
  status: "success"
54203
54234
  });
@@ -54222,8 +54253,39 @@ const TaskDetailPanel = ({
54222
54253
  status: "error",
54223
54254
  error: errorMessage
54224
54255
  });
54256
+ if (span) {
54257
+ span.addEvent("task.deleted", {
54258
+ "task.id": selectedTask.id
54259
+ });
54260
+ span.addEvent("task.save.error", {
54261
+ "task.id": selectedTask.id,
54262
+ "operation": "delete",
54263
+ "error.type": error instanceof Error ? error.name : "Unknown",
54264
+ "error.message": errorMessage
54265
+ });
54266
+ span.setStatus({
54267
+ code: SpanStatusCode.ERROR,
54268
+ message: errorMessage
54269
+ });
54270
+ span.end();
54271
+ deleteSpanRef.current = null;
54272
+ }
54273
+ }
54274
+ }, [core2, actions, selectedTask, events2]);
54275
+ const handleDeleteCancel = useCallback(() => {
54276
+ const span = deleteSpanRef.current;
54277
+ if (span) {
54278
+ span.addEvent("delete.modal.cancelled", {
54279
+ "task.id": selectedTask == null ? void 0 : selectedTask.id
54280
+ });
54281
+ span.setStatus({
54282
+ code: SpanStatusCode.OK
54283
+ });
54284
+ span.end();
54285
+ deleteSpanRef.current = null;
54225
54286
  }
54226
- }, [actions, selectedTask, events2]);
54287
+ setIsDeleteModalOpen(false);
54288
+ }, [selectedTask]);
54227
54289
  useEffect(() => {
54228
54290
  if (!events2) return;
54229
54291
  const handleTaskSelected = (event) => {
@@ -54292,6 +54354,17 @@ const TaskDetailPanel = ({
54292
54354
  };
54293
54355
  }, [events2, selectedTask, isDeleteModalOpen, handleOpenDeleteModal, handleDeleteConfirm]);
54294
54356
  const handleBack = useCallback(() => {
54357
+ const deleteSpan = deleteSpanRef.current;
54358
+ if (deleteSpan) {
54359
+ deleteSpan.addEvent("delete.modal.cancelled", {
54360
+ "task.id": selectedTask == null ? void 0 : selectedTask.id
54361
+ });
54362
+ deleteSpan.setStatus({
54363
+ code: SpanStatusCode.OK
54364
+ });
54365
+ deleteSpan.end();
54366
+ deleteSpanRef.current = null;
54367
+ }
54295
54368
  if (selectedTask) {
54296
54369
  const tracer = getTracer();
54297
54370
  const span = tracer.startSpan("detail.interaction", {
@@ -54344,6 +54417,7 @@ const TaskDetailPanel = ({
54344
54417
  children: [/* @__PURE__ */ jsx("h3", {
54345
54418
  style: {
54346
54419
  margin: "0 0 8px 0",
54420
+ fontFamily: theme2.fonts.body,
54347
54421
  fontSize: theme2.fontSizes[3],
54348
54422
  color: theme2.colors.text,
54349
54423
  fontWeight: theme2.fontWeights.semibold
@@ -54352,6 +54426,7 @@ const TaskDetailPanel = ({
54352
54426
  }), /* @__PURE__ */ jsx("p", {
54353
54427
  style: {
54354
54428
  margin: 0,
54429
+ fontFamily: theme2.fonts.body,
54355
54430
  fontSize: theme2.fontSizes[1],
54356
54431
  color: theme2.colors.textSecondary
54357
54432
  },
@@ -54692,7 +54767,7 @@ const TaskDetailPanel = ({
54692
54767
  padding: "16px"
54693
54768
  },
54694
54769
  children: [/* @__PURE__ */ jsx("div", {
54695
- onClick: () => setIsDeleteModalOpen(false),
54770
+ onClick: handleDeleteCancel,
54696
54771
  style: {
54697
54772
  position: "absolute",
54698
54773
  inset: 0,
@@ -54719,13 +54794,14 @@ const TaskDetailPanel = ({
54719
54794
  children: [/* @__PURE__ */ jsx("h2", {
54720
54795
  style: {
54721
54796
  margin: 0,
54797
+ fontFamily: theme2.fonts.body,
54722
54798
  fontSize: theme2.fontSizes[4],
54723
- fontWeight: 600,
54724
- color: theme2.colors.text
54799
+ fontWeight: theme2.fontWeights.semibold,
54800
+ color: theme2.colors.warning
54725
54801
  },
54726
54802
  children: "Delete Task?"
54727
54803
  }), /* @__PURE__ */ jsx("button", {
54728
- onClick: () => setIsDeleteModalOpen(false),
54804
+ onClick: handleDeleteCancel,
54729
54805
  style: {
54730
54806
  background: "none",
54731
54807
  border: "none",
@@ -54748,11 +54824,15 @@ const TaskDetailPanel = ({
54748
54824
  children: [/* @__PURE__ */ jsxs("p", {
54749
54825
  style: {
54750
54826
  margin: 0,
54827
+ fontFamily: theme2.fonts.body,
54751
54828
  fontSize: theme2.fontSizes[2],
54752
54829
  color: theme2.colors.text,
54753
54830
  lineHeight: 1.5
54754
54831
  },
54755
54832
  children: ["Are you sure you want to delete ", /* @__PURE__ */ jsxs("strong", {
54833
+ style: {
54834
+ color: theme2.colors.primary
54835
+ },
54756
54836
  children: ['"', selectedTask.title, '"']
54757
54837
  }), "? This action cannot be undone."]
54758
54838
  }), deleteState.status === "error" && /* @__PURE__ */ jsx("div", {
@@ -54762,8 +54842,9 @@ const TaskDetailPanel = ({
54762
54842
  backgroundColor: `${theme2.colors.error}15`,
54763
54843
  border: `1px solid ${theme2.colors.error}`,
54764
54844
  borderRadius: theme2.radii[2],
54765
- color: theme2.colors.error,
54766
- fontSize: theme2.fontSizes[1]
54845
+ fontFamily: theme2.fonts.body,
54846
+ fontSize: theme2.fontSizes[1],
54847
+ color: theme2.colors.error
54767
54848
  },
54768
54849
  children: deleteState.error || "Failed to delete task"
54769
54850
  })]
@@ -54777,12 +54858,13 @@ const TaskDetailPanel = ({
54777
54858
  },
54778
54859
  children: [/* @__PURE__ */ jsx("button", {
54779
54860
  type: "button",
54780
- onClick: () => setIsDeleteModalOpen(false),
54861
+ onClick: handleDeleteCancel,
54781
54862
  disabled: deleteState.status === "loading",
54782
54863
  style: {
54783
54864
  padding: "10px 20px",
54865
+ fontFamily: theme2.fonts.body,
54784
54866
  fontSize: theme2.fontSizes[2],
54785
- fontWeight: 500,
54867
+ fontWeight: theme2.fontWeights.medium,
54786
54868
  border: `1px solid ${theme2.colors.border}`,
54787
54869
  borderRadius: theme2.radii[2],
54788
54870
  backgroundColor: "transparent",
@@ -54800,8 +54882,9 @@ const TaskDetailPanel = ({
54800
54882
  alignItems: "center",
54801
54883
  gap: "8px",
54802
54884
  padding: "10px 20px",
54885
+ fontFamily: theme2.fonts.body,
54803
54886
  fontSize: theme2.fontSizes[2],
54804
- fontWeight: 500,
54887
+ fontWeight: theme2.fontWeights.medium,
54805
54888
  border: "none",
54806
54889
  borderRadius: theme2.radii[2],
54807
54890
  backgroundColor: theme2.colors.error,