@expcat/tigercat-core 0.3.0 → 0.3.70

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
@@ -104,21 +104,33 @@ __export(index_exports, {
104
104
  ANIMATION_DURATION_FAST_MS: () => ANIMATION_DURATION_FAST_MS,
105
105
  ANIMATION_DURATION_MS: () => ANIMATION_DURATION_MS,
106
106
  ANIMATION_DURATION_SLOW_MS: () => ANIMATION_DURATION_SLOW_MS,
107
+ CROP_HANDLES: () => CROP_HANDLES,
107
108
  CalendarIconPath: () => CalendarIconPath,
108
109
  ChevronLeftIconPath: () => ChevronLeftIconPath,
109
110
  ChevronRightIconPath: () => ChevronRightIconPath,
110
111
  ClockIconPath: () => ClockIconPath,
111
112
  CloseIconPath: () => CloseIconPath,
112
113
  DEFAULT_CHART_COLORS: () => DEFAULT_CHART_COLORS,
114
+ DEFAULT_FORM_WIZARD_LABELS: () => DEFAULT_FORM_WIZARD_LABELS,
113
115
  DEFAULT_PAGINATION_LABELS: () => DEFAULT_PAGINATION_LABELS,
116
+ DONUT_BASE_SHADOW: () => DONUT_BASE_SHADOW,
117
+ DONUT_EMPHASIS_SHADOW: () => DONUT_EMPHASIS_SHADOW,
118
+ DROPDOWN_CHEVRON_PATH: () => DROPDOWN_CHEVRON_PATH,
119
+ DROPDOWN_ENTER_CLASS: () => DROPDOWN_ENTER_CLASS,
114
120
  DURATION_CLASS: () => DURATION_CLASS,
115
121
  DURATION_FAST_CLASS: () => DURATION_FAST_CLASS,
116
122
  DURATION_SLOW_CLASS: () => DURATION_SLOW_CLASS,
117
123
  EASING_DEFAULT: () => EASING_DEFAULT,
118
124
  EASING_ENTER: () => EASING_ENTER,
119
125
  EASING_LEAVE: () => EASING_LEAVE,
126
+ PIE_BASE_SHADOW: () => PIE_BASE_SHADOW,
127
+ PIE_EMPHASIS_SHADOW: () => PIE_EMPHASIS_SHADOW,
128
+ POPOVER_TEXT_CLASSES: () => POPOVER_TEXT_CLASSES,
129
+ POPOVER_TITLE_CLASSES: () => POPOVER_TITLE_CLASSES,
130
+ RADAR_SPLIT_AREA_COLORS: () => RADAR_SPLIT_AREA_COLORS,
131
+ SCATTER_ENTRANCE_CLASS: () => SCATTER_ENTRANCE_CLASS,
132
+ SCATTER_ENTRANCE_KEYFRAMES: () => SCATTER_ENTRANCE_KEYFRAMES,
120
133
  SHAKE_CLASS: () => SHAKE_CLASS,
121
- SPACE_BASE_CLASS: () => SPACE_BASE_CLASS,
122
134
  SVG_ANIMATION_CLASSES: () => SVG_ANIMATION_CLASSES,
123
135
  SVG_ANIMATION_VARS: () => SVG_ANIMATION_VARS,
124
136
  SVG_DEFAULT_FILL: () => SVG_DEFAULT_FILL,
@@ -132,6 +144,7 @@ __export(index_exports, {
132
144
  TRANSITION_OPACITY: () => TRANSITION_OPACITY,
133
145
  TRANSITION_TRANSFORM: () => TRANSITION_TRANSFORM,
134
146
  TimePickerCloseIconPath: () => TimePickerCloseIconPath,
147
+ ZH_CN_FORM_WIZARD_LABELS: () => ZH_CN_FORM_WIZARD_LABELS,
135
148
  ZH_CN_PAGINATION_LABELS: () => ZH_CN_PAGINATION_LABELS,
136
149
  activeOpacityClasses: () => activeOpacityClasses,
137
150
  activePressClasses: () => activePressClasses,
@@ -140,14 +153,10 @@ __export(index_exports, {
140
153
  alertCloseIconPath: () => alertCloseIconPath,
141
154
  alertContentClasses: () => alertContentClasses,
142
155
  alertDescriptionSizeClasses: () => alertDescriptionSizeClasses,
143
- alertErrorIconPath: () => alertErrorIconPath,
144
156
  alertIconContainerClasses: () => alertIconContainerClasses,
145
157
  alertIconSizeClasses: () => alertIconSizeClasses,
146
- alertInfoIconPath: () => alertInfoIconPath,
147
158
  alertSizeClasses: () => alertSizeClasses,
148
- alertSuccessIconPath: () => alertSuccessIconPath,
149
159
  alertTitleSizeClasses: () => alertTitleSizeClasses,
150
- alertWarningIconPath: () => alertWarningIconPath,
151
160
  anchorAffixClasses: () => anchorAffixClasses,
152
161
  anchorBaseClasses: () => anchorBaseClasses,
153
162
  anchorInkActiveHorizontalClasses: () => anchorInkActiveHorizontalClasses,
@@ -169,7 +178,6 @@ __export(index_exports, {
169
178
  avatarImageClasses: () => avatarImageClasses,
170
179
  avatarShapeClasses: () => avatarShapeClasses,
171
180
  avatarSizeClasses: () => avatarSizeClasses,
172
- backTopBaseClasses: () => backTopBaseClasses,
173
181
  backTopButtonClasses: () => backTopButtonClasses,
174
182
  backTopContainerClasses: () => backTopContainerClasses,
175
183
  backTopHiddenClasses: () => backTopHiddenClasses,
@@ -180,6 +188,9 @@ __export(index_exports, {
180
188
  badgeSizeClasses: () => badgeSizeClasses,
181
189
  badgeTypeClasses: () => badgeTypeClasses,
182
190
  badgeWrapperClasses: () => badgeWrapperClasses,
191
+ barAnimatedTransition: () => barAnimatedTransition,
192
+ barValueLabelClasses: () => barValueLabelClasses,
193
+ barValueLabelInsideClasses: () => barValueLabelInsideClasses,
183
194
  barsVariantConfig: () => barsVariantConfig,
184
195
  breadcrumbContainerClasses: () => breadcrumbContainerClasses,
185
196
  breadcrumbCurrentClasses: () => breadcrumbCurrentClasses,
@@ -187,8 +198,10 @@ __export(index_exports, {
187
198
  breadcrumbLinkClasses: () => breadcrumbLinkClasses,
188
199
  breadcrumbSeparatorBaseClasses: () => breadcrumbSeparatorBaseClasses,
189
200
  buildActivityGroups: () => buildActivityGroups,
201
+ buildChartLegendItems: () => buildChartLegendItems,
190
202
  buildCommentTree: () => buildCommentTree,
191
203
  buildNotificationGroups: () => buildNotificationGroups,
204
+ buildTriggerHandlerMap: () => buildTriggerHandlerMap,
192
205
  buttonBaseClasses: () => buttonBaseClasses,
193
206
  buttonDisabledClasses: () => buttonDisabledClasses,
194
207
  buttonSizeClasses: () => buttonSizeClasses,
@@ -196,11 +209,11 @@ __export(index_exports, {
196
209
  calculateCirclePath: () => calculateCirclePath,
197
210
  calculatePagination: () => calculatePagination,
198
211
  calculateStepStatus: () => calculateStepStatus,
212
+ calculateTransform: () => calculateTransform,
199
213
  calendarSolidIcon20PathD: () => calendarSolidIcon20PathD,
200
214
  captureActiveElement: () => captureActiveElement,
201
215
  cardActionsClasses: () => cardActionsClasses,
202
216
  cardBaseClasses: () => cardBaseClasses,
203
- cardBodyClasses: () => cardBodyClasses,
204
217
  cardCoverClasses: () => cardCoverClasses,
205
218
  cardCoverWrapperClasses: () => cardCoverWrapperClasses,
206
219
  cardFooterClasses: () => cardFooterClasses,
@@ -220,7 +233,6 @@ __export(index_exports, {
220
233
  carouselPrevArrowClasses: () => carouselPrevArrowClasses,
221
234
  carouselPrevArrowPath: () => carouselPrevArrowPath,
222
235
  carouselSlideBaseClasses: () => carouselSlideBaseClasses,
223
- carouselSlideFadeClasses: () => carouselSlideFadeClasses,
224
236
  carouselTrackFadeClasses: () => carouselTrackFadeClasses,
225
237
  carouselTrackScrollClasses: () => carouselTrackScrollClasses,
226
238
  chartAxisLabelClasses: () => chartAxisLabelClasses,
@@ -233,10 +245,13 @@ __export(index_exports, {
233
245
  checkSolidIcon20PathD: () => checkSolidIcon20PathD,
234
246
  checkboxLabelSizeClasses: () => checkboxLabelSizeClasses,
235
247
  checkboxSizeClasses: () => checkboxSizeClasses,
248
+ checkedSetsFromState: () => checkedSetsFromState,
236
249
  chevronDownSolidIcon20PathD: () => chevronDownSolidIcon20PathD,
237
250
  chevronLeftSolidIcon20PathD: () => chevronLeftSolidIcon20PathD,
238
251
  chevronRightSolidIcon20PathD: () => chevronRightSolidIcon20PathD,
252
+ clampBarWidth: () => clampBarWidth,
239
253
  clampPercentage: () => clampPercentage,
254
+ clampScale: () => clampScale,
240
255
  clampSlideIndex: () => clampSlideIndex,
241
256
  classNames: () => classNames,
242
257
  clearFieldErrors: () => clearFieldErrors,
@@ -256,7 +271,6 @@ __export(index_exports, {
256
271
  coerceStyleValue: () => coerceStyleValue,
257
272
  collapseBaseClasses: () => collapseBaseClasses,
258
273
  collapseBorderlessClasses: () => collapseBorderlessClasses,
259
- collapseExtraClasses: () => collapseExtraClasses,
260
274
  collapseGhostClasses: () => collapseGhostClasses,
261
275
  collapseHeaderTextClasses: () => collapseHeaderTextClasses,
262
276
  collapseIconBaseClasses: () => collapseIconBaseClasses,
@@ -268,8 +282,10 @@ __export(index_exports, {
268
282
  collapsePanelHeaderActiveClasses: () => collapsePanelHeaderActiveClasses,
269
283
  collapsePanelHeaderBaseClasses: () => collapsePanelHeaderBaseClasses,
270
284
  collapsePanelHeaderDisabledClasses: () => collapsePanelHeaderDisabledClasses,
271
- collapseRightArrowIcon: () => collapseRightArrowIcon,
272
285
  computeFloatingPosition: () => computeFloatingPosition,
286
+ computePieHoverOffset: () => computePieHoverOffset,
287
+ computePieLabelLine: () => computePieLabelLine,
288
+ constrainCropRect: () => constrainCropRect,
273
289
  containerBaseClasses: () => containerBaseClasses,
274
290
  containerCenteredClasses: () => containerCenteredClasses,
275
291
  containerMaxWidthClasses: () => containerMaxWidthClasses,
@@ -279,11 +295,15 @@ __export(index_exports, {
279
295
  createAriaId: () => createAriaId,
280
296
  createBandScale: () => createBandScale,
281
297
  createChartInteractionHandlers: () => createChartInteractionHandlers,
298
+ createFloatingIdFactory: () => createFloatingIdFactory,
282
299
  createLinePath: () => createLinePath,
283
300
  createLinearScale: () => createLinearScale,
284
301
  createPieArcPath: () => createPieArcPath,
285
302
  createPointScale: () => createPointScale,
286
303
  createPolygonPath: () => createPolygonPath,
304
+ cropCanvas: () => cropCanvas,
305
+ cropUploadTriggerClasses: () => cropUploadTriggerClasses,
306
+ cropUploadTriggerDisabledClasses: () => cropUploadTriggerDisabledClasses,
287
307
  datePickerBaseClasses: () => datePickerBaseClasses,
288
308
  datePickerCalendarClasses: () => datePickerCalendarClasses,
289
309
  datePickerCalendarGridClasses: () => datePickerCalendarGridClasses,
@@ -298,18 +318,19 @@ __export(index_exports, {
298
318
  defaultAlertThemeColors: () => defaultAlertThemeColors,
299
319
  defaultBadgeThemeColors: () => defaultBadgeThemeColors,
300
320
  defaultChatMessageStatusInfo: () => defaultChatMessageStatusInfo,
301
- defaultExpandIcon: () => defaultExpandIcon,
302
- defaultIndeterminateIcon: () => defaultIndeterminateIcon,
303
321
  defaultLinkThemeColors: () => defaultLinkThemeColors,
304
322
  defaultMessageThemeColors: () => defaultMessageThemeColors,
305
323
  defaultNotificationThemeColors: () => defaultNotificationThemeColors,
306
324
  defaultProgressThemeColors: () => defaultProgressThemeColors,
325
+ defaultRadarTooltipFormatter: () => defaultRadarTooltipFormatter,
307
326
  defaultRadioColors: () => defaultRadioColors,
327
+ defaultSeriesXYTooltipFormatter: () => defaultSeriesXYTooltipFormatter,
308
328
  defaultSortFn: () => defaultSortFn,
309
329
  defaultTagThemeColors: () => defaultTagThemeColors,
310
330
  defaultThemeColors: () => defaultThemeColors,
311
331
  defaultTooltipFormatter: () => defaultTooltipFormatter,
312
332
  defaultTotalText: () => defaultTotalText,
333
+ defaultXYTooltipFormatter: () => defaultXYTooltipFormatter,
313
334
  descriptionsBaseClasses: () => descriptionsBaseClasses,
314
335
  descriptionsCellSizeClasses: () => descriptionsCellSizeClasses,
315
336
  descriptionsContentBorderedClasses: () => descriptionsContentBorderedClasses,
@@ -318,7 +339,6 @@ __export(index_exports, {
318
339
  descriptionsHeaderClasses: () => descriptionsHeaderClasses,
319
340
  descriptionsLabelBorderedClasses: () => descriptionsLabelBorderedClasses,
320
341
  descriptionsLabelClasses: () => descriptionsLabelClasses,
321
- descriptionsRowClasses: () => descriptionsRowClasses,
322
342
  descriptionsSizeClasses: () => descriptionsSizeClasses,
323
343
  descriptionsTableBorderedClasses: () => descriptionsTableBorderedClasses,
324
344
  descriptionsTableClasses: () => descriptionsTableClasses,
@@ -330,6 +350,7 @@ __export(index_exports, {
330
350
  descriptionsWrapperClasses: () => descriptionsWrapperClasses,
331
351
  dotSizeClasses: () => dotSizeClasses,
332
352
  dotsVariantConfig: () => dotsVariantConfig,
353
+ ensureBarMinHeight: () => ensureBarMinHeight,
333
354
  errorCircleSolidIcon20PathD: () => errorCircleSolidIcon20PathD,
334
355
  fileToUploadFile: () => fileToUploadFile,
335
356
  filterData: () => filterData,
@@ -337,9 +358,11 @@ __export(index_exports, {
337
358
  filterTreeNodes: () => filterTreeNodes,
338
359
  findActiveAnchor: () => findActiveAnchor,
339
360
  findNode: () => findNode,
340
- flattenTree: () => flattenTree,
361
+ flattenSelectOptions: () => flattenSelectOptions,
341
362
  focusElement: () => focusElement,
342
363
  focusFirst: () => focusFirst,
364
+ focusFirstChildItem: () => focusFirstChildItem,
365
+ focusMenuEdge: () => focusMenuEdge,
343
366
  focusRingClasses: () => focusRingClasses,
344
367
  focusRingInsetClasses: () => focusRingInsetClasses,
345
368
  formatActivityTime: () => formatActivityTime,
@@ -372,10 +395,13 @@ __export(index_exports, {
372
395
  getAnchorLinkListClasses: () => getAnchorLinkListClasses,
373
396
  getAnchorTargetElement: () => getAnchorTargetElement,
374
397
  getAnchorWrapperClasses: () => getAnchorWrapperClasses,
398
+ getAreaGradientPrefix: () => getAreaGradientPrefix,
375
399
  getArrowStyles: () => getArrowStyles,
376
400
  getAutoExpandKeys: () => getAutoExpandKeys,
377
401
  getBadgeVariantClasses: () => getBadgeVariantClasses,
402
+ getBarGradientPrefix: () => getBarGradientPrefix,
378
403
  getBarGrowAnimationStyle: () => getBarGrowAnimationStyle,
404
+ getBarValueLabelY: () => getBarValueLabelY,
379
405
  getBreadcrumbItemClasses: () => getBreadcrumbItemClasses,
380
406
  getBreadcrumbLinkClasses: () => getBreadcrumbLinkClasses,
381
407
  getBreadcrumbSeparatorClasses: () => getBreadcrumbSeparatorClasses,
@@ -398,6 +424,7 @@ __export(index_exports, {
398
424
  getCheckboxLabelClasses: () => getCheckboxLabelClasses,
399
425
  getCheckedKeysByStrategy: () => getCheckedKeysByStrategy,
400
426
  getCircleSize: () => getCircleSize,
427
+ getColMergedStyleVars: () => getColMergedStyleVars,
401
428
  getColOrderStyleVars: () => getColOrderStyleVars,
402
429
  getColStyleVars: () => getColStyleVars,
403
430
  getCollapseContainerClasses: () => getCollapseContainerClasses,
@@ -407,6 +434,7 @@ __export(index_exports, {
407
434
  getContainerClasses: () => getContainerClasses,
408
435
  getContainerHeight: () => getContainerHeight,
409
436
  getContainerScrollTop: () => getContainerScrollTop,
437
+ getCropperHandleClasses: () => getCropperHandleClasses,
410
438
  getCurrentTime: () => getCurrentTime,
411
439
  getDatePickerDayCellClasses: () => getDatePickerDayCellClasses,
412
440
  getDatePickerIconButtonClasses: () => getDatePickerIconButtonClasses,
@@ -420,9 +448,8 @@ __export(index_exports, {
420
448
  getDescriptionsLabelClasses: () => getDescriptionsLabelClasses,
421
449
  getDescriptionsTableClasses: () => getDescriptionsTableClasses,
422
450
  getDescriptionsVerticalItemClasses: () => getDescriptionsVerticalItemClasses,
423
- getDividerLineStyleClasses: () => getDividerLineStyleClasses,
424
- getDividerOrientationClasses: () => getDividerOrientationClasses,
425
- getDividerSpacingClasses: () => getDividerSpacingClasses,
451
+ getDividerClasses: () => getDividerClasses,
452
+ getDividerStyle: () => getDividerStyle,
426
453
  getDragAreaClasses: () => getDragAreaClasses,
427
454
  getDrawerBodyClasses: () => getDrawerBodyClasses,
428
455
  getDrawerCloseButtonClasses: () => getDrawerCloseButtonClasses,
@@ -432,10 +459,10 @@ __export(index_exports, {
432
459
  getDrawerMaskClasses: () => getDrawerMaskClasses,
433
460
  getDrawerPanelClasses: () => getDrawerPanelClasses,
434
461
  getDrawerTitleClasses: () => getDrawerTitleClasses,
462
+ getDropdownChevronClasses: () => getDropdownChevronClasses,
435
463
  getDropdownContainerClasses: () => getDropdownContainerClasses,
436
464
  getDropdownItemClasses: () => getDropdownItemClasses,
437
465
  getDropdownMenuClasses: () => getDropdownMenuClasses,
438
- getDropdownMenuWrapperClasses: () => getDropdownMenuWrapperClasses,
439
466
  getDropdownTriggerClasses: () => getDropdownTriggerClasses,
440
467
  getElementOffsetTop: () => getElementOffsetTop,
441
468
  getErrorFields: () => getErrorFields,
@@ -447,14 +474,16 @@ __export(index_exports, {
447
474
  getFocusTrapNavigation: () => getFocusTrapNavigation,
448
475
  getFocusableElements: () => getFocusableElements,
449
476
  getFormItemAsteriskClasses: () => getFormItemAsteriskClasses,
450
- getFormItemAsteriskStyle: () => getFormItemAsteriskStyle,
451
477
  getFormItemClasses: () => getFormItemClasses,
452
478
  getFormItemContentClasses: () => getFormItemContentClasses,
453
479
  getFormItemErrorClasses: () => getFormItemErrorClasses,
454
480
  getFormItemFieldClasses: () => getFormItemFieldClasses,
455
481
  getFormItemLabelClasses: () => getFormItemLabelClasses,
482
+ getFormWizardLabels: () => getFormWizardLabels,
456
483
  getGridColumnClasses: () => getGridColumnClasses,
457
484
  getGutterStyles: () => getGutterStyles,
485
+ getImageImgClasses: () => getImageImgClasses,
486
+ getInitialCropRect: () => getInitialCropRect,
458
487
  getInitials: () => getInitials,
459
488
  getInputAffixClasses: () => getInputAffixClasses,
460
489
  getInputClasses: () => getInputClasses,
@@ -462,6 +491,7 @@ __export(index_exports, {
462
491
  getInputWrapperClasses: () => getInputWrapperClasses,
463
492
  getJustifyClasses: () => getJustifyClasses,
464
493
  getLeafKeys: () => getLeafKeys,
494
+ getLineGradientPrefix: () => getLineGradientPrefix,
465
495
  getLinkVariantClasses: () => getLinkVariantClasses,
466
496
  getListClasses: () => getListClasses,
467
497
  getListHeaderFooterClasses: () => getListHeaderFooterClasses,
@@ -473,6 +503,7 @@ __export(index_exports, {
473
503
  getLoadingDotsWrapperClasses: () => getLoadingDotsWrapperClasses,
474
504
  getLoadingOverlaySpinnerClasses: () => getLoadingOverlaySpinnerClasses,
475
505
  getLoadingTextClasses: () => getLoadingTextClasses,
506
+ getMenuButtons: () => getMenuButtons,
476
507
  getMenuClasses: () => getMenuClasses,
477
508
  getMenuItemClasses: () => getMenuItemClasses,
478
509
  getMenuItemIndent: () => getMenuItemIndent,
@@ -524,10 +555,12 @@ __export(index_exports, {
524
555
  getPopoverTitleClasses: () => getPopoverTitleClasses,
525
556
  getPopoverTriggerClasses: () => getPopoverTriggerClasses,
526
557
  getPrevSlideIndex: () => getPrevSlideIndex,
558
+ getPreviewNavState: () => getPreviewNavState,
527
559
  getProgressTextColorClasses: () => getProgressTextColorClasses,
528
560
  getProgressVariantClasses: () => getProgressVariantClasses,
529
561
  getQuickJumperInputClasses: () => getQuickJumperInputClasses,
530
562
  getRadarAngles: () => getRadarAngles,
563
+ getRadarLabelAlign: () => getRadarLabelAlign,
531
564
  getRadarPoints: () => getRadarPoints,
532
565
  getRadioColorClasses: () => getRadioColorClasses,
533
566
  getRadioDotClasses: () => getRadioDotClasses,
@@ -535,6 +568,10 @@ __export(index_exports, {
535
568
  getRadioLabelClasses: () => getRadioLabelClasses,
536
569
  getRadioVisualClasses: () => getRadioVisualClasses,
537
570
  getRowKey: () => getRowKey,
571
+ getScatterGradientPrefix: () => getScatterGradientPrefix,
572
+ getScatterHoverShadow: () => getScatterHoverShadow,
573
+ getScatterHoverSize: () => getScatterHoverSize,
574
+ getScatterPointPath: () => getScatterPointPath,
538
575
  getScrollTop: () => getScrollTop,
539
576
  getScrollTransform: () => getScrollTransform,
540
577
  getSecureRel: () => getSecureRel,
@@ -551,15 +588,15 @@ __export(index_exports, {
551
588
  getSimplePaginationPageIndicatorClasses: () => getSimplePaginationPageIndicatorClasses,
552
589
  getSimplePaginationSelectClasses: () => getSimplePaginationSelectClasses,
553
590
  getSimplePaginationTotalClasses: () => getSimplePaginationTotalClasses,
591
+ getSizeTextClasses: () => getSizeTextClasses,
554
592
  getSkeletonClasses: () => getSkeletonClasses,
555
593
  getSkeletonDimensions: () => getSkeletonDimensions,
556
594
  getSliderThumbClasses: () => getSliderThumbClasses,
557
595
  getSliderTooltipClasses: () => getSliderTooltipClasses,
558
596
  getSliderTrackClasses: () => getSliderTrackClasses,
559
597
  getSortIconClasses: () => getSortIconClasses,
560
- getSpaceAlignClass: () => getSpaceAlignClass,
561
- getSpaceDirectionClass: () => getSpaceDirectionClass,
562
- getSpaceGapSize: () => getSpaceGapSize,
598
+ getSpaceClasses: () => getSpaceClasses,
599
+ getSpaceStyle: () => getSpaceStyle,
563
600
  getSpanClasses: () => getSpanClasses,
564
601
  getSpinnerSVG: () => getSpinnerSVG,
565
602
  getStatusVariant: () => getStatusVariant,
@@ -586,6 +623,7 @@ __export(index_exports, {
586
623
  getTableWrapperClasses: () => getTableWrapperClasses,
587
624
  getTabsContainerClasses: () => getTabsContainerClasses,
588
625
  getTagVariantClasses: () => getTagVariantClasses,
626
+ getTextClasses: () => getTextClasses,
589
627
  getThemeColor: () => getThemeColor,
590
628
  getTimePeriodLabels: () => getTimePeriodLabels,
591
629
  getTimePickerIconButtonClasses: () => getTimePickerIconButtonClasses,
@@ -606,6 +644,7 @@ __export(index_exports, {
606
644
  getTooltipTriggerClasses: () => getTooltipTriggerClasses,
607
645
  getTotalPages: () => getTotalPages,
608
646
  getTotalTextClasses: () => getTotalTextClasses,
647
+ getTouchDistance: () => getTouchDistance,
609
648
  getTransformOrigin: () => getTransformOrigin,
610
649
  getTreeNodeClasses: () => getTreeNodeClasses,
611
650
  getTreeNodeExpandIconClasses: () => getTreeNodeExpandIconClasses,
@@ -625,7 +664,31 @@ __export(index_exports, {
625
664
  icon24ViewBox: () => icon24ViewBox,
626
665
  iconSizeClasses: () => iconSizeClasses,
627
666
  iconSvgBaseClasses: () => iconSvgBaseClasses,
667
+ iconSvgDefaultStrokeLinecap: () => iconSvgDefaultStrokeLinecap,
668
+ iconSvgDefaultStrokeLinejoin: () => iconSvgDefaultStrokeLinejoin,
669
+ iconSvgDefaultStrokeWidth: () => iconSvgDefaultStrokeWidth,
628
670
  iconWrapperClasses: () => iconWrapperClasses,
671
+ imageBaseClasses: () => imageBaseClasses,
672
+ imageCropperContainerClasses: () => imageCropperContainerClasses,
673
+ imageCropperDragAreaClasses: () => imageCropperDragAreaClasses,
674
+ imageCropperGuideClasses: () => imageCropperGuideClasses,
675
+ imageCropperImgClasses: () => imageCropperImgClasses,
676
+ imageCropperMaskClasses: () => imageCropperMaskClasses,
677
+ imageCropperSelectionClasses: () => imageCropperSelectionClasses,
678
+ imageErrorClasses: () => imageErrorClasses,
679
+ imageErrorIconPath: () => imageErrorIconPath,
680
+ imageLoadingClasses: () => imageLoadingClasses,
681
+ imagePreviewCloseBtnClasses: () => imagePreviewCloseBtnClasses,
682
+ imagePreviewCounterClasses: () => imagePreviewCounterClasses,
683
+ imagePreviewCursorClass: () => imagePreviewCursorClass,
684
+ imagePreviewImgClasses: () => imagePreviewImgClasses,
685
+ imagePreviewMaskClasses: () => imagePreviewMaskClasses,
686
+ imagePreviewNavBtnClasses: () => imagePreviewNavBtnClasses,
687
+ imagePreviewToolbarBtnClasses: () => imagePreviewToolbarBtnClasses,
688
+ imagePreviewToolbarClasses: () => imagePreviewToolbarClasses,
689
+ imagePreviewWrapperClasses: () => imagePreviewWrapperClasses,
690
+ initRovingTabIndex: () => initRovingTabIndex,
691
+ injectDropdownStyles: () => injectDropdownStyles,
629
692
  injectLoadingAnimationStyles: () => injectLoadingAnimationStyles,
630
693
  injectShakeStyle: () => injectShakeStyle,
631
694
  injectSvgAnimationStyles: () => injectSvgAnimationStyles,
@@ -656,6 +719,7 @@ __export(index_exports, {
656
719
  layoutHeaderClasses: () => layoutHeaderClasses,
657
720
  layoutRootClasses: () => layoutRootClasses,
658
721
  layoutSidebarClasses: () => layoutSidebarClasses,
722
+ linePointTransitionClasses: () => linePointTransitionClasses,
659
723
  linkBaseClasses: () => linkBaseClasses,
660
724
  linkDisabledClasses: () => linkDisabledClasses,
661
725
  linkSizeClasses: () => linkSizeClasses,
@@ -677,7 +741,6 @@ __export(index_exports, {
677
741
  listItemSizeClasses: () => listItemSizeClasses,
678
742
  listItemTitleClasses: () => listItemTitleClasses,
679
743
  listLoadingOverlayClasses: () => listLoadingOverlayClasses,
680
- listPaginationContainerClasses: () => listPaginationContainerClasses,
681
744
  listSizeClasses: () => listSizeClasses,
682
745
  listWrapperClasses: () => listWrapperClasses,
683
746
  loadingBarBaseClasses: () => loadingBarBaseClasses,
@@ -715,12 +778,8 @@ __export(index_exports, {
715
778
  messageCloseIconPath: () => messageCloseIconPath,
716
779
  messageContainerBaseClasses: () => messageContainerBaseClasses,
717
780
  messageContentClasses: () => messageContentClasses,
718
- messageEnterActiveClasses: () => messageEnterActiveClasses,
719
- messageEnterClasses: () => messageEnterClasses,
720
781
  messageIconClasses: () => messageIconClasses,
721
782
  messageIconPaths: () => messageIconPaths,
722
- messageLeaveActiveClasses: () => messageLeaveActiveClasses,
723
- messageLeaveClasses: () => messageLeaveClasses,
724
783
  messageLoadingSpinnerClasses: () => messageLoadingSpinnerClasses,
725
784
  messagePositionClasses: () => messagePositionClasses,
726
785
  modalBodyClasses: () => modalBodyClasses,
@@ -732,9 +791,13 @@ __export(index_exports, {
732
791
  modalSizeClasses: () => modalSizeClasses,
733
792
  modalTitleClasses: () => modalTitleClasses,
734
793
  modalWrapperClasses: () => modalWrapperClasses,
794
+ moveCropRect: () => moveCropRect,
795
+ moveFocusInMenu: () => moveFocusInMenu,
796
+ nextIconPath: () => nextIconPath,
735
797
  normalizeActiveKeys: () => normalizeActiveKeys,
736
798
  normalizeChartPadding: () => normalizeChartPadding,
737
799
  normalizeDate: () => normalizeDate,
800
+ normalizeStringOption: () => normalizeStringOption,
738
801
  normalizeSvgAttrs: () => normalizeSvgAttrs,
739
802
  notificationBaseClasses: () => notificationBaseClasses,
740
803
  notificationCloseButtonClasses: () => notificationCloseButtonClasses,
@@ -749,6 +812,7 @@ __export(index_exports, {
749
812
  notificationTitleClasses: () => notificationTitleClasses,
750
813
  paginateData: () => paginateData,
751
814
  parseDate: () => parseDate,
815
+ parseInputValue: () => parseInputValue,
752
816
  parseTime: () => parseTime,
753
817
  parseWidthToPx: () => parseWidthToPx,
754
818
  polarToCartesian: () => polarToCartesian,
@@ -762,6 +826,8 @@ __export(index_exports, {
762
826
  popconfirmSuccessIconPath: () => popconfirmSuccessIconPath,
763
827
  popconfirmWarningIconPath: () => popconfirmWarningIconPath,
764
828
  prepareUploadFiles: () => prepareUploadFiles,
829
+ prevIconPath: () => prevIconPath,
830
+ previewCloseIconPath: () => previewCloseIconPath,
765
831
  progressCircleBaseClasses: () => progressCircleBaseClasses,
766
832
  progressCircleSizeClasses: () => progressCircleSizeClasses,
767
833
  progressCircleTextClasses: () => progressCircleTextClasses,
@@ -784,8 +850,19 @@ __export(index_exports, {
784
850
  radioSizeClasses: () => radioSizeClasses,
785
851
  radioVisualBaseClasses: () => radioVisualBaseClasses,
786
852
  replaceKeys: () => replaceKeys,
853
+ resetAreaGradientCounter: () => resetAreaGradientCounter,
854
+ resetBarGradientCounter: () => resetBarGradientCounter,
855
+ resetIconPath: () => resetIconPath,
856
+ resetLineGradientCounter: () => resetLineGradientCounter,
857
+ resetScatterGradientCounter: () => resetScatterGradientCounter,
858
+ resizeCropRect: () => resizeCropRect,
859
+ resolveChartPalette: () => resolveChartPalette,
860
+ resolveChartTooltipContent: () => resolveChartTooltipContent,
787
861
  resolveLocaleText: () => resolveLocaleText,
862
+ resolveMultiSeriesTooltipContent: () => resolveMultiSeriesTooltipContent,
863
+ resolveSeriesData: () => resolveSeriesData,
788
864
  restoreFocus: () => restoreFocus,
865
+ scatterPointTransitionClasses: () => scatterPointTransitionClasses,
789
866
  scrollToAnchor: () => scrollToAnchor,
790
867
  scrollToTop: () => scrollToTop,
791
868
  selectBaseClasses: () => selectBaseClasses,
@@ -825,12 +902,7 @@ __export(index_exports, {
825
902
  statusInfoIconPath: () => statusInfoIconPath,
826
903
  statusSuccessIconPath: () => statusSuccessIconPath,
827
904
  statusWarningIconPath: () => statusWarningIconPath,
828
- stepFinishIconPathD: () => stepFinishIconPathD,
829
- stepFinishIconPathStrokeLinecap: () => stepFinishIconPathStrokeLinecap,
830
- stepFinishIconPathStrokeLinejoin: () => stepFinishIconPathStrokeLinejoin,
831
- stepFinishIconPathStrokeWidth: () => stepFinishIconPathStrokeWidth,
832
- stepFinishIconSvgClasses: () => stepFinishIconSvgClasses,
833
- stepFinishIconViewBox: () => stepFinishIconViewBox,
905
+ stepFinishChar: () => stepFinishChar,
834
906
  submenuContentHorizontalClasses: () => submenuContentHorizontalClasses,
835
907
  submenuContentInlineClasses: () => submenuContentInlineClasses,
836
908
  submenuContentPopupClasses: () => submenuContentPopupClasses,
@@ -857,6 +929,7 @@ __export(index_exports, {
857
929
  tabItemLineClasses: () => tabItemLineClasses,
858
930
  tabItemSizeClasses: () => tabItemSizeClasses,
859
931
  tabNavBaseClasses: () => tabNavBaseClasses,
932
+ tabNavLineBorderClasses: () => tabNavLineBorderClasses,
860
933
  tabNavListBaseClasses: () => tabNavListBaseClasses,
861
934
  tabNavListCenteredClasses: () => tabNavListCenteredClasses,
862
935
  tabNavListPositionClasses: () => tabNavListPositionClasses,
@@ -904,6 +977,7 @@ __export(index_exports, {
904
977
  to12HourFormat: () => to12HourFormat,
905
978
  to24HourFormat: () => to24HourFormat,
906
979
  toActivityTimelineItems: () => toActivityTimelineItems,
980
+ toCSSSize: () => toCSSSize,
907
981
  toggleKey: () => toggleKey,
908
982
  togglePanelKey: () => togglePanelKey,
909
983
  treeBaseClasses: () => treeBaseClasses,
@@ -922,6 +996,7 @@ __export(index_exports, {
922
996
  treeNodeLabelClasses: () => treeNodeLabelClasses,
923
997
  treeNodeSelectedClasses: () => treeNodeSelectedClasses,
924
998
  treeNodeWrapperClasses: () => treeNodeWrapperClasses,
999
+ uploadPlusIconPath: () => uploadPlusIconPath,
925
1000
  uploadStatusIconColorClasses: () => uploadStatusIconColorClasses,
926
1001
  uploadStatusIconSizeClasses: () => uploadStatusIconSizeClasses,
927
1002
  validateCurrentPage: () => validateCurrentPage,
@@ -930,7 +1005,9 @@ __export(index_exports, {
930
1005
  validateFileType: () => validateFileType,
931
1006
  validateForm: () => validateForm,
932
1007
  validateRule: () => validateRule,
933
- version: () => version
1008
+ version: () => version,
1009
+ zoomInIconPath: () => zoomInIconPath,
1010
+ zoomOutIconPath: () => zoomOutIconPath
934
1011
  });
935
1012
  module.exports = __toCommonJS(index_exports);
936
1013
 
@@ -1247,7 +1324,7 @@ function sliderGetKeyboardValue(key, currentValue, min, max, step = 1, largeStep
1247
1324
  // src/utils/back-top-utils.ts
1248
1325
  function getScrollTop(target) {
1249
1326
  if (target === window) {
1250
- return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
1327
+ return window.scrollY || 0;
1251
1328
  }
1252
1329
  return target.scrollTop;
1253
1330
  }
@@ -1280,13 +1357,21 @@ function scrollToTop(target, duration, callback) {
1280
1357
  };
1281
1358
  requestAnimationFrame(animateScroll);
1282
1359
  }
1283
- var backTopBaseClasses = "z-50 flex h-10 w-10 cursor-pointer items-center justify-center rounded-full bg-[var(--tiger-primary,#2563eb)] text-white shadow-lg transition-all duration-300 hover:bg-[var(--tiger-primary-hover,#1d4ed8)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2";
1284
- var backTopButtonClasses = `fixed bottom-8 right-8 ${backTopBaseClasses}`;
1285
- var backTopContainerClasses = `sticky bottom-4 ml-auto mr-4 ${backTopBaseClasses}`;
1360
+ 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";
1361
+ var backTopButtonClasses = `fixed bottom-8 right-8 ${baseClasses}`;
1362
+ var backTopContainerClasses = `sticky bottom-4 ml-auto mr-4 ${baseClasses}`;
1286
1363
  var backTopHiddenClasses = "opacity-0 pointer-events-none translate-y-4";
1287
1364
  var backTopVisibleClasses = "opacity-100 translate-y-0";
1288
1365
  var backTopIconPath = "M12 19V5M12 5l-7 7M12 5l7 7";
1289
1366
 
1367
+ // src/utils/imperative-api.ts
1368
+ function normalizeStringOption(options, key) {
1369
+ if (typeof options === "string") {
1370
+ return { [key]: options };
1371
+ }
1372
+ return options;
1373
+ }
1374
+
1290
1375
  // src/utils/common-icons.ts
1291
1376
  var closeIconViewBox = "0 0 24 24";
1292
1377
  var closeIconPathD = "M6 18L18 6M6 6l12 12";
@@ -1506,7 +1591,8 @@ function mergeTigerLocale(base, override) {
1506
1591
  modal: { ...base?.modal, ...override?.modal },
1507
1592
  drawer: { ...base?.drawer, ...override?.drawer },
1508
1593
  upload: { ...base?.upload, ...override?.upload },
1509
- pagination: { ...base?.pagination, ...override?.pagination }
1594
+ pagination: { ...base?.pagination, ...override?.pagination },
1595
+ formWizard: { ...base?.formWizard, ...override?.formWizard }
1510
1596
  };
1511
1597
  }
1512
1598
  var DEFAULT_PAGINATION_LABELS = {
@@ -1527,6 +1613,23 @@ var ZH_CN_PAGINATION_LABELS = {
1527
1613
  nextPageAriaLabel: "\u4E0B\u4E00\u9875",
1528
1614
  pageAriaLabel: "\u7B2C {page} \u9875"
1529
1615
  };
1616
+ var DEFAULT_FORM_WIZARD_LABELS = {
1617
+ prevText: "Previous",
1618
+ nextText: "Next",
1619
+ finishText: "Finish"
1620
+ };
1621
+ var ZH_CN_FORM_WIZARD_LABELS = {
1622
+ prevText: "\u4E0A\u4E00\u6B65",
1623
+ nextText: "\u4E0B\u4E00\u6B65",
1624
+ finishText: "\u5B8C\u6210"
1625
+ };
1626
+ function getFormWizardLabels(locale) {
1627
+ return {
1628
+ prevText: locale?.formWizard?.prevText ?? DEFAULT_FORM_WIZARD_LABELS.prevText,
1629
+ nextText: locale?.formWizard?.nextText ?? DEFAULT_FORM_WIZARD_LABELS.nextText,
1630
+ finishText: locale?.formWizard?.finishText ?? DEFAULT_FORM_WIZARD_LABELS.finishText
1631
+ };
1632
+ }
1530
1633
  function getPaginationLabels(locale) {
1531
1634
  return {
1532
1635
  totalText: locale?.pagination?.totalText ?? DEFAULT_PAGINATION_LABELS.totalText,
@@ -1609,24 +1712,18 @@ function pluralizeEn(value, singular) {
1609
1712
  }
1610
1713
  function getTimePickerOptionAriaLabel(value, unit, locale, labelOverrides) {
1611
1714
  const labels = getTimePickerLabels(locale, labelOverrides);
1612
- if (isZhLocale(locale)) {
1613
- const suffix = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1614
- return `${value}${suffix}`;
1615
- }
1715
+ const unitLabel = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1716
+ if (isZhLocale(locale)) return `${value}${unitLabel}`;
1616
1717
  const lc = (locale ?? "").toLowerCase();
1617
- const useEnglishPlural = lc.length === 0 ? labelOverrides == null : lc.startsWith("en");
1618
- if (useEnglishPlural) {
1619
- if (unit === "hour") return `${value} ${pluralizeEn(value, "hour")}`;
1620
- if (unit === "minute") return `${value} ${pluralizeEn(value, "minute")}`;
1621
- return `${value} ${pluralizeEn(value, "second")}`;
1718
+ if (lc.startsWith("en") || !lc && !labelOverrides) {
1719
+ return `${value} ${pluralizeEn(value, unit)}`;
1622
1720
  }
1623
- const unitLabel = unit === "hour" ? labels.hour : unit === "minute" ? labels.minute : labels.second;
1624
1721
  return `${value} ${unitLabel}`;
1625
1722
  }
1626
1723
  var timePickerBaseClasses = "relative inline-block w-full max-w-xs";
1627
1724
  var timePickerInputWrapperClasses = "relative flex items-center";
1628
1725
  function getTimePickerInputClasses(size, disabled) {
1629
- const baseClasses = [
1726
+ const baseClasses2 = [
1630
1727
  "w-full rounded-md border border-gray-300",
1631
1728
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:border-transparent",
1632
1729
  "transition-colors duration-200",
@@ -1639,10 +1736,10 @@ function getTimePickerInputClasses(size, disabled) {
1639
1736
  lg: "px-4 py-3 text-lg"
1640
1737
  };
1641
1738
  const stateClasses = disabled ? "bg-gray-100 text-gray-400 cursor-not-allowed" : "bg-white text-gray-900 cursor-pointer hover:border-gray-400";
1642
- return [...baseClasses, sizeClasses[size], stateClasses].join(" ");
1739
+ return [...baseClasses2, sizeClasses[size], stateClasses].join(" ");
1643
1740
  }
1644
1741
  function getTimePickerIconButtonClasses(size) {
1645
- const baseClasses = [
1742
+ const baseClasses2 = [
1646
1743
  "absolute right-1 flex items-center justify-center",
1647
1744
  "text-gray-400 hover:text-gray-600",
1648
1745
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
@@ -1654,7 +1751,7 @@ function getTimePickerIconButtonClasses(size) {
1654
1751
  md: "w-8 h-8",
1655
1752
  lg: "w-10 h-10"
1656
1753
  };
1657
- return [...baseClasses, sizeClasses[size]].join(" ");
1754
+ return [...baseClasses2, sizeClasses[size]].join(" ");
1658
1755
  }
1659
1756
  var timePickerClearButtonClasses = [
1660
1757
  "absolute right-10 flex items-center justify-center",
@@ -1672,18 +1769,18 @@ var timePickerRangeHeaderClasses = [
1672
1769
  "flex items-center gap-2"
1673
1770
  ].join(" ");
1674
1771
  function getTimePickerRangeTabButtonClasses(isActive) {
1675
- const baseClasses = [
1772
+ const baseClasses2 = [
1676
1773
  "px-3 py-1 text-xs font-medium rounded",
1677
1774
  "border border-gray-300",
1678
1775
  "focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-1",
1679
1776
  "transition-colors duration-150"
1680
1777
  ];
1681
1778
  if (isActive) {
1682
- return [...baseClasses, "bg-[var(--tiger-primary,#2563eb)] text-white border-transparent"].join(
1779
+ return [...baseClasses2, "bg-[var(--tiger-primary,#2563eb)] text-white border-transparent"].join(
1683
1780
  " "
1684
1781
  );
1685
1782
  }
1686
- return [...baseClasses, "bg-white hover:bg-gray-50 text-gray-700"].join(" ");
1783
+ return [...baseClasses2, "bg-white hover:bg-gray-50 text-gray-700"].join(" ");
1687
1784
  }
1688
1785
  var timePickerColumnClasses = "flex flex-col overflow-hidden shrink-0 w-16";
1689
1786
  var timePickerColumnHeaderClasses = [
@@ -1694,27 +1791,27 @@ var timePickerColumnListClasses = [
1694
1791
  "overflow-y-auto max-h-48 scrollbar-thin scrollbar-thumb-gray-300 scrollbar-track-gray-100"
1695
1792
  ].join(" ");
1696
1793
  function getTimePickerItemClasses(isSelected, isDisabled) {
1697
- const baseClasses = [
1794
+ const baseClasses2 = [
1698
1795
  "w-full px-3 py-1.5 text-sm text-center",
1699
1796
  "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
1700
1797
  "transition-colors duration-150",
1701
1798
  "cursor-pointer"
1702
1799
  ];
1703
1800
  if (isDisabled) {
1704
- return [...baseClasses, "text-gray-300 cursor-not-allowed hover:bg-transparent"].join(" ");
1801
+ return [...baseClasses2, "text-gray-300 cursor-not-allowed hover:bg-transparent"].join(" ");
1705
1802
  }
1706
1803
  if (isSelected) {
1707
1804
  return [
1708
- ...baseClasses,
1805
+ ...baseClasses2,
1709
1806
  "bg-[var(--tiger-primary,#2563eb)] text-white",
1710
1807
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
1711
1808
  "font-medium"
1712
1809
  ].join(" ");
1713
1810
  }
1714
- return [...baseClasses, "text-gray-700"].join(" ");
1811
+ return [...baseClasses2, "text-gray-700"].join(" ");
1715
1812
  }
1716
1813
  function getTimePickerPeriodButtonClasses(isSelected) {
1717
- const baseClasses = [
1814
+ const baseClasses2 = [
1718
1815
  "w-full px-3 py-2 text-sm font-medium text-center",
1719
1816
  "hover:bg-gray-100 focus:outline-none focus:bg-gray-100",
1720
1817
  "transition-colors duration-150",
@@ -1722,12 +1819,12 @@ function getTimePickerPeriodButtonClasses(isSelected) {
1722
1819
  ];
1723
1820
  if (isSelected) {
1724
1821
  return [
1725
- ...baseClasses,
1822
+ ...baseClasses2,
1726
1823
  "bg-[var(--tiger-primary,#2563eb)] text-white",
1727
1824
  "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]"
1728
1825
  ].join(" ");
1729
1826
  }
1730
- return [...baseClasses, "text-gray-700"].join(" ");
1827
+ return [...baseClasses2, "text-gray-700"].join(" ");
1731
1828
  }
1732
1829
  var timePickerFooterClasses = [
1733
1830
  "px-3 py-2 border-t border-gray-200",
@@ -1865,35 +1962,20 @@ var INPUT_SIZE_CLASSES = {
1865
1962
  md: "py-2 text-base",
1866
1963
  lg: "py-3 text-lg"
1867
1964
  };
1868
- var PADDING_LEFT = {
1869
- sm: "pl-2",
1870
- md: "pl-3",
1871
- lg: "pl-4"
1872
- };
1873
- var PADDING_RIGHT = {
1874
- sm: "pr-2",
1875
- md: "pr-3",
1876
- lg: "pr-4"
1965
+ var INPUT_PADDING = {
1966
+ sm: { left: "pl-2", right: "pr-2", prefixLeft: "pl-8", suffixRight: "pr-8" },
1967
+ md: { left: "pl-3", right: "pr-3", prefixLeft: "pl-10", suffixRight: "pr-10" },
1968
+ lg: { left: "pl-4", right: "pr-4", prefixLeft: "pl-12", suffixRight: "pr-12" }
1877
1969
  };
1878
- var PREFIX_PADDING = {
1879
- sm: "pl-8",
1880
- md: "pl-10",
1881
- lg: "pl-12"
1882
- };
1883
- var SUFFIX_PADDING = {
1884
- sm: "pr-8",
1885
- md: "pr-10",
1886
- lg: "pr-12"
1887
- };
1888
- function getInputClasses(options = "md") {
1889
- const opts = typeof options === "string" ? { size: options, status: "default" } : { size: "md", status: "default", ...options };
1890
- const { size = "md", status = "default", hasPrefix, hasSuffix } = opts;
1970
+ function getInputClasses(options = {}) {
1971
+ const { size = "md", status = "default", hasPrefix, hasSuffix } = options;
1972
+ const pad = INPUT_PADDING[size];
1891
1973
  return classNames(
1892
1974
  ...BASE_INPUT_CLASSES,
1893
1975
  INPUT_SIZE_CLASSES[size],
1894
1976
  STATUS_CLASSES[status],
1895
- hasPrefix ? PREFIX_PADDING[size] : PADDING_LEFT[size],
1896
- hasSuffix ? SUFFIX_PADDING[size] : PADDING_RIGHT[size]
1977
+ hasPrefix ? pad.prefixLeft : pad.left,
1978
+ hasSuffix ? pad.suffixRight : pad.right
1897
1979
  );
1898
1980
  }
1899
1981
  function getInputWrapperClasses() {
@@ -1910,17 +1992,18 @@ function getInputAffixClasses(position, size = "md") {
1910
1992
  return classNames(base, posClass, widthClass);
1911
1993
  }
1912
1994
  function getInputErrorClasses(size = "md") {
1913
- const padding = {
1914
- sm: "pr-2",
1915
- md: "pr-3",
1916
- lg: "pr-4"
1917
- }[size];
1918
1995
  return classNames(
1919
1996
  "absolute inset-y-0 right-0 flex items-center pointer-events-none",
1920
- padding,
1997
+ INPUT_PADDING[size].right,
1921
1998
  "text-red-500 text-sm"
1922
1999
  );
1923
2000
  }
2001
+ function parseInputValue(target, type) {
2002
+ if (type === "number") {
2003
+ return Number.isNaN(target.valueAsNumber) ? target.value : target.valueAsNumber;
2004
+ }
2005
+ return target.value;
2006
+ }
1924
2007
 
1925
2008
  // src/utils/form-item-styles.ts
1926
2009
  var FORM_ITEM_SPACING = {
@@ -1943,6 +2026,11 @@ var ERROR_TEXT_SIZE = {
1943
2026
  md: "text-xs",
1944
2027
  lg: "text-sm"
1945
2028
  };
2029
+ var ERROR_MIN_HEIGHT = {
2030
+ sm: "min-h-[1rem]",
2031
+ md: "min-h-[1.25rem]",
2032
+ lg: "min-h-[1.5rem]"
2033
+ };
1946
2034
  function getFormItemClasses(options = {}) {
1947
2035
  const { size = "md", labelPosition = "right", hasError = false, disabled = false } = options;
1948
2036
  const layoutClasses = labelPosition === "top" ? "flex flex-col gap-2" : "flex items-start gap-4";
@@ -1959,7 +2047,7 @@ function getFormItemClasses(options = {}) {
1959
2047
  }
1960
2048
  function getFormItemLabelClasses(options = {}) {
1961
2049
  const { size = "md", labelPosition = "right", labelAlign = "right", isRequired = false } = options;
1962
- const alignClass = labelAlign === "right" ? "text-right" : labelAlign === "left" ? "text-left" : "text-left";
2050
+ const alignClass = labelAlign === "right" ? "text-right" : "text-left";
1963
2051
  const positionClasses = labelPosition === "top" ? "w-full" : "shrink-0";
1964
2052
  const paddingClass = labelPosition === "top" ? "" : LABEL_PADDING_TOP[size];
1965
2053
  return classNames(
@@ -1991,7 +2079,11 @@ function getFormItemErrorClasses(size = "md") {
1991
2079
  "tiger-form-item__error",
1992
2080
  "mt-1",
1993
2081
  ERROR_TEXT_SIZE[size],
1994
- "text-[var(--tiger-error,#ef4444)]"
2082
+ ERROR_MIN_HEIGHT[size],
2083
+ "text-[var(--tiger-error,#ef4444)]",
2084
+ "transition-opacity",
2085
+ "duration-150",
2086
+ "opacity-0"
1995
2087
  );
1996
2088
  }
1997
2089
  function getFormItemAsteriskClasses() {
@@ -1999,15 +2091,9 @@ function getFormItemAsteriskClasses() {
1999
2091
  "tiger-form-item__asterisk",
2000
2092
  "mr-1",
2001
2093
  "font-semibold",
2002
- "text-red-500",
2003
2094
  "text-[var(--tiger-error,#ef4444)]"
2004
2095
  );
2005
2096
  }
2006
- function getFormItemAsteriskStyle() {
2007
- return {
2008
- color: "var(--tiger-error,#ef4444)"
2009
- };
2010
- }
2011
2097
 
2012
2098
  // src/utils/select-utils.ts
2013
2099
  var selectBaseClasses = "relative inline-block w-full";
@@ -2018,7 +2104,6 @@ var SELECT_TRIGGER_BASE_CLASSES = [
2018
2104
  "justify-between",
2019
2105
  "gap-2",
2020
2106
  "px-3",
2021
- "py-2",
2022
2107
  "bg-[var(--tiger-select-trigger-bg,var(--tiger-surface,#ffffff))]",
2023
2108
  "border",
2024
2109
  "border-[var(--tiger-select-trigger-border,var(--tiger-border,#d1d5db))]",
@@ -2074,6 +2159,17 @@ function getSelectOptionClasses(isSelected, isDisabled, size) {
2074
2159
  function isOptionGroup(option) {
2075
2160
  return !!option && typeof option === "object" && "options" in option && Array.isArray(option.options);
2076
2161
  }
2162
+ function flattenSelectOptions(options) {
2163
+ const all = [];
2164
+ for (const item of options) {
2165
+ if (isOptionGroup(item)) {
2166
+ all.push(...item.options);
2167
+ } else {
2168
+ all.push(item);
2169
+ }
2170
+ }
2171
+ return all;
2172
+ }
2077
2173
  function filterOptions(options, query) {
2078
2174
  if (!query) {
2079
2175
  return options;
@@ -2365,20 +2461,9 @@ var getRadioLabelClasses = ({ size, disabled, colors }) => classNames(
2365
2461
 
2366
2462
  // src/utils/radio-group-utils.ts
2367
2463
  var radioGroupDefaultClasses = "space-y-2";
2368
- var getRadioGroupClasses = ({
2369
- className,
2370
- hasCustomClass
2371
- } = {}) => {
2372
- const effectiveHasCustomClass = hasCustomClass ?? !!className;
2373
- return classNames(className, !effectiveHasCustomClass && radioGroupDefaultClasses);
2374
- };
2464
+ var getRadioGroupClasses = ({ className } = {}) => classNames(className, !className && radioGroupDefaultClasses);
2375
2465
 
2376
2466
  // src/utils/date-utils.ts
2377
- function isValidDate(value) {
2378
- if (!value) return false;
2379
- const date = value instanceof Date ? value : new Date(value);
2380
- return !isNaN(date.getTime());
2381
- }
2382
2467
  function parseDate(value) {
2383
2468
  if (!value) return null;
2384
2469
  if (value instanceof Date) {
@@ -2388,7 +2473,7 @@ function parseDate(value) {
2388
2473
  return isNaN(parsed.getTime()) ? null : parsed;
2389
2474
  }
2390
2475
  function formatDate(date, format = "yyyy-MM-dd") {
2391
- if (!date || !isValidDate(date)) return "";
2476
+ if (!date || isNaN(date.getTime())) return "";
2392
2477
  const year = date.getFullYear();
2393
2478
  const month = String(date.getMonth() + 1).padStart(2, "0");
2394
2479
  const day = String(date.getDate()).padStart(2, "0");
@@ -2415,15 +2500,13 @@ function normalizeDate(date) {
2415
2500
  return normalized;
2416
2501
  }
2417
2502
  function isDateInRange(date, minDate, maxDate) {
2418
- if (!isValidDate(date)) return false;
2503
+ if (isNaN(date.getTime())) return false;
2419
2504
  const normalizedDate = normalizeDate(date);
2420
- if (minDate && isValidDate(minDate)) {
2421
- const normalizedMin = normalizeDate(minDate);
2422
- if (normalizedDate < normalizedMin) return false;
2505
+ if (minDate && !isNaN(minDate.getTime())) {
2506
+ if (normalizedDate < normalizeDate(minDate)) return false;
2423
2507
  }
2424
- if (maxDate && isValidDate(maxDate)) {
2425
- const normalizedMax = normalizeDate(maxDate);
2426
- if (normalizedDate > normalizedMax) return false;
2508
+ if (maxDate && !isNaN(maxDate.getTime())) {
2509
+ if (normalizedDate > normalizeDate(maxDate)) return false;
2427
2510
  }
2428
2511
  return true;
2429
2512
  }
@@ -2550,7 +2633,7 @@ function isToday(date) {
2550
2633
  var datePickerBaseClasses = "relative inline-block w-full";
2551
2634
  var datePickerInputWrapperClasses = "relative w-full";
2552
2635
  function getDatePickerInputClasses(size = "md", disabled = false) {
2553
- const baseClasses = [
2636
+ const baseClasses2 = [
2554
2637
  "w-full",
2555
2638
  "rounded-md",
2556
2639
  "border",
@@ -2572,10 +2655,10 @@ function getDatePickerInputClasses(size = "md", disabled = false) {
2572
2655
  lg: "px-4 py-3 text-lg"
2573
2656
  };
2574
2657
  const disabledClasses = disabled ? ["bg-gray-100", "cursor-not-allowed", "text-gray-500"] : ["cursor-pointer"];
2575
- return classNames(...baseClasses, sizeClasses[size], ...disabledClasses);
2658
+ return classNames(...baseClasses2, sizeClasses[size], ...disabledClasses);
2576
2659
  }
2577
2660
  function getDatePickerIconButtonClasses(size = "md") {
2578
- const baseClasses = [
2661
+ const baseClasses2 = [
2579
2662
  "absolute",
2580
2663
  "right-0",
2581
2664
  "top-0",
@@ -2592,7 +2675,7 @@ function getDatePickerIconButtonClasses(size = "md") {
2592
2675
  md: "px-3",
2593
2676
  lg: "px-4"
2594
2677
  };
2595
- return classNames(...baseClasses, sizeClasses[size]);
2678
+ return classNames(...baseClasses2, sizeClasses[size]);
2596
2679
  }
2597
2680
  var datePickerCalendarClasses = classNames(
2598
2681
  "absolute",
@@ -2633,33 +2716,22 @@ var datePickerDayNameClasses = classNames(
2633
2716
  "py-2"
2634
2717
  );
2635
2718
  function getDatePickerDayCellClasses(isCurrentMonth, isSelected, isToday2, isDisabled, isInRange = false, isRangeStart = false, isRangeEnd = false) {
2636
- const baseClasses = [
2637
- "w-10",
2638
- "h-10",
2639
- "flex",
2640
- "items-center",
2641
- "justify-center",
2642
- "rounded-md",
2643
- "text-sm",
2644
- "transition-colors"
2645
- ];
2646
- const interactionClasses = isDisabled ? ["cursor-not-allowed", "text-gray-300"] : ["cursor-pointer", "hover:bg-gray-100"];
2647
- const monthClasses = isCurrentMonth ? ["text-gray-900"] : ["text-gray-400"];
2648
- const stateClasses = [];
2649
- if (isInRange && !isDisabled && !isSelected) {
2650
- stateClasses.push("bg-[var(--tiger-outline-bg-hover,#eff6ff)]");
2719
+ const base = "w-10 h-10 flex items-center justify-center rounded-md text-sm transition-colors";
2720
+ if (isDisabled) {
2721
+ return classNames(base, "cursor-not-allowed text-gray-300");
2651
2722
  }
2652
2723
  if (isSelected || isRangeStart || isRangeEnd) {
2653
- stateClasses.push(
2654
- "bg-[var(--tiger-primary,#2563eb)]",
2655
- "text-white",
2656
- "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
2657
- "font-semibold"
2724
+ return classNames(
2725
+ base,
2726
+ "cursor-pointer",
2727
+ "bg-[var(--tiger-primary,#2563eb)] text-white",
2728
+ "hover:bg-[var(--tiger-primary-hover,#1d4ed8)] font-semibold"
2658
2729
  );
2659
- } else if (isToday2) {
2660
- stateClasses.push("border", "border-[var(--tiger-primary,#2563eb)]", "font-semibold");
2661
2730
  }
2662
- return classNames(...baseClasses, ...interactionClasses, ...monthClasses, ...stateClasses);
2731
+ const color = isCurrentMonth ? "text-gray-900" : "text-gray-400";
2732
+ const range = isInRange ? "bg-[var(--tiger-outline-bg-hover,#eff6ff)]" : "";
2733
+ const today = isToday2 ? "border border-[var(--tiger-primary,#2563eb)] font-semibold" : "";
2734
+ return classNames(base, "cursor-pointer hover:bg-gray-100", color, range, today);
2663
2735
  }
2664
2736
  var datePickerClearButtonClasses = classNames(
2665
2737
  "absolute",
@@ -2742,15 +2814,7 @@ function to24HourFormat(hours, period) {
2742
2814
  }
2743
2815
  }
2744
2816
  function formatTimeDisplay(hours, minutes, seconds = 0, format = "24", showSeconds = false) {
2745
- if (format === "12") {
2746
- const { hours: hours12, period } = to12HourFormat(hours);
2747
- const h = hours12.toString().padStart(2, "0");
2748
- const m = clampValue(minutes, 0, 59).toString().padStart(2, "0");
2749
- const s = clampValue(seconds, 0, 59).toString().padStart(2, "0");
2750
- const timeStr = showSeconds ? `${h}:${m}:${s}` : `${h}:${m}`;
2751
- return `${timeStr} ${period}`;
2752
- }
2753
- return formatTime(hours, minutes, seconds, showSeconds);
2817
+ return formatTimeDisplayWithLocale(hours, minutes, seconds, format, showSeconds);
2754
2818
  }
2755
2819
  function getTimePeriodLabels(locale) {
2756
2820
  if (!locale) return { am: "AM", pm: "PM" };
@@ -2814,21 +2878,19 @@ function generateHours(step = 1, format = "24") {
2814
2878
  }
2815
2879
  return hours;
2816
2880
  }
2817
- function generateMinutes(step = 1) {
2818
- const minutes = [];
2881
+ function generateTimeSlots(step, max) {
2819
2882
  const validStep = validateStep(step);
2820
- for (let i = 0; i < 60; i += validStep) {
2821
- minutes.push(i);
2883
+ const values = [];
2884
+ for (let i = 0; i < max; i += validStep) {
2885
+ values.push(i);
2822
2886
  }
2823
- return minutes;
2887
+ return values;
2888
+ }
2889
+ function generateMinutes(step = 1) {
2890
+ return generateTimeSlots(step, 60);
2824
2891
  }
2825
2892
  function generateSeconds(step = 1) {
2826
- const seconds = [];
2827
- const validStep = validateStep(step);
2828
- for (let i = 0; i < 60; i += validStep) {
2829
- seconds.push(i);
2830
- }
2831
- return seconds;
2893
+ return generateTimeSlots(step, 60);
2832
2894
  }
2833
2895
  function getCurrentTime(showSeconds = false) {
2834
2896
  const now = /* @__PURE__ */ new Date();
@@ -2968,8 +3030,8 @@ function formatFileSize(bytes) {
2968
3030
  const i = Math.floor(Math.log(bytes) / Math.log(k));
2969
3031
  return `${(bytes / Math.pow(k, i)).toFixed(2)} ${units[i]}`;
2970
3032
  }
2971
- function getUploadButtonClasses(drag, disabled) {
2972
- const baseClasses = [
3033
+ function getUploadButtonClasses(disabled) {
3034
+ const baseClasses2 = [
2973
3035
  "inline-flex",
2974
3036
  "items-center",
2975
3037
  "justify-center",
@@ -2994,10 +3056,10 @@ function getUploadButtonClasses(drag, disabled) {
2994
3056
  "focus:ring-[var(--tiger-primary,#2563eb)]",
2995
3057
  "cursor-pointer"
2996
3058
  ];
2997
- return classNames(...baseClasses, ...stateClasses);
3059
+ return classNames(...baseClasses2, ...stateClasses);
2998
3060
  }
2999
3061
  function getDragAreaClasses(isDragging, disabled) {
3000
- const baseClasses = [
3062
+ const baseClasses2 = [
3001
3063
  "flex",
3002
3064
  "flex-col",
3003
3065
  "items-center",
@@ -3036,7 +3098,7 @@ function getDragAreaClasses(isDragging, disabled) {
3036
3098
  ...focusClasses
3037
3099
  ];
3038
3100
  }
3039
- return classNames(...baseClasses, ...stateClasses);
3101
+ return classNames(...baseClasses2, ...stateClasses);
3040
3102
  }
3041
3103
  var FILE_LIST_STATUS_CLASSES = {
3042
3104
  ready: ["bg-gray-50", "hover:bg-gray-100"],
@@ -3051,7 +3113,7 @@ var PICTURE_CARD_STATUS_CLASSES = {
3051
3113
  error: ["border-red-400", "bg-red-50"]
3052
3114
  };
3053
3115
  function getFileListItemClasses(status) {
3054
- const baseClasses = [
3116
+ const baseClasses2 = [
3055
3117
  "flex",
3056
3118
  "items-center",
3057
3119
  "justify-between",
@@ -3062,10 +3124,10 @@ function getFileListItemClasses(status) {
3062
3124
  "duration-200"
3063
3125
  ];
3064
3126
  const stateClasses = status ? FILE_LIST_STATUS_CLASSES[status] : FILE_LIST_STATUS_CLASSES.ready;
3065
- return classNames(...baseClasses, ...stateClasses);
3127
+ return classNames(...baseClasses2, ...stateClasses);
3066
3128
  }
3067
3129
  function getPictureCardClasses(status) {
3068
- const baseClasses = [
3130
+ const baseClasses2 = [
3069
3131
  "relative",
3070
3132
  "inline-flex",
3071
3133
  "items-center",
@@ -3079,7 +3141,7 @@ function getPictureCardClasses(status) {
3079
3141
  "duration-200"
3080
3142
  ];
3081
3143
  const stateClasses = status ? PICTURE_CARD_STATUS_CLASSES[status] : PICTURE_CARD_STATUS_CLASSES.ready;
3082
- return classNames(...baseClasses, ...stateClasses);
3144
+ return classNames(...baseClasses2, ...stateClasses);
3083
3145
  }
3084
3146
 
3085
3147
  // src/utils/grid.ts
@@ -3182,6 +3244,14 @@ function getColOrderStyleVars(order) {
3182
3244
  setOrderVars(vars, order);
3183
3245
  return vars;
3184
3246
  }
3247
+ function getColMergedStyleVars(span, offset2, order, flex) {
3248
+ const vars = {};
3249
+ if (span !== void 0 && span !== null) setSpanVars(vars, span);
3250
+ if (offset2 !== void 0 && offset2 !== null) setOffsetVars(vars, offset2);
3251
+ if (order !== void 0 && order !== null) setOrderVars(vars, order);
3252
+ if (flex !== void 0) vars["--tiger-col-flex"] = String(flex).replace(/_/g, " ");
3253
+ return vars;
3254
+ }
3185
3255
  function getAlignClasses(align) {
3186
3256
  return ALIGN_MAP[align] || "items-start";
3187
3257
  }
@@ -3226,34 +3296,48 @@ function getFlexClasses(flex) {
3226
3296
  }
3227
3297
 
3228
3298
  // src/utils/divider.ts
3229
- var SPACING_MAP = {
3230
- none: { horizontal: "", vertical: "" },
3231
- xs: { horizontal: "my-1", vertical: "mx-1" },
3232
- sm: { horizontal: "my-2", vertical: "mx-2" },
3233
- md: { horizontal: "my-4", vertical: "mx-4" },
3234
- lg: { horizontal: "my-6", vertical: "mx-6" },
3235
- xl: { horizontal: "my-8", vertical: "mx-8" }
3299
+ var BORDER_COLOR = "border-[var(--tiger-border,#e5e7eb)]";
3300
+ var SPACING_H = {
3301
+ none: "",
3302
+ xs: "my-1",
3303
+ sm: "my-2",
3304
+ md: "my-4",
3305
+ lg: "my-6",
3306
+ xl: "my-8"
3307
+ };
3308
+ var SPACING_V = {
3309
+ none: "",
3310
+ xs: "mx-1",
3311
+ sm: "mx-2",
3312
+ md: "mx-4",
3313
+ lg: "mx-6",
3314
+ xl: "mx-8"
3236
3315
  };
3237
3316
  var LINE_STYLE_MAP = {
3238
3317
  solid: "border-solid",
3239
3318
  dashed: "border-dashed",
3240
3319
  dotted: "border-dotted"
3241
3320
  };
3242
- var DEFAULT_BORDER_COLOR_CLASS = "border-[var(--tiger-border,#e5e7eb)]";
3243
- function getDividerSpacingClasses(spacing, orientation) {
3244
- return SPACING_MAP[spacing][orientation];
3321
+ function getDividerClasses(orientation, lineStyle, spacing) {
3322
+ const isH = orientation === "horizontal";
3323
+ const base = isH ? `w-full border-t ${BORDER_COLOR}` : `h-full border-l ${BORDER_COLOR}`;
3324
+ const sp = (isH ? SPACING_H : SPACING_V)[spacing];
3325
+ return sp ? `${base} ${LINE_STYLE_MAP[lineStyle]} ${sp}` : `${base} ${LINE_STYLE_MAP[lineStyle]}`;
3245
3326
  }
3246
- function getDividerLineStyleClasses(lineStyle) {
3247
- return LINE_STYLE_MAP[lineStyle];
3248
- }
3249
- function getDividerOrientationClasses(orientation) {
3250
- return orientation === "horizontal" ? `w-full border-t ${DEFAULT_BORDER_COLOR_CLASS}` : `h-full border-l ${DEFAULT_BORDER_COLOR_CLASS}`;
3327
+ function getDividerStyle(orientation, color, thickness) {
3328
+ if (!color && !thickness) return void 0;
3329
+ const style = {};
3330
+ if (color) style.borderColor = color;
3331
+ if (thickness) {
3332
+ style[orientation === "horizontal" ? "borderTopWidth" : "borderLeftWidth"] = thickness;
3333
+ }
3334
+ return style;
3251
3335
  }
3252
3336
 
3253
3337
  // src/utils/layout-utils.ts
3254
3338
  var layoutRootClasses = "tiger-layout flex flex-col min-h-screen";
3255
3339
  var layoutHeaderClasses = "tiger-header bg-[var(--tiger-surface,#ffffff)] border-b border-[var(--tiger-border,#e5e7eb)]";
3256
- var layoutSidebarClasses = "tiger-sidebar bg-[var(--tiger-surface,#ffffff)] border-r border-[var(--tiger-border,#e5e7eb)] transition-all duration-300";
3340
+ var layoutSidebarClasses = "tiger-sidebar bg-[var(--tiger-surface,#ffffff)] border-r border-[var(--tiger-border,#e5e7eb)] overflow-hidden transition-all duration-300";
3257
3341
  var layoutContentClasses = "tiger-content flex-1 bg-[var(--tiger-layout-content-bg,#f9fafb)] p-6";
3258
3342
  var layoutFooterClasses = "tiger-footer bg-[var(--tiger-surface,#ffffff)] border-t border-[var(--tiger-border,#e5e7eb)] p-4";
3259
3343
 
@@ -3283,33 +3367,30 @@ var getContainerClasses = ({
3283
3367
  );
3284
3368
 
3285
3369
  // src/utils/space.ts
3286
- var SPACE_BASE_CLASS = "inline-flex";
3287
- function getSpaceGapSize(size = "md") {
3288
- if (typeof size === "number") {
3289
- return { style: `${size}px` };
3290
- }
3291
- const sizeMap = {
3292
- sm: "gap-2",
3293
- // 8px
3294
- md: "gap-4",
3295
- // 16px
3296
- lg: "gap-6"
3297
- // 24px
3298
- };
3299
- return { class: sizeMap[size] };
3300
- }
3301
- function getSpaceAlignClass(align = "start") {
3302
- const alignMap = {
3303
- start: "items-start",
3304
- end: "items-end",
3305
- center: "items-center",
3306
- baseline: "items-baseline",
3307
- stretch: "items-stretch"
3308
- };
3309
- return alignMap[align];
3370
+ var SIZE_CLASS = {
3371
+ sm: "gap-2",
3372
+ md: "gap-4",
3373
+ lg: "gap-6"
3374
+ };
3375
+ var ALIGN_CLASS = {
3376
+ start: "items-start",
3377
+ end: "items-end",
3378
+ center: "items-center",
3379
+ baseline: "items-baseline",
3380
+ stretch: "items-stretch"
3381
+ };
3382
+ function getSpaceClasses({ direction = "horizontal", size = "md", align = "start", wrap = false } = {}, className) {
3383
+ return classNames(
3384
+ "inline-flex",
3385
+ direction === "horizontal" ? "flex-row" : "flex-col",
3386
+ ALIGN_CLASS[align],
3387
+ typeof size === "string" ? SIZE_CLASS[size] : void 0,
3388
+ wrap && "flex-wrap",
3389
+ className
3390
+ );
3310
3391
  }
3311
- function getSpaceDirectionClass(direction = "horizontal") {
3312
- return direction === "horizontal" ? "flex-row" : "flex-col";
3392
+ function getSpaceStyle(size = "md") {
3393
+ return typeof size === "number" ? { gap: `${size}px` } : void 0;
3313
3394
  }
3314
3395
 
3315
3396
  // src/utils/table-utils.ts
@@ -3352,13 +3433,17 @@ function getFixedColumnOffsets(columns) {
3352
3433
  }
3353
3434
  function getTableWrapperClasses(bordered, maxHeight) {
3354
3435
  return classNames(
3436
+ "relative",
3355
3437
  tableContainerClasses,
3356
- bordered && "border border-gray-200 rounded-lg",
3438
+ bordered && "border border-[var(--tiger-border,#e5e7eb)] rounded-lg overflow-hidden",
3357
3439
  maxHeight && "overflow-y-auto"
3358
3440
  );
3359
3441
  }
3360
3442
  function getTableHeaderClasses(stickyHeader) {
3361
- return classNames("bg-gray-50 border-b border-gray-200", stickyHeader && "sticky top-0 z-10");
3443
+ return classNames(
3444
+ "bg-[var(--tiger-surface-muted,#f9fafb)] border-b border-[var(--tiger-border,#e5e7eb)]",
3445
+ stickyHeader && "sticky top-0 z-10"
3446
+ );
3362
3447
  }
3363
3448
  function getTableHeaderCellClasses(size, align, sortable, customClassName) {
3364
3449
  const paddingClasses = {
@@ -3372,18 +3457,18 @@ function getTableHeaderCellClasses(size, align, sortable, customClassName) {
3372
3457
  right: "text-right"
3373
3458
  };
3374
3459
  return classNames(
3375
- "font-medium text-gray-700 text-sm",
3460
+ "font-medium text-[var(--tiger-text-muted,#6b7280)] text-xs uppercase tracking-wider",
3376
3461
  paddingClasses[size],
3377
3462
  alignClasses[align],
3378
- sortable && "cursor-pointer select-none hover:bg-gray-100 transition-colors",
3463
+ sortable && "cursor-pointer select-none hover:bg-[var(--tiger-surface,#ffffff)]/50 transition-colors",
3379
3464
  customClassName
3380
3465
  );
3381
3466
  }
3382
3467
  function getTableRowClasses(hoverable, striped, isEven, customClassName) {
3383
3468
  return classNames(
3384
- "border-b border-gray-200 last:border-b-0",
3385
- hoverable && "hover:bg-gray-50 transition-colors",
3386
- striped && isEven && "bg-gray-50/50",
3469
+ "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0",
3470
+ hoverable && "hover:bg-[var(--tiger-surface-muted,#f9fafb)] transition-colors",
3471
+ striped && isEven && "bg-[var(--tiger-surface-muted,#f9fafb)]/50",
3387
3472
  customClassName
3388
3473
  );
3389
3474
  }
@@ -3399,7 +3484,7 @@ function getTableCellClasses(size, align, customClassName) {
3399
3484
  right: "text-right"
3400
3485
  };
3401
3486
  return classNames(
3402
- "text-sm text-gray-900",
3487
+ "text-sm text-[var(--tiger-text,#111827)]",
3403
3488
  paddingClasses[size],
3404
3489
  alignClasses[align],
3405
3490
  customClassName
@@ -3411,9 +3496,9 @@ function getSortIconClasses(active) {
3411
3496
  active ? "text-[var(--tiger-primary,#2563eb)]" : "text-gray-400"
3412
3497
  );
3413
3498
  }
3414
- var tableEmptyStateClasses = "text-center py-12 text-gray-500";
3499
+ var tableEmptyStateClasses = "text-center py-12 text-[var(--tiger-text-muted,#6b7280)]";
3415
3500
  var tableLoadingOverlayClasses = classNames(
3416
- "absolute inset-0 bg-white/80 flex items-center justify-center z-20"
3501
+ "absolute inset-0 bg-[var(--tiger-surface,#ffffff)]/80 flex items-center justify-center z-20"
3417
3502
  );
3418
3503
  var tablePaginationContainerClasses = classNames(
3419
3504
  "flex items-center justify-between px-4 py-3 border-t border-gray-200"
@@ -3529,27 +3614,17 @@ var badgePositionClasses = {
3529
3614
  "bottom-left": "absolute -bottom-1 -left-1"
3530
3615
  };
3531
3616
  function formatBadgeContent(content, max = 99, showZero = false) {
3532
- if (content === void 0 || content === null) {
3533
- return null;
3534
- }
3535
- if (typeof content === "string") {
3536
- return content;
3537
- }
3538
- const num = Number(content);
3539
- if (num === 0 && !showZero) {
3540
- return null;
3541
- }
3542
- if (num > max) {
3543
- return `${max}+`;
3544
- }
3545
- return String(num);
3617
+ if (content === void 0 || content === null) return null;
3618
+ if (typeof content === "string") return content;
3619
+ if (content === 0 && !showZero) return null;
3620
+ if (content > max) return `${max}+`;
3621
+ return String(content);
3546
3622
  }
3547
3623
  function shouldHideBadge(content, type, showZero) {
3548
- if (type === "dot") {
3549
- return false;
3550
- }
3551
- const formattedContent = formatBadgeContent(content, 99, showZero);
3552
- return formattedContent === null || formattedContent === "";
3624
+ if (type === "dot") return false;
3625
+ if (content === void 0 || content === null) return true;
3626
+ if (typeof content === "string") return content === "";
3627
+ return content === 0 && !showZero;
3553
3628
  }
3554
3629
 
3555
3630
  // src/utils/card-utils.ts
@@ -3567,7 +3642,6 @@ var cardVariantClasses = {
3567
3642
  };
3568
3643
  var cardHoverClasses = "cursor-pointer hover:shadow-xl hover:scale-[1.02]";
3569
3644
  var cardHeaderClasses = "border-b border-[var(--tiger-border,#e5e7eb)] pb-3 mb-3";
3570
- var cardBodyClasses = "";
3571
3645
  var cardFooterClasses = "border-t border-[var(--tiger-border,#e5e7eb)] pt-3 mt-3";
3572
3646
  var cardCoverClasses = "w-full h-48 object-cover";
3573
3647
  var cardCoverWrapperClasses = "overflow-hidden";
@@ -3596,10 +3670,9 @@ var avatarDefaultBgColor = "bg-[var(--tiger-avatar-bg,#e5e7eb)]";
3596
3670
  var avatarDefaultTextColor = "text-[var(--tiger-avatar-text,var(--tiger-text-muted,#6b7280))]";
3597
3671
  var avatarImageClasses = "w-full h-full object-cover";
3598
3672
  function getInitials(name) {
3599
- const trimmed = typeof name === "string" ? name.trim() : "";
3673
+ const trimmed = name.trim();
3600
3674
  if (!trimmed) return "";
3601
3675
  const words = trimmed.split(/\s+/).filter(Boolean);
3602
- if (words.length === 0) return "";
3603
3676
  if (words.length === 1) {
3604
3677
  const firstWord = words[0];
3605
3678
  const hasNonASCII = /[^\x20-\x7E]/.test(firstWord);
@@ -3661,7 +3734,6 @@ var listHeaderFooterBaseClasses = "border-b border-[var(--tiger-border,#e5e7eb)]
3661
3734
  var listFooterClasses = "border-t border-b-0";
3662
3735
  var listEmptyStateClasses = "py-8 text-center text-[var(--tiger-text-muted,#6b7280)]";
3663
3736
  var listLoadingOverlayClasses = "absolute inset-0 bg-[var(--tiger-surface,#ffffff)]/75 flex items-center justify-center z-10";
3664
- var listPaginationContainerClasses = "flex items-center justify-between px-4 py-3 border-t border-[var(--tiger-border,#e5e7eb)]";
3665
3737
  var listItemMetaClasses = "flex items-center gap-3 flex-1";
3666
3738
  var listItemAvatarClasses = "flex-shrink-0";
3667
3739
  var listItemContentClasses = "flex-1 min-w-0";
@@ -3729,7 +3801,6 @@ var descriptionsSizeClasses = {
3729
3801
  };
3730
3802
  var descriptionsTableClasses = "w-full border-collapse";
3731
3803
  var descriptionsTableBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3732
- var descriptionsRowClasses = "";
3733
3804
  var descriptionsCellSizeClasses = {
3734
3805
  sm: "px-3 py-2",
3735
3806
  md: "px-4 py-3",
@@ -3739,12 +3810,12 @@ var descriptionsLabelClasses = "font-medium bg-[var(--tiger-surface-muted,#f9faf
3739
3810
  var descriptionsLabelBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3740
3811
  var descriptionsContentClasses = "text-[var(--tiger-text,#111827)]";
3741
3812
  var descriptionsContentBorderedClasses = "border border-[var(--tiger-border,#e5e7eb)]";
3742
- var descriptionsVerticalWrapperClasses = "space-y-0";
3813
+ var descriptionsVerticalWrapperClasses = "";
3743
3814
  var descriptionsVerticalItemClasses = "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0";
3744
3815
  var descriptionsVerticalLabelClasses = "font-medium mb-1 text-[var(--tiger-text-muted,#374151)]";
3745
3816
  var descriptionsVerticalContentClasses = "text-[var(--tiger-text,#111827)]";
3746
- function getDescriptionsClasses(bordered, size) {
3747
- return [descriptionsBaseClasses, descriptionsSizeClasses[size]].join(" ");
3817
+ function getDescriptionsClasses(size) {
3818
+ return `${descriptionsBaseClasses} ${descriptionsSizeClasses[size]}`;
3748
3819
  }
3749
3820
  function getDescriptionsTableClasses(bordered) {
3750
3821
  const classes = [descriptionsTableClasses];
@@ -3773,12 +3844,8 @@ function getDescriptionsContentClasses(bordered, size, layout) {
3773
3844
  }
3774
3845
  return classes.join(" ");
3775
3846
  }
3776
- function getDescriptionsVerticalItemClasses(bordered, size) {
3777
- const classes = [descriptionsCellSizeClasses[size]];
3778
- if (!bordered) {
3779
- classes.push(descriptionsVerticalItemClasses);
3780
- }
3781
- return classes.join(" ");
3847
+ function getDescriptionsVerticalItemClasses(size) {
3848
+ return `${descriptionsCellSizeClasses[size]} ${descriptionsVerticalItemClasses}`;
3782
3849
  }
3783
3850
  function groupItemsIntoRows(items, column) {
3784
3851
  const rows = [];
@@ -3815,8 +3882,9 @@ var timelineContentClasses = "relative";
3815
3882
  var timelineCustomDotClasses = "flex items-center justify-center";
3816
3883
  var timelineLabelClasses = "text-sm text-[var(--tiger-text-muted,#6b7280)] mb-1";
3817
3884
  var timelineDescriptionClasses = "text-[var(--tiger-text,#374151)]";
3818
- var dotBg = "bg-[var(--tiger-timeline-dot,#d1d5db)]";
3819
- var timelineDotClasses = `w-2.5 h-2.5 rounded-full border-2 border-[var(--tiger-surface,#ffffff)] ${dotBg}`;
3885
+ var timelineDotBase = "w-2.5 h-2.5 rounded-full border-2 border-[var(--tiger-surface,#ffffff)]";
3886
+ var timelineDotBg = "bg-[var(--tiger-timeline-dot,#d1d5db)]";
3887
+ var timelineDotClasses = `${timelineDotBase} ${timelineDotBg}`;
3820
3888
  var HEAD_TOP = "top-[18px]";
3821
3889
  var TAIL_TOP = "top-[23px]";
3822
3890
  var TAIL_BOTTOM = "-bottom-[23px]";
@@ -3832,22 +3900,21 @@ function getTimelineItemClasses(mode, position, isLast = false) {
3832
3900
  }
3833
3901
  return `${base} pl-8`;
3834
3902
  }
3835
- function getTimelineTailClasses(mode, _position, isLast = false) {
3903
+ function getTimelineTailClasses(mode, isLast = false) {
3836
3904
  if (isLast) return "hidden";
3837
3905
  const span = `${timelineTailClasses} ${TAIL_TOP} ${TAIL_BOTTOM}`;
3838
3906
  if (mode === "right") return `${span} right-0 translate-x-1/2`;
3839
3907
  if (mode === "alternate") return `${span} left-1/2 -translate-x-1/2`;
3840
3908
  return `${span} left-0 -translate-x-1/2`;
3841
3909
  }
3842
- function getTimelineHeadClasses(mode, _position) {
3910
+ function getTimelineHeadClasses(mode) {
3843
3911
  if (mode === "right") return `${timelineHeadClasses} right-0 ${HEAD_TOP} translate-x-1/2`;
3844
3912
  if (mode === "alternate") return `${timelineHeadClasses} left-1/2 -translate-x-1/2 ${HEAD_TOP}`;
3845
3913
  return `${timelineHeadClasses} left-0 ${HEAD_TOP} -translate-x-1/2`;
3846
3914
  }
3847
3915
  function getTimelineDotClasses(color, isCustom = false) {
3848
3916
  if (isCustom) return timelineCustomDotClasses;
3849
- if (color) return timelineDotClasses.replace(dotBg, "");
3850
- return timelineDotClasses;
3917
+ return color ? timelineDotBase : timelineDotClasses;
3851
3918
  }
3852
3919
  function getTimelineContentClasses(mode, position) {
3853
3920
  if (mode === "right") return `${timelineContentClasses} pr-2`;
@@ -3881,7 +3948,7 @@ var treeBaseClasses = "w-full bg-white rounded-lg";
3881
3948
  var treeNodeWrapperClasses = "select-none";
3882
3949
  var treeNodeContentClasses = "flex items-center px-2 py-1.5 cursor-pointer rounded transition-colors duration-200";
3883
3950
  var treeNodeHoverClasses = "hover:bg-gray-50";
3884
- var treeNodeSelectedClasses = "bg-[var(--tiger-primary,#2563eb)] bg-opacity-10 text-[var(--tiger-primary,#2563eb)]";
3951
+ var treeNodeSelectedClasses = "bg-[color-mix(in_srgb,var(--tiger-primary,#2563eb)_10%,transparent)] text-[var(--tiger-primary,#2563eb)]";
3885
3952
  var treeNodeDisabledClasses = "opacity-50 cursor-not-allowed";
3886
3953
  var treeNodeIndentClasses = "inline-block w-6";
3887
3954
  var treeNodeExpandIconClasses = "inline-flex items-center justify-center w-6 h-6 transition-transform duration-200";
@@ -3894,40 +3961,16 @@ var treeLoadingClasses = "inline-block ml-2 animate-spin h-4 w-4";
3894
3961
  var treeEmptyStateClasses = "py-8 text-center text-gray-500";
3895
3962
  var treeLineClasses = "border-l border-gray-300";
3896
3963
  function getTreeNodeClasses(selected, disabled, blockNode = false) {
3897
- const classes = [treeNodeContentClasses];
3898
- if (!disabled) {
3899
- classes.push(treeNodeHoverClasses);
3900
- }
3901
- if (selected) {
3902
- classes.push(treeNodeSelectedClasses);
3903
- }
3904
- if (disabled) {
3905
- classes.push(treeNodeDisabledClasses);
3906
- }
3907
- if (blockNode) {
3908
- classes.push("w-full");
3909
- }
3910
- return classes.join(" ");
3964
+ return classNames(
3965
+ treeNodeContentClasses,
3966
+ !disabled && treeNodeHoverClasses,
3967
+ selected && treeNodeSelectedClasses,
3968
+ disabled && treeNodeDisabledClasses,
3969
+ blockNode && "w-full"
3970
+ );
3911
3971
  }
3912
3972
  function getTreeNodeExpandIconClasses(expanded) {
3913
- const classes = [treeNodeExpandIconClasses];
3914
- if (expanded) {
3915
- classes.push(treeNodeExpandIconExpandedClasses);
3916
- }
3917
- return classes.join(" ");
3918
- }
3919
- function flattenTree(treeData, expandedKeys = /* @__PURE__ */ new Set()) {
3920
- const result = [];
3921
- function traverse(nodes, level = 0, parentKey) {
3922
- nodes.forEach((node) => {
3923
- result.push({ ...node, level, parentKey });
3924
- if (node.children && node.children.length > 0 && expandedKeys.has(node.key)) {
3925
- traverse(node.children, level + 1, node.key);
3926
- }
3927
- });
3928
- }
3929
- traverse(treeData);
3930
- return result;
3973
+ return classNames(treeNodeExpandIconClasses, expanded && treeNodeExpandIconExpandedClasses);
3931
3974
  }
3932
3975
  function getAllKeys(treeData) {
3933
3976
  const keys = [];
@@ -4149,18 +4192,12 @@ function getAutoExpandKeys(treeData, matchedKeys) {
4149
4192
  });
4150
4193
  return expandKeys;
4151
4194
  }
4152
- var defaultExpandIcon = (expanded) => `
4153
- <svg class="${getTreeNodeExpandIconClasses(
4154
- expanded
4155
- )}" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
4156
- <path d="M6 4l4 4-4 4V4z"/>
4157
- </svg>
4158
- `;
4159
- var defaultIndeterminateIcon = `
4160
- <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
4161
- <rect x="4" y="7" width="8" height="2" rx="1"/>
4162
- </svg>
4163
- `;
4195
+ function checkedSetsFromState(state) {
4196
+ return {
4197
+ checkedSet: new Set(state.checked),
4198
+ halfCheckedSet: new Set(state.halfChecked)
4199
+ };
4200
+ }
4164
4201
 
4165
4202
  // src/utils/skeleton-utils.ts
4166
4203
  var skeletonBaseClasses = "bg-[var(--tiger-skeleton-bg,#e5e7eb)] rounded";
@@ -4224,7 +4261,7 @@ function getParagraphRowWidth(rowIndex, totalRows) {
4224
4261
  // src/utils/progress-utils.ts
4225
4262
  var progressLineBaseClasses = "relative overflow-hidden rounded-full";
4226
4263
  var progressLineInnerClasses = "h-full rounded-full transition-all duration-300 ease-in-out flex items-center justify-end";
4227
- var progressTextBaseClasses = "font-medium ml-2 text-[color:var(--tiger-text,#374151)]";
4264
+ var progressTextBaseClasses = "font-medium ml-2";
4228
4265
  var progressCircleBaseClasses = "relative inline-flex items-center justify-center";
4229
4266
  var progressLineSizeClasses = {
4230
4267
  sm: "h-2",
@@ -4264,7 +4301,7 @@ function formatProgressText(percentage, customText, formatFn) {
4264
4301
  function clampPercentage(percentage) {
4265
4302
  return Math.max(0, Math.min(100, percentage));
4266
4303
  }
4267
- function calculateCirclePath(radius, strokeWidth, percentage) {
4304
+ function calculateCirclePath(radius, percentage) {
4268
4305
  const circumference = 2 * Math.PI * radius;
4269
4306
  const offset2 = circumference - percentage / 100 * circumference;
4270
4307
  return {
@@ -4302,7 +4339,6 @@ var collapseIconPositionClasses = {
4302
4339
  end: "ml-auto"
4303
4340
  };
4304
4341
  var collapseHeaderTextClasses = "flex-1 font-medium text-gray-900";
4305
- var collapseExtraClasses = "ml-auto";
4306
4342
  function getCollapseContainerClasses(bordered, ghost, className) {
4307
4343
  const classes = [collapseBaseClasses];
4308
4344
  if (ghost) {
@@ -4313,7 +4349,7 @@ function getCollapseContainerClasses(bordered, ghost, className) {
4313
4349
  if (className) {
4314
4350
  classes.push(className);
4315
4351
  }
4316
- return classes.filter(Boolean).join(" ");
4352
+ return classes.join(" ");
4317
4353
  }
4318
4354
  function getCollapsePanelClasses(ghost, className) {
4319
4355
  const classes = [];
@@ -4323,7 +4359,7 @@ function getCollapsePanelClasses(ghost, className) {
4323
4359
  if (className) {
4324
4360
  classes.push(className);
4325
4361
  }
4326
- return classes.filter(Boolean).join(" ");
4362
+ return classes.join(" ");
4327
4363
  }
4328
4364
  function getCollapsePanelHeaderClasses(active, disabled, className) {
4329
4365
  const classes = [collapsePanelHeaderBaseClasses];
@@ -4335,7 +4371,7 @@ function getCollapsePanelHeaderClasses(active, disabled, className) {
4335
4371
  if (className) {
4336
4372
  classes.push(className);
4337
4373
  }
4338
- return classes.filter(Boolean).join(" ");
4374
+ return classes.join(" ");
4339
4375
  }
4340
4376
  function getCollapseIconClasses(expanded, position, className) {
4341
4377
  const classes = [collapseIconBaseClasses, collapseIconPositionClasses[position]];
@@ -4345,7 +4381,7 @@ function getCollapseIconClasses(expanded, position, className) {
4345
4381
  if (className) {
4346
4382
  classes.push(className);
4347
4383
  }
4348
- return classes.filter(Boolean).join(" ");
4384
+ return classes.join(" ");
4349
4385
  }
4350
4386
  function normalizeActiveKeys(activeKey) {
4351
4387
  if (activeKey === void 0) {
@@ -4368,11 +4404,6 @@ function togglePanelKey(panelKey, activeKeys, accordion) {
4368
4404
  }
4369
4405
  }
4370
4406
  }
4371
- var collapseRightArrowIcon = `
4372
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
4373
- <path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4374
- </svg>
4375
- `.trim();
4376
4407
 
4377
4408
  // src/utils/menu-utils.ts
4378
4409
  var menuBaseClasses = "flex border bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)] border-[var(--tiger-border,#e5e7eb)]";
@@ -4468,15 +4499,71 @@ function replaceKeys(key, keys) {
4468
4499
  }
4469
4500
  return [key];
4470
4501
  }
4502
+ function getMenuButtons(container) {
4503
+ return Array.from(
4504
+ container.querySelectorAll('button[data-tiger-menuitem="true"]')
4505
+ ).filter((el) => !el.disabled && !el.closest('[data-tiger-menu-hidden="true"]'));
4506
+ }
4507
+ function moveFocusInMenu(current, delta) {
4508
+ const menuEl = current.closest('ul[role="menu"]');
4509
+ if (!menuEl) return;
4510
+ const items = getMenuButtons(menuEl);
4511
+ const idx = items.indexOf(current);
4512
+ if (idx < 0) return;
4513
+ const next = items[(idx + delta + items.length) % items.length];
4514
+ items.forEach((el) => {
4515
+ el.tabIndex = el === next ? 0 : -1;
4516
+ });
4517
+ next.focus();
4518
+ }
4519
+ function focusMenuEdge(current, edge) {
4520
+ const menuEl = current.closest('ul[role="menu"]');
4521
+ if (!menuEl) return;
4522
+ const items = getMenuButtons(menuEl);
4523
+ if (items.length === 0) return;
4524
+ const target = edge === "start" ? items[0] : items[items.length - 1];
4525
+ items.forEach((el) => {
4526
+ el.tabIndex = el === target ? 0 : -1;
4527
+ });
4528
+ target.focus();
4529
+ }
4530
+ function initRovingTabIndex(root) {
4531
+ const items = getMenuButtons(root);
4532
+ if (items.length === 0) return;
4533
+ const hasActive = items.some((el) => el.tabIndex === 0);
4534
+ if (hasActive) return;
4535
+ const selected = items.find((el) => el.dataset.tigerSelected === "true");
4536
+ const active = selected ?? items[0];
4537
+ items.forEach((el) => {
4538
+ el.tabIndex = el === active ? 0 : -1;
4539
+ });
4540
+ }
4541
+ function focusFirstChildItem(titleEl) {
4542
+ const li = titleEl.closest("li");
4543
+ const submenu = li?.querySelector('ul[role="menu"]');
4544
+ if (!submenu) return;
4545
+ const items = getMenuButtons(submenu);
4546
+ if (items.length === 0) return;
4547
+ items.forEach((el, idx) => {
4548
+ el.tabIndex = idx === 0 ? 0 : -1;
4549
+ });
4550
+ items[0].focus();
4551
+ }
4471
4552
 
4472
4553
  // src/utils/tabs-utils.ts
4473
4554
  var tabsBaseClasses = "w-full";
4474
- var tabNavBaseClasses = "flex transition-colors duration-200";
4555
+ var tabNavBaseClasses = "flex";
4475
4556
  var tabNavPositionClasses = {
4476
- top: "flex-row border-b border-gray-200",
4477
- bottom: "flex-row border-t border-gray-200",
4478
- left: "flex-col border-r border-gray-200",
4479
- right: "flex-col border-l border-gray-200"
4557
+ top: "flex-row",
4558
+ bottom: "flex-row",
4559
+ left: "flex-col",
4560
+ right: "flex-col"
4561
+ };
4562
+ var tabNavLineBorderClasses = {
4563
+ top: "border-b border-gray-200",
4564
+ bottom: "border-t border-gray-200",
4565
+ left: "border-r border-gray-200",
4566
+ right: "border-l border-gray-200"
4480
4567
  };
4481
4568
  var tabNavListBaseClasses = "flex gap-1";
4482
4569
  var tabNavListPositionClasses = {
@@ -4486,7 +4573,7 @@ var tabNavListPositionClasses = {
4486
4573
  right: "flex-col"
4487
4574
  };
4488
4575
  var tabNavListCenteredClasses = "justify-center";
4489
- var tabItemBaseClasses = "relative px-4 py-2 cursor-pointer transition-all duration-200 select-none flex items-center gap-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] focus-visible:ring-offset-2 active:opacity-90";
4576
+ var tabItemBaseClasses = "relative cursor-pointer transition-all duration-200 select-none flex items-center gap-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] focus-visible:ring-offset-2 active:opacity-90";
4490
4577
  var tabItemSizeClasses = {
4491
4578
  small: "text-sm px-3 py-1.5",
4492
4579
  medium: "text-base px-4 py-2",
@@ -4505,63 +4592,39 @@ var tabPaneBaseClasses = "w-full";
4505
4592
  var tabPaneHiddenClasses = "hidden";
4506
4593
  var tabAddButtonClasses = "px-3 py-2 border border-gray-200 rounded-t bg-gray-50 hover:bg-white hover:text-[var(--tiger-primary,#2563eb)] text-gray-600 cursor-pointer transition-colors duration-200";
4507
4594
  function getTabsContainerClasses(position) {
4508
- const classes = [tabsBaseClasses];
4509
- if (position === "left" || position === "right") {
4510
- classes.push("flex");
4511
- if (position === "right") {
4512
- classes.push("flex-row-reverse");
4513
- }
4514
- }
4515
- return classes.filter(Boolean).join(" ");
4595
+ if (position === "right") return `${tabsBaseClasses} flex flex-row-reverse`;
4596
+ if (position === "left") return `${tabsBaseClasses} flex`;
4597
+ return tabsBaseClasses;
4516
4598
  }
4517
4599
  function getTabNavClasses(position, type) {
4518
- const classes = [tabNavBaseClasses, tabNavPositionClasses[position]];
4519
- if (type === "card" || type === "editable-card") {
4520
- classes.push("border-0");
4521
- }
4522
- return classes.filter(Boolean).join(" ");
4600
+ const base = `${tabNavBaseClasses} ${tabNavPositionClasses[position]}`;
4601
+ return type === "line" ? `${base} ${tabNavLineBorderClasses[position]}` : base;
4523
4602
  }
4524
4603
  function getTabNavListClasses(position, centered) {
4525
- const classes = [tabNavListBaseClasses, tabNavListPositionClasses[position]];
4526
- if (centered && (position === "top" || position === "bottom")) {
4527
- classes.push(tabNavListCenteredClasses);
4528
- }
4529
- return classes.filter(Boolean).join(" ");
4604
+ const base = `${tabNavListBaseClasses} ${tabNavListPositionClasses[position]}`;
4605
+ return centered && (position === "top" || position === "bottom") ? `${base} ${tabNavListCenteredClasses}` : base;
4530
4606
  }
4531
4607
  function getTabItemClasses(active, disabled, type, size) {
4532
- const classes = [tabItemBaseClasses, tabItemSizeClasses[size]];
4533
- if (disabled) {
4534
- classes.push(tabItemDisabledClasses);
4535
- } else {
4536
- switch (type) {
4537
- case "line":
4538
- classes.push(tabItemLineClasses);
4539
- if (active) {
4540
- classes.push(tabItemLineActiveClasses);
4541
- }
4542
- break;
4543
- case "card":
4544
- classes.push(tabItemCardClasses);
4545
- if (active) {
4546
- classes.push(tabItemCardActiveClasses);
4547
- }
4548
- break;
4549
- case "editable-card":
4550
- classes.push(tabItemEditableCardClasses);
4551
- if (active) {
4552
- classes.push(tabItemEditableCardActiveClasses);
4553
- }
4554
- break;
4555
- }
4608
+ let cls = `${tabItemBaseClasses} ${tabItemSizeClasses[size]}`;
4609
+ if (disabled) return `${cls} ${tabItemDisabledClasses}`;
4610
+ switch (type) {
4611
+ case "line":
4612
+ cls += ` ${tabItemLineClasses}`;
4613
+ if (active) cls += ` ${tabItemLineActiveClasses}`;
4614
+ break;
4615
+ case "card":
4616
+ cls += ` ${tabItemCardClasses}`;
4617
+ if (active) cls += ` ${tabItemCardActiveClasses}`;
4618
+ break;
4619
+ case "editable-card":
4620
+ cls += ` ${tabItemEditableCardClasses}`;
4621
+ if (active) cls += ` ${tabItemEditableCardActiveClasses}`;
4622
+ break;
4556
4623
  }
4557
- return classes.filter(Boolean).join(" ");
4624
+ return cls;
4558
4625
  }
4559
4626
  function getTabPaneClasses(active) {
4560
- const classes = [tabPaneBaseClasses];
4561
- if (!active) {
4562
- classes.push(tabPaneHiddenClasses);
4563
- }
4564
- return classes.filter(Boolean).join(" ");
4627
+ return active ? tabPaneBaseClasses : `${tabPaneBaseClasses} ${tabPaneHiddenClasses}`;
4565
4628
  }
4566
4629
  function isKeyActive(key, activeKey) {
4567
4630
  return activeKey !== void 0 && key === activeKey;
@@ -4591,16 +4654,14 @@ var breadcrumbLinkClasses = classNames(
4591
4654
  );
4592
4655
  var breadcrumbCurrentClasses = classNames("text-gray-900 font-medium", "cursor-default");
4593
4656
  var breadcrumbSeparatorBaseClasses = "text-gray-400 select-none";
4594
- function getBreadcrumbItemClasses(current, className) {
4657
+ function getBreadcrumbItemClasses(className) {
4595
4658
  return classNames(breadcrumbItemBaseClasses, className);
4596
4659
  }
4597
4660
  function getBreadcrumbLinkClasses(current) {
4598
4661
  return current ? breadcrumbCurrentClasses : breadcrumbLinkClasses;
4599
4662
  }
4600
4663
  function getSeparatorContent(separator) {
4601
- if (!separator || separator === "/") {
4602
- return "/";
4603
- }
4664
+ if (!separator) return "/";
4604
4665
  switch (separator) {
4605
4666
  case "slash":
4606
4667
  return "/";
@@ -4617,61 +4678,53 @@ function getBreadcrumbSeparatorClasses(className) {
4617
4678
  }
4618
4679
 
4619
4680
  // src/utils/steps-utils.ts
4620
- var stepFinishIconSvgClasses = "w-5 h-5";
4621
- var stepFinishIconViewBox = "0 0 24 24";
4622
- var stepFinishIconPathD = "M5 13l4 4L19 7";
4623
- var stepFinishIconPathStrokeLinecap = "round";
4624
- var stepFinishIconPathStrokeLinejoin = "round";
4625
- var stepFinishIconPathStrokeWidth = 2;
4681
+ var stepFinishChar = "\u2713";
4626
4682
  function getStepsContainerClasses(direction) {
4627
- const baseClasses = "tiger-steps w-full list-none m-0 p-0";
4683
+ const baseClasses2 = "tiger-steps w-full list-none m-0 p-0";
4628
4684
  if (direction === "vertical") {
4629
- return `${baseClasses} flex flex-col`;
4685
+ return `${baseClasses2} flex flex-col`;
4630
4686
  }
4631
- return `${baseClasses} flex flex-row items-start`;
4687
+ return `${baseClasses2} flex flex-row items-start`;
4632
4688
  }
4633
- function getStepItemClasses(direction, isLast, simple) {
4634
- const baseClasses = "tiger-step-item relative";
4689
+ function getStepItemClasses(direction, isLast) {
4690
+ const baseClasses2 = "tiger-step-item relative";
4635
4691
  if (direction === "vertical") {
4636
- return `${baseClasses} flex flex-row ${!isLast ? "pb-6" : ""}`;
4692
+ return `${baseClasses2} flex flex-row ${!isLast ? "pb-6" : ""}`;
4637
4693
  }
4638
- return `${baseClasses} flex flex-col flex-1 items-center`;
4694
+ return `${baseClasses2} flex flex-col flex-1 items-center`;
4639
4695
  }
4640
4696
  function getStepIconClasses(status, size, simple, isCustomIcon) {
4641
- const baseClasses = "tiger-step-icon flex items-center justify-center rounded-full border-2 transition-all duration-200";
4697
+ const baseClasses2 = "tiger-step-icon relative z-10 flex items-center justify-center rounded-full border-2";
4642
4698
  const sizeClasses = simple ? "w-6 h-6 text-xs" : size === "small" ? "w-8 h-8 text-sm" : "w-10 h-10 text-base";
4643
4699
  const iconClasses = isCustomIcon ? "" : "font-medium";
4700
+ const activeClasses = "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white";
4644
4701
  const statusClasses = {
4645
4702
  wait: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#e5e7eb)] text-[var(--tiger-text-muted,#6b7280)]",
4646
- process: "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white",
4647
- finish: "bg-[var(--tiger-primary,#2563eb)] border-[var(--tiger-primary,#2563eb)] text-white",
4703
+ process: activeClasses,
4704
+ finish: activeClasses,
4648
4705
  error: "bg-[var(--tiger-error-bg,#fef2f2)] border-[var(--tiger-error,#ef4444)] text-[var(--tiger-error,#ef4444)]"
4649
4706
  };
4650
- return `${baseClasses} ${sizeClasses} ${iconClasses} ${statusClasses[status]}`;
4707
+ return `${baseClasses2} ${sizeClasses} ${iconClasses} ${statusClasses[status]}`;
4651
4708
  }
4652
- function getStepTailClasses(direction, status, isLast) {
4653
- if (isLast) {
4654
- return "hidden";
4655
- }
4656
- const baseClasses = "tiger-step-tail transition-all duration-200";
4709
+ function getStepTailClasses(direction, status, isLast, size, simple) {
4710
+ if (isLast) return "hidden";
4711
+ const colorClasses = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4657
4712
  if (direction === "vertical") {
4658
- const positionClasses2 = "absolute left-4 top-10 w-0.5 h-full";
4659
- const colorClasses2 = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4660
- return `${baseClasses} ${positionClasses2} ${colorClasses2}`;
4713
+ 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";
4714
+ return `tiger-step-tail ${verticalClasses} ${colorClasses}`;
4661
4715
  }
4662
- const positionClasses = "flex-1 h-0.5 mx-2 mt-5";
4663
- const colorClasses = status === "finish" ? "bg-[var(--tiger-primary,#2563eb)]" : "bg-[var(--tiger-border,#e5e7eb)]";
4664
- return `${baseClasses} ${positionClasses} ${colorClasses}`;
4716
+ 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";
4717
+ return `tiger-step-tail ${horizontalClasses} ${colorClasses}`;
4665
4718
  }
4666
- function getStepContentClasses(direction, simple) {
4667
- const baseClasses = "tiger-step-content";
4719
+ function getStepContentClasses(direction) {
4720
+ const baseClasses2 = "tiger-step-content";
4668
4721
  if (direction === "vertical") {
4669
- return `${baseClasses} ml-4 flex-1`;
4722
+ return `${baseClasses2} ml-4 flex-1`;
4670
4723
  }
4671
- return `${baseClasses} mt-2 text-center`;
4724
+ return `${baseClasses2} mt-2 text-center`;
4672
4725
  }
4673
4726
  function getStepTitleClasses(status, size, clickable) {
4674
- const baseClasses = "tiger-step-title font-medium transition-colors duration-200 bg-transparent border-0 p-0";
4727
+ const baseClasses2 = "tiger-step-title font-medium";
4675
4728
  const sizeClasses = size === "small" ? "text-sm" : "text-base";
4676
4729
  const statusClasses = {
4677
4730
  wait: "text-[var(--tiger-text-muted,#6b7280)]",
@@ -4679,19 +4732,14 @@ function getStepTitleClasses(status, size, clickable) {
4679
4732
  finish: "text-[var(--tiger-text,#111827)]",
4680
4733
  error: "text-[var(--tiger-error,#ef4444)]"
4681
4734
  };
4682
- const cursorClasses = clickable ? "cursor-pointer hover:text-[var(--tiger-primary,#2563eb)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--tiger-surface,#ffffff)]" : "";
4683
- return `${baseClasses} ${sizeClasses} ${statusClasses[status]} ${cursorClasses}`;
4735
+ 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)]" : "";
4736
+ return `${baseClasses2} ${sizeClasses} ${statusClasses[status]} ${cursorClasses}`;
4684
4737
  }
4685
4738
  function getStepDescriptionClasses(status, size) {
4686
- const baseClasses = "tiger-step-description mt-1 transition-colors duration-200";
4739
+ const baseClasses2 = "tiger-step-description mt-1";
4687
4740
  const sizeClasses = size === "small" ? "text-xs" : "text-sm";
4688
- const statusClasses = {
4689
- wait: "text-[var(--tiger-text-muted,#6b7280)]",
4690
- process: "text-[var(--tiger-text-muted,#6b7280)]",
4691
- finish: "text-[var(--tiger-text-muted,#6b7280)]",
4692
- error: "text-[var(--tiger-error,#ef4444)]"
4693
- };
4694
- return `${baseClasses} ${sizeClasses} ${statusClasses[status]}`;
4741
+ const statusClass = status === "error" ? "text-[var(--tiger-error,#ef4444)]" : "text-[var(--tiger-text-muted,#6b7280)]";
4742
+ return `${baseClasses2} ${sizeClasses} ${statusClass}`;
4695
4743
  }
4696
4744
  function calculateStepStatus(index, currentIndex, currentStatus, customStatus) {
4697
4745
  if (customStatus) {
@@ -4826,13 +4874,16 @@ function getPageSizeSelectorClasses(size = "medium") {
4826
4874
  sizeClasses[size]
4827
4875
  );
4828
4876
  }
4829
- function getTotalTextClasses(size = "medium") {
4877
+ function getSizeTextClasses(size = "medium") {
4830
4878
  const sizeClasses = {
4831
4879
  small: "text-sm",
4832
4880
  medium: "text-base",
4833
4881
  large: "text-lg"
4834
4882
  };
4835
- return classNames("text-[var(--tiger-text-muted,#6b7280)]", "mr-2", sizeClasses[size]);
4883
+ return sizeClasses[size];
4884
+ }
4885
+ function getTotalTextClasses(size = "medium") {
4886
+ return classNames("text-[var(--tiger-text-muted,#6b7280)]", "mr-2", getSizeTextClasses(size));
4836
4887
  }
4837
4888
  function getSimplePaginationContainerClasses() {
4838
4889
  return classNames(
@@ -4879,48 +4930,45 @@ function getDropdownContainerClasses() {
4879
4930
  function getDropdownTriggerClasses(disabled) {
4880
4931
  return classNames(
4881
4932
  "tiger-dropdown-trigger",
4882
- "cursor-pointer",
4883
- disabled && "cursor-not-allowed opacity-50"
4933
+ "inline-flex items-center gap-1.5",
4934
+ "select-none",
4935
+ disabled ? "cursor-not-allowed opacity-50 pointer-events-none" : "cursor-pointer"
4884
4936
  );
4885
4937
  }
4886
- function getDropdownMenuWrapperClasses(visible, placement) {
4887
- const positionClasses = getPlacementClasses(placement);
4938
+ function getDropdownChevronClasses(visible) {
4888
4939
  return classNames(
4889
- "tiger-dropdown-menu-wrapper",
4890
- "absolute",
4891
- "z-50",
4892
- positionClasses,
4893
- visible ? "block" : "hidden"
4940
+ "tiger-dropdown-chevron",
4941
+ "w-4 h-4 shrink-0",
4942
+ "text-[var(--tiger-text-muted,#9ca3af)]",
4943
+ "transition-transform duration-200 ease-out",
4944
+ visible && "rotate-180"
4894
4945
  );
4895
4946
  }
4947
+ var DROPDOWN_CHEVRON_PATH = "M6 9l6 6 6-6";
4896
4948
  function getDropdownMenuClasses() {
4897
4949
  return classNames(
4898
4950
  "tiger-dropdown-menu",
4899
4951
  "min-w-[160px]",
4900
- "py-1",
4901
- "rounded-md",
4902
- "shadow-lg",
4952
+ "py-1.5 px-1",
4953
+ "rounded-lg",
4954
+ "bg-[var(--tiger-surface,#ffffff)]",
4903
4955
  "border border-[var(--tiger-border,#e5e7eb)]",
4904
- "bg-[var(--tiger-surface,#ffffff)]"
4956
+ "shadow-[0_6px_16px_-2px_rgba(0,0,0,0.12),0_2px_6px_-1px_rgba(0,0,0,0.08)]",
4957
+ "ring-1 ring-black/[0.04]"
4905
4958
  );
4906
4959
  }
4907
4960
  function getDropdownItemClasses(disabled, divided) {
4908
4961
  return classNames(
4909
4962
  "tiger-dropdown-item",
4910
- "flex",
4911
- "items-center",
4912
- "gap-2",
4913
- "px-4",
4914
- "py-2",
4915
- "text-sm",
4916
- "text-[var(--tiger-text,#374151)]",
4917
- "transition-colors",
4918
- "duration-150",
4919
- "w-full",
4963
+ "flex items-center gap-2",
4964
+ "w-full rounded-md",
4965
+ "px-3 py-1.5",
4966
+ "text-sm text-[var(--tiger-text,#374151)]",
4967
+ "transition-colors duration-150",
4920
4968
  "text-left",
4921
4969
  "focus:outline-none",
4922
- "focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-opacity-50",
4923
- divided && "border-t border-[var(--tiger-border,#e5e7eb)]",
4970
+ "focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-inset",
4971
+ divided && "mt-1 border-t border-[var(--tiger-border,#e5e7eb)] pt-1",
4924
4972
  disabled ? "cursor-not-allowed opacity-50" : classNames(
4925
4973
  "cursor-pointer",
4926
4974
  "hover:bg-[var(--tiger-surface-muted,#f3f4f6)]",
@@ -4928,23 +4976,36 @@ function getDropdownItemClasses(disabled, divided) {
4928
4976
  )
4929
4977
  );
4930
4978
  }
4931
- function getPlacementClasses(placement) {
4932
- const placementMap = {
4933
- "bottom-start": "top-full left-0 mt-2",
4934
- bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
4935
- "bottom-end": "top-full right-0 mt-2",
4936
- "top-start": "bottom-full left-0 mb-2",
4937
- top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
4938
- "top-end": "bottom-full right-0 mb-2",
4939
- "left-start": "right-full top-0 mr-2",
4940
- left: "right-full top-1/2 -translate-y-1/2 mr-2",
4941
- "left-end": "right-full bottom-0 mr-2",
4942
- "right-start": "left-full top-0 ml-2",
4943
- right: "left-full top-1/2 -translate-y-1/2 ml-2",
4944
- "right-end": "left-full bottom-0 ml-2"
4945
- };
4946
- return placementMap[placement] || placementMap["bottom-start"];
4979
+ var DROPDOWN_ANIMATION_CSS = `
4980
+ @keyframes tiger-dropdown-in {
4981
+ from {
4982
+ opacity: 0;
4983
+ transform: scale(0.95);
4984
+ }
4985
+ to {
4986
+ opacity: 1;
4987
+ transform: scale(1);
4988
+ }
4989
+ }
4990
+ .tiger-dropdown-enter {
4991
+ animation: tiger-dropdown-in 0.15s ease-out;
4992
+ }
4993
+ `;
4994
+ var isDropdownStyleInjected = false;
4995
+ function injectDropdownStyles() {
4996
+ if (typeof document === "undefined" || isDropdownStyleInjected) return;
4997
+ const styleId = "tiger-ui-dropdown-styles";
4998
+ if (document.getElementById(styleId)) {
4999
+ isDropdownStyleInjected = true;
5000
+ return;
5001
+ }
5002
+ const style = document.createElement("style");
5003
+ style.id = styleId;
5004
+ style.textContent = DROPDOWN_ANIMATION_CSS;
5005
+ document.head.appendChild(style);
5006
+ isDropdownStyleInjected = true;
4947
5007
  }
5008
+ var DROPDOWN_ENTER_CLASS = "tiger-dropdown-enter";
4948
5009
 
4949
5010
  // src/utils/drawer-utils.ts
4950
5011
  function getDrawerMaskClasses(visible) {
@@ -4953,12 +5014,11 @@ function getDrawerMaskClasses(visible) {
4953
5014
  visible ? "opacity-100" : "opacity-0 pointer-events-none"
4954
5015
  );
4955
5016
  }
4956
- function getDrawerContainerClasses(zIndex) {
4957
- void zIndex;
5017
+ function getDrawerContainerClasses() {
4958
5018
  return "fixed inset-0 overflow-hidden";
4959
5019
  }
4960
5020
  function getDrawerPanelClasses(placement, visible, size) {
4961
- const baseClasses = "absolute bg-[var(--tiger-surface,#ffffff)] shadow-xl transition-transform duration-300 ease-in-out pointer-events-auto";
5021
+ const baseClasses2 = "absolute bg-[var(--tiger-surface,#ffffff)] shadow-xl transition-transform duration-300 ease-in-out pointer-events-auto";
4962
5022
  const sizeMap = {
4963
5023
  sm: { width: "w-64", height: "h-48" },
4964
5024
  md: { width: "w-96", height: "h-64" },
@@ -4988,7 +5048,7 @@ function getDrawerPanelClasses(placement, visible, size) {
4988
5048
  visible ? "translate-y-0" : "translate-y-full"
4989
5049
  )
4990
5050
  };
4991
- return classNames(baseClasses, placementClasses[placement]);
5051
+ return classNames(baseClasses2, placementClasses[placement]);
4992
5052
  }
4993
5053
  function getDrawerHeaderClasses() {
4994
5054
  return "flex items-center justify-between px-6 py-4 border-b border-[var(--tiger-border,#e5e7eb)]";
@@ -5063,19 +5123,15 @@ var alertDescriptionSizeClasses = {
5063
5123
  var alertCloseButtonBaseClasses = "ml-auto -mr-1 -mt-0.5 rounded-md p-1.5 inline-flex focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors";
5064
5124
  var alertIconContainerClasses = "flex-shrink-0";
5065
5125
  var alertContentClasses = "flex-1 ml-3";
5066
- var alertSuccessIconPath = statusSuccessIconPath;
5067
- var alertWarningIconPath = statusWarningIconPath;
5068
- var alertErrorIconPath = statusErrorIconPath;
5069
- var alertInfoIconPath = statusInfoIconPath;
5070
5126
  var alertCloseIconPath = closeIconPathD;
5127
+ var alertIconPaths = {
5128
+ success: statusSuccessIconPath,
5129
+ warning: statusWarningIconPath,
5130
+ error: statusErrorIconPath,
5131
+ info: statusInfoIconPath
5132
+ };
5071
5133
  function getAlertIconPath(type) {
5072
- const iconPaths = {
5073
- success: alertSuccessIconPath,
5074
- warning: alertWarningIconPath,
5075
- error: alertErrorIconPath,
5076
- info: alertInfoIconPath
5077
- };
5078
- return iconPaths[type];
5134
+ return alertIconPaths[type];
5079
5135
  }
5080
5136
 
5081
5137
  // src/utils/message-utils.ts
@@ -5089,10 +5145,6 @@ var messagePositionClasses = {
5089
5145
  "bottom-right": "bottom-6 right-6"
5090
5146
  };
5091
5147
  var messageBaseClasses = "flex items-center gap-3 px-4 py-3 rounded-lg shadow-lg border pointer-events-auto transition-all duration-300 ease-in-out";
5092
- var messageEnterClasses = "opacity-0 -translate-y-2";
5093
- var messageEnterActiveClasses = "opacity-100 translate-y-0";
5094
- var messageLeaveClasses = "opacity-100 translate-y-0";
5095
- var messageLeaveActiveClasses = "opacity-0 -translate-y-2";
5096
5148
  var defaultMessageThemeColors = {
5097
5149
  info: {
5098
5150
  bg: "bg-[var(--tiger-message-info-bg,#eff6ff)]",
@@ -5126,7 +5178,7 @@ var defaultMessageThemeColors = {
5126
5178
  }
5127
5179
  };
5128
5180
  function getMessageTypeClasses(type, themeColors = defaultMessageThemeColors) {
5129
- return themeColors[type] || themeColors.info;
5181
+ return themeColors[type];
5130
5182
  }
5131
5183
  var messageIconPaths = {
5132
5184
  success: statusSuccessIconPath,
@@ -5136,7 +5188,7 @@ var messageIconPaths = {
5136
5188
  loading: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
5137
5189
  };
5138
5190
  function getMessageIconPath(type) {
5139
- return messageIconPaths[type] || messageIconPaths.info;
5191
+ return messageIconPaths[type];
5140
5192
  }
5141
5193
  var messageCloseIconPath = closeIconPathD;
5142
5194
  var messageCloseButtonClasses = "ml-auto p-1 rounded hover:bg-[var(--tiger-surface-muted,#e5e7eb)] transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[var(--tiger-primary,#2563eb)]";
@@ -5235,25 +5287,23 @@ function getLoadingOverlaySpinnerClasses(customClassName) {
5235
5287
  function getLoadingClasses(variant, size, color, customColor) {
5236
5288
  const sizeClass = loadingSizeClasses[size];
5237
5289
  const colorClass = customColor ? "" : loadingColorClasses[color];
5238
- const baseClasses = classNames(sizeClass, colorClass);
5290
+ const baseClasses2 = classNames(sizeClass, colorClass);
5239
5291
  switch (variant) {
5240
- case "spinner":
5241
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5242
5292
  case "dots":
5243
- return baseClasses;
5244
5293
  case "bars":
5245
- return baseClasses;
5246
- case "ring":
5247
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5294
+ return baseClasses2;
5248
5295
  case "pulse":
5249
- return classNames(baseClasses, "animate-pulse");
5296
+ return classNames(baseClasses2, "animate-pulse");
5297
+ case "spinner":
5298
+ case "ring":
5250
5299
  default:
5251
- return classNames(baseClasses, loadingSpinnerBaseClasses);
5300
+ return classNames(baseClasses2, loadingSpinnerBaseClasses);
5252
5301
  }
5253
5302
  }
5254
5303
  function getSpinnerSVG(variant) {
5255
5304
  switch (variant) {
5256
5305
  case "spinner":
5306
+ default:
5257
5307
  return {
5258
5308
  viewBox: "0 0 24 24",
5259
5309
  elements: [
@@ -5326,24 +5376,6 @@ function getSpinnerSVG(variant) {
5326
5376
  }
5327
5377
  ]
5328
5378
  };
5329
- default:
5330
- return {
5331
- viewBox: "0 0 24 24",
5332
- elements: [
5333
- {
5334
- type: "circle",
5335
- attrs: {
5336
- className: "opacity-25",
5337
- cx: "12",
5338
- cy: "12",
5339
- r: "10",
5340
- stroke: "currentColor",
5341
- strokeWidth: "4",
5342
- fill: "none"
5343
- }
5344
- }
5345
- ]
5346
- };
5347
5379
  }
5348
5380
  }
5349
5381
  var dotsVariantConfig = {
@@ -5448,6 +5480,25 @@ function injectLoadingAnimationStyles() {
5448
5480
  }
5449
5481
  }
5450
5482
 
5483
+ // src/utils/floating-popup-utils.ts
5484
+ function createFloatingIdFactory(prefix) {
5485
+ let counter = 0;
5486
+ return () => `tiger-${prefix}-${++counter}`;
5487
+ }
5488
+ function buildTriggerHandlerMap(trigger, handlers, framework = "vue") {
5489
+ switch (trigger) {
5490
+ case "click":
5491
+ return { onClick: handlers.toggle };
5492
+ case "hover":
5493
+ return framework === "vue" ? { onMouseenter: handlers.show, onMouseleave: handlers.hide } : { onMouseEnter: handlers.show, onMouseLeave: handlers.hide };
5494
+ case "focus":
5495
+ return framework === "vue" ? { onFocusin: handlers.show, onFocusout: handlers.hide } : { onFocus: handlers.show, onBlur: handlers.hide };
5496
+ case "manual":
5497
+ default:
5498
+ return {};
5499
+ }
5500
+ }
5501
+
5451
5502
  // src/utils/popconfirm-utils.ts
5452
5503
  function getPopconfirmContainerClasses() {
5453
5504
  return classNames("tiger-popconfirm", "relative", "inline-block", "w-fit", "justify-self-start");
@@ -5618,14 +5669,9 @@ function getPopoverTriggerClasses(disabled) {
5618
5669
  }
5619
5670
  function getPopoverContentClasses(width) {
5620
5671
  let widthClass = "min-w-[200px]";
5621
- if (width) {
5622
- if (typeof width === "number") {
5623
- widthClass = `w-[${width}px]`;
5624
- } else if (width.match(/^\d+$/)) {
5625
- widthClass = `w-[${width}px]`;
5626
- } else {
5627
- widthClass = width;
5628
- }
5672
+ if (width != null && width !== "") {
5673
+ const w = String(width);
5674
+ widthClass = /^\d+$/.test(w) ? `w-[${w}px]` : w;
5629
5675
  }
5630
5676
  return classNames(
5631
5677
  "tiger-popover-content",
@@ -5639,20 +5685,26 @@ function getPopoverContentClasses(width) {
5639
5685
  "border-[var(--tiger-border,#e5e7eb)]"
5640
5686
  );
5641
5687
  }
5688
+ var POPOVER_TITLE_CLASSES = classNames(
5689
+ "tiger-popover-title",
5690
+ "text-sm",
5691
+ "font-semibold",
5692
+ "text-[var(--tiger-text,#111827)]",
5693
+ "mb-2",
5694
+ "border-b",
5695
+ "border-[var(--tiger-border,#e5e7eb)]",
5696
+ "pb-2"
5697
+ );
5698
+ var POPOVER_TEXT_CLASSES = classNames(
5699
+ "tiger-popover-text",
5700
+ "text-sm",
5701
+ "text-[var(--tiger-text-muted,#374151)]"
5702
+ );
5642
5703
  function getPopoverTitleClasses() {
5643
- return classNames(
5644
- "tiger-popover-title",
5645
- "text-sm",
5646
- "font-semibold",
5647
- "text-[var(--tiger-text,#111827)]",
5648
- "mb-2",
5649
- "border-b",
5650
- "border-[var(--tiger-border,#e5e7eb)]",
5651
- "pb-2"
5652
- );
5704
+ return POPOVER_TITLE_CLASSES;
5653
5705
  }
5654
5706
  function getPopoverContentTextClasses() {
5655
- return classNames("tiger-popover-text", "text-sm", "text-[var(--tiger-text-muted,#374151)]");
5707
+ return POPOVER_TEXT_CLASSES;
5656
5708
  }
5657
5709
 
5658
5710
  // src/utils/tooltip-utils.ts
@@ -5699,6 +5751,9 @@ var iconSizeClasses = {
5699
5751
  lg: "w-6 h-6",
5700
5752
  xl: "w-8 h-8"
5701
5753
  };
5754
+ var iconSvgDefaultStrokeWidth = 2;
5755
+ var iconSvgDefaultStrokeLinecap = "round";
5756
+ var iconSvgDefaultStrokeLinejoin = "round";
5702
5757
 
5703
5758
  // src/utils/code-utils.ts
5704
5759
  var codeBlockContainerClasses = "relative rounded-lg border border-gray-200 bg-gray-50 text-gray-800 dark:border-gray-800 dark:bg-gray-900/60 dark:text-gray-100";
@@ -5706,82 +5761,574 @@ var codeBlockPreClasses = "m-0 overflow-auto p-4 text-sm leading-relaxed font-mo
5706
5761
  var codeBlockCopyButtonBaseClasses = "absolute right-3 top-0 -translate-y-1/2 inline-flex items-center rounded-md border border-gray-200 bg-white/90 px-1.5 py-0.5 text-[10px] text-gray-600 shadow-sm transition-colors hover:bg-white hover:text-gray-900 dark:border-gray-700 dark:bg-gray-900/90 dark:text-gray-200 dark:hover:bg-gray-800";
5707
5762
  var codeBlockCopyButtonCopiedClasses = "border-[var(--tiger-primary,#2563eb)] text-[var(--tiger-primary,#2563eb)]";
5708
5763
 
5709
- // src/utils/carousel-utils.ts
5710
- var carouselBaseClasses = "relative overflow-hidden w-full";
5711
- var carouselTrackScrollClasses = "flex transition-transform ease-in-out";
5712
- var carouselTrackFadeClasses = "relative";
5713
- var carouselSlideBaseClasses = "flex-shrink-0 w-full";
5714
- var carouselSlideFadeClasses = "absolute inset-0 transition-opacity ease-in-out";
5715
- var carouselDotsBaseClasses = "absolute flex gap-2 z-10";
5716
- var carouselDotsPositionClasses = {
5717
- top: "top-4 left-1/2 -translate-x-1/2 flex-row",
5718
- bottom: "bottom-4 left-1/2 -translate-x-1/2 flex-row",
5719
- left: "left-4 top-1/2 -translate-y-1/2 flex-col",
5720
- right: "right-4 top-1/2 -translate-y-1/2 flex-col"
5721
- };
5722
- var carouselDotClasses = "w-3 h-3 rounded-full transition-all duration-200 cursor-pointer border-0 p-0 bg-white/50 hover:bg-white/75 focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-offset-2 focus-visible:ring-offset-gray-800";
5723
- var carouselDotActiveClasses = "bg-white scale-110";
5724
- var carouselArrowBaseClasses = "absolute top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-10 h-10 rounded-full bg-black/30 text-white cursor-pointer transition-all duration-200 hover:bg-black/50 focus:outline-none focus-visible:ring-2 focus-visible:ring-white border-0";
5725
- var carouselPrevArrowClasses = "left-4";
5726
- var carouselNextArrowClasses = "right-4";
5727
- var carouselArrowDisabledClasses = "opacity-50 cursor-not-allowed pointer-events-none";
5728
- function getCarouselContainerClasses(className) {
5729
- const classes = [carouselBaseClasses];
5730
- if (className) {
5731
- classes.push(className);
5732
- }
5733
- return classes.filter(Boolean).join(" ");
5734
- }
5735
- function getCarouselDotsClasses(position) {
5736
- return `${carouselDotsBaseClasses} ${carouselDotsPositionClasses[position]}`;
5737
- }
5738
- function getCarouselDotClasses(isActive) {
5739
- const classes = [carouselDotClasses];
5740
- if (isActive) {
5741
- classes.push(carouselDotActiveClasses);
5764
+ // src/theme/colors.ts
5765
+ var defaultThemeColors = {
5766
+ primary: {
5767
+ bg: "bg-[var(--tiger-primary,#2563eb)]",
5768
+ bgHover: "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
5769
+ text: "text-white",
5770
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5771
+ disabled: "disabled:bg-[var(--tiger-primary-disabled,#93c5fd)]"
5772
+ },
5773
+ secondary: {
5774
+ bg: "bg-[var(--tiger-secondary,#4b5563)]",
5775
+ bgHover: "hover:bg-[var(--tiger-secondary-hover,#374151)]",
5776
+ text: "text-white",
5777
+ focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
5778
+ disabled: "disabled:bg-[var(--tiger-secondary-disabled,#9ca3af)]"
5779
+ },
5780
+ outline: {
5781
+ bg: "bg-transparent",
5782
+ bgHover: "hover:bg-[var(--tiger-outline-bg-hover,#eff6ff)]",
5783
+ text: "text-[var(--tiger-primary,#2563eb)]",
5784
+ border: "border-2 border-[var(--tiger-primary,#2563eb)]",
5785
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5786
+ disabled: "disabled:border-[var(--tiger-primary-disabled,#93c5fd)] disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
5787
+ },
5788
+ ghost: {
5789
+ bg: "bg-transparent",
5790
+ bgHover: "hover:bg-[var(--tiger-ghost-bg-hover,#eff6ff)]",
5791
+ text: "text-[var(--tiger-primary,#2563eb)]",
5792
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5793
+ disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
5794
+ },
5795
+ link: {
5796
+ bg: "bg-transparent",
5797
+ bgHover: "hover:underline",
5798
+ text: "text-[var(--tiger-primary,#2563eb)]",
5799
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5800
+ disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
5742
5801
  }
5743
- return classes.filter(Boolean).join(" ");
5802
+ };
5803
+ function getButtonVariantClasses(variant, colors = defaultThemeColors) {
5804
+ const scheme = colors[variant];
5805
+ const classes = [
5806
+ scheme.bg,
5807
+ scheme.bgHover,
5808
+ scheme.text,
5809
+ scheme.border,
5810
+ scheme.borderHover,
5811
+ scheme.focus,
5812
+ scheme.disabled
5813
+ ].filter(Boolean);
5814
+ return classes.join(" ");
5744
5815
  }
5745
- function getCarouselArrowClasses(type, disabled) {
5746
- const classes = [carouselArrowBaseClasses];
5747
- classes.push(type === "prev" ? carouselPrevArrowClasses : carouselNextArrowClasses);
5748
- if (disabled) {
5749
- classes.push(carouselArrowDisabledClasses);
5816
+ var defaultRadioColors = {
5817
+ border: "border-[var(--tiger-border,#d1d5db)]",
5818
+ borderChecked: "border-[var(--tiger-primary,#2563eb)]",
5819
+ bg: "bg-[var(--tiger-surface,#ffffff)]",
5820
+ bgChecked: "bg-[var(--tiger-primary,#2563eb)]",
5821
+ innerDot: "bg-[var(--tiger-surface,#ffffff)]",
5822
+ focus: "ring-[var(--tiger-primary,#2563eb)]",
5823
+ disabled: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#d1d5db)]",
5824
+ textDisabled: "text-[var(--tiger-text-muted,#6b7280)]"
5825
+ };
5826
+ var getRadioColorClasses = (colors = defaultRadioColors) => colors;
5827
+ var defaultLinkThemeColors = {
5828
+ primary: {
5829
+ text: "text-[var(--tiger-primary,#2563eb)]",
5830
+ textHover: "hover:text-[var(--tiger-primary-hover,#1d4ed8)]",
5831
+ focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
5832
+ disabled: "text-[var(--tiger-primary-disabled,#93c5fd)]"
5833
+ },
5834
+ secondary: {
5835
+ text: "text-[var(--tiger-secondary,#4b5563)]",
5836
+ textHover: "hover:text-[var(--tiger-secondary-hover,#374151)]",
5837
+ focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
5838
+ disabled: "text-[var(--tiger-secondary-disabled,#9ca3af)]"
5839
+ },
5840
+ default: {
5841
+ text: "text-gray-700",
5842
+ textHover: "hover:text-gray-900",
5843
+ focus: "focus:ring-gray-500",
5844
+ disabled: "text-gray-400"
5750
5845
  }
5751
- return classes.filter(Boolean).join(" ");
5846
+ };
5847
+ function getLinkVariantClasses(variant, colors, options) {
5848
+ const scheme = (colors ?? defaultLinkThemeColors)[variant];
5849
+ if (options?.disabled) return scheme.disabled;
5850
+ return `${scheme.text} ${scheme.textHover}`;
5752
5851
  }
5753
- function getNextSlideIndex(currentIndex, totalSlides, infinite) {
5754
- if (totalSlides <= 0) return 0;
5755
- const nextIndex = currentIndex + 1;
5756
- if (nextIndex >= totalSlides) {
5757
- return infinite ? 0 : currentIndex;
5852
+ var textSizeClasses = {
5853
+ xs: "text-xs",
5854
+ sm: "text-sm",
5855
+ base: "text-base",
5856
+ lg: "text-lg",
5857
+ xl: "text-xl",
5858
+ "2xl": "text-2xl",
5859
+ "3xl": "text-3xl",
5860
+ "4xl": "text-4xl",
5861
+ "5xl": "text-5xl",
5862
+ "6xl": "text-6xl"
5863
+ };
5864
+ var textWeightClasses = {
5865
+ thin: "font-thin",
5866
+ light: "font-light",
5867
+ normal: "font-normal",
5868
+ medium: "font-medium",
5869
+ semibold: "font-semibold",
5870
+ bold: "font-bold",
5871
+ extrabold: "font-extrabold",
5872
+ black: "font-black"
5873
+ };
5874
+ var textAlignClasses = {
5875
+ left: "text-left",
5876
+ center: "text-center",
5877
+ right: "text-right",
5878
+ justify: "text-justify"
5879
+ };
5880
+ var textColorClasses = {
5881
+ default: "text-[var(--tiger-text,#111827)]",
5882
+ primary: "text-[var(--tiger-primary,#2563eb)]",
5883
+ secondary: "text-[var(--tiger-secondary,#4b5563)]",
5884
+ success: "text-[var(--tiger-success,#16a34a)]",
5885
+ warning: "text-[var(--tiger-warning,#ca8a04)]",
5886
+ danger: "text-[var(--tiger-error,#dc2626)]",
5887
+ muted: "text-[var(--tiger-text-muted,#6b7280)]"
5888
+ };
5889
+ var textDecorationClasses = {
5890
+ truncate: "truncate",
5891
+ italic: "italic",
5892
+ underline: "underline",
5893
+ lineThrough: "line-through"
5894
+ };
5895
+ var defaultTagThemeColors = {
5896
+ default: {
5897
+ bg: "bg-[var(--tiger-tag-default-bg,#f3f4f6)]",
5898
+ text: "text-[var(--tiger-text,#111827)]",
5899
+ border: "border-[var(--tiger-border,#e5e7eb)]",
5900
+ closeBgHover: "hover:bg-[var(--tiger-tag-default-close-hover,#e5e7eb)]"
5901
+ },
5902
+ primary: {
5903
+ bg: "bg-[var(--tiger-tag-primary-bg,#dbeafe)]",
5904
+ text: "text-[var(--tiger-primary,#2563eb)]",
5905
+ border: "border-[var(--tiger-tag-primary-border,#bfdbfe)]",
5906
+ closeBgHover: "hover:bg-[var(--tiger-tag-primary-close-hover,#bfdbfe)]"
5907
+ },
5908
+ success: {
5909
+ bg: "bg-[var(--tiger-tag-success-bg,#dcfce7)]",
5910
+ text: "text-[var(--tiger-success,#16a34a)]",
5911
+ border: "border-[var(--tiger-tag-success-border,#bbf7d0)]",
5912
+ closeBgHover: "hover:bg-[var(--tiger-tag-success-close-hover,#bbf7d0)]"
5913
+ },
5914
+ warning: {
5915
+ bg: "bg-[var(--tiger-tag-warning-bg,#fef9c3)]",
5916
+ text: "text-[var(--tiger-warning,#ca8a04)]",
5917
+ border: "border-[var(--tiger-tag-warning-border,#fef08a)]",
5918
+ closeBgHover: "hover:bg-[var(--tiger-tag-warning-close-hover,#fef08a)]"
5919
+ },
5920
+ danger: {
5921
+ bg: "bg-[var(--tiger-tag-danger-bg,#fee2e2)]",
5922
+ text: "text-[var(--tiger-error,#dc2626)]",
5923
+ border: "border-[var(--tiger-tag-danger-border,#fecaca)]",
5924
+ closeBgHover: "hover:bg-[var(--tiger-tag-danger-close-hover,#fecaca)]"
5925
+ },
5926
+ info: {
5927
+ bg: "bg-[var(--tiger-tag-info-bg,#e0f2fe)]",
5928
+ text: "text-[var(--tiger-info,#3b82f6)]",
5929
+ border: "border-[var(--tiger-tag-info-border,#bae6fd)]",
5930
+ closeBgHover: "hover:bg-[var(--tiger-tag-info-close-hover,#bae6fd)]"
5758
5931
  }
5759
- return nextIndex;
5932
+ };
5933
+ function getTagVariantClasses(variant, colors = defaultTagThemeColors) {
5934
+ const scheme = colors[variant];
5935
+ const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
5936
+ return classes.join(" ");
5760
5937
  }
5761
- function getPrevSlideIndex(currentIndex, totalSlides, infinite) {
5762
- if (totalSlides <= 0) return 0;
5763
- const prevIndex = currentIndex - 1;
5764
- if (prevIndex < 0) {
5765
- return infinite ? totalSlides - 1 : currentIndex;
5938
+ var defaultBadgeThemeColors = {
5939
+ default: {
5940
+ bg: "bg-[var(--tiger-text-muted,#6b7280)]",
5941
+ text: "text-white"
5942
+ },
5943
+ primary: {
5944
+ bg: "bg-[var(--tiger-primary,#2563eb)]",
5945
+ text: "text-white"
5946
+ },
5947
+ success: {
5948
+ bg: "bg-[var(--tiger-success,#16a34a)]",
5949
+ text: "text-white"
5950
+ },
5951
+ warning: {
5952
+ bg: "bg-[var(--tiger-warning,#ca8a04)]",
5953
+ text: "text-white"
5954
+ },
5955
+ danger: {
5956
+ bg: "bg-[var(--tiger-error,#dc2626)]",
5957
+ text: "text-white"
5958
+ },
5959
+ info: {
5960
+ bg: "bg-[var(--tiger-info,#3b82f6)]",
5961
+ text: "text-white"
5766
5962
  }
5767
- return prevIndex;
5768
- }
5769
- function isNextDisabled(currentIndex, totalSlides, infinite) {
5770
- if (infinite) return false;
5771
- return currentIndex >= totalSlides - 1;
5772
- }
5773
- function isPrevDisabled(currentIndex, _totalSlides, infinite) {
5774
- if (infinite) return false;
5775
- return currentIndex <= 0;
5963
+ };
5964
+ function getBadgeVariantClasses(variant, colors = defaultBadgeThemeColors) {
5965
+ const scheme = colors[variant];
5966
+ return `${scheme.bg} ${scheme.text}`;
5776
5967
  }
5777
- function clampSlideIndex(index, totalSlides) {
5778
- if (totalSlides <= 0) return 0;
5779
- if (index < 0) return 0;
5780
- if (index >= totalSlides) return totalSlides - 1;
5781
- return index;
5968
+ var defaultProgressThemeColors = {
5969
+ default: {
5970
+ bg: "bg-[color:var(--tiger-text-muted,#6b7280)]",
5971
+ text: "text-[color:var(--tiger-text,#374151)]"
5972
+ },
5973
+ primary: {
5974
+ bg: "bg-[color:var(--tiger-primary,#2563eb)]",
5975
+ text: "text-[color:var(--tiger-primary,#2563eb)]"
5976
+ },
5977
+ success: {
5978
+ bg: "bg-[color:var(--tiger-success,#16a34a)]",
5979
+ text: "text-[color:var(--tiger-success,#16a34a)]"
5980
+ },
5981
+ warning: {
5982
+ bg: "bg-[color:var(--tiger-warning,#f59e0b)]",
5983
+ text: "text-[color:var(--tiger-warning,#f59e0b)]"
5984
+ },
5985
+ danger: {
5986
+ bg: "bg-[color:var(--tiger-error,#dc2626)]",
5987
+ text: "text-[color:var(--tiger-error,#dc2626)]"
5988
+ },
5989
+ info: {
5990
+ bg: "bg-[color:var(--tiger-info,#0ea5e9)]",
5991
+ text: "text-[color:var(--tiger-info,#0ea5e9)]"
5992
+ }
5993
+ };
5994
+ function getProgressVariantClasses(variant, colors = defaultProgressThemeColors) {
5995
+ const scheme = colors[variant];
5996
+ return scheme.bg;
5782
5997
  }
5783
- function getScrollTransform(currentIndex) {
5784
- return `translateX(-${currentIndex * 100}%)`;
5998
+ function getProgressTextColorClasses(variant, colors = defaultProgressThemeColors) {
5999
+ const scheme = colors[variant];
6000
+ return scheme.text || "text-[var(--tiger-text,#374151)]";
6001
+ }
6002
+ var defaultAlertThemeColors = {
6003
+ success: {
6004
+ bg: "bg-[var(--tiger-alert-success-bg,#f0fdf4)]",
6005
+ border: "border-[var(--tiger-alert-success-border,#bbf7d0)]",
6006
+ icon: "text-[var(--tiger-alert-success-icon,#22c55e)]",
6007
+ title: "text-[var(--tiger-alert-success-title,#166534)]",
6008
+ description: "text-[var(--tiger-alert-success-description,#15803d)]",
6009
+ closeButton: "text-[var(--tiger-alert-success-close,#22c55e)]",
6010
+ closeButtonHover: "hover:bg-[var(--tiger-alert-success-close-hover-bg,#dcfce7)]",
6011
+ focus: "focus:ring-[color:var(--tiger-alert-success-ring,#22c55e)]"
6012
+ },
6013
+ warning: {
6014
+ bg: "bg-[var(--tiger-alert-warning-bg,#fefce8)]",
6015
+ border: "border-[var(--tiger-alert-warning-border,#fef08a)]",
6016
+ icon: "text-[var(--tiger-alert-warning-icon,#eab308)]",
6017
+ title: "text-[var(--tiger-alert-warning-title,#854d0e)]",
6018
+ description: "text-[var(--tiger-alert-warning-description,#a16207)]",
6019
+ closeButton: "text-[var(--tiger-alert-warning-close,#eab308)]",
6020
+ closeButtonHover: "hover:bg-[var(--tiger-alert-warning-close-hover-bg,#fef9c3)]",
6021
+ focus: "focus:ring-[color:var(--tiger-alert-warning-ring,#eab308)]"
6022
+ },
6023
+ error: {
6024
+ bg: "bg-[var(--tiger-alert-error-bg,#fef2f2)]",
6025
+ border: "border-[var(--tiger-alert-error-border,#fecaca)]",
6026
+ icon: "text-[var(--tiger-alert-error-icon,#ef4444)]",
6027
+ title: "text-[var(--tiger-alert-error-title,#991b1b)]",
6028
+ description: "text-[var(--tiger-alert-error-description,#b91c1c)]",
6029
+ closeButton: "text-[var(--tiger-alert-error-close,#ef4444)]",
6030
+ closeButtonHover: "hover:bg-[var(--tiger-alert-error-close-hover-bg,#fee2e2)]",
6031
+ focus: "focus:ring-[color:var(--tiger-alert-error-ring,#ef4444)]"
6032
+ },
6033
+ info: {
6034
+ bg: "bg-[var(--tiger-alert-info-bg,#eff6ff)]",
6035
+ border: "border-[var(--tiger-alert-info-border,#bfdbfe)]",
6036
+ icon: "text-[var(--tiger-alert-info-icon,#3b82f6)]",
6037
+ title: "text-[var(--tiger-alert-info-title,#1e40af)]",
6038
+ description: "text-[var(--tiger-alert-info-description,#1d4ed8)]",
6039
+ closeButton: "text-[var(--tiger-alert-info-close,#3b82f6)]",
6040
+ closeButtonHover: "hover:bg-[var(--tiger-alert-info-close-hover-bg,#dbeafe)]",
6041
+ focus: "focus:ring-[color:var(--tiger-alert-info-ring,#3b82f6)]"
6042
+ }
6043
+ };
6044
+ function getAlertTypeClasses(type, colors = defaultAlertThemeColors) {
6045
+ return colors[type];
6046
+ }
6047
+
6048
+ // src/utils/text-utils.ts
6049
+ function getTextClasses(props) {
6050
+ const {
6051
+ size = "base",
6052
+ weight = "normal",
6053
+ align,
6054
+ color = "default",
6055
+ truncate,
6056
+ italic,
6057
+ underline,
6058
+ lineThrough
6059
+ } = props;
6060
+ return classNames(
6061
+ textSizeClasses[size],
6062
+ textWeightClasses[weight],
6063
+ align && textAlignClasses[align],
6064
+ textColorClasses[color],
6065
+ truncate && textDecorationClasses.truncate,
6066
+ italic && textDecorationClasses.italic,
6067
+ underline && textDecorationClasses.underline,
6068
+ lineThrough && textDecorationClasses.lineThrough
6069
+ );
6070
+ }
6071
+
6072
+ // src/utils/image-utils.ts
6073
+ var imageBaseClasses = "relative inline-block overflow-hidden";
6074
+ function getImageImgClasses(fit) {
6075
+ const fitMap = {
6076
+ contain: "object-contain",
6077
+ cover: "object-cover",
6078
+ fill: "object-fill",
6079
+ none: "object-none",
6080
+ "scale-down": "object-scale-down"
6081
+ };
6082
+ return classNames("block w-full h-full", fitMap[fit]);
6083
+ }
6084
+ var imageErrorClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)]";
6085
+ var imageLoadingClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)] animate-pulse";
6086
+ var imagePreviewCursorClass = "cursor-pointer";
6087
+ var imageErrorIconPath = "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z";
6088
+ var zoomInIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7";
6089
+ var zoomOutIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7";
6090
+ var resetIconPath = "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15";
6091
+ var prevIconPath = "M15 19l-7-7 7-7";
6092
+ var nextIconPath = "M9 5l7 7-7 7";
6093
+ var previewCloseIconPath = "M6 18L18 6M6 6l12 12";
6094
+ var imagePreviewMaskClasses = "fixed inset-0 bg-[var(--tiger-image-mask,rgba(0,0,0,0.85))] transition-opacity";
6095
+ var imagePreviewWrapperClasses = "fixed inset-0 flex items-center justify-center select-none";
6096
+ var imagePreviewImgClasses = "max-w-none transition-transform duration-150 ease-out cursor-grab active:cursor-grabbing";
6097
+ var imagePreviewToolbarClasses = "absolute bottom-6 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white";
6098
+ var imagePreviewToolbarBtnClasses = "flex items-center justify-center w-8 h-8 rounded-full hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
6099
+ var imagePreviewNavBtnClasses = "absolute top-1/2 -translate-y-1/2 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
6100
+ var imagePreviewCloseBtnClasses = "absolute top-4 right-4 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50";
6101
+ var imagePreviewCounterClasses = "text-sm text-white/80 mx-2 tabular-nums";
6102
+ var imageCropperContainerClasses = "relative overflow-hidden bg-[var(--tiger-image-cropper-bg,#1a1a2e)] select-none touch-none";
6103
+ var imageCropperImgClasses = "absolute top-0 left-0 max-w-none pointer-events-none";
6104
+ var imageCropperMaskClasses = "absolute inset-0 pointer-events-none";
6105
+ var imageCropperSelectionClasses = "absolute border-2 border-[var(--tiger-image-cropper-border,#ffffff)] pointer-events-none";
6106
+ var imageCropperGuideClasses = "absolute border-[var(--tiger-image-cropper-border,rgba(255,255,255,0.4))] pointer-events-none";
6107
+ var imageCropperDragAreaClasses = "absolute cursor-move";
6108
+ function getCropperHandleClasses(handle) {
6109
+ const base = "absolute w-3 h-3 bg-[var(--tiger-image-cropper-border,#ffffff)] border border-[var(--tiger-image-cropper-handle-border,rgba(0,0,0,0.3))]";
6110
+ const positionMap = {
6111
+ nw: "-top-1.5 -left-1.5 cursor-nw-resize",
6112
+ n: "-top-1.5 left-1/2 -translate-x-1/2 cursor-n-resize",
6113
+ ne: "-top-1.5 -right-1.5 cursor-ne-resize",
6114
+ e: "top-1/2 -right-1.5 -translate-y-1/2 cursor-e-resize",
6115
+ se: "-bottom-1.5 -right-1.5 cursor-se-resize",
6116
+ s: "-bottom-1.5 left-1/2 -translate-x-1/2 cursor-s-resize",
6117
+ sw: "-bottom-1.5 -left-1.5 cursor-sw-resize",
6118
+ w: "top-1/2 -left-1.5 -translate-y-1/2 cursor-w-resize"
6119
+ };
6120
+ return classNames(base, positionMap[handle]);
6121
+ }
6122
+ var CROP_HANDLES = ["nw", "n", "ne", "e", "se", "s", "sw", "w"];
6123
+ var cropUploadTriggerClasses = "inline-flex items-center justify-center gap-2 px-4 py-2 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-lg text-[var(--tiger-text-muted,#6b7280)] hover:border-[var(--tiger-primary,#2563eb)] hover:text-[var(--tiger-primary,#2563eb)] transition-colors cursor-pointer focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-2";
6124
+ var cropUploadTriggerDisabledClasses = "inline-flex items-center justify-center gap-2 px-4 py-2 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-lg text-[var(--tiger-text-muted,#9ca3af)] cursor-not-allowed opacity-50";
6125
+ var uploadPlusIconPath = "M12 4v16m8-8H4";
6126
+ function clampScale(scale, min, max) {
6127
+ return Math.min(Math.max(scale, min), max);
6128
+ }
6129
+ function calculateTransform(scale, offsetX, offsetY) {
6130
+ return `translate(${offsetX}px, ${offsetY}px) scale(${scale})`;
6131
+ }
6132
+ function getPreviewNavState(currentIndex, total) {
6133
+ return {
6134
+ hasPrev: currentIndex > 0,
6135
+ hasNext: currentIndex < total - 1,
6136
+ counter: total > 1 ? `${currentIndex + 1} / ${total}` : ""
6137
+ };
6138
+ }
6139
+ function constrainCropRect(rect, imageWidth, imageHeight, aspectRatio) {
6140
+ let { x, y, width, height } = rect;
6141
+ if (aspectRatio && aspectRatio > 0) {
6142
+ const currentRatio = width / height;
6143
+ if (currentRatio > aspectRatio) {
6144
+ width = height * aspectRatio;
6145
+ } else {
6146
+ height = width / aspectRatio;
6147
+ }
6148
+ }
6149
+ width = Math.min(width, imageWidth);
6150
+ height = Math.min(height, imageHeight);
6151
+ x = Math.max(0, Math.min(x, imageWidth - width));
6152
+ y = Math.max(0, Math.min(y, imageHeight - height));
6153
+ return { x, y, width, height };
6154
+ }
6155
+ function resizeCropRect(rect, handle, dx, dy, imageWidth, imageHeight, aspectRatio, minW = 20, minH = 20) {
6156
+ let { x, y, width, height } = rect;
6157
+ switch (handle) {
6158
+ case "nw":
6159
+ x += dx;
6160
+ y += dy;
6161
+ width -= dx;
6162
+ height -= dy;
6163
+ break;
6164
+ case "n":
6165
+ y += dy;
6166
+ height -= dy;
6167
+ break;
6168
+ case "ne":
6169
+ width += dx;
6170
+ y += dy;
6171
+ height -= dy;
6172
+ break;
6173
+ case "e":
6174
+ width += dx;
6175
+ break;
6176
+ case "se":
6177
+ width += dx;
6178
+ height += dy;
6179
+ break;
6180
+ case "s":
6181
+ height += dy;
6182
+ break;
6183
+ case "sw":
6184
+ x += dx;
6185
+ width -= dx;
6186
+ height += dy;
6187
+ break;
6188
+ case "w":
6189
+ x += dx;
6190
+ width -= dx;
6191
+ break;
6192
+ }
6193
+ if (width < minW) {
6194
+ if (handle.includes("w")) {
6195
+ x = rect.x + rect.width - minW;
6196
+ }
6197
+ width = minW;
6198
+ }
6199
+ if (height < minH) {
6200
+ if (handle.includes("n")) {
6201
+ y = rect.y + rect.height - minH;
6202
+ }
6203
+ height = minH;
6204
+ }
6205
+ if (aspectRatio && aspectRatio > 0) {
6206
+ const newRatio = width / height;
6207
+ if (handle === "n" || handle === "s" || handle === "nw" || handle === "sw" || handle === "ne" || handle === "se") {
6208
+ width = height * aspectRatio;
6209
+ }
6210
+ if (handle === "e" || handle === "w") {
6211
+ height = width / aspectRatio;
6212
+ }
6213
+ if (newRatio !== aspectRatio && (handle === "nw" || handle === "ne" || handle === "sw" || handle === "se")) {
6214
+ width = height * aspectRatio;
6215
+ }
6216
+ }
6217
+ return constrainCropRect({ x, y, width, height }, imageWidth, imageHeight, aspectRatio);
6218
+ }
6219
+ function moveCropRect(rect, dx, dy, boundW, boundH) {
6220
+ const x = Math.max(0, Math.min(rect.x + dx, boundW - rect.width));
6221
+ const y = Math.max(0, Math.min(rect.y + dy, boundH - rect.height));
6222
+ return { x, y, width: rect.width, height: rect.height };
6223
+ }
6224
+ function getInitialCropRect(imageWidth, imageHeight, aspectRatio) {
6225
+ const padding = 0.1;
6226
+ let cropW = imageWidth * (1 - padding * 2);
6227
+ let cropH = imageHeight * (1 - padding * 2);
6228
+ if (aspectRatio && aspectRatio > 0) {
6229
+ if (cropW / cropH > aspectRatio) {
6230
+ cropW = cropH * aspectRatio;
6231
+ } else {
6232
+ cropH = cropW / aspectRatio;
6233
+ }
6234
+ }
6235
+ return {
6236
+ x: (imageWidth - cropW) / 2,
6237
+ y: (imageHeight - cropH) / 2,
6238
+ width: cropW,
6239
+ height: cropH
6240
+ };
6241
+ }
6242
+ function cropCanvas(image, cropRect, displayWidth, displayHeight, outputType = "image/png", quality = 0.92) {
6243
+ const scaleX = image.naturalWidth / displayWidth;
6244
+ const scaleY = image.naturalHeight / displayHeight;
6245
+ const sx = cropRect.x * scaleX;
6246
+ const sy = cropRect.y * scaleY;
6247
+ const sw = cropRect.width * scaleX;
6248
+ const sh = cropRect.height * scaleY;
6249
+ const canvas = document.createElement("canvas");
6250
+ canvas.width = Math.round(sw);
6251
+ canvas.height = Math.round(sh);
6252
+ const ctx = canvas.getContext("2d");
6253
+ if (ctx) {
6254
+ ctx.drawImage(image, sx, sy, sw, sh, 0, 0, canvas.width, canvas.height);
6255
+ }
6256
+ const dataUrl = canvas.toDataURL(outputType, quality);
6257
+ return { canvas, dataUrl };
6258
+ }
6259
+ function getTouchDistance(touch1, touch2) {
6260
+ const dx = touch1.clientX - touch2.clientX;
6261
+ const dy = touch1.clientY - touch2.clientY;
6262
+ return Math.sqrt(dx * dx + dy * dy);
6263
+ }
6264
+ function toCSSSize(value) {
6265
+ if (value === void 0) return void 0;
6266
+ return typeof value === "number" ? `${value}px` : value;
6267
+ }
6268
+
6269
+ // src/utils/carousel-utils.ts
6270
+ var carouselBaseClasses = "relative overflow-hidden w-full";
6271
+ var carouselTrackScrollClasses = "flex transition-transform ease-in-out";
6272
+ var carouselTrackFadeClasses = "relative";
6273
+ var carouselSlideBaseClasses = "flex-shrink-0 w-full";
6274
+ var carouselDotsBaseClasses = "absolute flex gap-2 z-10";
6275
+ var carouselDotsPositionClasses = {
6276
+ top: "top-4 left-1/2 -translate-x-1/2 flex-row",
6277
+ bottom: "bottom-4 left-1/2 -translate-x-1/2 flex-row",
6278
+ left: "left-4 top-1/2 -translate-y-1/2 flex-col",
6279
+ right: "right-4 top-1/2 -translate-y-1/2 flex-col"
6280
+ };
6281
+ 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";
6282
+ var carouselDotActiveClasses = "bg-white scale-110";
6283
+ 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";
6284
+ var carouselPrevArrowClasses = "left-4";
6285
+ var carouselNextArrowClasses = "right-4";
6286
+ var carouselArrowDisabledClasses = "opacity-50 cursor-not-allowed pointer-events-none";
6287
+ function getCarouselContainerClasses(className) {
6288
+ return className ? `${carouselBaseClasses} ${className}` : carouselBaseClasses;
6289
+ }
6290
+ function getCarouselDotsClasses(position) {
6291
+ return `${carouselDotsBaseClasses} ${carouselDotsPositionClasses[position]}`;
6292
+ }
6293
+ function getCarouselDotClasses(isActive) {
6294
+ return isActive ? `${carouselDotClasses} ${carouselDotActiveClasses}` : carouselDotClasses;
6295
+ }
6296
+ function getCarouselArrowClasses(type, disabled) {
6297
+ const position = type === "prev" ? carouselPrevArrowClasses : carouselNextArrowClasses;
6298
+ return disabled ? `${carouselArrowBaseClasses} ${position} ${carouselArrowDisabledClasses}` : `${carouselArrowBaseClasses} ${position}`;
6299
+ }
6300
+ function getNextSlideIndex(currentIndex, totalSlides, infinite) {
6301
+ if (totalSlides <= 0) return 0;
6302
+ const nextIndex = currentIndex + 1;
6303
+ if (nextIndex >= totalSlides) {
6304
+ return infinite ? 0 : currentIndex;
6305
+ }
6306
+ return nextIndex;
6307
+ }
6308
+ function getPrevSlideIndex(currentIndex, totalSlides, infinite) {
6309
+ if (totalSlides <= 0) return 0;
6310
+ const prevIndex = currentIndex - 1;
6311
+ if (prevIndex < 0) {
6312
+ return infinite ? totalSlides - 1 : currentIndex;
6313
+ }
6314
+ return prevIndex;
6315
+ }
6316
+ function isNextDisabled(currentIndex, totalSlides, infinite) {
6317
+ if (infinite) return false;
6318
+ return currentIndex >= totalSlides - 1;
6319
+ }
6320
+ function isPrevDisabled(currentIndex, _totalSlides, infinite) {
6321
+ if (infinite) return false;
6322
+ return currentIndex <= 0;
6323
+ }
6324
+ function clampSlideIndex(index, totalSlides) {
6325
+ if (totalSlides <= 0) return 0;
6326
+ if (index < 0) return 0;
6327
+ if (index >= totalSlides) return totalSlides - 1;
6328
+ return index;
6329
+ }
6330
+ function getScrollTransform(currentIndex) {
6331
+ return `translateX(-${currentIndex * 100}%)`;
5785
6332
  }
5786
6333
  var carouselPrevArrowPath = "M15.75 19.5L8.25 12l7.5-7.5";
5787
6334
  var carouselNextArrowPath = "M8.25 4.5l7.5 7.5-7.5 7.5";
@@ -5798,14 +6345,7 @@ var anchorLinkListHorizontalClasses = "flex items-center space-x-4 pb-2";
5798
6345
  var anchorLinkBaseClasses = "block text-sm text-gray-600 hover:text-[var(--tiger-primary,#2563eb)] transition-colors duration-200 whitespace-nowrap";
5799
6346
  var anchorLinkActiveClasses = "text-[var(--tiger-primary,#2563eb)] font-medium";
5800
6347
  function getAnchorWrapperClasses(affix, className) {
5801
- const classes = [anchorBaseClasses];
5802
- if (affix) {
5803
- classes.push(anchorAffixClasses);
5804
- }
5805
- if (className) {
5806
- classes.push(className);
5807
- }
5808
- return classes.filter(Boolean).join(" ");
6348
+ return [anchorBaseClasses, affix && anchorAffixClasses, className].filter(Boolean).join(" ");
5809
6349
  }
5810
6350
  function getAnchorInkContainerClasses(direction) {
5811
6351
  return direction === "vertical" ? anchorInkContainerVerticalClasses : anchorInkContainerHorizontalClasses;
@@ -5817,14 +6357,7 @@ function getAnchorLinkListClasses(direction) {
5817
6357
  return direction === "vertical" ? anchorLinkListVerticalClasses : anchorLinkListHorizontalClasses;
5818
6358
  }
5819
6359
  function getAnchorLinkClasses(active, className) {
5820
- const classes = [anchorLinkBaseClasses];
5821
- if (active) {
5822
- classes.push(anchorLinkActiveClasses);
5823
- }
5824
- if (className) {
5825
- classes.push(className);
5826
- }
5827
- return classes.filter(Boolean).join(" ");
6360
+ return [anchorLinkBaseClasses, active && anchorLinkActiveClasses, className].filter(Boolean).join(" ");
5828
6361
  }
5829
6362
  function getAnchorTargetElement(href) {
5830
6363
  if (!href || !href.startsWith("#")) {
@@ -5872,19 +6405,9 @@ function scrollToAnchor(href, container, targetOffset = 0) {
5872
6405
  if (!element) {
5873
6406
  return;
5874
6407
  }
5875
- const offsetTop = getElementOffsetTop(element, container) - targetOffset;
5876
- if (container === window) {
5877
- window.scrollTo({
5878
- top: offsetTop,
5879
- behavior: "smooth"
5880
- });
5881
- } else {
5882
- ;
5883
- container.scrollTo({
5884
- top: offsetTop,
5885
- behavior: "smooth"
5886
- });
5887
- }
6408
+ const top = getElementOffsetTop(element, container) - targetOffset;
6409
+ const scrollTarget = container === window ? window : container;
6410
+ scrollTarget.scrollTo({ top, behavior: "smooth" });
5888
6411
  }
5889
6412
  function findActiveAnchor(links, container, bounds = 5, targetOffset = 0) {
5890
6413
  if (links.length === 0) {
@@ -6140,6 +6663,33 @@ function createPieArcPath(options) {
6140
6663
  "Z"
6141
6664
  ].join(" ");
6142
6665
  }
6666
+ function computePieHoverOffset(startAngle, endAngle, offset2) {
6667
+ const midAngle = (startAngle + endAngle) / 2;
6668
+ return {
6669
+ dx: offset2 * Math.cos(midAngle),
6670
+ dy: offset2 * Math.sin(midAngle)
6671
+ };
6672
+ }
6673
+ function computePieLabelLine(cx, cy, outerRadius, startAngle, endAngle, offset2) {
6674
+ const midAngle = (startAngle + endAngle) / 2;
6675
+ const gap = offset2 ?? Math.max(12, outerRadius * 0.15);
6676
+ const anchor = polarToCartesian(cx, cy, outerRadius, midAngle);
6677
+ const elbow = polarToCartesian(cx, cy, outerRadius + gap * 0.6, midAngle);
6678
+ const isRight = Math.cos(midAngle) >= 0;
6679
+ return {
6680
+ anchor,
6681
+ elbow,
6682
+ label: {
6683
+ x: elbow.x + (isRight ? gap * 0.8 : -gap * 0.8),
6684
+ y: elbow.y
6685
+ },
6686
+ textAnchor: isRight ? "start" : "end"
6687
+ };
6688
+ }
6689
+ var PIE_EMPHASIS_SHADOW = "drop-shadow(0 4px 8px rgba(0,0,0,0.2))";
6690
+ var PIE_BASE_SHADOW = "drop-shadow(0 1px 2px rgba(0,0,0,0.06))";
6691
+ 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))";
6692
+ var DONUT_BASE_SHADOW = "drop-shadow(0 2px 8px rgba(0,0,0,0.10))";
6143
6693
  function getRadarAngles(count, startAngle = -Math.PI / 2) {
6144
6694
  if (count <= 0) return [];
6145
6695
  const step = Math.PI * 2 / count;
@@ -6175,6 +6725,49 @@ function createPolygonPath(points) {
6175
6725
  " "
6176
6726
  );
6177
6727
  }
6728
+ function getRadarLabelAlign(angle) {
6729
+ const TWO_PI = Math.PI * 2;
6730
+ const a = (angle % TWO_PI + TWO_PI) % TWO_PI;
6731
+ const threshold = Math.PI / 10;
6732
+ let textAnchor;
6733
+ if (Math.abs(a - Math.PI * 1.5) < threshold || a < threshold || Math.abs(a - TWO_PI) < threshold) {
6734
+ textAnchor = "middle";
6735
+ } else if (a > Math.PI - threshold && a < Math.PI + threshold) {
6736
+ textAnchor = "middle";
6737
+ } else if (a < Math.PI) {
6738
+ textAnchor = "start";
6739
+ } else {
6740
+ textAnchor = "end";
6741
+ }
6742
+ let dominantBaseline;
6743
+ if (Math.abs(a - Math.PI / 2) < threshold * 1.5) {
6744
+ dominantBaseline = "hanging";
6745
+ } else if (Math.abs(a - Math.PI * 1.5) < threshold * 1.5) {
6746
+ dominantBaseline = "auto";
6747
+ } else {
6748
+ dominantBaseline = "middle";
6749
+ }
6750
+ return { textAnchor, dominantBaseline };
6751
+ }
6752
+ var RADAR_SPLIT_AREA_COLORS = [
6753
+ "var(--tiger-chart-split-1,rgba(0,0,0,0.02))",
6754
+ "var(--tiger-chart-split-2,rgba(0,0,0,0.05))"
6755
+ ];
6756
+ var lineGradientCounter = 0;
6757
+ function getLineGradientPrefix() {
6758
+ return `tiger-line-grad-${++lineGradientCounter}`;
6759
+ }
6760
+ function resetLineGradientCounter() {
6761
+ lineGradientCounter = 0;
6762
+ }
6763
+ var areaGradientCounter = 0;
6764
+ function getAreaGradientPrefix() {
6765
+ return `tiger-area-grad-${++areaGradientCounter}`;
6766
+ }
6767
+ function resetAreaGradientCounter() {
6768
+ areaGradientCounter = 0;
6769
+ }
6770
+ var linePointTransitionClasses = "transition-all duration-200 ease-out";
6178
6771
  function createLinePath(points, curve = "linear") {
6179
6772
  if (points.length === 0) return "";
6180
6773
  if (points.length === 1) return `M ${points[0].x} ${points[0].y}`;
@@ -6330,6 +6923,63 @@ function stackSeriesData(seriesData) {
6330
6923
  }
6331
6924
  return result;
6332
6925
  }
6926
+ var barGradientCounter = 0;
6927
+ function getBarGradientPrefix() {
6928
+ return `tiger-bar-grad-${++barGradientCounter}`;
6929
+ }
6930
+ function resetBarGradientCounter() {
6931
+ barGradientCounter = 0;
6932
+ }
6933
+ function clampBarWidth(width, maxWidth) {
6934
+ if (maxWidth === void 0 || maxWidth <= 0) return width;
6935
+ return Math.min(width, maxWidth);
6936
+ }
6937
+ function ensureBarMinHeight(barY, barHeight, baseline, minHeight) {
6938
+ if (minHeight <= 0 || barHeight === 0 || barHeight >= minHeight) {
6939
+ return { y: barY, height: barHeight };
6940
+ }
6941
+ if (barY < baseline) {
6942
+ return { y: baseline - minHeight, height: minHeight };
6943
+ }
6944
+ return { y: baseline, height: minHeight };
6945
+ }
6946
+ function getBarValueLabelY(barY, barHeight, position, offset2 = 8) {
6947
+ if (position === "inside") {
6948
+ return barY + barHeight / 2;
6949
+ }
6950
+ return barY - offset2;
6951
+ }
6952
+ var barValueLabelClasses = "fill-[color:var(--tiger-text,#374151)] text-[11px] font-medium pointer-events-none select-none";
6953
+ var barValueLabelInsideClasses = "fill-white text-[11px] font-medium pointer-events-none select-none";
6954
+ 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";
6955
+ var scatterGradientCounter = 0;
6956
+ function getScatterGradientPrefix() {
6957
+ return `tiger-scatter-grad-${++scatterGradientCounter}`;
6958
+ }
6959
+ function resetScatterGradientCounter() {
6960
+ scatterGradientCounter = 0;
6961
+ }
6962
+ var scatterPointTransitionClasses = "transition-all duration-200 ease-out";
6963
+ function getScatterHoverShadow(color) {
6964
+ return `drop-shadow(0 0 4px ${color})`;
6965
+ }
6966
+ function getScatterPointPath(style, size) {
6967
+ switch (style) {
6968
+ case "square":
6969
+ return `M ${-size} ${-size} L ${size} ${-size} L ${size} ${size} L ${-size} ${size} Z`;
6970
+ case "triangle": {
6971
+ const h = size * 1.15;
6972
+ return `M 0 ${-h} L ${size} ${h * 0.75} L ${-size} ${h * 0.75} Z`;
6973
+ }
6974
+ case "diamond":
6975
+ return `M 0 ${-size * 1.2} L ${size} 0 L 0 ${size * 1.2} L ${-size} 0 Z`;
6976
+ }
6977
+ }
6978
+ function getScatterHoverSize(baseSize) {
6979
+ return baseSize + 2;
6980
+ }
6981
+ 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)}}`;
6982
+ var SCATTER_ENTRANCE_CLASS = "tiger-scatter-entrance";
6333
6983
 
6334
6984
  // src/utils/chart-interaction.ts
6335
6985
  function createChartInteractionHandlers(data, state, options) {
@@ -6427,6 +7077,59 @@ function getChartEntranceTransform(type, progress, options = {}) {
6427
7077
  }
6428
7078
  }
6429
7079
 
7080
+ // src/utils/chart-shared.ts
7081
+ function resolveChartPalette(colors, fallbackColor) {
7082
+ if (colors && colors.length > 0) return colors;
7083
+ if (fallbackColor) return [fallbackColor];
7084
+ return [...DEFAULT_CHART_COLORS];
7085
+ }
7086
+ function buildChartLegendItems(options) {
7087
+ const { data, palette, activeIndex, getLabel, getColor } = options;
7088
+ return data.map((datum, index) => ({
7089
+ index,
7090
+ label: getLabel(datum, index),
7091
+ color: getColor ? getColor(datum, index) : palette[index % palette.length],
7092
+ active: activeIndex === null || activeIndex === index
7093
+ }));
7094
+ }
7095
+ function resolveChartTooltipContent(hoveredIndex, data, formatter, defaultFormatter) {
7096
+ if (hoveredIndex === null) return "";
7097
+ const datum = data[hoveredIndex];
7098
+ if (!datum) return "";
7099
+ const fmt = formatter ?? defaultFormatter;
7100
+ return fmt(datum, hoveredIndex);
7101
+ }
7102
+ function resolveMultiSeriesTooltipContent(hoveredPoint, series, formatter, defaultFormatter) {
7103
+ if (!hoveredPoint) return "";
7104
+ const { seriesIndex, pointIndex } = hoveredPoint;
7105
+ const s = series[seriesIndex];
7106
+ const datum = s?.data[pointIndex];
7107
+ if (!datum) return "";
7108
+ const fmt = formatter ?? defaultFormatter;
7109
+ return fmt(datum, seriesIndex, pointIndex, s);
7110
+ }
7111
+ function resolveSeriesData(series, data, defaultSeries) {
7112
+ if (series && series.length > 0) return series;
7113
+ if (data && data.length > 0) {
7114
+ return [{ ...defaultSeries, data }];
7115
+ }
7116
+ return [];
7117
+ }
7118
+ function defaultXYTooltipFormatter(datum, index) {
7119
+ const label = datum.label ?? (datum.x !== void 0 ? String(datum.x) : `#${index + 1}`);
7120
+ return `${label}: ${datum.y ?? ""}`;
7121
+ }
7122
+ function defaultSeriesXYTooltipFormatter(datum, seriesIndex, _pointIndex, series) {
7123
+ const seriesName = series?.name ?? `Series ${seriesIndex + 1}`;
7124
+ const label = datum.label ?? (datum.x !== void 0 ? String(datum.x) : "");
7125
+ return `${seriesName} \xB7 ${label}: ${datum.y ?? ""}`;
7126
+ }
7127
+ function defaultRadarTooltipFormatter(datum, seriesIndex, _pointIndex, series) {
7128
+ const seriesName = series?.name ?? `Series ${seriesIndex + 1}`;
7129
+ const label = datum.label ?? `#${_pointIndex + 1}`;
7130
+ return `${seriesName} \xB7 ${label}: ${datum.value}`;
7131
+ }
7132
+
6430
7133
  // src/utils/floating.ts
6431
7134
  var import_dom = require("@floating-ui/dom");
6432
7135
  async function computeFloatingPosition(reference, floating, options = {}) {
@@ -6495,484 +7198,185 @@ function getArrowStyles(placement, arrowData) {
6495
7198
  top: "bottom",
6496
7199
  bottom: "top",
6497
7200
  left: "right",
6498
- right: "left"
6499
- };
6500
- const styles = {
6501
- position: "absolute",
6502
- [staticSide[side]]: "-4px"
6503
- };
6504
- if (arrowData?.x != null) {
6505
- styles.left = `${arrowData.x}px`;
6506
- }
6507
- if (arrowData?.y != null) {
6508
- styles.top = `${arrowData.y}px`;
6509
- }
6510
- return styles;
6511
- }
6512
- function applyFloatingStyles(element, result) {
6513
- element.style.left = `${result.x}px`;
6514
- element.style.top = `${result.y}px`;
6515
- }
6516
-
6517
- // src/utils/chat-window-utils.ts
6518
- var defaultChatMessageStatusInfo = {
6519
- sending: { text: "\u53D1\u9001\u4E2D", className: "text-[var(--tiger-text-muted,#6b7280)]" },
6520
- sent: { text: "\u5DF2\u9001\u8FBE", className: "text-[var(--tiger-text-muted,#6b7280)]" },
6521
- failed: { text: "\u53D1\u9001\u5931\u8D25", className: "text-[var(--tiger-danger,#ef4444)]" }
6522
- };
6523
- function getChatMessageStatusInfo(status, statusMap = defaultChatMessageStatusInfo) {
6524
- return statusMap[status] || defaultChatMessageStatusInfo[status];
6525
- }
6526
-
6527
- // src/utils/activity-feed-utils.ts
6528
- var formatActivityTime = (value) => {
6529
- if (value == null || value === "") return "";
6530
- if (value instanceof Date) return value.toLocaleString();
6531
- if (typeof value === "number") return new Date(value).toLocaleString();
6532
- return value;
6533
- };
6534
- var sortActivityGroups = (groups, groupOrder) => {
6535
- if (!groupOrder || groupOrder.length === 0) return groups;
6536
- const orderMap = new Map(groupOrder.map((key, index) => [key, index]));
6537
- return [...groups].sort((a, b) => {
6538
- const aKey = String(a.key ?? a.title ?? "");
6539
- const bKey = String(b.key ?? b.title ?? "");
6540
- const aIndex = orderMap.has(aKey) ? orderMap.get(aKey) : Number.POSITIVE_INFINITY;
6541
- const bIndex = orderMap.has(bKey) ? orderMap.get(bKey) : Number.POSITIVE_INFINITY;
6542
- if (aIndex === bIndex) return 0;
6543
- return aIndex - bIndex;
6544
- });
6545
- };
6546
- var buildActivityGroups = (items, groups, groupBy, groupOrder) => {
6547
- if (groups && groups.length > 0) {
6548
- return sortActivityGroups(groups, groupOrder);
6549
- }
6550
- if (!items || items.length === 0) return [];
6551
- if (groupBy) {
6552
- const groupMap = /* @__PURE__ */ new Map();
6553
- items.forEach((item) => {
6554
- const key = groupBy(item) || "\u5176\u4ED6";
6555
- const bucket = groupMap.get(key) ?? [];
6556
- bucket.push(item);
6557
- groupMap.set(key, bucket);
6558
- });
6559
- const mappedGroups = Array.from(groupMap.entries()).map(([title, groupItems]) => ({
6560
- key: title,
6561
- title,
6562
- items: groupItems
6563
- }));
6564
- return sortActivityGroups(mappedGroups, groupOrder);
6565
- }
6566
- return [{ key: "default", title: "", items }];
6567
- };
6568
- var toActivityTimelineItems = (items) => {
6569
- return items.map((item, index) => ({
6570
- key: item.id ?? index,
6571
- activity: item
6572
- }));
6573
- };
6574
-
6575
- // src/utils/notification-center-utils.ts
6576
- var sortNotificationGroups = (groups, groupOrder) => {
6577
- if (!groupOrder || groupOrder.length === 0) {
6578
- return groups;
6579
- }
6580
- const orderMap = /* @__PURE__ */ new Map();
6581
- groupOrder.forEach((key, index) => {
6582
- orderMap.set(String(key), index);
6583
- });
6584
- return [...groups].sort((a, b) => {
6585
- const aKey = String(a.key ?? a.title);
6586
- const bKey = String(b.key ?? b.title);
6587
- const aIndex = orderMap.get(aKey);
6588
- const bIndex = orderMap.get(bKey);
6589
- if (aIndex === void 0 && bIndex === void 0) return 0;
6590
- if (aIndex === void 0) return 1;
6591
- if (bIndex === void 0) return -1;
6592
- return aIndex - bIndex;
6593
- });
6594
- };
6595
- var buildNotificationGroups = (items = [], groups, groupBy, groupOrder) => {
6596
- if (groups && groups.length > 0) {
6597
- return sortNotificationGroups(groups, groupOrder);
6598
- }
6599
- if (!items || items.length === 0) {
6600
- return [];
6601
- }
6602
- const groupFn = groupBy ?? ((item) => String(item.type ?? "default"));
6603
- const groupMap = /* @__PURE__ */ new Map();
6604
- items.forEach((item) => {
6605
- const key = groupFn(item);
6606
- if (!groupMap.has(key)) {
6607
- groupMap.set(key, []);
6608
- }
6609
- groupMap.get(key)?.push(item);
6610
- });
6611
- const mappedGroups = Array.from(groupMap.entries()).map(([key, groupItems]) => ({
6612
- key,
6613
- title: key,
6614
- items: groupItems
6615
- }));
6616
- return sortNotificationGroups(mappedGroups, groupOrder);
6617
- };
6618
-
6619
- // src/utils/comment-thread-utils.ts
6620
- var buildCommentTree = (items = []) => {
6621
- if (!items || items.length === 0) return [];
6622
- const nodeMap = /* @__PURE__ */ new Map();
6623
- const order = [];
6624
- items.forEach((item) => {
6625
- nodeMap.set(item.id, {
6626
- ...item,
6627
- children: []
6628
- });
6629
- order.push(item.id);
6630
- });
6631
- const roots = [];
6632
- order.forEach((id) => {
6633
- const node = nodeMap.get(id);
6634
- if (!node) return;
6635
- if (node.parentId === void 0 || node.parentId === null) {
6636
- roots.push(node);
6637
- return;
6638
- }
6639
- const parent = nodeMap.get(node.parentId);
6640
- if (!parent) {
6641
- roots.push(node);
6642
- return;
6643
- }
6644
- if (!parent.children) parent.children = [];
6645
- parent.children.push(node);
6646
- });
6647
- return roots;
6648
- };
6649
- var clipCommentTreeDepth = (nodes = [], maxDepth = 3) => {
6650
- if (!nodes || nodes.length === 0) return [];
6651
- if (maxDepth <= 0) return [];
6652
- const cloneNode = (node, depth) => {
6653
- const next = { ...node };
6654
- if (node.children && node.children.length > 0 && depth < maxDepth) {
6655
- next.children = node.children.map((child) => cloneNode(child, depth + 1));
6656
- } else {
6657
- next.children = [];
6658
- }
6659
- return next;
6660
- };
6661
- return nodes.map((node) => cloneNode(node, 1));
6662
- };
6663
-
6664
- // src/utils/composite-time-utils.ts
6665
- var formatChatTime = (value) => {
6666
- if (!value) return "";
6667
- if (value instanceof Date) return value.toLocaleTimeString();
6668
- if (typeof value === "number") return new Date(value).toLocaleTimeString();
6669
- return value;
6670
- };
6671
- var formatCommentTime = (value) => {
6672
- if (value == null || value === "") return "";
6673
- if (value instanceof Date) return value.toLocaleString();
6674
- if (typeof value === "number") return new Date(value).toLocaleString();
6675
- return value;
6676
- };
6677
-
6678
- // src/theme/colors.ts
6679
- var defaultThemeColors = {
6680
- primary: {
6681
- bg: "bg-[var(--tiger-primary,#2563eb)]",
6682
- bgHover: "hover:bg-[var(--tiger-primary-hover,#1d4ed8)]",
6683
- text: "text-white",
6684
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6685
- disabled: "disabled:bg-[var(--tiger-primary-disabled,#93c5fd)]"
6686
- },
6687
- secondary: {
6688
- bg: "bg-[var(--tiger-secondary,#4b5563)]",
6689
- bgHover: "hover:bg-[var(--tiger-secondary-hover,#374151)]",
6690
- text: "text-white",
6691
- focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
6692
- disabled: "disabled:bg-[var(--tiger-secondary-disabled,#9ca3af)]"
6693
- },
6694
- outline: {
6695
- bg: "bg-transparent",
6696
- bgHover: "hover:bg-[var(--tiger-outline-bg-hover,#eff6ff)]",
6697
- text: "text-[var(--tiger-primary,#2563eb)]",
6698
- border: "border-2 border-[var(--tiger-primary,#2563eb)]",
6699
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6700
- disabled: "disabled:border-[var(--tiger-primary-disabled,#93c5fd)] disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6701
- },
6702
- ghost: {
6703
- bg: "bg-transparent",
6704
- bgHover: "hover:bg-[var(--tiger-ghost-bg-hover,#eff6ff)]",
6705
- text: "text-[var(--tiger-primary,#2563eb)]",
6706
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6707
- disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6708
- },
6709
- link: {
6710
- bg: "bg-transparent",
6711
- bgHover: "hover:underline",
6712
- text: "text-[var(--tiger-primary,#2563eb)]",
6713
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6714
- disabled: "disabled:text-[var(--tiger-primary-disabled,#93c5fd)]"
6715
- }
6716
- };
6717
- function getButtonVariantClasses(variant, colors = defaultThemeColors) {
6718
- const scheme = colors[variant];
6719
- const classes = [
6720
- scheme.bg,
6721
- scheme.bgHover,
6722
- scheme.text,
6723
- scheme.border,
6724
- scheme.borderHover,
6725
- scheme.focus,
6726
- scheme.disabled
6727
- ].filter(Boolean);
6728
- return classes.join(" ");
6729
- }
6730
- var defaultRadioColors = {
6731
- border: "border-[var(--tiger-border,#d1d5db)]",
6732
- borderChecked: "border-[var(--tiger-primary,#2563eb)]",
6733
- bg: "bg-[var(--tiger-surface,#ffffff)]",
6734
- bgChecked: "bg-[var(--tiger-primary,#2563eb)]",
6735
- innerDot: "bg-[var(--tiger-surface,#ffffff)]",
6736
- focus: "ring-[var(--tiger-primary,#2563eb)]",
6737
- disabled: "bg-[var(--tiger-surface-muted,#f3f4f6)] border-[var(--tiger-border,#d1d5db)]",
6738
- textDisabled: "text-[var(--tiger-text-muted,#6b7280)]"
6739
- };
6740
- function getRadioColorClasses(colors = defaultRadioColors) {
6741
- return colors;
6742
- }
6743
- var defaultLinkThemeColors = {
6744
- primary: {
6745
- text: "text-[var(--tiger-primary,#2563eb)]",
6746
- textHover: "hover:text-[var(--tiger-primary-hover,#1d4ed8)]",
6747
- focus: "focus:ring-[var(--tiger-primary,#2563eb)]",
6748
- disabled: "text-[var(--tiger-primary-disabled,#93c5fd)]"
6749
- },
6750
- secondary: {
6751
- text: "text-[var(--tiger-secondary,#4b5563)]",
6752
- textHover: "hover:text-[var(--tiger-secondary-hover,#374151)]",
6753
- focus: "focus:ring-[var(--tiger-secondary,#4b5563)]",
6754
- disabled: "text-[var(--tiger-secondary-disabled,#9ca3af)]"
6755
- },
6756
- default: {
6757
- text: "text-gray-700",
6758
- textHover: "hover:text-gray-900",
6759
- focus: "focus:ring-gray-500",
6760
- disabled: "text-gray-400"
6761
- }
6762
- };
6763
- function getLinkVariantClasses(variant, colors, options) {
6764
- const scheme = (colors ?? defaultLinkThemeColors)[variant];
6765
- const classes = [
6766
- scheme.text,
6767
- scheme.textHover,
6768
- scheme.focus,
6769
- `disabled:${scheme.disabled}`,
6770
- options?.disabled ? scheme.disabled : void 0
6771
- ].filter(Boolean);
6772
- return classes.join(" ");
6773
- }
6774
- var textSizeClasses = {
6775
- xs: "text-xs",
6776
- sm: "text-sm",
6777
- base: "text-base",
6778
- lg: "text-lg",
6779
- xl: "text-xl",
6780
- "2xl": "text-2xl",
6781
- "3xl": "text-3xl",
6782
- "4xl": "text-4xl",
6783
- "5xl": "text-5xl",
6784
- "6xl": "text-6xl"
6785
- };
6786
- var textWeightClasses = {
6787
- thin: "font-thin",
6788
- light: "font-light",
6789
- normal: "font-normal",
6790
- medium: "font-medium",
6791
- semibold: "font-semibold",
6792
- bold: "font-bold",
6793
- extrabold: "font-extrabold",
6794
- black: "font-black"
6795
- };
6796
- var textAlignClasses = {
6797
- left: "text-left",
6798
- center: "text-center",
6799
- right: "text-right",
6800
- justify: "text-justify"
6801
- };
6802
- var textColorClasses = {
6803
- default: "text-[var(--tiger-text,#111827)]",
6804
- primary: "text-[var(--tiger-primary,#2563eb)]",
6805
- secondary: "text-[var(--tiger-secondary,#4b5563)]",
6806
- success: "text-[var(--tiger-success,#16a34a)]",
6807
- warning: "text-[var(--tiger-warning,#ca8a04)]",
6808
- danger: "text-[var(--tiger-error,#dc2626)]",
6809
- muted: "text-[var(--tiger-text-muted,#6b7280)]"
6810
- };
6811
- var textDecorationClasses = {
6812
- truncate: "truncate",
6813
- italic: "italic",
6814
- underline: "underline",
6815
- lineThrough: "line-through"
6816
- };
6817
- var defaultTagThemeColors = {
6818
- default: {
6819
- bg: "bg-[var(--tiger-tag-default-bg,#f3f4f6)]",
6820
- text: "text-[var(--tiger-text,#111827)]",
6821
- border: "border-[var(--tiger-border,#e5e7eb)]",
6822
- closeBgHover: "hover:bg-[var(--tiger-tag-default-close-hover,#e5e7eb)]"
6823
- },
6824
- primary: {
6825
- bg: "bg-[var(--tiger-tag-primary-bg,#dbeafe)]",
6826
- text: "text-[var(--tiger-primary,#2563eb)]",
6827
- border: "border-[var(--tiger-tag-primary-border,#bfdbfe)]",
6828
- closeBgHover: "hover:bg-[var(--tiger-tag-primary-close-hover,#bfdbfe)]"
6829
- },
6830
- success: {
6831
- bg: "bg-[var(--tiger-tag-success-bg,#dcfce7)]",
6832
- text: "text-[var(--tiger-success,#16a34a)]",
6833
- border: "border-[var(--tiger-tag-success-border,#bbf7d0)]",
6834
- closeBgHover: "hover:bg-[var(--tiger-tag-success-close-hover,#bbf7d0)]"
6835
- },
6836
- warning: {
6837
- bg: "bg-[var(--tiger-tag-warning-bg,#fef9c3)]",
6838
- text: "text-[var(--tiger-warning,#ca8a04)]",
6839
- border: "border-[var(--tiger-tag-warning-border,#fef08a)]",
6840
- closeBgHover: "hover:bg-[var(--tiger-tag-warning-close-hover,#fef08a)]"
6841
- },
6842
- danger: {
6843
- bg: "bg-[var(--tiger-tag-danger-bg,#fee2e2)]",
6844
- text: "text-[var(--tiger-error,#dc2626)]",
6845
- border: "border-[var(--tiger-tag-danger-border,#fecaca)]",
6846
- closeBgHover: "hover:bg-[var(--tiger-tag-danger-close-hover,#fecaca)]"
6847
- },
6848
- info: {
6849
- bg: "bg-[var(--tiger-tag-info-bg,#e0f2fe)]",
6850
- text: "text-[var(--tiger-info,#3b82f6)]",
6851
- border: "border-[var(--tiger-tag-info-border,#bae6fd)]",
6852
- closeBgHover: "hover:bg-[var(--tiger-tag-info-close-hover,#bae6fd)]"
6853
- }
6854
- };
6855
- function getTagVariantClasses(variant, colors = defaultTagThemeColors) {
6856
- const scheme = colors[variant];
6857
- const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
6858
- return classes.join(" ");
6859
- }
6860
- var defaultBadgeThemeColors = {
6861
- default: {
6862
- bg: "bg-[var(--tiger-text-muted,#6b7280)]",
6863
- text: "text-white",
6864
- border: "border-[var(--tiger-text-muted,#6b7280)]"
6865
- },
6866
- primary: {
6867
- bg: "bg-[var(--tiger-primary,#2563eb)]",
6868
- text: "text-white",
6869
- border: "border-[var(--tiger-primary,#2563eb)]"
6870
- },
6871
- success: {
6872
- bg: "bg-[var(--tiger-success,#16a34a)]",
6873
- text: "text-white",
6874
- border: "border-[var(--tiger-success,#16a34a)]"
6875
- },
6876
- warning: {
6877
- bg: "bg-[var(--tiger-warning,#ca8a04)]",
6878
- text: "text-white",
6879
- border: "border-[var(--tiger-warning,#ca8a04)]"
6880
- },
6881
- danger: {
6882
- bg: "bg-[var(--tiger-error,#dc2626)]",
6883
- text: "text-white",
6884
- border: "border-[var(--tiger-error,#dc2626)]"
6885
- },
6886
- info: {
6887
- bg: "bg-[var(--tiger-info,#3b82f6)]",
6888
- text: "text-white",
6889
- border: "border-[var(--tiger-info,#3b82f6)]"
7201
+ right: "left"
7202
+ };
7203
+ const styles = {
7204
+ position: "absolute",
7205
+ [staticSide[side]]: "-4px"
7206
+ };
7207
+ if (arrowData?.x != null) {
7208
+ styles.left = `${arrowData.x}px`;
6890
7209
  }
7210
+ if (arrowData?.y != null) {
7211
+ styles.top = `${arrowData.y}px`;
7212
+ }
7213
+ return styles;
7214
+ }
7215
+ function applyFloatingStyles(element, result) {
7216
+ element.style.left = `${result.x}px`;
7217
+ element.style.top = `${result.y}px`;
7218
+ }
7219
+
7220
+ // src/utils/chat-window-utils.ts
7221
+ var defaultChatMessageStatusInfo = {
7222
+ sending: { text: "\u53D1\u9001\u4E2D", className: "text-[var(--tiger-text-muted,#6b7280)]" },
7223
+ sent: { text: "\u5DF2\u9001\u8FBE", className: "text-[var(--tiger-text-muted,#6b7280)]" },
7224
+ failed: { text: "\u53D1\u9001\u5931\u8D25", className: "text-[var(--tiger-danger,#ef4444)]" }
6891
7225
  };
6892
- function getBadgeVariantClasses(variant, colors = defaultBadgeThemeColors) {
6893
- const scheme = colors[variant];
6894
- const classes = [scheme.bg, scheme.text, scheme.border].filter(Boolean);
6895
- return classes.join(" ");
7226
+ function getChatMessageStatusInfo(status, statusMap = defaultChatMessageStatusInfo) {
7227
+ return statusMap[status] || defaultChatMessageStatusInfo[status];
6896
7228
  }
6897
- var defaultProgressThemeColors = {
6898
- default: {
6899
- bg: "bg-[color:var(--tiger-text-muted,#6b7280)]",
6900
- text: "text-[color:var(--tiger-text,#374151)]"
6901
- },
6902
- primary: {
6903
- bg: "bg-[color:var(--tiger-primary,#2563eb)]",
6904
- text: "text-[color:var(--tiger-primary,#2563eb)]"
6905
- },
6906
- success: {
6907
- bg: "bg-[color:var(--tiger-success,#16a34a)]",
6908
- text: "text-[color:var(--tiger-success,#16a34a)]"
6909
- },
6910
- warning: {
6911
- bg: "bg-[color:var(--tiger-warning,#f59e0b)]",
6912
- text: "text-[color:var(--tiger-warning,#f59e0b)]"
6913
- },
6914
- danger: {
6915
- bg: "bg-[color:var(--tiger-error,#dc2626)]",
6916
- text: "text-[color:var(--tiger-error,#dc2626)]"
6917
- },
6918
- info: {
6919
- bg: "bg-[color:var(--tiger-info,#0ea5e9)]",
6920
- text: "text-[color:var(--tiger-info,#0ea5e9)]"
7229
+
7230
+ // src/utils/activity-feed-utils.ts
7231
+ var formatActivityTime = (value) => {
7232
+ if (value == null || value === "") return "";
7233
+ if (value instanceof Date) return value.toLocaleString();
7234
+ if (typeof value === "number") return new Date(value).toLocaleString();
7235
+ return value;
7236
+ };
7237
+ var sortActivityGroups = (groups, groupOrder) => {
7238
+ if (!groupOrder || groupOrder.length === 0) return groups;
7239
+ const orderMap = new Map(groupOrder.map((key, index) => [key, index]));
7240
+ return [...groups].sort((a, b) => {
7241
+ const aKey = String(a.key ?? a.title ?? "");
7242
+ const bKey = String(b.key ?? b.title ?? "");
7243
+ const aIndex = orderMap.has(aKey) ? orderMap.get(aKey) : Number.POSITIVE_INFINITY;
7244
+ const bIndex = orderMap.has(bKey) ? orderMap.get(bKey) : Number.POSITIVE_INFINITY;
7245
+ if (aIndex === bIndex) return 0;
7246
+ return aIndex - bIndex;
7247
+ });
7248
+ };
7249
+ var buildActivityGroups = (items, groups, groupBy, groupOrder) => {
7250
+ if (groups && groups.length > 0) {
7251
+ return sortActivityGroups(groups, groupOrder);
7252
+ }
7253
+ if (!items || items.length === 0) return [];
7254
+ if (groupBy) {
7255
+ const groupMap = /* @__PURE__ */ new Map();
7256
+ items.forEach((item) => {
7257
+ const key = groupBy(item) || "\u5176\u4ED6";
7258
+ const bucket = groupMap.get(key) ?? [];
7259
+ bucket.push(item);
7260
+ groupMap.set(key, bucket);
7261
+ });
7262
+ const mappedGroups = Array.from(groupMap.entries()).map(([title, groupItems]) => ({
7263
+ key: title,
7264
+ title,
7265
+ items: groupItems
7266
+ }));
7267
+ return sortActivityGroups(mappedGroups, groupOrder);
6921
7268
  }
7269
+ return [{ key: "default", title: "", items }];
6922
7270
  };
6923
- function getProgressVariantClasses(variant, colors = defaultProgressThemeColors) {
6924
- const scheme = colors[variant];
6925
- return scheme.bg;
6926
- }
6927
- function getProgressTextColorClasses(variant, colors = defaultProgressThemeColors) {
6928
- const scheme = colors[variant];
6929
- return scheme.text || "text-[var(--tiger-text,#374151)]";
6930
- }
6931
- var defaultAlertThemeColors = {
6932
- success: {
6933
- bg: "bg-[var(--tiger-alert-success-bg,#f0fdf4)]",
6934
- border: "border-[var(--tiger-alert-success-border,#bbf7d0)]",
6935
- icon: "text-[var(--tiger-alert-success-icon,#22c55e)]",
6936
- title: "text-[var(--tiger-alert-success-title,#166534)]",
6937
- description: "text-[var(--tiger-alert-success-description,#15803d)]",
6938
- closeButton: "text-[var(--tiger-alert-success-close,#22c55e)]",
6939
- closeButtonHover: "hover:bg-[var(--tiger-alert-success-close-hover-bg,#dcfce7)]",
6940
- focus: "focus:ring-[color:var(--tiger-alert-success-ring,#22c55e)]"
6941
- },
6942
- warning: {
6943
- bg: "bg-[var(--tiger-alert-warning-bg,#fefce8)]",
6944
- border: "border-[var(--tiger-alert-warning-border,#fef08a)]",
6945
- icon: "text-[var(--tiger-alert-warning-icon,#eab308)]",
6946
- title: "text-[var(--tiger-alert-warning-title,#854d0e)]",
6947
- description: "text-[var(--tiger-alert-warning-description,#a16207)]",
6948
- closeButton: "text-[var(--tiger-alert-warning-close,#eab308)]",
6949
- closeButtonHover: "hover:bg-[var(--tiger-alert-warning-close-hover-bg,#fef9c3)]",
6950
- focus: "focus:ring-[color:var(--tiger-alert-warning-ring,#eab308)]"
6951
- },
6952
- error: {
6953
- bg: "bg-[var(--tiger-alert-error-bg,#fef2f2)]",
6954
- border: "border-[var(--tiger-alert-error-border,#fecaca)]",
6955
- icon: "text-[var(--tiger-alert-error-icon,#ef4444)]",
6956
- title: "text-[var(--tiger-alert-error-title,#991b1b)]",
6957
- description: "text-[var(--tiger-alert-error-description,#b91c1c)]",
6958
- closeButton: "text-[var(--tiger-alert-error-close,#ef4444)]",
6959
- closeButtonHover: "hover:bg-[var(--tiger-alert-error-close-hover-bg,#fee2e2)]",
6960
- focus: "focus:ring-[color:var(--tiger-alert-error-ring,#ef4444)]"
6961
- },
6962
- info: {
6963
- bg: "bg-[var(--tiger-alert-info-bg,#eff6ff)]",
6964
- border: "border-[var(--tiger-alert-info-border,#bfdbfe)]",
6965
- icon: "text-[var(--tiger-alert-info-icon,#3b82f6)]",
6966
- title: "text-[var(--tiger-alert-info-title,#1e40af)]",
6967
- description: "text-[var(--tiger-alert-info-description,#1d4ed8)]",
6968
- closeButton: "text-[var(--tiger-alert-info-close,#3b82f6)]",
6969
- closeButtonHover: "hover:bg-[var(--tiger-alert-info-close-hover-bg,#dbeafe)]",
6970
- focus: "focus:ring-[color:var(--tiger-alert-info-ring,#3b82f6)]"
7271
+ var toActivityTimelineItems = (items) => {
7272
+ return items.map((item, index) => ({
7273
+ key: item.id ?? index,
7274
+ activity: item
7275
+ }));
7276
+ };
7277
+
7278
+ // src/utils/notification-center-utils.ts
7279
+ var sortNotificationGroups = (groups, groupOrder) => {
7280
+ if (!groupOrder || groupOrder.length === 0) {
7281
+ return groups;
7282
+ }
7283
+ const orderMap = /* @__PURE__ */ new Map();
7284
+ groupOrder.forEach((key, index) => {
7285
+ orderMap.set(String(key), index);
7286
+ });
7287
+ return [...groups].sort((a, b) => {
7288
+ const aKey = String(a.key ?? a.title);
7289
+ const bKey = String(b.key ?? b.title);
7290
+ const aIndex = orderMap.get(aKey);
7291
+ const bIndex = orderMap.get(bKey);
7292
+ if (aIndex === void 0 && bIndex === void 0) return 0;
7293
+ if (aIndex === void 0) return 1;
7294
+ if (bIndex === void 0) return -1;
7295
+ return aIndex - bIndex;
7296
+ });
7297
+ };
7298
+ var buildNotificationGroups = (items = [], groups, groupBy, groupOrder) => {
7299
+ if (groups && groups.length > 0) {
7300
+ return sortNotificationGroups(groups, groupOrder);
7301
+ }
7302
+ if (!items || items.length === 0) {
7303
+ return [];
6971
7304
  }
7305
+ const groupFn = groupBy ?? ((item) => String(item.type ?? "default"));
7306
+ const groupMap = /* @__PURE__ */ new Map();
7307
+ items.forEach((item) => {
7308
+ const key = groupFn(item);
7309
+ if (!groupMap.has(key)) {
7310
+ groupMap.set(key, []);
7311
+ }
7312
+ groupMap.get(key)?.push(item);
7313
+ });
7314
+ const mappedGroups = Array.from(groupMap.entries()).map(([key, groupItems]) => ({
7315
+ key,
7316
+ title: key,
7317
+ items: groupItems
7318
+ }));
7319
+ return sortNotificationGroups(mappedGroups, groupOrder);
7320
+ };
7321
+
7322
+ // src/utils/comment-thread-utils.ts
7323
+ var buildCommentTree = (items = []) => {
7324
+ if (!items || items.length === 0) return [];
7325
+ const nodeMap = /* @__PURE__ */ new Map();
7326
+ const order = [];
7327
+ items.forEach((item) => {
7328
+ nodeMap.set(item.id, {
7329
+ ...item,
7330
+ children: []
7331
+ });
7332
+ order.push(item.id);
7333
+ });
7334
+ const roots = [];
7335
+ order.forEach((id) => {
7336
+ const node = nodeMap.get(id);
7337
+ if (!node) return;
7338
+ if (node.parentId === void 0 || node.parentId === null) {
7339
+ roots.push(node);
7340
+ return;
7341
+ }
7342
+ const parent = nodeMap.get(node.parentId);
7343
+ if (!parent) {
7344
+ roots.push(node);
7345
+ return;
7346
+ }
7347
+ if (!parent.children) parent.children = [];
7348
+ parent.children.push(node);
7349
+ });
7350
+ return roots;
7351
+ };
7352
+ var clipCommentTreeDepth = (nodes = [], maxDepth = 3) => {
7353
+ if (!nodes || nodes.length === 0) return [];
7354
+ if (maxDepth <= 0) return [];
7355
+ const cloneNode = (node, depth) => {
7356
+ const next = { ...node };
7357
+ if (node.children && node.children.length > 0 && depth < maxDepth) {
7358
+ next.children = node.children.map((child) => cloneNode(child, depth + 1));
7359
+ } else {
7360
+ next.children = [];
7361
+ }
7362
+ return next;
7363
+ };
7364
+ return nodes.map((node) => cloneNode(node, 1));
7365
+ };
7366
+
7367
+ // src/utils/composite-time-utils.ts
7368
+ var formatChatTime = (value) => {
7369
+ if (!value) return "";
7370
+ if (value instanceof Date) return value.toLocaleTimeString();
7371
+ if (typeof value === "number") return new Date(value).toLocaleTimeString();
7372
+ return value;
7373
+ };
7374
+ var formatCommentTime = (value) => {
7375
+ if (value == null || value === "") return "";
7376
+ if (value instanceof Date) return value.toLocaleString();
7377
+ if (typeof value === "number") return new Date(value).toLocaleString();
7378
+ return value;
6972
7379
  };
6973
- function getAlertTypeClasses(type, colors = defaultAlertThemeColors) {
6974
- return colors[type];
6975
- }
6976
7380
 
6977
7381
  // src/theme/checkbox.ts
6978
7382
  var checkboxSizeClasses = {
@@ -6986,26 +7390,17 @@ var checkboxLabelSizeClasses = {
6986
7390
  lg: "text-lg"
6987
7391
  };
6988
7392
  function getCheckboxClasses(size = "md", disabled = false) {
6989
- const baseClasses = "rounded border-2 transition-all duration-150 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] active:scale-95";
7393
+ const baseClasses2 = "rounded border-2 transition-all duration-150 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))] active:scale-95";
6990
7394
  const sizeClass = checkboxSizeClasses[size];
6991
- const colorClasses = [
6992
- "border-[var(--tiger-primary,#2563eb)]",
6993
- "accent-[var(--tiger-primary,#2563eb)]",
6994
- "text-white",
6995
- "checked:bg-[var(--tiger-primary,#2563eb)]",
6996
- "checked:border-[var(--tiger-primary,#2563eb)]",
6997
- "indeterminate:bg-[var(--tiger-primary,#2563eb)]",
6998
- "indeterminate:border-[var(--tiger-primary,#2563eb)]",
6999
- "focus:ring-[var(--tiger-primary,#2563eb)]"
7000
- ].join(" ");
7395
+ const colorClasses = "border-[var(--tiger-primary,#2563eb)] accent-[var(--tiger-primary,#2563eb)] text-white checked:bg-[var(--tiger-primary,#2563eb)] checked:border-[var(--tiger-primary,#2563eb)] indeterminate:bg-[var(--tiger-primary,#2563eb)] indeterminate:border-[var(--tiger-primary,#2563eb)]";
7001
7396
  const disabledClasses = disabled ? "cursor-not-allowed opacity-50 disabled:bg-[var(--tiger-surface-muted,#f3f4f6)] disabled:border-[var(--tiger-border,#e5e7eb)]" : "";
7002
- return [baseClasses, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
7397
+ return [baseClasses2, sizeClass, colorClasses, disabledClasses].filter(Boolean).join(" ");
7003
7398
  }
7004
7399
  function getCheckboxLabelClasses(size = "md", disabled = false) {
7005
- const baseClasses = "inline-flex items-center cursor-pointer select-none";
7400
+ const baseClasses2 = "inline-flex items-center cursor-pointer select-none";
7006
7401
  const sizeClass = checkboxLabelSizeClasses[size];
7007
- const disabledClasses = disabled ? "cursor-not-allowed opacity-50" : "";
7008
- return [baseClasses, sizeClass, disabledClasses].filter(Boolean).join(" ");
7402
+ const disabledClasses = disabled ? "cursor-not-allowed" : "";
7403
+ return [baseClasses2, sizeClass, disabledClasses].filter(Boolean).join(" ");
7009
7404
  }
7010
7405
 
7011
7406
  // src/theme/switch.ts
@@ -7036,10 +7431,10 @@ function getSwitchClasses(size = "md", checked = false, disabled = false) {
7036
7431
  );
7037
7432
  }
7038
7433
  function getSwitchThumbClasses(size = "md", checked = false) {
7039
- const baseClasses = "inline-block transform rounded-full bg-[var(--tiger-surface,#ffffff)] shadow-lg transition-transform";
7434
+ const baseClasses2 = "inline-block rounded-full bg-[var(--tiger-surface,#ffffff)] shadow-lg transition-transform";
7040
7435
  const sizeClass = switchThumbSizeClasses[size];
7041
7436
  const translateClass = checked ? switchThumbTranslateClasses[size] : "translate-x-0.5";
7042
- return classNames(baseClasses, sizeClass, translateClass);
7437
+ return classNames(baseClasses2, sizeClass, translateClass);
7043
7438
  }
7044
7439
 
7045
7440
  // src/theme/slider.ts
@@ -7153,7 +7548,11 @@ var tigercatTheme = {
7153
7548
  };
7154
7549
  var tigercatPlugin = (0, import_plugin.default)(function({ addBase }) {
7155
7550
  addBase({
7156
- ":root": tigercatTheme
7551
+ ":root": tigercatTheme,
7552
+ // Remove browser default focus outline on interactive SVG elements
7553
+ 'svg [tabindex], svg [role="button"]': {
7554
+ outline: "none"
7555
+ }
7157
7556
  });
7158
7557
  });
7159
7558
 
@@ -7164,21 +7563,33 @@ var version = "0.2.0";
7164
7563
  ANIMATION_DURATION_FAST_MS,
7165
7564
  ANIMATION_DURATION_MS,
7166
7565
  ANIMATION_DURATION_SLOW_MS,
7566
+ CROP_HANDLES,
7167
7567
  CalendarIconPath,
7168
7568
  ChevronLeftIconPath,
7169
7569
  ChevronRightIconPath,
7170
7570
  ClockIconPath,
7171
7571
  CloseIconPath,
7172
7572
  DEFAULT_CHART_COLORS,
7573
+ DEFAULT_FORM_WIZARD_LABELS,
7173
7574
  DEFAULT_PAGINATION_LABELS,
7575
+ DONUT_BASE_SHADOW,
7576
+ DONUT_EMPHASIS_SHADOW,
7577
+ DROPDOWN_CHEVRON_PATH,
7578
+ DROPDOWN_ENTER_CLASS,
7174
7579
  DURATION_CLASS,
7175
7580
  DURATION_FAST_CLASS,
7176
7581
  DURATION_SLOW_CLASS,
7177
7582
  EASING_DEFAULT,
7178
7583
  EASING_ENTER,
7179
7584
  EASING_LEAVE,
7585
+ PIE_BASE_SHADOW,
7586
+ PIE_EMPHASIS_SHADOW,
7587
+ POPOVER_TEXT_CLASSES,
7588
+ POPOVER_TITLE_CLASSES,
7589
+ RADAR_SPLIT_AREA_COLORS,
7590
+ SCATTER_ENTRANCE_CLASS,
7591
+ SCATTER_ENTRANCE_KEYFRAMES,
7180
7592
  SHAKE_CLASS,
7181
- SPACE_BASE_CLASS,
7182
7593
  SVG_ANIMATION_CLASSES,
7183
7594
  SVG_ANIMATION_VARS,
7184
7595
  SVG_DEFAULT_FILL,
@@ -7192,6 +7603,7 @@ var version = "0.2.0";
7192
7603
  TRANSITION_OPACITY,
7193
7604
  TRANSITION_TRANSFORM,
7194
7605
  TimePickerCloseIconPath,
7606
+ ZH_CN_FORM_WIZARD_LABELS,
7195
7607
  ZH_CN_PAGINATION_LABELS,
7196
7608
  activeOpacityClasses,
7197
7609
  activePressClasses,
@@ -7200,14 +7612,10 @@ var version = "0.2.0";
7200
7612
  alertCloseIconPath,
7201
7613
  alertContentClasses,
7202
7614
  alertDescriptionSizeClasses,
7203
- alertErrorIconPath,
7204
7615
  alertIconContainerClasses,
7205
7616
  alertIconSizeClasses,
7206
- alertInfoIconPath,
7207
7617
  alertSizeClasses,
7208
- alertSuccessIconPath,
7209
7618
  alertTitleSizeClasses,
7210
- alertWarningIconPath,
7211
7619
  anchorAffixClasses,
7212
7620
  anchorBaseClasses,
7213
7621
  anchorInkActiveHorizontalClasses,
@@ -7229,7 +7637,6 @@ var version = "0.2.0";
7229
7637
  avatarImageClasses,
7230
7638
  avatarShapeClasses,
7231
7639
  avatarSizeClasses,
7232
- backTopBaseClasses,
7233
7640
  backTopButtonClasses,
7234
7641
  backTopContainerClasses,
7235
7642
  backTopHiddenClasses,
@@ -7240,6 +7647,9 @@ var version = "0.2.0";
7240
7647
  badgeSizeClasses,
7241
7648
  badgeTypeClasses,
7242
7649
  badgeWrapperClasses,
7650
+ barAnimatedTransition,
7651
+ barValueLabelClasses,
7652
+ barValueLabelInsideClasses,
7243
7653
  barsVariantConfig,
7244
7654
  breadcrumbContainerClasses,
7245
7655
  breadcrumbCurrentClasses,
@@ -7247,8 +7657,10 @@ var version = "0.2.0";
7247
7657
  breadcrumbLinkClasses,
7248
7658
  breadcrumbSeparatorBaseClasses,
7249
7659
  buildActivityGroups,
7660
+ buildChartLegendItems,
7250
7661
  buildCommentTree,
7251
7662
  buildNotificationGroups,
7663
+ buildTriggerHandlerMap,
7252
7664
  buttonBaseClasses,
7253
7665
  buttonDisabledClasses,
7254
7666
  buttonSizeClasses,
@@ -7256,11 +7668,11 @@ var version = "0.2.0";
7256
7668
  calculateCirclePath,
7257
7669
  calculatePagination,
7258
7670
  calculateStepStatus,
7671
+ calculateTransform,
7259
7672
  calendarSolidIcon20PathD,
7260
7673
  captureActiveElement,
7261
7674
  cardActionsClasses,
7262
7675
  cardBaseClasses,
7263
- cardBodyClasses,
7264
7676
  cardCoverClasses,
7265
7677
  cardCoverWrapperClasses,
7266
7678
  cardFooterClasses,
@@ -7280,7 +7692,6 @@ var version = "0.2.0";
7280
7692
  carouselPrevArrowClasses,
7281
7693
  carouselPrevArrowPath,
7282
7694
  carouselSlideBaseClasses,
7283
- carouselSlideFadeClasses,
7284
7695
  carouselTrackFadeClasses,
7285
7696
  carouselTrackScrollClasses,
7286
7697
  chartAxisLabelClasses,
@@ -7293,10 +7704,13 @@ var version = "0.2.0";
7293
7704
  checkSolidIcon20PathD,
7294
7705
  checkboxLabelSizeClasses,
7295
7706
  checkboxSizeClasses,
7707
+ checkedSetsFromState,
7296
7708
  chevronDownSolidIcon20PathD,
7297
7709
  chevronLeftSolidIcon20PathD,
7298
7710
  chevronRightSolidIcon20PathD,
7711
+ clampBarWidth,
7299
7712
  clampPercentage,
7713
+ clampScale,
7300
7714
  clampSlideIndex,
7301
7715
  classNames,
7302
7716
  clearFieldErrors,
@@ -7316,7 +7730,6 @@ var version = "0.2.0";
7316
7730
  coerceStyleValue,
7317
7731
  collapseBaseClasses,
7318
7732
  collapseBorderlessClasses,
7319
- collapseExtraClasses,
7320
7733
  collapseGhostClasses,
7321
7734
  collapseHeaderTextClasses,
7322
7735
  collapseIconBaseClasses,
@@ -7328,8 +7741,10 @@ var version = "0.2.0";
7328
7741
  collapsePanelHeaderActiveClasses,
7329
7742
  collapsePanelHeaderBaseClasses,
7330
7743
  collapsePanelHeaderDisabledClasses,
7331
- collapseRightArrowIcon,
7332
7744
  computeFloatingPosition,
7745
+ computePieHoverOffset,
7746
+ computePieLabelLine,
7747
+ constrainCropRect,
7333
7748
  containerBaseClasses,
7334
7749
  containerCenteredClasses,
7335
7750
  containerMaxWidthClasses,
@@ -7339,11 +7754,15 @@ var version = "0.2.0";
7339
7754
  createAriaId,
7340
7755
  createBandScale,
7341
7756
  createChartInteractionHandlers,
7757
+ createFloatingIdFactory,
7342
7758
  createLinePath,
7343
7759
  createLinearScale,
7344
7760
  createPieArcPath,
7345
7761
  createPointScale,
7346
7762
  createPolygonPath,
7763
+ cropCanvas,
7764
+ cropUploadTriggerClasses,
7765
+ cropUploadTriggerDisabledClasses,
7347
7766
  datePickerBaseClasses,
7348
7767
  datePickerCalendarClasses,
7349
7768
  datePickerCalendarGridClasses,
@@ -7358,18 +7777,19 @@ var version = "0.2.0";
7358
7777
  defaultAlertThemeColors,
7359
7778
  defaultBadgeThemeColors,
7360
7779
  defaultChatMessageStatusInfo,
7361
- defaultExpandIcon,
7362
- defaultIndeterminateIcon,
7363
7780
  defaultLinkThemeColors,
7364
7781
  defaultMessageThemeColors,
7365
7782
  defaultNotificationThemeColors,
7366
7783
  defaultProgressThemeColors,
7784
+ defaultRadarTooltipFormatter,
7367
7785
  defaultRadioColors,
7786
+ defaultSeriesXYTooltipFormatter,
7368
7787
  defaultSortFn,
7369
7788
  defaultTagThemeColors,
7370
7789
  defaultThemeColors,
7371
7790
  defaultTooltipFormatter,
7372
7791
  defaultTotalText,
7792
+ defaultXYTooltipFormatter,
7373
7793
  descriptionsBaseClasses,
7374
7794
  descriptionsCellSizeClasses,
7375
7795
  descriptionsContentBorderedClasses,
@@ -7378,7 +7798,6 @@ var version = "0.2.0";
7378
7798
  descriptionsHeaderClasses,
7379
7799
  descriptionsLabelBorderedClasses,
7380
7800
  descriptionsLabelClasses,
7381
- descriptionsRowClasses,
7382
7801
  descriptionsSizeClasses,
7383
7802
  descriptionsTableBorderedClasses,
7384
7803
  descriptionsTableClasses,
@@ -7390,6 +7809,7 @@ var version = "0.2.0";
7390
7809
  descriptionsWrapperClasses,
7391
7810
  dotSizeClasses,
7392
7811
  dotsVariantConfig,
7812
+ ensureBarMinHeight,
7393
7813
  errorCircleSolidIcon20PathD,
7394
7814
  fileToUploadFile,
7395
7815
  filterData,
@@ -7397,9 +7817,11 @@ var version = "0.2.0";
7397
7817
  filterTreeNodes,
7398
7818
  findActiveAnchor,
7399
7819
  findNode,
7400
- flattenTree,
7820
+ flattenSelectOptions,
7401
7821
  focusElement,
7402
7822
  focusFirst,
7823
+ focusFirstChildItem,
7824
+ focusMenuEdge,
7403
7825
  focusRingClasses,
7404
7826
  focusRingInsetClasses,
7405
7827
  formatActivityTime,
@@ -7432,10 +7854,13 @@ var version = "0.2.0";
7432
7854
  getAnchorLinkListClasses,
7433
7855
  getAnchorTargetElement,
7434
7856
  getAnchorWrapperClasses,
7857
+ getAreaGradientPrefix,
7435
7858
  getArrowStyles,
7436
7859
  getAutoExpandKeys,
7437
7860
  getBadgeVariantClasses,
7861
+ getBarGradientPrefix,
7438
7862
  getBarGrowAnimationStyle,
7863
+ getBarValueLabelY,
7439
7864
  getBreadcrumbItemClasses,
7440
7865
  getBreadcrumbLinkClasses,
7441
7866
  getBreadcrumbSeparatorClasses,
@@ -7458,6 +7883,7 @@ var version = "0.2.0";
7458
7883
  getCheckboxLabelClasses,
7459
7884
  getCheckedKeysByStrategy,
7460
7885
  getCircleSize,
7886
+ getColMergedStyleVars,
7461
7887
  getColOrderStyleVars,
7462
7888
  getColStyleVars,
7463
7889
  getCollapseContainerClasses,
@@ -7467,6 +7893,7 @@ var version = "0.2.0";
7467
7893
  getContainerClasses,
7468
7894
  getContainerHeight,
7469
7895
  getContainerScrollTop,
7896
+ getCropperHandleClasses,
7470
7897
  getCurrentTime,
7471
7898
  getDatePickerDayCellClasses,
7472
7899
  getDatePickerIconButtonClasses,
@@ -7480,9 +7907,8 @@ var version = "0.2.0";
7480
7907
  getDescriptionsLabelClasses,
7481
7908
  getDescriptionsTableClasses,
7482
7909
  getDescriptionsVerticalItemClasses,
7483
- getDividerLineStyleClasses,
7484
- getDividerOrientationClasses,
7485
- getDividerSpacingClasses,
7910
+ getDividerClasses,
7911
+ getDividerStyle,
7486
7912
  getDragAreaClasses,
7487
7913
  getDrawerBodyClasses,
7488
7914
  getDrawerCloseButtonClasses,
@@ -7492,10 +7918,10 @@ var version = "0.2.0";
7492
7918
  getDrawerMaskClasses,
7493
7919
  getDrawerPanelClasses,
7494
7920
  getDrawerTitleClasses,
7921
+ getDropdownChevronClasses,
7495
7922
  getDropdownContainerClasses,
7496
7923
  getDropdownItemClasses,
7497
7924
  getDropdownMenuClasses,
7498
- getDropdownMenuWrapperClasses,
7499
7925
  getDropdownTriggerClasses,
7500
7926
  getElementOffsetTop,
7501
7927
  getErrorFields,
@@ -7507,14 +7933,16 @@ var version = "0.2.0";
7507
7933
  getFocusTrapNavigation,
7508
7934
  getFocusableElements,
7509
7935
  getFormItemAsteriskClasses,
7510
- getFormItemAsteriskStyle,
7511
7936
  getFormItemClasses,
7512
7937
  getFormItemContentClasses,
7513
7938
  getFormItemErrorClasses,
7514
7939
  getFormItemFieldClasses,
7515
7940
  getFormItemLabelClasses,
7941
+ getFormWizardLabels,
7516
7942
  getGridColumnClasses,
7517
7943
  getGutterStyles,
7944
+ getImageImgClasses,
7945
+ getInitialCropRect,
7518
7946
  getInitials,
7519
7947
  getInputAffixClasses,
7520
7948
  getInputClasses,
@@ -7522,6 +7950,7 @@ var version = "0.2.0";
7522
7950
  getInputWrapperClasses,
7523
7951
  getJustifyClasses,
7524
7952
  getLeafKeys,
7953
+ getLineGradientPrefix,
7525
7954
  getLinkVariantClasses,
7526
7955
  getListClasses,
7527
7956
  getListHeaderFooterClasses,
@@ -7533,6 +7962,7 @@ var version = "0.2.0";
7533
7962
  getLoadingDotsWrapperClasses,
7534
7963
  getLoadingOverlaySpinnerClasses,
7535
7964
  getLoadingTextClasses,
7965
+ getMenuButtons,
7536
7966
  getMenuClasses,
7537
7967
  getMenuItemClasses,
7538
7968
  getMenuItemIndent,
@@ -7584,10 +8014,12 @@ var version = "0.2.0";
7584
8014
  getPopoverTitleClasses,
7585
8015
  getPopoverTriggerClasses,
7586
8016
  getPrevSlideIndex,
8017
+ getPreviewNavState,
7587
8018
  getProgressTextColorClasses,
7588
8019
  getProgressVariantClasses,
7589
8020
  getQuickJumperInputClasses,
7590
8021
  getRadarAngles,
8022
+ getRadarLabelAlign,
7591
8023
  getRadarPoints,
7592
8024
  getRadioColorClasses,
7593
8025
  getRadioDotClasses,
@@ -7595,6 +8027,10 @@ var version = "0.2.0";
7595
8027
  getRadioLabelClasses,
7596
8028
  getRadioVisualClasses,
7597
8029
  getRowKey,
8030
+ getScatterGradientPrefix,
8031
+ getScatterHoverShadow,
8032
+ getScatterHoverSize,
8033
+ getScatterPointPath,
7598
8034
  getScrollTop,
7599
8035
  getScrollTransform,
7600
8036
  getSecureRel,
@@ -7611,15 +8047,15 @@ var version = "0.2.0";
7611
8047
  getSimplePaginationPageIndicatorClasses,
7612
8048
  getSimplePaginationSelectClasses,
7613
8049
  getSimplePaginationTotalClasses,
8050
+ getSizeTextClasses,
7614
8051
  getSkeletonClasses,
7615
8052
  getSkeletonDimensions,
7616
8053
  getSliderThumbClasses,
7617
8054
  getSliderTooltipClasses,
7618
8055
  getSliderTrackClasses,
7619
8056
  getSortIconClasses,
7620
- getSpaceAlignClass,
7621
- getSpaceDirectionClass,
7622
- getSpaceGapSize,
8057
+ getSpaceClasses,
8058
+ getSpaceStyle,
7623
8059
  getSpanClasses,
7624
8060
  getSpinnerSVG,
7625
8061
  getStatusVariant,
@@ -7646,6 +8082,7 @@ var version = "0.2.0";
7646
8082
  getTableWrapperClasses,
7647
8083
  getTabsContainerClasses,
7648
8084
  getTagVariantClasses,
8085
+ getTextClasses,
7649
8086
  getThemeColor,
7650
8087
  getTimePeriodLabels,
7651
8088
  getTimePickerIconButtonClasses,
@@ -7666,6 +8103,7 @@ var version = "0.2.0";
7666
8103
  getTooltipTriggerClasses,
7667
8104
  getTotalPages,
7668
8105
  getTotalTextClasses,
8106
+ getTouchDistance,
7669
8107
  getTransformOrigin,
7670
8108
  getTreeNodeClasses,
7671
8109
  getTreeNodeExpandIconClasses,
@@ -7685,7 +8123,31 @@ var version = "0.2.0";
7685
8123
  icon24ViewBox,
7686
8124
  iconSizeClasses,
7687
8125
  iconSvgBaseClasses,
8126
+ iconSvgDefaultStrokeLinecap,
8127
+ iconSvgDefaultStrokeLinejoin,
8128
+ iconSvgDefaultStrokeWidth,
7688
8129
  iconWrapperClasses,
8130
+ imageBaseClasses,
8131
+ imageCropperContainerClasses,
8132
+ imageCropperDragAreaClasses,
8133
+ imageCropperGuideClasses,
8134
+ imageCropperImgClasses,
8135
+ imageCropperMaskClasses,
8136
+ imageCropperSelectionClasses,
8137
+ imageErrorClasses,
8138
+ imageErrorIconPath,
8139
+ imageLoadingClasses,
8140
+ imagePreviewCloseBtnClasses,
8141
+ imagePreviewCounterClasses,
8142
+ imagePreviewCursorClass,
8143
+ imagePreviewImgClasses,
8144
+ imagePreviewMaskClasses,
8145
+ imagePreviewNavBtnClasses,
8146
+ imagePreviewToolbarBtnClasses,
8147
+ imagePreviewToolbarClasses,
8148
+ imagePreviewWrapperClasses,
8149
+ initRovingTabIndex,
8150
+ injectDropdownStyles,
7689
8151
  injectLoadingAnimationStyles,
7690
8152
  injectShakeStyle,
7691
8153
  injectSvgAnimationStyles,
@@ -7716,6 +8178,7 @@ var version = "0.2.0";
7716
8178
  layoutHeaderClasses,
7717
8179
  layoutRootClasses,
7718
8180
  layoutSidebarClasses,
8181
+ linePointTransitionClasses,
7719
8182
  linkBaseClasses,
7720
8183
  linkDisabledClasses,
7721
8184
  linkSizeClasses,
@@ -7737,7 +8200,6 @@ var version = "0.2.0";
7737
8200
  listItemSizeClasses,
7738
8201
  listItemTitleClasses,
7739
8202
  listLoadingOverlayClasses,
7740
- listPaginationContainerClasses,
7741
8203
  listSizeClasses,
7742
8204
  listWrapperClasses,
7743
8205
  loadingBarBaseClasses,
@@ -7775,12 +8237,8 @@ var version = "0.2.0";
7775
8237
  messageCloseIconPath,
7776
8238
  messageContainerBaseClasses,
7777
8239
  messageContentClasses,
7778
- messageEnterActiveClasses,
7779
- messageEnterClasses,
7780
8240
  messageIconClasses,
7781
8241
  messageIconPaths,
7782
- messageLeaveActiveClasses,
7783
- messageLeaveClasses,
7784
8242
  messageLoadingSpinnerClasses,
7785
8243
  messagePositionClasses,
7786
8244
  modalBodyClasses,
@@ -7792,9 +8250,13 @@ var version = "0.2.0";
7792
8250
  modalSizeClasses,
7793
8251
  modalTitleClasses,
7794
8252
  modalWrapperClasses,
8253
+ moveCropRect,
8254
+ moveFocusInMenu,
8255
+ nextIconPath,
7795
8256
  normalizeActiveKeys,
7796
8257
  normalizeChartPadding,
7797
8258
  normalizeDate,
8259
+ normalizeStringOption,
7798
8260
  normalizeSvgAttrs,
7799
8261
  notificationBaseClasses,
7800
8262
  notificationCloseButtonClasses,
@@ -7809,6 +8271,7 @@ var version = "0.2.0";
7809
8271
  notificationTitleClasses,
7810
8272
  paginateData,
7811
8273
  parseDate,
8274
+ parseInputValue,
7812
8275
  parseTime,
7813
8276
  parseWidthToPx,
7814
8277
  polarToCartesian,
@@ -7822,6 +8285,8 @@ var version = "0.2.0";
7822
8285
  popconfirmSuccessIconPath,
7823
8286
  popconfirmWarningIconPath,
7824
8287
  prepareUploadFiles,
8288
+ prevIconPath,
8289
+ previewCloseIconPath,
7825
8290
  progressCircleBaseClasses,
7826
8291
  progressCircleSizeClasses,
7827
8292
  progressCircleTextClasses,
@@ -7844,8 +8309,19 @@ var version = "0.2.0";
7844
8309
  radioSizeClasses,
7845
8310
  radioVisualBaseClasses,
7846
8311
  replaceKeys,
8312
+ resetAreaGradientCounter,
8313
+ resetBarGradientCounter,
8314
+ resetIconPath,
8315
+ resetLineGradientCounter,
8316
+ resetScatterGradientCounter,
8317
+ resizeCropRect,
8318
+ resolveChartPalette,
8319
+ resolveChartTooltipContent,
7847
8320
  resolveLocaleText,
8321
+ resolveMultiSeriesTooltipContent,
8322
+ resolveSeriesData,
7848
8323
  restoreFocus,
8324
+ scatterPointTransitionClasses,
7849
8325
  scrollToAnchor,
7850
8326
  scrollToTop,
7851
8327
  selectBaseClasses,
@@ -7885,12 +8361,7 @@ var version = "0.2.0";
7885
8361
  statusInfoIconPath,
7886
8362
  statusSuccessIconPath,
7887
8363
  statusWarningIconPath,
7888
- stepFinishIconPathD,
7889
- stepFinishIconPathStrokeLinecap,
7890
- stepFinishIconPathStrokeLinejoin,
7891
- stepFinishIconPathStrokeWidth,
7892
- stepFinishIconSvgClasses,
7893
- stepFinishIconViewBox,
8364
+ stepFinishChar,
7894
8365
  submenuContentHorizontalClasses,
7895
8366
  submenuContentInlineClasses,
7896
8367
  submenuContentPopupClasses,
@@ -7917,6 +8388,7 @@ var version = "0.2.0";
7917
8388
  tabItemLineClasses,
7918
8389
  tabItemSizeClasses,
7919
8390
  tabNavBaseClasses,
8391
+ tabNavLineBorderClasses,
7920
8392
  tabNavListBaseClasses,
7921
8393
  tabNavListCenteredClasses,
7922
8394
  tabNavListPositionClasses,
@@ -7964,6 +8436,7 @@ var version = "0.2.0";
7964
8436
  to12HourFormat,
7965
8437
  to24HourFormat,
7966
8438
  toActivityTimelineItems,
8439
+ toCSSSize,
7967
8440
  toggleKey,
7968
8441
  togglePanelKey,
7969
8442
  treeBaseClasses,
@@ -7982,6 +8455,7 @@ var version = "0.2.0";
7982
8455
  treeNodeLabelClasses,
7983
8456
  treeNodeSelectedClasses,
7984
8457
  treeNodeWrapperClasses,
8458
+ uploadPlusIconPath,
7985
8459
  uploadStatusIconColorClasses,
7986
8460
  uploadStatusIconSizeClasses,
7987
8461
  validateCurrentPage,
@@ -7990,5 +8464,7 @@ var version = "0.2.0";
7990
8464
  validateFileType,
7991
8465
  validateForm,
7992
8466
  validateRule,
7993
- version
8467
+ version,
8468
+ zoomInIconPath,
8469
+ zoomOutIconPath
7994
8470
  });