@expcat/tigercat-core 0.3.0 → 0.3.69

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
@@ -110,15 +110,26 @@ __export(index_exports, {
110
110
  ClockIconPath: () => ClockIconPath,
111
111
  CloseIconPath: () => CloseIconPath,
112
112
  DEFAULT_CHART_COLORS: () => DEFAULT_CHART_COLORS,
113
+ DEFAULT_FORM_WIZARD_LABELS: () => DEFAULT_FORM_WIZARD_LABELS,
113
114
  DEFAULT_PAGINATION_LABELS: () => DEFAULT_PAGINATION_LABELS,
115
+ DONUT_BASE_SHADOW: () => DONUT_BASE_SHADOW,
116
+ DONUT_EMPHASIS_SHADOW: () => DONUT_EMPHASIS_SHADOW,
117
+ DROPDOWN_CHEVRON_PATH: () => DROPDOWN_CHEVRON_PATH,
118
+ DROPDOWN_ENTER_CLASS: () => DROPDOWN_ENTER_CLASS,
114
119
  DURATION_CLASS: () => DURATION_CLASS,
115
120
  DURATION_FAST_CLASS: () => DURATION_FAST_CLASS,
116
121
  DURATION_SLOW_CLASS: () => DURATION_SLOW_CLASS,
117
122
  EASING_DEFAULT: () => EASING_DEFAULT,
118
123
  EASING_ENTER: () => EASING_ENTER,
119
124
  EASING_LEAVE: () => EASING_LEAVE,
125
+ PIE_BASE_SHADOW: () => PIE_BASE_SHADOW,
126
+ PIE_EMPHASIS_SHADOW: () => PIE_EMPHASIS_SHADOW,
127
+ POPOVER_TEXT_CLASSES: () => POPOVER_TEXT_CLASSES,
128
+ POPOVER_TITLE_CLASSES: () => POPOVER_TITLE_CLASSES,
129
+ RADAR_SPLIT_AREA_COLORS: () => RADAR_SPLIT_AREA_COLORS,
130
+ SCATTER_ENTRANCE_CLASS: () => SCATTER_ENTRANCE_CLASS,
131
+ SCATTER_ENTRANCE_KEYFRAMES: () => SCATTER_ENTRANCE_KEYFRAMES,
120
132
  SHAKE_CLASS: () => SHAKE_CLASS,
121
- SPACE_BASE_CLASS: () => SPACE_BASE_CLASS,
122
133
  SVG_ANIMATION_CLASSES: () => SVG_ANIMATION_CLASSES,
123
134
  SVG_ANIMATION_VARS: () => SVG_ANIMATION_VARS,
124
135
  SVG_DEFAULT_FILL: () => SVG_DEFAULT_FILL,
@@ -132,6 +143,7 @@ __export(index_exports, {
132
143
  TRANSITION_OPACITY: () => TRANSITION_OPACITY,
133
144
  TRANSITION_TRANSFORM: () => TRANSITION_TRANSFORM,
134
145
  TimePickerCloseIconPath: () => TimePickerCloseIconPath,
146
+ ZH_CN_FORM_WIZARD_LABELS: () => ZH_CN_FORM_WIZARD_LABELS,
135
147
  ZH_CN_PAGINATION_LABELS: () => ZH_CN_PAGINATION_LABELS,
136
148
  activeOpacityClasses: () => activeOpacityClasses,
137
149
  activePressClasses: () => activePressClasses,
@@ -140,14 +152,10 @@ __export(index_exports, {
140
152
  alertCloseIconPath: () => alertCloseIconPath,
141
153
  alertContentClasses: () => alertContentClasses,
142
154
  alertDescriptionSizeClasses: () => alertDescriptionSizeClasses,
143
- alertErrorIconPath: () => alertErrorIconPath,
144
155
  alertIconContainerClasses: () => alertIconContainerClasses,
145
156
  alertIconSizeClasses: () => alertIconSizeClasses,
146
- alertInfoIconPath: () => alertInfoIconPath,
147
157
  alertSizeClasses: () => alertSizeClasses,
148
- alertSuccessIconPath: () => alertSuccessIconPath,
149
158
  alertTitleSizeClasses: () => alertTitleSizeClasses,
150
- alertWarningIconPath: () => alertWarningIconPath,
151
159
  anchorAffixClasses: () => anchorAffixClasses,
152
160
  anchorBaseClasses: () => anchorBaseClasses,
153
161
  anchorInkActiveHorizontalClasses: () => anchorInkActiveHorizontalClasses,
@@ -169,7 +177,6 @@ __export(index_exports, {
169
177
  avatarImageClasses: () => avatarImageClasses,
170
178
  avatarShapeClasses: () => avatarShapeClasses,
171
179
  avatarSizeClasses: () => avatarSizeClasses,
172
- backTopBaseClasses: () => backTopBaseClasses,
173
180
  backTopButtonClasses: () => backTopButtonClasses,
174
181
  backTopContainerClasses: () => backTopContainerClasses,
175
182
  backTopHiddenClasses: () => backTopHiddenClasses,
@@ -180,6 +187,9 @@ __export(index_exports, {
180
187
  badgeSizeClasses: () => badgeSizeClasses,
181
188
  badgeTypeClasses: () => badgeTypeClasses,
182
189
  badgeWrapperClasses: () => badgeWrapperClasses,
190
+ barAnimatedTransition: () => barAnimatedTransition,
191
+ barValueLabelClasses: () => barValueLabelClasses,
192
+ barValueLabelInsideClasses: () => barValueLabelInsideClasses,
183
193
  barsVariantConfig: () => barsVariantConfig,
184
194
  breadcrumbContainerClasses: () => breadcrumbContainerClasses,
185
195
  breadcrumbCurrentClasses: () => breadcrumbCurrentClasses,
@@ -187,8 +197,10 @@ __export(index_exports, {
187
197
  breadcrumbLinkClasses: () => breadcrumbLinkClasses,
188
198
  breadcrumbSeparatorBaseClasses: () => breadcrumbSeparatorBaseClasses,
189
199
  buildActivityGroups: () => buildActivityGroups,
200
+ buildChartLegendItems: () => buildChartLegendItems,
190
201
  buildCommentTree: () => buildCommentTree,
191
202
  buildNotificationGroups: () => buildNotificationGroups,
203
+ buildTriggerHandlerMap: () => buildTriggerHandlerMap,
192
204
  buttonBaseClasses: () => buttonBaseClasses,
193
205
  buttonDisabledClasses: () => buttonDisabledClasses,
194
206
  buttonSizeClasses: () => buttonSizeClasses,
@@ -200,7 +212,6 @@ __export(index_exports, {
200
212
  captureActiveElement: () => captureActiveElement,
201
213
  cardActionsClasses: () => cardActionsClasses,
202
214
  cardBaseClasses: () => cardBaseClasses,
203
- cardBodyClasses: () => cardBodyClasses,
204
215
  cardCoverClasses: () => cardCoverClasses,
205
216
  cardCoverWrapperClasses: () => cardCoverWrapperClasses,
206
217
  cardFooterClasses: () => cardFooterClasses,
@@ -220,7 +231,6 @@ __export(index_exports, {
220
231
  carouselPrevArrowClasses: () => carouselPrevArrowClasses,
221
232
  carouselPrevArrowPath: () => carouselPrevArrowPath,
222
233
  carouselSlideBaseClasses: () => carouselSlideBaseClasses,
223
- carouselSlideFadeClasses: () => carouselSlideFadeClasses,
224
234
  carouselTrackFadeClasses: () => carouselTrackFadeClasses,
225
235
  carouselTrackScrollClasses: () => carouselTrackScrollClasses,
226
236
  chartAxisLabelClasses: () => chartAxisLabelClasses,
@@ -233,9 +243,11 @@ __export(index_exports, {
233
243
  checkSolidIcon20PathD: () => checkSolidIcon20PathD,
234
244
  checkboxLabelSizeClasses: () => checkboxLabelSizeClasses,
235
245
  checkboxSizeClasses: () => checkboxSizeClasses,
246
+ checkedSetsFromState: () => checkedSetsFromState,
236
247
  chevronDownSolidIcon20PathD: () => chevronDownSolidIcon20PathD,
237
248
  chevronLeftSolidIcon20PathD: () => chevronLeftSolidIcon20PathD,
238
249
  chevronRightSolidIcon20PathD: () => chevronRightSolidIcon20PathD,
250
+ clampBarWidth: () => clampBarWidth,
239
251
  clampPercentage: () => clampPercentage,
240
252
  clampSlideIndex: () => clampSlideIndex,
241
253
  classNames: () => classNames,
@@ -256,7 +268,6 @@ __export(index_exports, {
256
268
  coerceStyleValue: () => coerceStyleValue,
257
269
  collapseBaseClasses: () => collapseBaseClasses,
258
270
  collapseBorderlessClasses: () => collapseBorderlessClasses,
259
- collapseExtraClasses: () => collapseExtraClasses,
260
271
  collapseGhostClasses: () => collapseGhostClasses,
261
272
  collapseHeaderTextClasses: () => collapseHeaderTextClasses,
262
273
  collapseIconBaseClasses: () => collapseIconBaseClasses,
@@ -268,8 +279,9 @@ __export(index_exports, {
268
279
  collapsePanelHeaderActiveClasses: () => collapsePanelHeaderActiveClasses,
269
280
  collapsePanelHeaderBaseClasses: () => collapsePanelHeaderBaseClasses,
270
281
  collapsePanelHeaderDisabledClasses: () => collapsePanelHeaderDisabledClasses,
271
- collapseRightArrowIcon: () => collapseRightArrowIcon,
272
282
  computeFloatingPosition: () => computeFloatingPosition,
283
+ computePieHoverOffset: () => computePieHoverOffset,
284
+ computePieLabelLine: () => computePieLabelLine,
273
285
  containerBaseClasses: () => containerBaseClasses,
274
286
  containerCenteredClasses: () => containerCenteredClasses,
275
287
  containerMaxWidthClasses: () => containerMaxWidthClasses,
@@ -279,6 +291,7 @@ __export(index_exports, {
279
291
  createAriaId: () => createAriaId,
280
292
  createBandScale: () => createBandScale,
281
293
  createChartInteractionHandlers: () => createChartInteractionHandlers,
294
+ createFloatingIdFactory: () => createFloatingIdFactory,
282
295
  createLinePath: () => createLinePath,
283
296
  createLinearScale: () => createLinearScale,
284
297
  createPieArcPath: () => createPieArcPath,
@@ -298,18 +311,19 @@ __export(index_exports, {
298
311
  defaultAlertThemeColors: () => defaultAlertThemeColors,
299
312
  defaultBadgeThemeColors: () => defaultBadgeThemeColors,
300
313
  defaultChatMessageStatusInfo: () => defaultChatMessageStatusInfo,
301
- defaultExpandIcon: () => defaultExpandIcon,
302
- defaultIndeterminateIcon: () => defaultIndeterminateIcon,
303
314
  defaultLinkThemeColors: () => defaultLinkThemeColors,
304
315
  defaultMessageThemeColors: () => defaultMessageThemeColors,
305
316
  defaultNotificationThemeColors: () => defaultNotificationThemeColors,
306
317
  defaultProgressThemeColors: () => defaultProgressThemeColors,
318
+ defaultRadarTooltipFormatter: () => defaultRadarTooltipFormatter,
307
319
  defaultRadioColors: () => defaultRadioColors,
320
+ defaultSeriesXYTooltipFormatter: () => defaultSeriesXYTooltipFormatter,
308
321
  defaultSortFn: () => defaultSortFn,
309
322
  defaultTagThemeColors: () => defaultTagThemeColors,
310
323
  defaultThemeColors: () => defaultThemeColors,
311
324
  defaultTooltipFormatter: () => defaultTooltipFormatter,
312
325
  defaultTotalText: () => defaultTotalText,
326
+ defaultXYTooltipFormatter: () => defaultXYTooltipFormatter,
313
327
  descriptionsBaseClasses: () => descriptionsBaseClasses,
314
328
  descriptionsCellSizeClasses: () => descriptionsCellSizeClasses,
315
329
  descriptionsContentBorderedClasses: () => descriptionsContentBorderedClasses,
@@ -318,7 +332,6 @@ __export(index_exports, {
318
332
  descriptionsHeaderClasses: () => descriptionsHeaderClasses,
319
333
  descriptionsLabelBorderedClasses: () => descriptionsLabelBorderedClasses,
320
334
  descriptionsLabelClasses: () => descriptionsLabelClasses,
321
- descriptionsRowClasses: () => descriptionsRowClasses,
322
335
  descriptionsSizeClasses: () => descriptionsSizeClasses,
323
336
  descriptionsTableBorderedClasses: () => descriptionsTableBorderedClasses,
324
337
  descriptionsTableClasses: () => descriptionsTableClasses,
@@ -330,6 +343,7 @@ __export(index_exports, {
330
343
  descriptionsWrapperClasses: () => descriptionsWrapperClasses,
331
344
  dotSizeClasses: () => dotSizeClasses,
332
345
  dotsVariantConfig: () => dotsVariantConfig,
346
+ ensureBarMinHeight: () => ensureBarMinHeight,
333
347
  errorCircleSolidIcon20PathD: () => errorCircleSolidIcon20PathD,
334
348
  fileToUploadFile: () => fileToUploadFile,
335
349
  filterData: () => filterData,
@@ -337,9 +351,11 @@ __export(index_exports, {
337
351
  filterTreeNodes: () => filterTreeNodes,
338
352
  findActiveAnchor: () => findActiveAnchor,
339
353
  findNode: () => findNode,
340
- flattenTree: () => flattenTree,
354
+ flattenSelectOptions: () => flattenSelectOptions,
341
355
  focusElement: () => focusElement,
342
356
  focusFirst: () => focusFirst,
357
+ focusFirstChildItem: () => focusFirstChildItem,
358
+ focusMenuEdge: () => focusMenuEdge,
343
359
  focusRingClasses: () => focusRingClasses,
344
360
  focusRingInsetClasses: () => focusRingInsetClasses,
345
361
  formatActivityTime: () => formatActivityTime,
@@ -372,10 +388,13 @@ __export(index_exports, {
372
388
  getAnchorLinkListClasses: () => getAnchorLinkListClasses,
373
389
  getAnchorTargetElement: () => getAnchorTargetElement,
374
390
  getAnchorWrapperClasses: () => getAnchorWrapperClasses,
391
+ getAreaGradientPrefix: () => getAreaGradientPrefix,
375
392
  getArrowStyles: () => getArrowStyles,
376
393
  getAutoExpandKeys: () => getAutoExpandKeys,
377
394
  getBadgeVariantClasses: () => getBadgeVariantClasses,
395
+ getBarGradientPrefix: () => getBarGradientPrefix,
378
396
  getBarGrowAnimationStyle: () => getBarGrowAnimationStyle,
397
+ getBarValueLabelY: () => getBarValueLabelY,
379
398
  getBreadcrumbItemClasses: () => getBreadcrumbItemClasses,
380
399
  getBreadcrumbLinkClasses: () => getBreadcrumbLinkClasses,
381
400
  getBreadcrumbSeparatorClasses: () => getBreadcrumbSeparatorClasses,
@@ -398,6 +417,7 @@ __export(index_exports, {
398
417
  getCheckboxLabelClasses: () => getCheckboxLabelClasses,
399
418
  getCheckedKeysByStrategy: () => getCheckedKeysByStrategy,
400
419
  getCircleSize: () => getCircleSize,
420
+ getColMergedStyleVars: () => getColMergedStyleVars,
401
421
  getColOrderStyleVars: () => getColOrderStyleVars,
402
422
  getColStyleVars: () => getColStyleVars,
403
423
  getCollapseContainerClasses: () => getCollapseContainerClasses,
@@ -420,9 +440,8 @@ __export(index_exports, {
420
440
  getDescriptionsLabelClasses: () => getDescriptionsLabelClasses,
421
441
  getDescriptionsTableClasses: () => getDescriptionsTableClasses,
422
442
  getDescriptionsVerticalItemClasses: () => getDescriptionsVerticalItemClasses,
423
- getDividerLineStyleClasses: () => getDividerLineStyleClasses,
424
- getDividerOrientationClasses: () => getDividerOrientationClasses,
425
- getDividerSpacingClasses: () => getDividerSpacingClasses,
443
+ getDividerClasses: () => getDividerClasses,
444
+ getDividerStyle: () => getDividerStyle,
426
445
  getDragAreaClasses: () => getDragAreaClasses,
427
446
  getDrawerBodyClasses: () => getDrawerBodyClasses,
428
447
  getDrawerCloseButtonClasses: () => getDrawerCloseButtonClasses,
@@ -432,10 +451,10 @@ __export(index_exports, {
432
451
  getDrawerMaskClasses: () => getDrawerMaskClasses,
433
452
  getDrawerPanelClasses: () => getDrawerPanelClasses,
434
453
  getDrawerTitleClasses: () => getDrawerTitleClasses,
454
+ getDropdownChevronClasses: () => getDropdownChevronClasses,
435
455
  getDropdownContainerClasses: () => getDropdownContainerClasses,
436
456
  getDropdownItemClasses: () => getDropdownItemClasses,
437
457
  getDropdownMenuClasses: () => getDropdownMenuClasses,
438
- getDropdownMenuWrapperClasses: () => getDropdownMenuWrapperClasses,
439
458
  getDropdownTriggerClasses: () => getDropdownTriggerClasses,
440
459
  getElementOffsetTop: () => getElementOffsetTop,
441
460
  getErrorFields: () => getErrorFields,
@@ -447,12 +466,12 @@ __export(index_exports, {
447
466
  getFocusTrapNavigation: () => getFocusTrapNavigation,
448
467
  getFocusableElements: () => getFocusableElements,
449
468
  getFormItemAsteriskClasses: () => getFormItemAsteriskClasses,
450
- getFormItemAsteriskStyle: () => getFormItemAsteriskStyle,
451
469
  getFormItemClasses: () => getFormItemClasses,
452
470
  getFormItemContentClasses: () => getFormItemContentClasses,
453
471
  getFormItemErrorClasses: () => getFormItemErrorClasses,
454
472
  getFormItemFieldClasses: () => getFormItemFieldClasses,
455
473
  getFormItemLabelClasses: () => getFormItemLabelClasses,
474
+ getFormWizardLabels: () => getFormWizardLabels,
456
475
  getGridColumnClasses: () => getGridColumnClasses,
457
476
  getGutterStyles: () => getGutterStyles,
458
477
  getInitials: () => getInitials,
@@ -462,6 +481,7 @@ __export(index_exports, {
462
481
  getInputWrapperClasses: () => getInputWrapperClasses,
463
482
  getJustifyClasses: () => getJustifyClasses,
464
483
  getLeafKeys: () => getLeafKeys,
484
+ getLineGradientPrefix: () => getLineGradientPrefix,
465
485
  getLinkVariantClasses: () => getLinkVariantClasses,
466
486
  getListClasses: () => getListClasses,
467
487
  getListHeaderFooterClasses: () => getListHeaderFooterClasses,
@@ -473,6 +493,7 @@ __export(index_exports, {
473
493
  getLoadingDotsWrapperClasses: () => getLoadingDotsWrapperClasses,
474
494
  getLoadingOverlaySpinnerClasses: () => getLoadingOverlaySpinnerClasses,
475
495
  getLoadingTextClasses: () => getLoadingTextClasses,
496
+ getMenuButtons: () => getMenuButtons,
476
497
  getMenuClasses: () => getMenuClasses,
477
498
  getMenuItemClasses: () => getMenuItemClasses,
478
499
  getMenuItemIndent: () => getMenuItemIndent,
@@ -528,6 +549,7 @@ __export(index_exports, {
528
549
  getProgressVariantClasses: () => getProgressVariantClasses,
529
550
  getQuickJumperInputClasses: () => getQuickJumperInputClasses,
530
551
  getRadarAngles: () => getRadarAngles,
552
+ getRadarLabelAlign: () => getRadarLabelAlign,
531
553
  getRadarPoints: () => getRadarPoints,
532
554
  getRadioColorClasses: () => getRadioColorClasses,
533
555
  getRadioDotClasses: () => getRadioDotClasses,
@@ -535,6 +557,10 @@ __export(index_exports, {
535
557
  getRadioLabelClasses: () => getRadioLabelClasses,
536
558
  getRadioVisualClasses: () => getRadioVisualClasses,
537
559
  getRowKey: () => getRowKey,
560
+ getScatterGradientPrefix: () => getScatterGradientPrefix,
561
+ getScatterHoverShadow: () => getScatterHoverShadow,
562
+ getScatterHoverSize: () => getScatterHoverSize,
563
+ getScatterPointPath: () => getScatterPointPath,
538
564
  getScrollTop: () => getScrollTop,
539
565
  getScrollTransform: () => getScrollTransform,
540
566
  getSecureRel: () => getSecureRel,
@@ -551,15 +577,15 @@ __export(index_exports, {
551
577
  getSimplePaginationPageIndicatorClasses: () => getSimplePaginationPageIndicatorClasses,
552
578
  getSimplePaginationSelectClasses: () => getSimplePaginationSelectClasses,
553
579
  getSimplePaginationTotalClasses: () => getSimplePaginationTotalClasses,
580
+ getSizeTextClasses: () => getSizeTextClasses,
554
581
  getSkeletonClasses: () => getSkeletonClasses,
555
582
  getSkeletonDimensions: () => getSkeletonDimensions,
556
583
  getSliderThumbClasses: () => getSliderThumbClasses,
557
584
  getSliderTooltipClasses: () => getSliderTooltipClasses,
558
585
  getSliderTrackClasses: () => getSliderTrackClasses,
559
586
  getSortIconClasses: () => getSortIconClasses,
560
- getSpaceAlignClass: () => getSpaceAlignClass,
561
- getSpaceDirectionClass: () => getSpaceDirectionClass,
562
- getSpaceGapSize: () => getSpaceGapSize,
587
+ getSpaceClasses: () => getSpaceClasses,
588
+ getSpaceStyle: () => getSpaceStyle,
563
589
  getSpanClasses: () => getSpanClasses,
564
590
  getSpinnerSVG: () => getSpinnerSVG,
565
591
  getStatusVariant: () => getStatusVariant,
@@ -586,6 +612,7 @@ __export(index_exports, {
586
612
  getTableWrapperClasses: () => getTableWrapperClasses,
587
613
  getTabsContainerClasses: () => getTabsContainerClasses,
588
614
  getTagVariantClasses: () => getTagVariantClasses,
615
+ getTextClasses: () => getTextClasses,
589
616
  getThemeColor: () => getThemeColor,
590
617
  getTimePeriodLabels: () => getTimePeriodLabels,
591
618
  getTimePickerIconButtonClasses: () => getTimePickerIconButtonClasses,
@@ -625,7 +652,12 @@ __export(index_exports, {
625
652
  icon24ViewBox: () => icon24ViewBox,
626
653
  iconSizeClasses: () => iconSizeClasses,
627
654
  iconSvgBaseClasses: () => iconSvgBaseClasses,
655
+ iconSvgDefaultStrokeLinecap: () => iconSvgDefaultStrokeLinecap,
656
+ iconSvgDefaultStrokeLinejoin: () => iconSvgDefaultStrokeLinejoin,
657
+ iconSvgDefaultStrokeWidth: () => iconSvgDefaultStrokeWidth,
628
658
  iconWrapperClasses: () => iconWrapperClasses,
659
+ initRovingTabIndex: () => initRovingTabIndex,
660
+ injectDropdownStyles: () => injectDropdownStyles,
629
661
  injectLoadingAnimationStyles: () => injectLoadingAnimationStyles,
630
662
  injectShakeStyle: () => injectShakeStyle,
631
663
  injectSvgAnimationStyles: () => injectSvgAnimationStyles,
@@ -656,6 +688,7 @@ __export(index_exports, {
656
688
  layoutHeaderClasses: () => layoutHeaderClasses,
657
689
  layoutRootClasses: () => layoutRootClasses,
658
690
  layoutSidebarClasses: () => layoutSidebarClasses,
691
+ linePointTransitionClasses: () => linePointTransitionClasses,
659
692
  linkBaseClasses: () => linkBaseClasses,
660
693
  linkDisabledClasses: () => linkDisabledClasses,
661
694
  linkSizeClasses: () => linkSizeClasses,
@@ -677,7 +710,6 @@ __export(index_exports, {
677
710
  listItemSizeClasses: () => listItemSizeClasses,
678
711
  listItemTitleClasses: () => listItemTitleClasses,
679
712
  listLoadingOverlayClasses: () => listLoadingOverlayClasses,
680
- listPaginationContainerClasses: () => listPaginationContainerClasses,
681
713
  listSizeClasses: () => listSizeClasses,
682
714
  listWrapperClasses: () => listWrapperClasses,
683
715
  loadingBarBaseClasses: () => loadingBarBaseClasses,
@@ -715,12 +747,8 @@ __export(index_exports, {
715
747
  messageCloseIconPath: () => messageCloseIconPath,
716
748
  messageContainerBaseClasses: () => messageContainerBaseClasses,
717
749
  messageContentClasses: () => messageContentClasses,
718
- messageEnterActiveClasses: () => messageEnterActiveClasses,
719
- messageEnterClasses: () => messageEnterClasses,
720
750
  messageIconClasses: () => messageIconClasses,
721
751
  messageIconPaths: () => messageIconPaths,
722
- messageLeaveActiveClasses: () => messageLeaveActiveClasses,
723
- messageLeaveClasses: () => messageLeaveClasses,
724
752
  messageLoadingSpinnerClasses: () => messageLoadingSpinnerClasses,
725
753
  messagePositionClasses: () => messagePositionClasses,
726
754
  modalBodyClasses: () => modalBodyClasses,
@@ -732,9 +760,11 @@ __export(index_exports, {
732
760
  modalSizeClasses: () => modalSizeClasses,
733
761
  modalTitleClasses: () => modalTitleClasses,
734
762
  modalWrapperClasses: () => modalWrapperClasses,
763
+ moveFocusInMenu: () => moveFocusInMenu,
735
764
  normalizeActiveKeys: () => normalizeActiveKeys,
736
765
  normalizeChartPadding: () => normalizeChartPadding,
737
766
  normalizeDate: () => normalizeDate,
767
+ normalizeStringOption: () => normalizeStringOption,
738
768
  normalizeSvgAttrs: () => normalizeSvgAttrs,
739
769
  notificationBaseClasses: () => notificationBaseClasses,
740
770
  notificationCloseButtonClasses: () => notificationCloseButtonClasses,
@@ -749,6 +779,7 @@ __export(index_exports, {
749
779
  notificationTitleClasses: () => notificationTitleClasses,
750
780
  paginateData: () => paginateData,
751
781
  parseDate: () => parseDate,
782
+ parseInputValue: () => parseInputValue,
752
783
  parseTime: () => parseTime,
753
784
  parseWidthToPx: () => parseWidthToPx,
754
785
  polarToCartesian: () => polarToCartesian,
@@ -784,8 +815,17 @@ __export(index_exports, {
784
815
  radioSizeClasses: () => radioSizeClasses,
785
816
  radioVisualBaseClasses: () => radioVisualBaseClasses,
786
817
  replaceKeys: () => replaceKeys,
818
+ resetAreaGradientCounter: () => resetAreaGradientCounter,
819
+ resetBarGradientCounter: () => resetBarGradientCounter,
820
+ resetLineGradientCounter: () => resetLineGradientCounter,
821
+ resetScatterGradientCounter: () => resetScatterGradientCounter,
822
+ resolveChartPalette: () => resolveChartPalette,
823
+ resolveChartTooltipContent: () => resolveChartTooltipContent,
787
824
  resolveLocaleText: () => resolveLocaleText,
825
+ resolveMultiSeriesTooltipContent: () => resolveMultiSeriesTooltipContent,
826
+ resolveSeriesData: () => resolveSeriesData,
788
827
  restoreFocus: () => restoreFocus,
828
+ scatterPointTransitionClasses: () => scatterPointTransitionClasses,
789
829
  scrollToAnchor: () => scrollToAnchor,
790
830
  scrollToTop: () => scrollToTop,
791
831
  selectBaseClasses: () => selectBaseClasses,
@@ -825,12 +865,7 @@ __export(index_exports, {
825
865
  statusInfoIconPath: () => statusInfoIconPath,
826
866
  statusSuccessIconPath: () => statusSuccessIconPath,
827
867
  statusWarningIconPath: () => statusWarningIconPath,
828
- stepFinishIconPathD: () => stepFinishIconPathD,
829
- stepFinishIconPathStrokeLinecap: () => stepFinishIconPathStrokeLinecap,
830
- stepFinishIconPathStrokeLinejoin: () => stepFinishIconPathStrokeLinejoin,
831
- stepFinishIconPathStrokeWidth: () => stepFinishIconPathStrokeWidth,
832
- stepFinishIconSvgClasses: () => stepFinishIconSvgClasses,
833
- stepFinishIconViewBox: () => stepFinishIconViewBox,
868
+ stepFinishChar: () => stepFinishChar,
834
869
  submenuContentHorizontalClasses: () => submenuContentHorizontalClasses,
835
870
  submenuContentInlineClasses: () => submenuContentInlineClasses,
836
871
  submenuContentPopupClasses: () => submenuContentPopupClasses,
@@ -857,6 +892,7 @@ __export(index_exports, {
857
892
  tabItemLineClasses: () => tabItemLineClasses,
858
893
  tabItemSizeClasses: () => tabItemSizeClasses,
859
894
  tabNavBaseClasses: () => tabNavBaseClasses,
895
+ tabNavLineBorderClasses: () => tabNavLineBorderClasses,
860
896
  tabNavListBaseClasses: () => tabNavListBaseClasses,
861
897
  tabNavListCenteredClasses: () => tabNavListCenteredClasses,
862
898
  tabNavListPositionClasses: () => tabNavListPositionClasses,
@@ -1247,7 +1283,7 @@ function sliderGetKeyboardValue(key, currentValue, min, max, step = 1, largeStep
1247
1283
  // src/utils/back-top-utils.ts
1248
1284
  function getScrollTop(target) {
1249
1285
  if (target === window) {
1250
- return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
1286
+ return window.scrollY || 0;
1251
1287
  }
1252
1288
  return target.scrollTop;
1253
1289
  }
@@ -1280,13 +1316,21 @@ function scrollToTop(target, duration, callback) {
1280
1316
  };
1281
1317
  requestAnimationFrame(animateScroll);
1282
1318
  }
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}`;
1319
+ var baseClasses = "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";
1320
+ var backTopButtonClasses = `fixed bottom-8 right-8 ${baseClasses}`;
1321
+ var backTopContainerClasses = `sticky bottom-4 ml-auto mr-4 ${baseClasses}`;
1286
1322
  var backTopHiddenClasses = "opacity-0 pointer-events-none translate-y-4";
1287
1323
  var backTopVisibleClasses = "opacity-100 translate-y-0";
1288
1324
  var backTopIconPath = "M12 19V5M12 5l-7 7M12 5l7 7";
1289
1325
 
1326
+ // src/utils/imperative-api.ts
1327
+ function normalizeStringOption(options, key) {
1328
+ if (typeof options === "string") {
1329
+ return { [key]: options };
1330
+ }
1331
+ return options;
1332
+ }
1333
+
1290
1334
  // src/utils/common-icons.ts
1291
1335
  var closeIconViewBox = "0 0 24 24";
1292
1336
  var closeIconPathD = "M6 18L18 6M6 6l12 12";
@@ -1506,7 +1550,8 @@ function mergeTigerLocale(base, override) {
1506
1550
  modal: { ...base?.modal, ...override?.modal },
1507
1551
  drawer: { ...base?.drawer, ...override?.drawer },
1508
1552
  upload: { ...base?.upload, ...override?.upload },
1509
- pagination: { ...base?.pagination, ...override?.pagination }
1553
+ pagination: { ...base?.pagination, ...override?.pagination },
1554
+ formWizard: { ...base?.formWizard, ...override?.formWizard }
1510
1555
  };
1511
1556
  }
1512
1557
  var DEFAULT_PAGINATION_LABELS = {
@@ -1527,6 +1572,23 @@ var ZH_CN_PAGINATION_LABELS = {
1527
1572
  nextPageAriaLabel: "\u4E0B\u4E00\u9875",
1528
1573
  pageAriaLabel: "\u7B2C {page} \u9875"
1529
1574
  };
1575
+ var DEFAULT_FORM_WIZARD_LABELS = {
1576
+ prevText: "Previous",
1577
+ nextText: "Next",
1578
+ finishText: "Finish"
1579
+ };
1580
+ var ZH_CN_FORM_WIZARD_LABELS = {
1581
+ prevText: "\u4E0A\u4E00\u6B65",
1582
+ nextText: "\u4E0B\u4E00\u6B65",
1583
+ finishText: "\u5B8C\u6210"
1584
+ };
1585
+ function getFormWizardLabels(locale) {
1586
+ return {
1587
+ prevText: locale?.formWizard?.prevText ?? DEFAULT_FORM_WIZARD_LABELS.prevText,
1588
+ nextText: locale?.formWizard?.nextText ?? DEFAULT_FORM_WIZARD_LABELS.nextText,
1589
+ finishText: locale?.formWizard?.finishText ?? DEFAULT_FORM_WIZARD_LABELS.finishText
1590
+ };
1591
+ }
1530
1592
  function getPaginationLabels(locale) {
1531
1593
  return {
1532
1594
  totalText: locale?.pagination?.totalText ?? DEFAULT_PAGINATION_LABELS.totalText,
@@ -1609,24 +1671,18 @@ function pluralizeEn(value, singular) {
1609
1671
  }
1610
1672
  function getTimePickerOptionAriaLabel(value, unit, locale, labelOverrides) {
1611
1673
  const labels = getTimePickerLabels(locale, labelOverrides);
1612
- if (isZhLocale(locale)) {
1613
- const suffix = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1614
- return `${value}${suffix}`;
1615
- }
1674
+ const unitLabel = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1675
+ if (isZhLocale(locale)) return `${value}${unitLabel}`;
1616
1676
  const lc = (locale ?? "").toLowerCase();
1617
- const useEnglishPlural = lc.length === 0 ? labelOverrides == null : lc.startsWith("en");
1618
- if (useEnglishPlural) {
1619
- if (unit === "hour") return `${value} ${pluralizeEn(value, "hour")}`;
1620
- if (unit === "minute") return `${value} ${pluralizeEn(value, "minute")}`;
1621
- return `${value} ${pluralizeEn(value, "second")}`;
1677
+ if (lc.startsWith("en") || !lc && !labelOverrides) {
1678
+ return `${value} ${pluralizeEn(value, unit)}`;
1622
1679
  }
1623
- const unitLabel = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1624
1680
  return `${value} ${unitLabel}`;
1625
1681
  }
1626
1682
  var timePickerBaseClasses = "relative inline-block w-full max-w-xs";
1627
1683
  var timePickerInputWrapperClasses = "relative flex items-center";
1628
1684
  function getTimePickerInputClasses(size, disabled) {
1629
- const baseClasses = [
1685
+ const baseClasses2 = [
1630
1686
  "w-full rounded-md border border-gray-300",
1631
1687
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:border-transparent",
1632
1688
  "transition-colors duration-200",
@@ -1639,10 +1695,10 @@ function getTimePickerInputClasses(size, disabled) {
1639
1695
  lg: "px-4 py-3 text-lg"
1640
1696
  };
1641
1697
  const stateClasses = disabled ? "bg-gray-100 text-gray-400 cursor-not-allowed" : "bg-white text-gray-900 cursor-pointer hover:border-gray-400";
1642
- return [...baseClasses, sizeClasses[size], stateClasses].join(" ");
1698
+ return [...baseClasses2, sizeClasses[size], stateClasses].join(" ");
1643
1699
  }
1644
1700
  function getTimePickerIconButtonClasses(size) {
1645
- const baseClasses = [
1701
+ const baseClasses2 = [
1646
1702
  "absolute right-1 flex items-center justify-center",
1647
1703
  "text-gray-400 hover:text-gray-600",
1648
1704
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
@@ -1654,7 +1710,7 @@ function getTimePickerIconButtonClasses(size) {
1654
1710
  md: "w-8 h-8",
1655
1711
  lg: "w-10 h-10"
1656
1712
  };
1657
- return [...baseClasses, sizeClasses[size]].join(" ");
1713
+ return [...baseClasses2, sizeClasses[size]].join(" ");
1658
1714
  }
1659
1715
  var timePickerClearButtonClasses = [
1660
1716
  "absolute right-10 flex items-center justify-center",
@@ -1672,18 +1728,18 @@ var timePickerRangeHeaderClasses = [
1672
1728
  "flex items-center gap-2"
1673
1729
  ].join(" ");
1674
1730
  function getTimePickerRangeTabButtonClasses(isActive) {
1675
- const baseClasses = [
1731
+ const baseClasses2 = [
1676
1732
  "px-3 py-1 text-xs font-medium rounded",
1677
1733
  "border border-gray-300",
1678
1734
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
1679
1735
  "transition-colors duration-150"
1680
1736
  ];
1681
1737
  if (isActive) {
1682
- return [...baseClasses, "bg-[var(--tiger-primary,#2563eb)] text-white border-transparent"].join(
1738
+ return [...baseClasses2, "bg-[var(--tiger-primary,#2563eb)] text-white border-transparent"].join(
1683
1739
  " "
1684
1740
  );
1685
1741
  }
1686
- return [...baseClasses, "bg-white hover:bg-gray-50 text-gray-700"].join(" ");
1742
+ return [...baseClasses2, "bg-white hover:bg-gray-50 text-gray-700"].join(" ");
1687
1743
  }
1688
1744
  var timePickerColumnClasses = "flex flex-col overflow-hidden shrink-0 w-16";
1689
1745
  var timePickerColumnHeaderClasses = [
@@ -1694,27 +1750,27 @@ var timePickerColumnListClasses = [
1694
1750
  "overflow-y-auto max-h-48 scrollbar-thin scrollbar-thumb-gray-300 scrollbar-track-gray-100"
1695
1751
  ].join(" ");
1696
1752
  function getTimePickerItemClasses(isSelected, isDisabled) {
1697
- const baseClasses = [
1753
+ const baseClasses2 = [
1698
1754
  "w-full px-3 py-1.5 text-sm text-center",
1699
1755
  "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
1700
1756
  "transition-colors duration-150",
1701
1757
  "cursor-pointer"
1702
1758
  ];
1703
1759
  if (isDisabled) {
1704
- return [...baseClasses, "text-gray-300 cursor-not-allowed hover:bg-transparent"].join(" ");
1760
+ return [...baseClasses2, "text-gray-300 cursor-not-allowed hover:bg-transparent"].join(" ");
1705
1761
  }
1706
1762
  if (isSelected) {
1707
1763
  return [
1708
- ...baseClasses,
1764
+ ...baseClasses2,
1709
1765
  "bg-[var(--tiger-primary,#2563eb)] text-white",
1710
1766
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
1711
1767
  "font-medium"
1712
1768
  ].join(" ");
1713
1769
  }
1714
- return [...baseClasses, "text-gray-700"].join(" ");
1770
+ return [...baseClasses2, "text-gray-700"].join(" ");
1715
1771
  }
1716
1772
  function getTimePickerPeriodButtonClasses(isSelected) {
1717
- const baseClasses = [
1773
+ const baseClasses2 = [
1718
1774
  "w-full px-3 py-2 text-sm font-medium text-center",
1719
1775
  "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
1720
1776
  "transition-colors duration-150",
@@ -1722,12 +1778,12 @@ function getTimePickerPeriodButtonClasses(isSelected) {
1722
1778
  ];
1723
1779
  if (isSelected) {
1724
1780
  return [
1725
- ...baseClasses,
1781
+ ...baseClasses2,
1726
1782
  "bg-[var(--tiger-primary,#2563eb)] text-white",
1727
1783
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]"
1728
1784
  ].join(" ");
1729
1785
  }
1730
- return [...baseClasses, "text-gray-700"].join(" ");
1786
+ return [...baseClasses2, "text-gray-700"].join(" ");
1731
1787
  }
1732
1788
  var timePickerFooterClasses = [
1733
1789
  "px-3 py-2 border-t border-gray-200",
@@ -1865,35 +1921,20 @@ var INPUT_SIZE_CLASSES = {
1865
1921
  md: "py-2 text-base",
1866
1922
  lg: "py-3 text-lg"
1867
1923
  };
1868
- var PADDING_LEFT = {
1869
- sm: "pl-2",
1870
- md: "pl-3",
1871
- lg: "pl-4"
1872
- };
1873
- var PADDING_RIGHT = {
1874
- sm: "pr-2",
1875
- md: "pr-3",
1876
- lg: "pr-4"
1924
+ var INPUT_PADDING = {
1925
+ sm: { left: "pl-2", right: "pr-2", prefixLeft: "pl-8", suffixRight: "pr-8" },
1926
+ md: { left: "pl-3", right: "pr-3", prefixLeft: "pl-10", suffixRight: "pr-10" },
1927
+ lg: { left: "pl-4", right: "pr-4", prefixLeft: "pl-12", suffixRight: "pr-12" }
1877
1928
  };
1878
- var PREFIX_PADDING = {
1879
- sm: "pl-8",
1880
- md: "pl-10",
1881
- lg: "pl-12"
1882
- };
1883
- var SUFFIX_PADDING = {
1884
- sm: "pr-8",
1885
- md: "pr-10",
1886
- lg: "pr-12"
1887
- };
1888
- function getInputClasses(options = "md") {
1889
- const opts = typeof options === "string" ? { size: options, status: "default" } : { size: "md", status: "default", ...options };
1890
- const { size = "md", status = "default", hasPrefix, hasSuffix } = opts;
1929
+ function getInputClasses(options = {}) {
1930
+ const { size = "md", status = "default", hasPrefix, hasSuffix } = options;
1931
+ const pad = INPUT_PADDING[size];
1891
1932
  return classNames(
1892
1933
  ...BASE_INPUT_CLASSES,
1893
1934
  INPUT_SIZE_CLASSES[size],
1894
1935
  STATUS_CLASSES[status],
1895
- hasPrefix ? PREFIX_PADDING[size] : PADDING_LEFT[size],
1896
- hasSuffix ? SUFFIX_PADDING[size] : PADDING_RIGHT[size]
1936
+ hasPrefix ? pad.prefixLeft : pad.left,
1937
+ hasSuffix ? pad.suffixRight : pad.right
1897
1938
  );
1898
1939
  }
1899
1940
  function getInputWrapperClasses() {
@@ -1910,17 +1951,18 @@ function getInputAffixClasses(position, size = "md") {
1910
1951
  return classNames(base, posClass, widthClass);
1911
1952
  }
1912
1953
  function getInputErrorClasses(size = "md") {
1913
- const padding = {
1914
- sm: "pr-2",
1915
- md: "pr-3",
1916
- lg: "pr-4"
1917
- }[size];
1918
1954
  return classNames(
1919
1955
  "absolute inset-y-0 right-0 flex items-center pointer-events-none",
1920
- padding,
1956
+ INPUT_PADDING[size].right,
1921
1957
  "text-red-500 text-sm"
1922
1958
  );
1923
1959
  }
1960
+ function parseInputValue(target, type) {
1961
+ if (type === "number") {
1962
+ return Number.isNaN(target.valueAsNumber) ? target.value : target.valueAsNumber;
1963
+ }
1964
+ return target.value;
1965
+ }
1924
1966
 
1925
1967
  // src/utils/form-item-styles.ts
1926
1968
  var FORM_ITEM_SPACING = {
@@ -1943,6 +1985,11 @@ var ERROR_TEXT_SIZE = {
1943
1985
  md: "text-xs",
1944
1986
  lg: "text-sm"
1945
1987
  };
1988
+ var ERROR_MIN_HEIGHT = {
1989
+ sm: "min-h-[1rem]",
1990
+ md: "min-h-[1.25rem]",
1991
+ lg: "min-h-[1.5rem]"
1992
+ };
1946
1993
  function getFormItemClasses(options = {}) {
1947
1994
  const { size = "md", labelPosition = "right", hasError = false, disabled = false } = options;
1948
1995
  const layoutClasses = labelPosition === "top" ? "flex flex-col gap-2" : "flex items-start gap-4";
@@ -1959,7 +2006,7 @@ function getFormItemClasses(options = {}) {
1959
2006
  }
1960
2007
  function getFormItemLabelClasses(options = {}) {
1961
2008
  const { size = "md", labelPosition = "right", labelAlign = "right", isRequired = false } = options;
1962
- const alignClass = labelAlign === "right" ? "text-right" : labelAlign === "left" ? "text-left" : "text-left";
2009
+ const alignClass = labelAlign === "right" ? "text-right" : "text-left";
1963
2010
  const positionClasses = labelPosition === "top" ? "w-full" : "shrink-0";
1964
2011
  const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size];
1965
2012
  return classNames(
@@ -1991,7 +2038,11 @@ function getFormItemErrorClasses(size = "md") {
1991
2038
  "tiger-form-item__error",
1992
2039
  "mt-1",
1993
2040
  ERROR_TEXT_SIZE[size],
1994
- "text-[var(--tiger-error,#ef4444)]"
2041
+ ERROR_MIN_HEIGHT[size],
2042
+ "text-[var(--tiger-error,#ef4444)]",
2043
+ "transition-opacity",
2044
+ "duration-150",
2045
+ "opacity-0"
1995
2046
  );
1996
2047
  }
1997
2048
  function getFormItemAsteriskClasses() {
@@ -1999,15 +2050,9 @@ function getFormItemAsteriskClasses() {
1999
2050
  "tiger-form-item__asterisk",
2000
2051
  "mr-1",
2001
2052
  "font-semibold",
2002
- "text-red-500",
2003
2053
  "text-[var(--tiger-error,#ef4444)]"
2004
2054
  );
2005
2055
  }
2006
- function getFormItemAsteriskStyle() {
2007
- return {
2008
- color: "var(--tiger-error,#ef4444)"
2009
- };
2010
- }
2011
2056
 
2012
2057
  // src/utils/select-utils.ts
2013
2058
  var selectBaseClasses = "relative inline-block w-full";
@@ -2018,7 +2063,6 @@ var SELECT_TRIGGER_BASE_CLASSES = [
2018
2063
  "justify-between",
2019
2064
  "gap-2",
2020
2065
  "px-3",
2021
- "py-2",
2022
2066
  "bg-[var(--tiger-select-trigger-bg,var(--tiger-surface,#ffffff))]",
2023
2067
  "border",
2024
2068
  "border-[var(--tiger-select-trigger-border,var(--tiger-border,#d1d5db))]",
@@ -2074,6 +2118,17 @@ function getSelectOptionClasses(isSelected, isDisabled, size) {
2074
2118
  function isOptionGroup(option) {
2075
2119
  return !!option && typeof option === "object" && "options" in option && Array.isArray(option.options);
2076
2120
  }
2121
+ function flattenSelectOptions(options) {
2122
+ const all = [];
2123
+ for (const item of options) {
2124
+ if (isOptionGroup(item)) {
2125
+ all.push(...item.options);
2126
+ } else {
2127
+ all.push(item);
2128
+ }
2129
+ }
2130
+ return all;
2131
+ }
2077
2132
  function filterOptions(options, query) {
2078
2133
  if (!query) {
2079
2134
  return options;
@@ -2365,20 +2420,9 @@ var getRadioLabelClasses = ({ size, disabled, colors }) => classNames(
2365
2420
 
2366
2421
  // src/utils/radio-group-utils.ts
2367
2422
  var radioGroupDefaultClasses = "space-y-2";
2368
- var getRadioGroupClasses = ({
2369
- className,
2370
- hasCustomClass
2371
- } = {}) => {
2372
- const effectiveHasCustomClass = hasCustomClass ?? !!className;
2373
- return classNames(className, !effectiveHasCustomClass && radioGroupDefaultClasses);
2374
- };
2423
+ var getRadioGroupClasses = ({ className } = {}) => classNames(className, !className && radioGroupDefaultClasses);
2375
2424
 
2376
2425
  // src/utils/date-utils.ts
2377
- function isValidDate(value) {
2378
- if (!value) return false;
2379
- const date = value instanceof Date ? value : new Date(value);
2380
- return !isNaN(date.getTime());
2381
- }
2382
2426
  function parseDate(value) {
2383
2427
  if (!value) return null;
2384
2428
  if (value instanceof Date) {
@@ -2388,7 +2432,7 @@ function parseDate(value) {
2388
2432
  return isNaN(parsed.getTime()) ? null : parsed;
2389
2433
  }
2390
2434
  function formatDate(date, format = "yyyy-MM-dd") {
2391
- if (!date || !isValidDate(date)) return "";
2435
+ if (!date || isNaN(date.getTime())) return "";
2392
2436
  const year = date.getFullYear();
2393
2437
  const month = String(date.getMonth() + 1).padStart(2, "0");
2394
2438
  const day = String(date.getDate()).padStart(2, "0");
@@ -2415,15 +2459,13 @@ function normalizeDate(date) {
2415
2459
  return normalized;
2416
2460
  }
2417
2461
  function isDateInRange(date, minDate, maxDate) {
2418
- if (!isValidDate(date)) return false;
2462
+ if (isNaN(date.getTime())) return false;
2419
2463
  const normalizedDate = normalizeDate(date);
2420
- if (minDate && isValidDate(minDate)) {
2421
- const normalizedMin = normalizeDate(minDate);
2422
- if (normalizedDate < normalizedMin) return false;
2464
+ if (minDate && !isNaN(minDate.getTime())) {
2465
+ if (normalizedDate < normalizeDate(minDate)) return false;
2423
2466
  }
2424
- if (maxDate && isValidDate(maxDate)) {
2425
- const normalizedMax = normalizeDate(maxDate);
2426
- if (normalizedDate > normalizedMax) return false;
2467
+ if (maxDate && !isNaN(maxDate.getTime())) {
2468
+ if (normalizedDate > normalizeDate(maxDate)) return false;
2427
2469
  }
2428
2470
  return true;
2429
2471
  }
@@ -2550,7 +2592,7 @@ function isToday(date) {
2550
2592
  var datePickerBaseClasses = "relative inline-block w-full";
2551
2593
  var datePickerInputWrapperClasses = "relative w-full";
2552
2594
  function getDatePickerInputClasses(size = "md", disabled = false) {
2553
- const baseClasses = [
2595
+ const baseClasses2 = [
2554
2596
  "w-full",
2555
2597
  "rounded-md",
2556
2598
  "border",
@@ -2572,10 +2614,10 @@ function getDatePickerInputClasses(size = "md", disabled = false) {
2572
2614
  lg: "px-4 py-3 text-lg"
2573
2615
  };
2574
2616
  const disabledClasses = disabled ? ["bg-gray-100", "cursor-not-allowed", "text-gray-500"] : ["cursor-pointer"];
2575
- return classNames(...baseClasses, sizeClasses[size], ...disabledClasses);
2617
+ return classNames(...baseClasses2, sizeClasses[size], ...disabledClasses);
2576
2618
  }
2577
2619
  function getDatePickerIconButtonClasses(size = "md") {
2578
- const baseClasses = [
2620
+ const baseClasses2 = [
2579
2621
  "absolute",
2580
2622
  "right-0",
2581
2623
  "top-0",
@@ -2592,7 +2634,7 @@ function getDatePickerIconButtonClasses(size = "md") {
2592
2634
  md: "px-3",
2593
2635
  lg: "px-4"
2594
2636
  };
2595
- return classNames(...baseClasses, sizeClasses[size]);
2637
+ return classNames(...baseClasses2, sizeClasses[size]);
2596
2638
  }
2597
2639
  var datePickerCalendarClasses = classNames(
2598
2640
  "absolute",
@@ -2633,33 +2675,22 @@ var datePickerDayNameClasses = classNames(
2633
2675
  "py-2"
2634
2676
  );
2635
2677
  function getDatePickerDayCellClasses(isCurrentMonth, isSelected, isToday2, isDisabled, isInRange = false, isRangeStart = false, isRangeEnd = false) {
2636
- const baseClasses = [
2637
- "w-10",
2638
- "h-10",
2639
- "flex",
2640
- "items-center",
2641
- "justify-center",
2642
- "rounded-md",
2643
- "text-sm",
2644
- "transition-colors"
2645
- ];
2646
- const interactionClasses = isDisabled ? ["cursor-not-allowed", "text-gray-300"] : ["cursor-pointer", "hover:bg-gray-100"];
2647
- const monthClasses = isCurrentMonth ? ["text-gray-900"] : ["text-gray-400"];
2648
- const stateClasses = [];
2649
- if (isInRange && !isDisabled && !isSelected) {
2650
- stateClasses.push("bg-[var(--tiger-outline-bg-hover,#eff6ff)]");
2678
+ const base = "w-10 h-10 flex items-center justify-center rounded-md text-sm transition-colors";
2679
+ if (isDisabled) {
2680
+ return classNames(base, "cursor-not-allowed text-gray-300");
2651
2681
  }
2652
2682
  if (isSelected || isRangeStart || isRangeEnd) {
2653
- stateClasses.push(
2654
- "bg-[var(--tiger-primary,#2563eb)]",
2655
- "text-white",
2656
- "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
2657
- "font-semibold"
2683
+ return classNames(
2684
+ base,
2685
+ "cursor-pointer",
2686
+ "bg-[var(--tiger-primary,#2563eb)] text-white",
2687
+ "hover:bg-[var(--tiger-primary-hover,#1d4ed8)] font-semibold"
2658
2688
  );
2659
- } else if (isToday2) {
2660
- stateClasses.push("border", "border-[var(--tiger-primary,#2563eb)]", "font-semibold");
2661
2689
  }
2662
- return classNames(...baseClasses, ...interactionClasses, ...monthClasses, ...stateClasses);
2690
+ const color = isCurrentMonth ? "text-gray-900" : "text-gray-400";
2691
+ const range = isInRange ? "bg-[var(--tiger-outline-bg-hover,#eff6ff)]" : "";
2692
+ const today = isToday2 ? "border border-[var(--tiger-primary,#2563eb)] font-semibold" : "";
2693
+ return classNames(base, "cursor-pointer hover:bg-gray-100", color, range, today);
2663
2694
  }
2664
2695
  var datePickerClearButtonClasses = classNames(
2665
2696
  "absolute",
@@ -2742,15 +2773,7 @@ function to24HourFormat(hours, period) {
2742
2773
  }
2743
2774
  }
2744
2775
  function formatTimeDisplay(hours, minutes, seconds = 0, format = "24", showSeconds = false) {
2745
- if (format === "12") {
2746
- const { hours: hours12, period } = to12HourFormat(hours);
2747
- const h = hours12.toString().padStart(2, "0");
2748
- const m = clampValue(minutes, 0, 59).toString().padStart(2, "0");
2749
- const s = clampValue(seconds, 0, 59).toString().padStart(2, "0");
2750
- const timeStr = showSeconds ? `${h}:${m}:${s}` : `${h}:${m}`;
2751
- return `${timeStr} ${period}`;
2752
- }
2753
- return formatTime(hours, minutes, seconds, showSeconds);
2776
+ return formatTimeDisplayWithLocale(hours, minutes, seconds, format, showSeconds);
2754
2777
  }
2755
2778
  function getTimePeriodLabels(locale) {
2756
2779
  if (!locale) return { am: "AM", pm: "PM" };
@@ -2814,21 +2837,19 @@ function generateHours(step = 1, format = "24") {
2814
2837
  }
2815
2838
  return hours;
2816
2839
  }
2817
- function generateMinutes(step = 1) {
2818
- const minutes = [];
2840
+ function generateTimeSlots(step, max) {
2819
2841
  const validStep = validateStep(step);
2820
- for (let i = 0; i < 60; i += validStep) {
2821
- minutes.push(i);
2842
+ const values = [];
2843
+ for (let i = 0; i < max; i += validStep) {
2844
+ values.push(i);
2822
2845
  }
2823
- return minutes;
2846
+ return values;
2847
+ }
2848
+ function generateMinutes(step = 1) {
2849
+ return generateTimeSlots(step, 60);
2824
2850
  }
2825
2851
  function generateSeconds(step = 1) {
2826
- const seconds = [];
2827
- const validStep = validateStep(step);
2828
- for (let i = 0; i < 60; i += validStep) {
2829
- seconds.push(i);
2830
- }
2831
- return seconds;
2852
+ return generateTimeSlots(step, 60);
2832
2853
  }
2833
2854
  function getCurrentTime(showSeconds = false) {
2834
2855
  const now = /* @__PURE__ */ new Date();
@@ -2968,8 +2989,8 @@ function formatFileSize(bytes) {
2968
2989
  const i = Math.floor(Math.log(bytes) / Math.log(k));
2969
2990
  return `${(bytes / Math.pow(k, i)).toFixed(2)} ${units[i]}`;
2970
2991
  }
2971
- function getUploadButtonClasses(drag, disabled) {
2972
- const baseClasses = [
2992
+ function getUploadButtonClasses(disabled) {
2993
+ const baseClasses2 = [
2973
2994
  "inline-flex",
2974
2995
  "items-center",
2975
2996
  "justify-center",
@@ -2994,10 +3015,10 @@ function getUploadButtonClasses(drag, disabled) {
2994
3015
  "focus:ring-[var(--tiger-primary,#2563eb)]",
2995
3016
  "cursor-pointer"
2996
3017
  ];
2997
- return classNames(...baseClasses, ...stateClasses);
3018
+ return classNames(...baseClasses2, ...stateClasses);
2998
3019
  }
2999
3020
  function getDragAreaClasses(isDragging, disabled) {
3000
- const baseClasses = [
3021
+ const baseClasses2 = [
3001
3022
  "flex",
3002
3023
  "flex-col",
3003
3024
  "items-center",
@@ -3036,7 +3057,7 @@ function getDragAreaClasses(isDragging, disabled) {
3036
3057
  ...focusClasses
3037
3058
  ];
3038
3059
  }
3039
- return classNames(...baseClasses, ...stateClasses);
3060
+ return classNames(...baseClasses2, ...stateClasses);
3040
3061
  }
3041
3062
  var FILE_LIST_STATUS_CLASSES = {
3042
3063
  ready: ["bg-gray-50", "hover:bg-gray-100"],
@@ -3051,7 +3072,7 @@ var PICTURE_CARD_STATUS_CLASSES = {
3051
3072
  error: ["border-red-400", "bg-red-50"]
3052
3073
  };
3053
3074
  function getFileListItemClasses(status) {
3054
- const baseClasses = [
3075
+ const baseClasses2 = [
3055
3076
  "flex",
3056
3077
  "items-center",
3057
3078
  "justify-between",
@@ -3062,10 +3083,10 @@ function getFileListItemClasses(status) {
3062
3083
  "duration-200"
3063
3084
  ];
3064
3085
  const stateClasses = status ? FILE_LIST_STATUS_CLASSES[status] : FILE_LIST_STATUS_CLASSES.ready;
3065
- return classNames(...baseClasses, ...stateClasses);
3086
+ return classNames(...baseClasses2, ...stateClasses);
3066
3087
  }
3067
3088
  function getPictureCardClasses(status) {
3068
- const baseClasses = [
3089
+ const baseClasses2 = [
3069
3090
  "relative",
3070
3091
  "inline-flex",
3071
3092
  "items-center",
@@ -3079,7 +3100,7 @@ function getPictureCardClasses(status) {
3079
3100
  "duration-200"
3080
3101
  ];
3081
3102
  const stateClasses = status ? PICTURE_CARD_STATUS_CLASSES[status] : PICTURE_CARD_STATUS_CLASSES.ready;
3082
- return classNames(...baseClasses, ...stateClasses);
3103
+ return classNames(...baseClasses2, ...stateClasses);
3083
3104
  }
3084
3105
 
3085
3106
  // src/utils/grid.ts
@@ -3182,6 +3203,14 @@ function getColOrderStyleVars(order) {
3182
3203
  setOrderVars(vars, order);
3183
3204
  return vars;
3184
3205
  }
3206
+ function getColMergedStyleVars(span, offset2, order, flex) {
3207
+ const vars = {};
3208
+ if (span !== void 0 && span !== null) setSpanVars(vars, span);
3209
+ if (offset2 !== void 0 && offset2 !== null) setOffsetVars(vars, offset2);
3210
+ if (order !== void 0 && order !== null) setOrderVars(vars, order);
3211
+ if (flex !== void 0) vars["--tiger-col-flex"] = String(flex).replace(/_/g, " ");
3212
+ return vars;
3213
+ }
3185
3214
  function getAlignClasses(align) {
3186
3215
  return ALIGN_MAP[align] || "items-start";
3187
3216
  }
@@ -3226,34 +3255,48 @@ function getFlexClasses(flex) {
3226
3255
  }
3227
3256
 
3228
3257
  // src/utils/divider.ts
3229
- var SPACING_MAP = {
3230
- none: { horizontal: "", vertical: "" },
3231
- xs: { horizontal: "my-1", vertical: "mx-1" },
3232
- sm: { horizontal: "my-2", vertical: "mx-2" },
3233
- md: { horizontal: "my-4", vertical: "mx-4" },
3234
- lg: { horizontal: "my-6", vertical: "mx-6" },
3235
- xl: { horizontal: "my-8", vertical: "mx-8" }
3258
+ var BORDER_COLOR = "border-[var(--tiger-border,#e5e7eb)]";
3259
+ var SPACING_H = {
3260
+ none: "",
3261
+ xs: "my-1",
3262
+ sm: "my-2",
3263
+ md: "my-4",
3264
+ lg: "my-6",
3265
+ xl: "my-8"
3266
+ };
3267
+ var SPACING_V = {
3268
+ none: "",
3269
+ xs: "mx-1",
3270
+ sm: "mx-2",
3271
+ md: "mx-4",
3272
+ lg: "mx-6",
3273
+ xl: "mx-8"
3236
3274
  };
3237
3275
  var LINE_STYLE_MAP = {
3238
3276
  solid: "border-solid",
3239
3277
  dashed: "border-dashed",
3240
3278
  dotted: "border-dotted"
3241
3279
  };
3242
- var DEFAULT_BORDER_COLOR_CLASS = "border-[var(--tiger-border,#e5e7eb)]";
3243
- function getDividerSpacingClasses(spacing, orientation) {
3244
- return SPACING_MAP[spacing][orientation];
3280
+ function getDividerClasses(orientation, lineStyle, spacing) {
3281
+ const isH = orientation === "horizontal";
3282
+ const base = isH ? `w-full border-t ${BORDER_COLOR}` : `h-full border-l ${BORDER_COLOR}`;
3283
+ const sp = (isH ? SPACING_H : SPACING_V)[spacing];
3284
+ return sp ? `${base} ${LINE_STYLE_MAP[lineStyle]} ${sp}` : `${base} ${LINE_STYLE_MAP[lineStyle]}`;
3245
3285
  }
3246
- function getDividerLineStyleClasses(lineStyle) {
3247
- return LINE_STYLE_MAP[lineStyle];
3248
- }
3249
- function getDividerOrientationClasses(orientation) {
3250
- return orientation === "horizontal" ? `w-full border-t ${DEFAULT_BORDER_COLOR_CLASS}` : `h-full border-l ${DEFAULT_BORDER_COLOR_CLASS}`;
3286
+ function getDividerStyle(orientation, color, thickness) {
3287
+ if (!color && !thickness) return void 0;
3288
+ const style = {};
3289
+ if (color) style.borderColor = color;
3290
+ if (thickness) {
3291
+ style[orientation === "horizontal" ? "borderTopWidth" : "borderLeftWidth"] = thickness;
3292
+ }
3293
+ return style;
3251
3294
  }
3252
3295
 
3253
3296
  // src/utils/layout-utils.ts
3254
3297
  var layoutRootClasses = "tiger-layout flex flex-col min-h-screen";
3255
3298
  var layoutHeaderClasses = "tiger-header bg-[var(--tiger-surface,#ffffff)] border-b border-[var(--tiger-border,#e5e7eb)]";
3256
- var layoutSidebarClasses = "tiger-sidebar bg-[var(--tiger-surface,#ffffff)] border-r border-[var(--tiger-border,#e5e7eb)] transition-all duration-300";
3299
+ var layoutSidebarClasses = "tiger-sidebar bg-[var(--tiger-surface,#ffffff)] border-r border-[var(--tiger-border,#e5e7eb)] overflow-hidden transition-all duration-300";
3257
3300
  var layoutContentClasses = "tiger-content flex-1 bg-[var(--tiger-layout-content-bg,#f9fafb)] p-6";
3258
3301
  var layoutFooterClasses = "tiger-footer bg-[var(--tiger-surface,#ffffff)] border-t border-[var(--tiger-border,#e5e7eb)] p-4";
3259
3302
 
@@ -3283,33 +3326,30 @@ var getContainerClasses = ({
3283
3326
  );
3284
3327
 
3285
3328
  // src/utils/space.ts
3286
- var SPACE_BASE_CLASS = "inline-flex";
3287
- function getSpaceGapSize(size = "md") {
3288
- if (typeof size === "number") {
3289
- return { style: `${size}px` };
3290
- }
3291
- const sizeMap = {
3292
- sm: "gap-2",
3293
- // 8px
3294
- md: "gap-4",
3295
- // 16px
3296
- lg: "gap-6"
3297
- // 24px
3298
- };
3299
- return { class: sizeMap[size] };
3300
- }
3301
- function getSpaceAlignClass(align = "start") {
3302
- const alignMap = {
3303
- start: "items-start",
3304
- end: "items-end",
3305
- center: "items-center",
3306
- baseline: "items-baseline",
3307
- stretch: "items-stretch"
3308
- };
3309
- return alignMap[align];
3329
+ var SIZE_CLASS = {
3330
+ sm: "gap-2",
3331
+ md: "gap-4",
3332
+ lg: "gap-6"
3333
+ };
3334
+ var ALIGN_CLASS = {
3335
+ start: "items-start",
3336
+ end: "items-end",
3337
+ center: "items-center",
3338
+ baseline: "items-baseline",
3339
+ stretch: "items-stretch"
3340
+ };
3341
+ function getSpaceClasses({ direction = "horizontal", size = "md", align = "start", wrap = false } = {}, className) {
3342
+ return classNames(
3343
+ "inline-flex",
3344
+ direction === "horizontal" ? "flex-row" : "flex-col",
3345
+ ALIGN_CLASS[align],
3346
+ typeof size === "string" ? SIZE_CLASS[size] : void 0,
3347
+ wrap && "flex-wrap",
3348
+ className
3349
+ );
3310
3350
  }
3311
- function getSpaceDirectionClass(direction = "horizontal") {
3312
- return direction === "horizontal" ? "flex-row" : "flex-col";
3351
+ function getSpaceStyle(size = "md") {
3352
+ return typeof size === "number" ? { gap: `${size}px` } : void 0;
3313
3353
  }
3314
3354
 
3315
3355
  // src/utils/table-utils.ts
@@ -3352,13 +3392,17 @@ function getFixedColumnOffsets(columns) {
3352
3392
  }
3353
3393
  function getTableWrapperClasses(bordered, maxHeight) {
3354
3394
  return classNames(
3395
+ "relative",
3355
3396
  tableContainerClasses,
3356
- bordered && "border border-gray-200 rounded-lg",
3397
+ bordered && "border border-[var(--tiger-border,#e5e7eb)] rounded-lg overflow-hidden",
3357
3398
  maxHeight && "overflow-y-auto"
3358
3399
  );
3359
3400
  }
3360
3401
  function getTableHeaderClasses(stickyHeader) {
3361
- return classNames("bg-gray-50 border-b border-gray-200", stickyHeader && "sticky top-0 z-10");
3402
+ return classNames(
3403
+ "bg-[var(--tiger-surface-muted,#f9fafb)] border-b border-[var(--tiger-border,#e5e7eb)]",
3404
+ stickyHeader && "sticky top-0 z-10"
3405
+ );
3362
3406
  }
3363
3407
  function getTableHeaderCellClasses(size, align, sortable, customClassName) {
3364
3408
  const paddingClasses = {
@@ -3372,18 +3416,18 @@ function getTableHeaderCellClasses(size, align, sortable, customClassName) {
3372
3416
  right: "text-right"
3373
3417
  };
3374
3418
  return classNames(
3375
- "font-medium text-gray-700 text-sm",
3419
+ "font-medium text-[var(--tiger-text-muted,#6b7280)] text-xs uppercase tracking-wider",
3376
3420
  paddingClasses[size],
3377
3421
  alignClasses[align],
3378
- sortable && "cursor-pointer select-none hover:bg-gray-100 transition-colors",
3422
+ sortable && "cursor-pointer select-none hover:bg-[var(--tiger-surface,#ffffff)]/50 transition-colors",
3379
3423
  customClassName
3380
3424
  );
3381
3425
  }
3382
3426
  function getTableRowClasses(hoverable, striped, isEven, customClassName) {
3383
3427
  return classNames(
3384
- "border-b border-gray-200 last:border-b-0",
3385
- hoverable && "hover:bg-gray-50 transition-colors",
3386
- striped && isEven && "bg-gray-50/50",
3428
+ "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0",
3429
+ hoverable && "hover:bg-[var(--tiger-surface-muted,#f9fafb)] transition-colors",
3430
+ striped && isEven && "bg-[var(--tiger-surface-muted,#f9fafb)]/50",
3387
3431
  customClassName
3388
3432
  );
3389
3433
  }
@@ -3399,7 +3443,7 @@ function getTableCellClasses(size, align, customClassName) {
3399
3443
  right: "text-right"
3400
3444
  };
3401
3445
  return classNames(
3402
- "text-sm text-gray-900",
3446
+ "text-sm text-[var(--tiger-text,#111827)]",
3403
3447
  paddingClasses[size],
3404
3448
  alignClasses[align],
3405
3449
  customClassName
@@ -3411,9 +3455,9 @@ function getSortIconClasses(active) {
3411
3455
  active ? "text-[var(--tiger-primary,#2563eb)]" : "text-gray-400"
3412
3456
  );
3413
3457
  }
3414
- var tableEmptyStateClasses = "text-center py-12 text-gray-500";
3458
+ var tableEmptyStateClasses = "text-center py-12 text-[var(--tiger-text-muted,#6b7280)]";
3415
3459
  var tableLoadingOverlayClasses = classNames(
3416
- "absolute inset-0 bg-white/80 flex items-center justify-center z-20"
3460
+ "absolute inset-0 bg-[var(--tiger-surface,#ffffff)]/80 flex items-center justify-center z-20"
3417
3461
  );
3418
3462
  var tablePaginationContainerClasses = classNames(
3419
3463
  "flex items-center justify-between px-4 py-3 border-t border-gray-200"
@@ -3529,27 +3573,17 @@ var badgePositionClasses = {
3529
3573
  "bottom-left": "absolute -bottom-1 -left-1"
3530
3574
  };
3531
3575
  function formatBadgeContent(content, max = 99, showZero = false) {
3532
- if (content === void 0 || content === null) {
3533
- return null;
3534
- }
3535
- if (typeof content === "string") {
3536
- return content;
3537
- }
3538
- const num = Number(content);
3539
- if (num === 0 && !showZero) {
3540
- return null;
3541
- }
3542
- if (num > max) {
3543
- return `${max}+`;
3544
- }
3545
- return String(num);
3576
+ if (content === void 0 || content === null) return null;
3577
+ if (typeof content === "string") return content;
3578
+ if (content === 0 && !showZero) return null;
3579
+ if (content > max) return `${max}+`;
3580
+ return String(content);
3546
3581
  }
3547
3582
  function shouldHideBadge(content, type, showZero) {
3548
- if (type === "dot") {
3549
- return false;
3550
- }
3551
- const formattedContent = formatBadgeContent(content, 99, showZero);
3552
- return formattedContent === null || formattedContent === "";
3583
+ if (type === "dot") return false;
3584
+ if (content === void 0 || content === null) return true;
3585
+ if (typeof content === "string") return content === "";
3586
+ return content === 0 && !showZero;
3553
3587
  }
3554
3588
 
3555
3589
  // src/utils/card-utils.ts
@@ -3567,7 +3601,6 @@ var cardVariantClasses = {
3567
3601
  };
3568
3602
  var cardHoverClasses = "cursor-pointer hover:shadow-xl hover:scale-[1.02]";
3569
3603
  var cardHeaderClasses = "border-b border-[var(--tiger-border,#e5e7eb)] pb-3 mb-3";
3570
- var cardBodyClasses = "";
3571
3604
  var cardFooterClasses = "border-t border-[var(--tiger-border,#e5e7eb)] pt-3 mt-3";
3572
3605
  var cardCoverClasses = "w-full h-48 object-cover";
3573
3606
  var cardCoverWrapperClasses = "overflow-hidden";
@@ -3596,10 +3629,9 @@ var avatarDefaultBgColor = "bg-[var(--tiger-avatar-bg,#e5e7eb)]";
3596
3629
  var avatarDefaultTextColor = "text-[var(--tiger-avatar-text,var(--tiger-text-muted,#6b7280))]";
3597
3630
  var avatarImageClasses = "w-full h-full object-cover";
3598
3631
  function getInitials(name) {
3599
- const trimmed = typeof name === "string" ? name.trim() : "";
3632
+ const trimmed = name.trim();
3600
3633
  if (!trimmed) return "";
3601
3634
  const words = trimmed.split(/\s+/).filter(Boolean);
3602
- if (words.length === 0) return "";
3603
3635
  if (words.length === 1) {
3604
3636
  const firstWord = words[0];
3605
3637
  const hasNonASCII = /[^\x20-\x7E]/.test(firstWord);
@@ -3661,7 +3693,6 @@ var listHeaderFooterBaseClasses = "border-b border-[var(--tiger-border,#e5e7eb)]
3661
3693
  var listFooterClasses = "border-t border-b-0";
3662
3694
  var listEmptyStateClasses = "py-8 text-center text-[var(--tiger-text-muted,#6b7280)]";
3663
3695
  var listLoadingOverlayClasses = "absolute inset-0 bg-[var(--tiger-surface,#ffffff)]/75 flex items-center justify-center z-10";
3664
- var listPaginationContainerClasses = "flex items-center justify-between px-4 py-3 border-t border-[var(--tiger-border,#e5e7eb)]";
3665
3696
  var listItemMetaClasses = "flex items-center gap-3 flex-1";
3666
3697
  var listItemAvatarClasses = "flex-shrink-0";
3667
3698
  var listItemContentClasses = "flex-1 min-w-0";
@@ -3729,7 +3760,6 @@ var descriptionsSizeClasses = {
3729
3760
  };
3730
3761
  var descriptionsTableClasses = "w-full border-collapse";
3731
3762
  var descriptionsTableBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3732
- var descriptionsRowClasses = "";
3733
3763
  var descriptionsCellSizeClasses = {
3734
3764
  sm: "px-3 py-2",
3735
3765
  md: "px-4 py-3",
@@ -3739,12 +3769,12 @@ var descriptionsLabelClasses = "font-medium bg-[var(--tiger-surface-muted,#f9faf
3739
3769
  var descriptionsLabelBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3740
3770
  var descriptionsContentClasses = "text-[var(--tiger-text,#111827)]";
3741
3771
  var descriptionsContentBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3742
- var descriptionsVerticalWrapperClasses = "space-y-0";
3772
+ var descriptionsVerticalWrapperClasses = "";
3743
3773
  var descriptionsVerticalItemClasses = "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0";
3744
3774
  var descriptionsVerticalLabelClasses = "font-medium mb-1 text-[var(--tiger-text-muted,#374151)]";
3745
3775
  var descriptionsVerticalContentClasses = "text-[var(--tiger-text,#111827)]";
3746
- function getDescriptionsClasses(bordered, size) {
3747
- return [descriptionsBaseClasses, descriptionsSizeClasses[size]].join(" ");
3776
+ function getDescriptionsClasses(size) {
3777
+ return `${descriptionsBaseClasses} ${descriptionsSizeClasses[size]}`;
3748
3778
  }
3749
3779
  function getDescriptionsTableClasses(bordered) {
3750
3780
  const classes = [descriptionsTableClasses];
@@ -3773,12 +3803,8 @@ function getDescriptionsContentClasses(bordered, size, layout) {
3773
3803
  }
3774
3804
  return classes.join(" ");
3775
3805
  }
3776
- function getDescriptionsVerticalItemClasses(bordered, size) {
3777
- const classes = [descriptionsCellSizeClasses[size]];
3778
- if (!bordered) {
3779
- classes.push(descriptionsVerticalItemClasses);
3780
- }
3781
- return classes.join(" ");
3806
+ function getDescriptionsVerticalItemClasses(size) {
3807
+ return `${descriptionsCellSizeClasses[size]} ${descriptionsVerticalItemClasses}`;
3782
3808
  }
3783
3809
  function groupItemsIntoRows(items, column) {
3784
3810
  const rows = [];
@@ -3815,8 +3841,9 @@ var timelineContentClasses = "relative";
3815
3841
  var timelineCustomDotClasses = "flex items-center justify-center";
3816
3842
  var timelineLabelClasses = "text-sm text-[var(--tiger-text-muted,#6b7280)] mb-1";
3817
3843
  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}`;
3844
+ var timelineDotBase = "w-2.5 h-2.5 rounded-full border-2 border-[var(--tiger-surface,#ffffff)]";
3845
+ var timelineDotBg = "bg-[var(--tiger-timeline-dot,#d1d5db)]";
3846
+ var timelineDotClasses = `${timelineDotBase} ${timelineDotBg}`;
3820
3847
  var HEAD_TOP = "top-[18px]";
3821
3848
  var TAIL_TOP = "top-[23px]";
3822
3849
  var TAIL_BOTTOM = "-bottom-[23px]";
@@ -3832,22 +3859,21 @@ function getTimelineItemClasses(mode, position, isLast = false) {
3832
3859
  }
3833
3860
  return `${base} pl-8`;
3834
3861
  }
3835
- function getTimelineTailClasses(mode, _position, isLast = false) {
3862
+ function getTimelineTailClasses(mode, isLast = false) {
3836
3863
  if (isLast) return "hidden";
3837
3864
  const span = `${timelineTailClasses} ${TAIL_TOP} ${TAIL_BOTTOM}`;
3838
3865
  if (mode === "right") return `${span} right-0 translate-x-1/2`;
3839
3866
  if (mode === "alternate") return `${span} left-1/2 -translate-x-1/2`;
3840
3867
  return `${span} left-0 -translate-x-1/2`;
3841
3868
  }
3842
- function getTimelineHeadClasses(mode, _position) {
3869
+ function getTimelineHeadClasses(mode) {
3843
3870
  if (mode === "right") return `${timelineHeadClasses} right-0 ${HEAD_TOP} translate-x-1/2`;
3844
3871
  if (mode === "alternate") return `${timelineHeadClasses} left-1/2 -translate-x-1/2 ${HEAD_TOP}`;
3845
3872
  return `${timelineHeadClasses} left-0 ${HEAD_TOP} -translate-x-1/2`;
3846
3873
  }
3847
3874
  function getTimelineDotClasses(color, isCustom = false) {
3848
3875
  if (isCustom) return timelineCustomDotClasses;
3849
- if (color) return timelineDotClasses.replace(dotBg, "");
3850
- return timelineDotClasses;
3876
+ return color ? timelineDotBase : timelineDotClasses;
3851
3877
  }
3852
3878
  function getTimelineContentClasses(mode, position) {
3853
3879
  if (mode === "right") return `${timelineContentClasses} pr-2`;
@@ -3881,7 +3907,7 @@ var treeBaseClasses = "w-full bg-white rounded-lg";
3881
3907
  var treeNodeWrapperClasses = "select-none";
3882
3908
  var treeNodeContentClasses = "flex items-center px-2 py-1.5 cursor-pointer rounded transition-colors duration-200";
3883
3909
  var treeNodeHoverClasses = "hover:bg-gray-50";
3884
- var treeNodeSelectedClasses = "bg-[var(--tiger-primary,#2563eb)] bg-opacity-10 text-[var(--tiger-primary,#2563eb)]";
3910
+ var treeNodeSelectedClasses = "bg-[color-mix(in_srgb,var(--tiger-primary,#2563eb)_10%,transparent)] text-[var(--tiger-primary,#2563eb)]";
3885
3911
  var treeNodeDisabledClasses = "opacity-50 cursor-not-allowed";
3886
3912
  var treeNodeIndentClasses = "inline-block w-6";
3887
3913
  var treeNodeExpandIconClasses = "inline-flex items-center justify-center w-6 h-6 transition-transform duration-200";
@@ -3894,40 +3920,16 @@ var treeLoadingClasses = "inline-block ml-2 animate-spin h-4 w-4";
3894
3920
  var treeEmptyStateClasses = "py-8 text-center text-gray-500";
3895
3921
  var treeLineClasses = "border-l border-gray-300";
3896
3922
  function getTreeNodeClasses(selected, disabled, blockNode = false) {
3897
- const classes = [treeNodeContentClasses];
3898
- if (!disabled) {
3899
- classes.push(treeNodeHoverClasses);
3900
- }
3901
- if (selected) {
3902
- classes.push(treeNodeSelectedClasses);
3903
- }
3904
- if (disabled) {
3905
- classes.push(treeNodeDisabledClasses);
3906
- }
3907
- if (blockNode) {
3908
- classes.push("w-full");
3909
- }
3910
- return classes.join(" ");
3923
+ return classNames(
3924
+ treeNodeContentClasses,
3925
+ !disabled && treeNodeHoverClasses,
3926
+ selected && treeNodeSelectedClasses,
3927
+ disabled && treeNodeDisabledClasses,
3928
+ blockNode && "w-full"
3929
+ );
3911
3930
  }
3912
3931
  function getTreeNodeExpandIconClasses(expanded) {
3913
- const classes = [treeNodeExpandIconClasses];
3914
- if (expanded) {
3915
- classes.push(treeNodeExpandIconExpandedClasses);
3916
- }
3917
- return classes.join(" ");
3918
- }
3919
- function flattenTree(treeData, expandedKeys = /* @__PURE__ */ new Set()) {
3920
- const result = [];
3921
- function traverse(nodes, level = 0, parentKey) {
3922
- nodes.forEach((node) => {
3923
- result.push({ ...node, level, parentKey });
3924
- if (node.children && node.children.length > 0 && expandedKeys.has(node.key)) {
3925
- traverse(node.children, level + 1, node.key);
3926
- }
3927
- });
3928
- }
3929
- traverse(treeData);
3930
- return result;
3932
+ return classNames(treeNodeExpandIconClasses, expanded && treeNodeExpandIconExpandedClasses);
3931
3933
  }
3932
3934
  function getAllKeys(treeData) {
3933
3935
  const keys = [];
@@ -4149,18 +4151,12 @@ function getAutoExpandKeys(treeData, matchedKeys) {
4149
4151
  });
4150
4152
  return expandKeys;
4151
4153
  }
4152
- var defaultExpandIcon = (expanded) => `
4153
- <svg class="${getTreeNodeExpandIconClasses(
4154
- expanded
4155
- )}" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
4156
- <path d="M6 4l4 4-4 4V4z"/>
4157
- </svg>
4158
- `;
4159
- var defaultIndeterminateIcon = `
4160
- <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
4161
- <rect x="4" y="7" width="8" height="2" rx="1"/>
4162
- </svg>
4163
- `;
4154
+ function checkedSetsFromState(state) {
4155
+ return {
4156
+ checkedSet: new Set(state.checked),
4157
+ halfCheckedSet: new Set(state.halfChecked)
4158
+ };
4159
+ }
4164
4160
 
4165
4161
  // src/utils/skeleton-utils.ts
4166
4162
  var skeletonBaseClasses = "bg-[var(--tiger-skeleton-bg,#e5e7eb)] rounded";
@@ -4224,7 +4220,7 @@ function getParagraphRowWidth(rowIndex, totalRows) {
4224
4220
  // src/utils/progress-utils.ts
4225
4221
  var progressLineBaseClasses = "relative overflow-hidden rounded-full";
4226
4222
  var progressLineInnerClasses = "h-full rounded-full transition-all duration-300 ease-in-out flex items-center justify-end";
4227
- var progressTextBaseClasses = "font-medium ml-2 text-[color:var(--tiger-text,#374151)]";
4223
+ var progressTextBaseClasses = "font-medium ml-2";
4228
4224
  var progressCircleBaseClasses = "relative inline-flex items-center justify-center";
4229
4225
  var progressLineSizeClasses = {
4230
4226
  sm: "h-2",
@@ -4264,7 +4260,7 @@ function formatProgressText(percentage, customText, formatFn) {
4264
4260
  function clampPercentage(percentage) {
4265
4261
  return Math.max(0, Math.min(100, percentage));
4266
4262
  }
4267
- function calculateCirclePath(radius, strokeWidth, percentage) {
4263
+ function calculateCirclePath(radius, percentage) {
4268
4264
  const circumference = 2 * Math.PI * radius;
4269
4265
  const offset2 = circumference - percentage / 100 * circumference;
4270
4266
  return {
@@ -4302,7 +4298,6 @@ var collapseIconPositionClasses = {
4302
4298
  end: "ml-auto"
4303
4299
  };
4304
4300
  var collapseHeaderTextClasses = "flex-1 font-medium text-gray-900";
4305
- var collapseExtraClasses = "ml-auto";
4306
4301
  function getCollapseContainerClasses(bordered, ghost, className) {
4307
4302
  const classes = [collapseBaseClasses];
4308
4303
  if (ghost) {
@@ -4313,7 +4308,7 @@ function getCollapseContainerClasses(bordered, ghost, className) {
4313
4308
  if (className) {
4314
4309
  classes.push(className);
4315
4310
  }
4316
- return classes.filter(Boolean).join(" ");
4311
+ return classes.join(" ");
4317
4312
  }
4318
4313
  function getCollapsePanelClasses(ghost, className) {
4319
4314
  const classes = [];
@@ -4323,7 +4318,7 @@ function getCollapsePanelClasses(ghost, className) {
4323
4318
  if (className) {
4324
4319
  classes.push(className);
4325
4320
  }
4326
- return classes.filter(Boolean).join(" ");
4321
+ return classes.join(" ");
4327
4322
  }
4328
4323
  function getCollapsePanelHeaderClasses(active, disabled, className) {
4329
4324
  const classes = [collapsePanelHeaderBaseClasses];
@@ -4335,7 +4330,7 @@ function getCollapsePanelHeaderClasses(active, disabled, className) {
4335
4330
  if (className) {
4336
4331
  classes.push(className);
4337
4332
  }
4338
- return classes.filter(Boolean).join(" ");
4333
+ return classes.join(" ");
4339
4334
  }
4340
4335
  function getCollapseIconClasses(expanded, position, className) {
4341
4336
  const classes = [collapseIconBaseClasses, collapseIconPositionClasses[position]];
@@ -4345,7 +4340,7 @@ function getCollapseIconClasses(expanded, position, className) {
4345
4340
  if (className) {
4346
4341
  classes.push(className);
4347
4342
  }
4348
- return classes.filter(Boolean).join(" ");
4343
+ return classes.join(" ");
4349
4344
  }
4350
4345
  function normalizeActiveKeys(activeKey) {
4351
4346
  if (activeKey === void 0) {
@@ -4368,11 +4363,6 @@ function togglePanelKey(panelKey, activeKeys, accordion) {
4368
4363
  }
4369
4364
  }
4370
4365
  }
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
4366
 
4377
4367
  // src/utils/menu-utils.ts
4378
4368
  var menuBaseClasses = "flex border bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border-[var(--tiger-border,#e5e7eb)]";
@@ -4468,15 +4458,71 @@ function replaceKeys(key, keys) {
4468
4458
  }
4469
4459
  return [key];
4470
4460
  }
4461
+ function getMenuButtons(container) {
4462
+ return Array.from(
4463
+ container.querySelectorAll('button[data-tiger-menuitem="true"]')
4464
+ ).filter((el) => !el.disabled && !el.closest('[data-tiger-menu-hidden="true"]'));
4465
+ }
4466
+ function moveFocusInMenu(current, delta) {
4467
+ const menuEl = current.closest('ul[role="menu"]');
4468
+ if (!menuEl) return;
4469
+ const items = getMenuButtons(menuEl);
4470
+ const idx = items.indexOf(current);
4471
+ if (idx < 0) return;
4472
+ const next = items[(idx + delta + items.length) % items.length];
4473
+ items.forEach((el) => {
4474
+ el.tabIndex = el === next ? 0 : -1;
4475
+ });
4476
+ next.focus();
4477
+ }
4478
+ function focusMenuEdge(current, edge) {
4479
+ const menuEl = current.closest('ul[role="menu"]');
4480
+ if (!menuEl) return;
4481
+ const items = getMenuButtons(menuEl);
4482
+ if (items.length === 0) return;
4483
+ const target = edge === "start" ? items[0] : items[items.length - 1];
4484
+ items.forEach((el) => {
4485
+ el.tabIndex = el === target ? 0 : -1;
4486
+ });
4487
+ target.focus();
4488
+ }
4489
+ function initRovingTabIndex(root) {
4490
+ const items = getMenuButtons(root);
4491
+ if (items.length === 0) return;
4492
+ const hasActive = items.some((el) => el.tabIndex === 0);
4493
+ if (hasActive) return;
4494
+ const selected = items.find((el) => el.dataset.tigerSelected === "true");
4495
+ const active = selected ?? items[0];
4496
+ items.forEach((el) => {
4497
+ el.tabIndex = el === active ? 0 : -1;
4498
+ });
4499
+ }
4500
+ function focusFirstChildItem(titleEl) {
4501
+ const li = titleEl.closest("li");
4502
+ const submenu = li?.querySelector('ul[role="menu"]');
4503
+ if (!submenu) return;
4504
+ const items = getMenuButtons(submenu);
4505
+ if (items.length === 0) return;
4506
+ items.forEach((el, idx) => {
4507
+ el.tabIndex = idx === 0 ? 0 : -1;
4508
+ });
4509
+ items[0].focus();
4510
+ }
4471
4511
 
4472
4512
  // src/utils/tabs-utils.ts
4473
4513
  var tabsBaseClasses = "w-full";
4474
- var tabNavBaseClasses = "flex transition-colors duration-200";
4514
+ var tabNavBaseClasses = "flex";
4475
4515
  var tabNavPositionClasses = {
4476
- top: "flex-row border-b border-gray-200",
4477
- bottom: "flex-row border-t border-gray-200",
4478
- left: "flex-col border-r border-gray-200",
4479
- right: "flex-col border-l border-gray-200"
4516
+ top: "flex-row",
4517
+ bottom: "flex-row",
4518
+ left: "flex-col",
4519
+ right: "flex-col"
4520
+ };
4521
+ var tabNavLineBorderClasses = {
4522
+ top: "border-b border-gray-200",
4523
+ bottom: "border-t border-gray-200",
4524
+ left: "border-r border-gray-200",
4525
+ right: "border-l border-gray-200"
4480
4526
  };
4481
4527
  var tabNavListBaseClasses = "flex gap-1";
4482
4528
  var tabNavListPositionClasses = {
@@ -4486,7 +4532,7 @@ var tabNavListPositionClasses = {
4486
4532
  right: "flex-col"
4487
4533
  };
4488
4534
  var tabNavListCenteredClasses = "justify-center";
4489
- var tabItemBaseClasses = "relative px-4 py-2 cursor-pointer transition-all duration-200 select-none flex items-center gap-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] focus-visible:ring-offset-2 active:opacity-90";
4535
+ var tabItemBaseClasses = "relative cursor-pointer transition-all duration-200 select-none flex items-center gap-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] focus-visible:ring-offset-2 active:opacity-90";
4490
4536
  var tabItemSizeClasses = {
4491
4537
  small: "text-sm px-3 py-1.5",
4492
4538
  medium: "text-base px-4 py-2",
@@ -4505,63 +4551,39 @@ var tabPaneBaseClasses = "w-full";
4505
4551
  var tabPaneHiddenClasses = "hidden";
4506
4552
  var tabAddButtonClasses = "px-3 py-2 border border-gray-200 rounded-t bg-gray-50 hover:bg-white hover:text-[var(--tiger-primary,#2563eb)] text-gray-600 cursor-pointer transition-colors duration-200";
4507
4553
  function getTabsContainerClasses(position) {
4508
- const classes = [tabsBaseClasses];
4509
- if (position === "left" || position === "right") {
4510
- classes.push("flex");
4511
- if (position === "right") {
4512
- classes.push("flex-row-reverse");
4513
- }
4514
- }
4515
- return classes.filter(Boolean).join(" ");
4554
+ if (position === "right") return `${tabsBaseClasses} flex flex-row-reverse`;
4555
+ if (position === "left") return `${tabsBaseClasses} flex`;
4556
+ return tabsBaseClasses;
4516
4557
  }
4517
4558
  function getTabNavClasses(position, type) {
4518
- const classes = [tabNavBaseClasses, tabNavPositionClasses[position]];
4519
- if (type === "card" || type === "editable-card") {
4520
- classes.push("border-0");
4521
- }
4522
- return classes.filter(Boolean).join(" ");
4559
+ const base = `${tabNavBaseClasses} ${tabNavPositionClasses[position]}`;
4560
+ return type === "line" ? `${base} ${tabNavLineBorderClasses[position]}` : base;
4523
4561
  }
4524
4562
  function getTabNavListClasses(position, centered) {
4525
- const classes = [tabNavListBaseClasses, tabNavListPositionClasses[position]];
4526
- if (centered && (position === "top" || position === "bottom")) {
4527
- classes.push(tabNavListCenteredClasses);
4528
- }
4529
- return classes.filter(Boolean).join(" ");
4563
+ const base = `${tabNavListBaseClasses} ${tabNavListPositionClasses[position]}`;
4564
+ return centered && (position === "top" || position === "bottom") ? `${base} ${tabNavListCenteredClasses}` : base;
4530
4565
  }
4531
4566
  function getTabItemClasses(active, disabled, type, size) {
4532
- const classes = [tabItemBaseClasses, tabItemSizeClasses[size]];
4533
- if (disabled) {
4534
- classes.push(tabItemDisabledClasses);
4535
- } else {
4536
- switch (type) {
4537
- case "line":
4538
- classes.push(tabItemLineClasses);
4539
- if (active) {
4540
- classes.push(tabItemLineActiveClasses);
4541
- }
4542
- break;
4543
- case "card":
4544
- classes.push(tabItemCardClasses);
4545
- if (active) {
4546
- classes.push(tabItemCardActiveClasses);
4547
- }
4548
- break;
4549
- case "editable-card":
4550
- classes.push(tabItemEditableCardClasses);
4551
- if (active) {
4552
- classes.push(tabItemEditableCardActiveClasses);
4553
- }
4554
- break;
4555
- }
4567
+ let cls = `${tabItemBaseClasses} ${tabItemSizeClasses[size]}`;
4568
+ if (disabled) return `${cls} ${tabItemDisabledClasses}`;
4569
+ switch (type) {
4570
+ case "line":
4571
+ cls += ` ${tabItemLineClasses}`;
4572
+ if (active) cls += ` ${tabItemLineActiveClasses}`;
4573
+ break;
4574
+ case "card":
4575
+ cls += ` ${tabItemCardClasses}`;
4576
+ if (active) cls += ` ${tabItemCardActiveClasses}`;
4577
+ break;
4578
+ case "editable-card":
4579
+ cls += ` ${tabItemEditableCardClasses}`;
4580
+ if (active) cls += ` ${tabItemEditableCardActiveClasses}`;
4581
+ break;
4556
4582
  }
4557
- return classes.filter(Boolean).join(" ");
4583
+ return cls;
4558
4584
  }
4559
4585
  function getTabPaneClasses(active) {
4560
- const classes = [tabPaneBaseClasses];
4561
- if (!active) {
4562
- classes.push(tabPaneHiddenClasses);
4563
- }
4564
- return classes.filter(Boolean).join(" ");
4586
+ return active ? tabPaneBaseClasses : `${tabPaneBaseClasses} ${tabPaneHiddenClasses}`;
4565
4587
  }
4566
4588
  function isKeyActive(key, activeKey) {
4567
4589
  return activeKey !== void 0 && key === activeKey;
@@ -4591,16 +4613,14 @@ var breadcrumbLinkClasses = classNames(
4591
4613
  );
4592
4614
  var breadcrumbCurrentClasses = classNames("text-gray-900 font-medium", "cursor-default");
4593
4615
  var breadcrumbSeparatorBaseClasses = "text-gray-400 select-none";
4594
- function getBreadcrumbItemClasses(current, className) {
4616
+ function getBreadcrumbItemClasses(className) {
4595
4617
  return classNames(breadcrumbItemBaseClasses, className);
4596
4618
  }
4597
4619
  function getBreadcrumbLinkClasses(current) {
4598
4620
  return current ? breadcrumbCurrentClasses : breadcrumbLinkClasses;
4599
4621
  }
4600
4622
  function getSeparatorContent(separator) {
4601
- if (!separator || separator === "/") {
4602
- return "/";
4603
- }
4623
+ if (!separator) return "/";
4604
4624
  switch (separator) {
4605
4625
  case "slash":
4606
4626
  return "/";
@@ -4617,61 +4637,53 @@ function getBreadcrumbSeparatorClasses(className) {
4617
4637
  }
4618
4638
 
4619
4639
  // src/utils/steps-utils.ts
4620
- var stepFinishIconSvgClasses = "w-5 h-5";
4621
- var stepFinishIconViewBox = "0 0 24 24";
4622
- var stepFinishIconPathD = "M5 13l4 4L19 7";
4623
- var stepFinishIconPathStrokeLinecap = "round";
4624
- var stepFinishIconPathStrokeLinejoin = "round";
4625
- var stepFinishIconPathStrokeWidth = 2;
4640
+ var stepFinishChar = "\u2713";
4626
4641
  function getStepsContainerClasses(direction) {
4627
- const baseClasses = "tiger-steps w-full list-none m-0 p-0";
4642
+ const baseClasses2 = "tiger-steps w-full list-none m-0 p-0";
4628
4643
  if (direction === "vertical") {
4629
- return `${baseClasses} flex flex-col`;
4644
+ return `${baseClasses2} flex flex-col`;
4630
4645
  }
4631
- return `${baseClasses} flex flex-row items-start`;
4646
+ return `${baseClasses2} flex flex-row items-start`;
4632
4647
  }
4633
- function getStepItemClasses(direction, isLast, simple) {
4634
- const baseClasses = "tiger-step-item relative";
4648
+ function getStepItemClasses(direction, isLast) {
4649
+ const baseClasses2 = "tiger-step-item relative";
4635
4650
  if (direction === "vertical") {
4636
- return `${baseClasses} flex flex-row ${!isLast ? "pb-6" : ""}`;
4651
+ return `${baseClasses2} flex flex-row ${!isLast ? "pb-6" : ""}`;
4637
4652
  }
4638
- return `${baseClasses} flex flex-col flex-1 items-center`;
4653
+ return `${baseClasses2} flex flex-col flex-1 items-center`;
4639
4654
  }
4640
4655
  function getStepIconClasses(status, size, simple, isCustomIcon) {
4641
- const baseClasses = "tiger-step-icon flex items-center justify-center rounded-full border-2 transition-all duration-200";
4656
+ const baseClasses2 = "tiger-step-icon relative z-10 flex items-center justify-center rounded-full border-2";
4642
4657
  const sizeClasses = simple ? "w-6 h-6 text-xs" : size === "small" ? "w-8 h-8 text-sm" : "w-10 h-10 text-base";
4643
4658
  const iconClasses = isCustomIcon ? "" : "font-medium";
4659
+ const activeClasses = "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white";
4644
4660
  const statusClasses = {
4645
4661
  wait: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#e5e7eb)] text-[var(--tiger-text-muted,#6b7280)]",
4646
- process: "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white",
4647
- finish: "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white",
4662
+ process: activeClasses,
4663
+ finish: activeClasses,
4648
4664
  error: "bg-[var(--tiger-error-bg,#fef2f2)] border-[var(--tiger-error,#ef4444)] text-[var(--tiger-error,#ef4444)]"
4649
4665
  };
4650
- return `${baseClasses} ${sizeClasses} ${iconClasses} ${statusClasses[status]}`;
4666
+ return `${baseClasses2} ${sizeClasses} ${iconClasses} ${statusClasses[status]}`;
4651
4667
  }
4652
- function getStepTailClasses(direction, status, isLast) {
4653
- if (isLast) {
4654
- return "hidden";
4655
- }
4656
- const baseClasses = "tiger-step-tail transition-all duration-200";
4668
+ function getStepTailClasses(direction, status, isLast, size, simple) {
4669
+ if (isLast) return "hidden";
4670
+ const colorClasses = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4657
4671
  if (direction === "vertical") {
4658
- const positionClasses2 = "absolute left-4 top-10 w-0.5 h-full";
4659
- const colorClasses2 = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4660
- return `${baseClasses} ${positionClasses2} ${colorClasses2}`;
4672
+ const verticalClasses = simple ? "absolute left-3 top-6 w-0.5 h-full" : size === "small" ? "absolute left-4 top-8 w-0.5 h-full" : "absolute left-5 top-10 w-0.5 h-full";
4673
+ return `tiger-step-tail ${verticalClasses} ${colorClasses}`;
4661
4674
  }
4662
- const positionClasses = "flex-1 h-0.5 mx-2 mt-5";
4663
- const colorClasses = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4664
- return `${baseClasses} ${positionClasses} ${colorClasses}`;
4675
+ const horizontalClasses = simple ? "absolute top-3 left-1/2 w-full h-0.5" : size === "small" ? "absolute top-4 left-1/2 w-full h-0.5" : "absolute top-5 left-1/2 w-full h-0.5";
4676
+ return `tiger-step-tail ${horizontalClasses} ${colorClasses}`;
4665
4677
  }
4666
- function getStepContentClasses(direction, simple) {
4667
- const baseClasses = "tiger-step-content";
4678
+ function getStepContentClasses(direction) {
4679
+ const baseClasses2 = "tiger-step-content";
4668
4680
  if (direction === "vertical") {
4669
- return `${baseClasses} ml-4 flex-1`;
4681
+ return `${baseClasses2} ml-4 flex-1`;
4670
4682
  }
4671
- return `${baseClasses} mt-2 text-center`;
4683
+ return `${baseClasses2} mt-2 text-center`;
4672
4684
  }
4673
4685
  function getStepTitleClasses(status, size, clickable) {
4674
- const baseClasses = "tiger-step-title font-medium transition-colors duration-200 bg-transparent border-0 p-0";
4686
+ const baseClasses2 = "tiger-step-title font-medium";
4675
4687
  const sizeClasses = size === "small" ? "text-sm" : "text-base";
4676
4688
  const statusClasses = {
4677
4689
  wait: "text-[var(--tiger-text-muted,#6b7280)]",
@@ -4679,19 +4691,14 @@ function getStepTitleClasses(status, size, clickable) {
4679
4691
  finish: "text-[var(--tiger-text,#111827)]",
4680
4692
  error: "text-[var(--tiger-error,#ef4444)]"
4681
4693
  };
4682
- const cursorClasses = clickable ? "cursor-pointer hover:text-[var(--tiger-primary,#2563eb)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--tiger-surface,#ffffff)]" : "";
4683
- return `${baseClasses} ${sizeClasses} ${statusClasses[status]} ${cursorClasses}`;
4694
+ const cursorClasses = clickable ? "bg-transparent border-0 p-0 cursor-pointer hover:text-[var(--tiger-primary,#2563eb)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--tiger-surface,#ffffff)]" : "";
4695
+ return `${baseClasses2} ${sizeClasses} ${statusClasses[status]} ${cursorClasses}`;
4684
4696
  }
4685
4697
  function getStepDescriptionClasses(status, size) {
4686
- const baseClasses = "tiger-step-description mt-1 transition-colors duration-200";
4698
+ const baseClasses2 = "tiger-step-description mt-1";
4687
4699
  const sizeClasses = size === "small" ? "text-xs" : "text-sm";
4688
- const statusClasses = {
4689
- wait: "text-[var(--tiger-text-muted,#6b7280)]",
4690
- process: "text-[var(--tiger-text-muted,#6b7280)]",
4691
- finish: "text-[var(--tiger-text-muted,#6b7280)]",
4692
- error: "text-[var(--tiger-error,#ef4444)]"
4693
- };
4694
- return `${baseClasses} ${sizeClasses} ${statusClasses[status]}`;
4700
+ const statusClass = status === "error" ? "text-[var(--tiger-error,#ef4444)]" : "text-[var(--tiger-text-muted,#6b7280)]";
4701
+ return `${baseClasses2} ${sizeClasses} ${statusClass}`;
4695
4702
  }
4696
4703
  function calculateStepStatus(index, currentIndex, currentStatus, customStatus) {
4697
4704
  if (customStatus) {
@@ -4826,13 +4833,16 @@ function getPageSizeSelectorClasses(size = "medium") {
4826
4833
  sizeClasses[size]
4827
4834
  );
4828
4835
  }
4829
- function getTotalTextClasses(size = "medium") {
4836
+ function getSizeTextClasses(size = "medium") {
4830
4837
  const sizeClasses = {
4831
4838
  small: "text-sm",
4832
4839
  medium: "text-base",
4833
4840
  large: "text-lg"
4834
4841
  };
4835
- return classNames("text-[var(--tiger-text-muted,#6b7280)]", "mr-2", sizeClasses[size]);
4842
+ return sizeClasses[size];
4843
+ }
4844
+ function getTotalTextClasses(size = "medium") {
4845
+ return classNames("text-[var(--tiger-text-muted,#6b7280)]", "mr-2", getSizeTextClasses(size));
4836
4846
  }
4837
4847
  function getSimplePaginationContainerClasses() {
4838
4848
  return classNames(
@@ -4879,48 +4889,45 @@ function getDropdownContainerClasses() {
4879
4889
  function getDropdownTriggerClasses(disabled) {
4880
4890
  return classNames(
4881
4891
  "tiger-dropdown-trigger",
4882
- "cursor-pointer",
4883
- disabled && "cursor-not-allowed opacity-50"
4892
+ "inline-flex items-center gap-1.5",
4893
+ "select-none",
4894
+ disabled ? "cursor-not-allowed opacity-50 pointer-events-none" : "cursor-pointer"
4884
4895
  );
4885
4896
  }
4886
- function getDropdownMenuWrapperClasses(visible, placement) {
4887
- const positionClasses = getPlacementClasses(placement);
4897
+ function getDropdownChevronClasses(visible) {
4888
4898
  return classNames(
4889
- "tiger-dropdown-menu-wrapper",
4890
- "absolute",
4891
- "z-50",
4892
- positionClasses,
4893
- visible ? "block" : "hidden"
4899
+ "tiger-dropdown-chevron",
4900
+ "w-4 h-4 shrink-0",
4901
+ "text-[var(--tiger-text-muted,#9ca3af)]",
4902
+ "transition-transform duration-200 ease-out",
4903
+ visible && "rotate-180"
4894
4904
  );
4895
4905
  }
4906
+ var DROPDOWN_CHEVRON_PATH = "M6 9l6 6 6-6";
4896
4907
  function getDropdownMenuClasses() {
4897
4908
  return classNames(
4898
4909
  "tiger-dropdown-menu",
4899
4910
  "min-w-[160px]",
4900
- "py-1",
4901
- "rounded-md",
4902
- "shadow-lg",
4911
+ "py-1.5 px-1",
4912
+ "rounded-lg",
4913
+ "bg-[var(--tiger-surface,#ffffff)]",
4903
4914
  "border border-[var(--tiger-border,#e5e7eb)]",
4904
- "bg-[var(--tiger-surface,#ffffff)]"
4915
+ "shadow-[0_6px_16px_-2px_rgba(0,0,0,0.12),0_2px_6px_-1px_rgba(0,0,0,0.08)]",
4916
+ "ring-1 ring-black/[0.04]"
4905
4917
  );
4906
4918
  }
4907
4919
  function getDropdownItemClasses(disabled, divided) {
4908
4920
  return classNames(
4909
4921
  "tiger-dropdown-item",
4910
- "flex",
4911
- "items-center",
4912
- "gap-2",
4913
- "px-4",
4914
- "py-2",
4915
- "text-sm",
4916
- "text-[var(--tiger-text,#374151)]",
4917
- "transition-colors",
4918
- "duration-150",
4919
- "w-full",
4922
+ "flex items-center gap-2",
4923
+ "w-full rounded-md",
4924
+ "px-3 py-1.5",
4925
+ "text-sm text-[var(--tiger-text,#374151)]",
4926
+ "transition-colors duration-150",
4920
4927
  "text-left",
4921
4928
  "focus:outline-none",
4922
- "focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-opacity-50",
4923
- divided && "border-t border-[var(--tiger-border,#e5e7eb)]",
4929
+ "focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-inset",
4930
+ divided && "mt-1 border-t border-[var(--tiger-border,#e5e7eb)] pt-1",
4924
4931
  disabled ? "cursor-not-allowed opacity-50" : classNames(
4925
4932
  "cursor-pointer",
4926
4933
  "hover:bg-[var(--tiger-surface-muted,#f3f4f6)]",
@@ -4928,23 +4935,36 @@ function getDropdownItemClasses(disabled, divided) {
4928
4935
  )
4929
4936
  );
4930
4937
  }
4931
- function getPlacementClasses(placement) {
4932
- const placementMap = {
4933
- "bottom-start": "top-full left-0 mt-2",
4934
- bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
4935
- "bottom-end": "top-full right-0 mt-2",
4936
- "top-start": "bottom-full left-0 mb-2",
4937
- top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
4938
- "top-end": "bottom-full right-0 mb-2",
4939
- "left-start": "right-full top-0 mr-2",
4940
- left: "right-full top-1/2 -translate-y-1/2 mr-2",
4941
- "left-end": "right-full bottom-0 mr-2",
4942
- "right-start": "left-full top-0 ml-2",
4943
- right: "left-full top-1/2 -translate-y-1/2 ml-2",
4944
- "right-end": "left-full bottom-0 ml-2"
4945
- };
4946
- return placementMap[placement] || placementMap["bottom-start"];
4938
+ var DROPDOWN_ANIMATION_CSS = `
4939
+ @keyframes tiger-dropdown-in {
4940
+ from {
4941
+ opacity: 0;
4942
+ transform: scale(0.95);
4943
+ }
4944
+ to {
4945
+ opacity: 1;
4946
+ transform: scale(1);
4947
+ }
4948
+ }
4949
+ .tiger-dropdown-enter {
4950
+ animation: tiger-dropdown-in 0.15s ease-out;
4951
+ }
4952
+ `;
4953
+ var isDropdownStyleInjected = false;
4954
+ function injectDropdownStyles() {
4955
+ if (typeof document === "undefined" || isDropdownStyleInjected) return;
4956
+ const styleId = "tiger-ui-dropdown-styles";
4957
+ if (document.getElementById(styleId)) {
4958
+ isDropdownStyleInjected = true;
4959
+ return;
4960
+ }
4961
+ const style = document.createElement("style");
4962
+ style.id = styleId;
4963
+ style.textContent = DROPDOWN_ANIMATION_CSS;
4964
+ document.head.appendChild(style);
4965
+ isDropdownStyleInjected = true;
4947
4966
  }
4967
+ var DROPDOWN_ENTER_CLASS = "tiger-dropdown-enter";
4948
4968
 
4949
4969
  // src/utils/drawer-utils.ts
4950
4970
  function getDrawerMaskClasses(visible) {
@@ -4953,12 +4973,11 @@ function getDrawerMaskClasses(visible) {
4953
4973
  visible ? "opacity-100" : "opacity-0 pointer-events-none"
4954
4974
  );
4955
4975
  }
4956
- function getDrawerContainerClasses(zIndex) {
4957
- void zIndex;
4976
+ function getDrawerContainerClasses() {
4958
4977
  return "fixed inset-0 overflow-hidden";
4959
4978
  }
4960
4979
  function getDrawerPanelClasses(placement, visible, size) {
4961
- const baseClasses = "absolute bg-[var(--tiger-surface,#ffffff)] shadow-xl transition-transform duration-300 ease-in-out pointer-events-auto";
4980
+ const baseClasses2 = "absolute bg-[var(--tiger-surface,#ffffff)] shadow-xl transition-transform duration-300 ease-in-out pointer-events-auto";
4962
4981
  const sizeMap = {
4963
4982
  sm: { width: "w-64", height: "h-48" },
4964
4983
  md: { width: "w-96", height: "h-64" },
@@ -4988,7 +5007,7 @@ function getDrawerPanelClasses(placement, visible, size) {
4988
5007
  visible ? "translate-y-0" : "translate-y-full"
4989
5008
  )
4990
5009
  };
4991
- return classNames(baseClasses, placementClasses[placement]);
5010
+ return classNames(baseClasses2, placementClasses[placement]);
4992
5011
  }
4993
5012
  function getDrawerHeaderClasses() {
4994
5013
  return "flex items-center justify-between px-6 py-4 border-b border-[var(--tiger-border,#e5e7eb)]";
@@ -5063,19 +5082,15 @@ var alertDescriptionSizeClasses = {
5063
5082
  var alertCloseButtonBaseClasses = "ml-auto -mr-1 -mt-0.5 rounded-md p-1.5 inline-flex focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors";
5064
5083
  var alertIconContainerClasses = "flex-shrink-0";
5065
5084
  var alertContentClasses = "flex-1 ml-3";
5066
- var alertSuccessIconPath = statusSuccessIconPath;
5067
- var alertWarningIconPath = statusWarningIconPath;
5068
- var alertErrorIconPath = statusErrorIconPath;
5069
- var alertInfoIconPath = statusInfoIconPath;
5070
5085
  var alertCloseIconPath = closeIconPathD;
5086
+ var alertIconPaths = {
5087
+ success: statusSuccessIconPath,
5088
+ warning: statusWarningIconPath,
5089
+ error: statusErrorIconPath,
5090
+ info: statusInfoIconPath
5091
+ };
5071
5092
  function getAlertIconPath(type) {
5072
- const iconPaths = {
5073
- success: alertSuccessIconPath,
5074
- warning: alertWarningIconPath,
5075
- error: alertErrorIconPath,
5076
- info: alertInfoIconPath
5077
- };
5078
- return iconPaths[type];
5093
+ return alertIconPaths[type];
5079
5094
  }
5080
5095
 
5081
5096
  // src/utils/message-utils.ts
@@ -5089,10 +5104,6 @@ var messagePositionClasses = {
5089
5104
  "bottom-right": "bottom-6 right-6"
5090
5105
  };
5091
5106
  var messageBaseClasses = "flex items-center gap-3 px-4 py-3 rounded-lg shadow-lg border pointer-events-auto transition-all duration-300 ease-in-out";
5092
- var messageEnterClasses = "opacity-0 -translate-y-2";
5093
- var messageEnterActiveClasses = "opacity-100 translate-y-0";
5094
- var messageLeaveClasses = "opacity-100 translate-y-0";
5095
- var messageLeaveActiveClasses = "opacity-0 -translate-y-2";
5096
5107
  var defaultMessageThemeColors = {
5097
5108
  info: {
5098
5109
  bg: "bg-[var(--tiger-message-info-bg,#eff6ff)]",
@@ -5126,7 +5137,7 @@ var defaultMessageThemeColors = {
5126
5137
  }
5127
5138
  };
5128
5139
  function getMessageTypeClasses(type, themeColors = defaultMessageThemeColors) {
5129
- return themeColors[type] || themeColors.info;
5140
+ return themeColors[type];
5130
5141
  }
5131
5142
  var messageIconPaths = {
5132
5143
  success: statusSuccessIconPath,
@@ -5136,7 +5147,7 @@ var messageIconPaths = {
5136
5147
  loading: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
5137
5148
  };
5138
5149
  function getMessageIconPath(type) {
5139
- return messageIconPaths[type] || messageIconPaths.info;
5150
+ return messageIconPaths[type];
5140
5151
  }
5141
5152
  var messageCloseIconPath = closeIconPathD;
5142
5153
  var messageCloseButtonClasses = "ml-auto p-1 rounded hover:bg-[var(--tiger-surface-muted,#e5e7eb)] transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[var(--tiger-primary,#2563eb)]";
@@ -5235,25 +5246,23 @@ function getLoadingOverlaySpinnerClasses(customClassName) {
5235
5246
  function getLoadingClasses(variant, size, color, customColor) {
5236
5247
  const sizeClass = loadingSizeClasses[size];
5237
5248
  const colorClass = customColor ? "" : loadingColorClasses[color];
5238
- const baseClasses = classNames(sizeClass, colorClass);
5249
+ const baseClasses2 = classNames(sizeClass, colorClass);
5239
5250
  switch (variant) {
5240
- case "spinner":
5241
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5242
5251
  case "dots":
5243
- return baseClasses;
5244
5252
  case "bars":
5245
- return baseClasses;
5246
- case "ring":
5247
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5253
+ return baseClasses2;
5248
5254
  case "pulse":
5249
- return classNames(baseClasses, "animate-pulse");
5255
+ return classNames(baseClasses2, "animate-pulse");
5256
+ case "spinner":
5257
+ case "ring":
5250
5258
  default:
5251
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5259
+ return classNames(baseClasses2, loadingSpinnerBaseClasses);
5252
5260
  }
5253
5261
  }
5254
5262
  function getSpinnerSVG(variant) {
5255
5263
  switch (variant) {
5256
5264
  case "spinner":
5265
+ default:
5257
5266
  return {
5258
5267
  viewBox: "0 0 24 24",
5259
5268
  elements: [
@@ -5326,24 +5335,6 @@ function getSpinnerSVG(variant) {
5326
5335
  }
5327
5336
  ]
5328
5337
  };
5329
- default:
5330
- return {
5331
- viewBox: "0 0 24 24",
5332
- elements: [
5333
- {
5334
- type: "circle",
5335
- attrs: {
5336
- className: "opacity-25",
5337
- cx: "12",
5338
- cy: "12",
5339
- r: "10",
5340
- stroke: "currentColor",
5341
- strokeWidth: "4",
5342
- fill: "none"
5343
- }
5344
- }
5345
- ]
5346
- };
5347
5338
  }
5348
5339
  }
5349
5340
  var dotsVariantConfig = {
@@ -5448,6 +5439,25 @@ function injectLoadingAnimationStyles() {
5448
5439
  }
5449
5440
  }
5450
5441
 
5442
+ // src/utils/floating-popup-utils.ts
5443
+ function createFloatingIdFactory(prefix) {
5444
+ let counter = 0;
5445
+ return () => `tiger-${prefix}-${++counter}`;
5446
+ }
5447
+ function buildTriggerHandlerMap(trigger, handlers, framework = "vue") {
5448
+ switch (trigger) {
5449
+ case "click":
5450
+ return { onClick: handlers.toggle };
5451
+ case "hover":
5452
+ return framework === "vue" ? { onMouseenter: handlers.show, onMouseleave: handlers.hide } : { onMouseEnter: handlers.show, onMouseLeave: handlers.hide };
5453
+ case "focus":
5454
+ return framework === "vue" ? { onFocusin: handlers.show, onFocusout: handlers.hide } : { onFocus: handlers.show, onBlur: handlers.hide };
5455
+ case "manual":
5456
+ default:
5457
+ return {};
5458
+ }
5459
+ }
5460
+
5451
5461
  // src/utils/popconfirm-utils.ts
5452
5462
  function getPopconfirmContainerClasses() {
5453
5463
  return classNames("tiger-popconfirm", "relative", "inline-block", "w-fit", "justify-self-start");
@@ -5618,14 +5628,9 @@ function getPopoverTriggerClasses(disabled) {
5618
5628
  }
5619
5629
  function getPopoverContentClasses(width) {
5620
5630
  let widthClass = "min-w-[200px]";
5621
- if (width) {
5622
- if (typeof width === "number") {
5623
- widthClass = `w-[${width}px]`;
5624
- } else if (width.match(/^\d+$/)) {
5625
- widthClass = `w-[${width}px]`;
5626
- } else {
5627
- widthClass = width;
5628
- }
5631
+ if (width != null && width !== "") {
5632
+ const w = String(width);
5633
+ widthClass = /^\d+$/.test(w) ? `w-[${w}px]` : w;
5629
5634
  }
5630
5635
  return classNames(
5631
5636
  "tiger-popover-content",
@@ -5639,20 +5644,26 @@ function getPopoverContentClasses(width) {
5639
5644
  "border-[var(--tiger-border,#e5e7eb)]"
5640
5645
  );
5641
5646
  }
5647
+ var POPOVER_TITLE_CLASSES = classNames(
5648
+ "tiger-popover-title",
5649
+ "text-sm",
5650
+ "font-semibold",
5651
+ "text-[var(--tiger-text,#111827)]",
5652
+ "mb-2",
5653
+ "border-b",
5654
+ "border-[var(--tiger-border,#e5e7eb)]",
5655
+ "pb-2"
5656
+ );
5657
+ var POPOVER_TEXT_CLASSES = classNames(
5658
+ "tiger-popover-text",
5659
+ "text-sm",
5660
+ "text-[var(--tiger-text-muted,#374151)]"
5661
+ );
5642
5662
  function getPopoverTitleClasses() {
5643
- return classNames(
5644
- "tiger-popover-title",
5645
- "text-sm",
5646
- "font-semibold",
5647
- "text-[var(--tiger-text,#111827)]",
5648
- "mb-2",
5649
- "border-b",
5650
- "border-[var(--tiger-border,#e5e7eb)]",
5651
- "pb-2"
5652
- );
5663
+ return POPOVER_TITLE_CLASSES;
5653
5664
  }
5654
5665
  function getPopoverContentTextClasses() {
5655
- return classNames("tiger-popover-text", "text-sm", "text-[var(--tiger-text-muted,#374151)]");
5666
+ return POPOVER_TEXT_CLASSES;
5656
5667
  }
5657
5668
 
5658
5669
  // src/utils/tooltip-utils.ts
@@ -5699,6 +5710,9 @@ var iconSizeClasses = {
5699
5710
  lg: "w-6 h-6",
5700
5711
  xl: "w-8 h-8"
5701
5712
  };
5713
+ var iconSvgDefaultStrokeWidth = 2;
5714
+ var iconSvgDefaultStrokeLinecap = "round";
5715
+ var iconSvgDefaultStrokeLinejoin = "round";
5702
5716
 
5703
5717
  // src/utils/code-utils.ts
5704
5718
  var codeBlockContainerClasses = "relative rounded-lg border border-gray-200 bg-gray-50 text-gray-800 dark:border-gray-800 dark:bg-gray-900/60 dark:text-gray-100";
@@ -5706,82 +5720,377 @@ var codeBlockPreClasses = "m-0 overflow-auto p-4 text-sm leading-relaxed font-mo
5706
5720
  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";
5707
5721
  var codeBlockCopyButtonCopiedClasses = "border-[var(--tiger-primary,#2563eb)] text-[var(--tiger-primary,#2563eb)]";
5708
5722
 
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);
5723
+ // src/theme/colors.ts
5724
+ var defaultThemeColors = {
5725
+ primary: {
5726
+ bg: "bg-[var(--tiger-primary,#2563eb)]",
5727
+ bgHover: "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
5728
+ text: "text-white",
5729
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5730
+ disabled: "disabled:bg-[var(--tiger-primary-disabled,#93c5fd)]"
5731
+ },
5732
+ secondary: {
5733
+ bg: "bg-[var(--tiger-secondary,#4b5563)]",
5734
+ bgHover: "hover:bg-[var(--tiger-secondary-hover,#374151)]",
5735
+ text: "text-white",
5736
+ focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
5737
+ disabled: "disabled:bg-[var(--tiger-secondary-disabled,#9ca3af)]"
5738
+ },
5739
+ outline: {
5740
+ bg: "bg-transparent",
5741
+ bgHover: "hover:bg-[var(--tiger-outline-bg-hover,#eff6ff)]",
5742
+ text: "text-[var(--tiger-primary,#2563eb)]",
5743
+ border: "border-2 border-[var(--tiger-primary,#2563eb)]",
5744
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5745
+ disabled: "disabled:border-[var(--tiger-primary-disabled,#93c5fd)] disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
5746
+ },
5747
+ ghost: {
5748
+ bg: "bg-transparent",
5749
+ bgHover: "hover:bg-[var(--tiger-ghost-bg-hover,#eff6ff)]",
5750
+ text: "text-[var(--tiger-primary,#2563eb)]",
5751
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5752
+ disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
5753
+ },
5754
+ link: {
5755
+ bg: "bg-transparent",
5756
+ bgHover: "hover:underline",
5757
+ text: "text-[var(--tiger-primary,#2563eb)]",
5758
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5759
+ disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
5742
5760
  }
5743
- return classes.filter(Boolean).join(" ");
5761
+ };
5762
+ function getButtonVariantClasses(variant, colors = defaultThemeColors) {
5763
+ const scheme = colors[variant];
5764
+ const classes = [
5765
+ scheme.bg,
5766
+ scheme.bgHover,
5767
+ scheme.text,
5768
+ scheme.border,
5769
+ scheme.borderHover,
5770
+ scheme.focus,
5771
+ scheme.disabled
5772
+ ].filter(Boolean);
5773
+ return classes.join(" ");
5744
5774
  }
5745
- function getCarouselArrowClasses(type, disabled) {
5746
- const classes = [carouselArrowBaseClasses];
5747
- classes.push(type === "prev" ? carouselPrevArrowClasses : carouselNextArrowClasses);
5748
- if (disabled) {
5749
- classes.push(carouselArrowDisabledClasses);
5775
+ var defaultRadioColors = {
5776
+ border: "border-[var(--tiger-border,#d1d5db)]",
5777
+ borderChecked: "border-[var(--tiger-primary,#2563eb)]",
5778
+ bg: "bg-[var(--tiger-surface,#ffffff)]",
5779
+ bgChecked: "bg-[var(--tiger-primary,#2563eb)]",
5780
+ innerDot: "bg-[var(--tiger-surface,#ffffff)]",
5781
+ focus: "ring-[var(--tiger-primary,#2563eb)]",
5782
+ disabled: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#d1d5db)]",
5783
+ textDisabled: "text-[var(--tiger-text-muted,#6b7280)]"
5784
+ };
5785
+ var getRadioColorClasses = (colors = defaultRadioColors) => colors;
5786
+ var defaultLinkThemeColors = {
5787
+ primary: {
5788
+ text: "text-[var(--tiger-primary,#2563eb)]",
5789
+ textHover: "hover:text-[var(--tiger-primary-hover,#1d4ed8)]",
5790
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5791
+ disabled: "text-[var(--tiger-primary-disabled,#93c5fd)]"
5792
+ },
5793
+ secondary: {
5794
+ text: "text-[var(--tiger-secondary,#4b5563)]",
5795
+ textHover: "hover:text-[var(--tiger-secondary-hover,#374151)]",
5796
+ focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
5797
+ disabled: "text-[var(--tiger-secondary-disabled,#9ca3af)]"
5798
+ },
5799
+ default: {
5800
+ text: "text-gray-700",
5801
+ textHover: "hover:text-gray-900",
5802
+ focus: "focus:ring-gray-500",
5803
+ disabled: "text-gray-400"
5750
5804
  }
5751
- return classes.filter(Boolean).join(" ");
5805
+ };
5806
+ function getLinkVariantClasses(variant, colors, options) {
5807
+ const scheme = (colors ?? defaultLinkThemeColors)[variant];
5808
+ if (options?.disabled) return scheme.disabled;
5809
+ return `${scheme.text} ${scheme.textHover}`;
5752
5810
  }
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;
5811
+ var textSizeClasses = {
5812
+ xs: "text-xs",
5813
+ sm: "text-sm",
5814
+ base: "text-base",
5815
+ lg: "text-lg",
5816
+ xl: "text-xl",
5817
+ "2xl": "text-2xl",
5818
+ "3xl": "text-3xl",
5819
+ "4xl": "text-4xl",
5820
+ "5xl": "text-5xl",
5821
+ "6xl": "text-6xl"
5822
+ };
5823
+ var textWeightClasses = {
5824
+ thin: "font-thin",
5825
+ light: "font-light",
5826
+ normal: "font-normal",
5827
+ medium: "font-medium",
5828
+ semibold: "font-semibold",
5829
+ bold: "font-bold",
5830
+ extrabold: "font-extrabold",
5831
+ black: "font-black"
5832
+ };
5833
+ var textAlignClasses = {
5834
+ left: "text-left",
5835
+ center: "text-center",
5836
+ right: "text-right",
5837
+ justify: "text-justify"
5838
+ };
5839
+ var textColorClasses = {
5840
+ default: "text-[var(--tiger-text,#111827)]",
5841
+ primary: "text-[var(--tiger-primary,#2563eb)]",
5842
+ secondary: "text-[var(--tiger-secondary,#4b5563)]",
5843
+ success: "text-[var(--tiger-success,#16a34a)]",
5844
+ warning: "text-[var(--tiger-warning,#ca8a04)]",
5845
+ danger: "text-[var(--tiger-error,#dc2626)]",
5846
+ muted: "text-[var(--tiger-text-muted,#6b7280)]"
5847
+ };
5848
+ var textDecorationClasses = {
5849
+ truncate: "truncate",
5850
+ italic: "italic",
5851
+ underline: "underline",
5852
+ lineThrough: "line-through"
5853
+ };
5854
+ var defaultTagThemeColors = {
5855
+ default: {
5856
+ bg: "bg-[var(--tiger-tag-default-bg,#f3f4f6)]",
5857
+ text: "text-[var(--tiger-text,#111827)]",
5858
+ border: "border-[var(--tiger-border,#e5e7eb)]",
5859
+ closeBgHover: "hover:bg-[var(--tiger-tag-default-close-hover,#e5e7eb)]"
5860
+ },
5861
+ primary: {
5862
+ bg: "bg-[var(--tiger-tag-primary-bg,#dbeafe)]",
5863
+ text: "text-[var(--tiger-primary,#2563eb)]",
5864
+ border: "border-[var(--tiger-tag-primary-border,#bfdbfe)]",
5865
+ closeBgHover: "hover:bg-[var(--tiger-tag-primary-close-hover,#bfdbfe)]"
5866
+ },
5867
+ success: {
5868
+ bg: "bg-[var(--tiger-tag-success-bg,#dcfce7)]",
5869
+ text: "text-[var(--tiger-success,#16a34a)]",
5870
+ border: "border-[var(--tiger-tag-success-border,#bbf7d0)]",
5871
+ closeBgHover: "hover:bg-[var(--tiger-tag-success-close-hover,#bbf7d0)]"
5872
+ },
5873
+ warning: {
5874
+ bg: "bg-[var(--tiger-tag-warning-bg,#fef9c3)]",
5875
+ text: "text-[var(--tiger-warning,#ca8a04)]",
5876
+ border: "border-[var(--tiger-tag-warning-border,#fef08a)]",
5877
+ closeBgHover: "hover:bg-[var(--tiger-tag-warning-close-hover,#fef08a)]"
5878
+ },
5879
+ danger: {
5880
+ bg: "bg-[var(--tiger-tag-danger-bg,#fee2e2)]",
5881
+ text: "text-[var(--tiger-error,#dc2626)]",
5882
+ border: "border-[var(--tiger-tag-danger-border,#fecaca)]",
5883
+ closeBgHover: "hover:bg-[var(--tiger-tag-danger-close-hover,#fecaca)]"
5884
+ },
5885
+ info: {
5886
+ bg: "bg-[var(--tiger-tag-info-bg,#e0f2fe)]",
5887
+ text: "text-[var(--tiger-info,#3b82f6)]",
5888
+ border: "border-[var(--tiger-tag-info-border,#bae6fd)]",
5889
+ closeBgHover: "hover:bg-[var(--tiger-tag-info-close-hover,#bae6fd)]"
5758
5890
  }
5759
- return nextIndex;
5891
+ };
5892
+ function getTagVariantClasses(variant, colors = defaultTagThemeColors) {
5893
+ const scheme = colors[variant];
5894
+ const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
5895
+ return classes.join(" ");
5760
5896
  }
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;
5897
+ var defaultBadgeThemeColors = {
5898
+ default: {
5899
+ bg: "bg-[var(--tiger-text-muted,#6b7280)]",
5900
+ text: "text-white"
5901
+ },
5902
+ primary: {
5903
+ bg: "bg-[var(--tiger-primary,#2563eb)]",
5904
+ text: "text-white"
5905
+ },
5906
+ success: {
5907
+ bg: "bg-[var(--tiger-success,#16a34a)]",
5908
+ text: "text-white"
5909
+ },
5910
+ warning: {
5911
+ bg: "bg-[var(--tiger-warning,#ca8a04)]",
5912
+ text: "text-white"
5913
+ },
5914
+ danger: {
5915
+ bg: "bg-[var(--tiger-error,#dc2626)]",
5916
+ text: "text-white"
5917
+ },
5918
+ info: {
5919
+ bg: "bg-[var(--tiger-info,#3b82f6)]",
5920
+ text: "text-white"
5766
5921
  }
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;
5922
+ };
5923
+ function getBadgeVariantClasses(variant, colors = defaultBadgeThemeColors) {
5924
+ const scheme = colors[variant];
5925
+ return `${scheme.bg} ${scheme.text}`;
5776
5926
  }
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;
5927
+ var defaultProgressThemeColors = {
5928
+ default: {
5929
+ bg: "bg-[color:var(--tiger-text-muted,#6b7280)]",
5930
+ text: "text-[color:var(--tiger-text,#374151)]"
5931
+ },
5932
+ primary: {
5933
+ bg: "bg-[color:var(--tiger-primary,#2563eb)]",
5934
+ text: "text-[color:var(--tiger-primary,#2563eb)]"
5935
+ },
5936
+ success: {
5937
+ bg: "bg-[color:var(--tiger-success,#16a34a)]",
5938
+ text: "text-[color:var(--tiger-success,#16a34a)]"
5939
+ },
5940
+ warning: {
5941
+ bg: "bg-[color:var(--tiger-warning,#f59e0b)]",
5942
+ text: "text-[color:var(--tiger-warning,#f59e0b)]"
5943
+ },
5944
+ danger: {
5945
+ bg: "bg-[color:var(--tiger-error,#dc2626)]",
5946
+ text: "text-[color:var(--tiger-error,#dc2626)]"
5947
+ },
5948
+ info: {
5949
+ bg: "bg-[color:var(--tiger-info,#0ea5e9)]",
5950
+ text: "text-[color:var(--tiger-info,#0ea5e9)]"
5951
+ }
5952
+ };
5953
+ function getProgressVariantClasses(variant, colors = defaultProgressThemeColors) {
5954
+ const scheme = colors[variant];
5955
+ return scheme.bg;
5782
5956
  }
5783
- function getScrollTransform(currentIndex) {
5784
- return `translateX(-${currentIndex * 100}%)`;
5957
+ function getProgressTextColorClasses(variant, colors = defaultProgressThemeColors) {
5958
+ const scheme = colors[variant];
5959
+ return scheme.text || "text-[var(--tiger-text,#374151)]";
5960
+ }
5961
+ var defaultAlertThemeColors = {
5962
+ success: {
5963
+ bg: "bg-[var(--tiger-alert-success-bg,#f0fdf4)]",
5964
+ border: "border-[var(--tiger-alert-success-border,#bbf7d0)]",
5965
+ icon: "text-[var(--tiger-alert-success-icon,#22c55e)]",
5966
+ title: "text-[var(--tiger-alert-success-title,#166534)]",
5967
+ description: "text-[var(--tiger-alert-success-description,#15803d)]",
5968
+ closeButton: "text-[var(--tiger-alert-success-close,#22c55e)]",
5969
+ closeButtonHover: "hover:bg-[var(--tiger-alert-success-close-hover-bg,#dcfce7)]",
5970
+ focus: "focus:ring-[color:var(--tiger-alert-success-ring,#22c55e)]"
5971
+ },
5972
+ warning: {
5973
+ bg: "bg-[var(--tiger-alert-warning-bg,#fefce8)]",
5974
+ border: "border-[var(--tiger-alert-warning-border,#fef08a)]",
5975
+ icon: "text-[var(--tiger-alert-warning-icon,#eab308)]",
5976
+ title: "text-[var(--tiger-alert-warning-title,#854d0e)]",
5977
+ description: "text-[var(--tiger-alert-warning-description,#a16207)]",
5978
+ closeButton: "text-[var(--tiger-alert-warning-close,#eab308)]",
5979
+ closeButtonHover: "hover:bg-[var(--tiger-alert-warning-close-hover-bg,#fef9c3)]",
5980
+ focus: "focus:ring-[color:var(--tiger-alert-warning-ring,#eab308)]"
5981
+ },
5982
+ error: {
5983
+ bg: "bg-[var(--tiger-alert-error-bg,#fef2f2)]",
5984
+ border: "border-[var(--tiger-alert-error-border,#fecaca)]",
5985
+ icon: "text-[var(--tiger-alert-error-icon,#ef4444)]",
5986
+ title: "text-[var(--tiger-alert-error-title,#991b1b)]",
5987
+ description: "text-[var(--tiger-alert-error-description,#b91c1c)]",
5988
+ closeButton: "text-[var(--tiger-alert-error-close,#ef4444)]",
5989
+ closeButtonHover: "hover:bg-[var(--tiger-alert-error-close-hover-bg,#fee2e2)]",
5990
+ focus: "focus:ring-[color:var(--tiger-alert-error-ring,#ef4444)]"
5991
+ },
5992
+ info: {
5993
+ bg: "bg-[var(--tiger-alert-info-bg,#eff6ff)]",
5994
+ border: "border-[var(--tiger-alert-info-border,#bfdbfe)]",
5995
+ icon: "text-[var(--tiger-alert-info-icon,#3b82f6)]",
5996
+ title: "text-[var(--tiger-alert-info-title,#1e40af)]",
5997
+ description: "text-[var(--tiger-alert-info-description,#1d4ed8)]",
5998
+ closeButton: "text-[var(--tiger-alert-info-close,#3b82f6)]",
5999
+ closeButtonHover: "hover:bg-[var(--tiger-alert-info-close-hover-bg,#dbeafe)]",
6000
+ focus: "focus:ring-[color:var(--tiger-alert-info-ring,#3b82f6)]"
6001
+ }
6002
+ };
6003
+ function getAlertTypeClasses(type, colors = defaultAlertThemeColors) {
6004
+ return colors[type];
6005
+ }
6006
+
6007
+ // src/utils/text-utils.ts
6008
+ function getTextClasses(props) {
6009
+ const {
6010
+ size = "base",
6011
+ weight = "normal",
6012
+ align,
6013
+ color = "default",
6014
+ truncate,
6015
+ italic,
6016
+ underline,
6017
+ lineThrough
6018
+ } = props;
6019
+ return classNames(
6020
+ textSizeClasses[size],
6021
+ textWeightClasses[weight],
6022
+ align && textAlignClasses[align],
6023
+ textColorClasses[color],
6024
+ truncate && textDecorationClasses.truncate,
6025
+ italic && textDecorationClasses.italic,
6026
+ underline && textDecorationClasses.underline,
6027
+ lineThrough && textDecorationClasses.lineThrough
6028
+ );
6029
+ }
6030
+
6031
+ // src/utils/carousel-utils.ts
6032
+ var carouselBaseClasses = "relative overflow-hidden w-full";
6033
+ var carouselTrackScrollClasses = "flex transition-transform ease-in-out";
6034
+ var carouselTrackFadeClasses = "relative";
6035
+ var carouselSlideBaseClasses = "flex-shrink-0 w-full";
6036
+ var carouselDotsBaseClasses = "absolute flex gap-2 z-10";
6037
+ var carouselDotsPositionClasses = {
6038
+ top: "top-4 left-1/2 -translate-x-1/2 flex-row",
6039
+ bottom: "bottom-4 left-1/2 -translate-x-1/2 flex-row",
6040
+ left: "left-4 top-1/2 -translate-y-1/2 flex-col",
6041
+ right: "right-4 top-1/2 -translate-y-1/2 flex-col"
6042
+ };
6043
+ 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";
6044
+ var carouselDotActiveClasses = "bg-white scale-110";
6045
+ 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";
6046
+ var carouselPrevArrowClasses = "left-4";
6047
+ var carouselNextArrowClasses = "right-4";
6048
+ var carouselArrowDisabledClasses = "opacity-50 cursor-not-allowed pointer-events-none";
6049
+ function getCarouselContainerClasses(className) {
6050
+ return className ? `${carouselBaseClasses} ${className}` : carouselBaseClasses;
6051
+ }
6052
+ function getCarouselDotsClasses(position) {
6053
+ return `${carouselDotsBaseClasses} ${carouselDotsPositionClasses[position]}`;
6054
+ }
6055
+ function getCarouselDotClasses(isActive) {
6056
+ return isActive ? `${carouselDotClasses} ${carouselDotActiveClasses}` : carouselDotClasses;
6057
+ }
6058
+ function getCarouselArrowClasses(type, disabled) {
6059
+ const position = type === "prev" ? carouselPrevArrowClasses : carouselNextArrowClasses;
6060
+ return disabled ? `${carouselArrowBaseClasses} ${position} ${carouselArrowDisabledClasses}` : `${carouselArrowBaseClasses} ${position}`;
6061
+ }
6062
+ function getNextSlideIndex(currentIndex, totalSlides, infinite) {
6063
+ if (totalSlides <= 0) return 0;
6064
+ const nextIndex = currentIndex + 1;
6065
+ if (nextIndex >= totalSlides) {
6066
+ return infinite ? 0 : currentIndex;
6067
+ }
6068
+ return nextIndex;
6069
+ }
6070
+ function getPrevSlideIndex(currentIndex, totalSlides, infinite) {
6071
+ if (totalSlides <= 0) return 0;
6072
+ const prevIndex = currentIndex - 1;
6073
+ if (prevIndex < 0) {
6074
+ return infinite ? totalSlides - 1 : currentIndex;
6075
+ }
6076
+ return prevIndex;
6077
+ }
6078
+ function isNextDisabled(currentIndex, totalSlides, infinite) {
6079
+ if (infinite) return false;
6080
+ return currentIndex >= totalSlides - 1;
6081
+ }
6082
+ function isPrevDisabled(currentIndex, _totalSlides, infinite) {
6083
+ if (infinite) return false;
6084
+ return currentIndex <= 0;
6085
+ }
6086
+ function clampSlideIndex(index, totalSlides) {
6087
+ if (totalSlides <= 0) return 0;
6088
+ if (index < 0) return 0;
6089
+ if (index >= totalSlides) return totalSlides - 1;
6090
+ return index;
6091
+ }
6092
+ function getScrollTransform(currentIndex) {
6093
+ return `translateX(-${currentIndex * 100}%)`;
5785
6094
  }
5786
6095
  var carouselPrevArrowPath = "M15.75 19.5L8.25 12l7.5-7.5";
5787
6096
  var carouselNextArrowPath = "M8.25 4.5l7.5 7.5-7.5 7.5";
@@ -5798,14 +6107,7 @@ var anchorLinkListHorizontalClasses = "flex items-center space-x-4 pb-2";
5798
6107
  var anchorLinkBaseClasses = "block text-sm text-gray-600 hover:text-[var(--tiger-primary,#2563eb)] transition-colors duration-200 whitespace-nowrap";
5799
6108
  var anchorLinkActiveClasses = "text-[var(--tiger-primary,#2563eb)] font-medium";
5800
6109
  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(" ");
6110
+ return [anchorBaseClasses, affix && anchorAffixClasses, className].filter(Boolean).join(" ");
5809
6111
  }
5810
6112
  function getAnchorInkContainerClasses(direction) {
5811
6113
  return direction === "vertical" ? anchorInkContainerVerticalClasses : anchorInkContainerHorizontalClasses;
@@ -5817,14 +6119,7 @@ function getAnchorLinkListClasses(direction) {
5817
6119
  return direction === "vertical" ? anchorLinkListVerticalClasses : anchorLinkListHorizontalClasses;
5818
6120
  }
5819
6121
  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(" ");
6122
+ return [anchorLinkBaseClasses, active && anchorLinkActiveClasses, className].filter(Boolean).join(" ");
5828
6123
  }
5829
6124
  function getAnchorTargetElement(href) {
5830
6125
  if (!href || !href.startsWith("#")) {
@@ -5872,19 +6167,9 @@ function scrollToAnchor(href, container, targetOffset = 0) {
5872
6167
  if (!element) {
5873
6168
  return;
5874
6169
  }
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
- }
6170
+ const top = getElementOffsetTop(element, container) - targetOffset;
6171
+ const scrollTarget = container === window ? window : container;
6172
+ scrollTarget.scrollTo({ top, behavior: "smooth" });
5888
6173
  }
5889
6174
  function findActiveAnchor(links, container, bounds = 5, targetOffset = 0) {
5890
6175
  if (links.length === 0) {
@@ -6140,6 +6425,33 @@ function createPieArcPath(options) {
6140
6425
  "Z"
6141
6426
  ].join(" ");
6142
6427
  }
6428
+ function computePieHoverOffset(startAngle, endAngle, offset2) {
6429
+ const midAngle = (startAngle + endAngle) / 2;
6430
+ return {
6431
+ dx: offset2 * Math.cos(midAngle),
6432
+ dy: offset2 * Math.sin(midAngle)
6433
+ };
6434
+ }
6435
+ function computePieLabelLine(cx, cy, outerRadius, startAngle, endAngle, offset2) {
6436
+ const midAngle = (startAngle + endAngle) / 2;
6437
+ const gap = offset2 ?? Math.max(12, outerRadius * 0.15);
6438
+ const anchor = polarToCartesian(cx, cy, outerRadius, midAngle);
6439
+ const elbow = polarToCartesian(cx, cy, outerRadius + gap * 0.6, midAngle);
6440
+ const isRight = Math.cos(midAngle) >= 0;
6441
+ return {
6442
+ anchor,
6443
+ elbow,
6444
+ label: {
6445
+ x: elbow.x + (isRight ? gap * 0.8 : -gap * 0.8),
6446
+ y: elbow.y
6447
+ },
6448
+ textAnchor: isRight ? "start" : "end"
6449
+ };
6450
+ }
6451
+ var PIE_EMPHASIS_SHADOW = "drop-shadow(0 4px 8px rgba(0,0,0,0.2))";
6452
+ var PIE_BASE_SHADOW = "drop-shadow(0 1px 2px rgba(0,0,0,0.06))";
6453
+ var DONUT_EMPHASIS_SHADOW = "drop-shadow(0 8px 20px rgba(0,0,0,0.28)) drop-shadow(0 2px 6px rgba(0,0,0,0.12))";
6454
+ var DONUT_BASE_SHADOW = "drop-shadow(0 2px 8px rgba(0,0,0,0.10))";
6143
6455
  function getRadarAngles(count, startAngle = -Math.PI / 2) {
6144
6456
  if (count <= 0) return [];
6145
6457
  const step = Math.PI * 2 / count;
@@ -6175,6 +6487,49 @@ function createPolygonPath(points) {
6175
6487
  " "
6176
6488
  );
6177
6489
  }
6490
+ function getRadarLabelAlign(angle) {
6491
+ const TWO_PI = Math.PI * 2;
6492
+ const a = (angle % TWO_PI + TWO_PI) % TWO_PI;
6493
+ const threshold = Math.PI / 10;
6494
+ let textAnchor;
6495
+ if (Math.abs(a - Math.PI * 1.5) < threshold || a < threshold || Math.abs(a - TWO_PI) < threshold) {
6496
+ textAnchor = "middle";
6497
+ } else if (a > Math.PI - threshold && a < Math.PI + threshold) {
6498
+ textAnchor = "middle";
6499
+ } else if (a < Math.PI) {
6500
+ textAnchor = "start";
6501
+ } else {
6502
+ textAnchor = "end";
6503
+ }
6504
+ let dominantBaseline;
6505
+ if (Math.abs(a - Math.PI / 2) < threshold * 1.5) {
6506
+ dominantBaseline = "hanging";
6507
+ } else if (Math.abs(a - Math.PI * 1.5) < threshold * 1.5) {
6508
+ dominantBaseline = "auto";
6509
+ } else {
6510
+ dominantBaseline = "middle";
6511
+ }
6512
+ return { textAnchor, dominantBaseline };
6513
+ }
6514
+ var RADAR_SPLIT_AREA_COLORS = [
6515
+ "var(--tiger-chart-split-1,rgba(0,0,0,0.02))",
6516
+ "var(--tiger-chart-split-2,rgba(0,0,0,0.05))"
6517
+ ];
6518
+ var lineGradientCounter = 0;
6519
+ function getLineGradientPrefix() {
6520
+ return `tiger-line-grad-${++lineGradientCounter}`;
6521
+ }
6522
+ function resetLineGradientCounter() {
6523
+ lineGradientCounter = 0;
6524
+ }
6525
+ var areaGradientCounter = 0;
6526
+ function getAreaGradientPrefix() {
6527
+ return `tiger-area-grad-${++areaGradientCounter}`;
6528
+ }
6529
+ function resetAreaGradientCounter() {
6530
+ areaGradientCounter = 0;
6531
+ }
6532
+ var linePointTransitionClasses = "transition-all duration-200 ease-out";
6178
6533
  function createLinePath(points, curve = "linear") {
6179
6534
  if (points.length === 0) return "";
6180
6535
  if (points.length === 1) return `M ${points[0].x} ${points[0].y}`;
@@ -6330,6 +6685,63 @@ function stackSeriesData(seriesData) {
6330
6685
  }
6331
6686
  return result;
6332
6687
  }
6688
+ var barGradientCounter = 0;
6689
+ function getBarGradientPrefix() {
6690
+ return `tiger-bar-grad-${++barGradientCounter}`;
6691
+ }
6692
+ function resetBarGradientCounter() {
6693
+ barGradientCounter = 0;
6694
+ }
6695
+ function clampBarWidth(width, maxWidth) {
6696
+ if (maxWidth === void 0 || maxWidth <= 0) return width;
6697
+ return Math.min(width, maxWidth);
6698
+ }
6699
+ function ensureBarMinHeight(barY, barHeight, baseline, minHeight) {
6700
+ if (minHeight <= 0 || barHeight === 0 || barHeight >= minHeight) {
6701
+ return { y: barY, height: barHeight };
6702
+ }
6703
+ if (barY < baseline) {
6704
+ return { y: baseline - minHeight, height: minHeight };
6705
+ }
6706
+ return { y: baseline, height: minHeight };
6707
+ }
6708
+ function getBarValueLabelY(barY, barHeight, position, offset2 = 8) {
6709
+ if (position === "inside") {
6710
+ return barY + barHeight / 2;
6711
+ }
6712
+ return barY - offset2;
6713
+ }
6714
+ var barValueLabelClasses = "fill-[color:var(--tiger-text,#374151)] text-[11px] font-medium pointer-events-none select-none";
6715
+ var barValueLabelInsideClasses = "fill-white text-[11px] font-medium pointer-events-none select-none";
6716
+ var barAnimatedTransition = "transition: y 600ms cubic-bezier(.4,0,.2,1), height 600ms cubic-bezier(.4,0,.2,1), opacity 200ms ease-out, filter 200ms ease-out";
6717
+ var scatterGradientCounter = 0;
6718
+ function getScatterGradientPrefix() {
6719
+ return `tiger-scatter-grad-${++scatterGradientCounter}`;
6720
+ }
6721
+ function resetScatterGradientCounter() {
6722
+ scatterGradientCounter = 0;
6723
+ }
6724
+ var scatterPointTransitionClasses = "transition-all duration-200 ease-out";
6725
+ function getScatterHoverShadow(color) {
6726
+ return `drop-shadow(0 0 4px ${color})`;
6727
+ }
6728
+ function getScatterPointPath(style, size) {
6729
+ switch (style) {
6730
+ case "square":
6731
+ return `M ${-size} ${-size} L ${size} ${-size} L ${size} ${size} L ${-size} ${size} Z`;
6732
+ case "triangle": {
6733
+ const h = size * 1.15;
6734
+ return `M 0 ${-h} L ${size} ${h * 0.75} L ${-size} ${h * 0.75} Z`;
6735
+ }
6736
+ case "diamond":
6737
+ return `M 0 ${-size * 1.2} L ${size} 0 L 0 ${size * 1.2} L ${-size} 0 Z`;
6738
+ }
6739
+ }
6740
+ function getScatterHoverSize(baseSize) {
6741
+ return baseSize + 2;
6742
+ }
6743
+ 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)}}`;
6744
+ var SCATTER_ENTRANCE_CLASS = "tiger-scatter-entrance";
6333
6745
 
6334
6746
  // src/utils/chart-interaction.ts
6335
6747
  function createChartInteractionHandlers(data, state, options) {
@@ -6427,6 +6839,59 @@ function getChartEntranceTransform(type, progress, options = {}) {
6427
6839
  }
6428
6840
  }
6429
6841
 
6842
+ // src/utils/chart-shared.ts
6843
+ function resolveChartPalette(colors, fallbackColor) {
6844
+ if (colors && colors.length > 0) return colors;
6845
+ if (fallbackColor) return [fallbackColor];
6846
+ return [...DEFAULT_CHART_COLORS];
6847
+ }
6848
+ function buildChartLegendItems(options) {
6849
+ const { data, palette, activeIndex, getLabel, getColor } = options;
6850
+ return data.map((datum, index) => ({
6851
+ index,
6852
+ label: getLabel(datum, index),
6853
+ color: getColor ? getColor(datum, index) : palette[index % palette.length],
6854
+ active: activeIndex === null || activeIndex === index
6855
+ }));
6856
+ }
6857
+ function resolveChartTooltipContent(hoveredIndex, data, formatter, defaultFormatter) {
6858
+ if (hoveredIndex === null) return "";
6859
+ const datum = data[hoveredIndex];
6860
+ if (!datum) return "";
6861
+ const fmt = formatter ?? defaultFormatter;
6862
+ return fmt(datum, hoveredIndex);
6863
+ }
6864
+ function resolveMultiSeriesTooltipContent(hoveredPoint, series, formatter, defaultFormatter) {
6865
+ if (!hoveredPoint) return "";
6866
+ const { seriesIndex, pointIndex } = hoveredPoint;
6867
+ const s = series[seriesIndex];
6868
+ const datum = s?.data[pointIndex];
6869
+ if (!datum) return "";
6870
+ const fmt = formatter ?? defaultFormatter;
6871
+ return fmt(datum, seriesIndex, pointIndex, s);
6872
+ }
6873
+ function resolveSeriesData(series, data, defaultSeries) {
6874
+ if (series && series.length > 0) return series;
6875
+ if (data && data.length > 0) {
6876
+ return [{ ...defaultSeries, data }];
6877
+ }
6878
+ return [];
6879
+ }
6880
+ function defaultXYTooltipFormatter(datum, index) {
6881
+ const label = datum.label ?? (datum.x !== void 0 ? String(datum.x) : `#${index + 1}`);
6882
+ return `${label}: ${datum.y ?? ""}`;
6883
+ }
6884
+ function defaultSeriesXYTooltipFormatter(datum, seriesIndex, _pointIndex, series) {
6885
+ const seriesName = series?.name ?? `Series ${seriesIndex + 1}`;
6886
+ const label = datum.label ?? (datum.x !== void 0 ? String(datum.x) : "");
6887
+ return `${seriesName} \xB7 ${label}: ${datum.y ?? ""}`;
6888
+ }
6889
+ function defaultRadarTooltipFormatter(datum, seriesIndex, _pointIndex, series) {
6890
+ const seriesName = series?.name ?? `Series ${seriesIndex + 1}`;
6891
+ const label = datum.label ?? `#${_pointIndex + 1}`;
6892
+ return `${seriesName} \xB7 ${label}: ${datum.value}`;
6893
+ }
6894
+
6430
6895
  // src/utils/floating.ts
6431
6896
  var import_dom = require("@floating-ui/dom");
6432
6897
  async function computeFloatingPosition(reference, floating, options = {}) {
@@ -6495,484 +6960,185 @@ function getArrowStyles(placement, arrowData) {
6495
6960
  top: "bottom",
6496
6961
  bottom: "top",
6497
6962
  left: "right",
6498
- right: "left"
6499
- };
6500
- const styles = {
6501
- position: "absolute",
6502
- [staticSide[side]]: "-4px"
6503
- };
6504
- if (arrowData?.x != null) {
6505
- styles.left = `${arrowData.x}px`;
6506
- }
6507
- if (arrowData?.y != null) {
6508
- styles.top = `${arrowData.y}px`;
6509
- }
6510
- return styles;
6511
- }
6512
- function applyFloatingStyles(element, result) {
6513
- element.style.left = `${result.x}px`;
6514
- element.style.top = `${result.y}px`;
6515
- }
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
-
6678
- // src/theme/colors.ts
6679
- var defaultThemeColors = {
6680
- primary: {
6681
- bg: "bg-[var(--tiger-primary,#2563eb)]",
6682
- bgHover: "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
6683
- text: "text-white",
6684
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6685
- disabled: "disabled:bg-[var(--tiger-primary-disabled,#93c5fd)]"
6686
- },
6687
- secondary: {
6688
- bg: "bg-[var(--tiger-secondary,#4b5563)]",
6689
- bgHover: "hover:bg-[var(--tiger-secondary-hover,#374151)]",
6690
- text: "text-white",
6691
- focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
6692
- disabled: "disabled:bg-[var(--tiger-secondary-disabled,#9ca3af)]"
6693
- },
6694
- outline: {
6695
- bg: "bg-transparent",
6696
- bgHover: "hover:bg-[var(--tiger-outline-bg-hover,#eff6ff)]",
6697
- text: "text-[var(--tiger-primary,#2563eb)]",
6698
- border: "border-2 border-[var(--tiger-primary,#2563eb)]",
6699
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6700
- disabled: "disabled:border-[var(--tiger-primary-disabled,#93c5fd)] disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6701
- },
6702
- ghost: {
6703
- bg: "bg-transparent",
6704
- bgHover: "hover:bg-[var(--tiger-ghost-bg-hover,#eff6ff)]",
6705
- text: "text-[var(--tiger-primary,#2563eb)]",
6706
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6707
- disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6708
- },
6709
- link: {
6710
- bg: "bg-transparent",
6711
- bgHover: "hover:underline",
6712
- text: "text-[var(--tiger-primary,#2563eb)]",
6713
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6714
- disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6715
- }
6716
- };
6717
- function getButtonVariantClasses(variant, colors = defaultThemeColors) {
6718
- const scheme = colors[variant];
6719
- const classes = [
6720
- scheme.bg,
6721
- scheme.bgHover,
6722
- scheme.text,
6723
- scheme.border,
6724
- scheme.borderHover,
6725
- scheme.focus,
6726
- scheme.disabled
6727
- ].filter(Boolean);
6728
- return classes.join(" ");
6729
- }
6730
- var defaultRadioColors = {
6731
- border: "border-[var(--tiger-border,#d1d5db)]",
6732
- borderChecked: "border-[var(--tiger-primary,#2563eb)]",
6733
- bg: "bg-[var(--tiger-surface,#ffffff)]",
6734
- bgChecked: "bg-[var(--tiger-primary,#2563eb)]",
6735
- innerDot: "bg-[var(--tiger-surface,#ffffff)]",
6736
- focus: "ring-[var(--tiger-primary,#2563eb)]",
6737
- disabled: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#d1d5db)]",
6738
- textDisabled: "text-[var(--tiger-text-muted,#6b7280)]"
6739
- };
6740
- function getRadioColorClasses(colors = defaultRadioColors) {
6741
- return colors;
6742
- }
6743
- var defaultLinkThemeColors = {
6744
- primary: {
6745
- text: "text-[var(--tiger-primary,#2563eb)]",
6746
- textHover: "hover:text-[var(--tiger-primary-hover,#1d4ed8)]",
6747
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6748
- disabled: "text-[var(--tiger-primary-disabled,#93c5fd)]"
6749
- },
6750
- secondary: {
6751
- text: "text-[var(--tiger-secondary,#4b5563)]",
6752
- textHover: "hover:text-[var(--tiger-secondary-hover,#374151)]",
6753
- focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
6754
- disabled: "text-[var(--tiger-secondary-disabled,#9ca3af)]"
6755
- },
6756
- default: {
6757
- text: "text-gray-700",
6758
- textHover: "hover:text-gray-900",
6759
- focus: "focus:ring-gray-500",
6760
- disabled: "text-gray-400"
6761
- }
6762
- };
6763
- function getLinkVariantClasses(variant, colors, options) {
6764
- const scheme = (colors ?? defaultLinkThemeColors)[variant];
6765
- const classes = [
6766
- scheme.text,
6767
- scheme.textHover,
6768
- scheme.focus,
6769
- `disabled:${scheme.disabled}`,
6770
- options?.disabled ? scheme.disabled : void 0
6771
- ].filter(Boolean);
6772
- return classes.join(" ");
6773
- }
6774
- var textSizeClasses = {
6775
- xs: "text-xs",
6776
- sm: "text-sm",
6777
- base: "text-base",
6778
- lg: "text-lg",
6779
- xl: "text-xl",
6780
- "2xl": "text-2xl",
6781
- "3xl": "text-3xl",
6782
- "4xl": "text-4xl",
6783
- "5xl": "text-5xl",
6784
- "6xl": "text-6xl"
6785
- };
6786
- var textWeightClasses = {
6787
- thin: "font-thin",
6788
- light: "font-light",
6789
- normal: "font-normal",
6790
- medium: "font-medium",
6791
- semibold: "font-semibold",
6792
- bold: "font-bold",
6793
- extrabold: "font-extrabold",
6794
- black: "font-black"
6795
- };
6796
- var textAlignClasses = {
6797
- left: "text-left",
6798
- center: "text-center",
6799
- right: "text-right",
6800
- justify: "text-justify"
6801
- };
6802
- var textColorClasses = {
6803
- default: "text-[var(--tiger-text,#111827)]",
6804
- primary: "text-[var(--tiger-primary,#2563eb)]",
6805
- secondary: "text-[var(--tiger-secondary,#4b5563)]",
6806
- success: "text-[var(--tiger-success,#16a34a)]",
6807
- warning: "text-[var(--tiger-warning,#ca8a04)]",
6808
- danger: "text-[var(--tiger-error,#dc2626)]",
6809
- muted: "text-[var(--tiger-text-muted,#6b7280)]"
6810
- };
6811
- var textDecorationClasses = {
6812
- truncate: "truncate",
6813
- italic: "italic",
6814
- underline: "underline",
6815
- lineThrough: "line-through"
6816
- };
6817
- var defaultTagThemeColors = {
6818
- default: {
6819
- bg: "bg-[var(--tiger-tag-default-bg,#f3f4f6)]",
6820
- text: "text-[var(--tiger-text,#111827)]",
6821
- border: "border-[var(--tiger-border,#e5e7eb)]",
6822
- closeBgHover: "hover:bg-[var(--tiger-tag-default-close-hover,#e5e7eb)]"
6823
- },
6824
- primary: {
6825
- bg: "bg-[var(--tiger-tag-primary-bg,#dbeafe)]",
6826
- text: "text-[var(--tiger-primary,#2563eb)]",
6827
- border: "border-[var(--tiger-tag-primary-border,#bfdbfe)]",
6828
- closeBgHover: "hover:bg-[var(--tiger-tag-primary-close-hover,#bfdbfe)]"
6829
- },
6830
- success: {
6831
- bg: "bg-[var(--tiger-tag-success-bg,#dcfce7)]",
6832
- text: "text-[var(--tiger-success,#16a34a)]",
6833
- border: "border-[var(--tiger-tag-success-border,#bbf7d0)]",
6834
- closeBgHover: "hover:bg-[var(--tiger-tag-success-close-hover,#bbf7d0)]"
6835
- },
6836
- warning: {
6837
- bg: "bg-[var(--tiger-tag-warning-bg,#fef9c3)]",
6838
- text: "text-[var(--tiger-warning,#ca8a04)]",
6839
- border: "border-[var(--tiger-tag-warning-border,#fef08a)]",
6840
- closeBgHover: "hover:bg-[var(--tiger-tag-warning-close-hover,#fef08a)]"
6841
- },
6842
- danger: {
6843
- bg: "bg-[var(--tiger-tag-danger-bg,#fee2e2)]",
6844
- text: "text-[var(--tiger-error,#dc2626)]",
6845
- border: "border-[var(--tiger-tag-danger-border,#fecaca)]",
6846
- closeBgHover: "hover:bg-[var(--tiger-tag-danger-close-hover,#fecaca)]"
6847
- },
6848
- info: {
6849
- bg: "bg-[var(--tiger-tag-info-bg,#e0f2fe)]",
6850
- text: "text-[var(--tiger-info,#3b82f6)]",
6851
- border: "border-[var(--tiger-tag-info-border,#bae6fd)]",
6852
- closeBgHover: "hover:bg-[var(--tiger-tag-info-close-hover,#bae6fd)]"
6853
- }
6854
- };
6855
- function getTagVariantClasses(variant, colors = defaultTagThemeColors) {
6856
- const scheme = colors[variant];
6857
- const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
6858
- return classes.join(" ");
6859
- }
6860
- var defaultBadgeThemeColors = {
6861
- default: {
6862
- bg: "bg-[var(--tiger-text-muted,#6b7280)]",
6863
- text: "text-white",
6864
- border: "border-[var(--tiger-text-muted,#6b7280)]"
6865
- },
6866
- primary: {
6867
- bg: "bg-[var(--tiger-primary,#2563eb)]",
6868
- text: "text-white",
6869
- border: "border-[var(--tiger-primary,#2563eb)]"
6870
- },
6871
- success: {
6872
- bg: "bg-[var(--tiger-success,#16a34a)]",
6873
- text: "text-white",
6874
- border: "border-[var(--tiger-success,#16a34a)]"
6875
- },
6876
- warning: {
6877
- bg: "bg-[var(--tiger-warning,#ca8a04)]",
6878
- text: "text-white",
6879
- border: "border-[var(--tiger-warning,#ca8a04)]"
6880
- },
6881
- danger: {
6882
- bg: "bg-[var(--tiger-error,#dc2626)]",
6883
- text: "text-white",
6884
- border: "border-[var(--tiger-error,#dc2626)]"
6885
- },
6886
- info: {
6887
- bg: "bg-[var(--tiger-info,#3b82f6)]",
6888
- text: "text-white",
6889
- border: "border-[var(--tiger-info,#3b82f6)]"
6963
+ right: "left"
6964
+ };
6965
+ const styles = {
6966
+ position: "absolute",
6967
+ [staticSide[side]]: "-4px"
6968
+ };
6969
+ if (arrowData?.x != null) {
6970
+ styles.left = `${arrowData.x}px`;
6890
6971
  }
6972
+ if (arrowData?.y != null) {
6973
+ styles.top = `${arrowData.y}px`;
6974
+ }
6975
+ return styles;
6976
+ }
6977
+ function applyFloatingStyles(element, result) {
6978
+ element.style.left = `${result.x}px`;
6979
+ element.style.top = `${result.y}px`;
6980
+ }
6981
+
6982
+ // src/utils/chat-window-utils.ts
6983
+ var defaultChatMessageStatusInfo = {
6984
+ sending: { text: "\u53D1\u9001\u4E2D", className: "text-[var(--tiger-text-muted,#6b7280)]" },
6985
+ sent: { text: "\u5DF2\u9001\u8FBE", className: "text-[var(--tiger-text-muted,#6b7280)]" },
6986
+ failed: { text: "\u53D1\u9001\u5931\u8D25", className: "text-[var(--tiger-danger,#ef4444)]" }
6891
6987
  };
6892
- function getBadgeVariantClasses(variant, colors = defaultBadgeThemeColors) {
6893
- const scheme = colors[variant];
6894
- const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
6895
- return classes.join(" ");
6988
+ function getChatMessageStatusInfo(status, statusMap = defaultChatMessageStatusInfo) {
6989
+ return statusMap[status] || defaultChatMessageStatusInfo[status];
6896
6990
  }
6897
- var defaultProgressThemeColors = {
6898
- default: {
6899
- bg: "bg-[color:var(--tiger-text-muted,#6b7280)]",
6900
- text: "text-[color:var(--tiger-text,#374151)]"
6901
- },
6902
- primary: {
6903
- bg: "bg-[color:var(--tiger-primary,#2563eb)]",
6904
- text: "text-[color:var(--tiger-primary,#2563eb)]"
6905
- },
6906
- success: {
6907
- bg: "bg-[color:var(--tiger-success,#16a34a)]",
6908
- text: "text-[color:var(--tiger-success,#16a34a)]"
6909
- },
6910
- warning: {
6911
- bg: "bg-[color:var(--tiger-warning,#f59e0b)]",
6912
- text: "text-[color:var(--tiger-warning,#f59e0b)]"
6913
- },
6914
- danger: {
6915
- bg: "bg-[color:var(--tiger-error,#dc2626)]",
6916
- text: "text-[color:var(--tiger-error,#dc2626)]"
6917
- },
6918
- info: {
6919
- bg: "bg-[color:var(--tiger-info,#0ea5e9)]",
6920
- text: "text-[color:var(--tiger-info,#0ea5e9)]"
6991
+
6992
+ // src/utils/activity-feed-utils.ts
6993
+ var formatActivityTime = (value) => {
6994
+ if (value == null || value === "") return "";
6995
+ if (value instanceof Date) return value.toLocaleString();
6996
+ if (typeof value === "number") return new Date(value).toLocaleString();
6997
+ return value;
6998
+ };
6999
+ var sortActivityGroups = (groups, groupOrder) => {
7000
+ if (!groupOrder || groupOrder.length === 0) return groups;
7001
+ const orderMap = new Map(groupOrder.map((key, index) => [key, index]));
7002
+ return [...groups].sort((a, b) => {
7003
+ const aKey = String(a.key ?? a.title ?? "");
7004
+ const bKey = String(b.key ?? b.title ?? "");
7005
+ const aIndex = orderMap.has(aKey) ? orderMap.get(aKey) : Number.POSITIVE_INFINITY;
7006
+ const bIndex = orderMap.has(bKey) ? orderMap.get(bKey) : Number.POSITIVE_INFINITY;
7007
+ if (aIndex === bIndex) return 0;
7008
+ return aIndex - bIndex;
7009
+ });
7010
+ };
7011
+ var buildActivityGroups = (items, groups, groupBy, groupOrder) => {
7012
+ if (groups && groups.length > 0) {
7013
+ return sortActivityGroups(groups, groupOrder);
7014
+ }
7015
+ if (!items || items.length === 0) return [];
7016
+ if (groupBy) {
7017
+ const groupMap = /* @__PURE__ */ new Map();
7018
+ items.forEach((item) => {
7019
+ const key = groupBy(item) || "\u5176\u4ED6";
7020
+ const bucket = groupMap.get(key) ?? [];
7021
+ bucket.push(item);
7022
+ groupMap.set(key, bucket);
7023
+ });
7024
+ const mappedGroups = Array.from(groupMap.entries()).map(([title, groupItems]) => ({
7025
+ key: title,
7026
+ title,
7027
+ items: groupItems
7028
+ }));
7029
+ return sortActivityGroups(mappedGroups, groupOrder);
6921
7030
  }
7031
+ return [{ key: "default", title: "", items }];
6922
7032
  };
6923
- function getProgressVariantClasses(variant, colors = defaultProgressThemeColors) {
6924
- const scheme = colors[variant];
6925
- return scheme.bg;
6926
- }
6927
- function getProgressTextColorClasses(variant, colors = defaultProgressThemeColors) {
6928
- const scheme = colors[variant];
6929
- return scheme.text || "text-[var(--tiger-text,#374151)]";
6930
- }
6931
- var defaultAlertThemeColors = {
6932
- success: {
6933
- bg: "bg-[var(--tiger-alert-success-bg,#f0fdf4)]",
6934
- border: "border-[var(--tiger-alert-success-border,#bbf7d0)]",
6935
- icon: "text-[var(--tiger-alert-success-icon,#22c55e)]",
6936
- title: "text-[var(--tiger-alert-success-title,#166534)]",
6937
- description: "text-[var(--tiger-alert-success-description,#15803d)]",
6938
- closeButton: "text-[var(--tiger-alert-success-close,#22c55e)]",
6939
- closeButtonHover: "hover:bg-[var(--tiger-alert-success-close-hover-bg,#dcfce7)]",
6940
- focus: "focus:ring-[color:var(--tiger-alert-success-ring,#22c55e)]"
6941
- },
6942
- warning: {
6943
- bg: "bg-[var(--tiger-alert-warning-bg,#fefce8)]",
6944
- border: "border-[var(--tiger-alert-warning-border,#fef08a)]",
6945
- icon: "text-[var(--tiger-alert-warning-icon,#eab308)]",
6946
- title: "text-[var(--tiger-alert-warning-title,#854d0e)]",
6947
- description: "text-[var(--tiger-alert-warning-description,#a16207)]",
6948
- closeButton: "text-[var(--tiger-alert-warning-close,#eab308)]",
6949
- closeButtonHover: "hover:bg-[var(--tiger-alert-warning-close-hover-bg,#fef9c3)]",
6950
- focus: "focus:ring-[color:var(--tiger-alert-warning-ring,#eab308)]"
6951
- },
6952
- error: {
6953
- bg: "bg-[var(--tiger-alert-error-bg,#fef2f2)]",
6954
- border: "border-[var(--tiger-alert-error-border,#fecaca)]",
6955
- icon: "text-[var(--tiger-alert-error-icon,#ef4444)]",
6956
- title: "text-[var(--tiger-alert-error-title,#991b1b)]",
6957
- description: "text-[var(--tiger-alert-error-description,#b91c1c)]",
6958
- closeButton: "text-[var(--tiger-alert-error-close,#ef4444)]",
6959
- closeButtonHover: "hover:bg-[var(--tiger-alert-error-close-hover-bg,#fee2e2)]",
6960
- focus: "focus:ring-[color:var(--tiger-alert-error-ring,#ef4444)]"
6961
- },
6962
- info: {
6963
- bg: "bg-[var(--tiger-alert-info-bg,#eff6ff)]",
6964
- border: "border-[var(--tiger-alert-info-border,#bfdbfe)]",
6965
- icon: "text-[var(--tiger-alert-info-icon,#3b82f6)]",
6966
- title: "text-[var(--tiger-alert-info-title,#1e40af)]",
6967
- description: "text-[var(--tiger-alert-info-description,#1d4ed8)]",
6968
- closeButton: "text-[var(--tiger-alert-info-close,#3b82f6)]",
6969
- closeButtonHover: "hover:bg-[var(--tiger-alert-info-close-hover-bg,#dbeafe)]",
6970
- focus: "focus:ring-[color:var(--tiger-alert-info-ring,#3b82f6)]"
7033
+ var toActivityTimelineItems = (items) => {
7034
+ return items.map((item, index) => ({
7035
+ key: item.id ?? index,
7036
+ activity: item
7037
+ }));
7038
+ };
7039
+
7040
+ // src/utils/notification-center-utils.ts
7041
+ var sortNotificationGroups = (groups, groupOrder) => {
7042
+ if (!groupOrder || groupOrder.length === 0) {
7043
+ return groups;
7044
+ }
7045
+ const orderMap = /* @__PURE__ */ new Map();
7046
+ groupOrder.forEach((key, index) => {
7047
+ orderMap.set(String(key), index);
7048
+ });
7049
+ return [...groups].sort((a, b) => {
7050
+ const aKey = String(a.key ?? a.title);
7051
+ const bKey = String(b.key ?? b.title);
7052
+ const aIndex = orderMap.get(aKey);
7053
+ const bIndex = orderMap.get(bKey);
7054
+ if (aIndex === void 0 && bIndex === void 0) return 0;
7055
+ if (aIndex === void 0) return 1;
7056
+ if (bIndex === void 0) return -1;
7057
+ return aIndex - bIndex;
7058
+ });
7059
+ };
7060
+ var buildNotificationGroups = (items = [], groups, groupBy, groupOrder) => {
7061
+ if (groups && groups.length > 0) {
7062
+ return sortNotificationGroups(groups, groupOrder);
7063
+ }
7064
+ if (!items || items.length === 0) {
7065
+ return [];
6971
7066
  }
7067
+ const groupFn = groupBy ?? ((item) => String(item.type ?? "default"));
7068
+ const groupMap = /* @__PURE__ */ new Map();
7069
+ items.forEach((item) => {
7070
+ const key = groupFn(item);
7071
+ if (!groupMap.has(key)) {
7072
+ groupMap.set(key, []);
7073
+ }
7074
+ groupMap.get(key)?.push(item);
7075
+ });
7076
+ const mappedGroups = Array.from(groupMap.entries()).map(([key, groupItems]) => ({
7077
+ key,
7078
+ title: key,
7079
+ items: groupItems
7080
+ }));
7081
+ return sortNotificationGroups(mappedGroups, groupOrder);
7082
+ };
7083
+
7084
+ // src/utils/comment-thread-utils.ts
7085
+ var buildCommentTree = (items = []) => {
7086
+ if (!items || items.length === 0) return [];
7087
+ const nodeMap = /* @__PURE__ */ new Map();
7088
+ const order = [];
7089
+ items.forEach((item) => {
7090
+ nodeMap.set(item.id, {
7091
+ ...item,
7092
+ children: []
7093
+ });
7094
+ order.push(item.id);
7095
+ });
7096
+ const roots = [];
7097
+ order.forEach((id) => {
7098
+ const node = nodeMap.get(id);
7099
+ if (!node) return;
7100
+ if (node.parentId === void 0 || node.parentId === null) {
7101
+ roots.push(node);
7102
+ return;
7103
+ }
7104
+ const parent = nodeMap.get(node.parentId);
7105
+ if (!parent) {
7106
+ roots.push(node);
7107
+ return;
7108
+ }
7109
+ if (!parent.children) parent.children = [];
7110
+ parent.children.push(node);
7111
+ });
7112
+ return roots;
7113
+ };
7114
+ var clipCommentTreeDepth = (nodes = [], maxDepth = 3) => {
7115
+ if (!nodes || nodes.length === 0) return [];
7116
+ if (maxDepth <= 0) return [];
7117
+ const cloneNode = (node, depth) => {
7118
+ const next = { ...node };
7119
+ if (node.children && node.children.length > 0 && depth < maxDepth) {
7120
+ next.children = node.children.map((child) => cloneNode(child, depth + 1));
7121
+ } else {
7122
+ next.children = [];
7123
+ }
7124
+ return next;
7125
+ };
7126
+ return nodes.map((node) => cloneNode(node, 1));
7127
+ };
7128
+
7129
+ // src/utils/composite-time-utils.ts
7130
+ var formatChatTime = (value) => {
7131
+ if (!value) return "";
7132
+ if (value instanceof Date) return value.toLocaleTimeString();
7133
+ if (typeof value === "number") return new Date(value).toLocaleTimeString();
7134
+ return value;
7135
+ };
7136
+ var formatCommentTime = (value) => {
7137
+ if (value == null || value === "") return "";
7138
+ if (value instanceof Date) return value.toLocaleString();
7139
+ if (typeof value === "number") return new Date(value).toLocaleString();
7140
+ return value;
6972
7141
  };
6973
- function getAlertTypeClasses(type, colors = defaultAlertThemeColors) {
6974
- return colors[type];
6975
- }
6976
7142
 
6977
7143
  // src/theme/checkbox.ts
6978
7144
  var checkboxSizeClasses = {
@@ -6986,26 +7152,17 @@ var checkboxLabelSizeClasses = {
6986
7152
  lg: "text-lg"
6987
7153
  };
6988
7154
  function getCheckboxClasses(size = "md", disabled = false) {
6989
- const baseClasses = "rounded border-2 transition-all duration-150 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] active:scale-95";
7155
+ const baseClasses2 = "rounded border-2 transition-all duration-150 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] active:scale-95";
6990
7156
  const sizeClass = checkboxSizeClasses[size];
6991
- const colorClasses = [
6992
- "border-[var(--tiger-primary,#2563eb)]",
6993
- "accent-[var(--tiger-primary,#2563eb)]",
6994
- "text-white",
6995
- "checked:bg-[var(--tiger-primary,#2563eb)]",
6996
- "checked:border-[var(--tiger-primary,#2563eb)]",
6997
- "indeterminate:bg-[var(--tiger-primary,#2563eb)]",
6998
- "indeterminate:border-[var(--tiger-primary,#2563eb)]",
6999
- "focus:ring-[var(--tiger-primary,#2563eb)]"
7000
- ].join(" ");
7157
+ const colorClasses = "border-[var(--tiger-primary,#2563eb)] accent-[var(--tiger-primary,#2563eb)] text-white checked:bg-[var(--tiger-primary,#2563eb)] checked:border-[var(--tiger-primary,#2563eb)] indeterminate:bg-[var(--tiger-primary,#2563eb)] indeterminate:border-[var(--tiger-primary,#2563eb)]";
7001
7158
  const disabledClasses = disabled ? "cursor-not-allowed opacity-50 disabled:bg-[var(--tiger-surface-muted,#f3f4f6)] disabled:border-[var(--tiger-border,#e5e7eb)]" : "";
7002
- return [baseClasses, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
7159
+ return [baseClasses2, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
7003
7160
  }
7004
7161
  function getCheckboxLabelClasses(size = "md", disabled = false) {
7005
- const baseClasses = "inline-flex items-center cursor-pointer select-none";
7162
+ const baseClasses2 = "inline-flex items-center cursor-pointer select-none";
7006
7163
  const sizeClass = checkboxLabelSizeClasses[size];
7007
- const disabledClasses = disabled ? "cursor-not-allowed opacity-50" : "";
7008
- return [baseClasses, sizeClass, disabledClasses].filter(Boolean).join(" ");
7164
+ const disabledClasses = disabled ? "cursor-not-allowed" : "";
7165
+ return [baseClasses2, sizeClass, disabledClasses].filter(Boolean).join(" ");
7009
7166
  }
7010
7167
 
7011
7168
  // src/theme/switch.ts
@@ -7036,10 +7193,10 @@ function getSwitchClasses(size = "md", checked = false, disabled = false) {
7036
7193
  );
7037
7194
  }
7038
7195
  function getSwitchThumbClasses(size = "md", checked = false) {
7039
- const baseClasses = "inline-block transform rounded-full bg-[var(--tiger-surface,#ffffff)] shadow-lg transition-transform";
7196
+ const baseClasses2 = "inline-block rounded-full bg-[var(--tiger-surface,#ffffff)] shadow-lg transition-transform";
7040
7197
  const sizeClass = switchThumbSizeClasses[size];
7041
7198
  const translateClass = checked ? switchThumbTranslateClasses[size] : "translate-x-0.5";
7042
- return classNames(baseClasses, sizeClass, translateClass);
7199
+ return classNames(baseClasses2, sizeClass, translateClass);
7043
7200
  }
7044
7201
 
7045
7202
  // src/theme/slider.ts
@@ -7153,7 +7310,11 @@ var tigercatTheme = {
7153
7310
  };
7154
7311
  var tigercatPlugin = (0, import_plugin.default)(function({ addBase }) {
7155
7312
  addBase({
7156
- ":root": tigercatTheme
7313
+ ":root": tigercatTheme,
7314
+ // Remove browser default focus outline on interactive SVG elements
7315
+ 'svg [tabindex], svg [role="button"]': {
7316
+ outline: "none"
7317
+ }
7157
7318
  });
7158
7319
  });
7159
7320
 
@@ -7170,15 +7331,26 @@ var version = "0.2.0";
7170
7331
  ClockIconPath,
7171
7332
  CloseIconPath,
7172
7333
  DEFAULT_CHART_COLORS,
7334
+ DEFAULT_FORM_WIZARD_LABELS,
7173
7335
  DEFAULT_PAGINATION_LABELS,
7336
+ DONUT_BASE_SHADOW,
7337
+ DONUT_EMPHASIS_SHADOW,
7338
+ DROPDOWN_CHEVRON_PATH,
7339
+ DROPDOWN_ENTER_CLASS,
7174
7340
  DURATION_CLASS,
7175
7341
  DURATION_FAST_CLASS,
7176
7342
  DURATION_SLOW_CLASS,
7177
7343
  EASING_DEFAULT,
7178
7344
  EASING_ENTER,
7179
7345
  EASING_LEAVE,
7346
+ PIE_BASE_SHADOW,
7347
+ PIE_EMPHASIS_SHADOW,
7348
+ POPOVER_TEXT_CLASSES,
7349
+ POPOVER_TITLE_CLASSES,
7350
+ RADAR_SPLIT_AREA_COLORS,
7351
+ SCATTER_ENTRANCE_CLASS,
7352
+ SCATTER_ENTRANCE_KEYFRAMES,
7180
7353
  SHAKE_CLASS,
7181
- SPACE_BASE_CLASS,
7182
7354
  SVG_ANIMATION_CLASSES,
7183
7355
  SVG_ANIMATION_VARS,
7184
7356
  SVG_DEFAULT_FILL,
@@ -7192,6 +7364,7 @@ var version = "0.2.0";
7192
7364
  TRANSITION_OPACITY,
7193
7365
  TRANSITION_TRANSFORM,
7194
7366
  TimePickerCloseIconPath,
7367
+ ZH_CN_FORM_WIZARD_LABELS,
7195
7368
  ZH_CN_PAGINATION_LABELS,
7196
7369
  activeOpacityClasses,
7197
7370
  activePressClasses,
@@ -7200,14 +7373,10 @@ var version = "0.2.0";
7200
7373
  alertCloseIconPath,
7201
7374
  alertContentClasses,
7202
7375
  alertDescriptionSizeClasses,
7203
- alertErrorIconPath,
7204
7376
  alertIconContainerClasses,
7205
7377
  alertIconSizeClasses,
7206
- alertInfoIconPath,
7207
7378
  alertSizeClasses,
7208
- alertSuccessIconPath,
7209
7379
  alertTitleSizeClasses,
7210
- alertWarningIconPath,
7211
7380
  anchorAffixClasses,
7212
7381
  anchorBaseClasses,
7213
7382
  anchorInkActiveHorizontalClasses,
@@ -7229,7 +7398,6 @@ var version = "0.2.0";
7229
7398
  avatarImageClasses,
7230
7399
  avatarShapeClasses,
7231
7400
  avatarSizeClasses,
7232
- backTopBaseClasses,
7233
7401
  backTopButtonClasses,
7234
7402
  backTopContainerClasses,
7235
7403
  backTopHiddenClasses,
@@ -7240,6 +7408,9 @@ var version = "0.2.0";
7240
7408
  badgeSizeClasses,
7241
7409
  badgeTypeClasses,
7242
7410
  badgeWrapperClasses,
7411
+ barAnimatedTransition,
7412
+ barValueLabelClasses,
7413
+ barValueLabelInsideClasses,
7243
7414
  barsVariantConfig,
7244
7415
  breadcrumbContainerClasses,
7245
7416
  breadcrumbCurrentClasses,
@@ -7247,8 +7418,10 @@ var version = "0.2.0";
7247
7418
  breadcrumbLinkClasses,
7248
7419
  breadcrumbSeparatorBaseClasses,
7249
7420
  buildActivityGroups,
7421
+ buildChartLegendItems,
7250
7422
  buildCommentTree,
7251
7423
  buildNotificationGroups,
7424
+ buildTriggerHandlerMap,
7252
7425
  buttonBaseClasses,
7253
7426
  buttonDisabledClasses,
7254
7427
  buttonSizeClasses,
@@ -7260,7 +7433,6 @@ var version = "0.2.0";
7260
7433
  captureActiveElement,
7261
7434
  cardActionsClasses,
7262
7435
  cardBaseClasses,
7263
- cardBodyClasses,
7264
7436
  cardCoverClasses,
7265
7437
  cardCoverWrapperClasses,
7266
7438
  cardFooterClasses,
@@ -7280,7 +7452,6 @@ var version = "0.2.0";
7280
7452
  carouselPrevArrowClasses,
7281
7453
  carouselPrevArrowPath,
7282
7454
  carouselSlideBaseClasses,
7283
- carouselSlideFadeClasses,
7284
7455
  carouselTrackFadeClasses,
7285
7456
  carouselTrackScrollClasses,
7286
7457
  chartAxisLabelClasses,
@@ -7293,9 +7464,11 @@ var version = "0.2.0";
7293
7464
  checkSolidIcon20PathD,
7294
7465
  checkboxLabelSizeClasses,
7295
7466
  checkboxSizeClasses,
7467
+ checkedSetsFromState,
7296
7468
  chevronDownSolidIcon20PathD,
7297
7469
  chevronLeftSolidIcon20PathD,
7298
7470
  chevronRightSolidIcon20PathD,
7471
+ clampBarWidth,
7299
7472
  clampPercentage,
7300
7473
  clampSlideIndex,
7301
7474
  classNames,
@@ -7316,7 +7489,6 @@ var version = "0.2.0";
7316
7489
  coerceStyleValue,
7317
7490
  collapseBaseClasses,
7318
7491
  collapseBorderlessClasses,
7319
- collapseExtraClasses,
7320
7492
  collapseGhostClasses,
7321
7493
  collapseHeaderTextClasses,
7322
7494
  collapseIconBaseClasses,
@@ -7328,8 +7500,9 @@ var version = "0.2.0";
7328
7500
  collapsePanelHeaderActiveClasses,
7329
7501
  collapsePanelHeaderBaseClasses,
7330
7502
  collapsePanelHeaderDisabledClasses,
7331
- collapseRightArrowIcon,
7332
7503
  computeFloatingPosition,
7504
+ computePieHoverOffset,
7505
+ computePieLabelLine,
7333
7506
  containerBaseClasses,
7334
7507
  containerCenteredClasses,
7335
7508
  containerMaxWidthClasses,
@@ -7339,6 +7512,7 @@ var version = "0.2.0";
7339
7512
  createAriaId,
7340
7513
  createBandScale,
7341
7514
  createChartInteractionHandlers,
7515
+ createFloatingIdFactory,
7342
7516
  createLinePath,
7343
7517
  createLinearScale,
7344
7518
  createPieArcPath,
@@ -7358,18 +7532,19 @@ var version = "0.2.0";
7358
7532
  defaultAlertThemeColors,
7359
7533
  defaultBadgeThemeColors,
7360
7534
  defaultChatMessageStatusInfo,
7361
- defaultExpandIcon,
7362
- defaultIndeterminateIcon,
7363
7535
  defaultLinkThemeColors,
7364
7536
  defaultMessageThemeColors,
7365
7537
  defaultNotificationThemeColors,
7366
7538
  defaultProgressThemeColors,
7539
+ defaultRadarTooltipFormatter,
7367
7540
  defaultRadioColors,
7541
+ defaultSeriesXYTooltipFormatter,
7368
7542
  defaultSortFn,
7369
7543
  defaultTagThemeColors,
7370
7544
  defaultThemeColors,
7371
7545
  defaultTooltipFormatter,
7372
7546
  defaultTotalText,
7547
+ defaultXYTooltipFormatter,
7373
7548
  descriptionsBaseClasses,
7374
7549
  descriptionsCellSizeClasses,
7375
7550
  descriptionsContentBorderedClasses,
@@ -7378,7 +7553,6 @@ var version = "0.2.0";
7378
7553
  descriptionsHeaderClasses,
7379
7554
  descriptionsLabelBorderedClasses,
7380
7555
  descriptionsLabelClasses,
7381
- descriptionsRowClasses,
7382
7556
  descriptionsSizeClasses,
7383
7557
  descriptionsTableBorderedClasses,
7384
7558
  descriptionsTableClasses,
@@ -7390,6 +7564,7 @@ var version = "0.2.0";
7390
7564
  descriptionsWrapperClasses,
7391
7565
  dotSizeClasses,
7392
7566
  dotsVariantConfig,
7567
+ ensureBarMinHeight,
7393
7568
  errorCircleSolidIcon20PathD,
7394
7569
  fileToUploadFile,
7395
7570
  filterData,
@@ -7397,9 +7572,11 @@ var version = "0.2.0";
7397
7572
  filterTreeNodes,
7398
7573
  findActiveAnchor,
7399
7574
  findNode,
7400
- flattenTree,
7575
+ flattenSelectOptions,
7401
7576
  focusElement,
7402
7577
  focusFirst,
7578
+ focusFirstChildItem,
7579
+ focusMenuEdge,
7403
7580
  focusRingClasses,
7404
7581
  focusRingInsetClasses,
7405
7582
  formatActivityTime,
@@ -7432,10 +7609,13 @@ var version = "0.2.0";
7432
7609
  getAnchorLinkListClasses,
7433
7610
  getAnchorTargetElement,
7434
7611
  getAnchorWrapperClasses,
7612
+ getAreaGradientPrefix,
7435
7613
  getArrowStyles,
7436
7614
  getAutoExpandKeys,
7437
7615
  getBadgeVariantClasses,
7616
+ getBarGradientPrefix,
7438
7617
  getBarGrowAnimationStyle,
7618
+ getBarValueLabelY,
7439
7619
  getBreadcrumbItemClasses,
7440
7620
  getBreadcrumbLinkClasses,
7441
7621
  getBreadcrumbSeparatorClasses,
@@ -7458,6 +7638,7 @@ var version = "0.2.0";
7458
7638
  getCheckboxLabelClasses,
7459
7639
  getCheckedKeysByStrategy,
7460
7640
  getCircleSize,
7641
+ getColMergedStyleVars,
7461
7642
  getColOrderStyleVars,
7462
7643
  getColStyleVars,
7463
7644
  getCollapseContainerClasses,
@@ -7480,9 +7661,8 @@ var version = "0.2.0";
7480
7661
  getDescriptionsLabelClasses,
7481
7662
  getDescriptionsTableClasses,
7482
7663
  getDescriptionsVerticalItemClasses,
7483
- getDividerLineStyleClasses,
7484
- getDividerOrientationClasses,
7485
- getDividerSpacingClasses,
7664
+ getDividerClasses,
7665
+ getDividerStyle,
7486
7666
  getDragAreaClasses,
7487
7667
  getDrawerBodyClasses,
7488
7668
  getDrawerCloseButtonClasses,
@@ -7492,10 +7672,10 @@ var version = "0.2.0";
7492
7672
  getDrawerMaskClasses,
7493
7673
  getDrawerPanelClasses,
7494
7674
  getDrawerTitleClasses,
7675
+ getDropdownChevronClasses,
7495
7676
  getDropdownContainerClasses,
7496
7677
  getDropdownItemClasses,
7497
7678
  getDropdownMenuClasses,
7498
- getDropdownMenuWrapperClasses,
7499
7679
  getDropdownTriggerClasses,
7500
7680
  getElementOffsetTop,
7501
7681
  getErrorFields,
@@ -7507,12 +7687,12 @@ var version = "0.2.0";
7507
7687
  getFocusTrapNavigation,
7508
7688
  getFocusableElements,
7509
7689
  getFormItemAsteriskClasses,
7510
- getFormItemAsteriskStyle,
7511
7690
  getFormItemClasses,
7512
7691
  getFormItemContentClasses,
7513
7692
  getFormItemErrorClasses,
7514
7693
  getFormItemFieldClasses,
7515
7694
  getFormItemLabelClasses,
7695
+ getFormWizardLabels,
7516
7696
  getGridColumnClasses,
7517
7697
  getGutterStyles,
7518
7698
  getInitials,
@@ -7522,6 +7702,7 @@ var version = "0.2.0";
7522
7702
  getInputWrapperClasses,
7523
7703
  getJustifyClasses,
7524
7704
  getLeafKeys,
7705
+ getLineGradientPrefix,
7525
7706
  getLinkVariantClasses,
7526
7707
  getListClasses,
7527
7708
  getListHeaderFooterClasses,
@@ -7533,6 +7714,7 @@ var version = "0.2.0";
7533
7714
  getLoadingDotsWrapperClasses,
7534
7715
  getLoadingOverlaySpinnerClasses,
7535
7716
  getLoadingTextClasses,
7717
+ getMenuButtons,
7536
7718
  getMenuClasses,
7537
7719
  getMenuItemClasses,
7538
7720
  getMenuItemIndent,
@@ -7588,6 +7770,7 @@ var version = "0.2.0";
7588
7770
  getProgressVariantClasses,
7589
7771
  getQuickJumperInputClasses,
7590
7772
  getRadarAngles,
7773
+ getRadarLabelAlign,
7591
7774
  getRadarPoints,
7592
7775
  getRadioColorClasses,
7593
7776
  getRadioDotClasses,
@@ -7595,6 +7778,10 @@ var version = "0.2.0";
7595
7778
  getRadioLabelClasses,
7596
7779
  getRadioVisualClasses,
7597
7780
  getRowKey,
7781
+ getScatterGradientPrefix,
7782
+ getScatterHoverShadow,
7783
+ getScatterHoverSize,
7784
+ getScatterPointPath,
7598
7785
  getScrollTop,
7599
7786
  getScrollTransform,
7600
7787
  getSecureRel,
@@ -7611,15 +7798,15 @@ var version = "0.2.0";
7611
7798
  getSimplePaginationPageIndicatorClasses,
7612
7799
  getSimplePaginationSelectClasses,
7613
7800
  getSimplePaginationTotalClasses,
7801
+ getSizeTextClasses,
7614
7802
  getSkeletonClasses,
7615
7803
  getSkeletonDimensions,
7616
7804
  getSliderThumbClasses,
7617
7805
  getSliderTooltipClasses,
7618
7806
  getSliderTrackClasses,
7619
7807
  getSortIconClasses,
7620
- getSpaceAlignClass,
7621
- getSpaceDirectionClass,
7622
- getSpaceGapSize,
7808
+ getSpaceClasses,
7809
+ getSpaceStyle,
7623
7810
  getSpanClasses,
7624
7811
  getSpinnerSVG,
7625
7812
  getStatusVariant,
@@ -7646,6 +7833,7 @@ var version = "0.2.0";
7646
7833
  getTableWrapperClasses,
7647
7834
  getTabsContainerClasses,
7648
7835
  getTagVariantClasses,
7836
+ getTextClasses,
7649
7837
  getThemeColor,
7650
7838
  getTimePeriodLabels,
7651
7839
  getTimePickerIconButtonClasses,
@@ -7685,7 +7873,12 @@ var version = "0.2.0";
7685
7873
  icon24ViewBox,
7686
7874
  iconSizeClasses,
7687
7875
  iconSvgBaseClasses,
7876
+ iconSvgDefaultStrokeLinecap,
7877
+ iconSvgDefaultStrokeLinejoin,
7878
+ iconSvgDefaultStrokeWidth,
7688
7879
  iconWrapperClasses,
7880
+ initRovingTabIndex,
7881
+ injectDropdownStyles,
7689
7882
  injectLoadingAnimationStyles,
7690
7883
  injectShakeStyle,
7691
7884
  injectSvgAnimationStyles,
@@ -7716,6 +7909,7 @@ var version = "0.2.0";
7716
7909
  layoutHeaderClasses,
7717
7910
  layoutRootClasses,
7718
7911
  layoutSidebarClasses,
7912
+ linePointTransitionClasses,
7719
7913
  linkBaseClasses,
7720
7914
  linkDisabledClasses,
7721
7915
  linkSizeClasses,
@@ -7737,7 +7931,6 @@ var version = "0.2.0";
7737
7931
  listItemSizeClasses,
7738
7932
  listItemTitleClasses,
7739
7933
  listLoadingOverlayClasses,
7740
- listPaginationContainerClasses,
7741
7934
  listSizeClasses,
7742
7935
  listWrapperClasses,
7743
7936
  loadingBarBaseClasses,
@@ -7775,12 +7968,8 @@ var version = "0.2.0";
7775
7968
  messageCloseIconPath,
7776
7969
  messageContainerBaseClasses,
7777
7970
  messageContentClasses,
7778
- messageEnterActiveClasses,
7779
- messageEnterClasses,
7780
7971
  messageIconClasses,
7781
7972
  messageIconPaths,
7782
- messageLeaveActiveClasses,
7783
- messageLeaveClasses,
7784
7973
  messageLoadingSpinnerClasses,
7785
7974
  messagePositionClasses,
7786
7975
  modalBodyClasses,
@@ -7792,9 +7981,11 @@ var version = "0.2.0";
7792
7981
  modalSizeClasses,
7793
7982
  modalTitleClasses,
7794
7983
  modalWrapperClasses,
7984
+ moveFocusInMenu,
7795
7985
  normalizeActiveKeys,
7796
7986
  normalizeChartPadding,
7797
7987
  normalizeDate,
7988
+ normalizeStringOption,
7798
7989
  normalizeSvgAttrs,
7799
7990
  notificationBaseClasses,
7800
7991
  notificationCloseButtonClasses,
@@ -7809,6 +8000,7 @@ var version = "0.2.0";
7809
8000
  notificationTitleClasses,
7810
8001
  paginateData,
7811
8002
  parseDate,
8003
+ parseInputValue,
7812
8004
  parseTime,
7813
8005
  parseWidthToPx,
7814
8006
  polarToCartesian,
@@ -7844,8 +8036,17 @@ var version = "0.2.0";
7844
8036
  radioSizeClasses,
7845
8037
  radioVisualBaseClasses,
7846
8038
  replaceKeys,
8039
+ resetAreaGradientCounter,
8040
+ resetBarGradientCounter,
8041
+ resetLineGradientCounter,
8042
+ resetScatterGradientCounter,
8043
+ resolveChartPalette,
8044
+ resolveChartTooltipContent,
7847
8045
  resolveLocaleText,
8046
+ resolveMultiSeriesTooltipContent,
8047
+ resolveSeriesData,
7848
8048
  restoreFocus,
8049
+ scatterPointTransitionClasses,
7849
8050
  scrollToAnchor,
7850
8051
  scrollToTop,
7851
8052
  selectBaseClasses,
@@ -7885,12 +8086,7 @@ var version = "0.2.0";
7885
8086
  statusInfoIconPath,
7886
8087
  statusSuccessIconPath,
7887
8088
  statusWarningIconPath,
7888
- stepFinishIconPathD,
7889
- stepFinishIconPathStrokeLinecap,
7890
- stepFinishIconPathStrokeLinejoin,
7891
- stepFinishIconPathStrokeWidth,
7892
- stepFinishIconSvgClasses,
7893
- stepFinishIconViewBox,
8089
+ stepFinishChar,
7894
8090
  submenuContentHorizontalClasses,
7895
8091
  submenuContentInlineClasses,
7896
8092
  submenuContentPopupClasses,
@@ -7917,6 +8113,7 @@ var version = "0.2.0";
7917
8113
  tabItemLineClasses,
7918
8114
  tabItemSizeClasses,
7919
8115
  tabNavBaseClasses,
8116
+ tabNavLineBorderClasses,
7920
8117
  tabNavListBaseClasses,
7921
8118
  tabNavListCenteredClasses,
7922
8119
  tabNavListPositionClasses,