@expcat/tigercat-core 0.2.27 → 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,12 +187,20 @@ __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,
186
196
  breadcrumbItemBaseClasses: () => breadcrumbItemBaseClasses,
187
197
  breadcrumbLinkClasses: () => breadcrumbLinkClasses,
188
198
  breadcrumbSeparatorBaseClasses: () => breadcrumbSeparatorBaseClasses,
199
+ buildActivityGroups: () => buildActivityGroups,
200
+ buildChartLegendItems: () => buildChartLegendItems,
201
+ buildCommentTree: () => buildCommentTree,
202
+ buildNotificationGroups: () => buildNotificationGroups,
203
+ buildTriggerHandlerMap: () => buildTriggerHandlerMap,
189
204
  buttonBaseClasses: () => buttonBaseClasses,
190
205
  buttonDisabledClasses: () => buttonDisabledClasses,
191
206
  buttonSizeClasses: () => buttonSizeClasses,
@@ -197,7 +212,6 @@ __export(index_exports, {
197
212
  captureActiveElement: () => captureActiveElement,
198
213
  cardActionsClasses: () => cardActionsClasses,
199
214
  cardBaseClasses: () => cardBaseClasses,
200
- cardBodyClasses: () => cardBodyClasses,
201
215
  cardCoverClasses: () => cardCoverClasses,
202
216
  cardCoverWrapperClasses: () => cardCoverWrapperClasses,
203
217
  cardFooterClasses: () => cardFooterClasses,
@@ -217,7 +231,6 @@ __export(index_exports, {
217
231
  carouselPrevArrowClasses: () => carouselPrevArrowClasses,
218
232
  carouselPrevArrowPath: () => carouselPrevArrowPath,
219
233
  carouselSlideBaseClasses: () => carouselSlideBaseClasses,
220
- carouselSlideFadeClasses: () => carouselSlideFadeClasses,
221
234
  carouselTrackFadeClasses: () => carouselTrackFadeClasses,
222
235
  carouselTrackScrollClasses: () => carouselTrackScrollClasses,
223
236
  chartAxisLabelClasses: () => chartAxisLabelClasses,
@@ -230,13 +243,16 @@ __export(index_exports, {
230
243
  checkSolidIcon20PathD: () => checkSolidIcon20PathD,
231
244
  checkboxLabelSizeClasses: () => checkboxLabelSizeClasses,
232
245
  checkboxSizeClasses: () => checkboxSizeClasses,
246
+ checkedSetsFromState: () => checkedSetsFromState,
233
247
  chevronDownSolidIcon20PathD: () => chevronDownSolidIcon20PathD,
234
248
  chevronLeftSolidIcon20PathD: () => chevronLeftSolidIcon20PathD,
235
249
  chevronRightSolidIcon20PathD: () => chevronRightSolidIcon20PathD,
250
+ clampBarWidth: () => clampBarWidth,
236
251
  clampPercentage: () => clampPercentage,
237
252
  clampSlideIndex: () => clampSlideIndex,
238
253
  classNames: () => classNames,
239
254
  clearFieldErrors: () => clearFieldErrors,
255
+ clipCommentTreeDepth: () => clipCommentTreeDepth,
240
256
  clockSolidIcon20PathD: () => clockSolidIcon20PathD,
241
257
  closeIconPathD: () => closeIconPathD,
242
258
  closeIconPathStrokeLinecap: () => closeIconPathStrokeLinecap,
@@ -252,7 +268,6 @@ __export(index_exports, {
252
268
  coerceStyleValue: () => coerceStyleValue,
253
269
  collapseBaseClasses: () => collapseBaseClasses,
254
270
  collapseBorderlessClasses: () => collapseBorderlessClasses,
255
- collapseExtraClasses: () => collapseExtraClasses,
256
271
  collapseGhostClasses: () => collapseGhostClasses,
257
272
  collapseHeaderTextClasses: () => collapseHeaderTextClasses,
258
273
  collapseIconBaseClasses: () => collapseIconBaseClasses,
@@ -264,8 +279,9 @@ __export(index_exports, {
264
279
  collapsePanelHeaderActiveClasses: () => collapsePanelHeaderActiveClasses,
265
280
  collapsePanelHeaderBaseClasses: () => collapsePanelHeaderBaseClasses,
266
281
  collapsePanelHeaderDisabledClasses: () => collapsePanelHeaderDisabledClasses,
267
- collapseRightArrowIcon: () => collapseRightArrowIcon,
268
282
  computeFloatingPosition: () => computeFloatingPosition,
283
+ computePieHoverOffset: () => computePieHoverOffset,
284
+ computePieLabelLine: () => computePieLabelLine,
269
285
  containerBaseClasses: () => containerBaseClasses,
270
286
  containerCenteredClasses: () => containerCenteredClasses,
271
287
  containerMaxWidthClasses: () => containerMaxWidthClasses,
@@ -275,6 +291,7 @@ __export(index_exports, {
275
291
  createAriaId: () => createAriaId,
276
292
  createBandScale: () => createBandScale,
277
293
  createChartInteractionHandlers: () => createChartInteractionHandlers,
294
+ createFloatingIdFactory: () => createFloatingIdFactory,
278
295
  createLinePath: () => createLinePath,
279
296
  createLinearScale: () => createLinearScale,
280
297
  createPieArcPath: () => createPieArcPath,
@@ -293,18 +310,20 @@ __export(index_exports, {
293
310
  datePickerNavButtonClasses: () => datePickerNavButtonClasses,
294
311
  defaultAlertThemeColors: () => defaultAlertThemeColors,
295
312
  defaultBadgeThemeColors: () => defaultBadgeThemeColors,
296
- defaultExpandIcon: () => defaultExpandIcon,
297
- defaultIndeterminateIcon: () => defaultIndeterminateIcon,
313
+ defaultChatMessageStatusInfo: () => defaultChatMessageStatusInfo,
298
314
  defaultLinkThemeColors: () => defaultLinkThemeColors,
299
315
  defaultMessageThemeColors: () => defaultMessageThemeColors,
300
316
  defaultNotificationThemeColors: () => defaultNotificationThemeColors,
301
317
  defaultProgressThemeColors: () => defaultProgressThemeColors,
318
+ defaultRadarTooltipFormatter: () => defaultRadarTooltipFormatter,
302
319
  defaultRadioColors: () => defaultRadioColors,
320
+ defaultSeriesXYTooltipFormatter: () => defaultSeriesXYTooltipFormatter,
303
321
  defaultSortFn: () => defaultSortFn,
304
322
  defaultTagThemeColors: () => defaultTagThemeColors,
305
323
  defaultThemeColors: () => defaultThemeColors,
306
324
  defaultTooltipFormatter: () => defaultTooltipFormatter,
307
325
  defaultTotalText: () => defaultTotalText,
326
+ defaultXYTooltipFormatter: () => defaultXYTooltipFormatter,
308
327
  descriptionsBaseClasses: () => descriptionsBaseClasses,
309
328
  descriptionsCellSizeClasses: () => descriptionsCellSizeClasses,
310
329
  descriptionsContentBorderedClasses: () => descriptionsContentBorderedClasses,
@@ -313,7 +332,6 @@ __export(index_exports, {
313
332
  descriptionsHeaderClasses: () => descriptionsHeaderClasses,
314
333
  descriptionsLabelBorderedClasses: () => descriptionsLabelBorderedClasses,
315
334
  descriptionsLabelClasses: () => descriptionsLabelClasses,
316
- descriptionsRowClasses: () => descriptionsRowClasses,
317
335
  descriptionsSizeClasses: () => descriptionsSizeClasses,
318
336
  descriptionsTableBorderedClasses: () => descriptionsTableBorderedClasses,
319
337
  descriptionsTableClasses: () => descriptionsTableClasses,
@@ -325,6 +343,7 @@ __export(index_exports, {
325
343
  descriptionsWrapperClasses: () => descriptionsWrapperClasses,
326
344
  dotSizeClasses: () => dotSizeClasses,
327
345
  dotsVariantConfig: () => dotsVariantConfig,
346
+ ensureBarMinHeight: () => ensureBarMinHeight,
328
347
  errorCircleSolidIcon20PathD: () => errorCircleSolidIcon20PathD,
329
348
  fileToUploadFile: () => fileToUploadFile,
330
349
  filterData: () => filterData,
@@ -332,12 +351,17 @@ __export(index_exports, {
332
351
  filterTreeNodes: () => filterTreeNodes,
333
352
  findActiveAnchor: () => findActiveAnchor,
334
353
  findNode: () => findNode,
335
- flattenTree: () => flattenTree,
354
+ flattenSelectOptions: () => flattenSelectOptions,
336
355
  focusElement: () => focusElement,
337
356
  focusFirst: () => focusFirst,
357
+ focusFirstChildItem: () => focusFirstChildItem,
358
+ focusMenuEdge: () => focusMenuEdge,
338
359
  focusRingClasses: () => focusRingClasses,
339
360
  focusRingInsetClasses: () => focusRingInsetClasses,
361
+ formatActivityTime: () => formatActivityTime,
340
362
  formatBadgeContent: () => formatBadgeContent,
363
+ formatChatTime: () => formatChatTime,
364
+ formatCommentTime: () => formatCommentTime,
341
365
  formatDate: () => formatDate,
342
366
  formatFileSize: () => formatFileSize,
343
367
  formatMonthYear: () => formatMonthYear,
@@ -364,10 +388,13 @@ __export(index_exports, {
364
388
  getAnchorLinkListClasses: () => getAnchorLinkListClasses,
365
389
  getAnchorTargetElement: () => getAnchorTargetElement,
366
390
  getAnchorWrapperClasses: () => getAnchorWrapperClasses,
391
+ getAreaGradientPrefix: () => getAreaGradientPrefix,
367
392
  getArrowStyles: () => getArrowStyles,
368
393
  getAutoExpandKeys: () => getAutoExpandKeys,
369
394
  getBadgeVariantClasses: () => getBadgeVariantClasses,
395
+ getBarGradientPrefix: () => getBarGradientPrefix,
370
396
  getBarGrowAnimationStyle: () => getBarGrowAnimationStyle,
397
+ getBarValueLabelY: () => getBarValueLabelY,
371
398
  getBreadcrumbItemClasses: () => getBreadcrumbItemClasses,
372
399
  getBreadcrumbLinkClasses: () => getBreadcrumbLinkClasses,
373
400
  getBreadcrumbSeparatorClasses: () => getBreadcrumbSeparatorClasses,
@@ -384,11 +411,13 @@ __export(index_exports, {
384
411
  getChartEntranceTransform: () => getChartEntranceTransform,
385
412
  getChartGridLineDasharray: () => getChartGridLineDasharray,
386
413
  getChartInnerRect: () => getChartInnerRect,
414
+ getChatMessageStatusInfo: () => getChatMessageStatusInfo,
387
415
  getCheckboxCellClasses: () => getCheckboxCellClasses,
388
416
  getCheckboxClasses: () => getCheckboxClasses,
389
417
  getCheckboxLabelClasses: () => getCheckboxLabelClasses,
390
418
  getCheckedKeysByStrategy: () => getCheckedKeysByStrategy,
391
419
  getCircleSize: () => getCircleSize,
420
+ getColMergedStyleVars: () => getColMergedStyleVars,
392
421
  getColOrderStyleVars: () => getColOrderStyleVars,
393
422
  getColStyleVars: () => getColStyleVars,
394
423
  getCollapseContainerClasses: () => getCollapseContainerClasses,
@@ -411,9 +440,8 @@ __export(index_exports, {
411
440
  getDescriptionsLabelClasses: () => getDescriptionsLabelClasses,
412
441
  getDescriptionsTableClasses: () => getDescriptionsTableClasses,
413
442
  getDescriptionsVerticalItemClasses: () => getDescriptionsVerticalItemClasses,
414
- getDividerLineStyleClasses: () => getDividerLineStyleClasses,
415
- getDividerOrientationClasses: () => getDividerOrientationClasses,
416
- getDividerSpacingClasses: () => getDividerSpacingClasses,
443
+ getDividerClasses: () => getDividerClasses,
444
+ getDividerStyle: () => getDividerStyle,
417
445
  getDragAreaClasses: () => getDragAreaClasses,
418
446
  getDrawerBodyClasses: () => getDrawerBodyClasses,
419
447
  getDrawerCloseButtonClasses: () => getDrawerCloseButtonClasses,
@@ -423,10 +451,10 @@ __export(index_exports, {
423
451
  getDrawerMaskClasses: () => getDrawerMaskClasses,
424
452
  getDrawerPanelClasses: () => getDrawerPanelClasses,
425
453
  getDrawerTitleClasses: () => getDrawerTitleClasses,
454
+ getDropdownChevronClasses: () => getDropdownChevronClasses,
426
455
  getDropdownContainerClasses: () => getDropdownContainerClasses,
427
456
  getDropdownItemClasses: () => getDropdownItemClasses,
428
457
  getDropdownMenuClasses: () => getDropdownMenuClasses,
429
- getDropdownMenuWrapperClasses: () => getDropdownMenuWrapperClasses,
430
458
  getDropdownTriggerClasses: () => getDropdownTriggerClasses,
431
459
  getElementOffsetTop: () => getElementOffsetTop,
432
460
  getErrorFields: () => getErrorFields,
@@ -437,6 +465,13 @@ __export(index_exports, {
437
465
  getFlexClasses: () => getFlexClasses,
438
466
  getFocusTrapNavigation: () => getFocusTrapNavigation,
439
467
  getFocusableElements: () => getFocusableElements,
468
+ getFormItemAsteriskClasses: () => getFormItemAsteriskClasses,
469
+ getFormItemClasses: () => getFormItemClasses,
470
+ getFormItemContentClasses: () => getFormItemContentClasses,
471
+ getFormItemErrorClasses: () => getFormItemErrorClasses,
472
+ getFormItemFieldClasses: () => getFormItemFieldClasses,
473
+ getFormItemLabelClasses: () => getFormItemLabelClasses,
474
+ getFormWizardLabels: () => getFormWizardLabels,
440
475
  getGridColumnClasses: () => getGridColumnClasses,
441
476
  getGutterStyles: () => getGutterStyles,
442
477
  getInitials: () => getInitials,
@@ -446,6 +481,7 @@ __export(index_exports, {
446
481
  getInputWrapperClasses: () => getInputWrapperClasses,
447
482
  getJustifyClasses: () => getJustifyClasses,
448
483
  getLeafKeys: () => getLeafKeys,
484
+ getLineGradientPrefix: () => getLineGradientPrefix,
449
485
  getLinkVariantClasses: () => getLinkVariantClasses,
450
486
  getListClasses: () => getListClasses,
451
487
  getListHeaderFooterClasses: () => getListHeaderFooterClasses,
@@ -457,6 +493,7 @@ __export(index_exports, {
457
493
  getLoadingDotsWrapperClasses: () => getLoadingDotsWrapperClasses,
458
494
  getLoadingOverlaySpinnerClasses: () => getLoadingOverlaySpinnerClasses,
459
495
  getLoadingTextClasses: () => getLoadingTextClasses,
496
+ getMenuButtons: () => getMenuButtons,
460
497
  getMenuClasses: () => getMenuClasses,
461
498
  getMenuItemClasses: () => getMenuItemClasses,
462
499
  getMenuItemIndent: () => getMenuItemIndent,
@@ -512,6 +549,7 @@ __export(index_exports, {
512
549
  getProgressVariantClasses: () => getProgressVariantClasses,
513
550
  getQuickJumperInputClasses: () => getQuickJumperInputClasses,
514
551
  getRadarAngles: () => getRadarAngles,
552
+ getRadarLabelAlign: () => getRadarLabelAlign,
515
553
  getRadarPoints: () => getRadarPoints,
516
554
  getRadioColorClasses: () => getRadioColorClasses,
517
555
  getRadioDotClasses: () => getRadioDotClasses,
@@ -519,6 +557,10 @@ __export(index_exports, {
519
557
  getRadioLabelClasses: () => getRadioLabelClasses,
520
558
  getRadioVisualClasses: () => getRadioVisualClasses,
521
559
  getRowKey: () => getRowKey,
560
+ getScatterGradientPrefix: () => getScatterGradientPrefix,
561
+ getScatterHoverShadow: () => getScatterHoverShadow,
562
+ getScatterHoverSize: () => getScatterHoverSize,
563
+ getScatterPointPath: () => getScatterPointPath,
522
564
  getScrollTop: () => getScrollTop,
523
565
  getScrollTransform: () => getScrollTransform,
524
566
  getSecureRel: () => getSecureRel,
@@ -535,15 +577,15 @@ __export(index_exports, {
535
577
  getSimplePaginationPageIndicatorClasses: () => getSimplePaginationPageIndicatorClasses,
536
578
  getSimplePaginationSelectClasses: () => getSimplePaginationSelectClasses,
537
579
  getSimplePaginationTotalClasses: () => getSimplePaginationTotalClasses,
580
+ getSizeTextClasses: () => getSizeTextClasses,
538
581
  getSkeletonClasses: () => getSkeletonClasses,
539
582
  getSkeletonDimensions: () => getSkeletonDimensions,
540
583
  getSliderThumbClasses: () => getSliderThumbClasses,
541
584
  getSliderTooltipClasses: () => getSliderTooltipClasses,
542
585
  getSliderTrackClasses: () => getSliderTrackClasses,
543
586
  getSortIconClasses: () => getSortIconClasses,
544
- getSpaceAlignClass: () => getSpaceAlignClass,
545
- getSpaceDirectionClass: () => getSpaceDirectionClass,
546
- getSpaceGapSize: () => getSpaceGapSize,
587
+ getSpaceClasses: () => getSpaceClasses,
588
+ getSpaceStyle: () => getSpaceStyle,
547
589
  getSpanClasses: () => getSpanClasses,
548
590
  getSpinnerSVG: () => getSpinnerSVG,
549
591
  getStatusVariant: () => getStatusVariant,
@@ -570,6 +612,7 @@ __export(index_exports, {
570
612
  getTableWrapperClasses: () => getTableWrapperClasses,
571
613
  getTabsContainerClasses: () => getTabsContainerClasses,
572
614
  getTagVariantClasses: () => getTagVariantClasses,
615
+ getTextClasses: () => getTextClasses,
573
616
  getThemeColor: () => getThemeColor,
574
617
  getTimePeriodLabels: () => getTimePeriodLabels,
575
618
  getTimePickerIconButtonClasses: () => getTimePickerIconButtonClasses,
@@ -609,7 +652,12 @@ __export(index_exports, {
609
652
  icon24ViewBox: () => icon24ViewBox,
610
653
  iconSizeClasses: () => iconSizeClasses,
611
654
  iconSvgBaseClasses: () => iconSvgBaseClasses,
655
+ iconSvgDefaultStrokeLinecap: () => iconSvgDefaultStrokeLinecap,
656
+ iconSvgDefaultStrokeLinejoin: () => iconSvgDefaultStrokeLinejoin,
657
+ iconSvgDefaultStrokeWidth: () => iconSvgDefaultStrokeWidth,
612
658
  iconWrapperClasses: () => iconWrapperClasses,
659
+ initRovingTabIndex: () => initRovingTabIndex,
660
+ injectDropdownStyles: () => injectDropdownStyles,
613
661
  injectLoadingAnimationStyles: () => injectLoadingAnimationStyles,
614
662
  injectShakeStyle: () => injectShakeStyle,
615
663
  injectSvgAnimationStyles: () => injectSvgAnimationStyles,
@@ -640,6 +688,7 @@ __export(index_exports, {
640
688
  layoutHeaderClasses: () => layoutHeaderClasses,
641
689
  layoutRootClasses: () => layoutRootClasses,
642
690
  layoutSidebarClasses: () => layoutSidebarClasses,
691
+ linePointTransitionClasses: () => linePointTransitionClasses,
643
692
  linkBaseClasses: () => linkBaseClasses,
644
693
  linkDisabledClasses: () => linkDisabledClasses,
645
694
  linkSizeClasses: () => linkSizeClasses,
@@ -661,7 +710,6 @@ __export(index_exports, {
661
710
  listItemSizeClasses: () => listItemSizeClasses,
662
711
  listItemTitleClasses: () => listItemTitleClasses,
663
712
  listLoadingOverlayClasses: () => listLoadingOverlayClasses,
664
- listPaginationContainerClasses: () => listPaginationContainerClasses,
665
713
  listSizeClasses: () => listSizeClasses,
666
714
  listWrapperClasses: () => listWrapperClasses,
667
715
  loadingBarBaseClasses: () => loadingBarBaseClasses,
@@ -699,12 +747,8 @@ __export(index_exports, {
699
747
  messageCloseIconPath: () => messageCloseIconPath,
700
748
  messageContainerBaseClasses: () => messageContainerBaseClasses,
701
749
  messageContentClasses: () => messageContentClasses,
702
- messageEnterActiveClasses: () => messageEnterActiveClasses,
703
- messageEnterClasses: () => messageEnterClasses,
704
750
  messageIconClasses: () => messageIconClasses,
705
751
  messageIconPaths: () => messageIconPaths,
706
- messageLeaveActiveClasses: () => messageLeaveActiveClasses,
707
- messageLeaveClasses: () => messageLeaveClasses,
708
752
  messageLoadingSpinnerClasses: () => messageLoadingSpinnerClasses,
709
753
  messagePositionClasses: () => messagePositionClasses,
710
754
  modalBodyClasses: () => modalBodyClasses,
@@ -716,9 +760,11 @@ __export(index_exports, {
716
760
  modalSizeClasses: () => modalSizeClasses,
717
761
  modalTitleClasses: () => modalTitleClasses,
718
762
  modalWrapperClasses: () => modalWrapperClasses,
763
+ moveFocusInMenu: () => moveFocusInMenu,
719
764
  normalizeActiveKeys: () => normalizeActiveKeys,
720
765
  normalizeChartPadding: () => normalizeChartPadding,
721
766
  normalizeDate: () => normalizeDate,
767
+ normalizeStringOption: () => normalizeStringOption,
722
768
  normalizeSvgAttrs: () => normalizeSvgAttrs,
723
769
  notificationBaseClasses: () => notificationBaseClasses,
724
770
  notificationCloseButtonClasses: () => notificationCloseButtonClasses,
@@ -733,6 +779,7 @@ __export(index_exports, {
733
779
  notificationTitleClasses: () => notificationTitleClasses,
734
780
  paginateData: () => paginateData,
735
781
  parseDate: () => parseDate,
782
+ parseInputValue: () => parseInputValue,
736
783
  parseTime: () => parseTime,
737
784
  parseWidthToPx: () => parseWidthToPx,
738
785
  polarToCartesian: () => polarToCartesian,
@@ -768,8 +815,17 @@ __export(index_exports, {
768
815
  radioSizeClasses: () => radioSizeClasses,
769
816
  radioVisualBaseClasses: () => radioVisualBaseClasses,
770
817
  replaceKeys: () => replaceKeys,
818
+ resetAreaGradientCounter: () => resetAreaGradientCounter,
819
+ resetBarGradientCounter: () => resetBarGradientCounter,
820
+ resetLineGradientCounter: () => resetLineGradientCounter,
821
+ resetScatterGradientCounter: () => resetScatterGradientCounter,
822
+ resolveChartPalette: () => resolveChartPalette,
823
+ resolveChartTooltipContent: () => resolveChartTooltipContent,
771
824
  resolveLocaleText: () => resolveLocaleText,
825
+ resolveMultiSeriesTooltipContent: () => resolveMultiSeriesTooltipContent,
826
+ resolveSeriesData: () => resolveSeriesData,
772
827
  restoreFocus: () => restoreFocus,
828
+ scatterPointTransitionClasses: () => scatterPointTransitionClasses,
773
829
  scrollToAnchor: () => scrollToAnchor,
774
830
  scrollToTop: () => scrollToTop,
775
831
  selectBaseClasses: () => selectBaseClasses,
@@ -797,22 +853,19 @@ __export(index_exports, {
797
853
  sliderThumbClasses: () => sliderThumbClasses,
798
854
  sliderTooltipClasses: () => sliderTooltipClasses,
799
855
  sliderTrackClasses: () => sliderTrackClasses,
856
+ sortActivityGroups: () => sortActivityGroups,
800
857
  sortAscIcon16PathD: () => sortAscIcon16PathD,
801
858
  sortBothIcon16PathD: () => sortBothIcon16PathD,
802
859
  sortData: () => sortData,
803
860
  sortDescIcon16PathD: () => sortDescIcon16PathD,
861
+ sortNotificationGroups: () => sortNotificationGroups,
804
862
  stackSeriesData: () => stackSeriesData,
805
863
  statusErrorIconPath: () => statusErrorIconPath,
806
864
  statusIconPaths: () => statusIconPaths,
807
865
  statusInfoIconPath: () => statusInfoIconPath,
808
866
  statusSuccessIconPath: () => statusSuccessIconPath,
809
867
  statusWarningIconPath: () => statusWarningIconPath,
810
- stepFinishIconPathD: () => stepFinishIconPathD,
811
- stepFinishIconPathStrokeLinecap: () => stepFinishIconPathStrokeLinecap,
812
- stepFinishIconPathStrokeLinejoin: () => stepFinishIconPathStrokeLinejoin,
813
- stepFinishIconPathStrokeWidth: () => stepFinishIconPathStrokeWidth,
814
- stepFinishIconSvgClasses: () => stepFinishIconSvgClasses,
815
- stepFinishIconViewBox: () => stepFinishIconViewBox,
868
+ stepFinishChar: () => stepFinishChar,
816
869
  submenuContentHorizontalClasses: () => submenuContentHorizontalClasses,
817
870
  submenuContentInlineClasses: () => submenuContentInlineClasses,
818
871
  submenuContentPopupClasses: () => submenuContentPopupClasses,
@@ -839,6 +892,7 @@ __export(index_exports, {
839
892
  tabItemLineClasses: () => tabItemLineClasses,
840
893
  tabItemSizeClasses: () => tabItemSizeClasses,
841
894
  tabNavBaseClasses: () => tabNavBaseClasses,
895
+ tabNavLineBorderClasses: () => tabNavLineBorderClasses,
842
896
  tabNavListBaseClasses: () => tabNavListBaseClasses,
843
897
  tabNavListCenteredClasses: () => tabNavListCenteredClasses,
844
898
  tabNavListPositionClasses: () => tabNavListPositionClasses,
@@ -885,6 +939,7 @@ __export(index_exports, {
885
939
  timelineTailClasses: () => timelineTailClasses,
886
940
  to12HourFormat: () => to12HourFormat,
887
941
  to24HourFormat: () => to24HourFormat,
942
+ toActivityTimelineItems: () => toActivityTimelineItems,
888
943
  toggleKey: () => toggleKey,
889
944
  togglePanelKey: () => togglePanelKey,
890
945
  treeBaseClasses: () => treeBaseClasses,
@@ -1228,7 +1283,7 @@ function sliderGetKeyboardValue(key, currentValue, min, max, step = 1, largeStep
1228
1283
  // src/utils/back-top-utils.ts
1229
1284
  function getScrollTop(target) {
1230
1285
  if (target === window) {
1231
- return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
1286
+ return window.scrollY || 0;
1232
1287
  }
1233
1288
  return target.scrollTop;
1234
1289
  }
@@ -1261,13 +1316,21 @@ function scrollToTop(target, duration, callback) {
1261
1316
  };
1262
1317
  requestAnimationFrame(animateScroll);
1263
1318
  }
1264
- 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";
1265
- var backTopButtonClasses = `fixed bottom-8 right-8 ${backTopBaseClasses}`;
1266
- 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}`;
1267
1322
  var backTopHiddenClasses = "opacity-0 pointer-events-none translate-y-4";
1268
1323
  var backTopVisibleClasses = "opacity-100 translate-y-0";
1269
1324
  var backTopIconPath = "M12 19V5M12 5l-7 7M12 5l7 7";
1270
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
+
1271
1334
  // src/utils/common-icons.ts
1272
1335
  var closeIconViewBox = "0 0 24 24";
1273
1336
  var closeIconPathD = "M6 18L18 6M6 6l12 12";
@@ -1487,7 +1550,8 @@ function mergeTigerLocale(base, override) {
1487
1550
  modal: { ...base?.modal, ...override?.modal },
1488
1551
  drawer: { ...base?.drawer, ...override?.drawer },
1489
1552
  upload: { ...base?.upload, ...override?.upload },
1490
- pagination: { ...base?.pagination, ...override?.pagination }
1553
+ pagination: { ...base?.pagination, ...override?.pagination },
1554
+ formWizard: { ...base?.formWizard, ...override?.formWizard }
1491
1555
  };
1492
1556
  }
1493
1557
  var DEFAULT_PAGINATION_LABELS = {
@@ -1508,6 +1572,23 @@ var ZH_CN_PAGINATION_LABELS = {
1508
1572
  nextPageAriaLabel: "\u4E0B\u4E00\u9875",
1509
1573
  pageAriaLabel: "\u7B2C {page} \u9875"
1510
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
+ }
1511
1592
  function getPaginationLabels(locale) {
1512
1593
  return {
1513
1594
  totalText: locale?.pagination?.totalText ?? DEFAULT_PAGINATION_LABELS.totalText,
@@ -1590,24 +1671,18 @@ function pluralizeEn(value, singular) {
1590
1671
  }
1591
1672
  function getTimePickerOptionAriaLabel(value, unit, locale, labelOverrides) {
1592
1673
  const labels = getTimePickerLabels(locale, labelOverrides);
1593
- if (isZhLocale(locale)) {
1594
- const suffix = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1595
- return `${value}${suffix}`;
1596
- }
1674
+ const unitLabel = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1675
+ if (isZhLocale(locale)) return `${value}${unitLabel}`;
1597
1676
  const lc = (locale ?? "").toLowerCase();
1598
- const useEnglishPlural = lc.length === 0 ? labelOverrides == null : lc.startsWith("en");
1599
- if (useEnglishPlural) {
1600
- if (unit === "hour") return `${value} ${pluralizeEn(value, "hour")}`;
1601
- if (unit === "minute") return `${value} ${pluralizeEn(value, "minute")}`;
1602
- return `${value} ${pluralizeEn(value, "second")}`;
1677
+ if (lc.startsWith("en") || !lc && !labelOverrides) {
1678
+ return `${value} ${pluralizeEn(value, unit)}`;
1603
1679
  }
1604
- const unitLabel = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1605
1680
  return `${value} ${unitLabel}`;
1606
1681
  }
1607
1682
  var timePickerBaseClasses = "relative inline-block w-full max-w-xs";
1608
1683
  var timePickerInputWrapperClasses = "relative flex items-center";
1609
1684
  function getTimePickerInputClasses(size, disabled) {
1610
- const baseClasses = [
1685
+ const baseClasses2 = [
1611
1686
  "w-full rounded-md border border-gray-300",
1612
1687
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:border-transparent",
1613
1688
  "transition-colors duration-200",
@@ -1620,10 +1695,10 @@ function getTimePickerInputClasses(size, disabled) {
1620
1695
  lg: "px-4 py-3 text-lg"
1621
1696
  };
1622
1697
  const stateClasses = disabled ? "bg-gray-100 text-gray-400 cursor-not-allowed" : "bg-white text-gray-900 cursor-pointer hover:border-gray-400";
1623
- return [...baseClasses, sizeClasses[size], stateClasses].join(" ");
1698
+ return [...baseClasses2, sizeClasses[size], stateClasses].join(" ");
1624
1699
  }
1625
1700
  function getTimePickerIconButtonClasses(size) {
1626
- const baseClasses = [
1701
+ const baseClasses2 = [
1627
1702
  "absolute right-1 flex items-center justify-center",
1628
1703
  "text-gray-400 hover:text-gray-600",
1629
1704
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
@@ -1635,7 +1710,7 @@ function getTimePickerIconButtonClasses(size) {
1635
1710
  md: "w-8 h-8",
1636
1711
  lg: "w-10 h-10"
1637
1712
  };
1638
- return [...baseClasses, sizeClasses[size]].join(" ");
1713
+ return [...baseClasses2, sizeClasses[size]].join(" ");
1639
1714
  }
1640
1715
  var timePickerClearButtonClasses = [
1641
1716
  "absolute right-10 flex items-center justify-center",
@@ -1653,18 +1728,18 @@ var timePickerRangeHeaderClasses = [
1653
1728
  "flex items-center gap-2"
1654
1729
  ].join(" ");
1655
1730
  function getTimePickerRangeTabButtonClasses(isActive) {
1656
- const baseClasses = [
1731
+ const baseClasses2 = [
1657
1732
  "px-3 py-1 text-xs font-medium rounded",
1658
1733
  "border border-gray-300",
1659
1734
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
1660
1735
  "transition-colors duration-150"
1661
1736
  ];
1662
1737
  if (isActive) {
1663
- 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(
1664
1739
  " "
1665
1740
  );
1666
1741
  }
1667
- 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(" ");
1668
1743
  }
1669
1744
  var timePickerColumnClasses = "flex flex-col overflow-hidden shrink-0 w-16";
1670
1745
  var timePickerColumnHeaderClasses = [
@@ -1675,27 +1750,27 @@ var timePickerColumnListClasses = [
1675
1750
  "overflow-y-auto max-h-48 scrollbar-thin scrollbar-thumb-gray-300 scrollbar-track-gray-100"
1676
1751
  ].join(" ");
1677
1752
  function getTimePickerItemClasses(isSelected, isDisabled) {
1678
- const baseClasses = [
1753
+ const baseClasses2 = [
1679
1754
  "w-full px-3 py-1.5 text-sm text-center",
1680
1755
  "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
1681
1756
  "transition-colors duration-150",
1682
1757
  "cursor-pointer"
1683
1758
  ];
1684
1759
  if (isDisabled) {
1685
- 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(" ");
1686
1761
  }
1687
1762
  if (isSelected) {
1688
1763
  return [
1689
- ...baseClasses,
1764
+ ...baseClasses2,
1690
1765
  "bg-[var(--tiger-primary,#2563eb)] text-white",
1691
1766
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
1692
1767
  "font-medium"
1693
1768
  ].join(" ");
1694
1769
  }
1695
- return [...baseClasses, "text-gray-700"].join(" ");
1770
+ return [...baseClasses2, "text-gray-700"].join(" ");
1696
1771
  }
1697
1772
  function getTimePickerPeriodButtonClasses(isSelected) {
1698
- const baseClasses = [
1773
+ const baseClasses2 = [
1699
1774
  "w-full px-3 py-2 text-sm font-medium text-center",
1700
1775
  "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
1701
1776
  "transition-colors duration-150",
@@ -1703,12 +1778,12 @@ function getTimePickerPeriodButtonClasses(isSelected) {
1703
1778
  ];
1704
1779
  if (isSelected) {
1705
1780
  return [
1706
- ...baseClasses,
1781
+ ...baseClasses2,
1707
1782
  "bg-[var(--tiger-primary,#2563eb)] text-white",
1708
1783
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]"
1709
1784
  ].join(" ");
1710
1785
  }
1711
- return [...baseClasses, "text-gray-700"].join(" ");
1786
+ return [...baseClasses2, "text-gray-700"].join(" ");
1712
1787
  }
1713
1788
  var timePickerFooterClasses = [
1714
1789
  "px-3 py-2 border-t border-gray-200",
@@ -1846,35 +1921,20 @@ var INPUT_SIZE_CLASSES = {
1846
1921
  md: "py-2 text-base",
1847
1922
  lg: "py-3 text-lg"
1848
1923
  };
1849
- var PADDING_LEFT = {
1850
- sm: "pl-2",
1851
- md: "pl-3",
1852
- lg: "pl-4"
1853
- };
1854
- var PADDING_RIGHT = {
1855
- sm: "pr-2",
1856
- md: "pr-3",
1857
- 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" }
1858
1928
  };
1859
- var PREFIX_PADDING = {
1860
- sm: "pl-8",
1861
- md: "pl-10",
1862
- lg: "pl-12"
1863
- };
1864
- var SUFFIX_PADDING = {
1865
- sm: "pr-8",
1866
- md: "pr-10",
1867
- lg: "pr-12"
1868
- };
1869
- function getInputClasses(options = "md") {
1870
- const opts = typeof options === "string" ? { size: options, status: "default" } : { size: "md", status: "default", ...options };
1871
- 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];
1872
1932
  return classNames(
1873
1933
  ...BASE_INPUT_CLASSES,
1874
1934
  INPUT_SIZE_CLASSES[size],
1875
1935
  STATUS_CLASSES[status],
1876
- hasPrefix ? PREFIX_PADDING[size] : PADDING_LEFT[size],
1877
- hasSuffix ? SUFFIX_PADDING[size] : PADDING_RIGHT[size]
1936
+ hasPrefix ? pad.prefixLeft : pad.left,
1937
+ hasSuffix ? pad.suffixRight : pad.right
1878
1938
  );
1879
1939
  }
1880
1940
  function getInputWrapperClasses() {
@@ -1891,17 +1951,108 @@ function getInputAffixClasses(position, size = "md") {
1891
1951
  return classNames(base, posClass, widthClass);
1892
1952
  }
1893
1953
  function getInputErrorClasses(size = "md") {
1894
- const padding = {
1895
- sm: "pr-2",
1896
- md: "pr-3",
1897
- lg: "pr-4"
1898
- }[size];
1899
1954
  return classNames(
1900
1955
  "absolute inset-y-0 right-0 flex items-center pointer-events-none",
1901
- padding,
1956
+ INPUT_PADDING[size].right,
1902
1957
  "text-red-500 text-sm"
1903
1958
  );
1904
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
+ }
1966
+
1967
+ // src/utils/form-item-styles.ts
1968
+ var FORM_ITEM_SPACING = {
1969
+ sm: "mb-3 last:mb-0",
1970
+ md: "mb-4 last:mb-0",
1971
+ lg: "mb-6 last:mb-0"
1972
+ };
1973
+ var LABEL_TEXT_SIZE = {
1974
+ sm: "text-xs",
1975
+ md: "text-sm",
1976
+ lg: "text-base"
1977
+ };
1978
+ var LABEL_PADDING_TOP = {
1979
+ sm: "pt-1",
1980
+ md: "pt-2",
1981
+ lg: "pt-3"
1982
+ };
1983
+ var ERROR_TEXT_SIZE = {
1984
+ sm: "text-xs",
1985
+ md: "text-xs",
1986
+ lg: "text-sm"
1987
+ };
1988
+ var ERROR_MIN_HEIGHT = {
1989
+ sm: "min-h-[1rem]",
1990
+ md: "min-h-[1.25rem]",
1991
+ lg: "min-h-[1.5rem]"
1992
+ };
1993
+ function getFormItemClasses(options = {}) {
1994
+ const { size = "md", labelPosition = "right", hasError = false, disabled = false } = options;
1995
+ const layoutClasses = labelPosition === "top" ? "flex flex-col gap-2" : "flex items-start gap-4";
1996
+ return classNames(
1997
+ "tiger-form-item",
1998
+ "w-full",
1999
+ `tiger-form-item--${size}`,
2000
+ `tiger-form-item--label-${labelPosition}`,
2001
+ layoutClasses,
2002
+ FORM_ITEM_SPACING[size],
2003
+ hasError && "tiger-form-item--error",
2004
+ disabled && "tiger-form-item--disabled"
2005
+ );
2006
+ }
2007
+ function getFormItemLabelClasses(options = {}) {
2008
+ const { size = "md", labelPosition = "right", labelAlign = "right", isRequired = false } = options;
2009
+ const alignClass = labelAlign === "right" ? "text-right" : "text-left";
2010
+ const positionClasses = labelPosition === "top" ? "w-full" : "shrink-0";
2011
+ const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size];
2012
+ return classNames(
2013
+ "tiger-form-item__label",
2014
+ `tiger-form-item__label--${labelAlign}`,
2015
+ "font-medium",
2016
+ "text-[var(--tiger-text,#111827)]",
2017
+ LABEL_TEXT_SIZE[size],
2018
+ alignClass,
2019
+ positionClasses,
2020
+ paddingClass,
2021
+ isRequired && "tiger-form-item__label--required"
2022
+ );
2023
+ }
2024
+ function getFormItemContentClasses(labelPosition = "right") {
2025
+ return classNames(
2026
+ "tiger-form-item__content",
2027
+ labelPosition === "top" ? "w-full" : "flex-1",
2028
+ "min-w-0",
2029
+ "flex",
2030
+ "flex-col"
2031
+ );
2032
+ }
2033
+ function getFormItemFieldClasses() {
2034
+ return classNames("tiger-form-item__field", "w-full");
2035
+ }
2036
+ function getFormItemErrorClasses(size = "md") {
2037
+ return classNames(
2038
+ "tiger-form-item__error",
2039
+ "mt-1",
2040
+ ERROR_TEXT_SIZE[size],
2041
+ ERROR_MIN_HEIGHT[size],
2042
+ "text-[var(--tiger-error,#ef4444)]",
2043
+ "transition-opacity",
2044
+ "duration-150",
2045
+ "opacity-0"
2046
+ );
2047
+ }
2048
+ function getFormItemAsteriskClasses() {
2049
+ return classNames(
2050
+ "tiger-form-item__asterisk",
2051
+ "mr-1",
2052
+ "font-semibold",
2053
+ "text-[var(--tiger-error,#ef4444)]"
2054
+ );
2055
+ }
1905
2056
 
1906
2057
  // src/utils/select-utils.ts
1907
2058
  var selectBaseClasses = "relative inline-block w-full";
@@ -1912,7 +2063,6 @@ var SELECT_TRIGGER_BASE_CLASSES = [
1912
2063
  "justify-between",
1913
2064
  "gap-2",
1914
2065
  "px-3",
1915
- "py-2",
1916
2066
  "bg-[var(--tiger-select-trigger-bg,var(--tiger-surface,#ffffff))]",
1917
2067
  "border",
1918
2068
  "border-[var(--tiger-select-trigger-border,var(--tiger-border,#d1d5db))]",
@@ -1968,6 +2118,17 @@ function getSelectOptionClasses(isSelected, isDisabled, size) {
1968
2118
  function isOptionGroup(option) {
1969
2119
  return !!option && typeof option === "object" && "options" in option && Array.isArray(option.options);
1970
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
+ }
1971
2132
  function filterOptions(options, query) {
1972
2133
  if (!query) {
1973
2134
  return options;
@@ -2259,20 +2420,9 @@ var getRadioLabelClasses = ({ size, disabled, colors }) => classNames(
2259
2420
 
2260
2421
  // src/utils/radio-group-utils.ts
2261
2422
  var radioGroupDefaultClasses = "space-y-2";
2262
- var getRadioGroupClasses = ({
2263
- className,
2264
- hasCustomClass
2265
- } = {}) => {
2266
- const effectiveHasCustomClass = hasCustomClass ?? !!className;
2267
- return classNames(className, !effectiveHasCustomClass && radioGroupDefaultClasses);
2268
- };
2423
+ var getRadioGroupClasses = ({ className } = {}) => classNames(className, !className && radioGroupDefaultClasses);
2269
2424
 
2270
2425
  // src/utils/date-utils.ts
2271
- function isValidDate(value) {
2272
- if (!value) return false;
2273
- const date = value instanceof Date ? value : new Date(value);
2274
- return !isNaN(date.getTime());
2275
- }
2276
2426
  function parseDate(value) {
2277
2427
  if (!value) return null;
2278
2428
  if (value instanceof Date) {
@@ -2282,7 +2432,7 @@ function parseDate(value) {
2282
2432
  return isNaN(parsed.getTime()) ? null : parsed;
2283
2433
  }
2284
2434
  function formatDate(date, format = "yyyy-MM-dd") {
2285
- if (!date || !isValidDate(date)) return "";
2435
+ if (!date || isNaN(date.getTime())) return "";
2286
2436
  const year = date.getFullYear();
2287
2437
  const month = String(date.getMonth() + 1).padStart(2, "0");
2288
2438
  const day = String(date.getDate()).padStart(2, "0");
@@ -2309,15 +2459,13 @@ function normalizeDate(date) {
2309
2459
  return normalized;
2310
2460
  }
2311
2461
  function isDateInRange(date, minDate, maxDate) {
2312
- if (!isValidDate(date)) return false;
2462
+ if (isNaN(date.getTime())) return false;
2313
2463
  const normalizedDate = normalizeDate(date);
2314
- if (minDate && isValidDate(minDate)) {
2315
- const normalizedMin = normalizeDate(minDate);
2316
- if (normalizedDate < normalizedMin) return false;
2464
+ if (minDate && !isNaN(minDate.getTime())) {
2465
+ if (normalizedDate < normalizeDate(minDate)) return false;
2317
2466
  }
2318
- if (maxDate && isValidDate(maxDate)) {
2319
- const normalizedMax = normalizeDate(maxDate);
2320
- if (normalizedDate > normalizedMax) return false;
2467
+ if (maxDate && !isNaN(maxDate.getTime())) {
2468
+ if (normalizedDate > normalizeDate(maxDate)) return false;
2321
2469
  }
2322
2470
  return true;
2323
2471
  }
@@ -2444,7 +2592,7 @@ function isToday(date) {
2444
2592
  var datePickerBaseClasses = "relative inline-block w-full";
2445
2593
  var datePickerInputWrapperClasses = "relative w-full";
2446
2594
  function getDatePickerInputClasses(size = "md", disabled = false) {
2447
- const baseClasses = [
2595
+ const baseClasses2 = [
2448
2596
  "w-full",
2449
2597
  "rounded-md",
2450
2598
  "border",
@@ -2466,10 +2614,10 @@ function getDatePickerInputClasses(size = "md", disabled = false) {
2466
2614
  lg: "px-4 py-3 text-lg"
2467
2615
  };
2468
2616
  const disabledClasses = disabled ? ["bg-gray-100", "cursor-not-allowed", "text-gray-500"] : ["cursor-pointer"];
2469
- return classNames(...baseClasses, sizeClasses[size], ...disabledClasses);
2617
+ return classNames(...baseClasses2, sizeClasses[size], ...disabledClasses);
2470
2618
  }
2471
2619
  function getDatePickerIconButtonClasses(size = "md") {
2472
- const baseClasses = [
2620
+ const baseClasses2 = [
2473
2621
  "absolute",
2474
2622
  "right-0",
2475
2623
  "top-0",
@@ -2486,7 +2634,7 @@ function getDatePickerIconButtonClasses(size = "md") {
2486
2634
  md: "px-3",
2487
2635
  lg: "px-4"
2488
2636
  };
2489
- return classNames(...baseClasses, sizeClasses[size]);
2637
+ return classNames(...baseClasses2, sizeClasses[size]);
2490
2638
  }
2491
2639
  var datePickerCalendarClasses = classNames(
2492
2640
  "absolute",
@@ -2527,33 +2675,22 @@ var datePickerDayNameClasses = classNames(
2527
2675
  "py-2"
2528
2676
  );
2529
2677
  function getDatePickerDayCellClasses(isCurrentMonth, isSelected, isToday2, isDisabled, isInRange = false, isRangeStart = false, isRangeEnd = false) {
2530
- const baseClasses = [
2531
- "w-10",
2532
- "h-10",
2533
- "flex",
2534
- "items-center",
2535
- "justify-center",
2536
- "rounded-md",
2537
- "text-sm",
2538
- "transition-colors"
2539
- ];
2540
- const interactionClasses = isDisabled ? ["cursor-not-allowed", "text-gray-300"] : ["cursor-pointer", "hover:bg-gray-100"];
2541
- const monthClasses = isCurrentMonth ? ["text-gray-900"] : ["text-gray-400"];
2542
- const stateClasses = [];
2543
- if (isInRange && !isDisabled && !isSelected) {
2544
- 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");
2545
2681
  }
2546
2682
  if (isSelected || isRangeStart || isRangeEnd) {
2547
- stateClasses.push(
2548
- "bg-[var(--tiger-primary,#2563eb)]",
2549
- "text-white",
2550
- "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
2551
- "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"
2552
2688
  );
2553
- } else if (isToday2) {
2554
- stateClasses.push("border", "border-[var(--tiger-primary,#2563eb)]", "font-semibold");
2555
2689
  }
2556
- 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);
2557
2694
  }
2558
2695
  var datePickerClearButtonClasses = classNames(
2559
2696
  "absolute",
@@ -2636,15 +2773,7 @@ function to24HourFormat(hours, period) {
2636
2773
  }
2637
2774
  }
2638
2775
  function formatTimeDisplay(hours, minutes, seconds = 0, format = "24", showSeconds = false) {
2639
- if (format === "12") {
2640
- const { hours: hours12, period } = to12HourFormat(hours);
2641
- const h = hours12.toString().padStart(2, "0");
2642
- const m = clampValue(minutes, 0, 59).toString().padStart(2, "0");
2643
- const s = clampValue(seconds, 0, 59).toString().padStart(2, "0");
2644
- const timeStr = showSeconds ? `${h}:${m}:${s}` : `${h}:${m}`;
2645
- return `${timeStr} ${period}`;
2646
- }
2647
- return formatTime(hours, minutes, seconds, showSeconds);
2776
+ return formatTimeDisplayWithLocale(hours, minutes, seconds, format, showSeconds);
2648
2777
  }
2649
2778
  function getTimePeriodLabels(locale) {
2650
2779
  if (!locale) return { am: "AM", pm: "PM" };
@@ -2708,21 +2837,19 @@ function generateHours(step = 1, format = "24") {
2708
2837
  }
2709
2838
  return hours;
2710
2839
  }
2711
- function generateMinutes(step = 1) {
2712
- const minutes = [];
2840
+ function generateTimeSlots(step, max) {
2713
2841
  const validStep = validateStep(step);
2714
- for (let i = 0; i < 60; i += validStep) {
2715
- minutes.push(i);
2842
+ const values = [];
2843
+ for (let i = 0; i < max; i += validStep) {
2844
+ values.push(i);
2716
2845
  }
2717
- return minutes;
2846
+ return values;
2847
+ }
2848
+ function generateMinutes(step = 1) {
2849
+ return generateTimeSlots(step, 60);
2718
2850
  }
2719
2851
  function generateSeconds(step = 1) {
2720
- const seconds = [];
2721
- const validStep = validateStep(step);
2722
- for (let i = 0; i < 60; i += validStep) {
2723
- seconds.push(i);
2724
- }
2725
- return seconds;
2852
+ return generateTimeSlots(step, 60);
2726
2853
  }
2727
2854
  function getCurrentTime(showSeconds = false) {
2728
2855
  const now = /* @__PURE__ */ new Date();
@@ -2862,8 +2989,8 @@ function formatFileSize(bytes) {
2862
2989
  const i = Math.floor(Math.log(bytes) / Math.log(k));
2863
2990
  return `${(bytes / Math.pow(k, i)).toFixed(2)} ${units[i]}`;
2864
2991
  }
2865
- function getUploadButtonClasses(drag, disabled) {
2866
- const baseClasses = [
2992
+ function getUploadButtonClasses(disabled) {
2993
+ const baseClasses2 = [
2867
2994
  "inline-flex",
2868
2995
  "items-center",
2869
2996
  "justify-center",
@@ -2888,10 +3015,10 @@ function getUploadButtonClasses(drag, disabled) {
2888
3015
  "focus:ring-[var(--tiger-primary,#2563eb)]",
2889
3016
  "cursor-pointer"
2890
3017
  ];
2891
- return classNames(...baseClasses, ...stateClasses);
3018
+ return classNames(...baseClasses2, ...stateClasses);
2892
3019
  }
2893
3020
  function getDragAreaClasses(isDragging, disabled) {
2894
- const baseClasses = [
3021
+ const baseClasses2 = [
2895
3022
  "flex",
2896
3023
  "flex-col",
2897
3024
  "items-center",
@@ -2930,7 +3057,7 @@ function getDragAreaClasses(isDragging, disabled) {
2930
3057
  ...focusClasses
2931
3058
  ];
2932
3059
  }
2933
- return classNames(...baseClasses, ...stateClasses);
3060
+ return classNames(...baseClasses2, ...stateClasses);
2934
3061
  }
2935
3062
  var FILE_LIST_STATUS_CLASSES = {
2936
3063
  ready: ["bg-gray-50", "hover:bg-gray-100"],
@@ -2945,7 +3072,7 @@ var PICTURE_CARD_STATUS_CLASSES = {
2945
3072
  error: ["border-red-400", "bg-red-50"]
2946
3073
  };
2947
3074
  function getFileListItemClasses(status) {
2948
- const baseClasses = [
3075
+ const baseClasses2 = [
2949
3076
  "flex",
2950
3077
  "items-center",
2951
3078
  "justify-between",
@@ -2956,10 +3083,10 @@ function getFileListItemClasses(status) {
2956
3083
  "duration-200"
2957
3084
  ];
2958
3085
  const stateClasses = status ? FILE_LIST_STATUS_CLASSES[status] : FILE_LIST_STATUS_CLASSES.ready;
2959
- return classNames(...baseClasses, ...stateClasses);
3086
+ return classNames(...baseClasses2, ...stateClasses);
2960
3087
  }
2961
3088
  function getPictureCardClasses(status) {
2962
- const baseClasses = [
3089
+ const baseClasses2 = [
2963
3090
  "relative",
2964
3091
  "inline-flex",
2965
3092
  "items-center",
@@ -2973,7 +3100,7 @@ function getPictureCardClasses(status) {
2973
3100
  "duration-200"
2974
3101
  ];
2975
3102
  const stateClasses = status ? PICTURE_CARD_STATUS_CLASSES[status] : PICTURE_CARD_STATUS_CLASSES.ready;
2976
- return classNames(...baseClasses, ...stateClasses);
3103
+ return classNames(...baseClasses2, ...stateClasses);
2977
3104
  }
2978
3105
 
2979
3106
  // src/utils/grid.ts
@@ -3076,6 +3203,14 @@ function getColOrderStyleVars(order) {
3076
3203
  setOrderVars(vars, order);
3077
3204
  return vars;
3078
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
+ }
3079
3214
  function getAlignClasses(align) {
3080
3215
  return ALIGN_MAP[align] || "items-start";
3081
3216
  }
@@ -3120,34 +3255,48 @@ function getFlexClasses(flex) {
3120
3255
  }
3121
3256
 
3122
3257
  // src/utils/divider.ts
3123
- var SPACING_MAP = {
3124
- none: { horizontal: "", vertical: "" },
3125
- xs: { horizontal: "my-1", vertical: "mx-1" },
3126
- sm: { horizontal: "my-2", vertical: "mx-2" },
3127
- md: { horizontal: "my-4", vertical: "mx-4" },
3128
- lg: { horizontal: "my-6", vertical: "mx-6" },
3129
- 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"
3130
3274
  };
3131
3275
  var LINE_STYLE_MAP = {
3132
3276
  solid: "border-solid",
3133
3277
  dashed: "border-dashed",
3134
3278
  dotted: "border-dotted"
3135
3279
  };
3136
- var DEFAULT_BORDER_COLOR_CLASS = "border-[var(--tiger-border,#e5e7eb)]";
3137
- function getDividerSpacingClasses(spacing, orientation) {
3138
- return SPACING_MAP[spacing][orientation];
3139
- }
3140
- function getDividerLineStyleClasses(lineStyle) {
3141
- return LINE_STYLE_MAP[lineStyle];
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]}`;
3142
3285
  }
3143
- function getDividerOrientationClasses(orientation) {
3144
- 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;
3145
3294
  }
3146
3295
 
3147
3296
  // src/utils/layout-utils.ts
3148
3297
  var layoutRootClasses = "tiger-layout flex flex-col min-h-screen";
3149
3298
  var layoutHeaderClasses = "tiger-header bg-[var(--tiger-surface,#ffffff)] border-b border-[var(--tiger-border,#e5e7eb)]";
3150
- 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";
3151
3300
  var layoutContentClasses = "tiger-content flex-1 bg-[var(--tiger-layout-content-bg,#f9fafb)] p-6";
3152
3301
  var layoutFooterClasses = "tiger-footer bg-[var(--tiger-surface,#ffffff)] border-t border-[var(--tiger-border,#e5e7eb)] p-4";
3153
3302
 
@@ -3177,33 +3326,30 @@ var getContainerClasses = ({
3177
3326
  );
3178
3327
 
3179
3328
  // src/utils/space.ts
3180
- var SPACE_BASE_CLASS = "inline-flex";
3181
- function getSpaceGapSize(size = "md") {
3182
- if (typeof size === "number") {
3183
- return { style: `${size}px` };
3184
- }
3185
- const sizeMap = {
3186
- sm: "gap-2",
3187
- // 8px
3188
- md: "gap-4",
3189
- // 16px
3190
- lg: "gap-6"
3191
- // 24px
3192
- };
3193
- return { class: sizeMap[size] };
3194
- }
3195
- function getSpaceAlignClass(align = "start") {
3196
- const alignMap = {
3197
- start: "items-start",
3198
- end: "items-end",
3199
- center: "items-center",
3200
- baseline: "items-baseline",
3201
- stretch: "items-stretch"
3202
- };
3203
- 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
+ );
3204
3350
  }
3205
- function getSpaceDirectionClass(direction = "horizontal") {
3206
- return direction === "horizontal" ? "flex-row" : "flex-col";
3351
+ function getSpaceStyle(size = "md") {
3352
+ return typeof size === "number" ? { gap: `${size}px` } : void 0;
3207
3353
  }
3208
3354
 
3209
3355
  // src/utils/table-utils.ts
@@ -3246,13 +3392,17 @@ function getFixedColumnOffsets(columns) {
3246
3392
  }
3247
3393
  function getTableWrapperClasses(bordered, maxHeight) {
3248
3394
  return classNames(
3395
+ "relative",
3249
3396
  tableContainerClasses,
3250
- bordered && "border border-gray-200 rounded-lg",
3397
+ bordered && "border border-[var(--tiger-border,#e5e7eb)] rounded-lg overflow-hidden",
3251
3398
  maxHeight && "overflow-y-auto"
3252
3399
  );
3253
3400
  }
3254
3401
  function getTableHeaderClasses(stickyHeader) {
3255
- 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
+ );
3256
3406
  }
3257
3407
  function getTableHeaderCellClasses(size, align, sortable, customClassName) {
3258
3408
  const paddingClasses = {
@@ -3266,18 +3416,18 @@ function getTableHeaderCellClasses(size, align, sortable, customClassName) {
3266
3416
  right: "text-right"
3267
3417
  };
3268
3418
  return classNames(
3269
- "font-medium text-gray-700 text-sm",
3419
+ "font-medium text-[var(--tiger-text-muted,#6b7280)] text-xs uppercase tracking-wider",
3270
3420
  paddingClasses[size],
3271
3421
  alignClasses[align],
3272
- 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",
3273
3423
  customClassName
3274
3424
  );
3275
3425
  }
3276
3426
  function getTableRowClasses(hoverable, striped, isEven, customClassName) {
3277
3427
  return classNames(
3278
- "border-b border-gray-200 last:border-b-0",
3279
- hoverable && "hover:bg-gray-50 transition-colors",
3280
- 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",
3281
3431
  customClassName
3282
3432
  );
3283
3433
  }
@@ -3293,7 +3443,7 @@ function getTableCellClasses(size, align, customClassName) {
3293
3443
  right: "text-right"
3294
3444
  };
3295
3445
  return classNames(
3296
- "text-sm text-gray-900",
3446
+ "text-sm text-[var(--tiger-text,#111827)]",
3297
3447
  paddingClasses[size],
3298
3448
  alignClasses[align],
3299
3449
  customClassName
@@ -3305,9 +3455,9 @@ function getSortIconClasses(active) {
3305
3455
  active ? "text-[var(--tiger-primary,#2563eb)]" : "text-gray-400"
3306
3456
  );
3307
3457
  }
3308
- var tableEmptyStateClasses = "text-center py-12 text-gray-500";
3458
+ var tableEmptyStateClasses = "text-center py-12 text-[var(--tiger-text-muted,#6b7280)]";
3309
3459
  var tableLoadingOverlayClasses = classNames(
3310
- "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"
3311
3461
  );
3312
3462
  var tablePaginationContainerClasses = classNames(
3313
3463
  "flex items-center justify-between px-4 py-3 border-t border-gray-200"
@@ -3423,27 +3573,17 @@ var badgePositionClasses = {
3423
3573
  "bottom-left": "absolute -bottom-1 -left-1"
3424
3574
  };
3425
3575
  function formatBadgeContent(content, max = 99, showZero = false) {
3426
- if (content === void 0 || content === null) {
3427
- return null;
3428
- }
3429
- if (typeof content === "string") {
3430
- return content;
3431
- }
3432
- const num = Number(content);
3433
- if (num === 0 && !showZero) {
3434
- return null;
3435
- }
3436
- if (num > max) {
3437
- return `${max}+`;
3438
- }
3439
- 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);
3440
3581
  }
3441
3582
  function shouldHideBadge(content, type, showZero) {
3442
- if (type === "dot") {
3443
- return false;
3444
- }
3445
- const formattedContent = formatBadgeContent(content, 99, showZero);
3446
- 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;
3447
3587
  }
3448
3588
 
3449
3589
  // src/utils/card-utils.ts
@@ -3461,7 +3601,6 @@ var cardVariantClasses = {
3461
3601
  };
3462
3602
  var cardHoverClasses = "cursor-pointer hover:shadow-xl hover:scale-[1.02]";
3463
3603
  var cardHeaderClasses = "border-b border-[var(--tiger-border,#e5e7eb)] pb-3 mb-3";
3464
- var cardBodyClasses = "";
3465
3604
  var cardFooterClasses = "border-t border-[var(--tiger-border,#e5e7eb)] pt-3 mt-3";
3466
3605
  var cardCoverClasses = "w-full h-48 object-cover";
3467
3606
  var cardCoverWrapperClasses = "overflow-hidden";
@@ -3490,10 +3629,9 @@ var avatarDefaultBgColor = "bg-[var(--tiger-avatar-bg,#e5e7eb)]";
3490
3629
  var avatarDefaultTextColor = "text-[var(--tiger-avatar-text,var(--tiger-text-muted,#6b7280))]";
3491
3630
  var avatarImageClasses = "w-full h-full object-cover";
3492
3631
  function getInitials(name) {
3493
- const trimmed = typeof name === "string" ? name.trim() : "";
3632
+ const trimmed = name.trim();
3494
3633
  if (!trimmed) return "";
3495
3634
  const words = trimmed.split(/\s+/).filter(Boolean);
3496
- if (words.length === 0) return "";
3497
3635
  if (words.length === 1) {
3498
3636
  const firstWord = words[0];
3499
3637
  const hasNonASCII = /[^\x20-\x7E]/.test(firstWord);
@@ -3555,7 +3693,6 @@ var listHeaderFooterBaseClasses = "border-b border-[var(--tiger-border,#e5e7eb)]
3555
3693
  var listFooterClasses = "border-t border-b-0";
3556
3694
  var listEmptyStateClasses = "py-8 text-center text-[var(--tiger-text-muted,#6b7280)]";
3557
3695
  var listLoadingOverlayClasses = "absolute inset-0 bg-[var(--tiger-surface,#ffffff)]/75 flex items-center justify-center z-10";
3558
- var listPaginationContainerClasses = "flex items-center justify-between px-4 py-3 border-t border-[var(--tiger-border,#e5e7eb)]";
3559
3696
  var listItemMetaClasses = "flex items-center gap-3 flex-1";
3560
3697
  var listItemAvatarClasses = "flex-shrink-0";
3561
3698
  var listItemContentClasses = "flex-1 min-w-0";
@@ -3623,7 +3760,6 @@ var descriptionsSizeClasses = {
3623
3760
  };
3624
3761
  var descriptionsTableClasses = "w-full border-collapse";
3625
3762
  var descriptionsTableBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3626
- var descriptionsRowClasses = "";
3627
3763
  var descriptionsCellSizeClasses = {
3628
3764
  sm: "px-3 py-2",
3629
3765
  md: "px-4 py-3",
@@ -3633,12 +3769,12 @@ var descriptionsLabelClasses = "font-medium bg-[var(--tiger-surface-muted,#f9faf
3633
3769
  var descriptionsLabelBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3634
3770
  var descriptionsContentClasses = "text-[var(--tiger-text,#111827)]";
3635
3771
  var descriptionsContentBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3636
- var descriptionsVerticalWrapperClasses = "space-y-0";
3772
+ var descriptionsVerticalWrapperClasses = "";
3637
3773
  var descriptionsVerticalItemClasses = "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0";
3638
3774
  var descriptionsVerticalLabelClasses = "font-medium mb-1 text-[var(--tiger-text-muted,#374151)]";
3639
3775
  var descriptionsVerticalContentClasses = "text-[var(--tiger-text,#111827)]";
3640
- function getDescriptionsClasses(bordered, size) {
3641
- return [descriptionsBaseClasses, descriptionsSizeClasses[size]].join(" ");
3776
+ function getDescriptionsClasses(size) {
3777
+ return `${descriptionsBaseClasses} ${descriptionsSizeClasses[size]}`;
3642
3778
  }
3643
3779
  function getDescriptionsTableClasses(bordered) {
3644
3780
  const classes = [descriptionsTableClasses];
@@ -3667,12 +3803,8 @@ function getDescriptionsContentClasses(bordered, size, layout) {
3667
3803
  }
3668
3804
  return classes.join(" ");
3669
3805
  }
3670
- function getDescriptionsVerticalItemClasses(bordered, size) {
3671
- const classes = [descriptionsCellSizeClasses[size]];
3672
- if (!bordered) {
3673
- classes.push(descriptionsVerticalItemClasses);
3674
- }
3675
- return classes.join(" ");
3806
+ function getDescriptionsVerticalItemClasses(size) {
3807
+ return `${descriptionsCellSizeClasses[size]} ${descriptionsVerticalItemClasses}`;
3676
3808
  }
3677
3809
  function groupItemsIntoRows(items, column) {
3678
3810
  const rows = [];
@@ -3702,91 +3834,53 @@ function groupItemsIntoRows(items, column) {
3702
3834
  // src/utils/timeline-utils.ts
3703
3835
  var timelineContainerClasses = "relative";
3704
3836
  var timelineListClasses = "list-none m-0 p-0";
3705
- var timelineItemClasses = "relative pb-8 last:pb-0";
3837
+ var timelineItemClasses = "relative pb-8";
3706
3838
  var timelineTailClasses = "absolute w-0.5 bg-[var(--tiger-border,#e5e7eb)]";
3707
- var timelineHeadClasses = "absolute flex items-center justify-center";
3708
- var timelineDotBgClass = "bg-[var(--tiger-timeline-dot,#d1d5db)]";
3709
- var timelineDotClasses = `w-2.5 h-2.5 rounded-full border-2 border-[var(--tiger-surface,#ffffff)] ${timelineDotBgClass}`;
3710
- var timelineCustomDotClasses = "flex items-center justify-center";
3839
+ var timelineHeadClasses = "absolute z-10 flex items-center justify-center";
3711
3840
  var timelineContentClasses = "relative";
3841
+ var timelineCustomDotClasses = "flex items-center justify-center";
3712
3842
  var timelineLabelClasses = "text-sm text-[var(--tiger-text-muted,#6b7280)] mb-1";
3713
3843
  var timelineDescriptionClasses = "text-[var(--tiger-text,#374151)]";
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}`;
3847
+ var HEAD_TOP = "top-[18px]";
3848
+ var TAIL_TOP = "top-[23px]";
3849
+ var TAIL_BOTTOM = "-bottom-[23px]";
3714
3850
  function getTimelineContainerClasses(mode) {
3715
- const classes = [timelineContainerClasses];
3716
- if (mode === "left" || mode === "right") {
3717
- classes.push("pl-0");
3718
- } else if (mode === "alternate") {
3719
- classes.push("flex flex-col");
3720
- }
3721
- return classes.join(" ");
3851
+ if (mode === "alternate") return `${timelineContainerClasses} flex flex-col`;
3852
+ return timelineContainerClasses;
3722
3853
  }
3723
3854
  function getTimelineItemClasses(mode, position, isLast = false) {
3724
- const classes = [timelineItemClasses];
3725
- if (mode === "left") {
3726
- classes.push("pl-8");
3727
- } else if (mode === "right") {
3728
- classes.push("pr-8 text-right");
3729
- } else if (mode === "alternate") {
3730
- if (position === "left") {
3731
- classes.push("pr-8 text-right flex flex-row-reverse");
3732
- } else {
3733
- classes.push("pl-8 flex");
3734
- }
3855
+ const base = isLast ? "relative pb-0" : timelineItemClasses;
3856
+ if (mode === "right") return `${base} pr-8 text-right`;
3857
+ if (mode === "alternate") {
3858
+ return position === "left" ? `${base} pr-8 text-right flex flex-row-reverse` : `${base} pl-8 flex`;
3735
3859
  }
3736
- if (isLast) {
3737
- classes.push("pb-0");
3738
- }
3739
- return classes.join(" ");
3860
+ return `${base} pl-8`;
3740
3861
  }
3741
- function getTimelineTailClasses(mode, position, isLast = false) {
3742
- if (isLast) {
3743
- return "hidden";
3744
- }
3745
- const classes = [timelineTailClasses];
3746
- if (mode === "left") {
3747
- classes.push("left-0 -translate-x-1/2 top-[10px] bottom-0");
3748
- } else if (mode === "right") {
3749
- classes.push("right-0 translate-x-1/2 top-[10px] bottom-0");
3750
- } else if (mode === "alternate") {
3751
- classes.push("left-1/2 -translate-x-1/2 top-[10px] bottom-0");
3752
- }
3753
- return classes.join(" ");
3862
+ function getTimelineTailClasses(mode, isLast = false) {
3863
+ if (isLast) return "hidden";
3864
+ const span = `${timelineTailClasses} ${TAIL_TOP} ${TAIL_BOTTOM}`;
3865
+ if (mode === "right") return `${span} right-0 translate-x-1/2`;
3866
+ if (mode === "alternate") return `${span} left-1/2 -translate-x-1/2`;
3867
+ return `${span} left-0 -translate-x-1/2`;
3754
3868
  }
3755
- function getTimelineHeadClasses(mode, _position) {
3756
- const classes = [timelineHeadClasses];
3757
- if (mode === "left") {
3758
- classes.push("left-0 top-0 -translate-x-1/2");
3759
- } else if (mode === "right") {
3760
- classes.push("right-0 top-0 translate-x-1/2");
3761
- } else if (mode === "alternate") {
3762
- classes.push("left-1/2 -translate-x-1/2 top-0");
3763
- }
3764
- return classes.join(" ");
3869
+ function getTimelineHeadClasses(mode) {
3870
+ if (mode === "right") return `${timelineHeadClasses} right-0 ${HEAD_TOP} translate-x-1/2`;
3871
+ if (mode === "alternate") return `${timelineHeadClasses} left-1/2 -translate-x-1/2 ${HEAD_TOP}`;
3872
+ return `${timelineHeadClasses} left-0 ${HEAD_TOP} -translate-x-1/2`;
3765
3873
  }
3766
3874
  function getTimelineDotClasses(color, isCustom = false) {
3767
- if (isCustom) {
3768
- return timelineCustomDotClasses;
3769
- }
3770
- const classes = [timelineDotClasses];
3771
- if (color) {
3772
- return classes.join(" ").replace(timelineDotBgClass, "");
3773
- }
3774
- return classes.join(" ");
3875
+ if (isCustom) return timelineCustomDotClasses;
3876
+ return color ? timelineDotBase : timelineDotClasses;
3775
3877
  }
3776
3878
  function getTimelineContentClasses(mode, position) {
3777
- const classes = [timelineContentClasses];
3778
- if (mode === "left") {
3779
- classes.push("pl-2");
3780
- } else if (mode === "right") {
3781
- classes.push("pr-2");
3782
- } else if (mode === "alternate") {
3783
- if (position === "left") {
3784
- classes.push("pr-8");
3785
- } else {
3786
- classes.push("pl-8");
3787
- }
3879
+ if (mode === "right") return `${timelineContentClasses} pr-2`;
3880
+ if (mode === "alternate") {
3881
+ return position === "left" ? `${timelineContentClasses} pr-8` : `${timelineContentClasses} pl-8`;
3788
3882
  }
3789
- return classes.join(" ");
3883
+ return `${timelineContentClasses} pl-2`;
3790
3884
  }
3791
3885
  function getPendingDotClasses() {
3792
3886
  return "w-2.5 h-2.5 rounded-full border-2 border-white bg-[var(--tiger-primary,#2563eb)] animate-pulse";
@@ -3813,7 +3907,7 @@ var treeBaseClasses = "w-full bg-white rounded-lg";
3813
3907
  var treeNodeWrapperClasses = "select-none";
3814
3908
  var treeNodeContentClasses = "flex items-center px-2 py-1.5 cursor-pointer rounded transition-colors duration-200";
3815
3909
  var treeNodeHoverClasses = "hover:bg-gray-50";
3816
- 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)]";
3817
3911
  var treeNodeDisabledClasses = "opacity-50 cursor-not-allowed";
3818
3912
  var treeNodeIndentClasses = "inline-block w-6";
3819
3913
  var treeNodeExpandIconClasses = "inline-flex items-center justify-center w-6 h-6 transition-transform duration-200";
@@ -3826,40 +3920,16 @@ var treeLoadingClasses = "inline-block ml-2 animate-spin h-4 w-4";
3826
3920
  var treeEmptyStateClasses = "py-8 text-center text-gray-500";
3827
3921
  var treeLineClasses = "border-l border-gray-300";
3828
3922
  function getTreeNodeClasses(selected, disabled, blockNode = false) {
3829
- const classes = [treeNodeContentClasses];
3830
- if (!disabled) {
3831
- classes.push(treeNodeHoverClasses);
3832
- }
3833
- if (selected) {
3834
- classes.push(treeNodeSelectedClasses);
3835
- }
3836
- if (disabled) {
3837
- classes.push(treeNodeDisabledClasses);
3838
- }
3839
- if (blockNode) {
3840
- classes.push("w-full");
3841
- }
3842
- return classes.join(" ");
3923
+ return classNames(
3924
+ treeNodeContentClasses,
3925
+ !disabled && treeNodeHoverClasses,
3926
+ selected && treeNodeSelectedClasses,
3927
+ disabled && treeNodeDisabledClasses,
3928
+ blockNode && "w-full"
3929
+ );
3843
3930
  }
3844
3931
  function getTreeNodeExpandIconClasses(expanded) {
3845
- const classes = [treeNodeExpandIconClasses];
3846
- if (expanded) {
3847
- classes.push(treeNodeExpandIconExpandedClasses);
3848
- }
3849
- return classes.join(" ");
3850
- }
3851
- function flattenTree(treeData, expandedKeys = /* @__PURE__ */ new Set()) {
3852
- const result = [];
3853
- function traverse(nodes, level = 0, parentKey) {
3854
- nodes.forEach((node) => {
3855
- result.push({ ...node, level, parentKey });
3856
- if (node.children && node.children.length > 0 && expandedKeys.has(node.key)) {
3857
- traverse(node.children, level + 1, node.key);
3858
- }
3859
- });
3860
- }
3861
- traverse(treeData);
3862
- return result;
3932
+ return classNames(treeNodeExpandIconClasses, expanded && treeNodeExpandIconExpandedClasses);
3863
3933
  }
3864
3934
  function getAllKeys(treeData) {
3865
3935
  const keys = [];
@@ -4081,18 +4151,12 @@ function getAutoExpandKeys(treeData, matchedKeys) {
4081
4151
  });
4082
4152
  return expandKeys;
4083
4153
  }
4084
- var defaultExpandIcon = (expanded) => `
4085
- <svg class="${getTreeNodeExpandIconClasses(
4086
- expanded
4087
- )}" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
4088
- <path d="M6 4l4 4-4 4V4z"/>
4089
- </svg>
4090
- `;
4091
- var defaultIndeterminateIcon = `
4092
- <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
4093
- <rect x="4" y="7" width="8" height="2" rx="1"/>
4094
- </svg>
4095
- `;
4154
+ function checkedSetsFromState(state) {
4155
+ return {
4156
+ checkedSet: new Set(state.checked),
4157
+ halfCheckedSet: new Set(state.halfChecked)
4158
+ };
4159
+ }
4096
4160
 
4097
4161
  // src/utils/skeleton-utils.ts
4098
4162
  var skeletonBaseClasses = "bg-[var(--tiger-skeleton-bg,#e5e7eb)] rounded";
@@ -4156,7 +4220,7 @@ function getParagraphRowWidth(rowIndex, totalRows) {
4156
4220
  // src/utils/progress-utils.ts
4157
4221
  var progressLineBaseClasses = "relative overflow-hidden rounded-full";
4158
4222
  var progressLineInnerClasses = "h-full rounded-full transition-all duration-300 ease-in-out flex items-center justify-end";
4159
- var progressTextBaseClasses = "font-medium ml-2 text-[color:var(--tiger-text,#374151)]";
4223
+ var progressTextBaseClasses = "font-medium ml-2";
4160
4224
  var progressCircleBaseClasses = "relative inline-flex items-center justify-center";
4161
4225
  var progressLineSizeClasses = {
4162
4226
  sm: "h-2",
@@ -4196,7 +4260,7 @@ function formatProgressText(percentage, customText, formatFn) {
4196
4260
  function clampPercentage(percentage) {
4197
4261
  return Math.max(0, Math.min(100, percentage));
4198
4262
  }
4199
- function calculateCirclePath(radius, strokeWidth, percentage) {
4263
+ function calculateCirclePath(radius, percentage) {
4200
4264
  const circumference = 2 * Math.PI * radius;
4201
4265
  const offset2 = circumference - percentage / 100 * circumference;
4202
4266
  return {
@@ -4234,7 +4298,6 @@ var collapseIconPositionClasses = {
4234
4298
  end: "ml-auto"
4235
4299
  };
4236
4300
  var collapseHeaderTextClasses = "flex-1 font-medium text-gray-900";
4237
- var collapseExtraClasses = "ml-auto";
4238
4301
  function getCollapseContainerClasses(bordered, ghost, className) {
4239
4302
  const classes = [collapseBaseClasses];
4240
4303
  if (ghost) {
@@ -4245,7 +4308,7 @@ function getCollapseContainerClasses(bordered, ghost, className) {
4245
4308
  if (className) {
4246
4309
  classes.push(className);
4247
4310
  }
4248
- return classes.filter(Boolean).join(" ");
4311
+ return classes.join(" ");
4249
4312
  }
4250
4313
  function getCollapsePanelClasses(ghost, className) {
4251
4314
  const classes = [];
@@ -4255,7 +4318,7 @@ function getCollapsePanelClasses(ghost, className) {
4255
4318
  if (className) {
4256
4319
  classes.push(className);
4257
4320
  }
4258
- return classes.filter(Boolean).join(" ");
4321
+ return classes.join(" ");
4259
4322
  }
4260
4323
  function getCollapsePanelHeaderClasses(active, disabled, className) {
4261
4324
  const classes = [collapsePanelHeaderBaseClasses];
@@ -4267,7 +4330,7 @@ function getCollapsePanelHeaderClasses(active, disabled, className) {
4267
4330
  if (className) {
4268
4331
  classes.push(className);
4269
4332
  }
4270
- return classes.filter(Boolean).join(" ");
4333
+ return classes.join(" ");
4271
4334
  }
4272
4335
  function getCollapseIconClasses(expanded, position, className) {
4273
4336
  const classes = [collapseIconBaseClasses, collapseIconPositionClasses[position]];
@@ -4277,7 +4340,7 @@ function getCollapseIconClasses(expanded, position, className) {
4277
4340
  if (className) {
4278
4341
  classes.push(className);
4279
4342
  }
4280
- return classes.filter(Boolean).join(" ");
4343
+ return classes.join(" ");
4281
4344
  }
4282
4345
  function normalizeActiveKeys(activeKey) {
4283
4346
  if (activeKey === void 0) {
@@ -4300,11 +4363,6 @@ function togglePanelKey(panelKey, activeKeys, accordion) {
4300
4363
  }
4301
4364
  }
4302
4365
  }
4303
- var collapseRightArrowIcon = `
4304
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
4305
- <path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4306
- </svg>
4307
- `.trim();
4308
4366
 
4309
4367
  // src/utils/menu-utils.ts
4310
4368
  var menuBaseClasses = "flex border bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border-[var(--tiger-border,#e5e7eb)]";
@@ -4400,15 +4458,71 @@ function replaceKeys(key, keys) {
4400
4458
  }
4401
4459
  return [key];
4402
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
+ }
4403
4511
 
4404
4512
  // src/utils/tabs-utils.ts
4405
4513
  var tabsBaseClasses = "w-full";
4406
- var tabNavBaseClasses = "flex transition-colors duration-200";
4514
+ var tabNavBaseClasses = "flex";
4407
4515
  var tabNavPositionClasses = {
4408
- top: "flex-row border-b border-gray-200",
4409
- bottom: "flex-row border-t border-gray-200",
4410
- left: "flex-col border-r border-gray-200",
4411
- 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"
4412
4526
  };
4413
4527
  var tabNavListBaseClasses = "flex gap-1";
4414
4528
  var tabNavListPositionClasses = {
@@ -4418,7 +4532,7 @@ var tabNavListPositionClasses = {
4418
4532
  right: "flex-col"
4419
4533
  };
4420
4534
  var tabNavListCenteredClasses = "justify-center";
4421
- 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";
4422
4536
  var tabItemSizeClasses = {
4423
4537
  small: "text-sm px-3 py-1.5",
4424
4538
  medium: "text-base px-4 py-2",
@@ -4437,63 +4551,39 @@ var tabPaneBaseClasses = "w-full";
4437
4551
  var tabPaneHiddenClasses = "hidden";
4438
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";
4439
4553
  function getTabsContainerClasses(position) {
4440
- const classes = [tabsBaseClasses];
4441
- if (position === "left" || position === "right") {
4442
- classes.push("flex");
4443
- if (position === "right") {
4444
- classes.push("flex-row-reverse");
4445
- }
4446
- }
4447
- 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;
4448
4557
  }
4449
4558
  function getTabNavClasses(position, type) {
4450
- const classes = [tabNavBaseClasses, tabNavPositionClasses[position]];
4451
- if (type === "card" || type === "editable-card") {
4452
- classes.push("border-0");
4453
- }
4454
- return classes.filter(Boolean).join(" ");
4559
+ const base = `${tabNavBaseClasses} ${tabNavPositionClasses[position]}`;
4560
+ return type === "line" ? `${base} ${tabNavLineBorderClasses[position]}` : base;
4455
4561
  }
4456
4562
  function getTabNavListClasses(position, centered) {
4457
- const classes = [tabNavListBaseClasses, tabNavListPositionClasses[position]];
4458
- if (centered && (position === "top" || position === "bottom")) {
4459
- classes.push(tabNavListCenteredClasses);
4460
- }
4461
- return classes.filter(Boolean).join(" ");
4563
+ const base = `${tabNavListBaseClasses} ${tabNavListPositionClasses[position]}`;
4564
+ return centered && (position === "top" || position === "bottom") ? `${base} ${tabNavListCenteredClasses}` : base;
4462
4565
  }
4463
4566
  function getTabItemClasses(active, disabled, type, size) {
4464
- const classes = [tabItemBaseClasses, tabItemSizeClasses[size]];
4465
- if (disabled) {
4466
- classes.push(tabItemDisabledClasses);
4467
- } else {
4468
- switch (type) {
4469
- case "line":
4470
- classes.push(tabItemLineClasses);
4471
- if (active) {
4472
- classes.push(tabItemLineActiveClasses);
4473
- }
4474
- break;
4475
- case "card":
4476
- classes.push(tabItemCardClasses);
4477
- if (active) {
4478
- classes.push(tabItemCardActiveClasses);
4479
- }
4480
- break;
4481
- case "editable-card":
4482
- classes.push(tabItemEditableCardClasses);
4483
- if (active) {
4484
- classes.push(tabItemEditableCardActiveClasses);
4485
- }
4486
- break;
4487
- }
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;
4488
4582
  }
4489
- return classes.filter(Boolean).join(" ");
4583
+ return cls;
4490
4584
  }
4491
4585
  function getTabPaneClasses(active) {
4492
- const classes = [tabPaneBaseClasses];
4493
- if (!active) {
4494
- classes.push(tabPaneHiddenClasses);
4495
- }
4496
- return classes.filter(Boolean).join(" ");
4586
+ return active ? tabPaneBaseClasses : `${tabPaneBaseClasses} ${tabPaneHiddenClasses}`;
4497
4587
  }
4498
4588
  function isKeyActive(key, activeKey) {
4499
4589
  return activeKey !== void 0 && key === activeKey;
@@ -4523,16 +4613,14 @@ var breadcrumbLinkClasses = classNames(
4523
4613
  );
4524
4614
  var breadcrumbCurrentClasses = classNames("text-gray-900 font-medium", "cursor-default");
4525
4615
  var breadcrumbSeparatorBaseClasses = "text-gray-400 select-none";
4526
- function getBreadcrumbItemClasses(current, className) {
4616
+ function getBreadcrumbItemClasses(className) {
4527
4617
  return classNames(breadcrumbItemBaseClasses, className);
4528
4618
  }
4529
4619
  function getBreadcrumbLinkClasses(current) {
4530
4620
  return current ? breadcrumbCurrentClasses : breadcrumbLinkClasses;
4531
4621
  }
4532
4622
  function getSeparatorContent(separator) {
4533
- if (!separator || separator === "/") {
4534
- return "/";
4535
- }
4623
+ if (!separator) return "/";
4536
4624
  switch (separator) {
4537
4625
  case "slash":
4538
4626
  return "/";
@@ -4549,61 +4637,53 @@ function getBreadcrumbSeparatorClasses(className) {
4549
4637
  }
4550
4638
 
4551
4639
  // src/utils/steps-utils.ts
4552
- var stepFinishIconSvgClasses = "w-5 h-5";
4553
- var stepFinishIconViewBox = "0 0 24 24";
4554
- var stepFinishIconPathD = "M5 13l4 4L19 7";
4555
- var stepFinishIconPathStrokeLinecap = "round";
4556
- var stepFinishIconPathStrokeLinejoin = "round";
4557
- var stepFinishIconPathStrokeWidth = 2;
4640
+ var stepFinishChar = "\u2713";
4558
4641
  function getStepsContainerClasses(direction) {
4559
- 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";
4560
4643
  if (direction === "vertical") {
4561
- return `${baseClasses} flex flex-col`;
4644
+ return `${baseClasses2} flex flex-col`;
4562
4645
  }
4563
- return `${baseClasses} flex flex-row items-start`;
4646
+ return `${baseClasses2} flex flex-row items-start`;
4564
4647
  }
4565
- function getStepItemClasses(direction, isLast, simple) {
4566
- const baseClasses = "tiger-step-item relative";
4648
+ function getStepItemClasses(direction, isLast) {
4649
+ const baseClasses2 = "tiger-step-item relative";
4567
4650
  if (direction === "vertical") {
4568
- return `${baseClasses} flex flex-row ${!isLast ? "pb-6" : ""}`;
4651
+ return `${baseClasses2} flex flex-row ${!isLast ? "pb-6" : ""}`;
4569
4652
  }
4570
- return `${baseClasses} flex flex-col flex-1 ${simple ? "items-center" : ""}`;
4653
+ return `${baseClasses2} flex flex-col flex-1 items-center`;
4571
4654
  }
4572
4655
  function getStepIconClasses(status, size, simple, isCustomIcon) {
4573
- 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";
4574
4657
  const sizeClasses = simple ? "w-6 h-6 text-xs" : size === "small" ? "w-8 h-8 text-sm" : "w-10 h-10 text-base";
4575
4658
  const iconClasses = isCustomIcon ? "" : "font-medium";
4659
+ const activeClasses = "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white";
4576
4660
  const statusClasses = {
4577
4661
  wait: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#e5e7eb)] text-[var(--tiger-text-muted,#6b7280)]",
4578
- process: "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white",
4579
- finish: "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white",
4662
+ process: activeClasses,
4663
+ finish: activeClasses,
4580
4664
  error: "bg-[var(--tiger-error-bg,#fef2f2)] border-[var(--tiger-error,#ef4444)] text-[var(--tiger-error,#ef4444)]"
4581
4665
  };
4582
- return `${baseClasses} ${sizeClasses} ${iconClasses} ${statusClasses[status]}`;
4666
+ return `${baseClasses2} ${sizeClasses} ${iconClasses} ${statusClasses[status]}`;
4583
4667
  }
4584
- function getStepTailClasses(direction, status, isLast) {
4585
- if (isLast) {
4586
- return "hidden";
4587
- }
4588
- 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)]";
4589
4671
  if (direction === "vertical") {
4590
- const positionClasses2 = "absolute left-4 top-10 w-0.5 h-full";
4591
- const colorClasses2 = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4592
- 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}`;
4593
4674
  }
4594
- const positionClasses = "flex-1 h-0.5 mx-2 mt-5";
4595
- const colorClasses = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4596
- 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}`;
4597
4677
  }
4598
- function getStepContentClasses(direction, simple) {
4599
- const baseClasses = "tiger-step-content";
4678
+ function getStepContentClasses(direction) {
4679
+ const baseClasses2 = "tiger-step-content";
4600
4680
  if (direction === "vertical") {
4601
- return `${baseClasses} ml-4 flex-1`;
4681
+ return `${baseClasses2} ml-4 flex-1`;
4602
4682
  }
4603
- return `${baseClasses} mt-2 ${simple ? "text-center" : ""}`;
4683
+ return `${baseClasses2} mt-2 text-center`;
4604
4684
  }
4605
4685
  function getStepTitleClasses(status, size, clickable) {
4606
- 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";
4607
4687
  const sizeClasses = size === "small" ? "text-sm" : "text-base";
4608
4688
  const statusClasses = {
4609
4689
  wait: "text-[var(--tiger-text-muted,#6b7280)]",
@@ -4611,19 +4691,14 @@ function getStepTitleClasses(status, size, clickable) {
4611
4691
  finish: "text-[var(--tiger-text,#111827)]",
4612
4692
  error: "text-[var(--tiger-error,#ef4444)]"
4613
4693
  };
4614
- 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)]" : "";
4615
- 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}`;
4616
4696
  }
4617
4697
  function getStepDescriptionClasses(status, size) {
4618
- const baseClasses = "tiger-step-description mt-1 transition-colors duration-200";
4698
+ const baseClasses2 = "tiger-step-description mt-1";
4619
4699
  const sizeClasses = size === "small" ? "text-xs" : "text-sm";
4620
- const statusClasses = {
4621
- wait: "text-[var(--tiger-text-muted,#6b7280)]",
4622
- process: "text-[var(--tiger-text-muted,#6b7280)]",
4623
- finish: "text-[var(--tiger-text-muted,#6b7280)]",
4624
- error: "text-[var(--tiger-error,#ef4444)]"
4625
- };
4626
- 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}`;
4627
4702
  }
4628
4703
  function calculateStepStatus(index, currentIndex, currentStatus, customStatus) {
4629
4704
  if (customStatus) {
@@ -4758,13 +4833,16 @@ function getPageSizeSelectorClasses(size = "medium") {
4758
4833
  sizeClasses[size]
4759
4834
  );
4760
4835
  }
4761
- function getTotalTextClasses(size = "medium") {
4836
+ function getSizeTextClasses(size = "medium") {
4762
4837
  const sizeClasses = {
4763
4838
  small: "text-sm",
4764
4839
  medium: "text-base",
4765
4840
  large: "text-lg"
4766
4841
  };
4767
- 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));
4768
4846
  }
4769
4847
  function getSimplePaginationContainerClasses() {
4770
4848
  return classNames(
@@ -4811,48 +4889,45 @@ function getDropdownContainerClasses() {
4811
4889
  function getDropdownTriggerClasses(disabled) {
4812
4890
  return classNames(
4813
4891
  "tiger-dropdown-trigger",
4814
- "cursor-pointer",
4815
- 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"
4816
4895
  );
4817
4896
  }
4818
- function getDropdownMenuWrapperClasses(visible, placement) {
4819
- const positionClasses = getPlacementClasses(placement);
4897
+ function getDropdownChevronClasses(visible) {
4820
4898
  return classNames(
4821
- "tiger-dropdown-menu-wrapper",
4822
- "absolute",
4823
- "z-50",
4824
- positionClasses,
4825
- 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"
4826
4904
  );
4827
4905
  }
4906
+ var DROPDOWN_CHEVRON_PATH = "M6 9l6 6 6-6";
4828
4907
  function getDropdownMenuClasses() {
4829
4908
  return classNames(
4830
4909
  "tiger-dropdown-menu",
4831
4910
  "min-w-[160px]",
4832
- "py-1",
4833
- "rounded-md",
4834
- "shadow-lg",
4911
+ "py-1.5 px-1",
4912
+ "rounded-lg",
4913
+ "bg-[var(--tiger-surface,#ffffff)]",
4835
4914
  "border border-[var(--tiger-border,#e5e7eb)]",
4836
- "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]"
4837
4917
  );
4838
4918
  }
4839
4919
  function getDropdownItemClasses(disabled, divided) {
4840
4920
  return classNames(
4841
4921
  "tiger-dropdown-item",
4842
- "flex",
4843
- "items-center",
4844
- "gap-2",
4845
- "px-4",
4846
- "py-2",
4847
- "text-sm",
4848
- "text-[var(--tiger-text,#374151)]",
4849
- "transition-colors",
4850
- "duration-150",
4851
- "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",
4852
4927
  "text-left",
4853
4928
  "focus:outline-none",
4854
- "focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-opacity-50",
4855
- 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",
4856
4931
  disabled ? "cursor-not-allowed opacity-50" : classNames(
4857
4932
  "cursor-pointer",
4858
4933
  "hover:bg-[var(--tiger-surface-muted,#f3f4f6)]",
@@ -4860,23 +4935,36 @@ function getDropdownItemClasses(disabled, divided) {
4860
4935
  )
4861
4936
  );
4862
4937
  }
4863
- function getPlacementClasses(placement) {
4864
- const placementMap = {
4865
- "bottom-start": "top-full left-0 mt-2",
4866
- bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
4867
- "bottom-end": "top-full right-0 mt-2",
4868
- "top-start": "bottom-full left-0 mb-2",
4869
- top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
4870
- "top-end": "bottom-full right-0 mb-2",
4871
- "left-start": "right-full top-0 mr-2",
4872
- left: "right-full top-1/2 -translate-y-1/2 mr-2",
4873
- "left-end": "right-full bottom-0 mr-2",
4874
- "right-start": "left-full top-0 ml-2",
4875
- right: "left-full top-1/2 -translate-y-1/2 ml-2",
4876
- "right-end": "left-full bottom-0 ml-2"
4877
- };
4878
- 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;
4879
4966
  }
4967
+ var DROPDOWN_ENTER_CLASS = "tiger-dropdown-enter";
4880
4968
 
4881
4969
  // src/utils/drawer-utils.ts
4882
4970
  function getDrawerMaskClasses(visible) {
@@ -4885,12 +4973,11 @@ function getDrawerMaskClasses(visible) {
4885
4973
  visible ? "opacity-100" : "opacity-0 pointer-events-none"
4886
4974
  );
4887
4975
  }
4888
- function getDrawerContainerClasses(zIndex) {
4889
- void zIndex;
4976
+ function getDrawerContainerClasses() {
4890
4977
  return "fixed inset-0 overflow-hidden";
4891
4978
  }
4892
4979
  function getDrawerPanelClasses(placement, visible, size) {
4893
- 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";
4894
4981
  const sizeMap = {
4895
4982
  sm: { width: "w-64", height: "h-48" },
4896
4983
  md: { width: "w-96", height: "h-64" },
@@ -4920,7 +5007,7 @@ function getDrawerPanelClasses(placement, visible, size) {
4920
5007
  visible ? "translate-y-0" : "translate-y-full"
4921
5008
  )
4922
5009
  };
4923
- return classNames(baseClasses, placementClasses[placement]);
5010
+ return classNames(baseClasses2, placementClasses[placement]);
4924
5011
  }
4925
5012
  function getDrawerHeaderClasses() {
4926
5013
  return "flex items-center justify-between px-6 py-4 border-b border-[var(--tiger-border,#e5e7eb)]";
@@ -4995,19 +5082,15 @@ var alertDescriptionSizeClasses = {
4995
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";
4996
5083
  var alertIconContainerClasses = "flex-shrink-0";
4997
5084
  var alertContentClasses = "flex-1 ml-3";
4998
- var alertSuccessIconPath = statusSuccessIconPath;
4999
- var alertWarningIconPath = statusWarningIconPath;
5000
- var alertErrorIconPath = statusErrorIconPath;
5001
- var alertInfoIconPath = statusInfoIconPath;
5002
5085
  var alertCloseIconPath = closeIconPathD;
5086
+ var alertIconPaths = {
5087
+ success: statusSuccessIconPath,
5088
+ warning: statusWarningIconPath,
5089
+ error: statusErrorIconPath,
5090
+ info: statusInfoIconPath
5091
+ };
5003
5092
  function getAlertIconPath(type) {
5004
- const iconPaths = {
5005
- success: alertSuccessIconPath,
5006
- warning: alertWarningIconPath,
5007
- error: alertErrorIconPath,
5008
- info: alertInfoIconPath
5009
- };
5010
- return iconPaths[type];
5093
+ return alertIconPaths[type];
5011
5094
  }
5012
5095
 
5013
5096
  // src/utils/message-utils.ts
@@ -5021,10 +5104,6 @@ var messagePositionClasses = {
5021
5104
  "bottom-right": "bottom-6 right-6"
5022
5105
  };
5023
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";
5024
- var messageEnterClasses = "opacity-0 -translate-y-2";
5025
- var messageEnterActiveClasses = "opacity-100 translate-y-0";
5026
- var messageLeaveClasses = "opacity-100 translate-y-0";
5027
- var messageLeaveActiveClasses = "opacity-0 -translate-y-2";
5028
5107
  var defaultMessageThemeColors = {
5029
5108
  info: {
5030
5109
  bg: "bg-[var(--tiger-message-info-bg,#eff6ff)]",
@@ -5058,7 +5137,7 @@ var defaultMessageThemeColors = {
5058
5137
  }
5059
5138
  };
5060
5139
  function getMessageTypeClasses(type, themeColors = defaultMessageThemeColors) {
5061
- return themeColors[type] || themeColors.info;
5140
+ return themeColors[type];
5062
5141
  }
5063
5142
  var messageIconPaths = {
5064
5143
  success: statusSuccessIconPath,
@@ -5068,7 +5147,7 @@ var messageIconPaths = {
5068
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"
5069
5148
  };
5070
5149
  function getMessageIconPath(type) {
5071
- return messageIconPaths[type] || messageIconPaths.info;
5150
+ return messageIconPaths[type];
5072
5151
  }
5073
5152
  var messageCloseIconPath = closeIconPathD;
5074
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)]";
@@ -5167,25 +5246,23 @@ function getLoadingOverlaySpinnerClasses(customClassName) {
5167
5246
  function getLoadingClasses(variant, size, color, customColor) {
5168
5247
  const sizeClass = loadingSizeClasses[size];
5169
5248
  const colorClass = customColor ? "" : loadingColorClasses[color];
5170
- const baseClasses = classNames(sizeClass, colorClass);
5249
+ const baseClasses2 = classNames(sizeClass, colorClass);
5171
5250
  switch (variant) {
5172
- case "spinner":
5173
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5174
5251
  case "dots":
5175
- return baseClasses;
5176
5252
  case "bars":
5177
- return baseClasses;
5178
- case "ring":
5179
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5253
+ return baseClasses2;
5180
5254
  case "pulse":
5181
- return classNames(baseClasses, "animate-pulse");
5255
+ return classNames(baseClasses2, "animate-pulse");
5256
+ case "spinner":
5257
+ case "ring":
5182
5258
  default:
5183
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5259
+ return classNames(baseClasses2, loadingSpinnerBaseClasses);
5184
5260
  }
5185
5261
  }
5186
5262
  function getSpinnerSVG(variant) {
5187
5263
  switch (variant) {
5188
5264
  case "spinner":
5265
+ default:
5189
5266
  return {
5190
5267
  viewBox: "0 0 24 24",
5191
5268
  elements: [
@@ -5258,24 +5335,6 @@ function getSpinnerSVG(variant) {
5258
5335
  }
5259
5336
  ]
5260
5337
  };
5261
- default:
5262
- return {
5263
- viewBox: "0 0 24 24",
5264
- elements: [
5265
- {
5266
- type: "circle",
5267
- attrs: {
5268
- className: "opacity-25",
5269
- cx: "12",
5270
- cy: "12",
5271
- r: "10",
5272
- stroke: "currentColor",
5273
- strokeWidth: "4",
5274
- fill: "none"
5275
- }
5276
- }
5277
- ]
5278
- };
5279
5338
  }
5280
5339
  }
5281
5340
  var dotsVariantConfig = {
@@ -5380,6 +5439,25 @@ function injectLoadingAnimationStyles() {
5380
5439
  }
5381
5440
  }
5382
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
+
5383
5461
  // src/utils/popconfirm-utils.ts
5384
5462
  function getPopconfirmContainerClasses() {
5385
5463
  return classNames("tiger-popconfirm", "relative", "inline-block", "w-fit", "justify-self-start");
@@ -5550,14 +5628,9 @@ function getPopoverTriggerClasses(disabled) {
5550
5628
  }
5551
5629
  function getPopoverContentClasses(width) {
5552
5630
  let widthClass = "min-w-[200px]";
5553
- if (width) {
5554
- if (typeof width === "number") {
5555
- widthClass = `w-[${width}px]`;
5556
- } else if (width.match(/^\d+$/)) {
5557
- widthClass = `w-[${width}px]`;
5558
- } else {
5559
- widthClass = width;
5560
- }
5631
+ if (width != null && width !== "") {
5632
+ const w = String(width);
5633
+ widthClass = /^\d+$/.test(w) ? `w-[${w}px]` : w;
5561
5634
  }
5562
5635
  return classNames(
5563
5636
  "tiger-popover-content",
@@ -5571,20 +5644,26 @@ function getPopoverContentClasses(width) {
5571
5644
  "border-[var(--tiger-border,#e5e7eb)]"
5572
5645
  );
5573
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
+ );
5574
5662
  function getPopoverTitleClasses() {
5575
- return classNames(
5576
- "tiger-popover-title",
5577
- "text-sm",
5578
- "font-semibold",
5579
- "text-[var(--tiger-text,#111827)]",
5580
- "mb-2",
5581
- "border-b",
5582
- "border-[var(--tiger-border,#e5e7eb)]",
5583
- "pb-2"
5584
- );
5663
+ return POPOVER_TITLE_CLASSES;
5585
5664
  }
5586
5665
  function getPopoverContentTextClasses() {
5587
- return classNames("tiger-popover-text", "text-sm", "text-[var(--tiger-text-muted,#374151)]");
5666
+ return POPOVER_TEXT_CLASSES;
5588
5667
  }
5589
5668
 
5590
5669
  // src/utils/tooltip-utils.ts
@@ -5631,6 +5710,9 @@ var iconSizeClasses = {
5631
5710
  lg: "w-6 h-6",
5632
5711
  xl: "w-8 h-8"
5633
5712
  };
5713
+ var iconSvgDefaultStrokeWidth = 2;
5714
+ var iconSvgDefaultStrokeLinecap = "round";
5715
+ var iconSvgDefaultStrokeLinejoin = "round";
5634
5716
 
5635
5717
  // src/utils/code-utils.ts
5636
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";
@@ -5638,68 +5720,363 @@ var codeBlockPreClasses = "m-0 overflow-auto p-4 text-sm leading-relaxed font-mo
5638
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";
5639
5721
  var codeBlockCopyButtonCopiedClasses = "border-[var(--tiger-primary,#2563eb)] text-[var(--tiger-primary,#2563eb)]";
5640
5722
 
5641
- // src/utils/carousel-utils.ts
5642
- var carouselBaseClasses = "relative overflow-hidden w-full";
5643
- var carouselTrackScrollClasses = "flex transition-transform ease-in-out";
5644
- var carouselTrackFadeClasses = "relative";
5645
- var carouselSlideBaseClasses = "flex-shrink-0 w-full";
5646
- var carouselSlideFadeClasses = "absolute inset-0 transition-opacity ease-in-out";
5647
- var carouselDotsBaseClasses = "absolute flex gap-2 z-10";
5648
- var carouselDotsPositionClasses = {
5649
- top: "top-4 left-1/2 -translate-x-1/2 flex-row",
5650
- bottom: "bottom-4 left-1/2 -translate-x-1/2 flex-row",
5651
- left: "left-4 top-1/2 -translate-y-1/2 flex-col",
5652
- right: "right-4 top-1/2 -translate-y-1/2 flex-col"
5653
- };
5654
- 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";
5655
- var carouselDotActiveClasses = "bg-white scale-110";
5656
- 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";
5657
- var carouselPrevArrowClasses = "left-4";
5658
- var carouselNextArrowClasses = "right-4";
5659
- var carouselArrowDisabledClasses = "opacity-50 cursor-not-allowed pointer-events-none";
5660
- function getCarouselContainerClasses(className) {
5661
- const classes = [carouselBaseClasses];
5662
- if (className) {
5663
- classes.push(className);
5664
- }
5665
- return classes.filter(Boolean).join(" ");
5666
- }
5667
- function getCarouselDotsClasses(position) {
5668
- return `${carouselDotsBaseClasses} ${carouselDotsPositionClasses[position]}`;
5669
- }
5670
- function getCarouselDotClasses(isActive) {
5671
- const classes = [carouselDotClasses];
5672
- if (isActive) {
5673
- 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)]"
5674
5760
  }
5675
- 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(" ");
5676
5774
  }
5677
- function getCarouselArrowClasses(type, disabled) {
5678
- const classes = [carouselArrowBaseClasses];
5679
- classes.push(type === "prev" ? carouselPrevArrowClasses : carouselNextArrowClasses);
5680
- if (disabled) {
5681
- 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"
5682
5804
  }
5683
- 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}`;
5684
5810
  }
5685
- function getNextSlideIndex(currentIndex, totalSlides, infinite) {
5686
- if (totalSlides <= 0) return 0;
5687
- const nextIndex = currentIndex + 1;
5688
- if (nextIndex >= totalSlides) {
5689
- 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)]"
5690
5890
  }
5691
- 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(" ");
5692
5896
  }
5693
- function getPrevSlideIndex(currentIndex, totalSlides, infinite) {
5694
- if (totalSlides <= 0) return 0;
5695
- const prevIndex = currentIndex - 1;
5696
- if (prevIndex < 0) {
5697
- 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"
5698
5921
  }
5699
- return prevIndex;
5922
+ };
5923
+ function getBadgeVariantClasses(variant, colors = defaultBadgeThemeColors) {
5924
+ const scheme = colors[variant];
5925
+ return `${scheme.bg} ${scheme.text}`;
5700
5926
  }
5701
- function isNextDisabled(currentIndex, totalSlides, infinite) {
5702
- if (infinite) return false;
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;
5956
+ }
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;
5703
6080
  return currentIndex >= totalSlides - 1;
5704
6081
  }
5705
6082
  function isPrevDisabled(currentIndex, _totalSlides, infinite) {
@@ -5730,14 +6107,7 @@ var anchorLinkListHorizontalClasses = "flex items-center space-x-4 pb-2";
5730
6107
  var anchorLinkBaseClasses = "block text-sm text-gray-600 hover:text-[var(--tiger-primary,#2563eb)] transition-colors duration-200 whitespace-nowrap";
5731
6108
  var anchorLinkActiveClasses = "text-[var(--tiger-primary,#2563eb)] font-medium";
5732
6109
  function getAnchorWrapperClasses(affix, className) {
5733
- const classes = [anchorBaseClasses];
5734
- if (affix) {
5735
- classes.push(anchorAffixClasses);
5736
- }
5737
- if (className) {
5738
- classes.push(className);
5739
- }
5740
- return classes.filter(Boolean).join(" ");
6110
+ return [anchorBaseClasses, affix && anchorAffixClasses, className].filter(Boolean).join(" ");
5741
6111
  }
5742
6112
  function getAnchorInkContainerClasses(direction) {
5743
6113
  return direction === "vertical" ? anchorInkContainerVerticalClasses : anchorInkContainerHorizontalClasses;
@@ -5749,14 +6119,7 @@ function getAnchorLinkListClasses(direction) {
5749
6119
  return direction === "vertical" ? anchorLinkListVerticalClasses : anchorLinkListHorizontalClasses;
5750
6120
  }
5751
6121
  function getAnchorLinkClasses(active, className) {
5752
- const classes = [anchorLinkBaseClasses];
5753
- if (active) {
5754
- classes.push(anchorLinkActiveClasses);
5755
- }
5756
- if (className) {
5757
- classes.push(className);
5758
- }
5759
- return classes.filter(Boolean).join(" ");
6122
+ return [anchorLinkBaseClasses, active && anchorLinkActiveClasses, className].filter(Boolean).join(" ");
5760
6123
  }
5761
6124
  function getAnchorTargetElement(href) {
5762
6125
  if (!href || !href.startsWith("#")) {
@@ -5804,19 +6167,9 @@ function scrollToAnchor(href, container, targetOffset = 0) {
5804
6167
  if (!element) {
5805
6168
  return;
5806
6169
  }
5807
- const offsetTop = getElementOffsetTop(element, container) - targetOffset;
5808
- if (container === window) {
5809
- window.scrollTo({
5810
- top: offsetTop,
5811
- behavior: "smooth"
5812
- });
5813
- } else {
5814
- ;
5815
- container.scrollTo({
5816
- top: offsetTop,
5817
- behavior: "smooth"
5818
- });
5819
- }
6170
+ const top = getElementOffsetTop(element, container) - targetOffset;
6171
+ const scrollTarget = container === window ? window : container;
6172
+ scrollTarget.scrollTo({ top, behavior: "smooth" });
5820
6173
  }
5821
6174
  function findActiveAnchor(links, container, bounds = 5, targetOffset = 0) {
5822
6175
  if (links.length === 0) {
@@ -6072,6 +6425,33 @@ function createPieArcPath(options) {
6072
6425
  "Z"
6073
6426
  ].join(" ");
6074
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))";
6075
6455
  function getRadarAngles(count, startAngle = -Math.PI / 2) {
6076
6456
  if (count <= 0) return [];
6077
6457
  const step = Math.PI * 2 / count;
@@ -6107,6 +6487,49 @@ function createPolygonPath(points) {
6107
6487
  " "
6108
6488
  );
6109
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";
6110
6533
  function createLinePath(points, curve = "linear") {
6111
6534
  if (points.length === 0) return "";
6112
6535
  if (points.length === 1) return `M ${points[0].x} ${points[0].y}`;
@@ -6262,6 +6685,63 @@ function stackSeriesData(seriesData) {
6262
6685
  }
6263
6686
  return result;
6264
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";
6265
6745
 
6266
6746
  // src/utils/chart-interaction.ts
6267
6747
  function createChartInteractionHandlers(data, state, options) {
@@ -6359,6 +6839,59 @@ function getChartEntranceTransform(type, progress, options = {}) {
6359
6839
  }
6360
6840
  }
6361
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
+
6362
6895
  // src/utils/floating.ts
6363
6896
  var import_dom = require("@floating-ui/dom");
6364
6897
  async function computeFloatingPosition(reference, floating, options = {}) {
@@ -6446,304 +6979,166 @@ function applyFloatingStyles(element, result) {
6446
6979
  element.style.top = `${result.y}px`;
6447
6980
  }
6448
6981
 
6449
- // src/theme/colors.ts
6450
- var defaultThemeColors = {
6451
- primary: {
6452
- bg: "bg-[var(--tiger-primary,#2563eb)]",
6453
- bgHover: "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
6454
- text: "text-white",
6455
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6456
- disabled: "disabled:bg-[var(--tiger-primary-disabled,#93c5fd)]"
6457
- },
6458
- secondary: {
6459
- bg: "bg-[var(--tiger-secondary,#4b5563)]",
6460
- bgHover: "hover:bg-[var(--tiger-secondary-hover,#374151)]",
6461
- text: "text-white",
6462
- focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
6463
- disabled: "disabled:bg-[var(--tiger-secondary-disabled,#9ca3af)]"
6464
- },
6465
- outline: {
6466
- bg: "bg-transparent",
6467
- bgHover: "hover:bg-[var(--tiger-outline-bg-hover,#eff6ff)]",
6468
- text: "text-[var(--tiger-primary,#2563eb)]",
6469
- border: "border-2 border-[var(--tiger-primary,#2563eb)]",
6470
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6471
- disabled: "disabled:border-[var(--tiger-primary-disabled,#93c5fd)] disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6472
- },
6473
- ghost: {
6474
- bg: "bg-transparent",
6475
- bgHover: "hover:bg-[var(--tiger-ghost-bg-hover,#eff6ff)]",
6476
- text: "text-[var(--tiger-primary,#2563eb)]",
6477
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6478
- disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6479
- },
6480
- link: {
6481
- bg: "bg-transparent",
6482
- bgHover: "hover:underline",
6483
- text: "text-[var(--tiger-primary,#2563eb)]",
6484
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6485
- disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6486
- }
6487
- };
6488
- function getButtonVariantClasses(variant, colors = defaultThemeColors) {
6489
- const scheme = colors[variant];
6490
- const classes = [
6491
- scheme.bg,
6492
- scheme.bgHover,
6493
- scheme.text,
6494
- scheme.border,
6495
- scheme.borderHover,
6496
- scheme.focus,
6497
- scheme.disabled
6498
- ].filter(Boolean);
6499
- return classes.join(" ");
6500
- }
6501
- var defaultRadioColors = {
6502
- border: "border-[var(--tiger-border,#d1d5db)]",
6503
- borderChecked: "border-[var(--tiger-primary,#2563eb)]",
6504
- bg: "bg-[var(--tiger-surface,#ffffff)]",
6505
- bgChecked: "bg-[var(--tiger-primary,#2563eb)]",
6506
- innerDot: "bg-[var(--tiger-surface,#ffffff)]",
6507
- focus: "ring-[var(--tiger-primary,#2563eb)]",
6508
- disabled: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#d1d5db)]",
6509
- textDisabled: "text-[var(--tiger-text-muted,#6b7280)]"
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)]" }
6510
6987
  };
6511
- function getRadioColorClasses(colors = defaultRadioColors) {
6512
- return colors;
6988
+ function getChatMessageStatusInfo(status, statusMap = defaultChatMessageStatusInfo) {
6989
+ return statusMap[status] || defaultChatMessageStatusInfo[status];
6513
6990
  }
6514
- var defaultLinkThemeColors = {
6515
- primary: {
6516
- text: "text-[var(--tiger-primary,#2563eb)]",
6517
- textHover: "hover:text-[var(--tiger-primary-hover,#1d4ed8)]",
6518
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6519
- disabled: "text-[var(--tiger-primary-disabled,#93c5fd)]"
6520
- },
6521
- secondary: {
6522
- text: "text-[var(--tiger-secondary,#4b5563)]",
6523
- textHover: "hover:text-[var(--tiger-secondary-hover,#374151)]",
6524
- focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
6525
- disabled: "text-[var(--tiger-secondary-disabled,#9ca3af)]"
6526
- },
6527
- default: {
6528
- text: "text-gray-700",
6529
- textHover: "hover:text-gray-900",
6530
- focus: "focus:ring-gray-500",
6531
- disabled: "text-gray-400"
6532
- }
6533
- };
6534
- function getLinkVariantClasses(variant, colors, options) {
6535
- const scheme = (colors ?? defaultLinkThemeColors)[variant];
6536
- const classes = [
6537
- scheme.text,
6538
- scheme.textHover,
6539
- scheme.focus,
6540
- `disabled:${scheme.disabled}`,
6541
- options?.disabled ? scheme.disabled : void 0
6542
- ].filter(Boolean);
6543
- return classes.join(" ");
6544
- }
6545
- var textSizeClasses = {
6546
- xs: "text-xs",
6547
- sm: "text-sm",
6548
- base: "text-base",
6549
- lg: "text-lg",
6550
- xl: "text-xl",
6551
- "2xl": "text-2xl",
6552
- "3xl": "text-3xl",
6553
- "4xl": "text-4xl",
6554
- "5xl": "text-5xl",
6555
- "6xl": "text-6xl"
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;
6556
6998
  };
6557
- var textWeightClasses = {
6558
- thin: "font-thin",
6559
- light: "font-light",
6560
- normal: "font-normal",
6561
- medium: "font-medium",
6562
- semibold: "font-semibold",
6563
- bold: "font-bold",
6564
- extrabold: "font-extrabold",
6565
- black: "font-black"
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
+ });
6566
7010
  };
6567
- var textAlignClasses = {
6568
- left: "text-left",
6569
- center: "text-center",
6570
- right: "text-right",
6571
- justify: "text-justify"
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);
7030
+ }
7031
+ return [{ key: "default", title: "", items }];
6572
7032
  };
6573
- var textColorClasses = {
6574
- default: "text-[var(--tiger-text,#111827)]",
6575
- primary: "text-[var(--tiger-primary,#2563eb)]",
6576
- secondary: "text-[var(--tiger-secondary,#4b5563)]",
6577
- success: "text-[var(--tiger-success,#16a34a)]",
6578
- warning: "text-[var(--tiger-warning,#ca8a04)]",
6579
- danger: "text-[var(--tiger-error,#dc2626)]",
6580
- muted: "text-[var(--tiger-text-muted,#6b7280)]"
7033
+ var toActivityTimelineItems = (items) => {
7034
+ return items.map((item, index) => ({
7035
+ key: item.id ?? index,
7036
+ activity: item
7037
+ }));
6581
7038
  };
6582
- var textDecorationClasses = {
6583
- truncate: "truncate",
6584
- italic: "italic",
6585
- underline: "underline",
6586
- lineThrough: "line-through"
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
+ });
6587
7059
  };
6588
- var defaultTagThemeColors = {
6589
- default: {
6590
- bg: "bg-[var(--tiger-tag-default-bg,#f3f4f6)]",
6591
- text: "text-[var(--tiger-text,#111827)]",
6592
- border: "border-[var(--tiger-border,#e5e7eb)]",
6593
- closeBgHover: "hover:bg-[var(--tiger-tag-default-close-hover,#e5e7eb)]"
6594
- },
6595
- primary: {
6596
- bg: "bg-[var(--tiger-tag-primary-bg,#dbeafe)]",
6597
- text: "text-[var(--tiger-primary,#2563eb)]",
6598
- border: "border-[var(--tiger-tag-primary-border,#bfdbfe)]",
6599
- closeBgHover: "hover:bg-[var(--tiger-tag-primary-close-hover,#bfdbfe)]"
6600
- },
6601
- success: {
6602
- bg: "bg-[var(--tiger-tag-success-bg,#dcfce7)]",
6603
- text: "text-[var(--tiger-success,#16a34a)]",
6604
- border: "border-[var(--tiger-tag-success-border,#bbf7d0)]",
6605
- closeBgHover: "hover:bg-[var(--tiger-tag-success-close-hover,#bbf7d0)]"
6606
- },
6607
- warning: {
6608
- bg: "bg-[var(--tiger-tag-warning-bg,#fef9c3)]",
6609
- text: "text-[var(--tiger-warning,#ca8a04)]",
6610
- border: "border-[var(--tiger-tag-warning-border,#fef08a)]",
6611
- closeBgHover: "hover:bg-[var(--tiger-tag-warning-close-hover,#fef08a)]"
6612
- },
6613
- danger: {
6614
- bg: "bg-[var(--tiger-tag-danger-bg,#fee2e2)]",
6615
- text: "text-[var(--tiger-error,#dc2626)]",
6616
- border: "border-[var(--tiger-tag-danger-border,#fecaca)]",
6617
- closeBgHover: "hover:bg-[var(--tiger-tag-danger-close-hover,#fecaca)]"
6618
- },
6619
- info: {
6620
- bg: "bg-[var(--tiger-tag-info-bg,#e0f2fe)]",
6621
- text: "text-[var(--tiger-info,#3b82f6)]",
6622
- border: "border-[var(--tiger-tag-info-border,#bae6fd)]",
6623
- closeBgHover: "hover:bg-[var(--tiger-tag-info-close-hover,#bae6fd)]"
7060
+ var buildNotificationGroups = (items = [], groups, groupBy, groupOrder) => {
7061
+ if (groups && groups.length > 0) {
7062
+ return sortNotificationGroups(groups, groupOrder);
6624
7063
  }
6625
- };
6626
- function getTagVariantClasses(variant, colors = defaultTagThemeColors) {
6627
- const scheme = colors[variant];
6628
- const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
6629
- return classes.join(" ");
6630
- }
6631
- var defaultBadgeThemeColors = {
6632
- default: {
6633
- bg: "bg-[var(--tiger-text-muted,#6b7280)]",
6634
- text: "text-white",
6635
- border: "border-[var(--tiger-text-muted,#6b7280)]"
6636
- },
6637
- primary: {
6638
- bg: "bg-[var(--tiger-primary,#2563eb)]",
6639
- text: "text-white",
6640
- border: "border-[var(--tiger-primary,#2563eb)]"
6641
- },
6642
- success: {
6643
- bg: "bg-[var(--tiger-success,#16a34a)]",
6644
- text: "text-white",
6645
- border: "border-[var(--tiger-success,#16a34a)]"
6646
- },
6647
- warning: {
6648
- bg: "bg-[var(--tiger-warning,#ca8a04)]",
6649
- text: "text-white",
6650
- border: "border-[var(--tiger-warning,#ca8a04)]"
6651
- },
6652
- danger: {
6653
- bg: "bg-[var(--tiger-error,#dc2626)]",
6654
- text: "text-white",
6655
- border: "border-[var(--tiger-error,#dc2626)]"
6656
- },
6657
- info: {
6658
- bg: "bg-[var(--tiger-info,#3b82f6)]",
6659
- text: "text-white",
6660
- border: "border-[var(--tiger-info,#3b82f6)]"
7064
+ if (!items || items.length === 0) {
7065
+ return [];
6661
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);
6662
7082
  };
6663
- function getBadgeVariantClasses(variant, colors = defaultBadgeThemeColors) {
6664
- const scheme = colors[variant];
6665
- const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
6666
- return classes.join(" ");
6667
- }
6668
- var defaultProgressThemeColors = {
6669
- default: {
6670
- bg: "bg-[color:var(--tiger-text-muted,#6b7280)]",
6671
- text: "text-[color:var(--tiger-text,#374151)]"
6672
- },
6673
- primary: {
6674
- bg: "bg-[color:var(--tiger-primary,#2563eb)]",
6675
- text: "text-[color:var(--tiger-primary,#2563eb)]"
6676
- },
6677
- success: {
6678
- bg: "bg-[color:var(--tiger-success,#16a34a)]",
6679
- text: "text-[color:var(--tiger-success,#16a34a)]"
6680
- },
6681
- warning: {
6682
- bg: "bg-[color:var(--tiger-warning,#f59e0b)]",
6683
- text: "text-[color:var(--tiger-warning,#f59e0b)]"
6684
- },
6685
- danger: {
6686
- bg: "bg-[color:var(--tiger-error,#dc2626)]",
6687
- text: "text-[color:var(--tiger-error,#dc2626)]"
6688
- },
6689
- info: {
6690
- bg: "bg-[color:var(--tiger-info,#0ea5e9)]",
6691
- text: "text-[color:var(--tiger-info,#0ea5e9)]"
6692
- }
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;
6693
7113
  };
6694
- function getProgressVariantClasses(variant, colors = defaultProgressThemeColors) {
6695
- const scheme = colors[variant];
6696
- return scheme.bg;
6697
- }
6698
- function getProgressTextColorClasses(variant, colors = defaultProgressThemeColors) {
6699
- const scheme = colors[variant];
6700
- return scheme.text || "text-[var(--tiger-text,#374151)]";
6701
- }
6702
- var defaultAlertThemeColors = {
6703
- success: {
6704
- bg: "bg-[var(--tiger-alert-success-bg,#f0fdf4)]",
6705
- border: "border-[var(--tiger-alert-success-border,#bbf7d0)]",
6706
- icon: "text-[var(--tiger-alert-success-icon,#22c55e)]",
6707
- title: "text-[var(--tiger-alert-success-title,#166534)]",
6708
- description: "text-[var(--tiger-alert-success-description,#15803d)]",
6709
- closeButton: "text-[var(--tiger-alert-success-close,#22c55e)]",
6710
- closeButtonHover: "hover:bg-[var(--tiger-alert-success-close-hover-bg,#dcfce7)]",
6711
- focus: "focus:ring-[color:var(--tiger-alert-success-ring,#22c55e)]"
6712
- },
6713
- warning: {
6714
- bg: "bg-[var(--tiger-alert-warning-bg,#fefce8)]",
6715
- border: "border-[var(--tiger-alert-warning-border,#fef08a)]",
6716
- icon: "text-[var(--tiger-alert-warning-icon,#eab308)]",
6717
- title: "text-[var(--tiger-alert-warning-title,#854d0e)]",
6718
- description: "text-[var(--tiger-alert-warning-description,#a16207)]",
6719
- closeButton: "text-[var(--tiger-alert-warning-close,#eab308)]",
6720
- closeButtonHover: "hover:bg-[var(--tiger-alert-warning-close-hover-bg,#fef9c3)]",
6721
- focus: "focus:ring-[color:var(--tiger-alert-warning-ring,#eab308)]"
6722
- },
6723
- error: {
6724
- bg: "bg-[var(--tiger-alert-error-bg,#fef2f2)]",
6725
- border: "border-[var(--tiger-alert-error-border,#fecaca)]",
6726
- icon: "text-[var(--tiger-alert-error-icon,#ef4444)]",
6727
- title: "text-[var(--tiger-alert-error-title,#991b1b)]",
6728
- description: "text-[var(--tiger-alert-error-description,#b91c1c)]",
6729
- closeButton: "text-[var(--tiger-alert-error-close,#ef4444)]",
6730
- closeButtonHover: "hover:bg-[var(--tiger-alert-error-close-hover-bg,#fee2e2)]",
6731
- focus: "focus:ring-[color:var(--tiger-alert-error-ring,#ef4444)]"
6732
- },
6733
- info: {
6734
- bg: "bg-[var(--tiger-alert-info-bg,#eff6ff)]",
6735
- border: "border-[var(--tiger-alert-info-border,#bfdbfe)]",
6736
- icon: "text-[var(--tiger-alert-info-icon,#3b82f6)]",
6737
- title: "text-[var(--tiger-alert-info-title,#1e40af)]",
6738
- description: "text-[var(--tiger-alert-info-description,#1d4ed8)]",
6739
- closeButton: "text-[var(--tiger-alert-info-close,#3b82f6)]",
6740
- closeButtonHover: "hover:bg-[var(--tiger-alert-info-close-hover-bg,#dbeafe)]",
6741
- focus: "focus:ring-[color:var(--tiger-alert-info-ring,#3b82f6)]"
6742
- }
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;
6743
7141
  };
6744
- function getAlertTypeClasses(type, colors = defaultAlertThemeColors) {
6745
- return colors[type];
6746
- }
6747
7142
 
6748
7143
  // src/theme/checkbox.ts
6749
7144
  var checkboxSizeClasses = {
@@ -6757,26 +7152,17 @@ var checkboxLabelSizeClasses = {
6757
7152
  lg: "text-lg"
6758
7153
  };
6759
7154
  function getCheckboxClasses(size = "md", disabled = false) {
6760
- 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";
6761
7156
  const sizeClass = checkboxSizeClasses[size];
6762
- const colorClasses = [
6763
- "border-[var(--tiger-primary,#2563eb)]",
6764
- "accent-[var(--tiger-primary,#2563eb)]",
6765
- "text-white",
6766
- "checked:bg-[var(--tiger-primary,#2563eb)]",
6767
- "checked:border-[var(--tiger-primary,#2563eb)]",
6768
- "indeterminate:bg-[var(--tiger-primary,#2563eb)]",
6769
- "indeterminate:border-[var(--tiger-primary,#2563eb)]",
6770
- "focus:ring-[var(--tiger-primary,#2563eb)]"
6771
- ].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)]";
6772
7158
  const disabledClasses = disabled ? "cursor-not-allowed opacity-50 disabled:bg-[var(--tiger-surface-muted,#f3f4f6)] disabled:border-[var(--tiger-border,#e5e7eb)]" : "";
6773
- return [baseClasses, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
7159
+ return [baseClasses2, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
6774
7160
  }
6775
7161
  function getCheckboxLabelClasses(size = "md", disabled = false) {
6776
- const baseClasses = "inline-flex items-center cursor-pointer select-none";
7162
+ const baseClasses2 = "inline-flex items-center cursor-pointer select-none";
6777
7163
  const sizeClass = checkboxLabelSizeClasses[size];
6778
- const disabledClasses = disabled ? "cursor-not-allowed opacity-50" : "";
6779
- return [baseClasses, sizeClass, disabledClasses].filter(Boolean).join(" ");
7164
+ const disabledClasses = disabled ? "cursor-not-allowed" : "";
7165
+ return [baseClasses2, sizeClass, disabledClasses].filter(Boolean).join(" ");
6780
7166
  }
6781
7167
 
6782
7168
  // src/theme/switch.ts
@@ -6807,10 +7193,10 @@ function getSwitchClasses(size = "md", checked = false, disabled = false) {
6807
7193
  );
6808
7194
  }
6809
7195
  function getSwitchThumbClasses(size = "md", checked = false) {
6810
- 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";
6811
7197
  const sizeClass = switchThumbSizeClasses[size];
6812
7198
  const translateClass = checked ? switchThumbTranslateClasses[size] : "translate-x-0.5";
6813
- return classNames(baseClasses, sizeClass, translateClass);
7199
+ return classNames(baseClasses2, sizeClass, translateClass);
6814
7200
  }
6815
7201
 
6816
7202
  // src/theme/slider.ts
@@ -6924,7 +7310,11 @@ var tigercatTheme = {
6924
7310
  };
6925
7311
  var tigercatPlugin = (0, import_plugin.default)(function({ addBase }) {
6926
7312
  addBase({
6927
- ":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
+ }
6928
7318
  });
6929
7319
  });
6930
7320
 
@@ -6941,15 +7331,26 @@ var version = "0.2.0";
6941
7331
  ClockIconPath,
6942
7332
  CloseIconPath,
6943
7333
  DEFAULT_CHART_COLORS,
7334
+ DEFAULT_FORM_WIZARD_LABELS,
6944
7335
  DEFAULT_PAGINATION_LABELS,
7336
+ DONUT_BASE_SHADOW,
7337
+ DONUT_EMPHASIS_SHADOW,
7338
+ DROPDOWN_CHEVRON_PATH,
7339
+ DROPDOWN_ENTER_CLASS,
6945
7340
  DURATION_CLASS,
6946
7341
  DURATION_FAST_CLASS,
6947
7342
  DURATION_SLOW_CLASS,
6948
7343
  EASING_DEFAULT,
6949
7344
  EASING_ENTER,
6950
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,
6951
7353
  SHAKE_CLASS,
6952
- SPACE_BASE_CLASS,
6953
7354
  SVG_ANIMATION_CLASSES,
6954
7355
  SVG_ANIMATION_VARS,
6955
7356
  SVG_DEFAULT_FILL,
@@ -6963,6 +7364,7 @@ var version = "0.2.0";
6963
7364
  TRANSITION_OPACITY,
6964
7365
  TRANSITION_TRANSFORM,
6965
7366
  TimePickerCloseIconPath,
7367
+ ZH_CN_FORM_WIZARD_LABELS,
6966
7368
  ZH_CN_PAGINATION_LABELS,
6967
7369
  activeOpacityClasses,
6968
7370
  activePressClasses,
@@ -6971,14 +7373,10 @@ var version = "0.2.0";
6971
7373
  alertCloseIconPath,
6972
7374
  alertContentClasses,
6973
7375
  alertDescriptionSizeClasses,
6974
- alertErrorIconPath,
6975
7376
  alertIconContainerClasses,
6976
7377
  alertIconSizeClasses,
6977
- alertInfoIconPath,
6978
7378
  alertSizeClasses,
6979
- alertSuccessIconPath,
6980
7379
  alertTitleSizeClasses,
6981
- alertWarningIconPath,
6982
7380
  anchorAffixClasses,
6983
7381
  anchorBaseClasses,
6984
7382
  anchorInkActiveHorizontalClasses,
@@ -7000,7 +7398,6 @@ var version = "0.2.0";
7000
7398
  avatarImageClasses,
7001
7399
  avatarShapeClasses,
7002
7400
  avatarSizeClasses,
7003
- backTopBaseClasses,
7004
7401
  backTopButtonClasses,
7005
7402
  backTopContainerClasses,
7006
7403
  backTopHiddenClasses,
@@ -7011,12 +7408,20 @@ var version = "0.2.0";
7011
7408
  badgeSizeClasses,
7012
7409
  badgeTypeClasses,
7013
7410
  badgeWrapperClasses,
7411
+ barAnimatedTransition,
7412
+ barValueLabelClasses,
7413
+ barValueLabelInsideClasses,
7014
7414
  barsVariantConfig,
7015
7415
  breadcrumbContainerClasses,
7016
7416
  breadcrumbCurrentClasses,
7017
7417
  breadcrumbItemBaseClasses,
7018
7418
  breadcrumbLinkClasses,
7019
7419
  breadcrumbSeparatorBaseClasses,
7420
+ buildActivityGroups,
7421
+ buildChartLegendItems,
7422
+ buildCommentTree,
7423
+ buildNotificationGroups,
7424
+ buildTriggerHandlerMap,
7020
7425
  buttonBaseClasses,
7021
7426
  buttonDisabledClasses,
7022
7427
  buttonSizeClasses,
@@ -7028,7 +7433,6 @@ var version = "0.2.0";
7028
7433
  captureActiveElement,
7029
7434
  cardActionsClasses,
7030
7435
  cardBaseClasses,
7031
- cardBodyClasses,
7032
7436
  cardCoverClasses,
7033
7437
  cardCoverWrapperClasses,
7034
7438
  cardFooterClasses,
@@ -7048,7 +7452,6 @@ var version = "0.2.0";
7048
7452
  carouselPrevArrowClasses,
7049
7453
  carouselPrevArrowPath,
7050
7454
  carouselSlideBaseClasses,
7051
- carouselSlideFadeClasses,
7052
7455
  carouselTrackFadeClasses,
7053
7456
  carouselTrackScrollClasses,
7054
7457
  chartAxisLabelClasses,
@@ -7061,13 +7464,16 @@ var version = "0.2.0";
7061
7464
  checkSolidIcon20PathD,
7062
7465
  checkboxLabelSizeClasses,
7063
7466
  checkboxSizeClasses,
7467
+ checkedSetsFromState,
7064
7468
  chevronDownSolidIcon20PathD,
7065
7469
  chevronLeftSolidIcon20PathD,
7066
7470
  chevronRightSolidIcon20PathD,
7471
+ clampBarWidth,
7067
7472
  clampPercentage,
7068
7473
  clampSlideIndex,
7069
7474
  classNames,
7070
7475
  clearFieldErrors,
7476
+ clipCommentTreeDepth,
7071
7477
  clockSolidIcon20PathD,
7072
7478
  closeIconPathD,
7073
7479
  closeIconPathStrokeLinecap,
@@ -7083,7 +7489,6 @@ var version = "0.2.0";
7083
7489
  coerceStyleValue,
7084
7490
  collapseBaseClasses,
7085
7491
  collapseBorderlessClasses,
7086
- collapseExtraClasses,
7087
7492
  collapseGhostClasses,
7088
7493
  collapseHeaderTextClasses,
7089
7494
  collapseIconBaseClasses,
@@ -7095,8 +7500,9 @@ var version = "0.2.0";
7095
7500
  collapsePanelHeaderActiveClasses,
7096
7501
  collapsePanelHeaderBaseClasses,
7097
7502
  collapsePanelHeaderDisabledClasses,
7098
- collapseRightArrowIcon,
7099
7503
  computeFloatingPosition,
7504
+ computePieHoverOffset,
7505
+ computePieLabelLine,
7100
7506
  containerBaseClasses,
7101
7507
  containerCenteredClasses,
7102
7508
  containerMaxWidthClasses,
@@ -7106,6 +7512,7 @@ var version = "0.2.0";
7106
7512
  createAriaId,
7107
7513
  createBandScale,
7108
7514
  createChartInteractionHandlers,
7515
+ createFloatingIdFactory,
7109
7516
  createLinePath,
7110
7517
  createLinearScale,
7111
7518
  createPieArcPath,
@@ -7124,18 +7531,20 @@ var version = "0.2.0";
7124
7531
  datePickerNavButtonClasses,
7125
7532
  defaultAlertThemeColors,
7126
7533
  defaultBadgeThemeColors,
7127
- defaultExpandIcon,
7128
- defaultIndeterminateIcon,
7534
+ defaultChatMessageStatusInfo,
7129
7535
  defaultLinkThemeColors,
7130
7536
  defaultMessageThemeColors,
7131
7537
  defaultNotificationThemeColors,
7132
7538
  defaultProgressThemeColors,
7539
+ defaultRadarTooltipFormatter,
7133
7540
  defaultRadioColors,
7541
+ defaultSeriesXYTooltipFormatter,
7134
7542
  defaultSortFn,
7135
7543
  defaultTagThemeColors,
7136
7544
  defaultThemeColors,
7137
7545
  defaultTooltipFormatter,
7138
7546
  defaultTotalText,
7547
+ defaultXYTooltipFormatter,
7139
7548
  descriptionsBaseClasses,
7140
7549
  descriptionsCellSizeClasses,
7141
7550
  descriptionsContentBorderedClasses,
@@ -7144,7 +7553,6 @@ var version = "0.2.0";
7144
7553
  descriptionsHeaderClasses,
7145
7554
  descriptionsLabelBorderedClasses,
7146
7555
  descriptionsLabelClasses,
7147
- descriptionsRowClasses,
7148
7556
  descriptionsSizeClasses,
7149
7557
  descriptionsTableBorderedClasses,
7150
7558
  descriptionsTableClasses,
@@ -7156,6 +7564,7 @@ var version = "0.2.0";
7156
7564
  descriptionsWrapperClasses,
7157
7565
  dotSizeClasses,
7158
7566
  dotsVariantConfig,
7567
+ ensureBarMinHeight,
7159
7568
  errorCircleSolidIcon20PathD,
7160
7569
  fileToUploadFile,
7161
7570
  filterData,
@@ -7163,12 +7572,17 @@ var version = "0.2.0";
7163
7572
  filterTreeNodes,
7164
7573
  findActiveAnchor,
7165
7574
  findNode,
7166
- flattenTree,
7575
+ flattenSelectOptions,
7167
7576
  focusElement,
7168
7577
  focusFirst,
7578
+ focusFirstChildItem,
7579
+ focusMenuEdge,
7169
7580
  focusRingClasses,
7170
7581
  focusRingInsetClasses,
7582
+ formatActivityTime,
7171
7583
  formatBadgeContent,
7584
+ formatChatTime,
7585
+ formatCommentTime,
7172
7586
  formatDate,
7173
7587
  formatFileSize,
7174
7588
  formatMonthYear,
@@ -7195,10 +7609,13 @@ var version = "0.2.0";
7195
7609
  getAnchorLinkListClasses,
7196
7610
  getAnchorTargetElement,
7197
7611
  getAnchorWrapperClasses,
7612
+ getAreaGradientPrefix,
7198
7613
  getArrowStyles,
7199
7614
  getAutoExpandKeys,
7200
7615
  getBadgeVariantClasses,
7616
+ getBarGradientPrefix,
7201
7617
  getBarGrowAnimationStyle,
7618
+ getBarValueLabelY,
7202
7619
  getBreadcrumbItemClasses,
7203
7620
  getBreadcrumbLinkClasses,
7204
7621
  getBreadcrumbSeparatorClasses,
@@ -7215,11 +7632,13 @@ var version = "0.2.0";
7215
7632
  getChartEntranceTransform,
7216
7633
  getChartGridLineDasharray,
7217
7634
  getChartInnerRect,
7635
+ getChatMessageStatusInfo,
7218
7636
  getCheckboxCellClasses,
7219
7637
  getCheckboxClasses,
7220
7638
  getCheckboxLabelClasses,
7221
7639
  getCheckedKeysByStrategy,
7222
7640
  getCircleSize,
7641
+ getColMergedStyleVars,
7223
7642
  getColOrderStyleVars,
7224
7643
  getColStyleVars,
7225
7644
  getCollapseContainerClasses,
@@ -7242,9 +7661,8 @@ var version = "0.2.0";
7242
7661
  getDescriptionsLabelClasses,
7243
7662
  getDescriptionsTableClasses,
7244
7663
  getDescriptionsVerticalItemClasses,
7245
- getDividerLineStyleClasses,
7246
- getDividerOrientationClasses,
7247
- getDividerSpacingClasses,
7664
+ getDividerClasses,
7665
+ getDividerStyle,
7248
7666
  getDragAreaClasses,
7249
7667
  getDrawerBodyClasses,
7250
7668
  getDrawerCloseButtonClasses,
@@ -7254,10 +7672,10 @@ var version = "0.2.0";
7254
7672
  getDrawerMaskClasses,
7255
7673
  getDrawerPanelClasses,
7256
7674
  getDrawerTitleClasses,
7675
+ getDropdownChevronClasses,
7257
7676
  getDropdownContainerClasses,
7258
7677
  getDropdownItemClasses,
7259
7678
  getDropdownMenuClasses,
7260
- getDropdownMenuWrapperClasses,
7261
7679
  getDropdownTriggerClasses,
7262
7680
  getElementOffsetTop,
7263
7681
  getErrorFields,
@@ -7268,6 +7686,13 @@ var version = "0.2.0";
7268
7686
  getFlexClasses,
7269
7687
  getFocusTrapNavigation,
7270
7688
  getFocusableElements,
7689
+ getFormItemAsteriskClasses,
7690
+ getFormItemClasses,
7691
+ getFormItemContentClasses,
7692
+ getFormItemErrorClasses,
7693
+ getFormItemFieldClasses,
7694
+ getFormItemLabelClasses,
7695
+ getFormWizardLabels,
7271
7696
  getGridColumnClasses,
7272
7697
  getGutterStyles,
7273
7698
  getInitials,
@@ -7277,6 +7702,7 @@ var version = "0.2.0";
7277
7702
  getInputWrapperClasses,
7278
7703
  getJustifyClasses,
7279
7704
  getLeafKeys,
7705
+ getLineGradientPrefix,
7280
7706
  getLinkVariantClasses,
7281
7707
  getListClasses,
7282
7708
  getListHeaderFooterClasses,
@@ -7288,6 +7714,7 @@ var version = "0.2.0";
7288
7714
  getLoadingDotsWrapperClasses,
7289
7715
  getLoadingOverlaySpinnerClasses,
7290
7716
  getLoadingTextClasses,
7717
+ getMenuButtons,
7291
7718
  getMenuClasses,
7292
7719
  getMenuItemClasses,
7293
7720
  getMenuItemIndent,
@@ -7343,6 +7770,7 @@ var version = "0.2.0";
7343
7770
  getProgressVariantClasses,
7344
7771
  getQuickJumperInputClasses,
7345
7772
  getRadarAngles,
7773
+ getRadarLabelAlign,
7346
7774
  getRadarPoints,
7347
7775
  getRadioColorClasses,
7348
7776
  getRadioDotClasses,
@@ -7350,6 +7778,10 @@ var version = "0.2.0";
7350
7778
  getRadioLabelClasses,
7351
7779
  getRadioVisualClasses,
7352
7780
  getRowKey,
7781
+ getScatterGradientPrefix,
7782
+ getScatterHoverShadow,
7783
+ getScatterHoverSize,
7784
+ getScatterPointPath,
7353
7785
  getScrollTop,
7354
7786
  getScrollTransform,
7355
7787
  getSecureRel,
@@ -7366,15 +7798,15 @@ var version = "0.2.0";
7366
7798
  getSimplePaginationPageIndicatorClasses,
7367
7799
  getSimplePaginationSelectClasses,
7368
7800
  getSimplePaginationTotalClasses,
7801
+ getSizeTextClasses,
7369
7802
  getSkeletonClasses,
7370
7803
  getSkeletonDimensions,
7371
7804
  getSliderThumbClasses,
7372
7805
  getSliderTooltipClasses,
7373
7806
  getSliderTrackClasses,
7374
7807
  getSortIconClasses,
7375
- getSpaceAlignClass,
7376
- getSpaceDirectionClass,
7377
- getSpaceGapSize,
7808
+ getSpaceClasses,
7809
+ getSpaceStyle,
7378
7810
  getSpanClasses,
7379
7811
  getSpinnerSVG,
7380
7812
  getStatusVariant,
@@ -7401,6 +7833,7 @@ var version = "0.2.0";
7401
7833
  getTableWrapperClasses,
7402
7834
  getTabsContainerClasses,
7403
7835
  getTagVariantClasses,
7836
+ getTextClasses,
7404
7837
  getThemeColor,
7405
7838
  getTimePeriodLabels,
7406
7839
  getTimePickerIconButtonClasses,
@@ -7440,7 +7873,12 @@ var version = "0.2.0";
7440
7873
  icon24ViewBox,
7441
7874
  iconSizeClasses,
7442
7875
  iconSvgBaseClasses,
7876
+ iconSvgDefaultStrokeLinecap,
7877
+ iconSvgDefaultStrokeLinejoin,
7878
+ iconSvgDefaultStrokeWidth,
7443
7879
  iconWrapperClasses,
7880
+ initRovingTabIndex,
7881
+ injectDropdownStyles,
7444
7882
  injectLoadingAnimationStyles,
7445
7883
  injectShakeStyle,
7446
7884
  injectSvgAnimationStyles,
@@ -7471,6 +7909,7 @@ var version = "0.2.0";
7471
7909
  layoutHeaderClasses,
7472
7910
  layoutRootClasses,
7473
7911
  layoutSidebarClasses,
7912
+ linePointTransitionClasses,
7474
7913
  linkBaseClasses,
7475
7914
  linkDisabledClasses,
7476
7915
  linkSizeClasses,
@@ -7492,7 +7931,6 @@ var version = "0.2.0";
7492
7931
  listItemSizeClasses,
7493
7932
  listItemTitleClasses,
7494
7933
  listLoadingOverlayClasses,
7495
- listPaginationContainerClasses,
7496
7934
  listSizeClasses,
7497
7935
  listWrapperClasses,
7498
7936
  loadingBarBaseClasses,
@@ -7530,12 +7968,8 @@ var version = "0.2.0";
7530
7968
  messageCloseIconPath,
7531
7969
  messageContainerBaseClasses,
7532
7970
  messageContentClasses,
7533
- messageEnterActiveClasses,
7534
- messageEnterClasses,
7535
7971
  messageIconClasses,
7536
7972
  messageIconPaths,
7537
- messageLeaveActiveClasses,
7538
- messageLeaveClasses,
7539
7973
  messageLoadingSpinnerClasses,
7540
7974
  messagePositionClasses,
7541
7975
  modalBodyClasses,
@@ -7547,9 +7981,11 @@ var version = "0.2.0";
7547
7981
  modalSizeClasses,
7548
7982
  modalTitleClasses,
7549
7983
  modalWrapperClasses,
7984
+ moveFocusInMenu,
7550
7985
  normalizeActiveKeys,
7551
7986
  normalizeChartPadding,
7552
7987
  normalizeDate,
7988
+ normalizeStringOption,
7553
7989
  normalizeSvgAttrs,
7554
7990
  notificationBaseClasses,
7555
7991
  notificationCloseButtonClasses,
@@ -7564,6 +8000,7 @@ var version = "0.2.0";
7564
8000
  notificationTitleClasses,
7565
8001
  paginateData,
7566
8002
  parseDate,
8003
+ parseInputValue,
7567
8004
  parseTime,
7568
8005
  parseWidthToPx,
7569
8006
  polarToCartesian,
@@ -7599,8 +8036,17 @@ var version = "0.2.0";
7599
8036
  radioSizeClasses,
7600
8037
  radioVisualBaseClasses,
7601
8038
  replaceKeys,
8039
+ resetAreaGradientCounter,
8040
+ resetBarGradientCounter,
8041
+ resetLineGradientCounter,
8042
+ resetScatterGradientCounter,
8043
+ resolveChartPalette,
8044
+ resolveChartTooltipContent,
7602
8045
  resolveLocaleText,
8046
+ resolveMultiSeriesTooltipContent,
8047
+ resolveSeriesData,
7603
8048
  restoreFocus,
8049
+ scatterPointTransitionClasses,
7604
8050
  scrollToAnchor,
7605
8051
  scrollToTop,
7606
8052
  selectBaseClasses,
@@ -7628,22 +8074,19 @@ var version = "0.2.0";
7628
8074
  sliderThumbClasses,
7629
8075
  sliderTooltipClasses,
7630
8076
  sliderTrackClasses,
8077
+ sortActivityGroups,
7631
8078
  sortAscIcon16PathD,
7632
8079
  sortBothIcon16PathD,
7633
8080
  sortData,
7634
8081
  sortDescIcon16PathD,
8082
+ sortNotificationGroups,
7635
8083
  stackSeriesData,
7636
8084
  statusErrorIconPath,
7637
8085
  statusIconPaths,
7638
8086
  statusInfoIconPath,
7639
8087
  statusSuccessIconPath,
7640
8088
  statusWarningIconPath,
7641
- stepFinishIconPathD,
7642
- stepFinishIconPathStrokeLinecap,
7643
- stepFinishIconPathStrokeLinejoin,
7644
- stepFinishIconPathStrokeWidth,
7645
- stepFinishIconSvgClasses,
7646
- stepFinishIconViewBox,
8089
+ stepFinishChar,
7647
8090
  submenuContentHorizontalClasses,
7648
8091
  submenuContentInlineClasses,
7649
8092
  submenuContentPopupClasses,
@@ -7670,6 +8113,7 @@ var version = "0.2.0";
7670
8113
  tabItemLineClasses,
7671
8114
  tabItemSizeClasses,
7672
8115
  tabNavBaseClasses,
8116
+ tabNavLineBorderClasses,
7673
8117
  tabNavListBaseClasses,
7674
8118
  tabNavListCenteredClasses,
7675
8119
  tabNavListPositionClasses,
@@ -7716,6 +8160,7 @@ var version = "0.2.0";
7716
8160
  timelineTailClasses,
7717
8161
  to12HourFormat,
7718
8162
  to24HourFormat,
8163
+ toActivityTimelineItems,
7719
8164
  toggleKey,
7720
8165
  togglePanelKey,
7721
8166
  treeBaseClasses,