@expcat/tigercat-vue 1.0.0 → 1.0.7

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 (51) hide show
  1. package/dist/{chunk-A64AWAOW.mjs → chunk-3ICMBQPM.mjs} +2 -0
  2. package/dist/{chunk-4KCCUIGO.mjs → chunk-3PQ2I5IQ.mjs} +1 -1
  3. package/dist/{chunk-MI5EG5QX.js → chunk-4DJ2HAYO.js} +2 -2
  4. package/dist/{chunk-5DXIYS7U.js → chunk-5G5Q3TTH.js} +1 -1
  5. package/dist/{chunk-ESTA5C5P.js → chunk-D2I2NNYI.js} +1 -1
  6. package/dist/{chunk-LJJ3VTR3.mjs → chunk-EZ6GXQMP.mjs} +1 -1
  7. package/dist/{chunk-XYIAHZNM.mjs → chunk-GTSS7RAT.mjs} +1 -1
  8. package/dist/{chunk-XA5QMUZX.mjs → chunk-J7VTGSHX.mjs} +78 -17
  9. package/dist/{chunk-SI3JIHH4.js → chunk-KI35GUL5.js} +1 -1
  10. package/dist/{chunk-DC5J25FH.mjs → chunk-NMGH5YTV.mjs} +1 -1
  11. package/dist/{chunk-BDMWFNTC.js → chunk-O2Q4UYDA.js} +77 -16
  12. package/dist/chunk-PLGYRHPX.mjs +87 -0
  13. package/dist/{chunk-PUALBK3Y.js → chunk-S2PMAXBQ.js} +2 -0
  14. package/dist/{chunk-C76CIM26.mjs → chunk-SAMKKXAW.mjs} +1 -1
  15. package/dist/{chunk-4F5ABXXM.js → chunk-WB6JGQWN.js} +1 -1
  16. package/dist/chunk-WBY2ILFK.js +90 -0
  17. package/dist/{chunk-3YWYAQR6.js → chunk-XGJWUZWS.js} +10 -9
  18. package/dist/{chunk-OEHCRIVT.mjs → chunk-YYRJA6VQ.mjs} +9 -8
  19. package/dist/components/CropUpload.js +3 -3
  20. package/dist/components/CropUpload.mjs +1 -1
  21. package/dist/components/DataTableWithToolbar.d.mts +14 -14
  22. package/dist/components/DataTableWithToolbar.d.ts +14 -14
  23. package/dist/components/DataTableWithToolbar.js +4 -4
  24. package/dist/components/DataTableWithToolbar.mjs +2 -2
  25. package/dist/components/Dropdown.js +4 -4
  26. package/dist/components/Dropdown.mjs +1 -1
  27. package/dist/components/DropdownItem.js +4 -4
  28. package/dist/components/DropdownItem.mjs +2 -2
  29. package/dist/components/HeatmapChart.js +3 -3
  30. package/dist/components/HeatmapChart.mjs +1 -1
  31. package/dist/components/Kanban.d.mts +2 -2
  32. package/dist/components/Kanban.d.ts +2 -2
  33. package/dist/components/Kanban.js +4 -3
  34. package/dist/components/Kanban.mjs +2 -1
  35. package/dist/components/NotificationCenter.js +3 -3
  36. package/dist/components/NotificationCenter.mjs +1 -1
  37. package/dist/components/Table.js +3 -3
  38. package/dist/components/Table.mjs +1 -1
  39. package/dist/components/TaskBoard.d.mts +52 -1
  40. package/dist/components/TaskBoard.d.ts +52 -1
  41. package/dist/components/TaskBoard.js +3 -3
  42. package/dist/components/TaskBoard.mjs +1 -1
  43. package/dist/components/Transfer.js +3 -3
  44. package/dist/components/Transfer.mjs +1 -1
  45. package/dist/index.js +23 -23
  46. package/dist/index.mjs +10 -10
  47. package/package.json +2 -2
  48. package/dist/chunk-33C5E3AQ.mjs +0 -328
  49. package/dist/chunk-CXJUEG75.js +0 -331
  50. /package/dist/{chunk-HTOCKV2N.mjs → chunk-HTG6ISVH.mjs} +0 -0
  51. /package/dist/{chunk-UG6XPJ2N.js → chunk-TT5LWQIZ.js} +0 -0
@@ -267,8 +267,10 @@ var Dropdown = defineComponent({
267
267
  },
268
268
  [
269
269
  h(
270
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
270
271
  menuNode.type,
271
272
  { ...menuNode.props || {}, id: menuId },
273
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
272
274
  menuNode.children
273
275
  )
274
276
  ]
@@ -167,7 +167,7 @@ var CropUpload = defineComponent({
167
167
  src: imageSrc.value,
168
168
  ...props.cropperProps
169
169
  }) : null,
170
- footer: ({ cancel }) => h("div", { class: modalFooterClasses }, [
170
+ footer: ({ cancel: _cancel }) => h("div", { class: modalFooterClasses }, [
171
171
  h(Button, { variant: "secondary", onClick: handleCancel }, { default: () => "\u53D6\u6D88" }),
172
172
  h(
173
173
  Button,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkPUALBK3Y_js = require('./chunk-PUALBK3Y.js');
3
+ var chunkS2PMAXBQ_js = require('./chunk-S2PMAXBQ.js');
4
4
  var vue = require('vue');
5
5
  var tigercatCore = require('@expcat/tigercat-core');
6
6
 
@@ -48,7 +48,7 @@ var DropdownItem = vue.defineComponent({
48
48
  const attrsRecord = attrs;
49
49
  const attrsClass = attrsRecord.class;
50
50
  const attrsStyle = attrsRecord.style;
51
- const context = vue.inject(chunkPUALBK3Y_js.DropdownContextKey, null);
51
+ const context = vue.inject(chunkS2PMAXBQ_js.DropdownContextKey, null);
52
52
  const handleClick = (event) => {
53
53
  if (props.disabled) {
54
54
  event.preventDefault();
@@ -274,7 +274,7 @@ var NotificationCenter = vue.defineComponent({
274
274
  )
275
275
  );
276
276
  };
277
- const renderListItem = (item, index) => {
277
+ const renderListItem = (item, _index) => {
278
278
  const isRead = Boolean(item.read);
279
279
  const timeText = item.time ? tigercatCore.formatActivityTime(item.time) : "";
280
280
  return vue.h(
@@ -169,7 +169,7 @@ var CropUpload = vue.defineComponent({
169
169
  src: imageSrc.value,
170
170
  ...props.cropperProps
171
171
  }) : null,
172
- footer: ({ cancel }) => vue.h("div", { class: tigercatCore.modalFooterClasses }, [
172
+ footer: ({ cancel: _cancel }) => vue.h("div", { class: tigercatCore.modalFooterClasses }, [
173
173
  vue.h(chunkU7CCKZAG_js.Button, { variant: "secondary", onClick: handleCancel }, { default: () => "\u53D6\u6D88" }),
174
174
  vue.h(
175
175
  chunkU7CCKZAG_js.Button,
@@ -272,7 +272,7 @@ var NotificationCenter = defineComponent({
272
272
  )
273
273
  );
274
274
  };
275
- const renderListItem = (item, index) => {
275
+ const renderListItem = (item, _index) => {
276
276
  const isRead = Boolean(item.read);
277
277
  const timeText = item.time ? formatActivityTime(item.time) : "";
278
278
  return h(
@@ -46,7 +46,7 @@ var HeatmapChart = defineComponent({
46
46
  handleMouseMove,
47
47
  handleMouseLeave,
48
48
  handleClick,
49
- wrapperClasses
49
+ wrapperClasses: _wrapperClasses
50
50
  } = useChartInteraction({
51
51
  hoverable: computed(() => props.hoverable),
52
52
  hoveredIndexProp: () => props.hoveredIndex,
@@ -1,6 +1,6 @@
1
1
  import { useTigerConfig } from './chunk-XP5M2GK7.mjs';
2
2
  import { defineComponent, computed, ref, watch, onMounted, onBeforeUnmount, h } from 'vue';
3
- import { mergeTigerLocale, getTaskBoardLabels, classNames, taskBoardBaseClasses, coerceClassValue, mergeStyleValues, resolveLocaleText, createTouchDragTracker, isWipExceeded, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardWipExceededClasses, taskBoardColumnHeaderClasses, taskBoardDropIndicatorClasses, taskBoardEmptyClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, getColumnDropIndex, setDragData, createColumnDragData, taskBoardCardClasses, taskBoardCardDraggingClasses, parseDragData, getDropIndex, reorderColumns, findColumnFromPoint, createCardDragData, moveCard } from '@expcat/tigercat-core';
3
+ import { mergeTigerLocale, getTaskBoardLabels, filterColumns, classNames, taskBoardBaseClasses, coerceClassValue, mergeStyleValues, kanbanAddColumnClasses, resolveLocaleText, createTouchDragTracker, isWipExceeded, getColumnCardCount, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardWipExceededClasses, kanbanCardCountClasses, taskBoardColumnHeaderClasses, taskBoardDropIndicatorClasses, taskBoardEmptyClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, getColumnDropIndex, setDragData, createColumnDragData, taskBoardCardClasses, taskBoardCardDraggingClasses, parseDragData, getDropIndex, reorderColumns, findColumnFromPoint, createCardDragData, moveCard } from '@expcat/tigercat-core';
4
4
 
5
5
  var TaskBoard = defineComponent({
6
6
  name: "TigerTaskBoard",
@@ -38,6 +38,14 @@ var TaskBoard = defineComponent({
38
38
  type: Function,
39
39
  default: void 0
40
40
  },
41
+ filterText: { type: String, default: "" },
42
+ hiddenColumns: {
43
+ type: Array,
44
+ default: () => []
45
+ },
46
+ showCardCount: { type: Boolean, default: false },
47
+ allowAddCard: { type: Boolean, default: false },
48
+ allowAddColumn: { type: Boolean, default: false },
41
49
  locale: {
42
50
  type: Object,
43
51
  default: void 0
@@ -51,7 +59,7 @@ var TaskBoard = defineComponent({
51
59
  default: void 0
52
60
  }
53
61
  },
54
- emits: ["card-move", "column-move", "card-add", "update:columns"],
62
+ emits: ["card-move", "column-move", "card-add", "column-add", "update:columns"],
55
63
  setup(props, { slots, attrs, emit }) {
56
64
  const config = useTigerConfig();
57
65
  const mergedLocale = computed(() => mergeTigerLocale(config.value.locale, props.locale));
@@ -72,6 +80,13 @@ var TaskBoard = defineComponent({
72
80
  }
73
81
  );
74
82
  const currentColumns = computed(() => props.columns ?? innerColumns.value);
83
+ const visibleColumns = computed(() => {
84
+ const cols = currentColumns.value;
85
+ if (!props.filterText && (!props.hiddenColumns || props.hiddenColumns.length === 0)) {
86
+ return cols;
87
+ }
88
+ return filterColumns(cols, props.filterText || "", props.hiddenColumns);
89
+ });
75
90
  const updateColumns = (next) => {
76
91
  innerColumns.value = next;
77
92
  emit("update:columns", next);
@@ -321,6 +336,7 @@ var TaskBoard = defineComponent({
321
336
  const isDropTarget = dragState.value?.type === "card" && dropTargetColumnId.value === column.id;
322
337
  const isColDragging = dragState.value?.type === "column" && dragState.value.id === column.id;
323
338
  const wipOver = isWipExceeded(column);
339
+ const cardCount = props.showCardCount ? getColumnCardCount(column) : null;
324
340
  const colClasses = classNames(
325
341
  taskBoardColumnClasses,
326
342
  isDropTarget && taskBoardColumnDropTargetClasses,
@@ -329,7 +345,8 @@ var TaskBoard = defineComponent({
329
345
  const headerContent = slots["column-header"] ? slots["column-header"]({ column }) : [
330
346
  h("span", { class: wipOver ? taskBoardWipExceededClasses : void 0 }, [
331
347
  column.title,
332
- column.wipLimit != null ? h(
348
+ // When showCardCount is enabled, use the compact badge style
349
+ props.showCardCount && cardCount ? null : column.wipLimit != null ? h(
333
350
  "span",
334
351
  {
335
352
  class: "ml-2 text-xs font-normal opacity-70",
@@ -344,6 +361,17 @@ var TaskBoard = defineComponent({
344
361
  String(column.cards.length)
345
362
  )
346
363
  ]),
364
+ // Card count badge (Kanban-style)
365
+ props.showCardCount && cardCount ? h(
366
+ "span",
367
+ {
368
+ class: classNames(
369
+ kanbanCardCountClasses,
370
+ wipOver && taskBoardWipExceededClasses
371
+ )
372
+ },
373
+ cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
374
+ ) : null,
347
375
  column.description ? h(
348
376
  "span",
349
377
  {
@@ -394,15 +422,24 @@ var TaskBoard = defineComponent({
394
422
  },
395
423
  cards
396
424
  );
397
- const footer = slots["column-footer"] ? slots["column-footer"]({ column }) : props.onCardAdd ? h(
425
+ const showAddCard = props.allowAddCard || props.onCardAdd;
426
+ const footer = slots["column-footer"] ? slots["column-footer"]({ column }) : showAddCard ? h(
398
427
  "div",
399
428
  {
400
429
  class: classNames(
401
430
  "border-t border-[var(--tiger-border,#e5e7eb)]",
402
431
  taskBoardAddCardClasses
403
432
  ),
433
+ role: "button",
434
+ tabindex: 0,
404
435
  onClick: () => {
405
436
  emit("card-add", column.id);
437
+ },
438
+ onKeydown: (e) => {
439
+ if (e.key === "Enter" || e.key === " ") {
440
+ e.preventDefault();
441
+ emit("card-add", column.id);
442
+ }
406
443
  }
407
444
  },
408
445
  [h("span", null, "+"), h("span", null, resolveLocaleText(labels.value.addCardText))]
@@ -420,19 +457,43 @@ var TaskBoard = defineComponent({
420
457
  [header, body, footer]
421
458
  );
422
459
  };
423
- return () => h(
424
- "div",
425
- {
426
- ...attrs,
427
- ref: boardRef,
428
- class: wrapperClasses.value,
429
- style: wrapperStyle.value,
430
- role: "region",
431
- "aria-label": resolveLocaleText(labels.value.boardAriaLabel),
432
- "data-tiger-task-board": ""
433
- },
434
- currentColumns.value.map((col, i) => renderColumnNode(col, i))
435
- );
460
+ return () => {
461
+ const children = visibleColumns.value.map((col, i) => renderColumnNode(col, i));
462
+ if (props.allowAddColumn) {
463
+ children.push(
464
+ h(
465
+ "div",
466
+ {
467
+ key: "__add-column",
468
+ class: kanbanAddColumnClasses,
469
+ role: "button",
470
+ tabindex: 0,
471
+ onClick: () => emit("column-add"),
472
+ onKeydown: (e) => {
473
+ if (e.key === "Enter" || e.key === " ") {
474
+ e.preventDefault();
475
+ emit("column-add");
476
+ }
477
+ }
478
+ },
479
+ "+ " + resolveLocaleText(labels.value.addCardText)
480
+ )
481
+ );
482
+ }
483
+ return h(
484
+ "div",
485
+ {
486
+ ...attrs,
487
+ ref: boardRef,
488
+ class: wrapperClasses.value,
489
+ style: wrapperStyle.value,
490
+ role: "region",
491
+ "aria-label": resolveLocaleText(labels.value.boardAriaLabel),
492
+ "data-tiger-task-board": ""
493
+ },
494
+ children
495
+ );
496
+ };
436
497
  }
437
498
  });
438
499
  var TaskBoard_default = TaskBoard;
@@ -48,7 +48,7 @@ var HeatmapChart = vue.defineComponent({
48
48
  handleMouseMove,
49
49
  handleMouseLeave,
50
50
  handleClick,
51
- wrapperClasses
51
+ wrapperClasses: _wrapperClasses
52
52
  } = chunkFLAJKB2O_js.useChartInteraction({
53
53
  hoverable: vue.computed(() => props.hoverable),
54
54
  hoveredIndexProp: () => props.hoveredIndex,
@@ -66,7 +66,7 @@ var Transfer = defineComponent({
66
66
  const targetSelectedKeys = ref(/* @__PURE__ */ new Set());
67
67
  const sourceSearch = ref("");
68
68
  const targetSearch = ref("");
69
- const { sourceItems, targetItems } = computed(
69
+ const { sourceItems: _sourceItems, targetItems: _targetItems } = computed(
70
70
  () => splitTransferData(props.dataSource, props.modelValue)
71
71
  ).value;
72
72
  const computedData = computed(() => splitTransferData(props.dataSource, props.modelValue));
@@ -40,6 +40,14 @@ var TaskBoard = vue.defineComponent({
40
40
  type: Function,
41
41
  default: void 0
42
42
  },
43
+ filterText: { type: String, default: "" },
44
+ hiddenColumns: {
45
+ type: Array,
46
+ default: () => []
47
+ },
48
+ showCardCount: { type: Boolean, default: false },
49
+ allowAddCard: { type: Boolean, default: false },
50
+ allowAddColumn: { type: Boolean, default: false },
43
51
  locale: {
44
52
  type: Object,
45
53
  default: void 0
@@ -53,7 +61,7 @@ var TaskBoard = vue.defineComponent({
53
61
  default: void 0
54
62
  }
55
63
  },
56
- emits: ["card-move", "column-move", "card-add", "update:columns"],
64
+ emits: ["card-move", "column-move", "card-add", "column-add", "update:columns"],
57
65
  setup(props, { slots, attrs, emit }) {
58
66
  const config = chunkV4PBWEAU_js.useTigerConfig();
59
67
  const mergedLocale = vue.computed(() => tigercatCore.mergeTigerLocale(config.value.locale, props.locale));
@@ -74,6 +82,13 @@ var TaskBoard = vue.defineComponent({
74
82
  }
75
83
  );
76
84
  const currentColumns = vue.computed(() => props.columns ?? innerColumns.value);
85
+ const visibleColumns = vue.computed(() => {
86
+ const cols = currentColumns.value;
87
+ if (!props.filterText && (!props.hiddenColumns || props.hiddenColumns.length === 0)) {
88
+ return cols;
89
+ }
90
+ return tigercatCore.filterColumns(cols, props.filterText || "", props.hiddenColumns);
91
+ });
77
92
  const updateColumns = (next) => {
78
93
  innerColumns.value = next;
79
94
  emit("update:columns", next);
@@ -323,6 +338,7 @@ var TaskBoard = vue.defineComponent({
323
338
  const isDropTarget = dragState.value?.type === "card" && dropTargetColumnId.value === column.id;
324
339
  const isColDragging = dragState.value?.type === "column" && dragState.value.id === column.id;
325
340
  const wipOver = tigercatCore.isWipExceeded(column);
341
+ const cardCount = props.showCardCount ? tigercatCore.getColumnCardCount(column) : null;
326
342
  const colClasses = tigercatCore.classNames(
327
343
  tigercatCore.taskBoardColumnClasses,
328
344
  isDropTarget && tigercatCore.taskBoardColumnDropTargetClasses,
@@ -331,7 +347,8 @@ var TaskBoard = vue.defineComponent({
331
347
  const headerContent = slots["column-header"] ? slots["column-header"]({ column }) : [
332
348
  vue.h("span", { class: wipOver ? tigercatCore.taskBoardWipExceededClasses : void 0 }, [
333
349
  column.title,
334
- column.wipLimit != null ? vue.h(
350
+ // When showCardCount is enabled, use the compact badge style
351
+ props.showCardCount && cardCount ? null : column.wipLimit != null ? vue.h(
335
352
  "span",
336
353
  {
337
354
  class: "ml-2 text-xs font-normal opacity-70",
@@ -346,6 +363,17 @@ var TaskBoard = vue.defineComponent({
346
363
  String(column.cards.length)
347
364
  )
348
365
  ]),
366
+ // Card count badge (Kanban-style)
367
+ props.showCardCount && cardCount ? vue.h(
368
+ "span",
369
+ {
370
+ class: tigercatCore.classNames(
371
+ tigercatCore.kanbanCardCountClasses,
372
+ wipOver && tigercatCore.taskBoardWipExceededClasses
373
+ )
374
+ },
375
+ cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
376
+ ) : null,
349
377
  column.description ? vue.h(
350
378
  "span",
351
379
  {
@@ -396,15 +424,24 @@ var TaskBoard = vue.defineComponent({
396
424
  },
397
425
  cards
398
426
  );
399
- const footer = slots["column-footer"] ? slots["column-footer"]({ column }) : props.onCardAdd ? vue.h(
427
+ const showAddCard = props.allowAddCard || props.onCardAdd;
428
+ const footer = slots["column-footer"] ? slots["column-footer"]({ column }) : showAddCard ? vue.h(
400
429
  "div",
401
430
  {
402
431
  class: tigercatCore.classNames(
403
432
  "border-t border-[var(--tiger-border,#e5e7eb)]",
404
433
  tigercatCore.taskBoardAddCardClasses
405
434
  ),
435
+ role: "button",
436
+ tabindex: 0,
406
437
  onClick: () => {
407
438
  emit("card-add", column.id);
439
+ },
440
+ onKeydown: (e) => {
441
+ if (e.key === "Enter" || e.key === " ") {
442
+ e.preventDefault();
443
+ emit("card-add", column.id);
444
+ }
408
445
  }
409
446
  },
410
447
  [vue.h("span", null, "+"), vue.h("span", null, tigercatCore.resolveLocaleText(labels.value.addCardText))]
@@ -422,19 +459,43 @@ var TaskBoard = vue.defineComponent({
422
459
  [header, body, footer]
423
460
  );
424
461
  };
425
- return () => vue.h(
426
- "div",
427
- {
428
- ...attrs,
429
- ref: boardRef,
430
- class: wrapperClasses.value,
431
- style: wrapperStyle.value,
432
- role: "region",
433
- "aria-label": tigercatCore.resolveLocaleText(labels.value.boardAriaLabel),
434
- "data-tiger-task-board": ""
435
- },
436
- currentColumns.value.map((col, i) => renderColumnNode(col, i))
437
- );
462
+ return () => {
463
+ const children = visibleColumns.value.map((col, i) => renderColumnNode(col, i));
464
+ if (props.allowAddColumn) {
465
+ children.push(
466
+ vue.h(
467
+ "div",
468
+ {
469
+ key: "__add-column",
470
+ class: tigercatCore.kanbanAddColumnClasses,
471
+ role: "button",
472
+ tabindex: 0,
473
+ onClick: () => emit("column-add"),
474
+ onKeydown: (e) => {
475
+ if (e.key === "Enter" || e.key === " ") {
476
+ e.preventDefault();
477
+ emit("column-add");
478
+ }
479
+ }
480
+ },
481
+ "+ " + tigercatCore.resolveLocaleText(labels.value.addCardText)
482
+ )
483
+ );
484
+ }
485
+ return vue.h(
486
+ "div",
487
+ {
488
+ ...attrs,
489
+ ref: boardRef,
490
+ class: wrapperClasses.value,
491
+ style: wrapperStyle.value,
492
+ role: "region",
493
+ "aria-label": tigercatCore.resolveLocaleText(labels.value.boardAriaLabel),
494
+ "data-tiger-task-board": ""
495
+ },
496
+ children
497
+ );
498
+ };
438
499
  }
439
500
  });
440
501
  var TaskBoard_default = TaskBoard;
@@ -0,0 +1,87 @@
1
+ import { TaskBoard } from './chunk-J7VTGSHX.mjs';
2
+ import { defineComponent, h } from 'vue';
3
+
4
+ var Kanban = defineComponent({
5
+ name: "TigerKanban",
6
+ inheritAttrs: false,
7
+ props: {
8
+ columns: {
9
+ type: Array,
10
+ default: void 0
11
+ },
12
+ defaultColumns: {
13
+ type: Array,
14
+ default: () => []
15
+ },
16
+ draggable: { type: Boolean, default: true },
17
+ columnDraggable: { type: Boolean, default: true },
18
+ enforceWipLimit: { type: Boolean, default: false },
19
+ beforeCardMove: {
20
+ type: Function,
21
+ default: void 0
22
+ },
23
+ beforeColumnMove: {
24
+ type: Function,
25
+ default: void 0
26
+ },
27
+ onCardAdd: {
28
+ type: Function,
29
+ default: void 0
30
+ },
31
+ filterText: { type: String, default: "" },
32
+ hiddenColumns: {
33
+ type: Array,
34
+ default: () => []
35
+ },
36
+ showCardCount: { type: Boolean, default: true },
37
+ allowAddCard: { type: Boolean, default: true },
38
+ allowAddColumn: { type: Boolean, default: false },
39
+ locale: {
40
+ type: Object,
41
+ default: void 0
42
+ },
43
+ className: { type: String, default: void 0 },
44
+ style: {
45
+ type: Object,
46
+ default: void 0
47
+ }
48
+ },
49
+ emits: ["card-move", "column-move", "update:columns", "card-add", "column-add"],
50
+ setup(props, { emit, attrs, slots }) {
51
+ const handleCardAdd = (colId) => {
52
+ props.onCardAdd?.(colId);
53
+ emit("card-add", colId);
54
+ };
55
+ return () => h(
56
+ TaskBoard,
57
+ {
58
+ ...attrs,
59
+ columns: props.columns,
60
+ defaultColumns: props.defaultColumns,
61
+ draggable: props.draggable,
62
+ columnDraggable: props.columnDraggable,
63
+ enforceWipLimit: props.enforceWipLimit,
64
+ beforeCardMove: props.beforeCardMove,
65
+ beforeColumnMove: props.beforeColumnMove,
66
+ // Only set onCardAdd when needed — its presence affects button visibility
67
+ onCardAdd: props.allowAddCard || props.onCardAdd ? handleCardAdd : void 0,
68
+ filterText: props.filterText,
69
+ hiddenColumns: props.hiddenColumns,
70
+ showCardCount: props.showCardCount,
71
+ allowAddCard: props.allowAddCard,
72
+ allowAddColumn: props.allowAddColumn,
73
+ locale: props.locale,
74
+ className: props.className,
75
+ style: props.style,
76
+ "onCard-move": (e) => emit("card-move", e),
77
+ "onColumn-move": (e) => emit("column-move", e),
78
+ "onUpdate:columns": (cols) => emit("update:columns", cols),
79
+ "onColumn-add": () => emit("column-add")
80
+ },
81
+ slots
82
+ );
83
+ }
84
+ });
85
+ var Kanban_default = Kanban;
86
+
87
+ export { Kanban, Kanban_default };
@@ -269,8 +269,10 @@ var Dropdown = vue.defineComponent({
269
269
  },
270
270
  [
271
271
  vue.h(
272
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
272
273
  menuNode.type,
273
274
  { ...menuNode.props || {}, id: menuId },
275
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
274
276
  menuNode.children
275
277
  )
276
278
  ]
@@ -1,4 +1,4 @@
1
- import { DropdownContextKey } from './chunk-A64AWAOW.mjs';
1
+ import { DropdownContextKey } from './chunk-3ICMBQPM.mjs';
2
2
  import { defineComponent, inject, computed, h } from 'vue';
3
3
  import { classNames, getDropdownItemClasses, coerceClassValue, mergeStyleValues } from '@expcat/tigercat-core';
4
4
 
@@ -68,7 +68,7 @@ var Transfer = vue.defineComponent({
68
68
  const targetSelectedKeys = vue.ref(/* @__PURE__ */ new Set());
69
69
  const sourceSearch = vue.ref("");
70
70
  const targetSearch = vue.ref("");
71
- const { sourceItems, targetItems } = vue.computed(
71
+ const { sourceItems: _sourceItems, targetItems: _targetItems } = vue.computed(
72
72
  () => tigercatCore.splitTransferData(props.dataSource, props.modelValue)
73
73
  ).value;
74
74
  const computedData = vue.computed(() => tigercatCore.splitTransferData(props.dataSource, props.modelValue));
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ var chunkO2Q4UYDA_js = require('./chunk-O2Q4UYDA.js');
4
+ var vue = require('vue');
5
+
6
+ var Kanban = vue.defineComponent({
7
+ name: "TigerKanban",
8
+ inheritAttrs: false,
9
+ props: {
10
+ columns: {
11
+ type: Array,
12
+ default: void 0
13
+ },
14
+ defaultColumns: {
15
+ type: Array,
16
+ default: () => []
17
+ },
18
+ draggable: { type: Boolean, default: true },
19
+ columnDraggable: { type: Boolean, default: true },
20
+ enforceWipLimit: { type: Boolean, default: false },
21
+ beforeCardMove: {
22
+ type: Function,
23
+ default: void 0
24
+ },
25
+ beforeColumnMove: {
26
+ type: Function,
27
+ default: void 0
28
+ },
29
+ onCardAdd: {
30
+ type: Function,
31
+ default: void 0
32
+ },
33
+ filterText: { type: String, default: "" },
34
+ hiddenColumns: {
35
+ type: Array,
36
+ default: () => []
37
+ },
38
+ showCardCount: { type: Boolean, default: true },
39
+ allowAddCard: { type: Boolean, default: true },
40
+ allowAddColumn: { type: Boolean, default: false },
41
+ locale: {
42
+ type: Object,
43
+ default: void 0
44
+ },
45
+ className: { type: String, default: void 0 },
46
+ style: {
47
+ type: Object,
48
+ default: void 0
49
+ }
50
+ },
51
+ emits: ["card-move", "column-move", "update:columns", "card-add", "column-add"],
52
+ setup(props, { emit, attrs, slots }) {
53
+ const handleCardAdd = (colId) => {
54
+ props.onCardAdd?.(colId);
55
+ emit("card-add", colId);
56
+ };
57
+ return () => vue.h(
58
+ chunkO2Q4UYDA_js.TaskBoard,
59
+ {
60
+ ...attrs,
61
+ columns: props.columns,
62
+ defaultColumns: props.defaultColumns,
63
+ draggable: props.draggable,
64
+ columnDraggable: props.columnDraggable,
65
+ enforceWipLimit: props.enforceWipLimit,
66
+ beforeCardMove: props.beforeCardMove,
67
+ beforeColumnMove: props.beforeColumnMove,
68
+ // Only set onCardAdd when needed — its presence affects button visibility
69
+ onCardAdd: props.allowAddCard || props.onCardAdd ? handleCardAdd : void 0,
70
+ filterText: props.filterText,
71
+ hiddenColumns: props.hiddenColumns,
72
+ showCardCount: props.showCardCount,
73
+ allowAddCard: props.allowAddCard,
74
+ allowAddColumn: props.allowAddColumn,
75
+ locale: props.locale,
76
+ className: props.className,
77
+ style: props.style,
78
+ "onCard-move": (e) => emit("card-move", e),
79
+ "onColumn-move": (e) => emit("column-move", e),
80
+ "onUpdate:columns": (cols) => emit("update:columns", cols),
81
+ "onColumn-add": () => emit("column-add")
82
+ },
83
+ slots
84
+ );
85
+ }
86
+ });
87
+ var Kanban_default = Kanban;
88
+
89
+ exports.Kanban = Kanban;
90
+ exports.Kanban_default = Kanban_default;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkUG6XPJ2N_js = require('./chunk-UG6XPJ2N.js');
3
+ var chunkTT5LWQIZ_js = require('./chunk-TT5LWQIZ.js');
4
4
  var chunkPBWSBNDS_js = require('./chunk-PBWSBNDS.js');
5
5
  var chunkAGAJJYP2_js = require('./chunk-AGAJJYP2.js');
6
6
  var chunkBYNMOQBB_js = require('./chunk-BYNMOQBB.js');
@@ -106,13 +106,13 @@ var DataTableWithToolbar = vue.defineComponent({
106
106
  }
107
107
  },
108
108
  emits: {
109
- "search-change": (value) => true,
110
- search: (value) => true,
111
- "filters-change": (filters) => true,
112
- "bulk-action": (action, keys) => true,
113
- "selection-change": (keys) => true,
114
- "page-change": (current, pageSize) => true,
115
- "page-size-change": (current, pageSize) => true
109
+ "search-change": (_value) => true,
110
+ search: (_value) => true,
111
+ "filters-change": (_filters) => true,
112
+ "bulk-action": (_action, _keys) => true,
113
+ "selection-change": (_keys) => true,
114
+ "page-change": (_current, _pageSize) => true,
115
+ "page-size-change": (_current, _pageSize) => true
116
116
  },
117
117
  setup(props, { attrs, emit }) {
118
118
  const internalSearch = vue.ref(props.toolbar?.defaultSearchValue ?? "");
@@ -338,7 +338,8 @@ var DataTableWithToolbar = vue.defineComponent({
338
338
  },
339
339
  [
340
340
  renderToolbar(),
341
- vue.h(chunkUG6XPJ2N_js.Table, tableProps),
341
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
342
+ vue.h(chunkTT5LWQIZ_js.Table, tableProps),
342
343
  showPagination ? vue.h(chunkAGAJJYP2_js.Pagination, {
343
344
  ...props.pagination,
344
345
  onChange: (current, pageSize) => emit("page-change", current, pageSize),