@expcat/tigercat-react 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 (73) hide show
  1. package/dist/{chunk-L6WOLPV7.mjs → chunk-32PAZTVF.mjs} +2 -2
  2. package/dist/{chunk-ZCBKAOAX.mjs → chunk-34VGG7AK.mjs} +1 -1
  3. package/dist/{chunk-SULHTYSV.js → chunk-4Q4GADHJ.js} +1 -1
  4. package/dist/{chunk-5CQEXJF2.js → chunk-5MALB34H.js} +2 -2
  5. package/dist/chunk-7BVXG3Z5.mjs +22 -0
  6. package/dist/{chunk-DR2DFFNQ.js → chunk-AHF6JE43.js} +1 -1
  7. package/dist/{chunk-XODGTE2Y.js → chunk-AUW7DCXL.js} +1 -1
  8. package/dist/{chunk-5BBZBI2V.mjs → chunk-AYDTXJOR.mjs} +1 -1
  9. package/dist/{chunk-6SDLSIAO.mjs → chunk-B3MNIAM5.mjs} +1 -1
  10. package/dist/{chunk-EHU3J4B2.mjs → chunk-DBNAL6G6.mjs} +100 -47
  11. package/dist/{chunk-2H43QM4B.mjs → chunk-EBLAM3YP.mjs} +1 -1
  12. package/dist/{chunk-QNFSZYTZ.js → chunk-FHE4D56E.js} +1 -1
  13. package/dist/{chunk-HADBETZG.js → chunk-FNK4ZATV.js} +1 -1
  14. package/dist/{chunk-WGPUGPYE.js → chunk-H3JAEEEE.js} +99 -46
  15. package/dist/{chunk-VUD4BU4K.mjs → chunk-H3NLKNR4.mjs} +1 -1
  16. package/dist/{chunk-VWMVWZMD.js → chunk-HU3VDVH6.js} +1 -2
  17. package/dist/{chunk-H5CAIMVL.js → chunk-I3CDTF4U.js} +1 -1
  18. package/dist/{chunk-SJ5GT7Y4.mjs → chunk-J3N24I7A.mjs} +1 -1
  19. package/dist/{chunk-SVASEF6K.js → chunk-JB33A4S6.js} +2 -2
  20. package/dist/{chunk-FT6TEMUF.mjs → chunk-LPNHBHS2.mjs} +1 -1
  21. package/dist/{chunk-RU6YS4LZ.mjs → chunk-MB7CJ32C.mjs} +1 -1
  22. package/dist/chunk-NG3GA5LF.js +25 -0
  23. package/dist/{chunk-QVZTZHCJ.mjs → chunk-PNSWIJG3.mjs} +16 -7
  24. package/dist/{chunk-333325LH.mjs → chunk-QYLNPHKG.mjs} +1 -1
  25. package/dist/{chunk-JR7L67Q3.mjs → chunk-R3QWJ7GT.mjs} +1 -1
  26. package/dist/{chunk-45H3JEI3.js → chunk-RFPXIDAK.js} +16 -7
  27. package/dist/{chunk-SKJXVYYF.js → chunk-RWZIWKZR.js} +2 -2
  28. package/dist/{chunk-IWTY32AW.mjs → chunk-SWF7GJYT.mjs} +1 -2
  29. package/dist/{chunk-J23B66DJ.js → chunk-XO6NSGV3.js} +1 -1
  30. package/dist/{chunk-FRHGRKKT.js → chunk-XR6B2URW.js} +1 -1
  31. package/dist/{chunk-T6KZ73VM.js → chunk-YHFBPSMF.js} +1 -1
  32. package/dist/{chunk-AYDPWKSW.mjs → chunk-YJ4W6DMX.mjs} +2 -2
  33. package/dist/components/ChatWindow.js +3 -3
  34. package/dist/components/ChatWindow.mjs +1 -1
  35. package/dist/components/ColorPicker.js +2 -2
  36. package/dist/components/ColorPicker.mjs +1 -1
  37. package/dist/components/CropUpload.js +2 -2
  38. package/dist/components/CropUpload.mjs +1 -1
  39. package/dist/components/DataTableWithToolbar.js +4 -4
  40. package/dist/components/DataTableWithToolbar.mjs +2 -2
  41. package/dist/components/DonutChart.js +3 -3
  42. package/dist/components/DonutChart.mjs +1 -1
  43. package/dist/components/FloatButton.js +3 -3
  44. package/dist/components/FloatButton.mjs +1 -1
  45. package/dist/components/FunnelChart.js +2 -2
  46. package/dist/components/FunnelChart.mjs +1 -1
  47. package/dist/components/InputGroup.js +5 -5
  48. package/dist/components/InputGroup.mjs +1 -1
  49. package/dist/components/Kanban.d.mts +3 -2
  50. package/dist/components/Kanban.d.ts +3 -2
  51. package/dist/components/Kanban.js +5 -4
  52. package/dist/components/Kanban.mjs +3 -2
  53. package/dist/components/NotificationCenter.js +3 -3
  54. package/dist/components/NotificationCenter.mjs +1 -1
  55. package/dist/components/QRCode.js +3 -3
  56. package/dist/components/QRCode.mjs +1 -1
  57. package/dist/components/Splitter.js +3 -3
  58. package/dist/components/Splitter.mjs +1 -1
  59. package/dist/components/SunburstChart.js +2 -2
  60. package/dist/components/SunburstChart.mjs +1 -1
  61. package/dist/components/Table.d.mts +1 -1
  62. package/dist/components/Table.d.ts +1 -1
  63. package/dist/components/Table.js +2 -2
  64. package/dist/components/Table.mjs +1 -1
  65. package/dist/components/TaskBoard.js +3 -3
  66. package/dist/components/TaskBoard.mjs +1 -1
  67. package/dist/components/TreeMapChart.js +2 -2
  68. package/dist/components/TreeMapChart.mjs +1 -1
  69. package/dist/index.js +37 -37
  70. package/dist/index.mjs +16 -16
  71. package/package.json +2 -2
  72. package/dist/chunk-24RUEJWB.js +0 -293
  73. package/dist/chunk-YXWRSEP5.mjs +0 -286
@@ -7,8 +7,8 @@ var ColorPicker = ({
7
7
  value = "#2563eb",
8
8
  disabled = false,
9
9
  size = "md",
10
- showAlpha = false,
11
- format = "hex",
10
+ showAlpha: _showAlpha = false,
11
+ format: _format = "hex",
12
12
  presets,
13
13
  className,
14
14
  onChange
@@ -22,7 +22,7 @@ var InputGroup = ({
22
22
  return /* @__PURE__ */ jsx(InputGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx("div", { ...rest, className: groupClasses, role: "group", children }) });
23
23
  };
24
24
  var InputGroupAddon = ({
25
- addonType = "text",
25
+ addonType: _addonType = "text",
26
26
  className,
27
27
  children,
28
28
  ...rest
@@ -21,7 +21,7 @@ var ChatWindow = ({
21
21
  inputAriaLabel,
22
22
  sendAriaLabel,
23
23
  statusText,
24
- statusVariant = "info",
24
+ statusVariant: _statusVariant = "info",
25
25
  showAvatar = true,
26
26
  showName = true,
27
27
  showTime = false,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkJ23B66DJ_js = require('./chunk-J23B66DJ.js');
3
+ var chunkXO6NSGV3_js = require('./chunk-XO6NSGV3.js');
4
4
  var chunkNZNSUKPT_js = require('./chunk-NZNSUKPT.js');
5
5
  var chunk3GW3UAKB_js = require('./chunk-3GW3UAKB.js');
6
6
  var chunkZYJTHGQW_js = require('./chunk-ZYJTHGQW.js');
@@ -187,7 +187,7 @@ var DataTableWithToolbar = ({
187
187
  const showPagination = pagination && typeof pagination === "object";
188
188
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: wrapperClasses, "data-tiger-data-table-with-toolbar": true, children: [
189
189
  renderToolbar(),
190
- /* @__PURE__ */ jsxRuntime.jsx(chunkJ23B66DJ_js.Table, { ...tableProps, pagination: false, className: tableClassName }),
190
+ /* @__PURE__ */ jsxRuntime.jsx(chunkXO6NSGV3_js.Table, { ...tableProps, pagination: false, className: tableClassName }),
191
191
  showPagination ? /* @__PURE__ */ jsxRuntime.jsx(chunk3GW3UAKB_js.Pagination, { ...pagination, onChange: onPageChange, onPageSizeChange }) : null
192
192
  ] });
193
193
  };
@@ -0,0 +1,22 @@
1
+ import { TaskBoard } from './chunk-DBNAL6G6.mjs';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ var Kanban = ({
5
+ showCardCount = true,
6
+ allowAddCard = true,
7
+ allowAddColumn = false,
8
+ ...props
9
+ }) => {
10
+ return /* @__PURE__ */ jsx(
11
+ TaskBoard,
12
+ {
13
+ showCardCount,
14
+ allowAddCard,
15
+ allowAddColumn,
16
+ ...props
17
+ }
18
+ );
19
+ };
20
+ var Kanban_default = Kanban;
21
+
22
+ export { Kanban, Kanban_default };
@@ -13,7 +13,7 @@ var CropUpload = ({
13
13
  maxSize,
14
14
  cropperProps,
15
15
  modalTitle = "\u88C1\u526A\u56FE\u7247",
16
- modalWidth = 520,
16
+ modalWidth: _modalWidth = 520,
17
17
  className,
18
18
  children,
19
19
  onCropComplete,
@@ -10,7 +10,7 @@ var QRCode = ({
10
10
  size = 128,
11
11
  color = "#000000",
12
12
  bgColor = "#ffffff",
13
- level = "M",
13
+ level: _level = "M",
14
14
  status = "active",
15
15
  onRefresh,
16
16
  className
@@ -11,7 +11,7 @@ var CropUpload = ({
11
11
  maxSize,
12
12
  cropperProps,
13
13
  modalTitle = "\u88C1\u526A\u56FE\u7247",
14
- modalWidth = 520,
14
+ modalWidth: _modalWidth = 520,
15
15
  className,
16
16
  children,
17
17
  onCropComplete,
@@ -1,4 +1,4 @@
1
- import { Table } from './chunk-RU6YS4LZ.mjs';
1
+ import { Table } from './chunk-MB7CJ32C.mjs';
2
2
  import { Select } from './chunk-HZ5Z5Y2J.mjs';
3
3
  import { Pagination } from './chunk-NZLOLMT2.mjs';
4
4
  import { Input } from './chunk-WNLUUD5N.mjs';
@@ -1,6 +1,6 @@
1
1
  import { useTigerConfig } from './chunk-CRSMECWE.mjs';
2
2
  import React, { useMemo, useState, useEffect, useRef, useCallback } from 'react';
3
- import { classNames, taskBoardCardClasses, taskBoardCardDraggingClasses, isWipExceeded, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardDropIndicatorClasses, resolveLocaleText, taskBoardEmptyClasses, taskBoardColumnHeaderClasses, taskBoardWipExceededClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, mergeTigerLocale, getTaskBoardLabels, createTouchDragTracker, moveCard, reorderColumns, setDragData, createCardDragData, getDropIndex, parseDragData, createColumnDragData, getColumnDropIndex, findColumnFromPoint, taskBoardBaseClasses } from '@expcat/tigercat-core';
3
+ import { classNames, taskBoardCardClasses, taskBoardCardDraggingClasses, isWipExceeded, getColumnCardCount, taskBoardColumnClasses, taskBoardColumnDropTargetClasses, taskBoardColumnDraggingClasses, taskBoardDropIndicatorClasses, resolveLocaleText, taskBoardEmptyClasses, taskBoardColumnHeaderClasses, taskBoardWipExceededClasses, kanbanCardCountClasses, taskBoardColumnBodyClasses, taskBoardAddCardClasses, mergeTigerLocale, getTaskBoardLabels, filterColumns, createTouchDragTracker, moveCard, reorderColumns, setDragData, createCardDragData, getDropIndex, parseDragData, createColumnDragData, getColumnDropIndex, findColumnFromPoint, taskBoardBaseClasses, kanbanAddColumnClasses } from '@expcat/tigercat-core';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
 
6
6
  var CardItem = React.memo(
@@ -83,9 +83,12 @@ var ColumnItem = React.memo(
83
83
  onColumnTouchEnd,
84
84
  onCardKeyDown,
85
85
  dragStateId,
86
- kbDragStateId
86
+ kbDragStateId,
87
+ showCardCount,
88
+ allowAddCard
87
89
  }) => {
88
90
  const wipOver = isWipExceeded(column);
91
+ const cardCount = showCardCount ? getColumnCardCount(column) : null;
89
92
  const colClasses = classNames(
90
93
  taskBoardColumnClasses,
91
94
  isDropTarget && taskBoardColumnDropTargetClasses,
@@ -153,7 +156,7 @@ var ColumnItem = React.memo(
153
156
  children: renderColumnHeader ? renderColumnHeader(column) : /* @__PURE__ */ jsxs(Fragment, { children: [
154
157
  /* @__PURE__ */ jsxs("span", { className: wipOver ? taskBoardWipExceededClasses : void 0, children: [
155
158
  column.title,
156
- column.wipLimit != null ? /* @__PURE__ */ jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
159
+ showCardCount && cardCount ? null : column.wipLimit != null ? /* @__PURE__ */ jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
157
160
  "(",
158
161
  column.cards.length,
159
162
  "/",
@@ -161,6 +164,16 @@ var ColumnItem = React.memo(
161
164
  ")"
162
165
  ] }) : /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs font-normal opacity-50", children: column.cards.length })
163
166
  ] }),
167
+ showCardCount && cardCount && /* @__PURE__ */ jsx(
168
+ "span",
169
+ {
170
+ className: classNames(
171
+ kanbanCardCountClasses,
172
+ wipOver && taskBoardWipExceededClasses
173
+ ),
174
+ children: cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
175
+ }
176
+ ),
164
177
  column.description && /* @__PURE__ */ jsx("span", { className: "text-xs font-normal text-[var(--tiger-text-muted,#6b7280)] truncate max-w-[120px]", children: column.description })
165
178
  ] })
166
179
  }
@@ -177,14 +190,22 @@ var ColumnItem = React.memo(
177
190
  children: cardsContent
178
191
  }
179
192
  ),
180
- renderColumnFooter ? renderColumnFooter(column) : onCardAdd ? /* @__PURE__ */ jsxs(
193
+ renderColumnFooter ? renderColumnFooter(column) : onCardAdd || allowAddCard ? /* @__PURE__ */ jsxs(
181
194
  "div",
182
195
  {
183
196
  className: classNames(
184
197
  "border-t border-[var(--tiger-border,#e5e7eb)]",
185
198
  taskBoardAddCardClasses
186
199
  ),
187
- onClick: () => onCardAdd(column.id),
200
+ role: "button",
201
+ tabIndex: 0,
202
+ onClick: () => onCardAdd?.(column.id),
203
+ onKeyDown: (e) => {
204
+ if (e.key === "Enter" || e.key === " ") {
205
+ e.preventDefault();
206
+ onCardAdd?.(column.id);
207
+ }
208
+ },
188
209
  children: [
189
210
  /* @__PURE__ */ jsx("span", { children: "+" }),
190
211
  /* @__PURE__ */ jsx("span", { children: resolveLocaleText(labels.addCardText) })
@@ -195,7 +216,7 @@ var ColumnItem = React.memo(
195
216
  }
196
217
  );
197
218
  },
198
- (prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd
219
+ (prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd && prev.showCardCount === next.showCardCount && prev.allowAddCard === next.allowAddCard
199
220
  );
200
221
  ColumnItem.displayName = "TaskBoardColumnItem";
201
222
  var TaskBoard = ({
@@ -210,6 +231,12 @@ var TaskBoard = ({
210
231
  onColumnMove,
211
232
  onColumnsChange,
212
233
  onCardAdd,
234
+ filterText = "",
235
+ hiddenColumns,
236
+ showCardCount = false,
237
+ allowAddCard = false,
238
+ allowAddColumn = false,
239
+ onColumnAdd,
213
240
  renderCard: renderCardProp,
214
241
  renderColumnHeader,
215
242
  renderColumnFooter,
@@ -230,6 +257,12 @@ var TaskBoard = ({
230
257
  if (controlledColumns !== void 0) setInnerColumns(controlledColumns);
231
258
  }, [controlledColumns]);
232
259
  const currentColumns = controlledColumns ?? innerColumns;
260
+ const visibleColumns = useMemo(() => {
261
+ if (!filterText && (!hiddenColumns || hiddenColumns.length === 0)) {
262
+ return currentColumns;
263
+ }
264
+ return filterColumns(currentColumns, filterText, hiddenColumns);
265
+ }, [currentColumns, filterText, hiddenColumns]);
233
266
  const columnsRef = useRef(currentColumns);
234
267
  columnsRef.current = currentColumns;
235
268
  const updateColumns = useCallback(
@@ -477,7 +510,7 @@ var TaskBoard = ({
477
510
  const dragType = dragState?.type ?? null;
478
511
  const dragStateId = dragState?.type === "card" ? dragState.id : null;
479
512
  const kbDragStateId = kbDragState?.id ?? null;
480
- return /* @__PURE__ */ jsx(
513
+ return /* @__PURE__ */ jsxs(
481
514
  "div",
482
515
  {
483
516
  ref: boardRef,
@@ -487,47 +520,67 @@ var TaskBoard = ({
487
520
  "aria-label": resolveLocaleText(labels.boardAriaLabel),
488
521
  "data-tiger-task-board": "",
489
522
  ...rest,
490
- children: currentColumns.map((col, i) => {
491
- const isDropTarget = dragState?.type === "card" && dropTargetColumnId === col.id;
492
- const isColDragging = dragState?.type === "column" && dragState.id === col.id;
493
- return /* @__PURE__ */ jsx(
494
- ColumnItem,
523
+ children: [
524
+ visibleColumns.map((col, i) => {
525
+ const isDropTarget = dragState?.type === "card" && dropTargetColumnId === col.id;
526
+ const isColDragging = dragState?.type === "column" && dragState.id === col.id;
527
+ return /* @__PURE__ */ jsx(
528
+ ColumnItem,
529
+ {
530
+ column: col,
531
+ colIndex: i,
532
+ isDropTarget,
533
+ isColDragging,
534
+ dropIdx: isDropTarget ? dropIdx : -1,
535
+ draggable,
536
+ columnDraggable,
537
+ labels,
538
+ renderCardProp,
539
+ renderColumnHeader,
540
+ renderColumnFooter,
541
+ renderEmptyColumn,
542
+ onCardAdd,
543
+ dragType,
544
+ onCardDragStart: handleCardDragStart,
545
+ onCardDragOver: handleCardDragOver,
546
+ onCardDrop: handleCardDrop,
547
+ onDragEnd: handleDragEnd,
548
+ onDragLeave: handleDragLeave,
549
+ onColumnDragStart: handleColumnDragStart,
550
+ onColumnDragOver: handleColumnDragOver,
551
+ onColumnDrop: handleColumnDrop,
552
+ onCardTouchStart: handleTouchStart,
553
+ onCardTouchMove: handleTouchMove,
554
+ onCardTouchEnd: handleTouchEnd,
555
+ onColumnTouchStart: handleColumnTouchStart,
556
+ onColumnTouchMove: handleColumnTouchMove,
557
+ onColumnTouchEnd: handleColumnTouchEnd,
558
+ onCardKeyDown: handleCardKeyDown,
559
+ dragStateId,
560
+ kbDragStateId,
561
+ showCardCount,
562
+ allowAddCard
563
+ },
564
+ String(col.id)
565
+ );
566
+ }),
567
+ allowAddColumn && /* @__PURE__ */ jsx(
568
+ "div",
495
569
  {
496
- column: col,
497
- colIndex: i,
498
- isDropTarget,
499
- isColDragging,
500
- dropIdx: isDropTarget ? dropIdx : -1,
501
- draggable,
502
- columnDraggable,
503
- labels,
504
- renderCardProp,
505
- renderColumnHeader,
506
- renderColumnFooter,
507
- renderEmptyColumn,
508
- onCardAdd,
509
- dragType,
510
- onCardDragStart: handleCardDragStart,
511
- onCardDragOver: handleCardDragOver,
512
- onCardDrop: handleCardDrop,
513
- onDragEnd: handleDragEnd,
514
- onDragLeave: handleDragLeave,
515
- onColumnDragStart: handleColumnDragStart,
516
- onColumnDragOver: handleColumnDragOver,
517
- onColumnDrop: handleColumnDrop,
518
- onCardTouchStart: handleTouchStart,
519
- onCardTouchMove: handleTouchMove,
520
- onCardTouchEnd: handleTouchEnd,
521
- onColumnTouchStart: handleColumnTouchStart,
522
- onColumnTouchMove: handleColumnTouchMove,
523
- onColumnTouchEnd: handleColumnTouchEnd,
524
- onCardKeyDown: handleCardKeyDown,
525
- dragStateId,
526
- kbDragStateId
527
- },
528
- String(col.id)
529
- );
530
- })
570
+ className: kanbanAddColumnClasses,
571
+ role: "button",
572
+ tabIndex: 0,
573
+ onClick: () => onColumnAdd?.(),
574
+ onKeyDown: (e) => {
575
+ if (e.key === "Enter" || e.key === " ") {
576
+ e.preventDefault();
577
+ onColumnAdd?.();
578
+ }
579
+ },
580
+ children: "+ Add column"
581
+ }
582
+ )
583
+ ]
531
584
  }
532
585
  );
533
586
  };
@@ -55,7 +55,7 @@ var DonutChart = ({
55
55
  // DonutChart-specific
56
56
  centerValue,
57
57
  centerLabel,
58
- animated = false,
58
+ animated: _animated = false,
59
59
  // Callbacks
60
60
  onHoveredIndexChange,
61
61
  onSelectedIndexChange,
@@ -13,7 +13,7 @@ var FunnelChart = ({
13
13
  height = 300,
14
14
  padding = 24,
15
15
  data,
16
- direction = "vertical",
16
+ direction: _direction = "vertical",
17
17
  gap = 2,
18
18
  pinch = false,
19
19
  colors,
@@ -48,7 +48,7 @@ var FloatButton = ({
48
48
  );
49
49
  };
50
50
  var FloatButtonGroup = ({
51
- shape = "circle",
51
+ shape: _shape = "circle",
52
52
  trigger = "click",
53
53
  open: controlledOpen,
54
54
  triggerNode,
@@ -89,9 +89,12 @@ var ColumnItem = React__default.default.memo(
89
89
  onColumnTouchEnd,
90
90
  onCardKeyDown,
91
91
  dragStateId,
92
- kbDragStateId
92
+ kbDragStateId,
93
+ showCardCount,
94
+ allowAddCard
93
95
  }) => {
94
96
  const wipOver = tigercatCore.isWipExceeded(column);
97
+ const cardCount = showCardCount ? tigercatCore.getColumnCardCount(column) : null;
95
98
  const colClasses = tigercatCore.classNames(
96
99
  tigercatCore.taskBoardColumnClasses,
97
100
  isDropTarget && tigercatCore.taskBoardColumnDropTargetClasses,
@@ -159,7 +162,7 @@ var ColumnItem = React__default.default.memo(
159
162
  children: renderColumnHeader ? renderColumnHeader(column) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
160
163
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: wipOver ? tigercatCore.taskBoardWipExceededClasses : void 0, children: [
161
164
  column.title,
162
- column.wipLimit != null ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
165
+ showCardCount && cardCount ? null : column.wipLimit != null ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-2 text-xs font-normal opacity-70", title: wipTitle, children: [
163
166
  "(",
164
167
  column.cards.length,
165
168
  "/",
@@ -167,6 +170,16 @@ var ColumnItem = React__default.default.memo(
167
170
  ")"
168
171
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-xs font-normal opacity-50", children: column.cards.length })
169
172
  ] }),
173
+ showCardCount && cardCount && /* @__PURE__ */ jsxRuntime.jsx(
174
+ "span",
175
+ {
176
+ className: tigercatCore.classNames(
177
+ tigercatCore.kanbanCardCountClasses,
178
+ wipOver && tigercatCore.taskBoardWipExceededClasses
179
+ ),
180
+ children: cardCount.limit ? `${cardCount.count}/${cardCount.limit}` : `${cardCount.count}`
181
+ }
182
+ ),
170
183
  column.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-normal text-[var(--tiger-text-muted,#6b7280)] truncate max-w-[120px]", children: column.description })
171
184
  ] })
172
185
  }
@@ -183,14 +196,22 @@ var ColumnItem = React__default.default.memo(
183
196
  children: cardsContent
184
197
  }
185
198
  ),
186
- renderColumnFooter ? renderColumnFooter(column) : onCardAdd ? /* @__PURE__ */ jsxRuntime.jsxs(
199
+ renderColumnFooter ? renderColumnFooter(column) : onCardAdd || allowAddCard ? /* @__PURE__ */ jsxRuntime.jsxs(
187
200
  "div",
188
201
  {
189
202
  className: tigercatCore.classNames(
190
203
  "border-t border-[var(--tiger-border,#e5e7eb)]",
191
204
  tigercatCore.taskBoardAddCardClasses
192
205
  ),
193
- onClick: () => onCardAdd(column.id),
206
+ role: "button",
207
+ tabIndex: 0,
208
+ onClick: () => onCardAdd?.(column.id),
209
+ onKeyDown: (e) => {
210
+ if (e.key === "Enter" || e.key === " ") {
211
+ e.preventDefault();
212
+ onCardAdd?.(column.id);
213
+ }
214
+ },
194
215
  children: [
195
216
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "+" }),
196
217
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: tigercatCore.resolveLocaleText(labels.addCardText) })
@@ -201,7 +222,7 @@ var ColumnItem = React__default.default.memo(
201
222
  }
202
223
  );
203
224
  },
204
- (prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd
225
+ (prev, next) => prev.column === next.column && prev.colIndex === next.colIndex && prev.isDropTarget === next.isDropTarget && prev.isColDragging === next.isColDragging && prev.dropIdx === next.dropIdx && prev.draggable === next.draggable && prev.columnDraggable === next.columnDraggable && prev.dragType === next.dragType && prev.dragStateId === next.dragStateId && prev.kbDragStateId === next.kbDragStateId && prev.onCardAdd === next.onCardAdd && prev.showCardCount === next.showCardCount && prev.allowAddCard === next.allowAddCard
205
226
  );
206
227
  ColumnItem.displayName = "TaskBoardColumnItem";
207
228
  var TaskBoard = ({
@@ -216,6 +237,12 @@ var TaskBoard = ({
216
237
  onColumnMove,
217
238
  onColumnsChange,
218
239
  onCardAdd,
240
+ filterText = "",
241
+ hiddenColumns,
242
+ showCardCount = false,
243
+ allowAddCard = false,
244
+ allowAddColumn = false,
245
+ onColumnAdd,
219
246
  renderCard: renderCardProp,
220
247
  renderColumnHeader,
221
248
  renderColumnFooter,
@@ -236,6 +263,12 @@ var TaskBoard = ({
236
263
  if (controlledColumns !== void 0) setInnerColumns(controlledColumns);
237
264
  }, [controlledColumns]);
238
265
  const currentColumns = controlledColumns ?? innerColumns;
266
+ const visibleColumns = React.useMemo(() => {
267
+ if (!filterText && (!hiddenColumns || hiddenColumns.length === 0)) {
268
+ return currentColumns;
269
+ }
270
+ return tigercatCore.filterColumns(currentColumns, filterText, hiddenColumns);
271
+ }, [currentColumns, filterText, hiddenColumns]);
239
272
  const columnsRef = React.useRef(currentColumns);
240
273
  columnsRef.current = currentColumns;
241
274
  const updateColumns = React.useCallback(
@@ -483,7 +516,7 @@ var TaskBoard = ({
483
516
  const dragType = dragState?.type ?? null;
484
517
  const dragStateId = dragState?.type === "card" ? dragState.id : null;
485
518
  const kbDragStateId = kbDragState?.id ?? null;
486
- return /* @__PURE__ */ jsxRuntime.jsx(
519
+ return /* @__PURE__ */ jsxRuntime.jsxs(
487
520
  "div",
488
521
  {
489
522
  ref: boardRef,
@@ -493,47 +526,67 @@ var TaskBoard = ({
493
526
  "aria-label": tigercatCore.resolveLocaleText(labels.boardAriaLabel),
494
527
  "data-tiger-task-board": "",
495
528
  ...rest,
496
- children: currentColumns.map((col, i) => {
497
- const isDropTarget = dragState?.type === "card" && dropTargetColumnId === col.id;
498
- const isColDragging = dragState?.type === "column" && dragState.id === col.id;
499
- return /* @__PURE__ */ jsxRuntime.jsx(
500
- ColumnItem,
529
+ children: [
530
+ visibleColumns.map((col, i) => {
531
+ const isDropTarget = dragState?.type === "card" && dropTargetColumnId === col.id;
532
+ const isColDragging = dragState?.type === "column" && dragState.id === col.id;
533
+ return /* @__PURE__ */ jsxRuntime.jsx(
534
+ ColumnItem,
535
+ {
536
+ column: col,
537
+ colIndex: i,
538
+ isDropTarget,
539
+ isColDragging,
540
+ dropIdx: isDropTarget ? dropIdx : -1,
541
+ draggable,
542
+ columnDraggable,
543
+ labels,
544
+ renderCardProp,
545
+ renderColumnHeader,
546
+ renderColumnFooter,
547
+ renderEmptyColumn,
548
+ onCardAdd,
549
+ dragType,
550
+ onCardDragStart: handleCardDragStart,
551
+ onCardDragOver: handleCardDragOver,
552
+ onCardDrop: handleCardDrop,
553
+ onDragEnd: handleDragEnd,
554
+ onDragLeave: handleDragLeave,
555
+ onColumnDragStart: handleColumnDragStart,
556
+ onColumnDragOver: handleColumnDragOver,
557
+ onColumnDrop: handleColumnDrop,
558
+ onCardTouchStart: handleTouchStart,
559
+ onCardTouchMove: handleTouchMove,
560
+ onCardTouchEnd: handleTouchEnd,
561
+ onColumnTouchStart: handleColumnTouchStart,
562
+ onColumnTouchMove: handleColumnTouchMove,
563
+ onColumnTouchEnd: handleColumnTouchEnd,
564
+ onCardKeyDown: handleCardKeyDown,
565
+ dragStateId,
566
+ kbDragStateId,
567
+ showCardCount,
568
+ allowAddCard
569
+ },
570
+ String(col.id)
571
+ );
572
+ }),
573
+ allowAddColumn && /* @__PURE__ */ jsxRuntime.jsx(
574
+ "div",
501
575
  {
502
- column: col,
503
- colIndex: i,
504
- isDropTarget,
505
- isColDragging,
506
- dropIdx: isDropTarget ? dropIdx : -1,
507
- draggable,
508
- columnDraggable,
509
- labels,
510
- renderCardProp,
511
- renderColumnHeader,
512
- renderColumnFooter,
513
- renderEmptyColumn,
514
- onCardAdd,
515
- dragType,
516
- onCardDragStart: handleCardDragStart,
517
- onCardDragOver: handleCardDragOver,
518
- onCardDrop: handleCardDrop,
519
- onDragEnd: handleDragEnd,
520
- onDragLeave: handleDragLeave,
521
- onColumnDragStart: handleColumnDragStart,
522
- onColumnDragOver: handleColumnDragOver,
523
- onColumnDrop: handleColumnDrop,
524
- onCardTouchStart: handleTouchStart,
525
- onCardTouchMove: handleTouchMove,
526
- onCardTouchEnd: handleTouchEnd,
527
- onColumnTouchStart: handleColumnTouchStart,
528
- onColumnTouchMove: handleColumnTouchMove,
529
- onColumnTouchEnd: handleColumnTouchEnd,
530
- onCardKeyDown: handleCardKeyDown,
531
- dragStateId,
532
- kbDragStateId
533
- },
534
- String(col.id)
535
- );
536
- })
576
+ className: tigercatCore.kanbanAddColumnClasses,
577
+ role: "button",
578
+ tabIndex: 0,
579
+ onClick: () => onColumnAdd?.(),
580
+ onKeyDown: (e) => {
581
+ if (e.key === "Enter" || e.key === " ") {
582
+ e.preventDefault();
583
+ onColumnAdd?.();
584
+ }
585
+ },
586
+ children: "+ Add column"
587
+ }
588
+ )
589
+ ]
537
590
  }
538
591
  );
539
592
  };
@@ -26,7 +26,7 @@ var TreeMapChart = ({
26
26
  legendMarkerSize = 10,
27
27
  legendGap = 8,
28
28
  showTooltip = true,
29
- tooltipFormatter,
29
+ tooltipFormatter: _tooltipFormatter,
30
30
  title,
31
31
  desc,
32
32
  className,
@@ -100,7 +100,6 @@ var NotificationCenter = ({
100
100
  ...group,
101
101
  items: applyReadOverrides(group.items)
102
102
  })),
103
- // eslint-disable-next-line react-hooks/exhaustive-deps
104
103
  [resolvedGroups, readStateOverrides]
105
104
  );
106
105
  const effectiveCurrentGroup = react.useMemo(() => {
@@ -145,7 +144,7 @@ var NotificationCenter = ({
145
144
  }
146
145
  onMarkAllRead?.(currentGroupKey, effectiveCurrentGroupItems);
147
146
  };
148
- const renderItem = (item, index) => {
147
+ const renderItem = (item, _index) => {
149
148
  const isRead = Boolean(item.read);
150
149
  const timeText = item.time ? tigercatCore.formatActivityTime(item.time) : "";
151
150
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -24,7 +24,7 @@ var InputGroup = ({
24
24
  return /* @__PURE__ */ jsxRuntime.jsx(InputGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, className: groupClasses, role: "group", children }) });
25
25
  };
26
26
  var InputGroupAddon = ({
27
- addonType = "text",
27
+ addonType: _addonType = "text",
28
28
  className,
29
29
  children,
30
30
  ...rest
@@ -8,7 +8,7 @@ var QRCode = ({
8
8
  size = 128,
9
9
  color = "#000000",
10
10
  bgColor = "#ffffff",
11
- level = "M",
11
+ level: _level = "M",
12
12
  status = "active",
13
13
  onRefresh,
14
14
  className
@@ -9,8 +9,8 @@ var ColorPicker = ({
9
9
  value = "#2563eb",
10
10
  disabled = false,
11
11
  size = "md",
12
- showAlpha = false,
13
- format = "hex",
12
+ showAlpha: _showAlpha = false,
13
+ format: _format = "hex",
14
14
  presets,
15
15
  className,
16
16
  onChange
@@ -19,7 +19,7 @@ var ChatWindow = ({
19
19
  inputAriaLabel,
20
20
  sendAriaLabel,
21
21
  statusText,
22
- statusVariant = "info",
22
+ statusVariant: _statusVariant = "info",
23
23
  showAvatar = true,
24
24
  showName = true,
25
25
  showTime = false,
@@ -82,7 +82,7 @@ function Table({
82
82
  // v0.6.0 props
83
83
  virtual = false,
84
84
  virtualHeight = 400,
85
- virtualItemHeight = 40,
85
+ virtualItemHeight: _virtualItemHeight = 40,
86
86
  editable = false,
87
87
  editableCells,
88
88
  filterMode = "basic",