@expcat/tigercat-core 1.4.0 → 1.5.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.
Files changed (105) hide show
  1. package/dist/{datepicker-DXzS_8l8.d.cts → datepicker-gSOJN_pQ.d.cts} +1 -1
  2. package/dist/{datepicker-DXzS_8l8.d.ts → datepicker-gSOJN_pQ.d.ts} +1 -1
  3. package/dist/datepicker-locales/ar-SA.d.cts +1 -1
  4. package/dist/datepicker-locales/ar-SA.d.ts +1 -1
  5. package/dist/datepicker-locales/de-DE.d.cts +1 -1
  6. package/dist/datepicker-locales/de-DE.d.ts +1 -1
  7. package/dist/datepicker-locales/en-US.d.cts +1 -1
  8. package/dist/datepicker-locales/en-US.d.ts +1 -1
  9. package/dist/datepicker-locales/es-ES.d.cts +1 -1
  10. package/dist/datepicker-locales/es-ES.d.ts +1 -1
  11. package/dist/datepicker-locales/fr-FR.d.cts +1 -1
  12. package/dist/datepicker-locales/fr-FR.d.ts +1 -1
  13. package/dist/datepicker-locales/id-ID.d.cts +1 -1
  14. package/dist/datepicker-locales/id-ID.d.ts +1 -1
  15. package/dist/datepicker-locales/ja-JP.d.cts +1 -1
  16. package/dist/datepicker-locales/ja-JP.d.ts +1 -1
  17. package/dist/datepicker-locales/ko-KR.d.cts +1 -1
  18. package/dist/datepicker-locales/ko-KR.d.ts +1 -1
  19. package/dist/datepicker-locales/pt-BR.d.cts +1 -1
  20. package/dist/datepicker-locales/pt-BR.d.ts +1 -1
  21. package/dist/datepicker-locales/th-TH.d.cts +1 -1
  22. package/dist/datepicker-locales/th-TH.d.ts +1 -1
  23. package/dist/datepicker-locales/vi-VN.d.cts +1 -1
  24. package/dist/datepicker-locales/vi-VN.d.ts +1 -1
  25. package/dist/datepicker-locales/zh-CN.d.cts +1 -1
  26. package/dist/datepicker-locales/zh-CN.d.ts +1 -1
  27. package/dist/datepicker-locales/zh-TW.d.cts +1 -1
  28. package/dist/datepicker-locales/zh-TW.d.ts +1 -1
  29. package/dist/index.cjs +1523 -480
  30. package/dist/index.d.cts +422 -28
  31. package/dist/index.d.ts +422 -28
  32. package/dist/index.js +1471 -479
  33. package/dist/{locale-DxwhmqfF.d.cts → locale-BTAo7XO1.d.cts} +94 -2
  34. package/dist/{locale-9tTj1QdZ.d.ts → locale-hhhI2kH6.d.ts} +94 -2
  35. package/dist/locales/ar-SA.cjs +296 -2
  36. package/dist/locales/ar-SA.d.cts +2 -2
  37. package/dist/locales/ar-SA.d.ts +2 -2
  38. package/dist/locales/ar-SA.js +296 -2
  39. package/dist/locales/de-DE.cjs +296 -2
  40. package/dist/locales/de-DE.d.cts +2 -2
  41. package/dist/locales/de-DE.d.ts +2 -2
  42. package/dist/locales/de-DE.js +296 -2
  43. package/dist/locales/en-US.cjs +98 -1
  44. package/dist/locales/en-US.d.cts +2 -2
  45. package/dist/locales/en-US.d.ts +2 -2
  46. package/dist/locales/en-US.js +98 -1
  47. package/dist/locales/es-ES.cjs +296 -2
  48. package/dist/locales/es-ES.d.cts +2 -2
  49. package/dist/locales/es-ES.d.ts +2 -2
  50. package/dist/locales/es-ES.js +296 -2
  51. package/dist/locales/fr-FR.cjs +296 -2
  52. package/dist/locales/fr-FR.d.cts +2 -2
  53. package/dist/locales/fr-FR.d.ts +2 -2
  54. package/dist/locales/fr-FR.js +296 -2
  55. package/dist/locales/id-ID.cjs +443 -2
  56. package/dist/locales/id-ID.d.cts +2 -2
  57. package/dist/locales/id-ID.d.ts +2 -2
  58. package/dist/locales/id-ID.js +441 -2
  59. package/dist/locales/ja-JP.cjs +443 -2
  60. package/dist/locales/ja-JP.d.cts +2 -2
  61. package/dist/locales/ja-JP.d.ts +2 -2
  62. package/dist/locales/ja-JP.js +441 -2
  63. package/dist/locales/ko-KR.cjs +443 -2
  64. package/dist/locales/ko-KR.d.cts +2 -2
  65. package/dist/locales/ko-KR.d.ts +2 -2
  66. package/dist/locales/ko-KR.js +441 -2
  67. package/dist/locales/pt-BR.cjs +296 -2
  68. package/dist/locales/pt-BR.d.cts +2 -2
  69. package/dist/locales/pt-BR.d.ts +2 -2
  70. package/dist/locales/pt-BR.js +296 -2
  71. package/dist/locales/th-TH.cjs +443 -2
  72. package/dist/locales/th-TH.d.cts +2 -2
  73. package/dist/locales/th-TH.d.ts +2 -2
  74. package/dist/locales/th-TH.js +441 -2
  75. package/dist/locales/vi-VN.cjs +443 -2
  76. package/dist/locales/vi-VN.d.cts +2 -2
  77. package/dist/locales/vi-VN.d.ts +2 -2
  78. package/dist/locales/vi-VN.js +441 -2
  79. package/dist/locales/zh-CN.cjs +98 -1
  80. package/dist/locales/zh-CN.d.cts +2 -2
  81. package/dist/locales/zh-CN.d.ts +2 -2
  82. package/dist/locales/zh-CN.js +98 -1
  83. package/dist/locales/zh-TW.cjs +443 -2
  84. package/dist/locales/zh-TW.d.cts +2 -2
  85. package/dist/locales/zh-TW.d.ts +2 -2
  86. package/dist/locales/zh-TW.js +441 -2
  87. package/dist/{table-export-GRimhvlM.d.ts → table-export-CfdzU6Y5.d.ts} +2 -2
  88. package/dist/{table-export-BMBH75rj.d.cts → table-export-vfyBzKui.d.cts} +2 -2
  89. package/dist/tailwind/modern.cjs +75 -80
  90. package/dist/tailwind/modern.d.cts +2 -3
  91. package/dist/tailwind/modern.d.ts +2 -3
  92. package/dist/tailwind/modern.js +75 -80
  93. package/dist/{tailwind-entry-D4_sseNi.d.ts → tailwind-entry-CNBAH7iv.d.cts} +7 -41
  94. package/dist/{tailwind-entry-DUchHtjs.d.cts → tailwind-entry-CNBAH7iv.d.ts} +7 -41
  95. package/dist/tailwind.cjs +123 -70
  96. package/dist/tailwind.d.cts +2 -3
  97. package/dist/tailwind.d.ts +2 -3
  98. package/dist/tailwind.js +123 -70
  99. package/dist/utils/table-export.d.cts +3 -3
  100. package/dist/utils/table-export.d.ts +3 -3
  101. package/package.json +4 -3
  102. package/tokens/tailwind-tokens.js +6 -3
  103. package/tokens/tokens.css +30 -15
  104. package/dist/types-CJYAW1ql.d-DDBFn6KB.d.cts +0 -126
  105. package/dist/types-CJYAW1ql.d-DDBFn6KB.d.ts +0 -126
package/dist/index.cjs CHANGED
@@ -42,18 +42,26 @@ __export(src_exports, {
42
42
  ChevronRightIconPath: () => ChevronRightIconPath,
43
43
  ClockIconPath: () => ClockIconPath,
44
44
  CloseIconPath: () => CloseIconPath,
45
+ DEFAULT_CALENDAR_LABELS: () => DEFAULT_CALENDAR_LABELS,
45
46
  DEFAULT_CHART_COLORS: () => DEFAULT_CHART_COLORS,
47
+ DEFAULT_FILE_MANAGER_LABELS: () => DEFAULT_FILE_MANAGER_LABELS,
46
48
  DEFAULT_FORM_VALIDATION_LABELS: () => DEFAULT_FORM_VALIDATION_LABELS,
47
49
  DEFAULT_FORM_WIZARD_LABELS: () => DEFAULT_FORM_WIZARD_LABELS,
48
50
  DEFAULT_HEATMAP_CANVAS_THRESHOLD: () => DEFAULT_HEATMAP_CANVAS_THRESHOLD,
51
+ DEFAULT_IMAGE_EDITOR_LABELS: () => DEFAULT_IMAGE_EDITOR_LABELS,
52
+ DEFAULT_IMAGE_VIEWER_LABELS: () => DEFAULT_IMAGE_VIEWER_LABELS,
49
53
  DEFAULT_PAGINATION_LABELS: () => DEFAULT_PAGINATION_LABELS,
54
+ DEFAULT_STATUS_LABELS: () => DEFAULT_STATUS_LABELS,
50
55
  DEFAULT_TABLE_LABELS: () => DEFAULT_TABLE_LABELS,
51
56
  DEFAULT_TASK_BOARD_LABELS: () => DEFAULT_TASK_BOARD_LABELS,
52
57
  DEFAULT_TIME_PICKER_LABELS: () => DEFAULT_TIME_PICKER_LABELS,
58
+ DEFAULT_TOUR_LABELS: () => DEFAULT_TOUR_LABELS,
53
59
  DEFAULT_UPLOAD_CHUNK_SIZE: () => DEFAULT_UPLOAD_CHUNK_SIZE,
54
60
  DEFAULT_UPLOAD_LABELS: () => DEFAULT_UPLOAD_LABELS,
55
61
  DONUT_BASE_SHADOW: () => DONUT_BASE_SHADOW,
56
62
  DONUT_EMPHASIS_SHADOW: () => DONUT_EMPHASIS_SHADOW,
63
+ DONUT_ENTRANCE_CLASS: () => DONUT_ENTRANCE_CLASS,
64
+ DONUT_ENTRANCE_KEYFRAMES: () => DONUT_ENTRANCE_KEYFRAMES,
57
65
  DROPDOWN_CHEVRON_PATH: () => DROPDOWN_CHEVRON_PATH,
58
66
  DROPDOWN_ENTER_CLASS: () => DROPDOWN_ENTER_CLASS,
59
67
  DURATION_CLASS: () => DURATION_CLASS,
@@ -64,7 +72,7 @@ __export(src_exports, {
64
72
  EASING_LEAVE: () => EASING_LEAVE,
65
73
  EASING_SMOOTH: () => EASING_SMOOTH,
66
74
  EASING_SPRING: () => EASING_SPRING,
67
- EN_US_DATEPICKER_LOCALE: () => EN_US_DATEPICKER_LOCALE,
75
+ EN_US_DATEPICKER_LOCALE: () => EN_US_DATEPICKER_LOCALE2,
68
76
  FLOATING_OVERLAY_Z_INDEX: () => FLOATING_OVERLAY_Z_INDEX,
69
77
  FORM_VALIDATION_PRESETS: () => FORM_VALIDATION_PRESETS,
70
78
  GAUGE_ANIMATION_DURATION_MS: () => GAUGE_ANIMATION_DURATION_MS,
@@ -83,6 +91,7 @@ __export(src_exports, {
83
91
  POPOVER_TEXT_CLASSES: () => POPOVER_TEXT_CLASSES,
84
92
  POPOVER_TITLE_CLASSES: () => POPOVER_TITLE_CLASSES,
85
93
  RADAR_SPLIT_AREA_COLORS: () => RADAR_SPLIT_AREA_COLORS,
94
+ RESIZE_KEYBOARD_STEP: () => RESIZE_KEYBOARD_STEP,
86
95
  SCATTER_ENTRANCE_CLASS: () => SCATTER_ENTRANCE_CLASS,
87
96
  SCATTER_ENTRANCE_KEYFRAMES: () => SCATTER_ENTRANCE_KEYFRAMES,
88
97
  SHAKE_CLASS: () => SHAKE_CLASS,
@@ -97,6 +106,7 @@ __export(src_exports, {
97
106
  SVG_PATH_ANIMATION_CSS: () => SVG_PATH_ANIMATION_CSS,
98
107
  TABLE_AUTO_VIRTUAL_THRESHOLD: () => TABLE_AUTO_VIRTUAL_THRESHOLD,
99
108
  TABLE_VIRTUAL_RECOMMENDATION_THRESHOLD: () => TABLE_VIRTUAL_RECOMMENDATION_THRESHOLD,
109
+ THEME_CONFIG_CSS_VARS: () => THEME_CONFIG_CSS_VARS,
100
110
  THEME_CSS_VARS: () => THEME_CSS_VARS,
101
111
  TIGER_BREAKPOINT_CSS_VALUES: () => TIGER_BREAKPOINT_CSS_VALUES,
102
112
  TIGER_VIEWPORT_BREAKPOINTS: () => TIGER_VIEWPORT_BREAKPOINTS,
@@ -108,13 +118,19 @@ __export(src_exports, {
108
118
  TimePickerCloseIconPath: () => TimePickerCloseIconPath,
109
119
  VIEW_TRANSITION_CSS: () => VIEW_TRANSITION_CSS,
110
120
  WEEKDAYS: () => WEEKDAYS,
111
- ZH_CN_DATEPICKER_LOCALE: () => ZH_CN_DATEPICKER_LOCALE,
121
+ ZH_CN_CALENDAR_LABELS: () => ZH_CN_CALENDAR_LABELS,
122
+ ZH_CN_DATEPICKER_LOCALE: () => ZH_CN_DATEPICKER_LOCALE2,
123
+ ZH_CN_FILE_MANAGER_LABELS: () => ZH_CN_FILE_MANAGER_LABELS,
112
124
  ZH_CN_FORM_VALIDATION_LABELS: () => ZH_CN_FORM_VALIDATION_LABELS,
113
125
  ZH_CN_FORM_WIZARD_LABELS: () => ZH_CN_FORM_WIZARD_LABELS,
126
+ ZH_CN_IMAGE_EDITOR_LABELS: () => ZH_CN_IMAGE_EDITOR_LABELS,
127
+ ZH_CN_IMAGE_VIEWER_LABELS: () => ZH_CN_IMAGE_VIEWER_LABELS,
114
128
  ZH_CN_PAGINATION_LABELS: () => ZH_CN_PAGINATION_LABELS,
129
+ ZH_CN_STATUS_LABELS: () => ZH_CN_STATUS_LABELS,
115
130
  ZH_CN_TABLE_LABELS: () => ZH_CN_TABLE_LABELS,
116
131
  ZH_CN_TASK_BOARD_LABELS: () => ZH_CN_TASK_BOARD_LABELS,
117
132
  ZH_CN_TIME_PICKER_LABELS: () => ZH_CN_TIME_PICKER_LABELS,
133
+ ZH_CN_TOUR_LABELS: () => ZH_CN_TOUR_LABELS,
118
134
  ZH_CN_UPLOAD_LABELS: () => ZH_CN_UPLOAD_LABELS,
119
135
  activeOpacityClasses: () => activeOpacityClasses,
120
136
  activePressClasses: () => activePressClasses,
@@ -224,6 +240,7 @@ __export(src_exports, {
224
240
  calculateResizeDelta: () => calculateResizeDelta,
225
241
  calculateStepStatus: () => calculateStepStatus,
226
242
  calculateTransform: () => calculateTransform,
243
+ calculateVirtualColumnRange: () => calculateVirtualColumnRange,
227
244
  calculateVirtualRange: () => calculateVirtualRange,
228
245
  calendarHeaderClasses: () => calendarHeaderClasses,
229
246
  calendarNavButtonClasses: () => calendarNavButtonClasses,
@@ -275,6 +292,7 @@ __export(src_exports, {
275
292
  chartCanvasBaseClasses: () => chartCanvasBaseClasses,
276
293
  chartGridLineClasses: () => chartGridLineClasses,
277
294
  chartInteractiveClasses: () => chartInteractiveClasses,
295
+ chatStatusBarBaseClasses: () => chatStatusBarBaseClasses,
278
296
  checkSolidIcon20PathD: () => checkSolidIcon20PathD,
279
297
  checkboxLabelSizeClasses: () => checkboxLabelSizeClasses,
280
298
  checkboxSizeClasses: () => checkboxSizeClasses2,
@@ -313,6 +331,8 @@ __export(src_exports, {
313
331
  codeBlockCopyButtonBaseClasses: () => codeBlockCopyButtonBaseClasses,
314
332
  codeBlockCopyButtonCopiedClasses: () => codeBlockCopyButtonCopiedClasses,
315
333
  codeBlockPreClasses: () => codeBlockPreClasses,
334
+ codeEditorActiveLineDarkClasses: () => codeEditorActiveLineDarkClasses,
335
+ codeEditorActiveLineLightClasses: () => codeEditorActiveLineLightClasses,
316
336
  codeEditorBaseClasses: () => codeEditorBaseClasses,
317
337
  codeEditorDarkClasses: () => codeEditorDarkClasses,
318
338
  codeEditorDisabledClasses: () => codeEditorDisabledClasses,
@@ -518,6 +538,7 @@ __export(src_exports, {
518
538
  downloadCsv: () => downloadCsv,
519
539
  downloadExcel: () => downloadExcel,
520
540
  downloadTableExport: () => downloadTableExport,
541
+ downsampleSeriesData: () => downsampleSeriesData,
521
542
  drawSignatureStrokes: () => drawSignatureStrokes,
522
543
  dynamicSizeStrategy: () => dynamicSizeStrategy,
523
544
  easeOutCubic: () => easeOutCubic2,
@@ -568,6 +589,7 @@ __export(src_exports, {
568
589
  filterHiddenFiles: () => filterHiddenFiles,
569
590
  filterMenuItems: () => filterMenuItems,
570
591
  filterOptions: () => filterOptions,
592
+ filterTableData: () => filterTableData,
571
593
  filterTransferItems: () => filterTransferItems,
572
594
  filterTreeNodes: () => filterTreeNodes,
573
595
  filterTreeSelectNodes: () => filterTreeSelectNodes,
@@ -606,6 +628,7 @@ __export(src_exports, {
606
628
  focusTimePickerOption: () => focusTimePickerOption,
607
629
  formatActivityTime: () => formatActivityTime,
608
630
  formatBadgeContent: () => formatBadgeContent,
631
+ formatBytes: () => formatBytes,
609
632
  formatChatTime: () => formatChatTime,
610
633
  formatColorString: () => formatColorString,
611
634
  formatCommentTime: () => formatCommentTime,
@@ -647,6 +670,7 @@ __export(src_exports, {
647
670
  getAccessibleTransitionClasses: () => getAccessibleTransitionClasses,
648
671
  getActiveElement: () => getActiveElement,
649
672
  getActiveIndex: () => getActiveIndex,
673
+ getActiveLineIndex: () => getActiveLineIndex,
650
674
  getActiveTourStepPosition: () => getActiveTourStepPosition,
651
675
  getActiveTourSteps: () => getActiveTourSteps,
652
676
  getAlertIconPath: () => getAlertIconPath,
@@ -684,6 +708,7 @@ __export(src_exports, {
684
708
  getCalendarContainerClasses: () => getCalendarContainerClasses,
685
709
  getCalendarDayClasses: () => getCalendarDayClasses,
686
710
  getCalendarDays: () => getCalendarDays,
711
+ getCalendarLabels: () => getCalendarLabels,
687
712
  getCalendarMonthClasses: () => getCalendarMonthClasses,
688
713
  getCalendarMonthDaysCacheSize: () => getCalendarMonthDaysCacheSize,
689
714
  getCardClasses: () => getCardClasses,
@@ -710,6 +735,7 @@ __export(src_exports, {
710
735
  getChartSvgDataUrl: () => getChartSvgDataUrl,
711
736
  getChartTooltipTransform: () => getChartTooltipTransform,
712
737
  getChatMessageStatusInfo: () => getChatMessageStatusInfo,
738
+ getChatStatusBarClasses: () => getChatStatusBarClasses,
713
739
  getCheckboxCellClasses: () => getCheckboxCellClasses,
714
740
  getCheckboxClasses: () => getCheckboxClasses,
715
741
  getCheckboxLabelClasses: () => getCheckboxLabelClasses,
@@ -717,6 +743,7 @@ __export(src_exports, {
717
743
  getCircleSize: () => getCircleSize,
718
744
  getCodeBlockContainerClasses: () => getCodeBlockContainerClasses,
719
745
  getCodeBlockCopyButtonClasses: () => getCodeBlockCopyButtonClasses,
746
+ getCodeEditorActiveLineClasses: () => getCodeEditorActiveLineClasses,
720
747
  getCodeEditorContainerClasses: () => getCodeEditorContainerClasses,
721
748
  getColGutterClasses: () => getColGutterClasses,
722
749
  getColMergedStyleVars: () => getColMergedStyleVars,
@@ -752,6 +779,7 @@ __export(src_exports, {
752
779
  getCurrentActiveTourStep: () => getCurrentActiveTourStep,
753
780
  getCurrentTime: () => getCurrentTime,
754
781
  getCyclicIndex: () => getCyclicIndex,
782
+ getDatePickerCalendarCellState: () => getDatePickerCalendarCellState,
755
783
  getDatePickerDayCellClasses: () => getDatePickerDayCellClasses,
756
784
  getDatePickerIconButtonClasses: () => getDatePickerIconButtonClasses,
757
785
  getDatePickerInputClasses: () => getDatePickerInputClasses,
@@ -799,9 +827,11 @@ __export(src_exports, {
799
827
  getFieldDependencies: () => getFieldDependencies,
800
828
  getFieldError: () => getFieldError,
801
829
  getFileExtension: () => getFileExtension2,
830
+ getFileExtensionName: () => getFileExtensionName,
802
831
  getFileItemClasses: () => getFileItemClasses,
803
832
  getFileListItemClasses: () => getFileListItemClasses,
804
833
  getFileManagerContainerClasses: () => getFileManagerContainerClasses,
834
+ getFileManagerLabels: () => getFileManagerLabels,
805
835
  getFirstDayOfMonth: () => getFirstDayOfMonth,
806
836
  getFirstVisibleChildKey: () => getFirstVisibleChildKey,
807
837
  getFixedColumnOffsets: () => getFixedColumnOffsets,
@@ -840,9 +870,11 @@ __export(src_exports, {
840
870
  getImageAnnotationStrokeColor: () => getImageAnnotationStrokeColor,
841
871
  getImageAnnotationToolButtonClasses: () => getImageAnnotationToolButtonClasses,
842
872
  getImageAnnotationToolLabel: () => getImageAnnotationToolLabel,
873
+ getImageEditorLabels: () => getImageEditorLabels,
843
874
  getImageGroupClasses: () => getImageGroupClasses,
844
875
  getImageImgClasses: () => getImageImgClasses,
845
876
  getImageTransformStyle: () => getImageTransformStyle,
877
+ getImageViewerLabels: () => getImageViewerLabels,
846
878
  getImmediateTigerLocale: () => getImmediateTigerLocale,
847
879
  getInfiniteScrollContainerClasses: () => getInfiniteScrollContainerClasses,
848
880
  getInitialCollapseContentStyle: () => getInitialCollapseContentStyle,
@@ -910,6 +942,7 @@ __export(src_exports, {
910
942
  getNextColorSwatchIndex: () => getNextColorSwatchIndex,
911
943
  getNextImageAnnotationTool: () => getNextImageAnnotationTool,
912
944
  getNextSlideIndex: () => getNextSlideIndex,
945
+ getNextTableSelectAllKeys: () => getNextTableSelectAllKeys,
913
946
  getNotificationIconPath: () => getNotificationIconPath,
914
947
  getNotificationTypeClasses: () => getNotificationTypeClasses,
915
948
  getNumberExtent: () => getNumberExtent,
@@ -982,6 +1015,8 @@ __export(src_exports, {
982
1015
  getRadioVisualClasses: () => getRadioVisualClasses,
983
1016
  getRateStarClasses: () => getRateStarClasses,
984
1017
  getResizableHandleClasses: () => getResizableHandleClasses,
1018
+ getResizeHandleOrientation: () => getResizeHandleOrientation,
1019
+ getResizeKeyboardDelta: () => getResizeKeyboardDelta,
985
1020
  getResultColorScheme: () => getResultColorScheme,
986
1021
  getResultHttpLabel: () => getResultHttpLabel,
987
1022
  getResultIconPath: () => getResultIconPath,
@@ -1011,6 +1046,7 @@ __export(src_exports, {
1011
1046
  getSelectOptionClasses: () => getSelectOptionClasses,
1012
1047
  getSelectSizeClasses: () => getSelectSizeClasses,
1013
1048
  getSelectTriggerClasses: () => getSelectTriggerClasses,
1049
+ getSelectVirtualItemHeight: () => getSelectVirtualItemHeight,
1014
1050
  getSeparatorContent: () => getSeparatorContent,
1015
1051
  getShortDayNames: () => getShortDayNames,
1016
1052
  getShortMonthNames: () => getShortMonthNames,
@@ -1049,6 +1085,7 @@ __export(src_exports, {
1049
1085
  getStaggeredMotionStyle: () => getStaggeredMotionStyle,
1050
1086
  getStatisticTitleClasses: () => getStatisticTitleClasses,
1051
1087
  getStatisticValueClasses: () => getStatisticValueClasses,
1088
+ getStatusLabels: () => getStatusLabels,
1052
1089
  getStatusVariant: () => getStatusVariant,
1053
1090
  getStepContentClasses: () => getStepContentClasses,
1054
1091
  getStepDescriptionClasses: () => getStepDescriptionClasses,
@@ -1084,7 +1121,9 @@ __export(src_exports, {
1084
1121
  getTableResponsiveCardListClasses: () => getTableResponsiveCardListClasses,
1085
1122
  getTableResponsiveTableClasses: () => getTableResponsiveTableClasses,
1086
1123
  getTableRowClasses: () => getTableRowClasses,
1124
+ getTableSelectionState: () => getTableSelectionState,
1087
1125
  getTableVirtualRecommendation: () => getTableVirtualRecommendation,
1126
+ getTableVirtualWindow: () => getTableVirtualWindow,
1088
1127
  getTableWrapperClasses: () => getTableWrapperClasses,
1089
1128
  getTabsContainerClasses: () => getTabsContainerClasses,
1090
1129
  getTagVariantClasses: () => getTagVariantClasses,
@@ -1114,6 +1153,7 @@ __export(src_exports, {
1114
1153
  getTotalPages: () => getTotalPages,
1115
1154
  getTotalTextClasses: () => getTotalTextClasses,
1116
1155
  getTouchDistance: () => getTouchDistance,
1156
+ getTourLabels: () => getTourLabels,
1117
1157
  getTourPopoverPosition: () => getTourPopoverPosition,
1118
1158
  getTourSpotlightStyle: () => getTourSpotlightStyle,
1119
1159
  getTourTargetRect: () => getTourTargetRect,
@@ -1172,6 +1212,7 @@ __export(src_exports, {
1172
1212
  handleUploadDrop: () => handleUploadDrop,
1173
1213
  hasErrors: () => hasErrors,
1174
1214
  hasGutter: () => hasGutter,
1215
+ hasTableSelectionColumn: () => hasTableSelectionColumn,
1175
1216
  hexToRgb: () => hexToRgb2,
1176
1217
  highContrastTheme: () => highContrastTheme,
1177
1218
  hsvToRgb: () => hsvToRgb,
@@ -1267,6 +1308,7 @@ __export(src_exports, {
1267
1308
  isEscapeKey: () => isEscapeKey,
1268
1309
  isEventOutside: () => isEventOutside,
1269
1310
  isHTMLElement: () => isHTMLElement,
1311
+ isHttpResultStatus: () => isHttpResultStatus,
1270
1312
  isImageAnnotationPathClosed: () => isImageAnnotationPathClosed,
1271
1313
  isImageAnnotationShapeTool: () => isImageAnnotationShapeTool,
1272
1314
  isInlineFormat: () => isInlineFormat,
@@ -1418,6 +1460,7 @@ __export(src_exports, {
1418
1460
  moveItemBetweenContainers: () => moveItemBetweenContainers,
1419
1461
  movePan: () => movePan,
1420
1462
  movePinch: () => movePinch,
1463
+ moveTransferItems: () => moveTransferItems,
1421
1464
  naturalTheme: () => naturalTheme,
1422
1465
  navigateToFolder: () => navigateToFolder,
1423
1466
  nextIconPath: () => nextIconPath,
@@ -1573,6 +1616,7 @@ __export(src_exports, {
1573
1616
  resolveCarouselSwipeDirection: () => resolveCarouselSwipeDirection,
1574
1617
  resolveChartPalette: () => resolveChartPalette,
1575
1618
  resolveChartTooltipContent: () => resolveChartTooltipContent,
1619
+ resolveChartTooltipPosition: () => resolveChartTooltipPosition,
1576
1620
  resolveConditionalFormRules: () => resolveConditionalFormRules,
1577
1621
  resolveCreatableSelectOption: () => resolveCreatableSelectOption,
1578
1622
  resolveDragConfig: () => resolveDragConfig,
@@ -1607,6 +1651,8 @@ __export(src_exports, {
1607
1651
  richTextContainerDisabled: () => richTextContainerDisabled,
1608
1652
  richTextEditorAreaBase: () => richTextEditorAreaBase,
1609
1653
  richTextEditorAreaReadOnly: () => richTextEditorAreaReadOnly,
1654
+ richTextHtmlToMode: () => richTextHtmlToMode,
1655
+ richTextModeToHtml: () => richTextModeToHtml,
1610
1656
  richTextPlaceholderClasses: () => richTextPlaceholderClasses,
1611
1657
  richTextToolbarButtonActive: () => richTextToolbarButtonActive,
1612
1658
  richTextToolbarButtonBase: () => richTextToolbarButtonBase,
@@ -1668,6 +1714,7 @@ __export(src_exports, {
1668
1714
  sliderGetValueFromPosition: () => sliderGetValueFromPosition,
1669
1715
  sliderNormalizeValue: () => sliderNormalizeValue,
1670
1716
  sliderRangeClasses: () => sliderRangeClasses,
1717
+ sliderResolveMarks: () => sliderResolveMarks,
1671
1718
  sliderSizeClasses: () => sliderSizeClasses,
1672
1719
  sliderThumbClasses: () => sliderThumbClasses,
1673
1720
  sliderTooltipClasses: () => sliderTooltipClasses,
@@ -1717,6 +1764,9 @@ __export(src_exports, {
1717
1764
  statusSuccessIconPath: () => statusSuccessIconPath,
1718
1765
  statusWarningIconPath: () => statusWarningIconPath,
1719
1766
  stepFinishChar: () => stepFinishChar,
1767
+ stepFinishIconPathD: () => stepFinishIconPathD,
1768
+ stepFinishIconStrokeWidth: () => stepFinishIconStrokeWidth,
1769
+ stepFinishIconViewBox: () => stepFinishIconViewBox,
1720
1770
  stepValue: () => stepValue,
1721
1771
  stepperBaseClasses: () => stepperBaseClasses,
1722
1772
  stepperIconViewBox: () => stepperIconViewBox,
@@ -1803,6 +1853,7 @@ __export(src_exports, {
1803
1853
  textDecorationClasses: () => textDecorationClasses,
1804
1854
  textSizeClasses: () => textSizeClasses,
1805
1855
  textWeightClasses: () => textWeightClasses,
1856
+ themeConfigToCssVars: () => themeConfigToCssVars,
1806
1857
  tigercatDarkTheme: () => tigercatDarkTheme,
1807
1858
  tigercatPlugin: () => tigercatPlugin,
1808
1859
  tigercatTheme: () => tigercatTheme,
@@ -2396,37 +2447,65 @@ function getPieDrawAnimationStyle(circumference, targetOffset, durationMs = 800)
2396
2447
 
2397
2448
  // src/utils/helpers/slider-utils.ts
2398
2449
  function sliderNormalizeValue(value, min, max, step = 1) {
2399
- const clamped = Math.min(Math.max(value, min), max);
2400
- const stepped = Math.round((clamped - min) / step) * step + min;
2401
- return Math.min(stepped, max);
2450
+ const safeMin = Number.isFinite(min) ? min : 0;
2451
+ const safeMax = Number.isFinite(max) ? max : safeMin;
2452
+ const lower = Math.min(safeMin, safeMax);
2453
+ const upper = Math.max(safeMin, safeMax);
2454
+ const safeStep = Number.isFinite(step) && step > 0 ? step : 1;
2455
+ const safeValue = Number.isFinite(value) ? value : lower;
2456
+ const clamped = Math.min(Math.max(safeValue, lower), upper);
2457
+ const stepped = Math.round((clamped - lower) / safeStep) * safeStep + lower;
2458
+ return Math.min(Math.max(stepped, lower), upper);
2459
+ }
2460
+ function sliderResolveMarks(marks, min, max) {
2461
+ if (!marks) return {};
2462
+ if (typeof marks === "object") return marks;
2463
+ const safeMin = Number.isFinite(min) ? min : 0;
2464
+ const safeMax = Number.isFinite(max) ? max : safeMin;
2465
+ const lower = Math.min(safeMin, safeMax);
2466
+ const upper = Math.max(safeMin, safeMax);
2467
+ if (lower === upper) return { [lower]: String(lower) };
2468
+ return { [lower]: String(lower), [upper]: String(upper) };
2402
2469
  }
2403
2470
  function sliderGetPercentage(value, min, max) {
2404
- if (max === min) return 0;
2405
- return (value - min) / (max - min) * 100;
2471
+ const safeMin = Number.isFinite(min) ? min : 0;
2472
+ const safeMax = Number.isFinite(max) ? max : safeMin;
2473
+ const lower = Math.min(safeMin, safeMax);
2474
+ const upper = Math.max(safeMin, safeMax);
2475
+ if (upper === lower) return 0;
2476
+ const safeValue = Number.isFinite(value) ? value : lower;
2477
+ return (Math.min(Math.max(safeValue, lower), upper) - lower) / (upper - lower) * 100;
2406
2478
  }
2407
2479
  function sliderGetValueFromPosition(position, trackWidth, min, max, step = 1) {
2408
- if (trackWidth === 0) return min;
2409
- const ratio = position / trackWidth;
2410
- const rawValue = ratio * (max - min) + min;
2411
- return sliderNormalizeValue(rawValue, min, max, step);
2480
+ const safeMin = Number.isFinite(min) ? min : 0;
2481
+ const safeMax = Number.isFinite(max) ? max : safeMin;
2482
+ const lower = Math.min(safeMin, safeMax);
2483
+ const upper = Math.max(safeMin, safeMax);
2484
+ if (!Number.isFinite(trackWidth) || trackWidth <= 0) return lower;
2485
+ const safePosition = Number.isFinite(position) ? Math.min(Math.max(position, 0), trackWidth) : 0;
2486
+ const ratio = safePosition / trackWidth;
2487
+ const rawValue = ratio * (upper - lower) + lower;
2488
+ return sliderNormalizeValue(rawValue, lower, upper, step);
2412
2489
  }
2413
2490
  function sliderGetKeyboardValue(key, currentValue, min, max, step = 1, largeStep) {
2414
- const bigStep = largeStep ?? step * 10;
2491
+ const safeStep = Number.isFinite(step) && step > 0 ? step : 1;
2492
+ const bigStep = Number.isFinite(largeStep) && largeStep > 0 ? largeStep : safeStep * 10;
2493
+ const safeCurrent = sliderNormalizeValue(currentValue, min, max, safeStep);
2415
2494
  switch (key) {
2416
2495
  case "ArrowRight":
2417
2496
  case "ArrowUp":
2418
- return sliderNormalizeValue(currentValue + step, min, max, step);
2497
+ return sliderNormalizeValue(safeCurrent + safeStep, min, max, safeStep);
2419
2498
  case "ArrowLeft":
2420
2499
  case "ArrowDown":
2421
- return sliderNormalizeValue(currentValue - step, min, max, step);
2500
+ return sliderNormalizeValue(safeCurrent - safeStep, min, max, safeStep);
2422
2501
  case "PageUp":
2423
- return sliderNormalizeValue(currentValue + bigStep, min, max, step);
2502
+ return sliderNormalizeValue(safeCurrent + bigStep, min, max, safeStep);
2424
2503
  case "PageDown":
2425
- return sliderNormalizeValue(currentValue - bigStep, min, max, step);
2504
+ return sliderNormalizeValue(safeCurrent - bigStep, min, max, safeStep);
2426
2505
  case "Home":
2427
- return min;
2506
+ return sliderNormalizeValue(min, min, max, safeStep);
2428
2507
  case "End":
2429
- return max;
2508
+ return sliderNormalizeValue(max, min, max, safeStep);
2430
2509
  default:
2431
2510
  return null;
2432
2511
  }
@@ -3075,14 +3154,23 @@ var TIGER_LOCALE_KEYS = [
3075
3154
  "locale",
3076
3155
  "direction",
3077
3156
  "common",
3157
+ "empty",
3078
3158
  "modal",
3079
3159
  "drawer",
3160
+ "qrcode",
3161
+ "timeline",
3080
3162
  "upload",
3081
3163
  "pagination",
3082
3164
  "table",
3083
3165
  "datePicker",
3084
3166
  "timePicker",
3085
3167
  "formWizard",
3168
+ "tour",
3169
+ "calendar",
3170
+ "fileManager",
3171
+ "imageViewer",
3172
+ "imageEditor",
3173
+ "status",
3086
3174
  "taskBoard",
3087
3175
  "formValidation"
3088
3176
  ];
@@ -3124,14 +3212,23 @@ function mergeTigerLocale(base, override) {
3124
3212
  locale: override?.locale ?? base?.locale,
3125
3213
  direction: override?.direction ?? base?.direction,
3126
3214
  common: { ...base?.common, ...override?.common },
3215
+ empty: { ...base?.empty, ...override?.empty },
3127
3216
  modal: { ...base?.modal, ...override?.modal },
3128
3217
  drawer: { ...base?.drawer, ...override?.drawer },
3218
+ qrcode: { ...base?.qrcode, ...override?.qrcode },
3219
+ timeline: { ...base?.timeline, ...override?.timeline },
3129
3220
  upload: { ...base?.upload, ...override?.upload },
3130
3221
  pagination: { ...base?.pagination, ...override?.pagination },
3131
3222
  table: { ...base?.table, ...override?.table },
3132
3223
  datePicker: { ...base?.datePicker, ...override?.datePicker },
3133
3224
  timePicker: { ...base?.timePicker, ...override?.timePicker },
3134
3225
  formWizard: { ...base?.formWizard, ...override?.formWizard },
3226
+ tour: { ...base?.tour, ...override?.tour },
3227
+ calendar: { ...base?.calendar, ...override?.calendar },
3228
+ fileManager: { ...base?.fileManager, ...override?.fileManager },
3229
+ imageViewer: { ...base?.imageViewer, ...override?.imageViewer },
3230
+ imageEditor: { ...base?.imageEditor, ...override?.imageEditor },
3231
+ status: { ...base?.status, ...override?.status },
3135
3232
  taskBoard: { ...base?.taskBoard, ...override?.taskBoard },
3136
3233
  formValidation: { ...base?.formValidation, ...override?.formValidation }
3137
3234
  };
@@ -3194,6 +3291,59 @@ var ZH_CN_FORM_WIZARD_LABELS = {
3194
3291
  nextText: "\u4E0B\u4E00\u6B65",
3195
3292
  finishText: "\u5B8C\u6210"
3196
3293
  };
3294
+ var DEFAULT_TOUR_LABELS = {
3295
+ prevText: "Previous",
3296
+ nextText: "Next",
3297
+ finishText: "Finish",
3298
+ closeAriaLabel: "Close tour"
3299
+ };
3300
+ var ZH_CN_TOUR_LABELS = {
3301
+ prevText: "\u4E0A\u4E00\u6B65",
3302
+ nextText: "\u4E0B\u4E00\u6B65",
3303
+ finishText: "\u5B8C\u6210",
3304
+ closeAriaLabel: "\u5173\u95ED\u5BFC\u89C8"
3305
+ };
3306
+ function getTourLabels(locale, overrides) {
3307
+ const isZh = locale?.locale?.startsWith("zh");
3308
+ const defaultLabels = isZh ? ZH_CN_TOUR_LABELS : DEFAULT_TOUR_LABELS;
3309
+ return {
3310
+ prevText: overrides?.prevText ?? locale?.tour?.prevText ?? locale?.formWizard?.prevText ?? defaultLabels.prevText,
3311
+ nextText: overrides?.nextText ?? locale?.tour?.nextText ?? locale?.formWizard?.nextText ?? defaultLabels.nextText,
3312
+ finishText: overrides?.finishText ?? locale?.tour?.finishText ?? locale?.formWizard?.finishText ?? defaultLabels.finishText,
3313
+ closeAriaLabel: overrides?.closeAriaLabel ?? locale?.tour?.closeAriaLabel ?? locale?.common?.closeText ?? defaultLabels.closeAriaLabel
3314
+ };
3315
+ }
3316
+ var DEFAULT_CALENDAR_LABELS = {
3317
+ previousMonth: "Previous month",
3318
+ nextMonth: "Next month",
3319
+ previousYear: "Previous year",
3320
+ nextYear: "Next year",
3321
+ yearSelectAriaLabel: "Year",
3322
+ monthSelectAriaLabel: "Month",
3323
+ daySelectAriaLabel: "Day"
3324
+ };
3325
+ var ZH_CN_CALENDAR_LABELS = {
3326
+ previousMonth: "\u4E0A\u4E2A\u6708",
3327
+ nextMonth: "\u4E0B\u4E2A\u6708",
3328
+ previousYear: "\u4E0A\u4E00\u5E74",
3329
+ nextYear: "\u4E0B\u4E00\u5E74",
3330
+ yearSelectAriaLabel: "\u5E74\u4EFD",
3331
+ monthSelectAriaLabel: "\u6708\u4EFD",
3332
+ daySelectAriaLabel: "\u65E5\u671F"
3333
+ };
3334
+ function getCalendarLabels(locale) {
3335
+ const isZh = locale?.locale?.startsWith("zh");
3336
+ const defaultLabels = isZh ? ZH_CN_CALENDAR_LABELS : DEFAULT_CALENDAR_LABELS;
3337
+ return {
3338
+ previousMonth: locale?.calendar?.previousMonth ?? defaultLabels.previousMonth,
3339
+ nextMonth: locale?.calendar?.nextMonth ?? defaultLabels.nextMonth,
3340
+ previousYear: locale?.calendar?.previousYear ?? defaultLabels.previousYear,
3341
+ nextYear: locale?.calendar?.nextYear ?? defaultLabels.nextYear,
3342
+ yearSelectAriaLabel: locale?.calendar?.yearSelectAriaLabel ?? defaultLabels.yearSelectAriaLabel,
3343
+ monthSelectAriaLabel: locale?.calendar?.monthSelectAriaLabel ?? defaultLabels.monthSelectAriaLabel,
3344
+ daySelectAriaLabel: locale?.calendar?.daySelectAriaLabel ?? defaultLabels.daySelectAriaLabel
3345
+ };
3346
+ }
3197
3347
  function getFormWizardLabels(locale, overrides) {
3198
3348
  const isZh = locale?.locale?.startsWith("zh");
3199
3349
  const defaultLabels = isZh ? ZH_CN_FORM_WIZARD_LABELS : DEFAULT_FORM_WIZARD_LABELS;
@@ -3244,7 +3394,15 @@ var DEFAULT_TABLE_LABELS = {
3244
3394
  columnSettingsText: "Column settings",
3245
3395
  columnSettingsAriaLabel: "Column settings",
3246
3396
  lockColumnAriaLabel: "Lock column {column}",
3247
- unlockColumnAriaLabel: "Unlock column {column}"
3397
+ unlockColumnAriaLabel: "Unlock column {column}",
3398
+ allText: "All",
3399
+ filterPlaceholder: "Filter...",
3400
+ exportCsvText: "Export CSV",
3401
+ exportExcelText: "Export Excel",
3402
+ exportCsvAriaLabel: "Export to CSV",
3403
+ exportExcelAriaLabel: "Export to Excel",
3404
+ expandRowAriaLabel: "Expand row",
3405
+ collapseRowAriaLabel: "Collapse row"
3248
3406
  };
3249
3407
  var ZH_CN_TABLE_LABELS = {
3250
3408
  emptyText: "\u6682\u65E0\u6570\u636E",
@@ -3263,7 +3421,15 @@ var ZH_CN_TABLE_LABELS = {
3263
3421
  columnSettingsText: "\u5217\u8BBE\u7F6E",
3264
3422
  columnSettingsAriaLabel: "\u5217\u8BBE\u7F6E",
3265
3423
  lockColumnAriaLabel: "\u9501\u5B9A{column}\u5217",
3266
- unlockColumnAriaLabel: "\u53D6\u6D88\u9501\u5B9A{column}\u5217"
3424
+ unlockColumnAriaLabel: "\u53D6\u6D88\u9501\u5B9A{column}\u5217",
3425
+ allText: "\u5168\u90E8",
3426
+ filterPlaceholder: "\u7B5B\u9009...",
3427
+ exportCsvText: "\u5BFC\u51FA CSV",
3428
+ exportExcelText: "\u5BFC\u51FA Excel",
3429
+ exportCsvAriaLabel: "\u5BFC\u51FA\u4E3A CSV",
3430
+ exportExcelAriaLabel: "\u5BFC\u51FA\u4E3A Excel",
3431
+ expandRowAriaLabel: "\u5C55\u5F00\u884C",
3432
+ collapseRowAriaLabel: "\u6536\u8D77\u884C"
3267
3433
  };
3268
3434
  function getTableLabels(locale, overrides) {
3269
3435
  const isZh = !!locale?.locale?.startsWith("zh") || locale?.common?.emptyText === "\u6682\u65E0\u6570\u636E" || locale?.table?.searchButtonText === "\u641C\u7D22";
@@ -3285,7 +3451,15 @@ function getTableLabels(locale, overrides) {
3285
3451
  columnSettingsText: overrides?.columnSettingsText ?? locale?.table?.columnSettingsText ?? defaultLabels.columnSettingsText,
3286
3452
  columnSettingsAriaLabel: overrides?.columnSettingsAriaLabel ?? locale?.table?.columnSettingsAriaLabel ?? defaultLabels.columnSettingsAriaLabel,
3287
3453
  lockColumnAriaLabel: overrides?.lockColumnAriaLabel ?? locale?.table?.lockColumnAriaLabel ?? defaultLabels.lockColumnAriaLabel,
3288
- unlockColumnAriaLabel: overrides?.unlockColumnAriaLabel ?? locale?.table?.unlockColumnAriaLabel ?? defaultLabels.unlockColumnAriaLabel
3454
+ unlockColumnAriaLabel: overrides?.unlockColumnAriaLabel ?? locale?.table?.unlockColumnAriaLabel ?? defaultLabels.unlockColumnAriaLabel,
3455
+ allText: overrides?.allText ?? locale?.table?.allText ?? defaultLabels.allText,
3456
+ filterPlaceholder: overrides?.filterPlaceholder ?? locale?.table?.filterPlaceholder ?? defaultLabels.filterPlaceholder,
3457
+ exportCsvText: overrides?.exportCsvText ?? locale?.table?.exportCsvText ?? defaultLabels.exportCsvText,
3458
+ exportExcelText: overrides?.exportExcelText ?? locale?.table?.exportExcelText ?? defaultLabels.exportExcelText,
3459
+ exportCsvAriaLabel: overrides?.exportCsvAriaLabel ?? locale?.table?.exportCsvAriaLabel ?? defaultLabels.exportCsvAriaLabel,
3460
+ exportExcelAriaLabel: overrides?.exportExcelAriaLabel ?? locale?.table?.exportExcelAriaLabel ?? defaultLabels.exportExcelAriaLabel,
3461
+ expandRowAriaLabel: overrides?.expandRowAriaLabel ?? locale?.table?.expandRowAriaLabel ?? defaultLabels.expandRowAriaLabel,
3462
+ collapseRowAriaLabel: overrides?.collapseRowAriaLabel ?? locale?.table?.collapseRowAriaLabel ?? defaultLabels.collapseRowAriaLabel
3289
3463
  };
3290
3464
  }
3291
3465
  function formatTableSelectRowAriaLabel(template, row, locale) {
@@ -3297,6 +3471,7 @@ function formatTableSortByText(template, column) {
3297
3471
  var DEFAULT_TASK_BOARD_LABELS = {
3298
3472
  emptyColumnText: "No tasks",
3299
3473
  addCardText: "Add task",
3474
+ addColumnText: "Add column",
3300
3475
  wipLimitText: "WIP limit: {limit}",
3301
3476
  dragHintText: "Drag to move",
3302
3477
  boardAriaLabel: "Task Board"
@@ -3304,6 +3479,7 @@ var DEFAULT_TASK_BOARD_LABELS = {
3304
3479
  var ZH_CN_TASK_BOARD_LABELS = {
3305
3480
  emptyColumnText: "\u6682\u65E0\u4EFB\u52A1",
3306
3481
  addCardText: "\u6DFB\u52A0\u4EFB\u52A1",
3482
+ addColumnText: "\u6DFB\u52A0\u5217",
3307
3483
  wipLimitText: "WIP \u9650\u5236: {limit}",
3308
3484
  dragHintText: "\u62D6\u62FD\u4EE5\u79FB\u52A8",
3309
3485
  boardAriaLabel: "\u4EFB\u52A1\u770B\u677F"
@@ -3314,11 +3490,153 @@ function getTaskBoardLabels(locale, overrides) {
3314
3490
  return {
3315
3491
  emptyColumnText: overrides?.emptyColumnText ?? locale?.taskBoard?.emptyColumnText ?? defaultLabels.emptyColumnText,
3316
3492
  addCardText: overrides?.addCardText ?? locale?.taskBoard?.addCardText ?? defaultLabels.addCardText,
3493
+ addColumnText: overrides?.addColumnText ?? locale?.taskBoard?.addColumnText ?? defaultLabels.addColumnText,
3317
3494
  wipLimitText: overrides?.wipLimitText ?? locale?.taskBoard?.wipLimitText ?? defaultLabels.wipLimitText,
3318
3495
  dragHintText: overrides?.dragHintText ?? locale?.taskBoard?.dragHintText ?? defaultLabels.dragHintText,
3319
3496
  boardAriaLabel: overrides?.boardAriaLabel ?? locale?.taskBoard?.boardAriaLabel ?? defaultLabels.boardAriaLabel
3320
3497
  };
3321
3498
  }
3499
+ var DEFAULT_FILE_MANAGER_LABELS = {
3500
+ rootText: "Root"
3501
+ };
3502
+ var ZH_CN_FILE_MANAGER_LABELS = {
3503
+ rootText: "\u6839\u76EE\u5F55"
3504
+ };
3505
+ function getFileManagerLabels(locale) {
3506
+ const defaultLabels = locale?.locale?.startsWith("zh") ? ZH_CN_FILE_MANAGER_LABELS : DEFAULT_FILE_MANAGER_LABELS;
3507
+ return {
3508
+ rootText: locale?.fileManager?.rootText ?? defaultLabels.rootText
3509
+ };
3510
+ }
3511
+ var DEFAULT_IMAGE_VIEWER_LABELS = {
3512
+ dialogAriaLabel: "Image viewer",
3513
+ previewDialogAriaLabel: "Image preview",
3514
+ closeAriaLabel: "Close",
3515
+ closePreviewAriaLabel: "Close preview",
3516
+ previousImageAriaLabel: "Previous image",
3517
+ nextImageAriaLabel: "Next image",
3518
+ zoomOutAriaLabel: "Zoom out",
3519
+ resetAriaLabel: "Reset",
3520
+ zoomInAriaLabel: "Zoom in",
3521
+ rotateLeftAriaLabel: "Rotate left",
3522
+ rotateRightAriaLabel: "Rotate right"
3523
+ };
3524
+ var ZH_CN_IMAGE_VIEWER_LABELS = {
3525
+ dialogAriaLabel: "\u56FE\u7247\u67E5\u770B\u5668",
3526
+ previewDialogAriaLabel: "\u56FE\u7247\u9884\u89C8",
3527
+ closeAriaLabel: "\u5173\u95ED",
3528
+ closePreviewAriaLabel: "\u5173\u95ED\u9884\u89C8",
3529
+ previousImageAriaLabel: "\u4E0A\u4E00\u5F20\u56FE\u7247",
3530
+ nextImageAriaLabel: "\u4E0B\u4E00\u5F20\u56FE\u7247",
3531
+ zoomOutAriaLabel: "\u7F29\u5C0F",
3532
+ resetAriaLabel: "\u91CD\u7F6E",
3533
+ zoomInAriaLabel: "\u653E\u5927",
3534
+ rotateLeftAriaLabel: "\u5411\u5DE6\u65CB\u8F6C",
3535
+ rotateRightAriaLabel: "\u5411\u53F3\u65CB\u8F6C"
3536
+ };
3537
+ function getImageViewerLabels(locale) {
3538
+ const defaultLabels = locale?.locale?.startsWith("zh") ? ZH_CN_IMAGE_VIEWER_LABELS : DEFAULT_IMAGE_VIEWER_LABELS;
3539
+ return {
3540
+ dialogAriaLabel: locale?.imageViewer?.dialogAriaLabel ?? defaultLabels.dialogAriaLabel,
3541
+ previewDialogAriaLabel: locale?.imageViewer?.previewDialogAriaLabel ?? defaultLabels.previewDialogAriaLabel,
3542
+ closeAriaLabel: locale?.imageViewer?.closeAriaLabel ?? locale?.common?.closeText ?? defaultLabels.closeAriaLabel,
3543
+ closePreviewAriaLabel: locale?.imageViewer?.closePreviewAriaLabel ?? defaultLabels.closePreviewAriaLabel,
3544
+ previousImageAriaLabel: locale?.imageViewer?.previousImageAriaLabel ?? defaultLabels.previousImageAriaLabel,
3545
+ nextImageAriaLabel: locale?.imageViewer?.nextImageAriaLabel ?? defaultLabels.nextImageAriaLabel,
3546
+ zoomOutAriaLabel: locale?.imageViewer?.zoomOutAriaLabel ?? defaultLabels.zoomOutAriaLabel,
3547
+ resetAriaLabel: locale?.imageViewer?.resetAriaLabel ?? defaultLabels.resetAriaLabel,
3548
+ zoomInAriaLabel: locale?.imageViewer?.zoomInAriaLabel ?? defaultLabels.zoomInAriaLabel,
3549
+ rotateLeftAriaLabel: locale?.imageViewer?.rotateLeftAriaLabel ?? defaultLabels.rotateLeftAriaLabel,
3550
+ rotateRightAriaLabel: locale?.imageViewer?.rotateRightAriaLabel ?? defaultLabels.rotateRightAriaLabel
3551
+ };
3552
+ }
3553
+ var DEFAULT_IMAGE_EDITOR_LABELS = {
3554
+ selectImageText: "Select image",
3555
+ selectImageAriaLabel: "Select image to crop and upload",
3556
+ cropModalTitle: "Crop image",
3557
+ cropCancelText: "Cancel",
3558
+ cropConfirmText: "Confirm crop",
3559
+ cropperDialogAriaLabel: "Image cropper",
3560
+ imageToCropAriaLabel: "Image to crop",
3561
+ moveCropAreaAriaLabel: "Move crop area",
3562
+ resizeCropAreaAriaLabel: "Resize crop area {handle}",
3563
+ loadingCropImageAriaLabel: "Loading image for cropping",
3564
+ annotationToolbarAriaLabel: "Annotation tools",
3565
+ annotationEditorAriaLabel: "Image annotation editor",
3566
+ annotationCanvasAriaLabel: "Image annotation canvas",
3567
+ loadingAnnotationImageAriaLabel: "Loading image for annotation",
3568
+ selectToolText: "Select",
3569
+ rectangleToolText: "Rectangle",
3570
+ ellipseToolText: "Ellipse",
3571
+ polygonToolText: "Polygon",
3572
+ freehandToolText: "Freehand",
3573
+ deleteText: "Delete"
3574
+ };
3575
+ var ZH_CN_IMAGE_EDITOR_LABELS = {
3576
+ selectImageText: "\u9009\u62E9\u56FE\u7247",
3577
+ selectImageAriaLabel: "\u9009\u62E9\u56FE\u7247\u8FDB\u884C\u88C1\u526A\u5E76\u4E0A\u4F20",
3578
+ cropModalTitle: "\u88C1\u526A\u56FE\u7247",
3579
+ cropCancelText: "\u53D6\u6D88",
3580
+ cropConfirmText: "\u786E\u8BA4\u88C1\u526A",
3581
+ cropperDialogAriaLabel: "\u56FE\u7247\u88C1\u526A\u5668",
3582
+ imageToCropAriaLabel: "\u5F85\u88C1\u526A\u56FE\u7247",
3583
+ moveCropAreaAriaLabel: "\u79FB\u52A8\u88C1\u526A\u533A\u57DF",
3584
+ resizeCropAreaAriaLabel: "\u8C03\u6574\u88C1\u526A\u533A\u57DF {handle}",
3585
+ loadingCropImageAriaLabel: "\u6B63\u5728\u52A0\u8F7D\u5F85\u88C1\u526A\u56FE\u7247",
3586
+ annotationToolbarAriaLabel: "\u6807\u6CE8\u5DE5\u5177",
3587
+ annotationEditorAriaLabel: "\u56FE\u7247\u6807\u6CE8\u7F16\u8F91\u5668",
3588
+ annotationCanvasAriaLabel: "\u56FE\u7247\u6807\u6CE8\u753B\u5E03",
3589
+ loadingAnnotationImageAriaLabel: "\u6B63\u5728\u52A0\u8F7D\u5F85\u6807\u6CE8\u56FE\u7247",
3590
+ selectToolText: "\u9009\u62E9",
3591
+ rectangleToolText: "\u77E9\u5F62",
3592
+ ellipseToolText: "\u692D\u5706",
3593
+ polygonToolText: "\u591A\u8FB9\u5F62",
3594
+ freehandToolText: "\u81EA\u7531\u7ED8\u5236",
3595
+ deleteText: "\u5220\u9664"
3596
+ };
3597
+ function getImageEditorLabels(locale) {
3598
+ const defaultLabels = locale?.locale?.startsWith("zh") ? ZH_CN_IMAGE_EDITOR_LABELS : DEFAULT_IMAGE_EDITOR_LABELS;
3599
+ return {
3600
+ selectImageText: locale?.imageEditor?.selectImageText ?? defaultLabels.selectImageText,
3601
+ selectImageAriaLabel: locale?.imageEditor?.selectImageAriaLabel ?? defaultLabels.selectImageAriaLabel,
3602
+ cropModalTitle: locale?.imageEditor?.cropModalTitle ?? defaultLabels.cropModalTitle,
3603
+ cropCancelText: locale?.imageEditor?.cropCancelText ?? locale?.common?.cancelText ?? defaultLabels.cropCancelText,
3604
+ cropConfirmText: locale?.imageEditor?.cropConfirmText ?? locale?.common?.okText ?? defaultLabels.cropConfirmText,
3605
+ cropperDialogAriaLabel: locale?.imageEditor?.cropperDialogAriaLabel ?? defaultLabels.cropperDialogAriaLabel,
3606
+ imageToCropAriaLabel: locale?.imageEditor?.imageToCropAriaLabel ?? defaultLabels.imageToCropAriaLabel,
3607
+ moveCropAreaAriaLabel: locale?.imageEditor?.moveCropAreaAriaLabel ?? defaultLabels.moveCropAreaAriaLabel,
3608
+ resizeCropAreaAriaLabel: locale?.imageEditor?.resizeCropAreaAriaLabel ?? defaultLabels.resizeCropAreaAriaLabel,
3609
+ loadingCropImageAriaLabel: locale?.imageEditor?.loadingCropImageAriaLabel ?? defaultLabels.loadingCropImageAriaLabel,
3610
+ annotationToolbarAriaLabel: locale?.imageEditor?.annotationToolbarAriaLabel ?? defaultLabels.annotationToolbarAriaLabel,
3611
+ annotationEditorAriaLabel: locale?.imageEditor?.annotationEditorAriaLabel ?? defaultLabels.annotationEditorAriaLabel,
3612
+ annotationCanvasAriaLabel: locale?.imageEditor?.annotationCanvasAriaLabel ?? defaultLabels.annotationCanvasAriaLabel,
3613
+ loadingAnnotationImageAriaLabel: locale?.imageEditor?.loadingAnnotationImageAriaLabel ?? defaultLabels.loadingAnnotationImageAriaLabel,
3614
+ selectToolText: locale?.imageEditor?.selectToolText ?? defaultLabels.selectToolText,
3615
+ rectangleToolText: locale?.imageEditor?.rectangleToolText ?? defaultLabels.rectangleToolText,
3616
+ ellipseToolText: locale?.imageEditor?.ellipseToolText ?? defaultLabels.ellipseToolText,
3617
+ polygonToolText: locale?.imageEditor?.polygonToolText ?? defaultLabels.polygonToolText,
3618
+ freehandToolText: locale?.imageEditor?.freehandToolText ?? defaultLabels.freehandToolText,
3619
+ deleteText: locale?.imageEditor?.deleteText ?? defaultLabels.deleteText
3620
+ };
3621
+ }
3622
+ var DEFAULT_STATUS_LABELS = {
3623
+ tagCloseAriaLabel: "Close tag",
3624
+ badgeLabel: "notification",
3625
+ badgeCountLabel: "{count} notifications"
3626
+ };
3627
+ var ZH_CN_STATUS_LABELS = {
3628
+ tagCloseAriaLabel: "\u5173\u95ED\u6807\u7B7E",
3629
+ badgeLabel: "\u901A\u77E5",
3630
+ badgeCountLabel: "{count} \u6761\u901A\u77E5"
3631
+ };
3632
+ function getStatusLabels(locale) {
3633
+ const defaultLabels = locale?.locale?.startsWith("zh") ? ZH_CN_STATUS_LABELS : DEFAULT_STATUS_LABELS;
3634
+ return {
3635
+ tagCloseAriaLabel: locale?.status?.tagCloseAriaLabel ?? defaultLabels.tagCloseAriaLabel,
3636
+ badgeLabel: locale?.status?.badgeLabel ?? defaultLabels.badgeLabel,
3637
+ badgeCountLabel: locale?.status?.badgeCountLabel ?? defaultLabels.badgeCountLabel
3638
+ };
3639
+ }
3322
3640
  var DEFAULT_FORM_VALIDATION_LABELS = {
3323
3641
  required: "This field is required",
3324
3642
  typeString: "Value must be a string",
@@ -3432,7 +3750,35 @@ var ZH_CN_UPLOAD_LABELS = {
3432
3750
  previewFileAriaLabel: "\u9884\u89C8 {fileName}"
3433
3751
  };
3434
3752
 
3435
- // src/utils/datepicker-i18n.ts
3753
+ // src/utils/i18n/datepicker-locales/ar-SA.ts
3754
+ var AR_SA_DATEPICKER_LOCALE = {
3755
+ locale: "ar-SA",
3756
+ labels: {
3757
+ today: "\u0627\u0644\u064A\u0648\u0645",
3758
+ ok: "\u0645\u0648\u0627\u0641\u0642",
3759
+ calendar: "\u0627\u0644\u062A\u0642\u0648\u064A\u0645",
3760
+ toggleCalendar: "\u0641\u062A\u062D \u0627\u0644\u062A\u0642\u0648\u064A\u0645",
3761
+ clearDate: "\u0645\u0633\u062D \u0627\u0644\u062A\u0627\u0631\u064A\u062E",
3762
+ previousMonth: "\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0633\u0627\u0628\u0642",
3763
+ nextMonth: "\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u062A\u0627\u0644\u064A"
3764
+ }
3765
+ };
3766
+
3767
+ // src/utils/i18n/datepicker-locales/de-DE.ts
3768
+ var DE_DE_DATEPICKER_LOCALE = {
3769
+ locale: "de-DE",
3770
+ labels: {
3771
+ today: "Heute",
3772
+ ok: "OK",
3773
+ calendar: "Kalender",
3774
+ toggleCalendar: "Kalender \xF6ffnen",
3775
+ clearDate: "Datum l\xF6schen",
3776
+ previousMonth: "Vorheriger Monat",
3777
+ nextMonth: "N\xE4chster Monat"
3778
+ }
3779
+ };
3780
+
3781
+ // src/utils/i18n/datepicker-locales/en-US.ts
3436
3782
  var EN_US_DATEPICKER_LOCALE = {
3437
3783
  locale: "en-US",
3438
3784
  labels: {
@@ -3445,22 +3791,11 @@ var EN_US_DATEPICKER_LOCALE = {
3445
3791
  nextMonth: "Next month"
3446
3792
  }
3447
3793
  };
3448
- var ZH_CN_DATEPICKER_LOCALE = {
3449
- locale: "zh-CN",
3794
+
3795
+ // src/utils/i18n/datepicker-locales/es-ES.ts
3796
+ var ES_ES_DATEPICKER_LOCALE = {
3797
+ locale: "es-ES",
3450
3798
  labels: {
3451
- today: "\u4ECA\u5929",
3452
- ok: "\u786E\u5B9A",
3453
- calendar: "\u65E5\u5386",
3454
- toggleCalendar: "\u6253\u5F00\u65E5\u5386",
3455
- clearDate: "\u6E05\u9664\u65E5\u671F",
3456
- previousMonth: "\u4E0A\u4E2A\u6708",
3457
- nextMonth: "\u4E0B\u4E2A\u6708"
3458
- }
3459
- };
3460
- var DATEPICKER_LABELS_BY_LANGUAGE = {
3461
- en: EN_US_DATEPICKER_LOCALE.labels,
3462
- zh: ZH_CN_DATEPICKER_LOCALE.labels,
3463
- es: {
3464
3799
  today: "Hoy",
3465
3800
  ok: "Aceptar",
3466
3801
  calendar: "Calendario",
@@ -3468,8 +3803,13 @@ var DATEPICKER_LABELS_BY_LANGUAGE = {
3468
3803
  clearDate: "Borrar fecha",
3469
3804
  previousMonth: "Mes anterior",
3470
3805
  nextMonth: "Mes siguiente"
3471
- },
3472
- fr: {
3806
+ }
3807
+ };
3808
+
3809
+ // src/utils/i18n/datepicker-locales/fr-FR.ts
3810
+ var FR_FR_DATEPICKER_LOCALE = {
3811
+ locale: "fr-FR",
3812
+ labels: {
3473
3813
  today: "Aujourd'hui",
3474
3814
  ok: "OK",
3475
3815
  calendar: "Calendrier",
@@ -3477,17 +3817,55 @@ var DATEPICKER_LABELS_BY_LANGUAGE = {
3477
3817
  clearDate: "Effacer la date",
3478
3818
  previousMonth: "Mois pr\xE9c\xE9dent",
3479
3819
  nextMonth: "Mois suivant"
3480
- },
3481
- de: {
3482
- today: "Heute",
3820
+ }
3821
+ };
3822
+
3823
+ // src/utils/i18n/datepicker-locales/id-ID.ts
3824
+ var ID_ID_DATEPICKER_LOCALE = {
3825
+ locale: "id-ID",
3826
+ labels: {
3827
+ today: "Hari ini",
3483
3828
  ok: "OK",
3484
3829
  calendar: "Kalender",
3485
- toggleCalendar: "Kalender \xF6ffnen",
3486
- clearDate: "Datum l\xF6schen",
3487
- previousMonth: "Vorheriger Monat",
3488
- nextMonth: "N\xE4chster Monat"
3489
- },
3490
- pt: {
3830
+ toggleCalendar: "Buka kalender",
3831
+ clearDate: "Hapus tanggal",
3832
+ previousMonth: "Bulan sebelumnya",
3833
+ nextMonth: "Bulan berikutnya"
3834
+ }
3835
+ };
3836
+
3837
+ // src/utils/i18n/datepicker-locales/ja-JP.ts
3838
+ var JA_JP_DATEPICKER_LOCALE = {
3839
+ locale: "ja-JP",
3840
+ labels: {
3841
+ today: "\u4ECA\u65E5",
3842
+ ok: "OK",
3843
+ calendar: "\u30AB\u30EC\u30F3\u30C0\u30FC",
3844
+ toggleCalendar: "\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u958B\u304F",
3845
+ clearDate: "\u65E5\u4ED8\u3092\u30AF\u30EA\u30A2",
3846
+ previousMonth: "\u524D\u306E\u6708",
3847
+ nextMonth: "\u6B21\u306E\u6708"
3848
+ }
3849
+ };
3850
+
3851
+ // src/utils/i18n/datepicker-locales/ko-KR.ts
3852
+ var KO_KR_DATEPICKER_LOCALE = {
3853
+ locale: "ko-KR",
3854
+ labels: {
3855
+ today: "\uC624\uB298",
3856
+ ok: "\uD655\uC778",
3857
+ calendar: "\uB2EC\uB825",
3858
+ toggleCalendar: "\uB2EC\uB825 \uC5F4\uAE30",
3859
+ clearDate: "\uB0A0\uC9DC \uC9C0\uC6B0\uAE30",
3860
+ previousMonth: "\uC774\uC804 \uB2EC",
3861
+ nextMonth: "\uB2E4\uC74C \uB2EC"
3862
+ }
3863
+ };
3864
+
3865
+ // src/utils/i18n/datepicker-locales/pt-BR.ts
3866
+ var PT_BR_DATEPICKER_LOCALE = {
3867
+ locale: "pt-BR",
3868
+ labels: {
3491
3869
  today: "Hoje",
3492
3870
  ok: "OK",
3493
3871
  calendar: "Calend\xE1rio",
@@ -3495,17 +3873,93 @@ var DATEPICKER_LABELS_BY_LANGUAGE = {
3495
3873
  clearDate: "Limpar data",
3496
3874
  previousMonth: "M\xEAs anterior",
3497
3875
  nextMonth: "Pr\xF3ximo m\xEAs"
3498
- },
3499
- ar: {
3500
- today: "\u0627\u0644\u064A\u0648\u0645",
3501
- ok: "\u0645\u0648\u0627\u0641\u0642",
3502
- calendar: "\u0627\u0644\u062A\u0642\u0648\u064A\u0645",
3503
- toggleCalendar: "\u0641\u062A\u062D \u0627\u0644\u062A\u0642\u0648\u064A\u0645",
3504
- clearDate: "\u0645\u0633\u062D \u0627\u0644\u062A\u0627\u0631\u064A\u062E",
3505
- previousMonth: "\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0633\u0627\u0628\u0642",
3506
- nextMonth: "\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u062A\u0627\u0644\u064A"
3507
3876
  }
3508
3877
  };
3878
+
3879
+ // src/utils/i18n/datepicker-locales/th-TH.ts
3880
+ var TH_TH_DATEPICKER_LOCALE = {
3881
+ locale: "th-TH",
3882
+ labels: {
3883
+ today: "\u0E27\u0E31\u0E19\u0E19\u0E35\u0E49",
3884
+ ok: "\u0E15\u0E01\u0E25\u0E07",
3885
+ calendar: "\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19",
3886
+ toggleCalendar: "\u0E40\u0E1B\u0E34\u0E14\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19",
3887
+ clearDate: "\u0E25\u0E49\u0E32\u0E07\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48",
3888
+ previousMonth: "\u0E40\u0E14\u0E37\u0E2D\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32",
3889
+ nextMonth: "\u0E40\u0E14\u0E37\u0E2D\u0E19\u0E16\u0E31\u0E14\u0E44\u0E1B"
3890
+ }
3891
+ };
3892
+
3893
+ // src/utils/i18n/datepicker-locales/vi-VN.ts
3894
+ var VI_VN_DATEPICKER_LOCALE = {
3895
+ locale: "vi-VN",
3896
+ labels: {
3897
+ today: "H\xF4m nay",
3898
+ ok: "OK",
3899
+ calendar: "L\u1ECBch",
3900
+ toggleCalendar: "M\u1EDF l\u1ECBch",
3901
+ clearDate: "X\xF3a ng\xE0y",
3902
+ previousMonth: "Th\xE1ng tr\u01B0\u1EDBc",
3903
+ nextMonth: "Th\xE1ng sau"
3904
+ }
3905
+ };
3906
+
3907
+ // src/utils/i18n/datepicker-locales/zh-CN.ts
3908
+ var ZH_CN_DATEPICKER_LOCALE = {
3909
+ locale: "zh-CN",
3910
+ labels: {
3911
+ today: "\u4ECA\u5929",
3912
+ ok: "\u786E\u5B9A",
3913
+ calendar: "\u65E5\u5386",
3914
+ toggleCalendar: "\u6253\u5F00\u65E5\u5386",
3915
+ clearDate: "\u6E05\u9664\u65E5\u671F",
3916
+ previousMonth: "\u4E0A\u4E2A\u6708",
3917
+ nextMonth: "\u4E0B\u4E2A\u6708"
3918
+ }
3919
+ };
3920
+
3921
+ // src/utils/i18n/datepicker-locales/zh-TW.ts
3922
+ var ZH_TW_DATEPICKER_LOCALE = {
3923
+ locale: "zh-TW",
3924
+ labels: {
3925
+ today: "\u4ECA\u5929",
3926
+ ok: "\u78BA\u5B9A",
3927
+ calendar: "\u65E5\u66C6",
3928
+ toggleCalendar: "\u958B\u555F\u65E5\u66C6",
3929
+ clearDate: "\u6E05\u9664\u65E5\u671F",
3930
+ previousMonth: "\u4E0A\u500B\u6708",
3931
+ nextMonth: "\u4E0B\u500B\u6708"
3932
+ }
3933
+ };
3934
+
3935
+ // src/utils/datepicker-i18n.ts
3936
+ var EN_US_DATEPICKER_LOCALE2 = EN_US_DATEPICKER_LOCALE;
3937
+ var ZH_CN_DATEPICKER_LOCALE2 = ZH_CN_DATEPICKER_LOCALE;
3938
+ var DATEPICKER_LOCALES = [
3939
+ EN_US_DATEPICKER_LOCALE,
3940
+ ZH_CN_DATEPICKER_LOCALE,
3941
+ ZH_TW_DATEPICKER_LOCALE,
3942
+ JA_JP_DATEPICKER_LOCALE,
3943
+ KO_KR_DATEPICKER_LOCALE,
3944
+ TH_TH_DATEPICKER_LOCALE,
3945
+ VI_VN_DATEPICKER_LOCALE,
3946
+ ID_ID_DATEPICKER_LOCALE,
3947
+ ES_ES_DATEPICKER_LOCALE,
3948
+ FR_FR_DATEPICKER_LOCALE,
3949
+ DE_DE_DATEPICKER_LOCALE,
3950
+ PT_BR_DATEPICKER_LOCALE,
3951
+ AR_SA_DATEPICKER_LOCALE
3952
+ ];
3953
+ var DATEPICKER_LOCALE_BY_ID = new Map(
3954
+ DATEPICKER_LOCALES.map((preset) => [preset.locale.toLowerCase(), preset])
3955
+ );
3956
+ var DATEPICKER_LOCALE_BY_LANGUAGE = /* @__PURE__ */ new Map();
3957
+ for (const preset of DATEPICKER_LOCALES) {
3958
+ const language = preset.locale.split("-")[0]?.toLowerCase();
3959
+ if (language && !DATEPICKER_LOCALE_BY_LANGUAGE.has(language)) {
3960
+ DATEPICKER_LOCALE_BY_LANGUAGE.set(language, preset);
3961
+ }
3962
+ }
3509
3963
  function isDatePickerLocaleConfig(value) {
3510
3964
  return Boolean(value && typeof value === "object" && "datePicker" in value);
3511
3965
  }
@@ -3521,7 +3975,7 @@ function getDatePickerLocaleCode(locale) {
3521
3975
  function getDefaultDatePickerLabels(locale) {
3522
3976
  const lc = (getDatePickerLocaleCode(locale) ?? "").toLowerCase();
3523
3977
  const language = lc.split("-")[0];
3524
- return DATEPICKER_LABELS_BY_LANGUAGE[language] ?? EN_US_DATEPICKER_LOCALE.labels;
3978
+ return DATEPICKER_LOCALE_BY_ID.get(lc)?.labels ?? DATEPICKER_LOCALE_BY_LANGUAGE.get(language)?.labels ?? EN_US_DATEPICKER_LOCALE2.labels;
3525
3979
  }
3526
3980
  function getDatePickerLabels(locale, overrides) {
3527
3981
  return {
@@ -3973,6 +4427,12 @@ var enUS = {
3973
4427
  searchPlaceholder: "Search",
3974
4428
  clearText: "Clear"
3975
4429
  },
4430
+ empty: {
4431
+ noData: "No data",
4432
+ noDataAvailable: "No data available",
4433
+ noResults: "No results found",
4434
+ error: "Something went wrong"
4435
+ },
3976
4436
  modal: {
3977
4437
  closeAriaLabel: "Close",
3978
4438
  okText: "OK",
@@ -3981,6 +4441,15 @@ var enUS = {
3981
4441
  drawer: {
3982
4442
  closeAriaLabel: "Close"
3983
4443
  },
4444
+ qrcode: {
4445
+ ariaLabel: "QR Code",
4446
+ expiredText: "QR code expired",
4447
+ refreshText: "Refresh",
4448
+ loadingText: "Loading..."
4449
+ },
4450
+ timeline: {
4451
+ pendingText: "Loading..."
4452
+ },
3984
4453
  upload: DEFAULT_UPLOAD_LABELS,
3985
4454
  pagination: {
3986
4455
  totalText: "Total {total} items",
@@ -4009,17 +4478,85 @@ var enUS = {
4009
4478
  columnSettingsText: "Column settings",
4010
4479
  columnSettingsAriaLabel: "Column settings",
4011
4480
  lockColumnAriaLabel: "Lock column {column}",
4012
- unlockColumnAriaLabel: "Unlock column {column}"
4481
+ unlockColumnAriaLabel: "Unlock column {column}",
4482
+ allText: "All",
4483
+ filterPlaceholder: "Filter...",
4484
+ exportCsvText: "Export CSV",
4485
+ exportExcelText: "Export Excel",
4486
+ exportCsvAriaLabel: "Export to CSV",
4487
+ exportExcelAriaLabel: "Export to Excel",
4488
+ expandRowAriaLabel: "Expand row",
4489
+ collapseRowAriaLabel: "Collapse row"
4013
4490
  },
4491
+ datePicker: EN_US_DATEPICKER_LOCALE,
4014
4492
  timePicker: DEFAULT_TIME_PICKER_LABELS,
4015
4493
  formWizard: {
4016
4494
  prevText: "Previous",
4017
4495
  nextText: "Next",
4018
4496
  finishText: "Finish"
4019
4497
  },
4498
+ tour: {
4499
+ prevText: "Previous",
4500
+ nextText: "Next",
4501
+ finishText: "Finish",
4502
+ closeAriaLabel: "Close tour"
4503
+ },
4504
+ calendar: {
4505
+ previousMonth: "Previous month",
4506
+ nextMonth: "Next month",
4507
+ previousYear: "Previous year",
4508
+ nextYear: "Next year",
4509
+ yearSelectAriaLabel: "Year",
4510
+ monthSelectAriaLabel: "Month",
4511
+ daySelectAriaLabel: "Day"
4512
+ },
4513
+ fileManager: {
4514
+ rootText: "Root"
4515
+ },
4516
+ imageViewer: {
4517
+ dialogAriaLabel: "Image viewer",
4518
+ previewDialogAriaLabel: "Image preview",
4519
+ closeAriaLabel: "Close",
4520
+ closePreviewAriaLabel: "Close preview",
4521
+ previousImageAriaLabel: "Previous image",
4522
+ nextImageAriaLabel: "Next image",
4523
+ zoomOutAriaLabel: "Zoom out",
4524
+ resetAriaLabel: "Reset",
4525
+ zoomInAriaLabel: "Zoom in",
4526
+ rotateLeftAriaLabel: "Rotate left",
4527
+ rotateRightAriaLabel: "Rotate right"
4528
+ },
4529
+ imageEditor: {
4530
+ selectImageText: "Select image",
4531
+ selectImageAriaLabel: "Select image to crop and upload",
4532
+ cropModalTitle: "Crop image",
4533
+ cropCancelText: "Cancel",
4534
+ cropConfirmText: "Confirm crop",
4535
+ cropperDialogAriaLabel: "Image cropper",
4536
+ imageToCropAriaLabel: "Image to crop",
4537
+ moveCropAreaAriaLabel: "Move crop area",
4538
+ resizeCropAreaAriaLabel: "Resize crop area {handle}",
4539
+ loadingCropImageAriaLabel: "Loading image for cropping",
4540
+ annotationToolbarAriaLabel: "Annotation tools",
4541
+ annotationEditorAriaLabel: "Image annotation editor",
4542
+ annotationCanvasAriaLabel: "Image annotation canvas",
4543
+ loadingAnnotationImageAriaLabel: "Loading image for annotation",
4544
+ selectToolText: "Select",
4545
+ rectangleToolText: "Rectangle",
4546
+ ellipseToolText: "Ellipse",
4547
+ polygonToolText: "Polygon",
4548
+ freehandToolText: "Freehand",
4549
+ deleteText: "Delete"
4550
+ },
4551
+ status: {
4552
+ tagCloseAriaLabel: "Close tag",
4553
+ badgeLabel: "notification",
4554
+ badgeCountLabel: "{count} notifications"
4555
+ },
4020
4556
  taskBoard: {
4021
4557
  emptyColumnText: "No tasks",
4022
4558
  addCardText: "Add task",
4559
+ addColumnText: "Add column",
4023
4560
  wipLimitText: "WIP limit: {limit}",
4024
4561
  dragHintText: "Drag to move",
4025
4562
  boardAriaLabel: "Task Board"
@@ -4049,6 +4586,24 @@ var enUS = {
4049
4586
  };
4050
4587
 
4051
4588
  // src/utils/i18n/define-locale.ts
4589
+ var DATEPICKER_LOCALES2 = [
4590
+ EN_US_DATEPICKER_LOCALE,
4591
+ ZH_CN_DATEPICKER_LOCALE,
4592
+ ZH_TW_DATEPICKER_LOCALE,
4593
+ JA_JP_DATEPICKER_LOCALE,
4594
+ KO_KR_DATEPICKER_LOCALE,
4595
+ TH_TH_DATEPICKER_LOCALE,
4596
+ VI_VN_DATEPICKER_LOCALE,
4597
+ ID_ID_DATEPICKER_LOCALE,
4598
+ ES_ES_DATEPICKER_LOCALE,
4599
+ FR_FR_DATEPICKER_LOCALE,
4600
+ DE_DE_DATEPICKER_LOCALE,
4601
+ PT_BR_DATEPICKER_LOCALE,
4602
+ AR_SA_DATEPICKER_LOCALE
4603
+ ];
4604
+ var DATEPICKER_LOCALE_BY_ID2 = new Map(
4605
+ DATEPICKER_LOCALES2.map((locale) => [locale.locale, locale])
4606
+ );
4052
4607
  function isPlainObject(value) {
4053
4608
  if (value === null || typeof value !== "object") return false;
4054
4609
  const proto = Object.getPrototypeOf(value);
@@ -4070,7 +4625,9 @@ function deepMerge(base, override) {
4070
4625
  return out;
4071
4626
  }
4072
4627
  function defineLocale(overrides = {}) {
4073
- return deepMerge(enUS, overrides);
4628
+ const locale = overrides.locale ? DATEPICKER_LOCALE_BY_ID2.get(overrides.locale) : void 0;
4629
+ const normalizedOverrides = locale && !overrides.datePicker ? { ...overrides, datePicker: locale } : overrides;
4630
+ return deepMerge(enUS, normalizedOverrides);
4074
4631
  }
4075
4632
  function defineText(text = {}) {
4076
4633
  return defineLocale(text);
@@ -4442,6 +4999,14 @@ var SELECT_SIZE_CLASSES = {
4442
4999
  md: "text-base py-2",
4443
5000
  lg: "text-lg py-2.5"
4444
5001
  };
5002
+ var SELECT_VIRTUAL_ITEM_HEIGHT = {
5003
+ sm: 32,
5004
+ md: 40,
5005
+ lg: 48
5006
+ };
5007
+ function getSelectVirtualItemHeight(size = "md") {
5008
+ return SELECT_VIRTUAL_ITEM_HEIGHT[size] ?? SELECT_VIRTUAL_ITEM_HEIGHT.md;
5009
+ }
4445
5010
  function getSelectSizeClasses(size) {
4446
5011
  return SELECT_SIZE_CLASSES[size];
4447
5012
  }
@@ -4966,23 +5531,28 @@ function parseDate(value) {
4966
5531
  const parsed = new Date(value);
4967
5532
  return isNaN(parsed.getTime()) ? null : parsed;
4968
5533
  }
4969
- function getIntlOptionsFromDateFormat(format) {
5534
+ var defaultDateFormatOptions = {
5535
+ year: "numeric",
5536
+ month: "2-digit",
5537
+ day: "2-digit"
5538
+ };
5539
+ function getDateFormatParts(format) {
4970
5540
  switch (format) {
4971
- case "yyyy-MM-dd":
4972
- case "yyyy/MM/dd":
4973
- return { year: "numeric", month: "2-digit", day: "2-digit" };
4974
5541
  case "MM/dd/yyyy":
4975
- return { year: "numeric", month: "2-digit", day: "2-digit" };
5542
+ return ["month", "/", "day", "/", "year"];
4976
5543
  case "dd/MM/yyyy":
4977
- return { year: "numeric", month: "2-digit", day: "2-digit" };
5544
+ return ["day", "/", "month", "/", "year"];
5545
+ case "yyyy/MM/dd":
5546
+ return ["year", "/", "month", "/", "day"];
5547
+ case "yyyy-MM-dd":
4978
5548
  default:
4979
- return { year: "numeric", month: "2-digit", day: "2-digit" };
5549
+ return ["year", "-", "month", "-", "day"];
4980
5550
  }
4981
5551
  }
4982
5552
  function formatDate(date, format = "yyyy-MM-dd", locale) {
4983
5553
  if (!date || isNaN(date.getTime())) return "";
4984
5554
  if (locale) {
4985
- const localized = safeIntlFormat(locale, getIntlOptionsFromDateFormat(format), date);
5555
+ const localized = safeIntlFormatDateParts(locale, format, date);
4986
5556
  if (localized) return localized;
4987
5557
  }
4988
5558
  const year = date.getFullYear();
@@ -5001,7 +5571,7 @@ function formatDate(date, format = "yyyy-MM-dd", locale) {
5001
5571
  return `${year}-${month}-${day}`;
5002
5572
  }
5003
5573
  }
5004
- function formatDateWithLocale(date, locale, options = { year: "numeric", month: "2-digit", day: "2-digit" }) {
5574
+ function formatDateWithLocale(date, locale, options = defaultDateFormatOptions) {
5005
5575
  if (!date || isNaN(date.getTime())) return "";
5006
5576
  if (!locale) return formatDate(date);
5007
5577
  const localized = safeIntlFormat(locale, options, date);
@@ -5114,6 +5684,30 @@ function safeIntlFormat(locale, options, date) {
5114
5684
  return "";
5115
5685
  }
5116
5686
  }
5687
+ function safeIntlFormatDateParts(locale, format, date) {
5688
+ try {
5689
+ const key = `${locale}_${JSON.stringify(defaultDateFormatOptions)}_parts`;
5690
+ let fmt = intlCache.get(key);
5691
+ if (!fmt) {
5692
+ fmt = new Intl.DateTimeFormat(locale, defaultDateFormatOptions);
5693
+ intlCache.set(key, fmt);
5694
+ }
5695
+ const parts = fmt.formatToParts(date);
5696
+ const partMap = new Map(parts.map((part) => [part.type, part.value]));
5697
+ const year = partMap.get("year");
5698
+ const month = partMap.get("month");
5699
+ const day = partMap.get("day");
5700
+ if (!year || !month || !day) return "";
5701
+ return getDateFormatParts(format).map((part) => {
5702
+ if (part === "year") return year;
5703
+ if (part === "month") return month;
5704
+ if (part === "day") return day;
5705
+ return part;
5706
+ }).join("");
5707
+ } catch {
5708
+ return "";
5709
+ }
5710
+ }
5117
5711
  function formatMonthYear(year, month, locale) {
5118
5712
  if (locale) {
5119
5713
  const text = safeIntlFormat(
@@ -5202,6 +5796,32 @@ function isToday(date) {
5202
5796
  const today = /* @__PURE__ */ new Date();
5203
5797
  return isSameDay(date, today);
5204
5798
  }
5799
+ function getDatePickerCalendarCellState(input) {
5800
+ const { date, selectedDate = null, selectedRange = [null, null], isRangeMode = false } = input;
5801
+ const [rangeStart, rangeEnd] = selectedRange;
5802
+ const normDate = normalizeDate(date);
5803
+ const normStart = rangeStart ? normalizeDate(rangeStart) : null;
5804
+ const normEnd = rangeEnd ? normalizeDate(rangeEnd) : null;
5805
+ const isSelectingEnd = isRangeMode && Boolean(rangeStart) && !rangeEnd;
5806
+ const isRangeStart = isRangeMode && rangeStart ? isSameDay(date, rangeStart) : false;
5807
+ const isRangeEnd = isRangeMode && rangeEnd ? isSameDay(date, rangeEnd) : false;
5808
+ const isInRange = Boolean(
5809
+ isRangeMode && normStart && normEnd && normDate >= normStart && normDate <= normEnd
5810
+ );
5811
+ const isSelected = !isRangeMode ? selectedDate ? isSameDay(date, selectedDate) : false : isRangeStart || isRangeEnd;
5812
+ const isBeforeRangeStart = Boolean(isSelectingEnd && normStart && normDate < normStart);
5813
+ const isDisabled = Boolean(input.isDateDisabled?.(date)) || isBeforeRangeStart;
5814
+ return {
5815
+ iso: formatDate(date, "yyyy-MM-dd"),
5816
+ isCurrentMonthDay: input.isCurrentMonth?.(date) ?? true,
5817
+ isSelected,
5818
+ isTodayDay: isToday(date),
5819
+ isDisabled,
5820
+ isInRange,
5821
+ isRangeStart,
5822
+ isRangeEnd
5823
+ };
5824
+ }
5205
5825
 
5206
5826
  // src/utils/datepicker-styles.ts
5207
5827
  var datePickerBaseClasses = "relative inline-block w-full";
@@ -5458,20 +6078,20 @@ function formatTimeDisplayWithLocale(hours, minutes, seconds = 0, format = "24",
5458
6078
  const suffix = period === "AM" ? labels.am : labels.pm;
5459
6079
  return `${timeStr} ${suffix}`;
5460
6080
  }
5461
- function isTimeInRange(hours, minutes, minTime, maxTime) {
5462
- const currentMinutes = hours * 60 + minutes;
6081
+ function isTimeInRange(hours, minutes, minTime, maxTime, seconds = 0) {
6082
+ const currentSeconds = hours * 3600 + minutes * 60 + seconds;
5463
6083
  if (minTime) {
5464
6084
  const min = parseTime(minTime);
5465
6085
  if (min) {
5466
- const minMinutes = min.hours * 60 + min.minutes;
5467
- if (currentMinutes < minMinutes) return false;
6086
+ const minSeconds = min.hours * 3600 + min.minutes * 60 + min.seconds;
6087
+ if (currentSeconds < minSeconds) return false;
5468
6088
  }
5469
6089
  }
5470
6090
  if (maxTime) {
5471
6091
  const max = parseTime(maxTime);
5472
6092
  if (max) {
5473
- const maxMinutes = max.hours * 60 + max.minutes;
5474
- if (currentMinutes > maxMinutes) return false;
6093
+ const maxSeconds = max.hours * 3600 + max.minutes * 60 + max.seconds;
6094
+ if (currentSeconds > maxSeconds) return false;
5475
6095
  }
5476
6096
  }
5477
6097
  return true;
@@ -5505,6 +6125,26 @@ function getCurrentTime(showSeconds = false) {
5505
6125
  return formatTime(now.getHours(), now.getMinutes(), now.getSeconds(), showSeconds);
5506
6126
  }
5507
6127
 
6128
+ // src/utils/file-utils.ts
6129
+ function formatBytes(bytes, options = {}) {
6130
+ if (bytes === void 0 || bytes === null) return options.emptyText ?? "";
6131
+ const safeBytes = Number.isFinite(bytes) ? Math.max(0, bytes) : 0;
6132
+ if (safeBytes === 0) return "0 B";
6133
+ const units = ["B", "KB", "MB", "GB", "TB"];
6134
+ const k = 1024;
6135
+ const index = Math.min(units.length - 1, Math.floor(Math.log(safeBytes) / Math.log(k)));
6136
+ const size = safeBytes / Math.pow(k, index);
6137
+ const precision = Math.max(0, Math.floor(options.precision ?? 2));
6138
+ const text = size.toFixed(precision);
6139
+ return `${options.trimTrailingZeros ? text.replace(/\.0+$/, "").replace(/(\.\d*?)0+$/, "$1") : text} ${units[index]}`;
6140
+ }
6141
+ function getFileExtensionName(name, options) {
6142
+ const dot = name.lastIndexOf(".");
6143
+ if (dot <= 0 || dot === name.length - 1) return "";
6144
+ const extension = name.slice(dot + 1).toLowerCase();
6145
+ return options?.includeDot ? `.${extension}` : extension;
6146
+ }
6147
+
5508
6148
  // src/utils/upload-utils.ts
5509
6149
  var DEFAULT_UPLOAD_CHUNK_SIZE = 1024 * 1024;
5510
6150
  var uploadStatusIconSizeClasses = {
@@ -5626,8 +6266,7 @@ function generateFileId() {
5626
6266
  return `upload-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
5627
6267
  }
5628
6268
  function getFileExtension(fileName) {
5629
- if (!fileName.includes(".")) return "";
5630
- return `.${fileName.split(".").pop()?.toLowerCase() || ""}`;
6269
+ return getFileExtensionName(fileName, { includeDot: true });
5631
6270
  }
5632
6271
  function fileToUploadFile(file) {
5633
6272
  return {
@@ -5712,11 +6351,7 @@ function validateFileSize(file, maxSize) {
5712
6351
  return file.size <= maxSize;
5713
6352
  }
5714
6353
  function formatFileSize(bytes) {
5715
- if (bytes === 0) return "0 B";
5716
- const units = ["B", "KB", "MB", "GB", "TB"];
5717
- const k = 1024;
5718
- const i = Math.floor(Math.log(bytes) / Math.log(k));
5719
- return `${(bytes / Math.pow(k, i)).toFixed(2)} ${units[i]}`;
6354
+ return formatBytes(bytes, { precision: 2 });
5720
6355
  }
5721
6356
  function getUploadButtonClasses(disabled) {
5722
6357
  const baseClasses2 = [
@@ -6247,6 +6882,34 @@ function getTableColgroup(options) {
6247
6882
  }
6248
6883
  return entries;
6249
6884
  }
6885
+ function hasTableSelectionColumn(rowSelection) {
6886
+ return !!rowSelection && rowSelection.showCheckbox !== false;
6887
+ }
6888
+ function getTableSelectionState(input) {
6889
+ const selectedSet = new Set(input.selectedRowKeys);
6890
+ const selectableRowKeys = input.rowKeys.filter((key, index) => {
6891
+ const record = input.records[index];
6892
+ return !input.getCheckboxProps?.(record)?.disabled;
6893
+ });
6894
+ const allSelected = selectableRowKeys.length > 0 && selectableRowKeys.every((key) => selectedSet.has(key));
6895
+ const someSelected = selectableRowKeys.some((key) => selectedSet.has(key)) && !allSelected;
6896
+ return { selectableRowKeys, allSelected, someSelected };
6897
+ }
6898
+ function getNextTableSelectAllKeys(selectedRowKeys, selectableRowKeys, checked) {
6899
+ const selectableSet = new Set(selectableRowKeys);
6900
+ if (!checked) {
6901
+ return selectedRowKeys.filter((key) => !selectableSet.has(key));
6902
+ }
6903
+ const next = [...selectedRowKeys];
6904
+ const nextSet = new Set(next);
6905
+ for (const key of selectableRowKeys) {
6906
+ if (!nextSet.has(key)) {
6907
+ next.push(key);
6908
+ nextSet.add(key);
6909
+ }
6910
+ }
6911
+ return next;
6912
+ }
6250
6913
  function freezeTableColumnWidths(columns, measuredWidths = {}, previousFrozen = {}) {
6251
6914
  const next = {};
6252
6915
  for (const column of columns) {
@@ -6510,6 +7173,48 @@ function filterData(data, filters) {
6510
7173
  });
6511
7174
  });
6512
7175
  }
7176
+ function filterTableData(data, columns, filters) {
7177
+ if (!filters || Object.keys(filters).length === 0) {
7178
+ return data;
7179
+ }
7180
+ const filterFnByKey = /* @__PURE__ */ new Map();
7181
+ for (const column of columns) {
7182
+ if (column.filter?.filterFn) {
7183
+ filterFnByKey.set(column.key, column.filter.filterFn);
7184
+ }
7185
+ }
7186
+ return data.filter((record) => {
7187
+ return Object.entries(filters).every(([key, filterValue]) => {
7188
+ if (filterValue === "" || filterValue === null || filterValue === void 0) {
7189
+ return true;
7190
+ }
7191
+ const cellValue = record[key];
7192
+ const customFn = filterFnByKey.get(key);
7193
+ if (customFn) {
7194
+ return customFn(cellValue, filterValue);
7195
+ }
7196
+ if (typeof filterValue === "string") {
7197
+ return String(cellValue).toLowerCase().includes(filterValue.toLowerCase());
7198
+ }
7199
+ return cellValue === filterValue;
7200
+ });
7201
+ });
7202
+ }
7203
+ function getTableVirtualWindow(scrollTop, viewportHeight, itemHeight, rowCount, overscan = 5) {
7204
+ if (rowCount <= 0 || itemHeight <= 0) {
7205
+ return { startIndex: 0, endIndex: -1, topPad: 0, bottomPad: 0 };
7206
+ }
7207
+ const safeScrollTop = Math.max(0, Number.isFinite(scrollTop) ? scrollTop : 0);
7208
+ const startIndex = Math.max(0, Math.floor(safeScrollTop / itemHeight) - overscan);
7209
+ const visibleCount = Math.ceil(Math.max(0, viewportHeight) / itemHeight) + overscan * 2;
7210
+ const endIndex = Math.min(rowCount - 1, startIndex + visibleCount);
7211
+ return {
7212
+ startIndex,
7213
+ endIndex,
7214
+ topPad: startIndex * itemHeight,
7215
+ bottomPad: Math.max(0, (rowCount - 1 - endIndex) * itemHeight)
7216
+ };
7217
+ }
6513
7218
  function paginateData(data, current, pageSize) {
6514
7219
  const startIndex = (current - 1) * pageSize;
6515
7220
  const endIndex = startIndex + pageSize;
@@ -6811,6 +7516,94 @@ var listItemTitleClasses = "font-medium text-[var(--tiger-text,#111827)] truncat
6811
7516
  var listItemDescriptionClasses = "text-sm text-[var(--tiger-text-muted,#6b7280)] mt-1";
6812
7517
  var listItemExtraClasses = "flex-shrink-0 ml-4";
6813
7518
  var listGridContainerClasses = "grid gap-4";
7519
+ var GRID_COLUMNS = {
7520
+ 1: "grid-cols-1",
7521
+ 2: "grid-cols-2",
7522
+ 3: "grid-cols-3",
7523
+ 4: "grid-cols-4",
7524
+ 5: "grid-cols-5",
7525
+ 6: "grid-cols-6",
7526
+ 7: "grid-cols-7",
7527
+ 8: "grid-cols-8",
7528
+ 9: "grid-cols-9",
7529
+ 10: "grid-cols-10",
7530
+ 11: "grid-cols-11",
7531
+ 12: "grid-cols-12"
7532
+ };
7533
+ var SM_GRID_COLUMNS = {
7534
+ 1: "sm:grid-cols-1",
7535
+ 2: "sm:grid-cols-2",
7536
+ 3: "sm:grid-cols-3",
7537
+ 4: "sm:grid-cols-4",
7538
+ 5: "sm:grid-cols-5",
7539
+ 6: "sm:grid-cols-6",
7540
+ 7: "sm:grid-cols-7",
7541
+ 8: "sm:grid-cols-8",
7542
+ 9: "sm:grid-cols-9",
7543
+ 10: "sm:grid-cols-10",
7544
+ 11: "sm:grid-cols-11",
7545
+ 12: "sm:grid-cols-12"
7546
+ };
7547
+ var MD_GRID_COLUMNS = {
7548
+ 1: "md:grid-cols-1",
7549
+ 2: "md:grid-cols-2",
7550
+ 3: "md:grid-cols-3",
7551
+ 4: "md:grid-cols-4",
7552
+ 5: "md:grid-cols-5",
7553
+ 6: "md:grid-cols-6",
7554
+ 7: "md:grid-cols-7",
7555
+ 8: "md:grid-cols-8",
7556
+ 9: "md:grid-cols-9",
7557
+ 10: "md:grid-cols-10",
7558
+ 11: "md:grid-cols-11",
7559
+ 12: "md:grid-cols-12"
7560
+ };
7561
+ var LG_GRID_COLUMNS = {
7562
+ 1: "lg:grid-cols-1",
7563
+ 2: "lg:grid-cols-2",
7564
+ 3: "lg:grid-cols-3",
7565
+ 4: "lg:grid-cols-4",
7566
+ 5: "lg:grid-cols-5",
7567
+ 6: "lg:grid-cols-6",
7568
+ 7: "lg:grid-cols-7",
7569
+ 8: "lg:grid-cols-8",
7570
+ 9: "lg:grid-cols-9",
7571
+ 10: "lg:grid-cols-10",
7572
+ 11: "lg:grid-cols-11",
7573
+ 12: "lg:grid-cols-12"
7574
+ };
7575
+ var XL_GRID_COLUMNS = {
7576
+ 1: "xl:grid-cols-1",
7577
+ 2: "xl:grid-cols-2",
7578
+ 3: "xl:grid-cols-3",
7579
+ 4: "xl:grid-cols-4",
7580
+ 5: "xl:grid-cols-5",
7581
+ 6: "xl:grid-cols-6",
7582
+ 7: "xl:grid-cols-7",
7583
+ 8: "xl:grid-cols-8",
7584
+ 9: "xl:grid-cols-9",
7585
+ 10: "xl:grid-cols-10",
7586
+ 11: "xl:grid-cols-11",
7587
+ 12: "xl:grid-cols-12"
7588
+ };
7589
+ var XXL_GRID_COLUMNS = {
7590
+ 1: "2xl:grid-cols-1",
7591
+ 2: "2xl:grid-cols-2",
7592
+ 3: "2xl:grid-cols-3",
7593
+ 4: "2xl:grid-cols-4",
7594
+ 5: "2xl:grid-cols-5",
7595
+ 6: "2xl:grid-cols-6",
7596
+ 7: "2xl:grid-cols-7",
7597
+ 8: "2xl:grid-cols-8",
7598
+ 9: "2xl:grid-cols-9",
7599
+ 10: "2xl:grid-cols-10",
7600
+ 11: "2xl:grid-cols-11",
7601
+ 12: "2xl:grid-cols-12"
7602
+ };
7603
+ function getColumnClass(map, value) {
7604
+ if (!value || !Number.isFinite(value)) return void 0;
7605
+ return map[Math.floor(value)];
7606
+ }
6814
7607
  function getListClasses(bordered) {
6815
7608
  const classes = [listBaseClasses, listBorderClasses[bordered]];
6816
7609
  return classes.filter(Boolean).join(" ");
@@ -6834,27 +7627,18 @@ function getListHeaderFooterClasses(size, isFooter = false) {
6834
7627
  }
6835
7628
  function getGridColumnClasses(column, xs, sm, md, lg, xl, xxl) {
6836
7629
  const classes = [];
6837
- if (column) {
6838
- classes.push(`grid-cols-${column}`);
6839
- }
6840
- if (xs) {
6841
- classes.push(`grid-cols-${xs}`);
6842
- }
6843
- if (sm) {
6844
- classes.push(`sm:grid-cols-${sm}`);
6845
- }
6846
- if (md) {
6847
- classes.push(`md:grid-cols-${md}`);
6848
- }
6849
- if (lg) {
6850
- classes.push(`lg:grid-cols-${lg}`);
6851
- }
6852
- if (xl) {
6853
- classes.push(`xl:grid-cols-${xl}`);
6854
- }
6855
- if (xxl) {
6856
- classes.push(`2xl:grid-cols-${xxl}`);
6857
- }
7630
+ const baseClass = getColumnClass(GRID_COLUMNS, xs ?? column);
7631
+ if (baseClass) classes.push(baseClass);
7632
+ const smClass = getColumnClass(SM_GRID_COLUMNS, sm);
7633
+ if (smClass) classes.push(smClass);
7634
+ const mdClass = getColumnClass(MD_GRID_COLUMNS, md);
7635
+ if (mdClass) classes.push(mdClass);
7636
+ const lgClass = getColumnClass(LG_GRID_COLUMNS, lg);
7637
+ if (lgClass) classes.push(lgClass);
7638
+ const xlClass = getColumnClass(XL_GRID_COLUMNS, xl);
7639
+ if (xlClass) classes.push(xlClass);
7640
+ const xxlClass = getColumnClass(XXL_GRID_COLUMNS, xxl);
7641
+ if (xxlClass) classes.push(xxlClass);
6858
7642
  return classes.join(" ");
6859
7643
  }
6860
7644
 
@@ -8111,6 +8895,9 @@ function getBreadcrumbCollapsedItems(totalItems, maxItems) {
8111
8895
 
8112
8896
  // src/utils/steps-utils.ts
8113
8897
  var stepFinishChar = "\u2713";
8898
+ var stepFinishIconViewBox = "0 0 24 24";
8899
+ var stepFinishIconStrokeWidth = "3";
8900
+ var stepFinishIconPathD = "M4.5 12.75l6 6 9-13.5";
8114
8901
  function getStepsContainerClasses(direction) {
8115
8902
  const baseClasses2 = "tiger-steps w-full list-none m-0 p-0";
8116
8903
  if (direction === "vertical") {
@@ -10370,6 +11157,8 @@ function getScatterHoverSize(baseSize) {
10370
11157
  }
10371
11158
  var SCATTER_ENTRANCE_KEYFRAMES = `@keyframes tiger-scatter-entrance{from{opacity:0;transform:scale(0)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.tiger-scatter-entrance{animation-duration:0ms;animation-delay:0ms}}`;
10372
11159
  var SCATTER_ENTRANCE_CLASS = "tiger-scatter-entrance";
11160
+ var DONUT_ENTRANCE_KEYFRAMES = `@keyframes tiger-donut-entrance{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}.tiger-donut-entrance{transform-origin:center;animation:tiger-donut-entrance var(--tiger-motion-duration-slow,500ms) var(--tiger-motion-ease-spring,cubic-bezier(.34,1.56,.64,1)) both}@media (prefers-reduced-motion: reduce){.tiger-donut-entrance{animation-duration:0ms}}`;
11161
+ var DONUT_ENTRANCE_CLASS = "tiger-donut-entrance";
10373
11162
 
10374
11163
  // src/utils/chart/scale.ts
10375
11164
  var clampNumber = (value, min, max) => Math.min(max, Math.max(min, value));
@@ -11260,6 +12049,57 @@ function resolveChartTooltipContent(hoveredIndex, data, formatter, defaultFormat
11260
12049
  function getChartTooltipTransform(position) {
11261
12050
  return `translate3d(${position.x}px, ${position.y}px, 0)`;
11262
12051
  }
12052
+ function resolveChartTooltipPosition(input) {
12053
+ const offsetX = input.offsetX ?? 12;
12054
+ const offsetY = input.offsetY ?? -8;
12055
+ const padding = input.padding ?? 8;
12056
+ const anchorX = Number.isFinite(input.x) ? input.x : 0;
12057
+ const anchorY = Number.isFinite(input.y) ? input.y : 0;
12058
+ const rectWidth = Number.isFinite(input.rect.width) ? Math.max(0, input.rect.width) : 0;
12059
+ const rectHeight = Number.isFinite(input.rect.height) ? Math.max(0, input.rect.height) : 0;
12060
+ const viewportWidth = Number.isFinite(input.viewport.width) ? Math.max(0, input.viewport.width) : 0;
12061
+ const viewportHeight = Number.isFinite(input.viewport.height) ? Math.max(0, input.viewport.height) : 0;
12062
+ let nextX = anchorX + offsetX;
12063
+ let nextY = anchorY + offsetY;
12064
+ if (nextX + rectWidth > viewportWidth - padding) {
12065
+ nextX = anchorX - rectWidth - offsetX;
12066
+ }
12067
+ if (nextY + rectHeight > viewportHeight - padding) {
12068
+ nextY = anchorY - rectHeight - Math.abs(offsetY);
12069
+ }
12070
+ return {
12071
+ x: Math.max(padding, nextX),
12072
+ y: Math.max(padding, nextY)
12073
+ };
12074
+ }
12075
+ function downsampleSeriesData(data, threshold, getValue = (_item, index) => index) {
12076
+ const safeThreshold = Math.max(0, Math.floor(Number.isFinite(threshold) ? threshold : 0));
12077
+ if (safeThreshold === 0 || data.length <= safeThreshold) {
12078
+ return data.map((item, index) => ({ item, index }));
12079
+ }
12080
+ if (safeThreshold === 1) {
12081
+ return [{ item: data[0], index: 0 }];
12082
+ }
12083
+ const result = [{ item: data[0], index: 0 }];
12084
+ const bucketSize = (data.length - 2) / Math.max(1, safeThreshold - 2);
12085
+ for (let bucket = 0; bucket < safeThreshold - 2; bucket++) {
12086
+ const start = Math.floor(1 + bucket * bucketSize);
12087
+ const end = Math.min(data.length - 1, Math.floor(1 + (bucket + 1) * bucketSize));
12088
+ let selectedIndex = start;
12089
+ let selectedValue = Number.NEGATIVE_INFINITY;
12090
+ for (let index = start; index < end; index++) {
12091
+ const rawValue = getValue(data[index], index);
12092
+ const value = Math.abs(Number.isFinite(rawValue) ? rawValue : 0);
12093
+ if (value > selectedValue) {
12094
+ selectedValue = value;
12095
+ selectedIndex = index;
12096
+ }
12097
+ }
12098
+ result.push({ item: data[selectedIndex], index: selectedIndex });
12099
+ }
12100
+ result.push({ item: data[data.length - 1], index: data.length - 1 });
12101
+ return result;
12102
+ }
11263
12103
  function resolveMultiSeriesTooltipContent(hoveredPoint, series, formatter, defaultFormatter) {
11264
12104
  if (!hoveredPoint) return "";
11265
12105
  const { seriesIndex, pointIndex } = hoveredPoint;
@@ -11295,19 +12135,25 @@ function defaultRadarTooltipFormatter(datum, seriesIndex, _pointIndex, series) {
11295
12135
  function computeFunnelSegments(data, opts) {
11296
12136
  if (data.length === 0) return [];
11297
12137
  const { width, height, gap = 2, pinch = false, colors } = opts;
12138
+ const safeWidth = Number.isFinite(width) ? Math.max(0, width) : 0;
12139
+ const safeHeight = Number.isFinite(height) ? Math.max(0, height) : 0;
12140
+ const safeGap = Number.isFinite(gap) ? Math.max(0, gap) : 0;
12141
+ if (safeWidth <= 0 || safeHeight <= 0) return [];
11298
12142
  const palette = colors ?? DEFAULT_CHART_COLORS;
11299
- const maxValue = Math.max(...data.map((d) => d.value));
11300
- if (maxValue === 0) return [];
11301
- const totalGap = gap * (data.length - 1);
11302
- const segH = (height - totalGap) / data.length;
11303
- const halfW = width / 2;
12143
+ const values = data.map((d) => Number.isFinite(d.value) ? Math.max(0, d.value) : 0);
12144
+ const maxValue = Math.max(...values);
12145
+ if (maxValue <= 0) return [];
12146
+ const totalGap = Math.min(safeHeight, safeGap * (data.length - 1));
12147
+ const segH = Math.max(0, (safeHeight - totalGap) / data.length);
12148
+ const halfW = safeWidth / 2;
11304
12149
  return data.map((d, i) => {
11305
- const topRatio = d.value / maxValue;
11306
- const nextVal = i < data.length - 1 ? data[i + 1].value : pinch ? 0 : d.value;
12150
+ const value = values[i];
12151
+ const topRatio = value / maxValue;
12152
+ const nextVal = i < data.length - 1 ? values[i + 1] : pinch ? 0 : value;
11307
12153
  const bottomRatio = nextVal / maxValue;
11308
- const tw = width * topRatio;
11309
- const bw = width * bottomRatio;
11310
- const y = i * (segH + gap);
12154
+ const tw = safeWidth * topRatio;
12155
+ const bw = safeWidth * bottomRatio;
12156
+ const y = i * (segH + safeGap);
11311
12157
  const cx = halfW;
11312
12158
  const cy = y + segH / 2;
11313
12159
  const x1 = cx - tw / 2;
@@ -11318,7 +12164,7 @@ function computeFunnelSegments(data, opts) {
11318
12164
  return {
11319
12165
  index: i,
11320
12166
  label: d.label ?? `Stage ${i + 1}`,
11321
- value: d.value,
12167
+ value,
11322
12168
  color: d.color ?? palette[i % palette.length],
11323
12169
  path,
11324
12170
  cx,
@@ -11373,9 +12219,13 @@ function createGaugeAnimation(options) {
11373
12219
  function degToRad(deg) {
11374
12220
  return deg * Math.PI / 180;
11375
12221
  }
12222
+ function safeNumber(value, fallback = 0) {
12223
+ return Number.isFinite(value) ? value : fallback;
12224
+ }
11376
12225
  function createGaugeArcPath(cx, cy, radius, startDeg, endDeg, arcWidth) {
11377
- const outerR = radius;
11378
- const innerR = radius - arcWidth;
12226
+ const outerR = Math.max(0, safeNumber(radius));
12227
+ const safeArcWidth = Math.max(0, safeNumber(arcWidth));
12228
+ const innerR = Math.max(0, outerR - safeArcWidth);
11379
12229
  const startRad = degToRad(startDeg - 90);
11380
12230
  const endRad = degToRad(endDeg - 90);
11381
12231
  const outerStart = {
@@ -11405,8 +12255,9 @@ function createGaugeArcPath(cx, cy, radius, startDeg, endDeg, arcWidth) {
11405
12255
  }
11406
12256
  function createGaugeNeedlePath(cx, cy, length, angleDeg, needleWidth = 4) {
11407
12257
  const rad = degToRad(angleDeg - 90);
11408
- const tipX = cx + length * Math.cos(rad);
11409
- const tipY = cy + length * Math.sin(rad);
12258
+ const safeLength = Math.max(0, safeNumber(length));
12259
+ const tipX = cx + safeLength * Math.cos(rad);
12260
+ const tipY = cy + safeLength * Math.sin(rad);
11410
12261
  const perpRad = rad + Math.PI / 2;
11411
12262
  const halfW = needleWidth / 2;
11412
12263
  const bx1 = cx + halfW * Math.cos(perpRad);
@@ -11416,20 +12267,32 @@ function createGaugeNeedlePath(cx, cy, length, angleDeg, needleWidth = 4) {
11416
12267
  return `M${bx1},${by1} L${tipX},${tipY} L${bx2},${by2} Z`;
11417
12268
  }
11418
12269
  function valueToGaugeAngle(value, min, max, startAngle, endAngle) {
11419
- const ratio = Math.max(0, Math.min(1, (value - min) / (max - min)));
11420
- return startAngle + ratio * (endAngle - startAngle);
12270
+ const safeStart = safeNumber(startAngle);
12271
+ const safeEnd = safeNumber(endAngle, safeStart);
12272
+ const safeMin = safeNumber(min);
12273
+ const safeMax = safeNumber(max, safeMin);
12274
+ if (safeMax <= safeMin) return safeStart;
12275
+ const ratio = Math.max(0, Math.min(1, (safeNumber(value, safeMin) - safeMin) / (safeMax - safeMin)));
12276
+ return safeStart + ratio * (safeEnd - safeStart);
11421
12277
  }
11422
12278
  function computeGaugeTicks(cx, cy, radius, min, max, startAngle, endAngle, tickCount) {
11423
12279
  const ticks = [];
11424
- for (let i = 0; i <= tickCount; i++) {
11425
- const ratio = i / tickCount;
11426
- const val = min + ratio * (max - min);
11427
- const angle = startAngle + ratio * (endAngle - startAngle);
12280
+ const safeTickCount = Math.max(1, Math.floor(safeNumber(tickCount, 1)));
12281
+ const safeRadius = Math.max(0, safeNumber(radius));
12282
+ const safeMin = safeNumber(min);
12283
+ const safeMax = safeNumber(max, safeMin);
12284
+ const safeStart = safeNumber(startAngle);
12285
+ const safeEnd = safeNumber(endAngle, safeStart);
12286
+ for (let i = 0; i <= safeTickCount; i++) {
12287
+ const ratio = i / safeTickCount;
12288
+ const val = safeMax <= safeMin ? safeMin : safeMin + ratio * (safeMax - safeMin);
12289
+ const angle = safeStart + ratio * (safeEnd - safeStart);
11428
12290
  const rad = degToRad(angle - 90);
11429
- const outerX = cx + radius * Math.cos(rad);
11430
- const outerY = cy + radius * Math.sin(rad);
11431
- const innerX = cx + (radius - 8) * Math.cos(rad);
11432
- const innerY = cy + (radius - 8) * Math.sin(rad);
12291
+ const innerRadius = Math.max(0, safeRadius - 8);
12292
+ const outerX = cx + safeRadius * Math.cos(rad);
12293
+ const outerY = cy + safeRadius * Math.sin(rad);
12294
+ const innerX = cx + innerRadius * Math.cos(rad);
12295
+ const innerY = cy + innerRadius * Math.sin(rad);
11433
12296
  ticks.push({
11434
12297
  x1: innerX,
11435
12298
  y1: innerY,
@@ -11468,9 +12331,14 @@ function getHeatmapCellIndexAtPoint(cells, x, y) {
11468
12331
  return index >= 0 ? index : null;
11469
12332
  }
11470
12333
  function interpolateColor(minColor, maxColor, t) {
12334
+ const clamped = Number.isFinite(t) ? Math.max(0, Math.min(1, t)) : 0;
11471
12335
  const [r1, g1, b1] = hexToRgb(minColor);
11472
12336
  const [r2, g2, b2] = hexToRgb(maxColor);
11473
- return rgbToHex(r1 + (r2 - r1) * t, g1 + (g2 - g1) * t, b1 + (b2 - b1) * t);
12337
+ return rgbToHex(
12338
+ r1 + (r2 - r1) * clamped,
12339
+ g1 + (g2 - g1) * clamped,
12340
+ b1 + (b2 - b1) * clamped
12341
+ );
11474
12342
  }
11475
12343
  function interpolateColorOklch(minColor, maxColor, t) {
11476
12344
  const clamped = Math.max(0, Math.min(1, t));
@@ -11490,30 +12358,36 @@ function computeHeatmapCells(data, opts) {
11490
12358
  } = opts;
11491
12359
  const cols = xLabels.length;
11492
12360
  const rows = yLabels.length;
11493
- if (cols === 0 || rows === 0) return [];
11494
- const cellW = (width - cellGap * (cols - 1)) / cols;
11495
- const cellH = (height - cellGap * (rows - 1)) / rows;
12361
+ const safeWidth = Number.isFinite(width) ? Math.max(0, width) : 0;
12362
+ const safeHeight = Number.isFinite(height) ? Math.max(0, height) : 0;
12363
+ const safeCellGap = Number.isFinite(cellGap) ? Math.max(0, cellGap) : 0;
12364
+ if (cols === 0 || rows === 0 || safeWidth <= 0 || safeHeight <= 0) return [];
12365
+ const totalGapX = Math.min(safeWidth, safeCellGap * (cols - 1));
12366
+ const totalGapY = Math.min(safeHeight, safeCellGap * (rows - 1));
12367
+ const cellW = Math.max(0, (safeWidth - totalGapX) / cols);
12368
+ const cellH = Math.max(0, (safeHeight - totalGapY) / rows);
11496
12369
  const valMap = /* @__PURE__ */ new Map();
11497
12370
  for (const d of data) {
11498
- valMap.set(`${d.x}|${d.y}`, d.value);
12371
+ valMap.set(`${d.x}|${d.y}`, Number.isFinite(d.value) ? d.value : 0);
11499
12372
  }
11500
- let minVal = Infinity;
11501
- let maxVal = -Infinity;
11502
- for (const d of data) {
11503
- if (d.value < minVal) minVal = d.value;
11504
- if (d.value > maxVal) maxVal = d.value;
12373
+ const finiteValues = Array.from(valMap.values());
12374
+ let minVal = 0;
12375
+ let maxVal = 0;
12376
+ if (finiteValues.length > 0) {
12377
+ minVal = Math.min(...finiteValues, 0);
12378
+ maxVal = Math.max(...finiteValues, 0);
11505
12379
  }
11506
12380
  if (minVal === maxVal) maxVal = minVal + 1;
11507
12381
  const cells = [];
11508
12382
  for (let r = 0; r < rows; r++) {
11509
12383
  for (let c = 0; c < cols; c++) {
11510
12384
  const val = valMap.get(`${xLabels[c]}|${yLabels[r]}`) ?? 0;
11511
- const heat = (val - minVal) / (maxVal - minVal);
12385
+ const heat = Math.max(0, Math.min(1, (val - minVal) / (maxVal - minVal)));
11512
12386
  cells.push({
11513
12387
  row: r,
11514
12388
  col: c,
11515
- x: c * (cellW + cellGap),
11516
- y: r * (cellH + cellGap),
12389
+ x: c * (cellW + safeCellGap),
12390
+ y: r * (cellH + safeCellGap),
11517
12391
  w: cellW,
11518
12392
  h: cellH,
11519
12393
  heat,
@@ -11528,66 +12402,35 @@ function computeHeatmapCells(data, opts) {
11528
12402
  }
11529
12403
 
11530
12404
  // src/utils/treemap-chart-utils.ts
11531
- var flattenCache = /* @__PURE__ */ new WeakMap();
11532
12405
  function flattenData(data, depth = 0) {
11533
- if (depth === 0) {
11534
- const cached = flattenCache.get(data);
11535
- if (cached) return cached;
11536
- }
11537
12406
  const result = [];
11538
12407
  for (const d of data) {
11539
12408
  if (d.children && d.children.length > 0) {
11540
12409
  result.push(...flattenData(d.children, depth + 1));
11541
12410
  } else {
11542
- result.push({ label: d.label, value: d.value, depth, color: d.color });
12411
+ result.push({
12412
+ label: d.label,
12413
+ value: Number.isFinite(d.value) ? Math.max(0, d.value) : 0,
12414
+ depth,
12415
+ color: d.color
12416
+ });
11543
12417
  }
11544
12418
  }
11545
- if (depth === 0) {
11546
- flattenCache.set(data, result);
11547
- }
11548
12419
  return result;
11549
12420
  }
11550
- var _tmLastData = null;
11551
- var _tmLastW = 0;
11552
- var _tmLastH = 0;
11553
- var _tmLastGap = 0;
11554
- var _tmLastColors = null;
11555
- var _tmLastResult = [];
11556
12421
  function computeTreeMapNodes(data, opts) {
11557
12422
  const { width, height, gap = 2, colors } = opts;
12423
+ const safeWidth = Number.isFinite(width) ? Math.max(0, width) : 0;
12424
+ const safeHeight = Number.isFinite(height) ? Math.max(0, height) : 0;
12425
+ const safeGap = Number.isFinite(gap) ? Math.max(0, gap) : 0;
11558
12426
  const palette = colors ?? DEFAULT_CHART_COLORS;
11559
- if (data === _tmLastData && width === _tmLastW && height === _tmLastH && gap === _tmLastGap && palette === _tmLastColors) {
11560
- return _tmLastResult;
11561
- }
11562
12427
  const flat = flattenData(data);
11563
- if (flat.length === 0) {
11564
- _tmLastData = data;
11565
- _tmLastW = width;
11566
- _tmLastH = height;
11567
- _tmLastGap = gap;
11568
- _tmLastColors = palette;
11569
- _tmLastResult = [];
11570
- return _tmLastResult;
11571
- }
12428
+ if (flat.length === 0 || safeWidth <= 0 || safeHeight <= 0) return [];
11572
12429
  const totalValue = flat.reduce((s, d) => s + d.value, 0);
11573
- if (totalValue === 0) {
11574
- _tmLastData = data;
11575
- _tmLastW = width;
11576
- _tmLastH = height;
11577
- _tmLastGap = gap;
11578
- _tmLastColors = palette;
11579
- _tmLastResult = [];
11580
- return _tmLastResult;
11581
- }
12430
+ if (totalValue <= 0) return [];
11582
12431
  const sorted = flat.map((d, i) => ({ ...d, originalIndex: i })).sort((a, b) => b.value - a.value);
11583
12432
  const nodes = [];
11584
- layoutRect(sorted, 0, 0, width, height, gap, palette, nodes);
11585
- _tmLastData = data;
11586
- _tmLastW = width;
11587
- _tmLastH = height;
11588
- _tmLastGap = gap;
11589
- _tmLastColors = palette;
11590
- _tmLastResult = nodes;
12433
+ layoutRect(sorted, 0, 0, safeWidth, safeHeight, safeGap, palette, nodes);
11591
12434
  return nodes;
11592
12435
  }
11593
12436
  function layoutRect(items, x, y, w, h, gap, palette, out) {
@@ -11634,41 +12477,22 @@ function layoutRect(items, x, y, w, h, gap, palette, out) {
11634
12477
  }
11635
12478
 
11636
12479
  // src/utils/sunburst-chart-utils.ts
11637
- var sumCache = /* @__PURE__ */ new WeakMap();
11638
12480
  function sumValue(d) {
11639
- const cached = sumCache.get(d);
11640
- if (cached !== void 0) return cached;
11641
12481
  let v;
11642
12482
  if (d.children && d.children.length > 0) {
11643
12483
  v = d.children.reduce((s, c) => s + sumValue(c), 0);
11644
12484
  } else {
11645
12485
  v = d.value;
11646
12486
  }
11647
- sumCache.set(d, v);
11648
- return v;
11649
- }
11650
- function precomputeSums(items) {
11651
- for (const item of items) {
11652
- if (item.children && item.children.length > 0) {
11653
- precomputeSums(item.children);
11654
- }
11655
- sumValue(item);
11656
- }
12487
+ return Number.isFinite(v) ? Math.max(0, v) : 0;
11657
12488
  }
11658
- var _sbLastData = null;
11659
- var _sbLastCx = 0;
11660
- var _sbLastCy = 0;
11661
- var _sbLastIR = 0;
11662
- var _sbLastOR = 0;
11663
- var _sbLastColors = null;
11664
- var _sbLastResult = [];
11665
12489
  function computeSunburstArcs(data, opts) {
11666
- const { cx, cy, innerRadius, outerRadius, colors } = opts;
12490
+ const { innerRadius, outerRadius, colors } = opts;
12491
+ const cx = Number.isFinite(opts.cx) ? opts.cx : 0;
12492
+ const cy = Number.isFinite(opts.cy) ? opts.cy : 0;
12493
+ const safeInnerRadius = Number.isFinite(innerRadius) ? Math.max(0, innerRadius) : 0;
12494
+ const safeOuterRadius = Number.isFinite(outerRadius) ? Math.max(safeInnerRadius, outerRadius) : safeInnerRadius;
11667
12495
  const palette = colors ?? DEFAULT_CHART_COLORS;
11668
- if (data === _sbLastData && cx === _sbLastCx && cy === _sbLastCy && innerRadius === _sbLastIR && outerRadius === _sbLastOR && palette === _sbLastColors) {
11669
- return _sbLastResult;
11670
- }
11671
- precomputeSums(data);
11672
12496
  function maxDepth(items, d) {
11673
12497
  let m = d;
11674
12498
  for (const item of items) {
@@ -11679,7 +12503,7 @@ function computeSunburstArcs(data, opts) {
11679
12503
  return m;
11680
12504
  }
11681
12505
  const depth = maxDepth(data, 0);
11682
- const ringWidth = depth > 0 ? (outerRadius - innerRadius) / (depth + 1) : outerRadius - innerRadius;
12506
+ const ringWidth = depth > 0 ? (safeOuterRadius - safeInnerRadius) / (depth + 1) : safeOuterRadius - safeInnerRadius;
11683
12507
  const arcs = [];
11684
12508
  let flatIndex = 0;
11685
12509
  function layoutLevel(items, startAngle, endAngle, level, parentColorIdx) {
@@ -11691,8 +12515,8 @@ function computeSunburstArcs(data, opts) {
11691
12515
  const sweep = (endAngle - startAngle) * val / total;
11692
12516
  const sa = angle;
11693
12517
  const ea = angle + sweep;
11694
- const iR = innerRadius + level * ringWidth;
11695
- const oR = iR + ringWidth - 1;
12518
+ const iR = safeInnerRadius + level * ringWidth;
12519
+ const oR = Math.max(iR, iR + ringWidth - 1);
11696
12520
  const colorIdx = level === 0 ? i : parentColorIdx;
11697
12521
  const color = item.color ?? palette[colorIdx % palette.length];
11698
12522
  const path = createPieArcPath({
@@ -11706,7 +12530,7 @@ function computeSunburstArcs(data, opts) {
11706
12530
  arcs.push({
11707
12531
  index: flatIndex++,
11708
12532
  label: item.label,
11709
- value: item.value,
12533
+ value: val,
11710
12534
  depth: level,
11711
12535
  startAngle: sa,
11712
12536
  endAngle: ea,
@@ -11721,13 +12545,6 @@ function computeSunburstArcs(data, opts) {
11721
12545
  });
11722
12546
  }
11723
12547
  layoutLevel(data, -Math.PI / 2, 3 * Math.PI / 2, 0, 0);
11724
- _sbLastData = data;
11725
- _sbLastCx = cx;
11726
- _sbLastCy = cy;
11727
- _sbLastIR = innerRadius;
11728
- _sbLastOR = outerRadius;
11729
- _sbLastColors = palette;
11730
- _sbLastResult = arcs;
11731
12548
  return arcs;
11732
12549
  }
11733
12550
 
@@ -11790,13 +12607,12 @@ var resultIconPaths = {
11790
12607
  function getResultIconPath(status) {
11791
12608
  return resultIconPaths[status];
11792
12609
  }
11793
- var httpStatusLabels = {
11794
- "404": "404",
11795
- "403": "403",
11796
- "500": "500"
11797
- };
12610
+ var HTTP_RESULT_STATUSES = /* @__PURE__ */ new Set(["404", "403", "500"]);
12611
+ function isHttpResultStatus(status) {
12612
+ return HTTP_RESULT_STATUSES.has(status);
12613
+ }
11798
12614
  function getResultHttpLabel(status) {
11799
- return httpStatusLabels[status];
12615
+ return isHttpResultStatus(status) ? status : void 0;
11800
12616
  }
11801
12617
 
11802
12618
  // src/utils/empty-utils.ts
@@ -11811,8 +12627,19 @@ var presetDescriptions = {
11811
12627
  "no-results": "No results found",
11812
12628
  error: "Something went wrong"
11813
12629
  };
11814
- function getEmptyDescription(preset) {
11815
- return presetDescriptions[preset];
12630
+ function getEmptyDescription(preset, locale) {
12631
+ switch (preset) {
12632
+ case "no-data":
12633
+ return locale?.empty?.noDataAvailable ?? presetDescriptions[preset];
12634
+ case "no-results":
12635
+ return locale?.empty?.noResults ?? presetDescriptions[preset];
12636
+ case "error":
12637
+ return locale?.empty?.error ?? presetDescriptions[preset];
12638
+ case "default":
12639
+ case "simple":
12640
+ default:
12641
+ return locale?.empty?.noData ?? locale?.common?.emptyText ?? presetDescriptions[preset];
12642
+ }
11816
12643
  }
11817
12644
  var emptyIllustrationViewBox = "0 0 64 41";
11818
12645
  var emptyIllustrationPaths = [
@@ -12573,6 +13400,18 @@ var defaultChatMessageStatusInfo = {
12573
13400
  function getChatMessageStatusInfo(status, statusMap = defaultChatMessageStatusInfo) {
12574
13401
  return statusMap[status] || defaultChatMessageStatusInfo[status];
12575
13402
  }
13403
+ var chatStatusBarBaseClasses = "px-5 py-2 border-t border-[var(--tiger-border,#e5e7eb)] text-xs italic bg-[var(--tiger-surface-muted,#f9fafb)]";
13404
+ var chatStatusBarVariantText = {
13405
+ default: "text-[var(--tiger-text-muted,#6b7280)]",
13406
+ primary: "text-[var(--tiger-primary,#2563eb)]",
13407
+ success: "text-[var(--tiger-success,#22c55e)]",
13408
+ warning: "text-[var(--tiger-warning,#f59e0b)]",
13409
+ danger: "text-[var(--tiger-danger,#ef4444)]",
13410
+ info: "text-[var(--tiger-info,#3b82f6)]"
13411
+ };
13412
+ function getChatStatusBarClasses(variant = "info") {
13413
+ return `${chatStatusBarBaseClasses} ${chatStatusBarVariantText[variant] ?? chatStatusBarVariantText.info}`;
13414
+ }
12576
13415
 
12577
13416
  // src/utils/activity-feed-utils.ts
12578
13417
  var activityItemClasses = "tiger-activity-item";
@@ -13302,13 +14141,14 @@ function isCascaderOptionExpandable(option) {
13302
14141
  if (option.isLeaf) return false;
13303
14142
  return !!(option.children && option.children.length > 0);
13304
14143
  }
13305
- function flattenCascaderOptions(options, parentPath = [], parentValuePath = []) {
14144
+ function flattenCascaderOptions(options, parentPath = [], parentValuePath = [], changeOnSelect = false) {
13306
14145
  const result = [];
13307
14146
  for (const option of options) {
13308
14147
  const currentPath = [...parentPath, option];
13309
14148
  const currentValuePath = [...parentValuePath, option.value];
13310
14149
  const isDisabled = currentPath.some((o) => o.disabled);
13311
- if (!option.children || option.children.length === 0 || option.isLeaf) {
14150
+ const isLeaf = !option.children || option.children.length === 0 || !!option.isLeaf;
14151
+ if (isLeaf || changeOnSelect) {
13312
14152
  result.push({
13313
14153
  path: currentPath,
13314
14154
  valuePath: currentValuePath,
@@ -13317,7 +14157,9 @@ function flattenCascaderOptions(options, parentPath = [], parentValuePath = [])
13317
14157
  });
13318
14158
  }
13319
14159
  if (option.children && option.children.length > 0) {
13320
- result.push(...flattenCascaderOptions(option.children, currentPath, currentValuePath));
14160
+ result.push(
14161
+ ...flattenCascaderOptions(option.children, currentPath, currentValuePath, changeOnSelect)
14162
+ );
13321
14163
  }
13322
14164
  }
13323
14165
  return result;
@@ -13989,6 +14831,19 @@ function splitTransferData(dataSource, targetKeys) {
13989
14831
  }
13990
14832
  return { sourceItems, targetItems };
13991
14833
  }
14834
+ function moveTransferItems(direction, targetKeys, selectedKeys, dataSource) {
14835
+ const disabledKeys = /* @__PURE__ */ new Set();
14836
+ for (const item of dataSource) {
14837
+ if (item.disabled) disabledKeys.add(item.key);
14838
+ }
14839
+ const dataKeys = new Set(dataSource.map((item) => item.key));
14840
+ const movedKeys = [...selectedKeys].filter((key) => dataKeys.has(key) && !disabledKeys.has(key));
14841
+ if (direction === "right") {
14842
+ return { targetKeys: [...targetKeys, ...movedKeys], movedKeys };
14843
+ }
14844
+ const movedSet = new Set(movedKeys);
14845
+ return { targetKeys: targetKeys.filter((key) => !movedSet.has(key)), movedKeys };
14846
+ }
13992
14847
  function filterTransferItems(items, query, filterFn) {
13993
14848
  if (!query) return items;
13994
14849
  const fn = filterFn ?? defaultTransferFilter;
@@ -14620,9 +15475,14 @@ var minusPathD = "M5 10a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1z";
14620
15475
  var plusPathD = "M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z";
14621
15476
  var stepperIconViewBox = "0 0 20 20";
14622
15477
  function clampStepperValue(value, min, max, precision) {
14623
- let v = Math.max(min, Math.min(max, value));
14624
- if (precision !== void 0) {
14625
- v = Number(v.toFixed(precision));
15478
+ const safeMin = Number.isFinite(min) || min === Number.NEGATIVE_INFINITY ? min : 0;
15479
+ const safeMax = Number.isFinite(max) || max === Number.POSITIVE_INFINITY ? max : safeMin;
15480
+ const lower = Math.min(safeMin, safeMax);
15481
+ const upper = Math.max(safeMin, safeMax);
15482
+ const fallback = Number.isFinite(lower) ? lower : 0;
15483
+ let v = Math.max(lower, Math.min(upper, Number.isFinite(value) ? value : fallback));
15484
+ if (precision !== void 0 && Number.isFinite(precision) && precision >= 0) {
15485
+ v = Number(v.toFixed(Math.floor(precision)));
14626
15486
  }
14627
15487
  return v;
14628
15488
  }
@@ -15660,6 +16520,26 @@ function calculateResizeDelta(handle, mouseDeltaX, mouseDeltaY, axis) {
15660
16520
  }
15661
16521
  return { deltaWidth, deltaHeight };
15662
16522
  }
16523
+ var RESIZE_KEYBOARD_STEP = 10;
16524
+ function getResizeKeyboardDelta(key, step = RESIZE_KEYBOARD_STEP) {
16525
+ switch (key) {
16526
+ case "ArrowRight":
16527
+ return { deltaX: step, deltaY: 0 };
16528
+ case "ArrowLeft":
16529
+ return { deltaX: -step, deltaY: 0 };
16530
+ case "ArrowDown":
16531
+ return { deltaX: 0, deltaY: step };
16532
+ case "ArrowUp":
16533
+ return { deltaX: 0, deltaY: -step };
16534
+ default:
16535
+ return null;
16536
+ }
16537
+ }
16538
+ function getResizeHandleOrientation(handle) {
16539
+ if (handle === "left" || handle === "right") return "vertical";
16540
+ if (handle === "top" || handle === "bottom") return "horizontal";
16541
+ return void 0;
16542
+ }
15663
16543
  function clampDimensions(width, height, minWidth, minHeight, maxWidth, maxHeight) {
15664
16544
  let w = Math.max(width, minWidth);
15665
16545
  let h = Math.max(height, minHeight);
@@ -15683,6 +16563,19 @@ var codeEditorHighlightClasses = "p-3 font-mono text-sm leading-relaxed whitespa
15683
16563
  var codeEditorLineNumberClasses = "select-none text-right pr-3 pl-2 border-r min-w-[3rem] flex-shrink-0";
15684
16564
  var codeEditorLineNumberLightClasses = "bg-gray-50 border-gray-200 text-gray-400";
15685
16565
  var codeEditorLineNumberDarkClasses = "bg-gray-800 border-gray-700 text-gray-500";
16566
+ var codeEditorActiveLineLightClasses = "bg-gray-100";
16567
+ var codeEditorActiveLineDarkClasses = "bg-gray-800/60";
16568
+ function getCodeEditorActiveLineClasses(theme) {
16569
+ return theme === "dark" ? codeEditorActiveLineDarkClasses : codeEditorActiveLineLightClasses;
16570
+ }
16571
+ function getActiveLineIndex(value, caretPosition) {
16572
+ const clamped = Math.max(0, Math.min(caretPosition, value.length));
16573
+ let line = 0;
16574
+ for (let i = 0; i < clamped; i++) {
16575
+ if (value[i] === "\n") line++;
16576
+ }
16577
+ return line;
16578
+ }
15686
16579
  var tokenClassesLight = {
15687
16580
  keyword: "text-purple-600 font-semibold",
15688
16581
  string: "text-green-600",
@@ -16076,6 +16969,66 @@ function isContentEmpty(html) {
16076
16969
  const stripped = html.replace(/<br\s*\/?>/gi, "").replace(/<\/?[^>]*>/g, "").replace(/&nbsp;/gi, "").trim();
16077
16970
  return stripped.length === 0;
16078
16971
  }
16972
+ function escapeHtml(value) {
16973
+ return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
16974
+ }
16975
+ function decodeHtmlEntities(value) {
16976
+ return value.replace(/&nbsp;/gi, " ").replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#39;/gi, "'").replace(/&amp;/gi, "&");
16977
+ }
16978
+ function inlineMarkdownToHtml(value) {
16979
+ return escapeHtml(value).replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>").replace(/\*([^*]+)\*/g, "<em>$1</em>").replace(/`([^`]+)`/g, "<code>$1</code>");
16980
+ }
16981
+ function richTextModeToHtml(value, mode = "html") {
16982
+ if (mode === "html") return sanitizeHtml(value);
16983
+ if (mode === "plain") {
16984
+ return escapeHtml(value).split(/\r?\n/).map((line) => line ? `<p>${line}</p>` : "<p><br></p>").join("");
16985
+ }
16986
+ const lines = value.split(/\r?\n/);
16987
+ const html = [];
16988
+ let listItems = [];
16989
+ const flushList = () => {
16990
+ if (listItems.length === 0) return;
16991
+ html.push(
16992
+ `<ul>${listItems.map((item) => `<li>${inlineMarkdownToHtml(item)}</li>`).join("")}</ul>`
16993
+ );
16994
+ listItems = [];
16995
+ };
16996
+ for (const line of lines) {
16997
+ const trimmed = line.trim();
16998
+ const bullet = /^[-*]\s+(.+)$/.exec(trimmed);
16999
+ if (bullet) {
17000
+ listItems.push(bullet[1]);
17001
+ continue;
17002
+ }
17003
+ flushList();
17004
+ if (!trimmed) {
17005
+ html.push("<p><br></p>");
17006
+ } else if (trimmed.startsWith("### ")) {
17007
+ html.push(`<h3>${inlineMarkdownToHtml(trimmed.slice(4))}</h3>`);
17008
+ } else if (trimmed.startsWith("## ")) {
17009
+ html.push(`<h2>${inlineMarkdownToHtml(trimmed.slice(3))}</h2>`);
17010
+ } else if (trimmed.startsWith("# ")) {
17011
+ html.push(`<h1>${inlineMarkdownToHtml(trimmed.slice(2))}</h1>`);
17012
+ } else {
17013
+ html.push(`<p>${inlineMarkdownToHtml(trimmed)}</p>`);
17014
+ }
17015
+ }
17016
+ flushList();
17017
+ return sanitizeHtml(html.join(""));
17018
+ }
17019
+ function htmlToText(value) {
17020
+ return decodeHtmlEntities(
17021
+ sanitizeHtml(value).replace(/<\/(h[1-6]|p|div|li)>/gi, "\n").replace(/<br\s*\/?>/gi, "\n").replace(/<\/ul>/gi, "\n").replace(/<[^>]+>/g, "")
17022
+ ).replace(/\n{3,}/g, "\n\n").trim();
17023
+ }
17024
+ function richTextHtmlToMode(html, mode = "html") {
17025
+ const sanitized = sanitizeHtml(html);
17026
+ if (mode === "html") return sanitized;
17027
+ if (mode === "plain") return htmlToText(sanitized);
17028
+ return decodeHtmlEntities(
17029
+ sanitized.replace(/<h1[^>]*>([\s\S]*?)<\/h1>/gi, "# $1\n\n").replace(/<h2[^>]*>([\s\S]*?)<\/h2>/gi, "## $1\n\n").replace(/<h3[^>]*>([\s\S]*?)<\/h3>/gi, "### $1\n\n").replace(/<li[^>]*>([\s\S]*?)<\/li>/gi, "- $1\n").replace(/<\/ul>/gi, "\n").replace(/<strong[^>]*>([\s\S]*?)<\/strong>/gi, "**$1**").replace(/<b[^>]*>([\s\S]*?)<\/b>/gi, "**$1**").replace(/<em[^>]*>([\s\S]*?)<\/em>/gi, "*$1*").replace(/<i[^>]*>([\s\S]*?)<\/i>/gi, "*$1*").replace(/<code[^>]*>([\s\S]*?)<\/code>/gi, "`$1`").replace(/<\/(p|div)>/gi, "\n\n").replace(/<br\s*\/?>/gi, "\n").replace(/<[^>]+>/g, "")
17030
+ ).replace(/\n{3,}/g, "\n\n").trim();
17031
+ }
16079
17032
  function parseHeight(height) {
16080
17033
  if (height === void 0) return void 0;
16081
17034
  if (typeof height === "number") return `${height}px`;
@@ -16369,15 +17322,15 @@ function createBuiltinRichTextEngine() {
16369
17322
  name: "builtin",
16370
17323
  create(ctx) {
16371
17324
  const { element } = ctx;
17325
+ const mode = ctx.mode ?? "html";
16372
17326
  let readOnly = ctx.readOnly;
16373
17327
  let disabled = ctx.disabled;
16374
17328
  element.contentEditable = String(!(readOnly || disabled));
16375
- const initial = sanitizeHtml(ctx.initialValue);
17329
+ const initial = richTextModeToHtml(ctx.initialValue, mode);
16376
17330
  if (initial) element.innerHTML = initial;
16377
17331
  const handleInput = () => {
16378
17332
  const html = element.innerHTML;
16379
- const sanitized = sanitizeHtml(html);
16380
- ctx.notifyChange(sanitized);
17333
+ ctx.notifyChange(richTextHtmlToMode(html, mode));
16381
17334
  };
16382
17335
  const refreshActiveFormats = () => {
16383
17336
  if (!isBrowser()) return;
@@ -16441,11 +17394,11 @@ function createBuiltinRichTextEngine() {
16441
17394
  };
16442
17395
  return {
16443
17396
  setValue(html) {
16444
- const sanitized = sanitizeHtml(html);
17397
+ const sanitized = richTextModeToHtml(html, mode);
16445
17398
  if (element.innerHTML !== sanitized) element.innerHTML = sanitized;
16446
17399
  },
16447
17400
  getValue() {
16448
- return sanitizeHtml(element.innerHTML);
17401
+ return richTextHtmlToMode(element.innerHTML, mode);
16449
17402
  },
16450
17403
  exec,
16451
17404
  refreshActiveFormats,
@@ -16544,17 +17497,54 @@ var virtualTableBorderedClasses = "[&_td]:border-r [&_th]:border-r [&_td:last-ch
16544
17497
  var virtualTableEmptyClasses = "flex items-center justify-center py-12 text-sm text-[var(--tiger-text-muted,#9ca3af)]";
16545
17498
  var virtualTableLoadingClasses = "absolute inset-0 flex items-center justify-center bg-[var(--tiger-table-bg,var(--tiger-component-table-bg,var(--tiger-bg,var(--tiger-surface,#ffffff))))]/60 z-20";
16546
17499
  function calculateVirtualRange(scrollTop, viewportHeight, totalRows, rowHeight, overscan = 5) {
16547
- if (totalRows === 0 || rowHeight <= 0) {
17500
+ const safeTotalRows = Number.isFinite(totalRows) ? Math.max(0, Math.floor(totalRows)) : 0;
17501
+ const safeRowHeight = Number.isFinite(rowHeight) ? rowHeight : 0;
17502
+ const safeViewportHeight = Number.isFinite(viewportHeight) ? Math.max(0, viewportHeight) : 0;
17503
+ const safeScrollTop = Number.isFinite(scrollTop) ? Math.max(0, scrollTop) : 0;
17504
+ const safeOverscan = Number.isFinite(overscan) ? Math.max(0, Math.floor(overscan)) : 0;
17505
+ if (safeTotalRows === 0 || safeRowHeight <= 0 || safeViewportHeight <= 0) {
16548
17506
  return { start: 0, end: 0, offsetTop: 0, totalHeight: 0 };
16549
17507
  }
16550
- const totalHeight = totalRows * rowHeight;
16551
- const startRaw = Math.floor(scrollTop / rowHeight);
16552
- const visibleCount = Math.ceil(viewportHeight / rowHeight);
16553
- const start = Math.max(0, startRaw - overscan);
16554
- const end = Math.min(totalRows, startRaw + visibleCount + overscan);
16555
- const offsetTop = start * rowHeight;
17508
+ const totalHeight = safeTotalRows * safeRowHeight;
17509
+ const startRaw = Math.floor(safeScrollTop / safeRowHeight);
17510
+ const visibleCount = Math.ceil(safeViewportHeight / safeRowHeight);
17511
+ const start = Math.max(0, Math.min(safeTotalRows, startRaw - safeOverscan));
17512
+ const end = Math.max(start, Math.min(safeTotalRows, startRaw + visibleCount + safeOverscan));
17513
+ const offsetTop = start * safeRowHeight;
16556
17514
  return { start, end, offsetTop, totalHeight };
16557
17515
  }
17516
+ function calculateVirtualColumnRange(scrollLeft, viewportWidth, columnWidths, overscan = 2) {
17517
+ const count = columnWidths.length;
17518
+ if (count === 0 || viewportWidth <= 0) {
17519
+ return { start: 0, end: count, leftPad: 0, rightPad: 0 };
17520
+ }
17521
+ const safeScrollLeft = Math.max(0, Number.isFinite(scrollLeft) ? scrollLeft : 0);
17522
+ const safeOverscan = Math.max(0, Math.floor(overscan));
17523
+ let acc = 0;
17524
+ let rawStart = 0;
17525
+ for (let i = 0; i < count; i++) {
17526
+ if (acc + columnWidths[i] > safeScrollLeft) {
17527
+ rawStart = i;
17528
+ break;
17529
+ }
17530
+ acc += columnWidths[i];
17531
+ if (i === count - 1) rawStart = count - 1;
17532
+ }
17533
+ const viewEnd = safeScrollLeft + viewportWidth;
17534
+ let endExclusive = rawStart;
17535
+ let endAcc = acc;
17536
+ while (endExclusive < count && endAcc < viewEnd) {
17537
+ endAcc += columnWidths[endExclusive];
17538
+ endExclusive++;
17539
+ }
17540
+ const start = Math.max(0, rawStart - safeOverscan);
17541
+ const end = Math.min(count, endExclusive + safeOverscan);
17542
+ let leftPad = 0;
17543
+ for (let i = 0; i < start; i++) leftPad += columnWidths[i];
17544
+ let rightPad = 0;
17545
+ for (let i = end; i < count; i++) rightPad += columnWidths[i];
17546
+ return { start, end, leftPad, rightPad };
17547
+ }
16558
17548
  function getVirtualRowKey(row, index, rowKey) {
16559
17549
  if (!rowKey) return index;
16560
17550
  if (typeof rowKey === "function") return rowKey(row, index);
@@ -16641,8 +17631,14 @@ function shouldLoadMore(el, threshold, direction = "vertical", inverse = false)
16641
17631
  }
16642
17632
  function createInfiniteScrollObserver(sentinel, options) {
16643
17633
  if (typeof IntersectionObserver === "undefined") return null;
16644
- const { threshold = 100, direction = "vertical", root = null, onLoadMore } = options;
16645
- const rootMargin = direction === "horizontal" ? `0px ${threshold}px 0px 0px` : `0px 0px ${threshold}px 0px`;
17634
+ const {
17635
+ threshold = 100,
17636
+ direction = "vertical",
17637
+ root = null,
17638
+ inverse = false,
17639
+ onLoadMore
17640
+ } = options;
17641
+ const rootMargin = direction === "horizontal" ? inverse ? `0px 0px 0px ${threshold}px` : `0px ${threshold}px 0px 0px` : inverse ? `${threshold}px 0px 0px 0px` : `0px 0px ${threshold}px 0px`;
16646
17642
  const observer = new IntersectionObserver(
16647
17643
  (entries) => {
16648
17644
  const entry = entries[entries.length - 1];
@@ -16665,7 +17661,7 @@ function getInfiniteScrollContainerClasses(direction, className) {
16665
17661
  }
16666
17662
 
16667
17663
  // src/utils/file-manager-utils.ts
16668
- var fileManagerContainerClasses = "tiger-file-manager flex flex-col border border-[var(--tiger-border,#e5e7eb)] rounded-[var(--tiger-radius-md,0.5rem)] bg-[var(--tiger-bg,#ffffff)] overflow-hidden";
17664
+ var fileManagerContainerClasses = "tiger-file-manager relative flex flex-col border border-[var(--tiger-border,#e5e7eb)] rounded-[var(--tiger-radius-md,0.5rem)] bg-[var(--tiger-bg,#ffffff)] overflow-hidden";
16669
17665
  var fileManagerToolbarClasses = "flex items-center gap-2 px-3 py-2 border-b border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-bg-secondary,#f9fafb)]";
16670
17666
  var fileManagerBreadcrumbClasses = "flex items-center gap-1 text-sm text-[var(--tiger-text-secondary,#6b7280)]";
16671
17667
  var fileManagerBreadcrumbItemClasses = "cursor-pointer hover:text-[var(--tiger-primary,#2563eb)] transition-colors";
@@ -16715,18 +17711,10 @@ function filterHiddenFiles(items, showHidden) {
16715
17711
  return items.filter((item) => !item.name.startsWith("."));
16716
17712
  }
16717
17713
  function formatFileSizeLabel(bytes) {
16718
- if (bytes === void 0 || bytes === null) return "";
16719
- if (bytes === 0) return "0 B";
16720
- const units = ["B", "KB", "MB", "GB", "TB"];
16721
- const k = 1024;
16722
- const i = Math.floor(Math.log(bytes) / Math.log(k));
16723
- const size = bytes / Math.pow(k, i);
16724
- return `${size % 1 === 0 ? size : size.toFixed(1)} ${units[i]}`;
17714
+ return formatBytes(bytes, { precision: 1, trimTrailingZeros: true });
16725
17715
  }
16726
17716
  function getFileExtension2(name) {
16727
- const dot = name.lastIndexOf(".");
16728
- if (dot <= 0) return "";
16729
- return name.slice(dot + 1).toLowerCase();
17717
+ return getFileExtensionName(name);
16730
17718
  }
16731
17719
  function navigateToFolder(files, path) {
16732
17720
  let current = files;
@@ -17078,8 +18066,10 @@ function normalizeGanttDate(value) {
17078
18066
  return time;
17079
18067
  }
17080
18068
  function getGanttTaskAriaLabel(task) {
17081
- const start = formatGanttDate(new Date(normalizeGanttDate(task.start)), "day");
17082
- const end = formatGanttDate(new Date(normalizeGanttDate(task.end)), "day");
18069
+ const startMs = normalizeGanttDate(task.start);
18070
+ const endMs = normalizeGanttDate(task.end);
18071
+ const start = Number.isFinite(startMs) ? formatGanttDate(new Date(startMs), "day") : "unknown";
18072
+ const end = Number.isFinite(endMs) ? formatGanttDate(new Date(endMs), "day") : "unknown";
17083
18073
  const progress = typeof task.progress === "number" ? `, ${clampProgress(task.progress)}%` : "";
17084
18074
  return `${task.label}, ${start} to ${end}${progress}`;
17085
18075
  }
@@ -17092,19 +18082,28 @@ function getGanttDependencyPath(dependency) {
17092
18082
  }
17093
18083
  function computeGanttLayout(data, options = {}) {
17094
18084
  const {
17095
- width = 720,
17096
- rowHeight = 40,
17097
- barHeight = 18,
17098
- taskLabelWidth = 140,
17099
- timelineHeight = 36,
17100
- minBarWidth = 6,
18085
+ width: rawWidth = 720,
18086
+ rowHeight: rawRowHeight = 40,
18087
+ barHeight: rawBarHeight = 18,
18088
+ taskLabelWidth: rawTaskLabelWidth = 140,
18089
+ timelineHeight: rawTimelineHeight = 36,
18090
+ minBarWidth: rawMinBarWidth = 6,
17101
18091
  scale = "week",
17102
18092
  colors = DEFAULT_CHART_COLORS,
17103
18093
  dateFormatter
17104
18094
  } = options;
18095
+ const width = Number.isFinite(rawWidth) ? Math.max(0, rawWidth) : 0;
18096
+ const rowHeight = Number.isFinite(rawRowHeight) ? Math.max(0, rawRowHeight) : 0;
18097
+ const barHeight = Number.isFinite(rawBarHeight) ? Math.max(0, rawBarHeight) : 0;
18098
+ const taskLabelWidth = Number.isFinite(rawTaskLabelWidth) ? Math.max(0, rawTaskLabelWidth) : 0;
18099
+ const timelineHeight = Number.isFinite(rawTimelineHeight) ? Math.max(0, rawTimelineHeight) : 0;
18100
+ const minBarWidth = Number.isFinite(rawMinBarWidth) ? Math.max(0, rawMinBarWidth) : 0;
17105
18101
  if (data.length === 0) {
17106
- const minMs2 = normalizeGanttDate(options.minDate ?? Date.now());
17107
- const maxMs2 = normalizeGanttDate(options.maxDate ?? minMs2 + DAY_MS);
18102
+ const fallbackMin = Date.now();
18103
+ const rawMinMs2 = normalizeGanttDate(options.minDate ?? fallbackMin);
18104
+ const minMs2 = Number.isFinite(rawMinMs2) ? rawMinMs2 : fallbackMin;
18105
+ const rawMaxMs2 = normalizeGanttDate(options.maxDate ?? minMs2 + DAY_MS);
18106
+ const maxMs2 = Number.isFinite(rawMaxMs2) && rawMaxMs2 > minMs2 ? rawMaxMs2 : minMs2 + DAY_MS;
17108
18107
  return {
17109
18108
  tasks: [],
17110
18109
  dependencies: [],
@@ -17120,24 +18119,28 @@ function computeGanttLayout(data, options = {}) {
17120
18119
  const taskRanges = data.map((task) => {
17121
18120
  const rawStart = normalizeGanttDate(task.start);
17122
18121
  const rawEnd = normalizeGanttDate(task.end);
17123
- const startMs = Math.min(rawStart, rawEnd);
17124
- const endMs = Math.max(rawStart, rawEnd);
18122
+ const startFallback = Number.isFinite(rawEnd) ? rawEnd : Date.now();
18123
+ const endFallback = Number.isFinite(rawStart) ? rawStart : startFallback + DAY_MS;
18124
+ const safeStart = Number.isFinite(rawStart) ? rawStart : startFallback;
18125
+ const safeEnd = Number.isFinite(rawEnd) ? rawEnd : endFallback;
18126
+ const startMs = Math.min(safeStart, safeEnd);
18127
+ const endMs = Math.max(safeStart, safeEnd);
17125
18128
  return { task, startMs, endMs: endMs === startMs ? endMs + DAY_MS : endMs };
17126
18129
  });
17127
- const minMs = normalizeGanttDate(
17128
- options.minDate ?? Math.min(...taskRanges.map((item) => item.startMs))
17129
- );
17130
- const maxMs = normalizeGanttDate(
17131
- options.maxDate ?? Math.max(...taskRanges.map((item) => item.endMs))
17132
- );
18130
+ const inferredMinMs = Math.min(...taskRanges.map((item) => item.startMs));
18131
+ const inferredMaxMs = Math.max(...taskRanges.map((item) => item.endMs));
18132
+ const rawMinMs = normalizeGanttDate(options.minDate ?? inferredMinMs);
18133
+ const rawMaxMs = normalizeGanttDate(options.maxDate ?? inferredMaxMs);
18134
+ const minMs = Number.isFinite(rawMinMs) ? rawMinMs : inferredMinMs;
18135
+ const maxMs = Number.isFinite(rawMaxMs) ? rawMaxMs : inferredMaxMs;
17133
18136
  const safeMaxMs = maxMs > minMs ? maxMs : minMs + DAY_MS;
17134
18137
  const timelineWidth = Math.max(0, width - taskLabelWidth);
17135
18138
  const rangeMs = safeMaxMs - minMs;
17136
18139
  const xForTime = (time) => taskLabelWidth + (time - minMs) / rangeMs * timelineWidth;
17137
18140
  const tasks = taskRanges.map(({ task, startMs, endMs }, index) => {
17138
18141
  const x = xForTime(startMs);
17139
- const rawWidth = xForTime(endMs) - x;
17140
- const barWidth = Math.max(minBarWidth, rawWidth);
18142
+ const rawWidth2 = xForTime(endMs) - x;
18143
+ const barWidth = Math.max(minBarWidth, rawWidth2);
17141
18144
  return {
17142
18145
  id: task.id,
17143
18146
  task,
@@ -17190,15 +18193,19 @@ function computeGanttLayout(data, options = {}) {
17190
18193
  };
17191
18194
  }
17192
18195
  function createGanttTimelineTicks(minMs, maxMs, timelineWidth, taskLabelWidth, scale, formatter = formatGanttDate) {
18196
+ const safeMinMs = Number.isFinite(minMs) ? minMs : Date.now();
18197
+ const safeMaxMs = Number.isFinite(maxMs) && maxMs > safeMinMs ? maxMs : safeMinMs + DAY_MS;
18198
+ const safeTimelineWidth = Number.isFinite(timelineWidth) ? Math.max(0, timelineWidth) : 0;
18199
+ const safeTaskLabelWidth = Number.isFinite(taskLabelWidth) ? Math.max(0, taskLabelWidth) : 0;
17193
18200
  const ticks = [];
17194
- const rangeMs = Math.max(DAY_MS, maxMs - minMs);
17195
- let current = startOfTick(new Date(minMs), scale);
17196
- while (current.getTime() <= maxMs) {
18201
+ const rangeMs = Math.max(DAY_MS, safeMaxMs - safeMinMs);
18202
+ let current = startOfTick(new Date(safeMinMs), scale);
18203
+ while (current.getTime() <= safeMaxMs) {
17197
18204
  const currentMs = current.getTime();
17198
- if (currentMs >= minMs) {
18205
+ if (currentMs >= safeMinMs) {
17199
18206
  ticks.push({
17200
18207
  value: new Date(currentMs),
17201
- x: taskLabelWidth + (currentMs - minMs) / rangeMs * timelineWidth,
18208
+ x: safeTaskLabelWidth + (currentMs - safeMinMs) / rangeMs * safeTimelineWidth,
17202
18209
  label: formatter(new Date(currentMs), scale)
17203
18210
  });
17204
18211
  }
@@ -17206,8 +18213,8 @@ function createGanttTimelineTicks(minMs, maxMs, timelineWidth, taskLabelWidth, s
17206
18213
  if (ticks.length > 64) break;
17207
18214
  }
17208
18215
  if (ticks.length === 0) {
17209
- const date = new Date(minMs);
17210
- ticks.push({ value: date, x: taskLabelWidth, label: formatter(date, scale) });
18216
+ const date = new Date(safeMinMs);
18217
+ ticks.push({ value: date, x: safeTaskLabelWidth, label: formatter(date, scale) });
17211
18218
  }
17212
18219
  return ticks;
17213
18220
  }
@@ -17605,16 +18612,16 @@ var imageViewerNavBtnClasses = "fixed top-1/2 -translate-y-1/2 z-50 p-3 text-whi
17605
18612
  var imageViewerCloseBtnClasses = "fixed top-4 right-4 z-50 p-2 text-white hover:bg-white/20 rounded-[var(--tiger-radius-md,0.5rem)] transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-white";
17606
18613
  var imageViewerCounterClasses = "fixed top-4 left-1/2 -translate-x-1/2 z-50 text-white text-sm bg-[var(--tiger-surface,rgba(0,0,0,0.4))] rounded-full px-3 py-1";
17607
18614
  var imageViewerIcons = {
17608
- zoomIn: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7",
17609
- zoomOut: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7",
18615
+ zoomIn: zoomInIconPath,
18616
+ zoomOut: zoomOutIconPath,
17610
18617
  rotateLeft: "M3 10h7V3M21 14h-7v7M16.7 7.3A8 8 0 004.1 9.9M7.3 16.7A8 8 0 0019.9 14.1",
17611
18618
  rotateRight: "M14 10h7V3M10 14H3v7M7.3 7.3A8 8 0 0119.9 9.9M16.7 16.7A8 8 0 014.1 14.1",
17612
- close: "M6 18L18 6M6 6l12 12",
17613
- prev: "M15 19l-7-7 7-7",
17614
- next: "M9 5l7 7-7 7"
18619
+ close: previewCloseIconPath,
18620
+ prev: prevIconPath,
18621
+ next: nextIconPath
17615
18622
  };
17616
18623
  function clampZoom(zoom, min, max) {
17617
- return Math.min(max, Math.max(min, zoom));
18624
+ return clampScale(zoom, min, max);
17618
18625
  }
17619
18626
  function normalizeRotation(rotation) {
17620
18627
  return (rotation % 360 + 360) % 360;
@@ -17648,24 +18655,19 @@ function movePan(pan, clientX, clientY) {
17648
18655
  translateY: pan.startTranslateY + (clientY - pan.startY)
17649
18656
  };
17650
18657
  }
17651
- function touchDistance(t1, t2) {
17652
- const dx = t1.clientX - t2.clientX;
17653
- const dy = t1.clientY - t2.clientY;
17654
- return Math.sqrt(dx * dx + dy * dy);
17655
- }
17656
18658
  function createPinchState() {
17657
18659
  return { isPinching: false, initialDistance: 0, initialScale: 1 };
17658
18660
  }
17659
18661
  function startPinch(t1, t2, currentScale) {
17660
18662
  return {
17661
18663
  isPinching: true,
17662
- initialDistance: touchDistance(t1, t2),
18664
+ initialDistance: getTouchDistance(t1, t2),
17663
18665
  initialScale: currentScale
17664
18666
  };
17665
18667
  }
17666
18668
  function movePinch(pinch, t1, t2, minZoom, maxZoom) {
17667
18669
  if (pinch.initialDistance === 0) return pinch.initialScale;
17668
- const currentDistance = touchDistance(t1, t2);
18670
+ const currentDistance = getTouchDistance(t1, t2);
17669
18671
  const ratio = currentDistance / pinch.initialDistance;
17670
18672
  return clampZoom(pinch.initialScale * ratio, minZoom, maxZoom);
17671
18673
  }
@@ -18048,78 +19050,108 @@ var MODERN_REDUCED_MOTION_TOKENS = {
18048
19050
  "--tiger-transition-emphasized": "transform 0ms linear"
18049
19051
  };
18050
19052
 
18051
- // src/tailwind-plugin.ts
18052
- var tigercatTheme = {
18053
- // Primary
18054
- "--tiger-primary": "#2563eb",
18055
- "--tiger-primary-hover": "#1d4ed8",
18056
- "--tiger-primary-active": "#1e40af",
18057
- "--tiger-primary-disabled": "#93c5fd",
18058
- // Secondary
18059
- "--tiger-secondary": "#4b5563",
18060
- "--tiger-secondary-hover": "#374151",
18061
- "--tiger-secondary-active": "#1f2937",
18062
- "--tiger-secondary-disabled": "#9ca3af",
18063
- // Background hover states
18064
- "--tiger-outline-bg-hover": "#eff6ff",
18065
- "--tiger-ghost-bg-hover": "#eff6ff",
18066
- // Interaction
18067
- "--tiger-focus-ring": "#2563eb",
18068
- // Surface & background
18069
- "--tiger-surface": "#ffffff",
18070
- "--tiger-surface-muted": "#f9fafb",
18071
- "--tiger-surface-raised": "#ffffff",
18072
- // Text
18073
- "--tiger-text": "#111827",
18074
- "--tiger-text-secondary": "#6b7280",
18075
- "--tiger-text-disabled": "#d1d5db",
18076
- // Border
18077
- "--tiger-border": "#e5e7eb",
18078
- "--tiger-border-strong": "#9ca3af",
18079
- // Status
18080
- "--tiger-success": "#16a34a",
18081
- "--tiger-warning": "#d97706",
18082
- "--tiger-error": "#dc2626",
18083
- "--tiger-info": "#3b82f6",
18084
- // Chart palette
18085
- "--tiger-chart-1": "#2563eb",
18086
- "--tiger-chart-2": "#16a34a",
18087
- "--tiger-chart-3": "#d97706",
18088
- "--tiger-chart-4": "#a855f7",
18089
- "--tiger-chart-5": "#0ea5e9",
18090
- "--tiger-chart-6": "#ef4444"
18091
- };
18092
- var tigercatDarkTheme = {
18093
- "--tiger-primary": "#60a5fa",
18094
- "--tiger-primary-hover": "#93c5fd",
18095
- "--tiger-primary-active": "#bfdbfe",
18096
- "--tiger-primary-disabled": "#1e40af",
18097
- "--tiger-secondary": "#9ca3af",
18098
- "--tiger-secondary-hover": "#d1d5db",
18099
- "--tiger-secondary-active": "#e5e7eb",
18100
- "--tiger-secondary-disabled": "#4b5563",
18101
- "--tiger-outline-bg-hover": "#1e3a5f",
18102
- "--tiger-ghost-bg-hover": "#1e3a5f",
18103
- "--tiger-focus-ring": "#60a5fa",
18104
- "--tiger-surface": "#111827",
18105
- "--tiger-surface-muted": "#1f2937",
18106
- "--tiger-surface-raised": "#1f2937",
18107
- "--tiger-text": "#f9fafb",
18108
- "--tiger-text-secondary": "#d1d5db",
18109
- "--tiger-text-disabled": "#4b5563",
18110
- "--tiger-border": "#374151",
18111
- "--tiger-border-strong": "#6b7280",
18112
- "--tiger-success": "#4ade80",
18113
- "--tiger-warning": "#fbbf24",
18114
- "--tiger-error": "#f87171",
18115
- "--tiger-info": "#60a5fa",
18116
- "--tiger-chart-1": "#60a5fa",
18117
- "--tiger-chart-2": "#4ade80",
18118
- "--tiger-chart-3": "#fbbf24",
18119
- "--tiger-chart-4": "#c084fc",
18120
- "--tiger-chart-5": "#38bdf8",
18121
- "--tiger-chart-6": "#f87171"
19053
+ // src/themes/default/theme.ts
19054
+ var defaultThemeLightColors = {
19055
+ primary: "#2563eb",
19056
+ primaryHover: "#1d4ed8",
19057
+ primaryActive: "#1e40af",
19058
+ primaryDisabled: "#93c5fd",
19059
+ secondary: "#4b5563",
19060
+ secondaryHover: "#374151",
19061
+ secondaryActive: "#1f2937",
19062
+ secondaryDisabled: "#9ca3af",
19063
+ outlineBgHover: "#eff6ff",
19064
+ ghostBgHover: "#eff6ff",
19065
+ focusRing: "#2563eb",
19066
+ surface: "#ffffff",
19067
+ surfaceMuted: "#f9fafb",
19068
+ surfaceRaised: "#ffffff",
19069
+ text: "#111827",
19070
+ textSecondary: "#6b7280",
19071
+ textDisabled: "#d1d5db",
19072
+ border: "#e5e7eb",
19073
+ borderStrong: "#9ca3af",
19074
+ success: "#16a34a",
19075
+ warning: "#d97706",
19076
+ error: "#dc2626",
19077
+ info: "#3b82f6",
19078
+ chart1: "#2563eb",
19079
+ chart2: "#16a34a",
19080
+ chart3: "#d97706",
19081
+ chart4: "#a855f7",
19082
+ chart5: "#0ea5e9",
19083
+ chart6: "#ef4444"
19084
+ };
19085
+ var defaultThemeDarkColors = {
19086
+ primary: "#60a5fa",
19087
+ primaryHover: "#93c5fd",
19088
+ primaryActive: "#bfdbfe",
19089
+ primaryDisabled: "#1e40af",
19090
+ secondary: "#9ca3af",
19091
+ secondaryHover: "#d1d5db",
19092
+ secondaryActive: "#e5e7eb",
19093
+ secondaryDisabled: "#4b5563",
19094
+ outlineBgHover: "#1e3a5f",
19095
+ ghostBgHover: "#1e3a5f",
19096
+ focusRing: "#60a5fa",
19097
+ surface: "#111827",
19098
+ surfaceMuted: "#1f2937",
19099
+ surfaceRaised: "#1f2937",
19100
+ text: "#f9fafb",
19101
+ textSecondary: "#d1d5db",
19102
+ textDisabled: "#4b5563",
19103
+ border: "#374151",
19104
+ borderStrong: "#6b7280",
19105
+ success: "#4ade80",
19106
+ warning: "#fbbf24",
19107
+ error: "#f87171",
19108
+ info: "#60a5fa",
19109
+ chart1: "#60a5fa",
19110
+ chart2: "#4ade80",
19111
+ chart3: "#fbbf24",
19112
+ chart4: "#c084fc",
19113
+ chart5: "#38bdf8",
19114
+ chart6: "#f87171"
19115
+ };
19116
+ var defaultTheme = {
19117
+ name: "default",
19118
+ label: "Default",
19119
+ light: {
19120
+ colors: defaultThemeLightColors,
19121
+ radius: { sm: "4px", md: "6px", lg: "10px", xl: "14px", none: "0", full: "9999px" },
19122
+ shadows: {
19123
+ xs: "0 1px 2px 0 rgba(0,0,0,0.05)",
19124
+ sm: "0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)",
19125
+ md: "0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)",
19126
+ lg: "0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)",
19127
+ xl: "0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)"
19128
+ }
19129
+ },
19130
+ dark: {
19131
+ colors: defaultThemeDarkColors,
19132
+ shadows: {
19133
+ xs: "0 1px 2px 0 rgba(0,0,0,0.2)",
19134
+ sm: "0 1px 3px 0 rgba(0,0,0,0.3), 0 1px 2px -1px rgba(0,0,0,0.25)",
19135
+ md: "0 4px 6px -1px rgba(0,0,0,0.3), 0 2px 4px -2px rgba(0,0,0,0.25)",
19136
+ lg: "0 10px 15px -3px rgba(0,0,0,0.3), 0 4px 6px -4px rgba(0,0,0,0.25)",
19137
+ xl: "0 20px 25px -5px rgba(0,0,0,0.3), 0 8px 10px -6px rgba(0,0,0,0.25)"
19138
+ }
19139
+ }
18122
19140
  };
19141
+
19142
+ // src/tailwind-plugin.ts
19143
+ function presetToVars(colors) {
19144
+ const vars = {};
19145
+ for (const [key, value] of Object.entries(colors)) {
19146
+ const varName = THEME_CSS_VARS[key];
19147
+ if (varName && value) {
19148
+ vars[varName] = value;
19149
+ }
19150
+ }
19151
+ return vars;
19152
+ }
19153
+ var tigercatTheme = presetToVars(defaultThemeLightColors);
19154
+ var tigercatDarkTheme = presetToVars(defaultThemeDarkColors);
18123
19155
  var tigercatDirectionBase = {
18124
19156
  '[dir="rtl"] .tiger-rtl-mirror, [data-tiger-dir="rtl"] .tiger-rtl-mirror': {
18125
19157
  transform: "scaleX(-1)"
@@ -18158,16 +19190,6 @@ var tigercatPlugin = (0, import_plugin.default)(function({ addBase }) {
18158
19190
  ...tigercatReducedMotionBase
18159
19191
  });
18160
19192
  });
18161
- function presetToVars(colors) {
18162
- const vars = {};
18163
- for (const [key, value] of Object.entries(colors)) {
18164
- const varName = THEME_CSS_VARS[key];
18165
- if (varName && value) {
18166
- vars[varName] = value;
18167
- }
18168
- }
18169
- return vars;
18170
- }
18171
19193
  function createTigercatPlugin(options = {}) {
18172
19194
  return (0, import_plugin.default)(function({ addBase }) {
18173
19195
  const preset = options.preset;
@@ -18192,18 +19214,77 @@ function createTigercatPlugin(options = {}) {
18192
19214
  }
18193
19215
 
18194
19216
  // src/themes/manager.ts
18195
- function applyColors(colors, target) {
19217
+ var THEME_CONFIG_CSS_VARS = {
19218
+ typography: {
19219
+ fontFamily: "--tiger-font-family",
19220
+ fontFamilyMono: "--tiger-font-family-mono",
19221
+ fontSizeBase: "--tiger-font-size-base",
19222
+ fontSizeSm: "--tiger-font-size-sm",
19223
+ fontSizeLg: "--tiger-font-size-lg",
19224
+ fontWeightNormal: "--tiger-font-weight-normal",
19225
+ fontWeightMedium: "--tiger-font-weight-medium",
19226
+ fontWeightSemibold: "--tiger-font-weight-semibold",
19227
+ fontWeightBold: "--tiger-font-weight-bold",
19228
+ lineHeightNormal: "--tiger-line-height-normal",
19229
+ lineHeightTight: "--tiger-line-height-tight"
19230
+ },
19231
+ radius: {
19232
+ none: "--tiger-radius-none",
19233
+ sm: "--tiger-radius-sm",
19234
+ md: "--tiger-radius-md",
19235
+ lg: "--tiger-radius-lg",
19236
+ xl: "--tiger-radius-xl",
19237
+ full: "--tiger-radius-full"
19238
+ },
19239
+ shadows: {
19240
+ xs: "--tiger-shadow-xs",
19241
+ sm: "--tiger-shadow-sm",
19242
+ md: "--tiger-shadow-md",
19243
+ lg: "--tiger-shadow-lg",
19244
+ xl: "--tiger-shadow-xl"
19245
+ },
19246
+ spacing: {
19247
+ xs: "--tiger-spacing-xs",
19248
+ sm: "--tiger-spacing-sm",
19249
+ md: "--tiger-spacing-md",
19250
+ lg: "--tiger-spacing-lg",
19251
+ xl: "--tiger-spacing-xl"
19252
+ },
19253
+ motion: {
19254
+ durationFast: "--tiger-duration-fast",
19255
+ durationBase: "--tiger-duration-base",
19256
+ durationSlow: "--tiger-duration-slow",
19257
+ easing: "--tiger-easing"
19258
+ }
19259
+ };
19260
+ function themeConfigToCssVars(config) {
18196
19261
  const vars = {};
18197
- for (const [key, value] of Object.entries(colors)) {
18198
- const varName = THEME_CSS_VARS[key];
18199
- if (varName && value) {
18200
- vars[varName] = value;
19262
+ if (config.colors) {
19263
+ for (const [key, value] of Object.entries(config.colors)) {
19264
+ const varName = THEME_CSS_VARS[key];
19265
+ if (varName && value) vars[varName] = value;
18201
19266
  }
18202
19267
  }
18203
- setCssVarsCached(target, vars);
19268
+ for (const section of ["typography", "radius", "shadows", "spacing", "motion"]) {
19269
+ const values = config[section];
19270
+ if (!values) continue;
19271
+ const varNames = THEME_CONFIG_CSS_VARS[section];
19272
+ for (const [key, value] of Object.entries(values)) {
19273
+ const varName = varNames[key];
19274
+ if (varName && value) vars[varName] = value;
19275
+ }
19276
+ }
19277
+ return vars;
18204
19278
  }
18205
- function clearColors(target) {
18206
- removeCssVarsCached(target, Object.values(THEME_CSS_VARS));
19279
+ function clearThemeConfig(target) {
19280
+ removeCssVarsCached(target, [
19281
+ ...Object.values(THEME_CSS_VARS),
19282
+ ...Object.values(THEME_CONFIG_CSS_VARS.typography),
19283
+ ...Object.values(THEME_CONFIG_CSS_VARS.radius),
19284
+ ...Object.values(THEME_CONFIG_CSS_VARS.shadows),
19285
+ ...Object.values(THEME_CONFIG_CSS_VARS.spacing),
19286
+ ...Object.values(THEME_CONFIG_CSS_VARS.motion)
19287
+ ]);
18207
19288
  }
18208
19289
  function resolveSystemDark() {
18209
19290
  if (!isBrowser()) return false;
@@ -18300,12 +19381,10 @@ var ThemeManagerImpl = class {
18300
19381
  if (!isBrowser()) return;
18301
19382
  const root = document.documentElement;
18302
19383
  const preset = this.presets.get(this.currentThemeName);
18303
- clearColors(root);
19384
+ clearThemeConfig(root);
18304
19385
  if (preset) {
18305
19386
  const config = this.resolvedDark ? preset.dark : preset.light;
18306
- if (config.colors) {
18307
- applyColors(config.colors, root);
18308
- }
19387
+ setCssVarsCached(root, themeConfigToCssVars(config));
18309
19388
  }
18310
19389
  if (this.resolvedDark) {
18311
19390
  root.classList.add("dark");
@@ -18344,93 +19423,6 @@ var ThemeManagerImpl = class {
18344
19423
  };
18345
19424
  var ThemeManager = new ThemeManagerImpl();
18346
19425
 
18347
- // src/themes/default/theme.ts
18348
- var defaultTheme = {
18349
- name: "default",
18350
- label: "Default",
18351
- light: {
18352
- colors: {
18353
- primary: "#2563eb",
18354
- primaryHover: "#1d4ed8",
18355
- primaryActive: "#1e40af",
18356
- primaryDisabled: "#93c5fd",
18357
- secondary: "#4b5563",
18358
- secondaryHover: "#374151",
18359
- secondaryActive: "#1f2937",
18360
- secondaryDisabled: "#9ca3af",
18361
- outlineBgHover: "#eff6ff",
18362
- ghostBgHover: "#eff6ff",
18363
- focusRing: "#2563eb",
18364
- surface: "#ffffff",
18365
- surfaceMuted: "#f9fafb",
18366
- surfaceRaised: "#ffffff",
18367
- text: "#111827",
18368
- textSecondary: "#6b7280",
18369
- textDisabled: "#d1d5db",
18370
- border: "#e5e7eb",
18371
- borderStrong: "#9ca3af",
18372
- success: "#16a34a",
18373
- warning: "#d97706",
18374
- error: "#dc2626",
18375
- info: "#3b82f6",
18376
- chart1: "#2563eb",
18377
- chart2: "#16a34a",
18378
- chart3: "#d97706",
18379
- chart4: "#a855f7",
18380
- chart5: "#0ea5e9",
18381
- chart6: "#ef4444"
18382
- },
18383
- radius: { sm: "4px", md: "6px", lg: "10px", xl: "14px", none: "0", full: "9999px" },
18384
- shadows: {
18385
- xs: "0 1px 2px 0 rgba(0,0,0,0.05)",
18386
- sm: "0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)",
18387
- md: "0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)",
18388
- lg: "0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)",
18389
- xl: "0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)"
18390
- }
18391
- },
18392
- dark: {
18393
- colors: {
18394
- primary: "#60a5fa",
18395
- primaryHover: "#93c5fd",
18396
- primaryActive: "#bfdbfe",
18397
- primaryDisabled: "#1e40af",
18398
- secondary: "#9ca3af",
18399
- secondaryHover: "#d1d5db",
18400
- secondaryActive: "#e5e7eb",
18401
- secondaryDisabled: "#4b5563",
18402
- outlineBgHover: "#1e3a5f",
18403
- ghostBgHover: "#1e3a5f",
18404
- focusRing: "#60a5fa",
18405
- surface: "#111827",
18406
- surfaceMuted: "#1f2937",
18407
- surfaceRaised: "#1f2937",
18408
- text: "#f9fafb",
18409
- textSecondary: "#d1d5db",
18410
- textDisabled: "#4b5563",
18411
- border: "#374151",
18412
- borderStrong: "#6b7280",
18413
- success: "#4ade80",
18414
- warning: "#fbbf24",
18415
- error: "#f87171",
18416
- info: "#60a5fa",
18417
- chart1: "#60a5fa",
18418
- chart2: "#4ade80",
18419
- chart3: "#fbbf24",
18420
- chart4: "#c084fc",
18421
- chart5: "#38bdf8",
18422
- chart6: "#f87171"
18423
- },
18424
- shadows: {
18425
- xs: "0 1px 2px 0 rgba(0,0,0,0.2)",
18426
- sm: "0 1px 3px 0 rgba(0,0,0,0.3), 0 1px 2px -1px rgba(0,0,0,0.25)",
18427
- md: "0 4px 6px -1px rgba(0,0,0,0.3), 0 2px 4px -2px rgba(0,0,0,0.25)",
18428
- lg: "0 10px 15px -3px rgba(0,0,0,0.3), 0 4px 6px -4px rgba(0,0,0,0.25)",
18429
- xl: "0 20px 25px -5px rgba(0,0,0,0.3), 0 8px 10px -6px rgba(0,0,0,0.25)"
18430
- }
18431
- }
18432
- };
18433
-
18434
19426
  // src/themes/vibrant/theme.ts
18435
19427
  var vibrantTheme = {
18436
19428
  name: "vibrant",
@@ -19373,7 +20365,7 @@ var designTokens = {
19373
20365
  };
19374
20366
 
19375
20367
  // src/index.ts
19376
- var version = "1.4.0";
20368
+ var version = "1.5.0";
19377
20369
  // Annotate the CommonJS export names for ESM import in node:
19378
20370
  0 && (module.exports = {
19379
20371
  ANIMATION_DURATION_FAST_MS,
@@ -19388,18 +20380,26 @@ var version = "1.4.0";
19388
20380
  ChevronRightIconPath,
19389
20381
  ClockIconPath,
19390
20382
  CloseIconPath,
20383
+ DEFAULT_CALENDAR_LABELS,
19391
20384
  DEFAULT_CHART_COLORS,
20385
+ DEFAULT_FILE_MANAGER_LABELS,
19392
20386
  DEFAULT_FORM_VALIDATION_LABELS,
19393
20387
  DEFAULT_FORM_WIZARD_LABELS,
19394
20388
  DEFAULT_HEATMAP_CANVAS_THRESHOLD,
20389
+ DEFAULT_IMAGE_EDITOR_LABELS,
20390
+ DEFAULT_IMAGE_VIEWER_LABELS,
19395
20391
  DEFAULT_PAGINATION_LABELS,
20392
+ DEFAULT_STATUS_LABELS,
19396
20393
  DEFAULT_TABLE_LABELS,
19397
20394
  DEFAULT_TASK_BOARD_LABELS,
19398
20395
  DEFAULT_TIME_PICKER_LABELS,
20396
+ DEFAULT_TOUR_LABELS,
19399
20397
  DEFAULT_UPLOAD_CHUNK_SIZE,
19400
20398
  DEFAULT_UPLOAD_LABELS,
19401
20399
  DONUT_BASE_SHADOW,
19402
20400
  DONUT_EMPHASIS_SHADOW,
20401
+ DONUT_ENTRANCE_CLASS,
20402
+ DONUT_ENTRANCE_KEYFRAMES,
19403
20403
  DROPDOWN_CHEVRON_PATH,
19404
20404
  DROPDOWN_ENTER_CLASS,
19405
20405
  DURATION_CLASS,
@@ -19429,6 +20429,7 @@ var version = "1.4.0";
19429
20429
  POPOVER_TEXT_CLASSES,
19430
20430
  POPOVER_TITLE_CLASSES,
19431
20431
  RADAR_SPLIT_AREA_COLORS,
20432
+ RESIZE_KEYBOARD_STEP,
19432
20433
  SCATTER_ENTRANCE_CLASS,
19433
20434
  SCATTER_ENTRANCE_KEYFRAMES,
19434
20435
  SHAKE_CLASS,
@@ -19443,6 +20444,7 @@ var version = "1.4.0";
19443
20444
  SVG_PATH_ANIMATION_CSS,
19444
20445
  TABLE_AUTO_VIRTUAL_THRESHOLD,
19445
20446
  TABLE_VIRTUAL_RECOMMENDATION_THRESHOLD,
20447
+ THEME_CONFIG_CSS_VARS,
19446
20448
  THEME_CSS_VARS,
19447
20449
  TIGER_BREAKPOINT_CSS_VALUES,
19448
20450
  TIGER_VIEWPORT_BREAKPOINTS,
@@ -19454,13 +20456,19 @@ var version = "1.4.0";
19454
20456
  TimePickerCloseIconPath,
19455
20457
  VIEW_TRANSITION_CSS,
19456
20458
  WEEKDAYS,
20459
+ ZH_CN_CALENDAR_LABELS,
19457
20460
  ZH_CN_DATEPICKER_LOCALE,
20461
+ ZH_CN_FILE_MANAGER_LABELS,
19458
20462
  ZH_CN_FORM_VALIDATION_LABELS,
19459
20463
  ZH_CN_FORM_WIZARD_LABELS,
20464
+ ZH_CN_IMAGE_EDITOR_LABELS,
20465
+ ZH_CN_IMAGE_VIEWER_LABELS,
19460
20466
  ZH_CN_PAGINATION_LABELS,
20467
+ ZH_CN_STATUS_LABELS,
19461
20468
  ZH_CN_TABLE_LABELS,
19462
20469
  ZH_CN_TASK_BOARD_LABELS,
19463
20470
  ZH_CN_TIME_PICKER_LABELS,
20471
+ ZH_CN_TOUR_LABELS,
19464
20472
  ZH_CN_UPLOAD_LABELS,
19465
20473
  activeOpacityClasses,
19466
20474
  activePressClasses,
@@ -19570,6 +20578,7 @@ var version = "1.4.0";
19570
20578
  calculateResizeDelta,
19571
20579
  calculateStepStatus,
19572
20580
  calculateTransform,
20581
+ calculateVirtualColumnRange,
19573
20582
  calculateVirtualRange,
19574
20583
  calendarHeaderClasses,
19575
20584
  calendarNavButtonClasses,
@@ -19621,6 +20630,7 @@ var version = "1.4.0";
19621
20630
  chartCanvasBaseClasses,
19622
20631
  chartGridLineClasses,
19623
20632
  chartInteractiveClasses,
20633
+ chatStatusBarBaseClasses,
19624
20634
  checkSolidIcon20PathD,
19625
20635
  checkboxLabelSizeClasses,
19626
20636
  checkboxSizeClasses,
@@ -19659,6 +20669,8 @@ var version = "1.4.0";
19659
20669
  codeBlockCopyButtonBaseClasses,
19660
20670
  codeBlockCopyButtonCopiedClasses,
19661
20671
  codeBlockPreClasses,
20672
+ codeEditorActiveLineDarkClasses,
20673
+ codeEditorActiveLineLightClasses,
19662
20674
  codeEditorBaseClasses,
19663
20675
  codeEditorDarkClasses,
19664
20676
  codeEditorDisabledClasses,
@@ -19864,6 +20876,7 @@ var version = "1.4.0";
19864
20876
  downloadCsv,
19865
20877
  downloadExcel,
19866
20878
  downloadTableExport,
20879
+ downsampleSeriesData,
19867
20880
  drawSignatureStrokes,
19868
20881
  dynamicSizeStrategy,
19869
20882
  easeOutCubic,
@@ -19914,6 +20927,7 @@ var version = "1.4.0";
19914
20927
  filterHiddenFiles,
19915
20928
  filterMenuItems,
19916
20929
  filterOptions,
20930
+ filterTableData,
19917
20931
  filterTransferItems,
19918
20932
  filterTreeNodes,
19919
20933
  filterTreeSelectNodes,
@@ -19952,6 +20966,7 @@ var version = "1.4.0";
19952
20966
  focusTimePickerOption,
19953
20967
  formatActivityTime,
19954
20968
  formatBadgeContent,
20969
+ formatBytes,
19955
20970
  formatChatTime,
19956
20971
  formatColorString,
19957
20972
  formatCommentTime,
@@ -19993,6 +21008,7 @@ var version = "1.4.0";
19993
21008
  getAccessibleTransitionClasses,
19994
21009
  getActiveElement,
19995
21010
  getActiveIndex,
21011
+ getActiveLineIndex,
19996
21012
  getActiveTourStepPosition,
19997
21013
  getActiveTourSteps,
19998
21014
  getAlertIconPath,
@@ -20030,6 +21046,7 @@ var version = "1.4.0";
20030
21046
  getCalendarContainerClasses,
20031
21047
  getCalendarDayClasses,
20032
21048
  getCalendarDays,
21049
+ getCalendarLabels,
20033
21050
  getCalendarMonthClasses,
20034
21051
  getCalendarMonthDaysCacheSize,
20035
21052
  getCardClasses,
@@ -20056,6 +21073,7 @@ var version = "1.4.0";
20056
21073
  getChartSvgDataUrl,
20057
21074
  getChartTooltipTransform,
20058
21075
  getChatMessageStatusInfo,
21076
+ getChatStatusBarClasses,
20059
21077
  getCheckboxCellClasses,
20060
21078
  getCheckboxClasses,
20061
21079
  getCheckboxLabelClasses,
@@ -20063,6 +21081,7 @@ var version = "1.4.0";
20063
21081
  getCircleSize,
20064
21082
  getCodeBlockContainerClasses,
20065
21083
  getCodeBlockCopyButtonClasses,
21084
+ getCodeEditorActiveLineClasses,
20066
21085
  getCodeEditorContainerClasses,
20067
21086
  getColGutterClasses,
20068
21087
  getColMergedStyleVars,
@@ -20098,6 +21117,7 @@ var version = "1.4.0";
20098
21117
  getCurrentActiveTourStep,
20099
21118
  getCurrentTime,
20100
21119
  getCyclicIndex,
21120
+ getDatePickerCalendarCellState,
20101
21121
  getDatePickerDayCellClasses,
20102
21122
  getDatePickerIconButtonClasses,
20103
21123
  getDatePickerInputClasses,
@@ -20145,9 +21165,11 @@ var version = "1.4.0";
20145
21165
  getFieldDependencies,
20146
21166
  getFieldError,
20147
21167
  getFileExtension,
21168
+ getFileExtensionName,
20148
21169
  getFileItemClasses,
20149
21170
  getFileListItemClasses,
20150
21171
  getFileManagerContainerClasses,
21172
+ getFileManagerLabels,
20151
21173
  getFirstDayOfMonth,
20152
21174
  getFirstVisibleChildKey,
20153
21175
  getFixedColumnOffsets,
@@ -20186,9 +21208,11 @@ var version = "1.4.0";
20186
21208
  getImageAnnotationStrokeColor,
20187
21209
  getImageAnnotationToolButtonClasses,
20188
21210
  getImageAnnotationToolLabel,
21211
+ getImageEditorLabels,
20189
21212
  getImageGroupClasses,
20190
21213
  getImageImgClasses,
20191
21214
  getImageTransformStyle,
21215
+ getImageViewerLabels,
20192
21216
  getImmediateTigerLocale,
20193
21217
  getInfiniteScrollContainerClasses,
20194
21218
  getInitialCollapseContentStyle,
@@ -20256,6 +21280,7 @@ var version = "1.4.0";
20256
21280
  getNextColorSwatchIndex,
20257
21281
  getNextImageAnnotationTool,
20258
21282
  getNextSlideIndex,
21283
+ getNextTableSelectAllKeys,
20259
21284
  getNotificationIconPath,
20260
21285
  getNotificationTypeClasses,
20261
21286
  getNumberExtent,
@@ -20328,6 +21353,8 @@ var version = "1.4.0";
20328
21353
  getRadioVisualClasses,
20329
21354
  getRateStarClasses,
20330
21355
  getResizableHandleClasses,
21356
+ getResizeHandleOrientation,
21357
+ getResizeKeyboardDelta,
20331
21358
  getResultColorScheme,
20332
21359
  getResultHttpLabel,
20333
21360
  getResultIconPath,
@@ -20357,6 +21384,7 @@ var version = "1.4.0";
20357
21384
  getSelectOptionClasses,
20358
21385
  getSelectSizeClasses,
20359
21386
  getSelectTriggerClasses,
21387
+ getSelectVirtualItemHeight,
20360
21388
  getSeparatorContent,
20361
21389
  getShortDayNames,
20362
21390
  getShortMonthNames,
@@ -20395,6 +21423,7 @@ var version = "1.4.0";
20395
21423
  getStaggeredMotionStyle,
20396
21424
  getStatisticTitleClasses,
20397
21425
  getStatisticValueClasses,
21426
+ getStatusLabels,
20398
21427
  getStatusVariant,
20399
21428
  getStepContentClasses,
20400
21429
  getStepDescriptionClasses,
@@ -20430,7 +21459,9 @@ var version = "1.4.0";
20430
21459
  getTableResponsiveCardListClasses,
20431
21460
  getTableResponsiveTableClasses,
20432
21461
  getTableRowClasses,
21462
+ getTableSelectionState,
20433
21463
  getTableVirtualRecommendation,
21464
+ getTableVirtualWindow,
20434
21465
  getTableWrapperClasses,
20435
21466
  getTabsContainerClasses,
20436
21467
  getTagVariantClasses,
@@ -20460,6 +21491,7 @@ var version = "1.4.0";
20460
21491
  getTotalPages,
20461
21492
  getTotalTextClasses,
20462
21493
  getTouchDistance,
21494
+ getTourLabels,
20463
21495
  getTourPopoverPosition,
20464
21496
  getTourSpotlightStyle,
20465
21497
  getTourTargetRect,
@@ -20518,6 +21550,7 @@ var version = "1.4.0";
20518
21550
  handleUploadDrop,
20519
21551
  hasErrors,
20520
21552
  hasGutter,
21553
+ hasTableSelectionColumn,
20521
21554
  hexToRgb,
20522
21555
  highContrastTheme,
20523
21556
  hsvToRgb,
@@ -20613,6 +21646,7 @@ var version = "1.4.0";
20613
21646
  isEscapeKey,
20614
21647
  isEventOutside,
20615
21648
  isHTMLElement,
21649
+ isHttpResultStatus,
20616
21650
  isImageAnnotationPathClosed,
20617
21651
  isImageAnnotationShapeTool,
20618
21652
  isInlineFormat,
@@ -20764,6 +21798,7 @@ var version = "1.4.0";
20764
21798
  moveItemBetweenContainers,
20765
21799
  movePan,
20766
21800
  movePinch,
21801
+ moveTransferItems,
20767
21802
  naturalTheme,
20768
21803
  navigateToFolder,
20769
21804
  nextIconPath,
@@ -20919,6 +21954,7 @@ var version = "1.4.0";
20919
21954
  resolveCarouselSwipeDirection,
20920
21955
  resolveChartPalette,
20921
21956
  resolveChartTooltipContent,
21957
+ resolveChartTooltipPosition,
20922
21958
  resolveConditionalFormRules,
20923
21959
  resolveCreatableSelectOption,
20924
21960
  resolveDragConfig,
@@ -20953,6 +21989,8 @@ var version = "1.4.0";
20953
21989
  richTextContainerDisabled,
20954
21990
  richTextEditorAreaBase,
20955
21991
  richTextEditorAreaReadOnly,
21992
+ richTextHtmlToMode,
21993
+ richTextModeToHtml,
20956
21994
  richTextPlaceholderClasses,
20957
21995
  richTextToolbarButtonActive,
20958
21996
  richTextToolbarButtonBase,
@@ -21014,6 +22052,7 @@ var version = "1.4.0";
21014
22052
  sliderGetValueFromPosition,
21015
22053
  sliderNormalizeValue,
21016
22054
  sliderRangeClasses,
22055
+ sliderResolveMarks,
21017
22056
  sliderSizeClasses,
21018
22057
  sliderThumbClasses,
21019
22058
  sliderTooltipClasses,
@@ -21063,6 +22102,9 @@ var version = "1.4.0";
21063
22102
  statusSuccessIconPath,
21064
22103
  statusWarningIconPath,
21065
22104
  stepFinishChar,
22105
+ stepFinishIconPathD,
22106
+ stepFinishIconStrokeWidth,
22107
+ stepFinishIconViewBox,
21066
22108
  stepValue,
21067
22109
  stepperBaseClasses,
21068
22110
  stepperIconViewBox,
@@ -21149,6 +22191,7 @@ var version = "1.4.0";
21149
22191
  textDecorationClasses,
21150
22192
  textSizeClasses,
21151
22193
  textWeightClasses,
22194
+ themeConfigToCssVars,
21152
22195
  tigercatDarkTheme,
21153
22196
  tigercatPlugin,
21154
22197
  tigercatTheme,