@expcat/tigercat-core 0.2.10 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -148,6 +148,16 @@ __export(index_exports, {
148
148
  alertSuccessIconPath: () => alertSuccessIconPath,
149
149
  alertTitleSizeClasses: () => alertTitleSizeClasses,
150
150
  alertWarningIconPath: () => alertWarningIconPath,
151
+ anchorAffixClasses: () => anchorAffixClasses,
152
+ anchorBaseClasses: () => anchorBaseClasses,
153
+ anchorInkActiveHorizontalClasses: () => anchorInkActiveHorizontalClasses,
154
+ anchorInkActiveVerticalClasses: () => anchorInkActiveVerticalClasses,
155
+ anchorInkContainerHorizontalClasses: () => anchorInkContainerHorizontalClasses,
156
+ anchorInkContainerVerticalClasses: () => anchorInkContainerVerticalClasses,
157
+ anchorLinkActiveClasses: () => anchorLinkActiveClasses,
158
+ anchorLinkBaseClasses: () => anchorLinkBaseClasses,
159
+ anchorLinkListHorizontalClasses: () => anchorLinkListHorizontalClasses,
160
+ anchorLinkListVerticalClasses: () => anchorLinkListVerticalClasses,
151
161
  animationDelayClasses: () => animationDelayClasses,
152
162
  animationDelayStyles: () => animationDelayStyles,
153
163
  applyFloatingStyles: () => applyFloatingStyles,
@@ -159,6 +169,12 @@ __export(index_exports, {
159
169
  avatarImageClasses: () => avatarImageClasses,
160
170
  avatarShapeClasses: () => avatarShapeClasses,
161
171
  avatarSizeClasses: () => avatarSizeClasses,
172
+ backTopBaseClasses: () => backTopBaseClasses,
173
+ backTopButtonClasses: () => backTopButtonClasses,
174
+ backTopContainerClasses: () => backTopContainerClasses,
175
+ backTopHiddenClasses: () => backTopHiddenClasses,
176
+ backTopIconPath: () => backTopIconPath,
177
+ backTopVisibleClasses: () => backTopVisibleClasses,
162
178
  badgeBaseClasses: () => badgeBaseClasses,
163
179
  badgePositionClasses: () => badgePositionClasses,
164
180
  badgeSizeClasses: () => badgeSizeClasses,
@@ -170,6 +186,9 @@ __export(index_exports, {
170
186
  breadcrumbItemBaseClasses: () => breadcrumbItemBaseClasses,
171
187
  breadcrumbLinkClasses: () => breadcrumbLinkClasses,
172
188
  breadcrumbSeparatorBaseClasses: () => breadcrumbSeparatorBaseClasses,
189
+ buildActivityGroups: () => buildActivityGroups,
190
+ buildCommentTree: () => buildCommentTree,
191
+ buildNotificationGroups: () => buildNotificationGroups,
173
192
  buttonBaseClasses: () => buttonBaseClasses,
174
193
  buttonDisabledClasses: () => buttonDisabledClasses,
175
194
  buttonSizeClasses: () => buttonSizeClasses,
@@ -189,6 +208,21 @@ __export(index_exports, {
189
208
  cardHoverClasses: () => cardHoverClasses,
190
209
  cardSizeClasses: () => cardSizeClasses,
191
210
  cardVariantClasses: () => cardVariantClasses,
211
+ carouselArrowBaseClasses: () => carouselArrowBaseClasses,
212
+ carouselArrowDisabledClasses: () => carouselArrowDisabledClasses,
213
+ carouselBaseClasses: () => carouselBaseClasses,
214
+ carouselDotActiveClasses: () => carouselDotActiveClasses,
215
+ carouselDotClasses: () => carouselDotClasses,
216
+ carouselDotsBaseClasses: () => carouselDotsBaseClasses,
217
+ carouselDotsPositionClasses: () => carouselDotsPositionClasses,
218
+ carouselNextArrowClasses: () => carouselNextArrowClasses,
219
+ carouselNextArrowPath: () => carouselNextArrowPath,
220
+ carouselPrevArrowClasses: () => carouselPrevArrowClasses,
221
+ carouselPrevArrowPath: () => carouselPrevArrowPath,
222
+ carouselSlideBaseClasses: () => carouselSlideBaseClasses,
223
+ carouselSlideFadeClasses: () => carouselSlideFadeClasses,
224
+ carouselTrackFadeClasses: () => carouselTrackFadeClasses,
225
+ carouselTrackScrollClasses: () => carouselTrackScrollClasses,
192
226
  chartAxisLabelClasses: () => chartAxisLabelClasses,
193
227
  chartAxisLineClasses: () => chartAxisLineClasses,
194
228
  chartAxisTickLineClasses: () => chartAxisTickLineClasses,
@@ -203,8 +237,10 @@ __export(index_exports, {
203
237
  chevronLeftSolidIcon20PathD: () => chevronLeftSolidIcon20PathD,
204
238
  chevronRightSolidIcon20PathD: () => chevronRightSolidIcon20PathD,
205
239
  clampPercentage: () => clampPercentage,
240
+ clampSlideIndex: () => clampSlideIndex,
206
241
  classNames: () => classNames,
207
242
  clearFieldErrors: () => clearFieldErrors,
243
+ clipCommentTreeDepth: () => clipCommentTreeDepth,
208
244
  clockSolidIcon20PathD: () => clockSolidIcon20PathD,
209
245
  closeIconPathD: () => closeIconPathD,
210
246
  closeIconPathStrokeLinecap: () => closeIconPathStrokeLinecap,
@@ -218,6 +254,21 @@ __export(index_exports, {
218
254
  codeBlockPreClasses: () => codeBlockPreClasses,
219
255
  coerceClassValue: () => coerceClassValue,
220
256
  coerceStyleValue: () => coerceStyleValue,
257
+ collapseBaseClasses: () => collapseBaseClasses,
258
+ collapseBorderlessClasses: () => collapseBorderlessClasses,
259
+ collapseExtraClasses: () => collapseExtraClasses,
260
+ collapseGhostClasses: () => collapseGhostClasses,
261
+ collapseHeaderTextClasses: () => collapseHeaderTextClasses,
262
+ collapseIconBaseClasses: () => collapseIconBaseClasses,
263
+ collapseIconExpandedClasses: () => collapseIconExpandedClasses,
264
+ collapseIconPositionClasses: () => collapseIconPositionClasses,
265
+ collapsePanelBaseClasses: () => collapsePanelBaseClasses,
266
+ collapsePanelContentBaseClasses: () => collapsePanelContentBaseClasses,
267
+ collapsePanelContentWrapperClasses: () => collapsePanelContentWrapperClasses,
268
+ collapsePanelHeaderActiveClasses: () => collapsePanelHeaderActiveClasses,
269
+ collapsePanelHeaderBaseClasses: () => collapsePanelHeaderBaseClasses,
270
+ collapsePanelHeaderDisabledClasses: () => collapsePanelHeaderDisabledClasses,
271
+ collapseRightArrowIcon: () => collapseRightArrowIcon,
221
272
  computeFloatingPosition: () => computeFloatingPosition,
222
273
  containerBaseClasses: () => containerBaseClasses,
223
274
  containerCenteredClasses: () => containerCenteredClasses,
@@ -246,6 +297,7 @@ __export(index_exports, {
246
297
  datePickerNavButtonClasses: () => datePickerNavButtonClasses,
247
298
  defaultAlertThemeColors: () => defaultAlertThemeColors,
248
299
  defaultBadgeThemeColors: () => defaultBadgeThemeColors,
300
+ defaultChatMessageStatusInfo: () => defaultChatMessageStatusInfo,
249
301
  defaultExpandIcon: () => defaultExpandIcon,
250
302
  defaultIndeterminateIcon: () => defaultIndeterminateIcon,
251
303
  defaultLinkThemeColors: () => defaultLinkThemeColors,
@@ -283,13 +335,17 @@ __export(index_exports, {
283
335
  filterData: () => filterData,
284
336
  filterOptions: () => filterOptions,
285
337
  filterTreeNodes: () => filterTreeNodes,
338
+ findActiveAnchor: () => findActiveAnchor,
286
339
  findNode: () => findNode,
287
340
  flattenTree: () => flattenTree,
288
341
  focusElement: () => focusElement,
289
342
  focusFirst: () => focusFirst,
290
343
  focusRingClasses: () => focusRingClasses,
291
344
  focusRingInsetClasses: () => focusRingInsetClasses,
345
+ formatActivityTime: () => formatActivityTime,
292
346
  formatBadgeContent: () => formatBadgeContent,
347
+ formatChatTime: () => formatChatTime,
348
+ formatCommentTime: () => formatCommentTime,
293
349
  formatDate: () => formatDate,
294
350
  formatFileSize: () => formatFileSize,
295
351
  formatMonthYear: () => formatMonthYear,
@@ -310,6 +366,12 @@ __export(index_exports, {
310
366
  getAlertTypeClasses: () => getAlertTypeClasses,
311
367
  getAlignClasses: () => getAlignClasses,
312
368
  getAllKeys: () => getAllKeys,
369
+ getAnchorInkActiveClasses: () => getAnchorInkActiveClasses,
370
+ getAnchorInkContainerClasses: () => getAnchorInkContainerClasses,
371
+ getAnchorLinkClasses: () => getAnchorLinkClasses,
372
+ getAnchorLinkListClasses: () => getAnchorLinkListClasses,
373
+ getAnchorTargetElement: () => getAnchorTargetElement,
374
+ getAnchorWrapperClasses: () => getAnchorWrapperClasses,
313
375
  getArrowStyles: () => getArrowStyles,
314
376
  getAutoExpandKeys: () => getAutoExpandKeys,
315
377
  getBadgeVariantClasses: () => getBadgeVariantClasses,
@@ -320,12 +382,17 @@ __export(index_exports, {
320
382
  getButtonVariantClasses: () => getButtonVariantClasses,
321
383
  getCalendarDays: () => getCalendarDays,
322
384
  getCardClasses: () => getCardClasses,
385
+ getCarouselArrowClasses: () => getCarouselArrowClasses,
386
+ getCarouselContainerClasses: () => getCarouselContainerClasses,
387
+ getCarouselDotClasses: () => getCarouselDotClasses,
388
+ getCarouselDotsClasses: () => getCarouselDotsClasses,
323
389
  getChartAnimationStyle: () => getChartAnimationStyle,
324
390
  getChartAxisTicks: () => getChartAxisTicks,
325
391
  getChartElementOpacity: () => getChartElementOpacity,
326
392
  getChartEntranceTransform: () => getChartEntranceTransform,
327
393
  getChartGridLineDasharray: () => getChartGridLineDasharray,
328
394
  getChartInnerRect: () => getChartInnerRect,
395
+ getChatMessageStatusInfo: () => getChatMessageStatusInfo,
329
396
  getCheckboxCellClasses: () => getCheckboxCellClasses,
330
397
  getCheckboxClasses: () => getCheckboxClasses,
331
398
  getCheckboxLabelClasses: () => getCheckboxLabelClasses,
@@ -333,7 +400,13 @@ __export(index_exports, {
333
400
  getCircleSize: () => getCircleSize,
334
401
  getColOrderStyleVars: () => getColOrderStyleVars,
335
402
  getColStyleVars: () => getColStyleVars,
403
+ getCollapseContainerClasses: () => getCollapseContainerClasses,
404
+ getCollapseIconClasses: () => getCollapseIconClasses,
405
+ getCollapsePanelClasses: () => getCollapsePanelClasses,
406
+ getCollapsePanelHeaderClasses: () => getCollapsePanelHeaderClasses,
336
407
  getContainerClasses: () => getContainerClasses,
408
+ getContainerHeight: () => getContainerHeight,
409
+ getContainerScrollTop: () => getContainerScrollTop,
337
410
  getCurrentTime: () => getCurrentTime,
338
411
  getDatePickerDayCellClasses: () => getDatePickerDayCellClasses,
339
412
  getDatePickerIconButtonClasses: () => getDatePickerIconButtonClasses,
@@ -364,6 +437,7 @@ __export(index_exports, {
364
437
  getDropdownMenuClasses: () => getDropdownMenuClasses,
365
438
  getDropdownMenuWrapperClasses: () => getDropdownMenuWrapperClasses,
366
439
  getDropdownTriggerClasses: () => getDropdownTriggerClasses,
440
+ getElementOffsetTop: () => getElementOffsetTop,
367
441
  getErrorFields: () => getErrorFields,
368
442
  getFieldError: () => getFieldError,
369
443
  getFileListItemClasses: () => getFileListItemClasses,
@@ -372,6 +446,13 @@ __export(index_exports, {
372
446
  getFlexClasses: () => getFlexClasses,
373
447
  getFocusTrapNavigation: () => getFocusTrapNavigation,
374
448
  getFocusableElements: () => getFocusableElements,
449
+ getFormItemAsteriskClasses: () => getFormItemAsteriskClasses,
450
+ getFormItemAsteriskStyle: () => getFormItemAsteriskStyle,
451
+ getFormItemClasses: () => getFormItemClasses,
452
+ getFormItemContentClasses: () => getFormItemContentClasses,
453
+ getFormItemErrorClasses: () => getFormItemErrorClasses,
454
+ getFormItemFieldClasses: () => getFormItemFieldClasses,
455
+ getFormItemLabelClasses: () => getFormItemLabelClasses,
375
456
  getGridColumnClasses: () => getGridColumnClasses,
376
457
  getGutterStyles: () => getGutterStyles,
377
458
  getInitials: () => getInitials,
@@ -401,6 +482,7 @@ __export(index_exports, {
401
482
  getModalContentClasses: () => getModalContentClasses,
402
483
  getMonthNames: () => getMonthNames,
403
484
  getNextActiveKey: () => getNextActiveKey,
485
+ getNextSlideIndex: () => getNextSlideIndex,
404
486
  getNotificationIconPath: () => getNotificationIconPath,
405
487
  getNotificationTypeClasses: () => getNotificationTypeClasses,
406
488
  getNumberExtent: () => getNumberExtent,
@@ -441,6 +523,7 @@ __export(index_exports, {
441
523
  getPopoverContentTextClasses: () => getPopoverContentTextClasses,
442
524
  getPopoverTitleClasses: () => getPopoverTitleClasses,
443
525
  getPopoverTriggerClasses: () => getPopoverTriggerClasses,
526
+ getPrevSlideIndex: () => getPrevSlideIndex,
444
527
  getProgressTextColorClasses: () => getProgressTextColorClasses,
445
528
  getProgressVariantClasses: () => getProgressVariantClasses,
446
529
  getQuickJumperInputClasses: () => getQuickJumperInputClasses,
@@ -452,6 +535,8 @@ __export(index_exports, {
452
535
  getRadioLabelClasses: () => getRadioLabelClasses,
453
536
  getRadioVisualClasses: () => getRadioVisualClasses,
454
537
  getRowKey: () => getRowKey,
538
+ getScrollTop: () => getScrollTop,
539
+ getScrollTransform: () => getScrollTransform,
455
540
  getSecureRel: () => getSecureRel,
456
541
  getSelectOptionClasses: () => getSelectOptionClasses,
457
542
  getSelectSizeClasses: () => getSelectSizeClasses,
@@ -557,7 +642,10 @@ __export(index_exports, {
557
642
  isKeyActive: () => isKeyActive,
558
643
  isKeyOpen: () => isKeyOpen,
559
644
  isKeySelected: () => isKeySelected,
645
+ isNextDisabled: () => isNextDisabled,
560
646
  isOptionGroup: () => isOptionGroup,
647
+ isPanelActive: () => isPanelActive,
648
+ isPrevDisabled: () => isPrevDisabled,
561
649
  isSameDay: () => isSameDay,
562
650
  isSpaceKey: () => isSpaceKey,
563
651
  isTabKey: () => isTabKey,
@@ -644,6 +732,7 @@ __export(index_exports, {
644
732
  modalSizeClasses: () => modalSizeClasses,
645
733
  modalTitleClasses: () => modalTitleClasses,
646
734
  modalWrapperClasses: () => modalWrapperClasses,
735
+ normalizeActiveKeys: () => normalizeActiveKeys,
647
736
  normalizeChartPadding: () => normalizeChartPadding,
648
737
  normalizeDate: () => normalizeDate,
649
738
  normalizeSvgAttrs: () => normalizeSvgAttrs,
@@ -697,6 +786,8 @@ __export(index_exports, {
697
786
  replaceKeys: () => replaceKeys,
698
787
  resolveLocaleText: () => resolveLocaleText,
699
788
  restoreFocus: () => restoreFocus,
789
+ scrollToAnchor: () => scrollToAnchor,
790
+ scrollToTop: () => scrollToTop,
700
791
  selectBaseClasses: () => selectBaseClasses,
701
792
  selectDropdownBaseClasses: () => selectDropdownBaseClasses,
702
793
  selectEmptyStateClasses: () => selectEmptyStateClasses,
@@ -722,10 +813,12 @@ __export(index_exports, {
722
813
  sliderThumbClasses: () => sliderThumbClasses,
723
814
  sliderTooltipClasses: () => sliderTooltipClasses,
724
815
  sliderTrackClasses: () => sliderTrackClasses,
816
+ sortActivityGroups: () => sortActivityGroups,
725
817
  sortAscIcon16PathD: () => sortAscIcon16PathD,
726
818
  sortBothIcon16PathD: () => sortBothIcon16PathD,
727
819
  sortData: () => sortData,
728
820
  sortDescIcon16PathD: () => sortDescIcon16PathD,
821
+ sortNotificationGroups: () => sortNotificationGroups,
729
822
  stackSeriesData: () => stackSeriesData,
730
823
  statusErrorIconPath: () => statusErrorIconPath,
731
824
  statusIconPaths: () => statusIconPaths,
@@ -810,7 +903,9 @@ __export(index_exports, {
810
903
  timelineTailClasses: () => timelineTailClasses,
811
904
  to12HourFormat: () => to12HourFormat,
812
905
  to24HourFormat: () => to24HourFormat,
906
+ toActivityTimelineItems: () => toActivityTimelineItems,
813
907
  toggleKey: () => toggleKey,
908
+ togglePanelKey: () => togglePanelKey,
814
909
  treeBaseClasses: () => treeBaseClasses,
815
910
  treeEmptyStateClasses: () => treeEmptyStateClasses,
816
911
  treeLineClasses: () => treeLineClasses,
@@ -1149,6 +1244,49 @@ function sliderGetKeyboardValue(key, currentValue, min, max, step = 1, largeStep
1149
1244
  }
1150
1245
  }
1151
1246
 
1247
+ // src/utils/back-top-utils.ts
1248
+ function getScrollTop(target) {
1249
+ if (target === window) {
1250
+ return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
1251
+ }
1252
+ return target.scrollTop;
1253
+ }
1254
+ function scrollToTop(target, duration, callback) {
1255
+ const startTime = performance.now();
1256
+ const startScrollTop = getScrollTop(target);
1257
+ if (startScrollTop === 0) {
1258
+ callback?.();
1259
+ return;
1260
+ }
1261
+ const easeInOutCubic = (t) => {
1262
+ return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
1263
+ };
1264
+ const animateScroll = (currentTime) => {
1265
+ const elapsed = currentTime - startTime;
1266
+ const progress = Math.min(elapsed / duration, 1);
1267
+ const easedProgress = easeInOutCubic(progress);
1268
+ const newScrollTop = startScrollTop * (1 - easedProgress);
1269
+ if (target === window) {
1270
+ window.scrollTo(0, newScrollTop);
1271
+ } else {
1272
+ ;
1273
+ target.scrollTop = newScrollTop;
1274
+ }
1275
+ if (progress < 1) {
1276
+ requestAnimationFrame(animateScroll);
1277
+ } else {
1278
+ callback?.();
1279
+ }
1280
+ };
1281
+ requestAnimationFrame(animateScroll);
1282
+ }
1283
+ var backTopBaseClasses = "z-50 flex h-10 w-10 cursor-pointer items-center justify-center rounded-full bg-[var(--tiger-primary,#2563eb)] text-white shadow-lg transition-all duration-300 hover:bg-[var(--tiger-primary-hover,#1d4ed8)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2";
1284
+ var backTopButtonClasses = `fixed bottom-8 right-8 ${backTopBaseClasses}`;
1285
+ var backTopContainerClasses = `sticky bottom-4 ml-auto mr-4 ${backTopBaseClasses}`;
1286
+ var backTopHiddenClasses = "opacity-0 pointer-events-none translate-y-4";
1287
+ var backTopVisibleClasses = "opacity-100 translate-y-0";
1288
+ var backTopIconPath = "M12 19V5M12 5l-7 7M12 5l7 7";
1289
+
1152
1290
  // src/utils/common-icons.ts
1153
1291
  var closeIconViewBox = "0 0 24 24";
1154
1292
  var closeIconPathD = "M6 18L18 6M6 6l12 12";
@@ -1784,6 +1922,93 @@ function getInputErrorClasses(size = "md") {
1784
1922
  );
1785
1923
  }
1786
1924
 
1925
+ // src/utils/form-item-styles.ts
1926
+ var FORM_ITEM_SPACING = {
1927
+ sm: "mb-3 last:mb-0",
1928
+ md: "mb-4 last:mb-0",
1929
+ lg: "mb-6 last:mb-0"
1930
+ };
1931
+ var LABEL_TEXT_SIZE = {
1932
+ sm: "text-xs",
1933
+ md: "text-sm",
1934
+ lg: "text-base"
1935
+ };
1936
+ var LABEL_PADDING_TOP = {
1937
+ sm: "pt-1",
1938
+ md: "pt-2",
1939
+ lg: "pt-3"
1940
+ };
1941
+ var ERROR_TEXT_SIZE = {
1942
+ sm: "text-xs",
1943
+ md: "text-xs",
1944
+ lg: "text-sm"
1945
+ };
1946
+ function getFormItemClasses(options = {}) {
1947
+ const { size = "md", labelPosition = "right", hasError = false, disabled = false } = options;
1948
+ const layoutClasses = labelPosition === "top" ? "flex flex-col gap-2" : "flex items-start gap-4";
1949
+ return classNames(
1950
+ "tiger-form-item",
1951
+ "w-full",
1952
+ `tiger-form-item--${size}`,
1953
+ `tiger-form-item--label-${labelPosition}`,
1954
+ layoutClasses,
1955
+ FORM_ITEM_SPACING[size],
1956
+ hasError && "tiger-form-item--error",
1957
+ disabled && "tiger-form-item--disabled"
1958
+ );
1959
+ }
1960
+ function getFormItemLabelClasses(options = {}) {
1961
+ const { size = "md", labelPosition = "right", labelAlign = "right", isRequired = false } = options;
1962
+ const alignClass = labelAlign === "right" ? "text-right" : labelAlign === "left" ? "text-left" : "text-left";
1963
+ const positionClasses = labelPosition === "top" ? "w-full" : "shrink-0";
1964
+ const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size];
1965
+ return classNames(
1966
+ "tiger-form-item__label",
1967
+ `tiger-form-item__label--${labelAlign}`,
1968
+ "font-medium",
1969
+ "text-[var(--tiger-text,#111827)]",
1970
+ LABEL_TEXT_SIZE[size],
1971
+ alignClass,
1972
+ positionClasses,
1973
+ paddingClass,
1974
+ isRequired && "tiger-form-item__label--required"
1975
+ );
1976
+ }
1977
+ function getFormItemContentClasses(labelPosition = "right") {
1978
+ return classNames(
1979
+ "tiger-form-item__content",
1980
+ labelPosition === "top" ? "w-full" : "flex-1",
1981
+ "min-w-0",
1982
+ "flex",
1983
+ "flex-col"
1984
+ );
1985
+ }
1986
+ function getFormItemFieldClasses() {
1987
+ return classNames("tiger-form-item__field", "w-full");
1988
+ }
1989
+ function getFormItemErrorClasses(size = "md") {
1990
+ return classNames(
1991
+ "tiger-form-item__error",
1992
+ "mt-1",
1993
+ ERROR_TEXT_SIZE[size],
1994
+ "text-[var(--tiger-error,#ef4444)]"
1995
+ );
1996
+ }
1997
+ function getFormItemAsteriskClasses() {
1998
+ return classNames(
1999
+ "tiger-form-item__asterisk",
2000
+ "mr-1",
2001
+ "font-semibold",
2002
+ "text-red-500",
2003
+ "text-[var(--tiger-error,#ef4444)]"
2004
+ );
2005
+ }
2006
+ function getFormItemAsteriskStyle() {
2007
+ return {
2008
+ color: "var(--tiger-error,#ef4444)"
2009
+ };
2010
+ }
2011
+
1787
2012
  // src/utils/select-utils.ts
1788
2013
  var selectBaseClasses = "relative inline-block w-full";
1789
2014
  var SELECT_TRIGGER_BASE_CLASSES = [
@@ -3583,91 +3808,53 @@ function groupItemsIntoRows(items, column) {
3583
3808
  // src/utils/timeline-utils.ts
3584
3809
  var timelineContainerClasses = "relative";
3585
3810
  var timelineListClasses = "list-none m-0 p-0";
3586
- var timelineItemClasses = "relative pb-8 last:pb-0";
3811
+ var timelineItemClasses = "relative pb-8";
3587
3812
  var timelineTailClasses = "absolute w-0.5 bg-[var(--tiger-border,#e5e7eb)]";
3588
- var timelineHeadClasses = "absolute flex items-center justify-center";
3589
- var timelineDotBgClass = "bg-[var(--tiger-timeline-dot,#d1d5db)]";
3590
- var timelineDotClasses = `w-2.5 h-2.5 rounded-full border-2 border-[var(--tiger-surface,#ffffff)] ${timelineDotBgClass}`;
3591
- var timelineCustomDotClasses = "flex items-center justify-center";
3813
+ var timelineHeadClasses = "absolute z-10 flex items-center justify-center";
3592
3814
  var timelineContentClasses = "relative";
3815
+ var timelineCustomDotClasses = "flex items-center justify-center";
3593
3816
  var timelineLabelClasses = "text-sm text-[var(--tiger-text-muted,#6b7280)] mb-1";
3594
3817
  var timelineDescriptionClasses = "text-[var(--tiger-text,#374151)]";
3818
+ var dotBg = "bg-[var(--tiger-timeline-dot,#d1d5db)]";
3819
+ var timelineDotClasses = `w-2.5 h-2.5 rounded-full border-2 border-[var(--tiger-surface,#ffffff)] ${dotBg}`;
3820
+ var HEAD_TOP = "top-[18px]";
3821
+ var TAIL_TOP = "top-[23px]";
3822
+ var TAIL_BOTTOM = "-bottom-[23px]";
3595
3823
  function getTimelineContainerClasses(mode) {
3596
- const classes = [timelineContainerClasses];
3597
- if (mode === "left" || mode === "right") {
3598
- classes.push("pl-0");
3599
- } else if (mode === "alternate") {
3600
- classes.push("flex flex-col");
3601
- }
3602
- return classes.join(" ");
3824
+ if (mode === "alternate") return `${timelineContainerClasses} flex flex-col`;
3825
+ return timelineContainerClasses;
3603
3826
  }
3604
3827
  function getTimelineItemClasses(mode, position, isLast = false) {
3605
- const classes = [timelineItemClasses];
3606
- if (mode === "left") {
3607
- classes.push("pl-8");
3608
- } else if (mode === "right") {
3609
- classes.push("pr-8 text-right");
3610
- } else if (mode === "alternate") {
3611
- if (position === "left") {
3612
- classes.push("pr-8 text-right flex flex-row-reverse");
3613
- } else {
3614
- classes.push("pl-8 flex");
3615
- }
3616
- }
3617
- if (isLast) {
3618
- classes.push("pb-0");
3828
+ const base = isLast ? "relative pb-0" : timelineItemClasses;
3829
+ if (mode === "right") return `${base} pr-8 text-right`;
3830
+ if (mode === "alternate") {
3831
+ return position === "left" ? `${base} pr-8 text-right flex flex-row-reverse` : `${base} pl-8 flex`;
3619
3832
  }
3620
- return classes.join(" ");
3833
+ return `${base} pl-8`;
3621
3834
  }
3622
- function getTimelineTailClasses(mode, position, isLast = false) {
3623
- if (isLast) {
3624
- return "hidden";
3625
- }
3626
- const classes = [timelineTailClasses];
3627
- if (mode === "left") {
3628
- classes.push("left-0 -translate-x-1/2 top-[10px] bottom-0");
3629
- } else if (mode === "right") {
3630
- classes.push("right-0 translate-x-1/2 top-[10px] bottom-0");
3631
- } else if (mode === "alternate") {
3632
- classes.push("left-1/2 -translate-x-1/2 top-[10px] bottom-0");
3633
- }
3634
- return classes.join(" ");
3835
+ function getTimelineTailClasses(mode, _position, isLast = false) {
3836
+ if (isLast) return "hidden";
3837
+ const span = `${timelineTailClasses} ${TAIL_TOP} ${TAIL_BOTTOM}`;
3838
+ if (mode === "right") return `${span} right-0 translate-x-1/2`;
3839
+ if (mode === "alternate") return `${span} left-1/2 -translate-x-1/2`;
3840
+ return `${span} left-0 -translate-x-1/2`;
3635
3841
  }
3636
3842
  function getTimelineHeadClasses(mode, _position) {
3637
- const classes = [timelineHeadClasses];
3638
- if (mode === "left") {
3639
- classes.push("left-0 top-0 -translate-x-1/2");
3640
- } else if (mode === "right") {
3641
- classes.push("right-0 top-0 translate-x-1/2");
3642
- } else if (mode === "alternate") {
3643
- classes.push("left-1/2 -translate-x-1/2 top-0");
3644
- }
3645
- return classes.join(" ");
3843
+ if (mode === "right") return `${timelineHeadClasses} right-0 ${HEAD_TOP} translate-x-1/2`;
3844
+ if (mode === "alternate") return `${timelineHeadClasses} left-1/2 -translate-x-1/2 ${HEAD_TOP}`;
3845
+ return `${timelineHeadClasses} left-0 ${HEAD_TOP} -translate-x-1/2`;
3646
3846
  }
3647
3847
  function getTimelineDotClasses(color, isCustom = false) {
3648
- if (isCustom) {
3649
- return timelineCustomDotClasses;
3650
- }
3651
- const classes = [timelineDotClasses];
3652
- if (color) {
3653
- return classes.join(" ").replace(timelineDotBgClass, "");
3654
- }
3655
- return classes.join(" ");
3848
+ if (isCustom) return timelineCustomDotClasses;
3849
+ if (color) return timelineDotClasses.replace(dotBg, "");
3850
+ return timelineDotClasses;
3656
3851
  }
3657
3852
  function getTimelineContentClasses(mode, position) {
3658
- const classes = [timelineContentClasses];
3659
- if (mode === "left") {
3660
- classes.push("pl-2");
3661
- } else if (mode === "right") {
3662
- classes.push("pr-2");
3663
- } else if (mode === "alternate") {
3664
- if (position === "left") {
3665
- classes.push("pr-8");
3666
- } else {
3667
- classes.push("pl-8");
3668
- }
3853
+ if (mode === "right") return `${timelineContentClasses} pr-2`;
3854
+ if (mode === "alternate") {
3855
+ return position === "left" ? `${timelineContentClasses} pr-8` : `${timelineContentClasses} pl-8`;
3669
3856
  }
3670
- return classes.join(" ");
3857
+ return `${timelineContentClasses} pl-2`;
3671
3858
  }
3672
3859
  function getPendingDotClasses() {
3673
3860
  return "w-2.5 h-2.5 rounded-full border-2 border-white bg-[var(--tiger-primary,#2563eb)] animate-pulse";
@@ -4098,6 +4285,95 @@ var progressTrackBgClasses = "bg-[color:var(--tiger-border,#e5e7eb)]";
4098
4285
  var progressCircleTextClasses = "absolute inset-0 flex items-center justify-center";
4099
4286
  var progressCircleTrackStrokeClasses = "text-[color:var(--tiger-border,#e5e7eb)]";
4100
4287
 
4288
+ // src/utils/collapse-utils.ts
4289
+ var collapseBaseClasses = "w-full bg-white border border-gray-200 rounded overflow-hidden";
4290
+ var collapseGhostClasses = "border-0 bg-transparent";
4291
+ var collapseBorderlessClasses = "border-0";
4292
+ var collapsePanelBaseClasses = "border-b border-gray-200 last:border-b-0";
4293
+ var collapsePanelHeaderBaseClasses = "flex items-center px-4 py-3 cursor-pointer transition-colors duration-200 hover:bg-gray-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]";
4294
+ var collapsePanelHeaderActiveClasses = "bg-gray-50";
4295
+ var collapsePanelHeaderDisabledClasses = "cursor-not-allowed opacity-50 hover:bg-transparent";
4296
+ var collapsePanelContentWrapperClasses = "overflow-hidden transition-all duration-300 ease-in-out";
4297
+ var collapsePanelContentBaseClasses = "px-4 py-3 bg-white text-gray-700";
4298
+ var collapseIconBaseClasses = "transition-transform duration-300 ease-in-out text-gray-500";
4299
+ var collapseIconExpandedClasses = "rotate-90";
4300
+ var collapseIconPositionClasses = {
4301
+ start: "mr-2",
4302
+ end: "ml-auto"
4303
+ };
4304
+ var collapseHeaderTextClasses = "flex-1 font-medium text-gray-900";
4305
+ var collapseExtraClasses = "ml-auto";
4306
+ function getCollapseContainerClasses(bordered, ghost, className) {
4307
+ const classes = [collapseBaseClasses];
4308
+ if (ghost) {
4309
+ classes.push(collapseGhostClasses);
4310
+ } else if (!bordered) {
4311
+ classes.push(collapseBorderlessClasses);
4312
+ }
4313
+ if (className) {
4314
+ classes.push(className);
4315
+ }
4316
+ return classes.filter(Boolean).join(" ");
4317
+ }
4318
+ function getCollapsePanelClasses(ghost, className) {
4319
+ const classes = [];
4320
+ if (!ghost) {
4321
+ classes.push(collapsePanelBaseClasses);
4322
+ }
4323
+ if (className) {
4324
+ classes.push(className);
4325
+ }
4326
+ return classes.filter(Boolean).join(" ");
4327
+ }
4328
+ function getCollapsePanelHeaderClasses(active, disabled, className) {
4329
+ const classes = [collapsePanelHeaderBaseClasses];
4330
+ if (disabled) {
4331
+ classes.push(collapsePanelHeaderDisabledClasses);
4332
+ } else if (active) {
4333
+ classes.push(collapsePanelHeaderActiveClasses);
4334
+ }
4335
+ if (className) {
4336
+ classes.push(className);
4337
+ }
4338
+ return classes.filter(Boolean).join(" ");
4339
+ }
4340
+ function getCollapseIconClasses(expanded, position, className) {
4341
+ const classes = [collapseIconBaseClasses, collapseIconPositionClasses[position]];
4342
+ if (expanded) {
4343
+ classes.push(collapseIconExpandedClasses);
4344
+ }
4345
+ if (className) {
4346
+ classes.push(className);
4347
+ }
4348
+ return classes.filter(Boolean).join(" ");
4349
+ }
4350
+ function normalizeActiveKeys(activeKey) {
4351
+ if (activeKey === void 0) {
4352
+ return [];
4353
+ }
4354
+ return Array.isArray(activeKey) ? activeKey : [activeKey];
4355
+ }
4356
+ function isPanelActive(panelKey, activeKeys) {
4357
+ return activeKeys.includes(panelKey);
4358
+ }
4359
+ function togglePanelKey(panelKey, activeKeys, accordion) {
4360
+ const isActive = isPanelActive(panelKey, activeKeys);
4361
+ if (isActive) {
4362
+ return activeKeys.filter((key) => key !== panelKey);
4363
+ } else {
4364
+ if (accordion) {
4365
+ return [panelKey];
4366
+ } else {
4367
+ return [...activeKeys, panelKey];
4368
+ }
4369
+ }
4370
+ }
4371
+ var collapseRightArrowIcon = `
4372
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
4373
+ <path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4374
+ </svg>
4375
+ `.trim();
4376
+
4101
4377
  // src/utils/menu-utils.ts
4102
4378
  var menuBaseClasses = "flex border bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border-[var(--tiger-border,#e5e7eb)]";
4103
4379
  var menuModeClasses = {
@@ -4359,7 +4635,7 @@ function getStepItemClasses(direction, isLast, simple) {
4359
4635
  if (direction === "vertical") {
4360
4636
  return `${baseClasses} flex flex-row ${!isLast ? "pb-6" : ""}`;
4361
4637
  }
4362
- return `${baseClasses} flex flex-col flex-1 ${simple ? "items-center" : ""}`;
4638
+ return `${baseClasses} flex flex-col flex-1 items-center`;
4363
4639
  }
4364
4640
  function getStepIconClasses(status, size, simple, isCustomIcon) {
4365
4641
  const baseClasses = "tiger-step-icon flex items-center justify-center rounded-full border-2 transition-all duration-200";
@@ -4392,7 +4668,7 @@ function getStepContentClasses(direction, simple) {
4392
4668
  if (direction === "vertical") {
4393
4669
  return `${baseClasses} ml-4 flex-1`;
4394
4670
  }
4395
- return `${baseClasses} mt-2 ${simple ? "text-center" : ""}`;
4671
+ return `${baseClasses} mt-2 text-center`;
4396
4672
  }
4397
4673
  function getStepTitleClasses(status, size, clickable) {
4398
4674
  const baseClasses = "tiger-step-title font-medium transition-colors duration-200 bg-transparent border-0 p-0";
@@ -5430,6 +5706,204 @@ var codeBlockPreClasses = "m-0 overflow-auto p-4 text-sm leading-relaxed font-mo
5430
5706
  var codeBlockCopyButtonBaseClasses = "absolute right-3 top-0 -translate-y-1/2 inline-flex items-center rounded-md border border-gray-200 bg-white/90 px-1.5 py-0.5 text-[10px] text-gray-600 shadow-sm transition-colors hover:bg-white hover:text-gray-900 dark:border-gray-700 dark:bg-gray-900/90 dark:text-gray-200 dark:hover:bg-gray-800";
5431
5707
  var codeBlockCopyButtonCopiedClasses = "border-[var(--tiger-primary,#2563eb)] text-[var(--tiger-primary,#2563eb)]";
5432
5708
 
5709
+ // src/utils/carousel-utils.ts
5710
+ var carouselBaseClasses = "relative overflow-hidden w-full";
5711
+ var carouselTrackScrollClasses = "flex transition-transform ease-in-out";
5712
+ var carouselTrackFadeClasses = "relative";
5713
+ var carouselSlideBaseClasses = "flex-shrink-0 w-full";
5714
+ var carouselSlideFadeClasses = "absolute inset-0 transition-opacity ease-in-out";
5715
+ var carouselDotsBaseClasses = "absolute flex gap-2 z-10";
5716
+ var carouselDotsPositionClasses = {
5717
+ top: "top-4 left-1/2 -translate-x-1/2 flex-row",
5718
+ bottom: "bottom-4 left-1/2 -translate-x-1/2 flex-row",
5719
+ left: "left-4 top-1/2 -translate-y-1/2 flex-col",
5720
+ right: "right-4 top-1/2 -translate-y-1/2 flex-col"
5721
+ };
5722
+ var carouselDotClasses = "w-3 h-3 rounded-full transition-all duration-200 cursor-pointer border-0 p-0 bg-white/50 hover:bg-white/75 focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-offset-2 focus-visible:ring-offset-gray-800";
5723
+ var carouselDotActiveClasses = "bg-white scale-110";
5724
+ var carouselArrowBaseClasses = "absolute top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-10 h-10 rounded-full bg-black/30 text-white cursor-pointer transition-all duration-200 hover:bg-black/50 focus:outline-none focus-visible:ring-2 focus-visible:ring-white border-0";
5725
+ var carouselPrevArrowClasses = "left-4";
5726
+ var carouselNextArrowClasses = "right-4";
5727
+ var carouselArrowDisabledClasses = "opacity-50 cursor-not-allowed pointer-events-none";
5728
+ function getCarouselContainerClasses(className) {
5729
+ const classes = [carouselBaseClasses];
5730
+ if (className) {
5731
+ classes.push(className);
5732
+ }
5733
+ return classes.filter(Boolean).join(" ");
5734
+ }
5735
+ function getCarouselDotsClasses(position) {
5736
+ return `${carouselDotsBaseClasses} ${carouselDotsPositionClasses[position]}`;
5737
+ }
5738
+ function getCarouselDotClasses(isActive) {
5739
+ const classes = [carouselDotClasses];
5740
+ if (isActive) {
5741
+ classes.push(carouselDotActiveClasses);
5742
+ }
5743
+ return classes.filter(Boolean).join(" ");
5744
+ }
5745
+ function getCarouselArrowClasses(type, disabled) {
5746
+ const classes = [carouselArrowBaseClasses];
5747
+ classes.push(type === "prev" ? carouselPrevArrowClasses : carouselNextArrowClasses);
5748
+ if (disabled) {
5749
+ classes.push(carouselArrowDisabledClasses);
5750
+ }
5751
+ return classes.filter(Boolean).join(" ");
5752
+ }
5753
+ function getNextSlideIndex(currentIndex, totalSlides, infinite) {
5754
+ if (totalSlides <= 0) return 0;
5755
+ const nextIndex = currentIndex + 1;
5756
+ if (nextIndex >= totalSlides) {
5757
+ return infinite ? 0 : currentIndex;
5758
+ }
5759
+ return nextIndex;
5760
+ }
5761
+ function getPrevSlideIndex(currentIndex, totalSlides, infinite) {
5762
+ if (totalSlides <= 0) return 0;
5763
+ const prevIndex = currentIndex - 1;
5764
+ if (prevIndex < 0) {
5765
+ return infinite ? totalSlides - 1 : currentIndex;
5766
+ }
5767
+ return prevIndex;
5768
+ }
5769
+ function isNextDisabled(currentIndex, totalSlides, infinite) {
5770
+ if (infinite) return false;
5771
+ return currentIndex >= totalSlides - 1;
5772
+ }
5773
+ function isPrevDisabled(currentIndex, _totalSlides, infinite) {
5774
+ if (infinite) return false;
5775
+ return currentIndex <= 0;
5776
+ }
5777
+ function clampSlideIndex(index, totalSlides) {
5778
+ if (totalSlides <= 0) return 0;
5779
+ if (index < 0) return 0;
5780
+ if (index >= totalSlides) return totalSlides - 1;
5781
+ return index;
5782
+ }
5783
+ function getScrollTransform(currentIndex) {
5784
+ return `translateX(-${currentIndex * 100}%)`;
5785
+ }
5786
+ var carouselPrevArrowPath = "M15.75 19.5L8.25 12l7.5-7.5";
5787
+ var carouselNextArrowPath = "M8.25 4.5l7.5 7.5-7.5 7.5";
5788
+
5789
+ // src/utils/anchor-utils.ts
5790
+ var anchorBaseClasses = "relative";
5791
+ var anchorAffixClasses = "fixed";
5792
+ var anchorInkContainerVerticalClasses = "absolute left-0 top-0 bottom-0 w-0.5 bg-gray-200 rounded-full";
5793
+ var anchorInkContainerHorizontalClasses = "absolute left-0 right-0 bottom-0 h-0.5 bg-gray-200 rounded-full";
5794
+ var anchorInkActiveVerticalClasses = "absolute w-0.5 bg-[var(--tiger-primary,#2563eb)] rounded-full transition-[top,height] duration-200 ease-in-out";
5795
+ var anchorInkActiveHorizontalClasses = "absolute h-0.5 bg-[var(--tiger-primary,#2563eb)] rounded-full transition-[left,width] duration-200 ease-in-out";
5796
+ var anchorLinkListVerticalClasses = "pl-4 space-y-2";
5797
+ var anchorLinkListHorizontalClasses = "flex items-center space-x-4 pb-2";
5798
+ var anchorLinkBaseClasses = "block text-sm text-gray-600 hover:text-[var(--tiger-primary,#2563eb)] transition-colors duration-200 whitespace-nowrap";
5799
+ var anchorLinkActiveClasses = "text-[var(--tiger-primary,#2563eb)] font-medium";
5800
+ function getAnchorWrapperClasses(affix, className) {
5801
+ const classes = [anchorBaseClasses];
5802
+ if (affix) {
5803
+ classes.push(anchorAffixClasses);
5804
+ }
5805
+ if (className) {
5806
+ classes.push(className);
5807
+ }
5808
+ return classes.filter(Boolean).join(" ");
5809
+ }
5810
+ function getAnchorInkContainerClasses(direction) {
5811
+ return direction === "vertical" ? anchorInkContainerVerticalClasses : anchorInkContainerHorizontalClasses;
5812
+ }
5813
+ function getAnchorInkActiveClasses(direction) {
5814
+ return direction === "vertical" ? anchorInkActiveVerticalClasses : anchorInkActiveHorizontalClasses;
5815
+ }
5816
+ function getAnchorLinkListClasses(direction) {
5817
+ return direction === "vertical" ? anchorLinkListVerticalClasses : anchorLinkListHorizontalClasses;
5818
+ }
5819
+ function getAnchorLinkClasses(active, className) {
5820
+ const classes = [anchorLinkBaseClasses];
5821
+ if (active) {
5822
+ classes.push(anchorLinkActiveClasses);
5823
+ }
5824
+ if (className) {
5825
+ classes.push(className);
5826
+ }
5827
+ return classes.filter(Boolean).join(" ");
5828
+ }
5829
+ function getAnchorTargetElement(href) {
5830
+ if (!href || !href.startsWith("#")) {
5831
+ return null;
5832
+ }
5833
+ const id = href.slice(1);
5834
+ if (!id) {
5835
+ return null;
5836
+ }
5837
+ return document.getElementById(id);
5838
+ }
5839
+ function getContainerScrollTop(container) {
5840
+ if (container === window) {
5841
+ return window.scrollY || document.documentElement.scrollTop;
5842
+ }
5843
+ return container.scrollTop;
5844
+ }
5845
+ function getContainerHeight(container) {
5846
+ if (container === window) {
5847
+ return window.innerHeight;
5848
+ }
5849
+ return container.clientHeight;
5850
+ }
5851
+ function getElementOffsetTop(element, container) {
5852
+ if (container === window) {
5853
+ const rect = element.getBoundingClientRect();
5854
+ return rect.top + window.scrollY;
5855
+ }
5856
+ const containerEl = container;
5857
+ let offset2 = 0;
5858
+ let el = element;
5859
+ while (el && el !== containerEl) {
5860
+ offset2 += el.offsetTop;
5861
+ el = el.offsetParent;
5862
+ if (el === null || el === document.body) {
5863
+ const containerRect = containerEl.getBoundingClientRect();
5864
+ const elementRect = element.getBoundingClientRect();
5865
+ return elementRect.top - containerRect.top + containerEl.scrollTop;
5866
+ }
5867
+ }
5868
+ return offset2;
5869
+ }
5870
+ function scrollToAnchor(href, container, targetOffset = 0) {
5871
+ const element = getAnchorTargetElement(href);
5872
+ if (!element) {
5873
+ return;
5874
+ }
5875
+ const offsetTop = getElementOffsetTop(element, container) - targetOffset;
5876
+ if (container === window) {
5877
+ window.scrollTo({
5878
+ top: offsetTop,
5879
+ behavior: "smooth"
5880
+ });
5881
+ } else {
5882
+ ;
5883
+ container.scrollTo({
5884
+ top: offsetTop,
5885
+ behavior: "smooth"
5886
+ });
5887
+ }
5888
+ }
5889
+ function findActiveAnchor(links, container, bounds = 5, targetOffset = 0) {
5890
+ if (links.length === 0) {
5891
+ return "";
5892
+ }
5893
+ const scrollTop = getContainerScrollTop(container);
5894
+ for (let i = links.length - 1; i >= 0; i--) {
5895
+ const href = links[i];
5896
+ const element = getAnchorTargetElement(href);
5897
+ if (element) {
5898
+ const offsetTop = getElementOffsetTop(element, container) - targetOffset - bounds;
5899
+ if (scrollTop >= offsetTop) {
5900
+ return href;
5901
+ }
5902
+ }
5903
+ }
5904
+ return links[0] || "";
5905
+ }
5906
+
5433
5907
  // src/utils/chart-utils.ts
5434
5908
  var chartCanvasBaseClasses = "block";
5435
5909
  var chartAxisLineClasses = "stroke-[color:var(--tiger-border,#e5e7eb)]";
@@ -6040,6 +6514,167 @@ function applyFloatingStyles(element, result) {
6040
6514
  element.style.top = `${result.y}px`;
6041
6515
  }
6042
6516
 
6517
+ // src/utils/chat-window-utils.ts
6518
+ var defaultChatMessageStatusInfo = {
6519
+ sending: { text: "\u53D1\u9001\u4E2D", className: "text-[var(--tiger-text-muted,#6b7280)]" },
6520
+ sent: { text: "\u5DF2\u9001\u8FBE", className: "text-[var(--tiger-text-muted,#6b7280)]" },
6521
+ failed: { text: "\u53D1\u9001\u5931\u8D25", className: "text-[var(--tiger-danger,#ef4444)]" }
6522
+ };
6523
+ function getChatMessageStatusInfo(status, statusMap = defaultChatMessageStatusInfo) {
6524
+ return statusMap[status] || defaultChatMessageStatusInfo[status];
6525
+ }
6526
+
6527
+ // src/utils/activity-feed-utils.ts
6528
+ var formatActivityTime = (value) => {
6529
+ if (value == null || value === "") return "";
6530
+ if (value instanceof Date) return value.toLocaleString();
6531
+ if (typeof value === "number") return new Date(value).toLocaleString();
6532
+ return value;
6533
+ };
6534
+ var sortActivityGroups = (groups, groupOrder) => {
6535
+ if (!groupOrder || groupOrder.length === 0) return groups;
6536
+ const orderMap = new Map(groupOrder.map((key, index) => [key, index]));
6537
+ return [...groups].sort((a, b) => {
6538
+ const aKey = String(a.key ?? a.title ?? "");
6539
+ const bKey = String(b.key ?? b.title ?? "");
6540
+ const aIndex = orderMap.has(aKey) ? orderMap.get(aKey) : Number.POSITIVE_INFINITY;
6541
+ const bIndex = orderMap.has(bKey) ? orderMap.get(bKey) : Number.POSITIVE_INFINITY;
6542
+ if (aIndex === bIndex) return 0;
6543
+ return aIndex - bIndex;
6544
+ });
6545
+ };
6546
+ var buildActivityGroups = (items, groups, groupBy, groupOrder) => {
6547
+ if (groups && groups.length > 0) {
6548
+ return sortActivityGroups(groups, groupOrder);
6549
+ }
6550
+ if (!items || items.length === 0) return [];
6551
+ if (groupBy) {
6552
+ const groupMap = /* @__PURE__ */ new Map();
6553
+ items.forEach((item) => {
6554
+ const key = groupBy(item) || "\u5176\u4ED6";
6555
+ const bucket = groupMap.get(key) ?? [];
6556
+ bucket.push(item);
6557
+ groupMap.set(key, bucket);
6558
+ });
6559
+ const mappedGroups = Array.from(groupMap.entries()).map(([title, groupItems]) => ({
6560
+ key: title,
6561
+ title,
6562
+ items: groupItems
6563
+ }));
6564
+ return sortActivityGroups(mappedGroups, groupOrder);
6565
+ }
6566
+ return [{ key: "default", title: "", items }];
6567
+ };
6568
+ var toActivityTimelineItems = (items) => {
6569
+ return items.map((item, index) => ({
6570
+ key: item.id ?? index,
6571
+ activity: item
6572
+ }));
6573
+ };
6574
+
6575
+ // src/utils/notification-center-utils.ts
6576
+ var sortNotificationGroups = (groups, groupOrder) => {
6577
+ if (!groupOrder || groupOrder.length === 0) {
6578
+ return groups;
6579
+ }
6580
+ const orderMap = /* @__PURE__ */ new Map();
6581
+ groupOrder.forEach((key, index) => {
6582
+ orderMap.set(String(key), index);
6583
+ });
6584
+ return [...groups].sort((a, b) => {
6585
+ const aKey = String(a.key ?? a.title);
6586
+ const bKey = String(b.key ?? b.title);
6587
+ const aIndex = orderMap.get(aKey);
6588
+ const bIndex = orderMap.get(bKey);
6589
+ if (aIndex === void 0 && bIndex === void 0) return 0;
6590
+ if (aIndex === void 0) return 1;
6591
+ if (bIndex === void 0) return -1;
6592
+ return aIndex - bIndex;
6593
+ });
6594
+ };
6595
+ var buildNotificationGroups = (items = [], groups, groupBy, groupOrder) => {
6596
+ if (groups && groups.length > 0) {
6597
+ return sortNotificationGroups(groups, groupOrder);
6598
+ }
6599
+ if (!items || items.length === 0) {
6600
+ return [];
6601
+ }
6602
+ const groupFn = groupBy ?? ((item) => String(item.type ?? "default"));
6603
+ const groupMap = /* @__PURE__ */ new Map();
6604
+ items.forEach((item) => {
6605
+ const key = groupFn(item);
6606
+ if (!groupMap.has(key)) {
6607
+ groupMap.set(key, []);
6608
+ }
6609
+ groupMap.get(key)?.push(item);
6610
+ });
6611
+ const mappedGroups = Array.from(groupMap.entries()).map(([key, groupItems]) => ({
6612
+ key,
6613
+ title: key,
6614
+ items: groupItems
6615
+ }));
6616
+ return sortNotificationGroups(mappedGroups, groupOrder);
6617
+ };
6618
+
6619
+ // src/utils/comment-thread-utils.ts
6620
+ var buildCommentTree = (items = []) => {
6621
+ if (!items || items.length === 0) return [];
6622
+ const nodeMap = /* @__PURE__ */ new Map();
6623
+ const order = [];
6624
+ items.forEach((item) => {
6625
+ nodeMap.set(item.id, {
6626
+ ...item,
6627
+ children: []
6628
+ });
6629
+ order.push(item.id);
6630
+ });
6631
+ const roots = [];
6632
+ order.forEach((id) => {
6633
+ const node = nodeMap.get(id);
6634
+ if (!node) return;
6635
+ if (node.parentId === void 0 || node.parentId === null) {
6636
+ roots.push(node);
6637
+ return;
6638
+ }
6639
+ const parent = nodeMap.get(node.parentId);
6640
+ if (!parent) {
6641
+ roots.push(node);
6642
+ return;
6643
+ }
6644
+ if (!parent.children) parent.children = [];
6645
+ parent.children.push(node);
6646
+ });
6647
+ return roots;
6648
+ };
6649
+ var clipCommentTreeDepth = (nodes = [], maxDepth = 3) => {
6650
+ if (!nodes || nodes.length === 0) return [];
6651
+ if (maxDepth <= 0) return [];
6652
+ const cloneNode = (node, depth) => {
6653
+ const next = { ...node };
6654
+ if (node.children && node.children.length > 0 && depth < maxDepth) {
6655
+ next.children = node.children.map((child) => cloneNode(child, depth + 1));
6656
+ } else {
6657
+ next.children = [];
6658
+ }
6659
+ return next;
6660
+ };
6661
+ return nodes.map((node) => cloneNode(node, 1));
6662
+ };
6663
+
6664
+ // src/utils/composite-time-utils.ts
6665
+ var formatChatTime = (value) => {
6666
+ if (!value) return "";
6667
+ if (value instanceof Date) return value.toLocaleTimeString();
6668
+ if (typeof value === "number") return new Date(value).toLocaleTimeString();
6669
+ return value;
6670
+ };
6671
+ var formatCommentTime = (value) => {
6672
+ if (value == null || value === "") return "";
6673
+ if (value instanceof Date) return value.toLocaleString();
6674
+ if (typeof value === "number") return new Date(value).toLocaleString();
6675
+ return value;
6676
+ };
6677
+
6043
6678
  // src/theme/colors.ts
6044
6679
  var defaultThemeColors = {
6045
6680
  primary: {
@@ -6573,6 +7208,16 @@ var version = "0.2.0";
6573
7208
  alertSuccessIconPath,
6574
7209
  alertTitleSizeClasses,
6575
7210
  alertWarningIconPath,
7211
+ anchorAffixClasses,
7212
+ anchorBaseClasses,
7213
+ anchorInkActiveHorizontalClasses,
7214
+ anchorInkActiveVerticalClasses,
7215
+ anchorInkContainerHorizontalClasses,
7216
+ anchorInkContainerVerticalClasses,
7217
+ anchorLinkActiveClasses,
7218
+ anchorLinkBaseClasses,
7219
+ anchorLinkListHorizontalClasses,
7220
+ anchorLinkListVerticalClasses,
6576
7221
  animationDelayClasses,
6577
7222
  animationDelayStyles,
6578
7223
  applyFloatingStyles,
@@ -6584,6 +7229,12 @@ var version = "0.2.0";
6584
7229
  avatarImageClasses,
6585
7230
  avatarShapeClasses,
6586
7231
  avatarSizeClasses,
7232
+ backTopBaseClasses,
7233
+ backTopButtonClasses,
7234
+ backTopContainerClasses,
7235
+ backTopHiddenClasses,
7236
+ backTopIconPath,
7237
+ backTopVisibleClasses,
6587
7238
  badgeBaseClasses,
6588
7239
  badgePositionClasses,
6589
7240
  badgeSizeClasses,
@@ -6595,6 +7246,9 @@ var version = "0.2.0";
6595
7246
  breadcrumbItemBaseClasses,
6596
7247
  breadcrumbLinkClasses,
6597
7248
  breadcrumbSeparatorBaseClasses,
7249
+ buildActivityGroups,
7250
+ buildCommentTree,
7251
+ buildNotificationGroups,
6598
7252
  buttonBaseClasses,
6599
7253
  buttonDisabledClasses,
6600
7254
  buttonSizeClasses,
@@ -6614,6 +7268,21 @@ var version = "0.2.0";
6614
7268
  cardHoverClasses,
6615
7269
  cardSizeClasses,
6616
7270
  cardVariantClasses,
7271
+ carouselArrowBaseClasses,
7272
+ carouselArrowDisabledClasses,
7273
+ carouselBaseClasses,
7274
+ carouselDotActiveClasses,
7275
+ carouselDotClasses,
7276
+ carouselDotsBaseClasses,
7277
+ carouselDotsPositionClasses,
7278
+ carouselNextArrowClasses,
7279
+ carouselNextArrowPath,
7280
+ carouselPrevArrowClasses,
7281
+ carouselPrevArrowPath,
7282
+ carouselSlideBaseClasses,
7283
+ carouselSlideFadeClasses,
7284
+ carouselTrackFadeClasses,
7285
+ carouselTrackScrollClasses,
6617
7286
  chartAxisLabelClasses,
6618
7287
  chartAxisLineClasses,
6619
7288
  chartAxisTickLineClasses,
@@ -6628,8 +7297,10 @@ var version = "0.2.0";
6628
7297
  chevronLeftSolidIcon20PathD,
6629
7298
  chevronRightSolidIcon20PathD,
6630
7299
  clampPercentage,
7300
+ clampSlideIndex,
6631
7301
  classNames,
6632
7302
  clearFieldErrors,
7303
+ clipCommentTreeDepth,
6633
7304
  clockSolidIcon20PathD,
6634
7305
  closeIconPathD,
6635
7306
  closeIconPathStrokeLinecap,
@@ -6643,6 +7314,21 @@ var version = "0.2.0";
6643
7314
  codeBlockPreClasses,
6644
7315
  coerceClassValue,
6645
7316
  coerceStyleValue,
7317
+ collapseBaseClasses,
7318
+ collapseBorderlessClasses,
7319
+ collapseExtraClasses,
7320
+ collapseGhostClasses,
7321
+ collapseHeaderTextClasses,
7322
+ collapseIconBaseClasses,
7323
+ collapseIconExpandedClasses,
7324
+ collapseIconPositionClasses,
7325
+ collapsePanelBaseClasses,
7326
+ collapsePanelContentBaseClasses,
7327
+ collapsePanelContentWrapperClasses,
7328
+ collapsePanelHeaderActiveClasses,
7329
+ collapsePanelHeaderBaseClasses,
7330
+ collapsePanelHeaderDisabledClasses,
7331
+ collapseRightArrowIcon,
6646
7332
  computeFloatingPosition,
6647
7333
  containerBaseClasses,
6648
7334
  containerCenteredClasses,
@@ -6671,6 +7357,7 @@ var version = "0.2.0";
6671
7357
  datePickerNavButtonClasses,
6672
7358
  defaultAlertThemeColors,
6673
7359
  defaultBadgeThemeColors,
7360
+ defaultChatMessageStatusInfo,
6674
7361
  defaultExpandIcon,
6675
7362
  defaultIndeterminateIcon,
6676
7363
  defaultLinkThemeColors,
@@ -6708,13 +7395,17 @@ var version = "0.2.0";
6708
7395
  filterData,
6709
7396
  filterOptions,
6710
7397
  filterTreeNodes,
7398
+ findActiveAnchor,
6711
7399
  findNode,
6712
7400
  flattenTree,
6713
7401
  focusElement,
6714
7402
  focusFirst,
6715
7403
  focusRingClasses,
6716
7404
  focusRingInsetClasses,
7405
+ formatActivityTime,
6717
7406
  formatBadgeContent,
7407
+ formatChatTime,
7408
+ formatCommentTime,
6718
7409
  formatDate,
6719
7410
  formatFileSize,
6720
7411
  formatMonthYear,
@@ -6735,6 +7426,12 @@ var version = "0.2.0";
6735
7426
  getAlertTypeClasses,
6736
7427
  getAlignClasses,
6737
7428
  getAllKeys,
7429
+ getAnchorInkActiveClasses,
7430
+ getAnchorInkContainerClasses,
7431
+ getAnchorLinkClasses,
7432
+ getAnchorLinkListClasses,
7433
+ getAnchorTargetElement,
7434
+ getAnchorWrapperClasses,
6738
7435
  getArrowStyles,
6739
7436
  getAutoExpandKeys,
6740
7437
  getBadgeVariantClasses,
@@ -6745,12 +7442,17 @@ var version = "0.2.0";
6745
7442
  getButtonVariantClasses,
6746
7443
  getCalendarDays,
6747
7444
  getCardClasses,
7445
+ getCarouselArrowClasses,
7446
+ getCarouselContainerClasses,
7447
+ getCarouselDotClasses,
7448
+ getCarouselDotsClasses,
6748
7449
  getChartAnimationStyle,
6749
7450
  getChartAxisTicks,
6750
7451
  getChartElementOpacity,
6751
7452
  getChartEntranceTransform,
6752
7453
  getChartGridLineDasharray,
6753
7454
  getChartInnerRect,
7455
+ getChatMessageStatusInfo,
6754
7456
  getCheckboxCellClasses,
6755
7457
  getCheckboxClasses,
6756
7458
  getCheckboxLabelClasses,
@@ -6758,7 +7460,13 @@ var version = "0.2.0";
6758
7460
  getCircleSize,
6759
7461
  getColOrderStyleVars,
6760
7462
  getColStyleVars,
7463
+ getCollapseContainerClasses,
7464
+ getCollapseIconClasses,
7465
+ getCollapsePanelClasses,
7466
+ getCollapsePanelHeaderClasses,
6761
7467
  getContainerClasses,
7468
+ getContainerHeight,
7469
+ getContainerScrollTop,
6762
7470
  getCurrentTime,
6763
7471
  getDatePickerDayCellClasses,
6764
7472
  getDatePickerIconButtonClasses,
@@ -6789,6 +7497,7 @@ var version = "0.2.0";
6789
7497
  getDropdownMenuClasses,
6790
7498
  getDropdownMenuWrapperClasses,
6791
7499
  getDropdownTriggerClasses,
7500
+ getElementOffsetTop,
6792
7501
  getErrorFields,
6793
7502
  getFieldError,
6794
7503
  getFileListItemClasses,
@@ -6797,6 +7506,13 @@ var version = "0.2.0";
6797
7506
  getFlexClasses,
6798
7507
  getFocusTrapNavigation,
6799
7508
  getFocusableElements,
7509
+ getFormItemAsteriskClasses,
7510
+ getFormItemAsteriskStyle,
7511
+ getFormItemClasses,
7512
+ getFormItemContentClasses,
7513
+ getFormItemErrorClasses,
7514
+ getFormItemFieldClasses,
7515
+ getFormItemLabelClasses,
6800
7516
  getGridColumnClasses,
6801
7517
  getGutterStyles,
6802
7518
  getInitials,
@@ -6826,6 +7542,7 @@ var version = "0.2.0";
6826
7542
  getModalContentClasses,
6827
7543
  getMonthNames,
6828
7544
  getNextActiveKey,
7545
+ getNextSlideIndex,
6829
7546
  getNotificationIconPath,
6830
7547
  getNotificationTypeClasses,
6831
7548
  getNumberExtent,
@@ -6866,6 +7583,7 @@ var version = "0.2.0";
6866
7583
  getPopoverContentTextClasses,
6867
7584
  getPopoverTitleClasses,
6868
7585
  getPopoverTriggerClasses,
7586
+ getPrevSlideIndex,
6869
7587
  getProgressTextColorClasses,
6870
7588
  getProgressVariantClasses,
6871
7589
  getQuickJumperInputClasses,
@@ -6877,6 +7595,8 @@ var version = "0.2.0";
6877
7595
  getRadioLabelClasses,
6878
7596
  getRadioVisualClasses,
6879
7597
  getRowKey,
7598
+ getScrollTop,
7599
+ getScrollTransform,
6880
7600
  getSecureRel,
6881
7601
  getSelectOptionClasses,
6882
7602
  getSelectSizeClasses,
@@ -6982,7 +7702,10 @@ var version = "0.2.0";
6982
7702
  isKeyActive,
6983
7703
  isKeyOpen,
6984
7704
  isKeySelected,
7705
+ isNextDisabled,
6985
7706
  isOptionGroup,
7707
+ isPanelActive,
7708
+ isPrevDisabled,
6986
7709
  isSameDay,
6987
7710
  isSpaceKey,
6988
7711
  isTabKey,
@@ -7069,6 +7792,7 @@ var version = "0.2.0";
7069
7792
  modalSizeClasses,
7070
7793
  modalTitleClasses,
7071
7794
  modalWrapperClasses,
7795
+ normalizeActiveKeys,
7072
7796
  normalizeChartPadding,
7073
7797
  normalizeDate,
7074
7798
  normalizeSvgAttrs,
@@ -7122,6 +7846,8 @@ var version = "0.2.0";
7122
7846
  replaceKeys,
7123
7847
  resolveLocaleText,
7124
7848
  restoreFocus,
7849
+ scrollToAnchor,
7850
+ scrollToTop,
7125
7851
  selectBaseClasses,
7126
7852
  selectDropdownBaseClasses,
7127
7853
  selectEmptyStateClasses,
@@ -7147,10 +7873,12 @@ var version = "0.2.0";
7147
7873
  sliderThumbClasses,
7148
7874
  sliderTooltipClasses,
7149
7875
  sliderTrackClasses,
7876
+ sortActivityGroups,
7150
7877
  sortAscIcon16PathD,
7151
7878
  sortBothIcon16PathD,
7152
7879
  sortData,
7153
7880
  sortDescIcon16PathD,
7881
+ sortNotificationGroups,
7154
7882
  stackSeriesData,
7155
7883
  statusErrorIconPath,
7156
7884
  statusIconPaths,
@@ -7235,7 +7963,9 @@ var version = "0.2.0";
7235
7963
  timelineTailClasses,
7236
7964
  to12HourFormat,
7237
7965
  to24HourFormat,
7966
+ toActivityTimelineItems,
7238
7967
  toggleKey,
7968
+ togglePanelKey,
7239
7969
  treeBaseClasses,
7240
7970
  treeEmptyStateClasses,
7241
7971
  treeLineClasses,