@expcat/tigercat-core 0.3.69 → 0.4.0

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.
package/dist/index.js CHANGED
@@ -673,7 +673,8 @@ function mergeTigerLocale(base, override) {
673
673
  drawer: { ...base?.drawer, ...override?.drawer },
674
674
  upload: { ...base?.upload, ...override?.upload },
675
675
  pagination: { ...base?.pagination, ...override?.pagination },
676
- formWizard: { ...base?.formWizard, ...override?.formWizard }
676
+ formWizard: { ...base?.formWizard, ...override?.formWizard },
677
+ taskBoard: { ...base?.taskBoard, ...override?.taskBoard }
677
678
  };
678
679
  }
679
680
  var DEFAULT_PAGINATION_LABELS = {
@@ -728,6 +729,29 @@ function formatPaginationTotal(template, total, range) {
728
729
  function formatPageAriaLabel(template, page) {
729
730
  return template.replace("{page}", String(page));
730
731
  }
732
+ var DEFAULT_TASK_BOARD_LABELS = {
733
+ emptyColumnText: "No tasks",
734
+ addCardText: "Add task",
735
+ wipLimitText: "WIP limit: {limit}",
736
+ dragHintText: "Drag to move",
737
+ boardAriaLabel: "Task Board"
738
+ };
739
+ var ZH_CN_TASK_BOARD_LABELS = {
740
+ emptyColumnText: "\u6682\u65E0\u4EFB\u52A1",
741
+ addCardText: "\u6DFB\u52A0\u4EFB\u52A1",
742
+ wipLimitText: "WIP \u9650\u5236: {limit}",
743
+ dragHintText: "\u62D6\u62FD\u4EE5\u79FB\u52A8",
744
+ boardAriaLabel: "\u4EFB\u52A1\u770B\u677F"
745
+ };
746
+ function getTaskBoardLabels(locale) {
747
+ return {
748
+ emptyColumnText: locale?.taskBoard?.emptyColumnText ?? DEFAULT_TASK_BOARD_LABELS.emptyColumnText,
749
+ addCardText: locale?.taskBoard?.addCardText ?? DEFAULT_TASK_BOARD_LABELS.addCardText,
750
+ wipLimitText: locale?.taskBoard?.wipLimitText ?? DEFAULT_TASK_BOARD_LABELS.wipLimitText,
751
+ dragHintText: locale?.taskBoard?.dragHintText ?? DEFAULT_TASK_BOARD_LABELS.dragHintText,
752
+ boardAriaLabel: locale?.taskBoard?.boardAriaLabel ?? DEFAULT_TASK_BOARD_LABELS.boardAriaLabel
753
+ };
754
+ }
731
755
 
732
756
  // src/utils/datepicker-i18n.ts
733
757
  function getDatePickerLabels(locale, overrides) {
@@ -5150,6 +5174,203 @@ function getTextClasses(props) {
5150
5174
  );
5151
5175
  }
5152
5176
 
5177
+ // src/utils/image-utils.ts
5178
+ var imageBaseClasses = "relative inline-block overflow-hidden";
5179
+ function getImageImgClasses(fit) {
5180
+ const fitMap = {
5181
+ contain: "object-contain",
5182
+ cover: "object-cover",
5183
+ fill: "object-fill",
5184
+ none: "object-none",
5185
+ "scale-down": "object-scale-down"
5186
+ };
5187
+ return classNames("block w-full h-full", fitMap[fit]);
5188
+ }
5189
+ var imageErrorClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)]";
5190
+ var imageLoadingClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)] animate-pulse";
5191
+ var imagePreviewCursorClass = "cursor-pointer";
5192
+ var imageErrorIconPath = "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z";
5193
+ var zoomInIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7";
5194
+ var zoomOutIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7";
5195
+ var resetIconPath = "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15";
5196
+ var prevIconPath = "M15 19l-7-7 7-7";
5197
+ var nextIconPath = "M9 5l7 7-7 7";
5198
+ var previewCloseIconPath = "M6 18L18 6M6 6l12 12";
5199
+ var imagePreviewMaskClasses = "fixed inset-0 bg-[var(--tiger-image-mask,rgba(0,0,0,0.85))] transition-opacity";
5200
+ var imagePreviewWrapperClasses = "fixed inset-0 flex items-center justify-center select-none";
5201
+ var imagePreviewImgClasses = "max-w-none transition-transform duration-150 ease-out cursor-grab active:cursor-grabbing";
5202
+ var imagePreviewToolbarClasses = "absolute bottom-6 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white";
5203
+ var imagePreviewToolbarBtnClasses = "flex items-center justify-center w-8 h-8 rounded-full hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
5204
+ var imagePreviewNavBtnClasses = "absolute top-1/2 -translate-y-1/2 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
5205
+ var imagePreviewCloseBtnClasses = "absolute top-4 right-4 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50";
5206
+ var imagePreviewCounterClasses = "text-sm text-white/80 mx-2 tabular-nums";
5207
+ var imageCropperContainerClasses = "relative overflow-hidden bg-[var(--tiger-image-cropper-bg,#1a1a2e)] select-none touch-none";
5208
+ var imageCropperImgClasses = "absolute top-0 left-0 max-w-none pointer-events-none";
5209
+ var imageCropperMaskClasses = "absolute inset-0 pointer-events-none";
5210
+ var imageCropperSelectionClasses = "absolute border-2 border-[var(--tiger-image-cropper-border,#ffffff)] pointer-events-none";
5211
+ var imageCropperGuideClasses = "absolute border-[var(--tiger-image-cropper-border,rgba(255,255,255,0.4))] pointer-events-none";
5212
+ var imageCropperDragAreaClasses = "absolute cursor-move";
5213
+ function getCropperHandleClasses(handle) {
5214
+ const base = "absolute w-3 h-3 bg-[var(--tiger-image-cropper-border,#ffffff)] border border-[var(--tiger-image-cropper-handle-border,rgba(0,0,0,0.3))]";
5215
+ const positionMap = {
5216
+ nw: "-top-1.5 -left-1.5 cursor-nw-resize",
5217
+ n: "-top-1.5 left-1/2 -translate-x-1/2 cursor-n-resize",
5218
+ ne: "-top-1.5 -right-1.5 cursor-ne-resize",
5219
+ e: "top-1/2 -right-1.5 -translate-y-1/2 cursor-e-resize",
5220
+ se: "-bottom-1.5 -right-1.5 cursor-se-resize",
5221
+ s: "-bottom-1.5 left-1/2 -translate-x-1/2 cursor-s-resize",
5222
+ sw: "-bottom-1.5 -left-1.5 cursor-sw-resize",
5223
+ w: "top-1/2 -left-1.5 -translate-y-1/2 cursor-w-resize"
5224
+ };
5225
+ return classNames(base, positionMap[handle]);
5226
+ }
5227
+ var CROP_HANDLES = ["nw", "n", "ne", "e", "se", "s", "sw", "w"];
5228
+ var cropUploadTriggerClasses = "inline-flex items-center justify-center gap-2 px-4 py-2 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-lg text-[var(--tiger-text-muted,#6b7280)] hover:border-[var(--tiger-primary,#2563eb)] hover:text-[var(--tiger-primary,#2563eb)] transition-colors cursor-pointer focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-2";
5229
+ var cropUploadTriggerDisabledClasses = "inline-flex items-center justify-center gap-2 px-4 py-2 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-lg text-[var(--tiger-text-muted,#9ca3af)] cursor-not-allowed opacity-50";
5230
+ var uploadPlusIconPath = "M12 4v16m8-8H4";
5231
+ function clampScale(scale, min, max) {
5232
+ return Math.min(Math.max(scale, min), max);
5233
+ }
5234
+ function calculateTransform(scale, offsetX, offsetY) {
5235
+ return `translate(${offsetX}px, ${offsetY}px) scale(${scale})`;
5236
+ }
5237
+ function getPreviewNavState(currentIndex, total) {
5238
+ return {
5239
+ hasPrev: currentIndex > 0,
5240
+ hasNext: currentIndex < total - 1,
5241
+ counter: total > 1 ? `${currentIndex + 1} / ${total}` : ""
5242
+ };
5243
+ }
5244
+ function constrainCropRect(rect, imageWidth, imageHeight, aspectRatio) {
5245
+ let { x, y, width, height } = rect;
5246
+ if (aspectRatio && aspectRatio > 0) {
5247
+ const currentRatio = width / height;
5248
+ if (currentRatio > aspectRatio) {
5249
+ width = height * aspectRatio;
5250
+ } else {
5251
+ height = width / aspectRatio;
5252
+ }
5253
+ }
5254
+ width = Math.min(width, imageWidth);
5255
+ height = Math.min(height, imageHeight);
5256
+ x = Math.max(0, Math.min(x, imageWidth - width));
5257
+ y = Math.max(0, Math.min(y, imageHeight - height));
5258
+ return { x, y, width, height };
5259
+ }
5260
+ function resizeCropRect(rect, handle, dx, dy, imageWidth, imageHeight, aspectRatio, minW = 20, minH = 20) {
5261
+ let { x, y, width, height } = rect;
5262
+ switch (handle) {
5263
+ case "nw":
5264
+ x += dx;
5265
+ y += dy;
5266
+ width -= dx;
5267
+ height -= dy;
5268
+ break;
5269
+ case "n":
5270
+ y += dy;
5271
+ height -= dy;
5272
+ break;
5273
+ case "ne":
5274
+ width += dx;
5275
+ y += dy;
5276
+ height -= dy;
5277
+ break;
5278
+ case "e":
5279
+ width += dx;
5280
+ break;
5281
+ case "se":
5282
+ width += dx;
5283
+ height += dy;
5284
+ break;
5285
+ case "s":
5286
+ height += dy;
5287
+ break;
5288
+ case "sw":
5289
+ x += dx;
5290
+ width -= dx;
5291
+ height += dy;
5292
+ break;
5293
+ case "w":
5294
+ x += dx;
5295
+ width -= dx;
5296
+ break;
5297
+ }
5298
+ if (width < minW) {
5299
+ if (handle.includes("w")) {
5300
+ x = rect.x + rect.width - minW;
5301
+ }
5302
+ width = minW;
5303
+ }
5304
+ if (height < minH) {
5305
+ if (handle.includes("n")) {
5306
+ y = rect.y + rect.height - minH;
5307
+ }
5308
+ height = minH;
5309
+ }
5310
+ if (aspectRatio && aspectRatio > 0) {
5311
+ const newRatio = width / height;
5312
+ if (handle === "n" || handle === "s" || handle === "nw" || handle === "sw" || handle === "ne" || handle === "se") {
5313
+ width = height * aspectRatio;
5314
+ }
5315
+ if (handle === "e" || handle === "w") {
5316
+ height = width / aspectRatio;
5317
+ }
5318
+ if (newRatio !== aspectRatio && (handle === "nw" || handle === "ne" || handle === "sw" || handle === "se")) {
5319
+ width = height * aspectRatio;
5320
+ }
5321
+ }
5322
+ return constrainCropRect({ x, y, width, height }, imageWidth, imageHeight, aspectRatio);
5323
+ }
5324
+ function moveCropRect(rect, dx, dy, boundW, boundH) {
5325
+ const x = Math.max(0, Math.min(rect.x + dx, boundW - rect.width));
5326
+ const y = Math.max(0, Math.min(rect.y + dy, boundH - rect.height));
5327
+ return { x, y, width: rect.width, height: rect.height };
5328
+ }
5329
+ function getInitialCropRect(imageWidth, imageHeight, aspectRatio) {
5330
+ const padding = 0.1;
5331
+ let cropW = imageWidth * (1 - padding * 2);
5332
+ let cropH = imageHeight * (1 - padding * 2);
5333
+ if (aspectRatio && aspectRatio > 0) {
5334
+ if (cropW / cropH > aspectRatio) {
5335
+ cropW = cropH * aspectRatio;
5336
+ } else {
5337
+ cropH = cropW / aspectRatio;
5338
+ }
5339
+ }
5340
+ return {
5341
+ x: (imageWidth - cropW) / 2,
5342
+ y: (imageHeight - cropH) / 2,
5343
+ width: cropW,
5344
+ height: cropH
5345
+ };
5346
+ }
5347
+ function cropCanvas(image, cropRect, displayWidth, displayHeight, outputType = "image/png", quality = 0.92) {
5348
+ const scaleX = image.naturalWidth / displayWidth;
5349
+ const scaleY = image.naturalHeight / displayHeight;
5350
+ const sx = cropRect.x * scaleX;
5351
+ const sy = cropRect.y * scaleY;
5352
+ const sw = cropRect.width * scaleX;
5353
+ const sh = cropRect.height * scaleY;
5354
+ const canvas = document.createElement("canvas");
5355
+ canvas.width = Math.round(sw);
5356
+ canvas.height = Math.round(sh);
5357
+ const ctx = canvas.getContext("2d");
5358
+ if (ctx) {
5359
+ ctx.drawImage(image, sx, sy, sw, sh, 0, 0, canvas.width, canvas.height);
5360
+ }
5361
+ const dataUrl = canvas.toDataURL(outputType, quality);
5362
+ return { canvas, dataUrl };
5363
+ }
5364
+ function getTouchDistance(touch1, touch2) {
5365
+ const dx = touch1.clientX - touch2.clientX;
5366
+ const dy = touch1.clientY - touch2.clientY;
5367
+ return Math.sqrt(dx * dx + dy * dy);
5368
+ }
5369
+ function toCSSSize(value) {
5370
+ if (value === void 0) return void 0;
5371
+ return typeof value === "number" ? `${value}px` : value;
5372
+ }
5373
+
5153
5374
  // src/utils/carousel-utils.ts
5154
5375
  var carouselBaseClasses = "relative overflow-hidden w-full";
5155
5376
  var carouselTrackScrollClasses = "flex transition-transform ease-in-out";
@@ -6269,6 +6490,164 @@ var formatCommentTime = (value) => {
6269
6490
  return value;
6270
6491
  };
6271
6492
 
6493
+ // src/utils/task-board-utils.ts
6494
+ var taskBoardBaseClasses = "tiger-task-board flex gap-4 overflow-x-auto p-4 min-h-[400px]";
6495
+ var taskBoardColumnClasses = "tiger-task-board-column flex flex-col shrink-0 w-72 rounded-lg border border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface,#ffffff)] shadow-sm transition-shadow";
6496
+ var taskBoardColumnHeaderClasses = "flex items-center justify-between px-3 py-2 border-b border-[var(--tiger-border,#e5e7eb)] text-sm font-semibold text-[var(--tiger-text,#1f2937)] select-none";
6497
+ var taskBoardColumnBodyClasses = "flex-1 overflow-y-auto p-2 space-y-2 min-h-[80px]";
6498
+ var taskBoardCardClasses = "tiger-task-board-card rounded-md border border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface,#ffffff)] p-3 shadow-sm cursor-grab select-none transition-opacity";
6499
+ var taskBoardCardDraggingClasses = "opacity-50 shadow-lg";
6500
+ var taskBoardDropIndicatorClasses = "h-1 rounded-full bg-[var(--tiger-primary,#2563eb)] my-1 transition-all";
6501
+ var taskBoardColumnDropTargetClasses = "ring-2 ring-[var(--tiger-primary,#2563eb)] ring-opacity-50";
6502
+ var taskBoardColumnDraggingClasses = "opacity-50";
6503
+ var taskBoardEmptyClasses = "flex items-center justify-center text-[var(--tiger-text-muted,#6b7280)] text-sm py-8";
6504
+ var taskBoardWipExceededClasses = "text-[var(--tiger-error,#ef4444)]";
6505
+ var taskBoardAddCardClasses = "flex items-center justify-center gap-1 w-full py-1.5 text-sm text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-primary,#2563eb)] hover:bg-[var(--tiger-surface-muted,#f9fafb)] rounded transition-colors cursor-pointer";
6506
+ var MIME = "text/plain";
6507
+ function createCardDragData(cardId, columnId, index) {
6508
+ const data = { type: "card", cardId, columnId, index };
6509
+ return JSON.stringify(data);
6510
+ }
6511
+ function createColumnDragData(columnId, index) {
6512
+ const data = { type: "column", columnId, index };
6513
+ return JSON.stringify(data);
6514
+ }
6515
+ function parseDragData(dataTransfer) {
6516
+ try {
6517
+ const raw = dataTransfer.getData(MIME);
6518
+ if (!raw) return null;
6519
+ const data = JSON.parse(raw);
6520
+ if (data.type === "card" || data.type === "column") return data;
6521
+ return null;
6522
+ } catch {
6523
+ return null;
6524
+ }
6525
+ }
6526
+ function setDragData(dataTransfer, json) {
6527
+ dataTransfer.setData(MIME, json);
6528
+ dataTransfer.effectAllowed = "move";
6529
+ }
6530
+ function moveCard(columns, cardId, fromColumnId, toColumnId, toIndex, options) {
6531
+ const srcColIdx = columns.findIndex((c) => c.id === fromColumnId);
6532
+ const dstColIdx = columns.findIndex((c) => c.id === toColumnId);
6533
+ if (srcColIdx === -1 || dstColIdx === -1) return null;
6534
+ const srcCol = columns[srcColIdx];
6535
+ const cardIdx = srcCol.cards.findIndex((c) => c.id === cardId);
6536
+ if (cardIdx === -1) return null;
6537
+ const card = srcCol.cards[cardIdx];
6538
+ const clampedTo = Math.max(
6539
+ 0,
6540
+ Math.min(
6541
+ toIndex,
6542
+ srcColIdx === dstColIdx ? srcCol.cards.length - 1 : columns[dstColIdx].cards.length
6543
+ )
6544
+ );
6545
+ if (srcColIdx === dstColIdx) {
6546
+ if (cardIdx === clampedTo) return null;
6547
+ const newCards = [...srcCol.cards];
6548
+ newCards.splice(cardIdx, 1);
6549
+ newCards.splice(clampedTo, 0, card);
6550
+ const newCols2 = columns.map((c, i) => i === srcColIdx ? { ...c, cards: newCards } : c);
6551
+ return {
6552
+ columns: newCols2,
6553
+ event: { cardId, fromColumnId, toColumnId, fromIndex: cardIdx, toIndex: clampedTo }
6554
+ };
6555
+ }
6556
+ const dstCol = columns[dstColIdx];
6557
+ if (options?.enforceWipLimit && dstCol.wipLimit != null && dstCol.wipLimit > 0 && dstCol.cards.length >= dstCol.wipLimit) {
6558
+ return null;
6559
+ }
6560
+ const newSrcCards = srcCol.cards.filter((c) => c.id !== cardId);
6561
+ const newDstCards = [...dstCol.cards];
6562
+ newDstCards.splice(clampedTo, 0, card);
6563
+ const newCols = columns.map((c, i) => {
6564
+ if (i === srcColIdx) return { ...c, cards: newSrcCards };
6565
+ if (i === dstColIdx) return { ...c, cards: newDstCards };
6566
+ return c;
6567
+ });
6568
+ return {
6569
+ columns: newCols,
6570
+ event: { cardId, fromColumnId, toColumnId, fromIndex: cardIdx, toIndex: clampedTo }
6571
+ };
6572
+ }
6573
+ function reorderColumns(columns, fromIndex, toIndex) {
6574
+ if (fromIndex === toIndex || fromIndex < 0 || fromIndex >= columns.length || toIndex < 0 || toIndex >= columns.length) {
6575
+ return null;
6576
+ }
6577
+ const col = columns[fromIndex];
6578
+ const next = [...columns];
6579
+ next.splice(fromIndex, 1);
6580
+ next.splice(toIndex, 0, col);
6581
+ return {
6582
+ columns: next,
6583
+ event: { columnId: col.id, fromIndex, toIndex }
6584
+ };
6585
+ }
6586
+ function isWipExceeded(column) {
6587
+ if (column.wipLimit == null || column.wipLimit <= 0) return false;
6588
+ return column.cards.length > column.wipLimit;
6589
+ }
6590
+ function getDropIndex(pointerY, cardRects) {
6591
+ for (let i = 0; i < cardRects.length; i++) {
6592
+ const mid = cardRects[i].top + cardRects[i].height / 2;
6593
+ if (pointerY < mid) return i;
6594
+ }
6595
+ return cardRects.length;
6596
+ }
6597
+ function getColumnDropIndex(pointerX, columnRects) {
6598
+ for (let i = 0; i < columnRects.length; i++) {
6599
+ const mid = columnRects[i].left + columnRects[i].width / 2;
6600
+ if (pointerX < mid) return i;
6601
+ }
6602
+ return columnRects.length;
6603
+ }
6604
+ function createTouchDragTracker() {
6605
+ let state = {
6606
+ startX: 0,
6607
+ startY: 0,
6608
+ currentX: 0,
6609
+ currentY: 0,
6610
+ active: false,
6611
+ sourceElement: null
6612
+ };
6613
+ return {
6614
+ onTouchStart(e, source) {
6615
+ const touch = e.touches[0];
6616
+ state = {
6617
+ startX: touch.clientX,
6618
+ startY: touch.clientY,
6619
+ currentX: touch.clientX,
6620
+ currentY: touch.clientY,
6621
+ active: true,
6622
+ sourceElement: source
6623
+ };
6624
+ },
6625
+ onTouchMove(e) {
6626
+ if (!state.active) return;
6627
+ const touch = e.touches[0];
6628
+ state.currentX = touch.clientX;
6629
+ state.currentY = touch.clientY;
6630
+ e.preventDefault();
6631
+ },
6632
+ onTouchEnd() {
6633
+ state = { ...state, active: false, sourceElement: null };
6634
+ return { ...state };
6635
+ },
6636
+ getState() {
6637
+ return state;
6638
+ },
6639
+ cancel() {
6640
+ state = { ...state, active: false, sourceElement: null };
6641
+ }
6642
+ };
6643
+ }
6644
+ function findColumnFromPoint(x, y, boardEl) {
6645
+ if (!boardEl) return null;
6646
+ const el = document.elementFromPoint(x, y);
6647
+ if (!el) return null;
6648
+ return el.closest("[data-tiger-taskboard-column]");
6649
+ }
6650
+
6272
6651
  // src/theme/checkbox.ts
6273
6652
  var checkboxSizeClasses = {
6274
6653
  sm: "w-4 h-4",
@@ -6453,6 +6832,7 @@ export {
6453
6832
  ANIMATION_DURATION_FAST_MS,
6454
6833
  ANIMATION_DURATION_MS,
6455
6834
  ANIMATION_DURATION_SLOW_MS,
6835
+ CROP_HANDLES,
6456
6836
  CalendarIconPath,
6457
6837
  ChevronLeftIconPath,
6458
6838
  ChevronRightIconPath,
@@ -6461,6 +6841,7 @@ export {
6461
6841
  DEFAULT_CHART_COLORS,
6462
6842
  DEFAULT_FORM_WIZARD_LABELS,
6463
6843
  DEFAULT_PAGINATION_LABELS,
6844
+ DEFAULT_TASK_BOARD_LABELS,
6464
6845
  DONUT_BASE_SHADOW,
6465
6846
  DONUT_EMPHASIS_SHADOW,
6466
6847
  DROPDOWN_CHEVRON_PATH,
@@ -6494,6 +6875,7 @@ export {
6494
6875
  TimePickerCloseIconPath,
6495
6876
  ZH_CN_FORM_WIZARD_LABELS,
6496
6877
  ZH_CN_PAGINATION_LABELS,
6878
+ ZH_CN_TASK_BOARD_LABELS,
6497
6879
  activeOpacityClasses,
6498
6880
  activePressClasses,
6499
6881
  alertBaseClasses,
@@ -6557,6 +6939,7 @@ export {
6557
6939
  calculateCirclePath,
6558
6940
  calculatePagination,
6559
6941
  calculateStepStatus,
6942
+ calculateTransform,
6560
6943
  calendarSolidIcon20PathD,
6561
6944
  captureActiveElement,
6562
6945
  cardActionsClasses,
@@ -6598,6 +6981,7 @@ export {
6598
6981
  chevronRightSolidIcon20PathD,
6599
6982
  clampBarWidth,
6600
6983
  clampPercentage,
6984
+ clampScale,
6601
6985
  clampSlideIndex,
6602
6986
  classNames,
6603
6987
  clearFieldErrors,
@@ -6631,6 +7015,7 @@ export {
6631
7015
  computeFloatingPosition,
6632
7016
  computePieHoverOffset,
6633
7017
  computePieLabelLine,
7018
+ constrainCropRect,
6634
7019
  containerBaseClasses,
6635
7020
  containerCenteredClasses,
6636
7021
  containerMaxWidthClasses,
@@ -6639,13 +7024,19 @@ export {
6639
7024
  createAreaPath,
6640
7025
  createAriaId,
6641
7026
  createBandScale,
7027
+ createCardDragData,
6642
7028
  createChartInteractionHandlers,
7029
+ createColumnDragData,
6643
7030
  createFloatingIdFactory,
6644
7031
  createLinePath,
6645
7032
  createLinearScale,
6646
7033
  createPieArcPath,
6647
7034
  createPointScale,
6648
7035
  createPolygonPath,
7036
+ createTouchDragTracker,
7037
+ cropCanvas,
7038
+ cropUploadTriggerClasses,
7039
+ cropUploadTriggerDisabledClasses,
6649
7040
  datePickerBaseClasses,
6650
7041
  datePickerCalendarClasses,
6651
7042
  datePickerCalendarGridClasses,
@@ -6699,6 +7090,7 @@ export {
6699
7090
  filterOptions,
6700
7091
  filterTreeNodes,
6701
7092
  findActiveAnchor,
7093
+ findColumnFromPoint,
6702
7094
  findNode,
6703
7095
  flattenSelectOptions,
6704
7096
  focusElement,
@@ -6773,9 +7165,11 @@ export {
6773
7165
  getCollapseIconClasses,
6774
7166
  getCollapsePanelClasses,
6775
7167
  getCollapsePanelHeaderClasses,
7168
+ getColumnDropIndex,
6776
7169
  getContainerClasses,
6777
7170
  getContainerHeight,
6778
7171
  getContainerScrollTop,
7172
+ getCropperHandleClasses,
6779
7173
  getCurrentTime,
6780
7174
  getDatePickerDayCellClasses,
6781
7175
  getDatePickerIconButtonClasses,
@@ -6800,6 +7194,7 @@ export {
6800
7194
  getDrawerMaskClasses,
6801
7195
  getDrawerPanelClasses,
6802
7196
  getDrawerTitleClasses,
7197
+ getDropIndex,
6803
7198
  getDropdownChevronClasses,
6804
7199
  getDropdownContainerClasses,
6805
7200
  getDropdownItemClasses,
@@ -6823,6 +7218,8 @@ export {
6823
7218
  getFormWizardLabels,
6824
7219
  getGridColumnClasses,
6825
7220
  getGutterStyles,
7221
+ getImageImgClasses,
7222
+ getInitialCropRect,
6826
7223
  getInitials,
6827
7224
  getInputAffixClasses,
6828
7225
  getInputClasses,
@@ -6894,6 +7291,7 @@ export {
6894
7291
  getPopoverTitleClasses,
6895
7292
  getPopoverTriggerClasses,
6896
7293
  getPrevSlideIndex,
7294
+ getPreviewNavState,
6897
7295
  getProgressTextColorClasses,
6898
7296
  getProgressVariantClasses,
6899
7297
  getQuickJumperInputClasses,
@@ -6961,6 +7359,7 @@ export {
6961
7359
  getTableWrapperClasses,
6962
7360
  getTabsContainerClasses,
6963
7361
  getTagVariantClasses,
7362
+ getTaskBoardLabels,
6964
7363
  getTextClasses,
6965
7364
  getThemeColor,
6966
7365
  getTimePeriodLabels,
@@ -6982,6 +7381,7 @@ export {
6982
7381
  getTooltipTriggerClasses,
6983
7382
  getTotalPages,
6984
7383
  getTotalTextClasses,
7384
+ getTouchDistance,
6985
7385
  getTransformOrigin,
6986
7386
  getTreeNodeClasses,
6987
7387
  getTreeNodeExpandIconClasses,
@@ -7005,6 +7405,25 @@ export {
7005
7405
  iconSvgDefaultStrokeLinejoin,
7006
7406
  iconSvgDefaultStrokeWidth,
7007
7407
  iconWrapperClasses,
7408
+ imageBaseClasses,
7409
+ imageCropperContainerClasses,
7410
+ imageCropperDragAreaClasses,
7411
+ imageCropperGuideClasses,
7412
+ imageCropperImgClasses,
7413
+ imageCropperMaskClasses,
7414
+ imageCropperSelectionClasses,
7415
+ imageErrorClasses,
7416
+ imageErrorIconPath,
7417
+ imageLoadingClasses,
7418
+ imagePreviewCloseBtnClasses,
7419
+ imagePreviewCounterClasses,
7420
+ imagePreviewCursorClass,
7421
+ imagePreviewImgClasses,
7422
+ imagePreviewMaskClasses,
7423
+ imagePreviewNavBtnClasses,
7424
+ imagePreviewToolbarBtnClasses,
7425
+ imagePreviewToolbarClasses,
7426
+ imagePreviewWrapperClasses,
7008
7427
  initRovingTabIndex,
7009
7428
  injectDropdownStyles,
7010
7429
  injectLoadingAnimationStyles,
@@ -7032,6 +7451,7 @@ export {
7032
7451
  isTabKey,
7033
7452
  isTimeInRange,
7034
7453
  isToday,
7454
+ isWipExceeded,
7035
7455
  layoutContentClasses,
7036
7456
  layoutFooterClasses,
7037
7457
  layoutHeaderClasses,
@@ -7109,7 +7529,10 @@ export {
7109
7529
  modalSizeClasses,
7110
7530
  modalTitleClasses,
7111
7531
  modalWrapperClasses,
7532
+ moveCard,
7533
+ moveCropRect,
7112
7534
  moveFocusInMenu,
7535
+ nextIconPath,
7113
7536
  normalizeActiveKeys,
7114
7537
  normalizeChartPadding,
7115
7538
  normalizeDate,
@@ -7128,6 +7551,7 @@ export {
7128
7551
  notificationTitleClasses,
7129
7552
  paginateData,
7130
7553
  parseDate,
7554
+ parseDragData,
7131
7555
  parseInputValue,
7132
7556
  parseTime,
7133
7557
  parseWidthToPx,
@@ -7142,6 +7566,8 @@ export {
7142
7566
  popconfirmSuccessIconPath,
7143
7567
  popconfirmWarningIconPath,
7144
7568
  prepareUploadFiles,
7569
+ prevIconPath,
7570
+ previewCloseIconPath,
7145
7571
  progressCircleBaseClasses,
7146
7572
  progressCircleSizeClasses,
7147
7573
  progressCircleTextClasses,
@@ -7163,11 +7589,14 @@ export {
7163
7589
  radioRootBaseClasses,
7164
7590
  radioSizeClasses,
7165
7591
  radioVisualBaseClasses,
7592
+ reorderColumns,
7166
7593
  replaceKeys,
7167
7594
  resetAreaGradientCounter,
7168
7595
  resetBarGradientCounter,
7596
+ resetIconPath,
7169
7597
  resetLineGradientCounter,
7170
7598
  resetScatterGradientCounter,
7599
+ resizeCropRect,
7171
7600
  resolveChartPalette,
7172
7601
  resolveChartTooltipContent,
7173
7602
  resolveLocaleText,
@@ -7185,6 +7614,7 @@ export {
7185
7614
  selectOptionDisabledClasses,
7186
7615
  selectOptionSelectedClasses,
7187
7616
  selectSearchInputClasses,
7617
+ setDragData,
7188
7618
  setThemeColors,
7189
7619
  shouldHideBadge,
7190
7620
  skeletonAnimationClasses,
@@ -7258,6 +7688,18 @@ export {
7258
7688
  tagCloseButtonBaseClasses,
7259
7689
  tagCloseIconPath,
7260
7690
  tagSizeClasses,
7691
+ taskBoardAddCardClasses,
7692
+ taskBoardBaseClasses,
7693
+ taskBoardCardClasses,
7694
+ taskBoardCardDraggingClasses,
7695
+ taskBoardColumnBodyClasses,
7696
+ taskBoardColumnClasses,
7697
+ taskBoardColumnDraggingClasses,
7698
+ taskBoardColumnDropTargetClasses,
7699
+ taskBoardColumnHeaderClasses,
7700
+ taskBoardDropIndicatorClasses,
7701
+ taskBoardEmptyClasses,
7702
+ taskBoardWipExceededClasses,
7261
7703
  textAlignClasses,
7262
7704
  textColorClasses,
7263
7705
  textDecorationClasses,
@@ -7289,6 +7731,7 @@ export {
7289
7731
  to12HourFormat,
7290
7732
  to24HourFormat,
7291
7733
  toActivityTimelineItems,
7734
+ toCSSSize,
7292
7735
  toggleKey,
7293
7736
  togglePanelKey,
7294
7737
  treeBaseClasses,
@@ -7307,6 +7750,7 @@ export {
7307
7750
  treeNodeLabelClasses,
7308
7751
  treeNodeSelectedClasses,
7309
7752
  treeNodeWrapperClasses,
7753
+ uploadPlusIconPath,
7310
7754
  uploadStatusIconColorClasses,
7311
7755
  uploadStatusIconSizeClasses,
7312
7756
  validateCurrentPage,
@@ -7315,5 +7759,7 @@ export {
7315
7759
  validateFileType,
7316
7760
  validateForm,
7317
7761
  validateRule,
7318
- version
7762
+ version,
7763
+ zoomInIconPath,
7764
+ zoomOutIconPath
7319
7765
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expcat/tigercat-core",
3
- "version": "0.3.69",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "description": "Core utilities for Tigercat UI library",
6
6
  "license": "MIT",