@flikk/ui 1.0.0-beta.8 → 1.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/components/ai/ApprovalCard/ApprovalCard.js +1 -1
  2. package/dist/components/ai/CodeBlock/CodeBlock.theme.js +2 -2
  3. package/dist/components/ai/PromptInput/PromptInput.js +2 -2
  4. package/dist/components/ai/PromptInput/PromptInput.theme.js +1 -1
  5. package/dist/components/ai/PromptSuggestions/PromptSuggestion.theme.js +1 -1
  6. package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +6 -6
  7. package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +4 -4
  8. package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.js +2 -2
  9. package/dist/components/ai/TokenCounter/TokenCounter.theme.js +6 -6
  10. package/dist/components/charts/ActivityRings/ActivityRings.js +1 -1
  11. package/dist/components/charts/ActivityRings/ActivityRings.theme.js +2 -2
  12. package/dist/components/charts/BarChart/BarChart.js +3 -3
  13. package/dist/components/charts/ChartContainer.js +1 -1
  14. package/dist/components/charts/ComboChart/ComboChart.js +2 -2
  15. package/dist/components/charts/DonutChart/DonutChart.theme.js +1 -1
  16. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +1 -1
  17. package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
  18. package/dist/components/charts/FunnelChart/FunnelChart.js +7 -7
  19. package/dist/components/charts/Heatmap/Heatmap.theme.js +1 -1
  20. package/dist/components/charts/Heatmap/HeatmapCell.js +1 -1
  21. package/dist/components/charts/Heatmap/HeatmapLegend.js +1 -1
  22. package/dist/components/charts/RadarChart/RadarChart.theme.js +2 -2
  23. package/dist/components/charts/ScatterPlot/ScatterPlot.js +1 -1
  24. package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +2 -2
  25. package/dist/components/charts/StackedBarChart/StackedBarChart.js +2 -2
  26. package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +1 -1
  27. package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +1 -1
  28. package/dist/components/charts/shared/ChartText/ChartText.js +1 -1
  29. package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
  30. package/dist/components/charts/shared/ChartTooltip/ChartTooltip.theme.js +4 -4
  31. package/dist/components/core/Alert/Alert.theme.js +1 -1
  32. package/dist/components/core/AlertDialog/AlertDialog.js +1 -1
  33. package/dist/components/core/Avatar/Avatar.theme.js +5 -5
  34. package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +1 -1
  35. package/dist/components/core/Badge/Badge.theme.js +2 -2
  36. package/dist/components/core/Breadcrumbs/Breadcrumbs.js +1 -1
  37. package/dist/components/core/Button/Button.theme.js +6 -6
  38. package/dist/components/core/ButtonGroup/ButtonGroup.theme.js +1 -1
  39. package/dist/components/core/Calendar/Calendar.js +1 -1
  40. package/dist/components/core/Calendar/Calendar.theme.js +5 -5
  41. package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +1 -1
  42. package/dist/components/core/Card/Card.theme.js +2 -2
  43. package/dist/components/core/CommandPalette/CommandItem.js +1 -1
  44. package/dist/components/core/CommandPalette/CommandPalette.theme.js +3 -3
  45. package/dist/components/core/ContextMenu/ContextMenu.theme.js +3 -3
  46. package/dist/components/core/ContextMenu/ContextMenuItem.js +1 -1
  47. package/dist/components/core/Drawer/Drawer.theme.js +2 -2
  48. package/dist/components/core/Dropdown/Dropdown.theme.js +1 -1
  49. package/dist/components/core/Empty/Empty.theme.js +2 -2
  50. package/dist/components/core/Kbd/Kbd.theme.js +3 -3
  51. package/dist/components/core/Loader/Loader.theme.js +1 -1
  52. package/dist/components/core/MenuItem/MenuItem.theme.js +2 -2
  53. package/dist/components/core/Message/Message.js +1 -1
  54. package/dist/components/core/Message/Message.theme.js +4 -4
  55. package/dist/components/core/Modal/Modal.theme.js +2 -2
  56. package/dist/components/core/NavItem/NavItem.js +1 -1
  57. package/dist/components/core/NavItem/NavItem.theme.js +1 -1
  58. package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +2 -2
  59. package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
  60. package/dist/components/core/Pagination/Pagination.theme.js +2 -2
  61. package/dist/components/core/Pill/Pill.theme.js +3 -3
  62. package/dist/components/core/Progress/Progress.theme.js +2 -2
  63. package/dist/components/core/Segmented/Segmented.theme.js +3 -3
  64. package/dist/components/core/Sidebar/SidebarNavGroup.js +1 -1
  65. package/dist/components/core/Tabs/Tabs.theme.js +2 -2
  66. package/dist/components/core/Tag/Tag.theme.js +2 -2
  67. package/dist/components/core/Toast/Toast.theme.js +4 -4
  68. package/dist/components/core/Tooltip/Tooltip.theme.js +1 -1
  69. package/dist/components/core/Tree/Tree.theme.js +1 -1
  70. package/dist/components/data-display/DescriptionList/DescriptionList.theme.js +2 -2
  71. package/dist/components/data-display/Feed/Feed.js +1 -1
  72. package/dist/components/data-display/Feed/Feed.theme.js +2 -2
  73. package/dist/components/data-display/GanttChart/GanttChart.theme.js +2 -2
  74. package/dist/components/data-display/GanttChart/GanttChartPanel.js +1 -1
  75. package/dist/components/data-display/GanttChart/GanttMilestone.js +2 -2
  76. package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +1 -1
  77. package/dist/components/data-display/GanttChart/GanttTaskBar.js +2 -2
  78. package/dist/components/data-display/KPI/KPI.js +1 -1
  79. package/dist/components/data-display/KPI/KPI.theme.js +7 -7
  80. package/dist/components/data-display/Metric/Metric.js +1 -1
  81. package/dist/components/data-display/Metric/Metric.theme.js +7 -7
  82. package/dist/components/data-display/Table/Table.theme.js +3 -3
  83. package/dist/components/data-display/Table/TableActionsMenu.js +1 -1
  84. package/dist/components/data-display/Table/TableColumnManager.js +1 -1
  85. package/dist/components/data-display/Table/TableFilter.js +3 -3
  86. package/dist/components/data-display/Table/TableHeader.js +1 -1
  87. package/dist/components/data-display/Table/TablePagination.js +1 -1
  88. package/dist/components/data-display/Table/TableSelectionHeader.js +1 -1
  89. package/dist/components/effects/CustomCursor/CustomCursor.js +1 -1
  90. package/dist/components/effects/CustomCursor/CustomCursor.theme.js +1 -1
  91. package/dist/components/effects/StickyScroll/StickyScroll.js +1 -1
  92. package/dist/components/forms/Checkbox/Checkbox.theme.js +3 -3
  93. package/dist/components/forms/ColorPicker/ColorPicker.js +1 -1
  94. package/dist/components/forms/ColorPicker/ColorPicker.theme.js +1 -1
  95. package/dist/components/forms/ColorPicker/ColorPickerInput.js +7 -7
  96. package/dist/components/forms/CronInput/CronInput.js +1 -1
  97. package/dist/components/forms/CronInput/CronInput.theme.js +8 -8
  98. package/dist/components/forms/DatePicker/DatePicker.theme.js +1 -1
  99. package/dist/components/forms/DatePicker/DatePickerContent.js +1 -1
  100. package/dist/components/forms/FileUpload/FileUpload.js +2 -2
  101. package/dist/components/forms/FileUpload/FileUpload.theme.js +4 -4
  102. package/dist/components/forms/FormLabel/FormLabel.theme.js +1 -1
  103. package/dist/components/forms/Input/Input.theme.js +1 -1
  104. package/dist/components/forms/InputCounter/InputCounter.theme.js +1 -1
  105. package/dist/components/forms/InputOTP/InputOTP.theme.js +1 -1
  106. package/dist/components/forms/InputTag/InputTag.js +1 -1
  107. package/dist/components/forms/Mention/Mention.theme.js +3 -3
  108. package/dist/components/forms/Radio/Radio.theme.js +3 -3
  109. package/dist/components/forms/RichTextEditor/RichTextEditor.js +2 -2
  110. package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +1 -1
  111. package/dist/components/forms/Select/Select.theme.js +1 -1
  112. package/dist/components/forms/Signature/Signature.theme.js +1 -1
  113. package/dist/components/forms/Slider/Slider.theme.js +3 -3
  114. package/dist/components/forms/Switch/Switch.theme.js +1 -1
  115. package/dist/components/forms/TimePicker/TimePicker.theme.js +2 -2
  116. package/dist/components/forms/TransferList/TransferList.js +2 -2
  117. package/dist/components/forms/TransferList/TransferList.theme.js +6 -6
  118. package/dist/components/forms/forms.theme.js +6 -6
  119. package/dist/components/layout/FormLayout/FormLayout.theme.js +4 -4
  120. package/dist/styles.css +1 -1
  121. package/package.json +1 -1
  122. package/src/styles/theme.css +0 -17
@@ -13,7 +13,7 @@ const GanttMilestone = React__default.memo(({ task, group, top, }) => {
13
13
  const left = offset * dayWidth + dayWidth / 2;
14
14
  const size = 14;
15
15
  const barColor = (_a = task.color) !== null && _a !== void 0 ? _a : group.color;
16
- const tooltipContent = (jsxs("div", { className: "text-xs space-y-1", children: [jsx("div", { className: "font-semibold", children: task.title }), jsxs("div", { className: "flex items-center gap-1.5 text-[var(--color-text-placeholder)]", children: [jsx("span", { className: "inline-block size-2 rounded-full shrink-0", style: { backgroundColor: group.color } }), group.title] }), jsx("div", { children: formatDateShort(task.endDate) })] }));
16
+ const tooltipContent = (jsxs("div", { className: "text-sm space-y-1", children: [jsx("div", { className: "font-semibold", children: task.title }), jsxs("div", { className: "flex items-center gap-1.5 text-[var(--color-text-placeholder)]", children: [jsx("span", { className: "inline-block size-2 rounded-full shrink-0", style: { backgroundColor: group.color } }), group.title] }), jsx("div", { children: formatDateShort(task.endDate) })] }));
17
17
  const handleClick = (e) => {
18
18
  onTaskClick === null || onTaskClick === void 0 ? void 0 : onTaskClick(task, e);
19
19
  };
@@ -33,7 +33,7 @@ const GanttMilestone = React__default.memo(({ task, group, top, }) => {
33
33
  border: "2px solid var(--color-background, white)",
34
34
  transform: "rotate(45deg)",
35
35
  boxShadow: "0 1px 3px rgba(0,0,0,0.2)",
36
- } }), jsx("span", { className: "absolute text-xs font-medium whitespace-nowrap pointer-events-none", style: {
36
+ } }), jsx("span", { className: "absolute text-sm font-medium whitespace-nowrap pointer-events-none", style: {
37
37
  left: size + 4,
38
38
  top: size / 2,
39
39
  transform: "translateY(-50%)",
@@ -14,7 +14,7 @@ const GanttTableGroupRow = React__default.memo(({ row, }) => {
14
14
  e.preventDefault();
15
15
  toggleGroup(row.group.id);
16
16
  }
17
- }, role: "button", tabIndex: 0, "aria-expanded": !isCollapsed, "aria-label": `${row.group.title} — ${row.completedCount} of ${row.taskCount} completed`, children: [jsxs("div", { className: "flex items-center gap-2 px-3 flex-1 min-w-0", children: [jsx(motion.div, { variants: chevronVariants, animate: isCollapsed ? "collapsed" : "open", children: jsx(ChevronRightIcon, { className: "size-4 text-[var(--color-text-muted)]" }) }), jsx("div", { className: "size-2.5 rounded-full shrink-0", style: { backgroundColor: row.group.color } }), jsx("span", { className: "font-medium text-[var(--color-text-primary)] truncate", children: row.group.title }), jsxs("span", { className: "text-xs text-[var(--color-text-muted)] shrink-0", children: [row.completedCount, "/", row.taskCount] })] }), onTaskAdd && !readonly && (jsx("button", { className: "p-1 mr-2 rounded hover:bg-[var(--color-background-tertiary)] text-[var(--color-text-muted)] opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity", "aria-label": `Add task to ${row.group.title}`, onClick: (e) => {
17
+ }, role: "button", tabIndex: 0, "aria-expanded": !isCollapsed, "aria-label": `${row.group.title} — ${row.completedCount} of ${row.taskCount} completed`, children: [jsxs("div", { className: "flex items-center gap-2 px-3 flex-1 min-w-0", children: [jsx(motion.div, { variants: chevronVariants, animate: isCollapsed ? "collapsed" : "open", children: jsx(ChevronRightIcon, { className: "size-4 text-[var(--color-text-muted)]" }) }), jsx("div", { className: "size-2.5 rounded-full shrink-0", style: { backgroundColor: row.group.color } }), jsx("span", { className: "font-medium text-[var(--color-text-primary)] truncate", children: row.group.title }), jsxs("span", { className: "text-sm text-[var(--color-text-muted)] shrink-0", children: [row.completedCount, "/", row.taskCount] })] }), onTaskAdd && !readonly && (jsx("button", { className: "p-1 mr-2 rounded hover:bg-[var(--color-background-tertiary)] text-[var(--color-text-muted)] opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity", "aria-label": `Add task to ${row.group.title}`, onClick: (e) => {
18
18
  e.stopPropagation();
19
19
  onTaskAdd(row.group.id);
20
20
  }, children: jsx(PlusIcon, { className: "size-4" }) }))] }));
@@ -162,7 +162,7 @@ const GanttTaskBar = React__default.memo(({ task, group, top, }) => {
162
162
  onTaskClick === null || onTaskClick === void 0 ? void 0 : onTaskClick(task, e);
163
163
  };
164
164
  // ----- Tooltip -----
165
- const tooltipContent = (jsxs("div", { className: "text-xs space-y-2 min-w-[180px]", children: [jsx("div", { className: "font-semibold text-sm", children: task.title }), jsxs("div", { className: "flex items-center gap-1.5 opacity-70", children: [jsx("span", { className: "inline-block size-2 rounded-full shrink-0", style: { backgroundColor: group.color } }), group.title] }), jsxs("div", { className: "space-y-0.5", children: [jsxs("div", { children: [formatDateShort(task.startDate), " \u2014 ", formatDateShort(task.endDate)] }), jsx("div", { className: "opacity-70", children: formatDuration(task.startDate, task.endDate) })] }), jsxs("div", { children: [jsxs("div", { className: "flex justify-between mb-1", children: [jsx("span", { children: "Progress" }), jsxs("span", { className: "font-medium", children: [task.progress, "%"] })] }), jsx("div", { className: "h-1.5 rounded-full bg-white/20 overflow-hidden", children: jsx("div", { className: "h-full rounded-full", style: {
165
+ const tooltipContent = (jsxs("div", { className: "text-sm space-y-2 min-w-[180px]", children: [jsx("div", { className: "font-semibold text-base", children: task.title }), jsxs("div", { className: "flex items-center gap-1.5 opacity-70", children: [jsx("span", { className: "inline-block size-2 rounded-full shrink-0", style: { backgroundColor: group.color } }), group.title] }), jsxs("div", { className: "space-y-0.5", children: [jsxs("div", { children: [formatDateShort(task.startDate), " \u2014 ", formatDateShort(task.endDate)] }), jsx("div", { className: "opacity-70", children: formatDuration(task.startDate, task.endDate) })] }), jsxs("div", { children: [jsxs("div", { className: "flex justify-between mb-1", children: [jsx("span", { children: "Progress" }), jsxs("span", { className: "font-medium", children: [task.progress, "%"] })] }), jsx("div", { className: "h-1.5 rounded-full bg-white/20 overflow-hidden", children: jsx("div", { className: "h-full rounded-full", style: {
166
166
  width: `${task.progress}%`,
167
167
  backgroundColor: barColor,
168
168
  } }) })] }), task.assignee && (jsxs("div", { className: "flex items-center gap-1.5 pt-0.5", children: [jsx(Avatar, { src: task.assignee.avatar, alt: task.assignee.name, size: "xs" }), jsx("span", { children: task.assignee.name })] })), isBehindSchedule && (jsxs("div", { className: "text-[var(--color-warning)] text-[10px]", children: ["Behind schedule (expected ", expectedProgress, "%)"] }))] }));
@@ -195,7 +195,7 @@ const GanttTaskBar = React__default.memo(({ task, group, top, }) => {
195
195
  } }), isBehindSchedule && (jsx("div", { className: "absolute top-0 bottom-0 w-px", style: {
196
196
  left: `${expectedProgress}%`,
197
197
  borderLeft: "2px dashed rgba(255,255,255,0.5)",
198
- } })), task.completed && (jsx("div", { className: "absolute top-1/2 left-2 right-2 h-px bg-white/60", style: { transform: "translateY(-0.5px)" } })), canDragDates && (jsx("div", { className: "absolute left-0 top-0 bottom-0 w-2 cursor-ew-resize z-20 rounded-l-full opacity-0 group-hover:opacity-100 transition-opacity hover:bg-black/10", onPointerDown: resizeLeftDrag.handlePointerDown })), canDragDates && (jsx("div", { className: "absolute right-0 top-0 bottom-0 w-2 cursor-ew-resize z-20 rounded-r-full opacity-0 group-hover:opacity-100 transition-opacity hover:bg-black/10", onPointerDown: resizeRightDrag.handlePointerDown })), canDragProgress && !isNarrow && (jsx("div", { className: "absolute top-0 bottom-0 w-3 cursor-ew-resize z-20 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity", style: { left: `calc(${displayProgress}% - 6px)` }, onPointerDown: progressDrag.handlePointerDown, children: jsx("div", { className: "w-0.5 h-3 rounded-full bg-white/80 shadow" }) })), !isNarrow && (jsxs("div", { className: "relative flex items-center gap-1.5 px-1 z-10 min-w-0 pointer-events-none", children: [task.assignee && (jsx(Avatar, { src: task.assignee.avatar, alt: task.assignee.name, size: "xs" })), jsx("span", { className: "truncate text-xs text-[var(--color-text-inverse)] font-medium", children: task.title })] }))] }), isNarrow && (jsx("span", { className: "absolute text-xs font-medium whitespace-nowrap pointer-events-none", style: {
198
+ } })), task.completed && (jsx("div", { className: "absolute top-1/2 left-2 right-2 h-px bg-white/60", style: { transform: "translateY(-0.5px)" } })), canDragDates && (jsx("div", { className: "absolute left-0 top-0 bottom-0 w-2 cursor-ew-resize z-20 rounded-l-full opacity-0 group-hover:opacity-100 transition-opacity hover:bg-black/10", onPointerDown: resizeLeftDrag.handlePointerDown })), canDragDates && (jsx("div", { className: "absolute right-0 top-0 bottom-0 w-2 cursor-ew-resize z-20 rounded-r-full opacity-0 group-hover:opacity-100 transition-opacity hover:bg-black/10", onPointerDown: resizeRightDrag.handlePointerDown })), canDragProgress && !isNarrow && (jsx("div", { className: "absolute top-0 bottom-0 w-3 cursor-ew-resize z-20 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity", style: { left: `calc(${displayProgress}% - 6px)` }, onPointerDown: progressDrag.handlePointerDown, children: jsx("div", { className: "w-0.5 h-3 rounded-full bg-white/80 shadow" }) })), !isNarrow && (jsxs("div", { className: "relative flex items-center gap-1.5 px-1 z-10 min-w-0 pointer-events-none", children: [task.assignee && (jsx(Avatar, { src: task.assignee.avatar, alt: task.assignee.name, size: "xs" })), jsx("span", { className: "truncate text-sm text-[var(--color-text-inverse)] font-medium", children: task.title })] }))] }), isNarrow && (jsx("span", { className: "absolute text-sm font-medium whitespace-nowrap pointer-events-none", style: {
199
199
  left: visualWidth + 6,
200
200
  top: barHeight / 2,
201
201
  transform: "translateY(-50%)",
@@ -43,7 +43,7 @@ const KPI = React__default.forwardRef(({ value, label, trend, trendLabel, progre
43
43
  ease: "easeOut",
44
44
  delay: i * 0.03,
45
45
  } })) }, i));
46
- }) })), subtitle && (jsx("span", { className: cn(theme.subtitleStyle, size === "sm" ? "text-xs" : "text-sm"), children: subtitle }))] }));
46
+ }) })), subtitle && (jsx("span", { className: cn(theme.subtitleStyle, size === "sm" ? "text-sm" : "text-base"), children: subtitle }))] }));
47
47
  });
48
48
  KPI.displayName = "KPI";
49
49
 
@@ -3,23 +3,23 @@ import { semanticBgColors } from '../../../utils/colorUtils.js';
3
3
  const kpiTheme = {
4
4
  baseStyle: "flex flex-col gap-3",
5
5
  valueSizes: {
6
- sm: "text-xl font-bold text-[var(--color-text-primary)]",
6
+ sm: "text-2xl font-bold text-[var(--color-text-primary)]",
7
7
  md: "text-3xl font-bold text-[var(--color-text-primary)]",
8
8
  lg: "text-4xl font-bold text-[var(--color-text-primary)]",
9
9
  },
10
10
  labelStyle: "text-[var(--color-text-muted)]",
11
11
  labelSizes: {
12
- sm: "text-xs",
13
- md: "text-sm",
14
- lg: "text-base",
12
+ sm: "text-sm",
13
+ md: "text-base",
14
+ lg: "text-lg",
15
15
  },
16
16
  trendPositive: "text-[var(--color-success)]",
17
17
  trendNegative: "text-[var(--color-danger)]",
18
18
  trendNeutral: "text-[var(--color-text-muted)]",
19
19
  trendSizes: {
20
- sm: "text-xs",
21
- md: "text-sm",
22
- lg: "text-base",
20
+ sm: "text-sm",
21
+ md: "text-base",
22
+ lg: "text-lg",
23
23
  },
24
24
  barFilledColors: {
25
25
  ...semanticBgColors,
@@ -11,7 +11,7 @@ const Metric = React__default.forwardRef(({ value, label, subtitle, trendValue,
11
11
  const variantStyles = metricTheme.variants[variant];
12
12
  const variantColorStyles = metricTheme.variantColors[variant] || "";
13
13
  const iconStyles = ((_a = metricTheme.iconContainerVariantColors[variant]) === null || _a === void 0 ? void 0 : _a[color]) || "";
14
- return (jsx("div", { ref: ref, className: cn(metricTheme.baseStyle, variantStyles, variantColorStyles, sizeStyles.container, className), "data-size": size, ...props, children: jsxs("div", { className: "flex flex-col gap-3 ", children: [jsxs("div", { className: cn("flex items-start gap-3", sizeStyles.contentPadding), children: [icon && (jsx("div", { className: cn(metricTheme.iconContainerStyle, iconStyles, sizeStyles.iconContainer), children: icon })), jsxs("div", { className: "flex flex-col flex-1", children: [jsx("div", { className: cn(metricTheme.labelStyle, sizeStyles.label), children: label }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("div", { className: cn(metricTheme.valueStyle, sizeStyles.value), children: value }), trendValue && (jsxs("div", { className: cn("flex items-center w-fit gap-1 text-sm font-medium", trendDirection === "up"
14
+ return (jsx("div", { ref: ref, className: cn(metricTheme.baseStyle, variantStyles, variantColorStyles, sizeStyles.container, className), "data-size": size, ...props, children: jsxs("div", { className: "flex flex-col gap-3 ", children: [jsxs("div", { className: cn("flex items-start gap-3", sizeStyles.contentPadding), children: [icon && (jsx("div", { className: cn(metricTheme.iconContainerStyle, iconStyles, sizeStyles.iconContainer), children: icon })), jsxs("div", { className: "flex flex-col flex-1", children: [jsx("div", { className: cn(metricTheme.labelStyle, sizeStyles.label), children: label }), jsxs("div", { className: "flex items-center gap-2", children: [jsx("div", { className: cn(metricTheme.valueStyle, sizeStyles.value), children: value }), trendValue && (jsxs("div", { className: cn("flex items-center w-fit gap-1 text-base font-medium", trendDirection === "up"
15
15
  ? "text-[var(--color-success)]"
16
16
  : "text-[var(--color-danger)]"), children: [trendIcon, " ", trendValue] }))] }), subtitle && (jsx("div", { className: cn(metricTheme.subtitleStyle, sizeStyles.subtitle), children: subtitle }))] })] }), trendChart && (jsx("div", { className: "w-full h-12 flex-shrink-0 -mt-4", children: trendChart }))] }) }));
17
17
  });
@@ -51,25 +51,25 @@ const metricTheme = {
51
51
  container: "", // Padding moved to content section
52
52
  contentPadding: "p-3",
53
53
  iconContainer: "size-10",
54
- label: "text-xs",
55
- value: "text-xl",
56
- subtitle: "text-xs mt-1",
54
+ label: "text-sm",
55
+ value: "text-2xl",
56
+ subtitle: "text-sm mt-1",
57
57
  },
58
58
  md: {
59
59
  container: "", // Padding moved to content section
60
60
  contentPadding: "p-4",
61
61
  iconContainer: "size-14",
62
- label: "text-sm",
62
+ label: "text-base",
63
63
  value: "text-2xl",
64
- subtitle: "text-xs mt-0.5",
64
+ subtitle: "text-sm mt-0.5",
65
65
  },
66
66
  lg: {
67
67
  container: "", // Padding moved to content section
68
68
  contentPadding: "p-5",
69
69
  iconContainer: "size-16",
70
- label: "text-base",
70
+ label: "text-lg",
71
71
  value: "text-3xl",
72
- subtitle: "text-sm mt-1",
72
+ subtitle: "text-base mt-1",
73
73
  },
74
74
  },
75
75
  // Common element styles
@@ -3,7 +3,7 @@ const tableTheme = {
3
3
  // Uses border-separate so sticky cells keep their borders (border-collapse
4
4
  // paints borders on the table grid, which sticky cells float above)
5
5
  // Light: white background | Dark: neutral-900 background
6
- baseStyle: "w-full border-separate border-spacing-0 text-sm " + "",
6
+ baseStyle: "w-full border-separate border-spacing-0 text-base " + "",
7
7
  // Variant styles
8
8
  // Each variant gets dark mode border colors and alternate row colors
9
9
  variants: {
@@ -23,7 +23,7 @@ const tableTheme = {
23
23
  // Header styles
24
24
  // Light: primary text, light border | Dark: neutral-200 text, neutral-700 border
25
25
  headerStyle: "text-left font-semibold sticky top-0 border-b first:pl-4 last:pr-4 " +
26
- "text-[var(--color-text-secondary)]/80 text-sm border-[var(--color-border)] ",
26
+ "text-[var(--color-text-secondary)]/80 text-base border-[var(--color-border)] ",
27
27
  // Cell styles — borders on cells (not rows) so sticky columns keep them
28
28
  // Light: primary text | Dark: neutral-300 text
29
29
  cellStyle: "border-b border-b-[var(--color-border)] first:pl-4 last:pr-4 " +
@@ -46,7 +46,7 @@ const tableTheme = {
46
46
  "dark:shadow-[var(--color-neutral-900)]/50",
47
47
  // Utility controls - Column manager button
48
48
  // Light: white bg with light border | Dark: neutral-800 bg with neutral-600 border
49
- columnManagerButton: "inline-flex items-center gap-2 rounded-[calc(var(--radius-base)*0.75)] px-3 py-2 text-sm font-medium " +
49
+ columnManagerButton: "inline-flex items-center gap-2 rounded-[calc(var(--radius-base)*0.75)] px-3 py-2 text-base font-medium " +
50
50
  "focus:outline-none focus:ring-2 focus:ring-[var(--color-primary-500)] focus:ring-offset-2 " +
51
51
  "dark:focus:ring-offset-[var(--color-neutral-900)] " +
52
52
  "bg-white border border-[var(--color-neutral-300)] text-[var(--color-text-primary)] hover:bg-[var(--color-neutral-50)] " +
@@ -17,7 +17,7 @@ const TableActionsMenu = ({ actions, row, onClose, className, }) => {
17
17
  var _a;
18
18
  const isDisabled = (_a = action.disabled) === null || _a === void 0 ? void 0 : _a.call(action, row);
19
19
  const Icon = action.icon;
20
- return (jsxs("button", { onClick: () => handleActionClick(action), disabled: isDisabled, className: cn("w-full flex items-center gap-3 px-3 py-2 text-sm font-medium text-left transition-all duration-300", "hover:bg-[var(--color-background-secondary)] focus:bg-[var(--color-background-secondary)] focus:outline-none rounded-sm cursor-pointer", action.variant === 'danger'
20
+ return (jsxs("button", { onClick: () => handleActionClick(action), disabled: isDisabled, className: cn("w-full flex items-center gap-3 px-3 py-2 text-base font-medium text-left transition-all duration-300", "hover:bg-[var(--color-background-secondary)] focus:bg-[var(--color-background-secondary)] focus:outline-none rounded-sm cursor-pointer", action.variant === 'danger'
21
21
  ? "text-[var(--color-danger)] hover:bg-[var(--color-danger-50)] focus:bg-[var(--color-danger-50)]"
22
22
  : "text-[var(--color-text-primary)]", isDisabled && "opacity-50 cursor-not-allowed hover:bg-transparent"), role: "menuitem", "aria-label": action.label, children: [jsx(Icon, { className: "size-4 flex-shrink-0" }), jsx("span", { children: action.label })] }, action.id));
23
23
  }) }));
@@ -16,7 +16,7 @@ function TableColumnManagerComponent({ columns, visibleColumns, columnOrder, onT
16
16
  const displayName = typeof column.header === 'string' ? column.header : column.id;
17
17
  return (jsx(Checkbox, { id: `column-checkbox-${column.id}`, name: `column-${column.id}`, value: column.id, checked: isVisible, onChange: () => onToggleColumn(column.id), "aria-label": `Toggle visibility for ${displayName} column`, label: displayName, state: isLocked ? 'disabled' : 'default' }));
18
18
  };
19
- return (jsxs(Popover, { placement: "bottom-end", offset: 8, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "filled", "aria-label": "Manage column visibility", children: [jsx(Cog6ToothIcon, { className: "size-5", "aria-hidden": "true" }), "Manage Columns"] }) }), jsx(Popover.Content, { className: "p-0", children: jsxs("div", { className: "w-64 p-3 overflow-hidden", role: "dialog", "aria-labelledby": "column-manager-title", "aria-describedby": "column-manager-description", "aria-modal": "true", children: [jsx("div", { id: "column-manager-title", className: "text-xs uppercase font-bold mb-3 text-[var(--color-text-placeholder)]", children: "Manage Columns" }), jsx("div", { id: "column-manager-description", className: "sr-only", children: "Use checkboxes to control which columns are visible in the table. Locked columns cannot be hidden." }), jsx("div", { className: "space-y-0.5", role: "group", "aria-label": "Column visibility options", children: onColumnReorder ? (jsx(Sortable, { onReorder: onColumnReorder, showDragHandle: true, className: "space-y-0.5", children: orderedColumns.map((column) => (jsx(SortableItem, { id: column.id, disabled: column.locked === true, className: `hover:bg-[var(--color-background-tertiary)] rounded-lg p-1.5 transition-colors ${column.locked ? 'bg-[var(--color-background-secondary)]' : ''}`, children: renderColumnItem(column) }, column.id))) })) : (orderedColumns.map((column) => (jsx("div", { className: `hover:bg-[var(--color-background-tertiary)] rounded-lg p-1.5 transition-colors ${column.locked ? 'bg-[var(--color-background-secondary)]' : ''}`, children: renderColumnItem(column) }, column.id)))) }), jsx("div", { className: "mt-3 flex justify-end", children: jsx(Button, { color: "neutral", variant: "filled", className: "w-full", onClick: onResetToDefault, children: "Reset to Default" }) })] }) })] }));
19
+ return (jsxs(Popover, { placement: "bottom-end", offset: 8, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "filled", "aria-label": "Manage column visibility", children: [jsx(Cog6ToothIcon, { className: "size-5", "aria-hidden": "true" }), "Manage Columns"] }) }), jsx(Popover.Content, { className: "p-0", children: jsxs("div", { className: "w-64 p-3 overflow-hidden", role: "dialog", "aria-labelledby": "column-manager-title", "aria-describedby": "column-manager-description", "aria-modal": "true", children: [jsx("div", { id: "column-manager-title", className: "text-sm uppercase font-bold mb-3 text-[var(--color-text-placeholder)]", children: "Manage Columns" }), jsx("div", { id: "column-manager-description", className: "sr-only", children: "Use checkboxes to control which columns are visible in the table. Locked columns cannot be hidden." }), jsx("div", { className: "space-y-0.5", role: "group", "aria-label": "Column visibility options", children: onColumnReorder ? (jsx(Sortable, { onReorder: onColumnReorder, showDragHandle: true, className: "space-y-0.5", children: orderedColumns.map((column) => (jsx(SortableItem, { id: column.id, disabled: column.locked === true, className: `hover:bg-[var(--color-background-tertiary)] rounded-lg p-1.5 transition-colors ${column.locked ? 'bg-[var(--color-background-secondary)]' : ''}`, children: renderColumnItem(column) }, column.id))) })) : (orderedColumns.map((column) => (jsx("div", { className: `hover:bg-[var(--color-background-tertiary)] rounded-lg p-1.5 transition-colors ${column.locked ? 'bg-[var(--color-background-secondary)]' : ''}`, children: renderColumnItem(column) }, column.id)))) }), jsx("div", { className: "mt-3 flex justify-end", children: jsx(Button, { color: "neutral", variant: "filled", className: "w-full", onClick: onResetToDefault, children: "Reset to Default" }) })] }) })] }));
20
20
  }
21
21
  const TableColumnManager = TableColumnManagerComponent;
22
22
 
@@ -23,7 +23,7 @@ function FilterValueInput({ filter, column, filterType, onValueChange, }) {
23
23
  if (isBetweenOperator(filter.operator)) {
24
24
  const betweenValue = Array.isArray(filter.value) ? filter.value : ["", ""];
25
25
  const inputType = filterType === "date" ? "date" : "number";
26
- return (jsxs("div", { className: "flex items-center gap-1 flex-1 min-w-0", children: [jsx(Input, { value: (_a = betweenValue[0]) !== null && _a !== void 0 ? _a : "", onChange: (e) => onValueChange([e.target.value, betweenValue[1]]), placeholder: "Min", size: "sm", type: inputType, className: "flex-1 min-w-0" }), jsx("span", { className: "text-xs text-[var(--color-text-muted)]", children: "\u2013" }), jsx(Input, { value: (_b = betweenValue[1]) !== null && _b !== void 0 ? _b : "", onChange: (e) => onValueChange([betweenValue[0], e.target.value]), placeholder: "Max", size: "sm", type: inputType, className: "flex-1 min-w-0" })] }));
26
+ return (jsxs("div", { className: "flex items-center gap-1 flex-1 min-w-0", children: [jsx(Input, { value: (_a = betweenValue[0]) !== null && _a !== void 0 ? _a : "", onChange: (e) => onValueChange([e.target.value, betweenValue[1]]), placeholder: "Min", size: "sm", type: inputType, className: "flex-1 min-w-0" }), jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: "\u2013" }), jsx(Input, { value: (_b = betweenValue[1]) !== null && _b !== void 0 ? _b : "", onChange: (e) => onValueChange([betweenValue[0], e.target.value]), placeholder: "Max", size: "sm", type: inputType, className: "flex-1 min-w-0" })] }));
27
27
  }
28
28
  // Select filter type
29
29
  if (filterType === "select" && (column === null || column === void 0 ? void 0 : column.filterOptions)) {
@@ -206,9 +206,9 @@ function TableFilter({ columns, filterConfig, onFilterChange, filterLogic: contr
206
206
  return true;
207
207
  return f.value != null && f.value !== "";
208
208
  }).length;
209
- return (jsxs(Popover, { placement: "bottom-end", offset: 8, closeOnClickOutside: false, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "outline", "aria-label": "Filter table data", size: "sm", children: [jsx(FunnelIcon, { className: "size-4", "aria-hidden": "true" }), "Filters", appliedFilterCount > 0 && (jsx("span", { className: "ml-1 inline-flex items-center justify-center size-5 rounded-full bg-[var(--color-primary)] text-[var(--color-primary-contrast)] text-xs font-medium", children: appliedFilterCount }))] }) }), jsx(Popover.Content, { className: "p-0 max-w-none", children: jsxs("div", { className: cn("w-[500px] p-3", className), role: "dialog", "aria-labelledby": "table-filter-title", "aria-modal": "true", children: [jsxs("div", { className: "flex items-center justify-between mb-3", children: [jsx("div", { id: "table-filter-title", className: "text-xs uppercase font-bold text-[var(--color-text-placeholder)]", children: "Filters" }), activeFilters.length > 1 && (jsxs("div", { className: "flex items-center gap-0.5 rounded-md bg-[var(--color-background-secondary)] p-0.5", children: [jsx("button", { type: "button", className: cn("px-2.5 py-0.5 text-xs font-medium rounded transition-colors", filterLogic === "and"
209
+ return (jsxs(Popover, { placement: "bottom-end", offset: 8, closeOnClickOutside: false, children: [jsx(Popover.Trigger, { children: jsxs(Button, { color: "neutral", variant: "outline", "aria-label": "Filter table data", size: "sm", children: [jsx(FunnelIcon, { className: "size-4", "aria-hidden": "true" }), "Filters", appliedFilterCount > 0 && (jsx("span", { className: "ml-1 inline-flex items-center justify-center size-5 rounded-full bg-[var(--color-primary)] text-[var(--color-primary-contrast)] text-sm font-medium", children: appliedFilterCount }))] }) }), jsx(Popover.Content, { className: "p-0 max-w-none", children: jsxs("div", { className: cn("w-[500px] p-3", className), role: "dialog", "aria-labelledby": "table-filter-title", "aria-modal": "true", children: [jsxs("div", { className: "flex items-center justify-between mb-3", children: [jsx("div", { id: "table-filter-title", className: "text-sm uppercase font-bold text-[var(--color-text-placeholder)]", children: "Filters" }), activeFilters.length > 1 && (jsxs("div", { className: "flex items-center gap-0.5 rounded-md bg-[var(--color-background-secondary)] p-0.5", children: [jsx("button", { type: "button", className: cn("px-2.5 py-0.5 text-sm font-medium rounded transition-colors", filterLogic === "and"
210
210
  ? "bg-[var(--color-background)] text-[var(--color-text-primary)] shadow-sm"
211
- : "text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"), onClick: () => handleSetLogic("and"), children: "AND" }), jsx("button", { type: "button", className: cn("px-2.5 py-0.5 text-xs font-medium rounded transition-colors", filterLogic === "or"
211
+ : "text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"), onClick: () => handleSetLogic("and"), children: "AND" }), jsx("button", { type: "button", className: cn("px-2.5 py-0.5 text-sm font-medium rounded transition-colors", filterLogic === "or"
212
212
  ? "bg-[var(--color-background)] text-[var(--color-text-primary)] shadow-sm"
213
213
  : "text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"), onClick: () => handleSetLogic("or"), children: "OR" })] }))] }), jsx("div", { className: "-m-1 p-1 space-y-2 max-h-[300px] overflow-y-auto", children: activeFilters.map((filter) => {
214
214
  const selectedColumn = getSelectedColumn(filter.columnId);
@@ -48,7 +48,7 @@ function TableHeaderComponent({ columns, sortConfig = [], onSortChange, freezeHe
48
48
  }, row: {}, rowId: "", isHeader: true, theme: theme, children: jsx("div", { className: "flex items-center gap-2", children: selectable && selectionType === 'checkbox' && (jsx(Checkbox, { id: "table-select-all", name: "table-select-all", value: "select-all", checked: isAllSelected, indeterminate: isIndeterminate, onChange: handleSelectAll, "aria-label": "Select all rows" })) }) })), columns.map((column, index) => {
49
49
  const currentSort = sortConfig.find(sort => sort.columnId === column.id);
50
50
  const isSortable = column.sortable && onSortChange;
51
- return (jsx(TableCell, { column: column, row: {}, rowId: "header", isHeader: true, isFrozen: freezeFirstColumn && index === 0, isLastFrozen: freezeLastColumn && index === columns.length - 1, theme: theme, children: isSortable ? (jsxs("button", { onClick: () => handleSort(column.id), className: "flex items-center gap-1 w-full text-left hover:text-[var(--color-primary)] transition-colors", "aria-label": `Sort by ${typeof column.header === 'string' ? column.header : column.id}`, children: [column.header, currentSort && (jsx("span", { className: "text-xs", children: currentSort.direction === 'asc' ? '\u2191' : '\u2193' }))] })) : (column.header) }, column.id));
51
+ return (jsx(TableCell, { column: column, row: {}, rowId: "header", isHeader: true, isFrozen: freezeFirstColumn && index === 0, isLastFrozen: freezeLastColumn && index === columns.length - 1, theme: theme, children: isSortable ? (jsxs("button", { onClick: () => handleSort(column.id), className: "flex items-center gap-1 w-full text-left hover:text-[var(--color-primary)] transition-colors", "aria-label": `Sort by ${typeof column.header === 'string' ? column.header : column.id}`, children: [column.header, currentSort && (jsx("span", { className: "text-sm", children: currentSort.direction === 'asc' ? '\u2191' : '\u2193' }))] })) : (column.header) }, column.id));
52
52
  })] }) }));
53
53
  }
54
54
  const TableHeader = TableHeaderComponent;
@@ -18,7 +18,7 @@ const TablePagination = React__default.forwardRef(({ currentPage, totalItems, pa
18
18
  label: option.toString(),
19
19
  value: option,
20
20
  }));
21
- return (jsxs("div", { ref: ref, className: cn("flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 px-4 py-3 border-t border-[var(--color-border)] bg-[var(--color-background)]", className), children: [jsxs("div", { className: "flex items-center gap-4", children: [showPageSizeSelector && (jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm text-[var(--color-text-muted)]", children: "Rows per page:" }), jsx(Select, { value: pageSize, onChange: (value) => onPageSizeChange(value), options: pageSizeSelectOptions, size: "sm", className: "w-20" })] })), jsx("div", { className: "text-sm text-[var(--color-text-muted)]", children: totalItems > 0 ? (jsxs(Fragment, { children: ["Showing ", startItem.toLocaleString(), " to ", endItem.toLocaleString(), " of", " ", totalItems.toLocaleString(), " results"] })) : ("No results") })] }), totalPages > 1 && (jsx(Pagination, { currentPage: currentPage, totalPages: totalPages, onPageChange: onPageChange, showPrevNext: true, showFirstLast: false, siblingCount: 1 }))] }));
21
+ return (jsxs("div", { ref: ref, className: cn("flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 px-4 py-3 border-t border-[var(--color-border)] bg-[var(--color-background)]", className), children: [jsxs("div", { className: "flex items-center gap-4", children: [showPageSizeSelector && (jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-base text-[var(--color-text-muted)]", children: "Rows per page:" }), jsx(Select, { value: pageSize, onChange: (value) => onPageSizeChange(value), options: pageSizeSelectOptions, size: "sm", className: "w-20" })] })), jsx("div", { className: "text-base text-[var(--color-text-muted)]", children: totalItems > 0 ? (jsxs(Fragment, { children: ["Showing ", startItem.toLocaleString(), " to ", endItem.toLocaleString(), " of", " ", totalItems.toLocaleString(), " results"] })) : ("No results") })] }), totalPages > 1 && (jsx(Pagination, { currentPage: currentPage, totalPages: totalPages, onPageChange: onPageChange, showPrevNext: true, showFirstLast: false, siblingCount: 1 }))] }));
22
22
  });
23
23
  TablePagination.displayName = "Table.Pagination";
24
24
 
@@ -11,7 +11,7 @@ import 'react';
11
11
  const TableSelectionHeader = ({ selectedCount, totalCount, selectedRows, bulkActions = [], onClearSelection, className, }) => {
12
12
  if (selectedCount === 0)
13
13
  return null;
14
- return (jsxs("div", { className: cn("flex items-center justify-between px-3 py-1 rounded-lg shadow-xl bg-[var(--color-background-secondary)] z-10", className), children: [jsxs("div", { className: "flex items-center gap-3", children: [jsx("span", { className: "text-[var(--color-text-muted)] text-sm border-r border-[var(--color-border)] pr-3", children: selectedCount === totalCount
14
+ return (jsxs("div", { className: cn("flex items-center justify-between px-3 py-1 rounded-lg shadow-xl bg-[var(--color-background-secondary)] z-10", className), children: [jsxs("div", { className: "flex items-center gap-3", children: [jsx("span", { className: "text-[var(--color-text-muted)] text-base border-r border-[var(--color-border)] pr-3", children: selectedCount === totalCount
15
15
  ? `All ${selectedCount} selected`
16
16
  : `${selectedCount} selected` }), bulkActions.length > 0 && (jsx("div", { className: "flex items-center gap-2", children: bulkActions.map((action) => {
17
17
  return (jsx(Button, { color: "neutral", variant: "filled", onClick: () => action.onClick(selectedRows), className: "text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]", size: "sm", children: action.label }, action.id));
@@ -312,7 +312,7 @@ const CustomCursorFollow = React.forwardRef(({ children, sideOffset = 15, align
312
312
  // Determine content based on variant
313
313
  const renderContent = () => {
314
314
  if (variant === 'user') {
315
- return (jsxs(Fragment, { children: [avatar && jsx(Avatar, { src: avatar, alt: name || 'User', size: "xs" }), name && (jsx("span", { className: "text-white text-xs font-medium whitespace-nowrap", children: name }))] }));
315
+ return (jsxs(Fragment, { children: [avatar && jsx(Avatar, { src: avatar, alt: name || 'User', size: "xs" }), name && (jsx("span", { className: "text-white text-sm font-medium whitespace-nowrap", children: name }))] }));
316
316
  }
317
317
  return children;
318
318
  };
@@ -6,7 +6,7 @@ const customCursorTheme = {
6
6
  baseStyle: "pointer-events-none z-[9999] absolute transform-[translate(-50%,-50%)]",
7
7
  cursorStyle: "transition-transform duration-150",
8
8
  cursorFollowVariants: {
9
- default: "rounded-[var(--radius-base)] bg-white dark:bg-[var(--color-background-secondary)] shadow-lg border border-[var(--color-border)] px-3 py-2 text-sm text-[var(--color-text-primary)]",
9
+ default: "rounded-[var(--radius-base)] bg-white dark:bg-[var(--color-background-secondary)] shadow-lg border border-[var(--color-border)] px-3 py-2 text-base text-[var(--color-text-primary)]",
10
10
  user: "flex items-center gap-2 rounded-full pl-1 pr-3 py-1 shadow-xl",
11
11
  },
12
12
  cursorFollowColors: {
@@ -108,7 +108,7 @@ const StickyScroll = React__default.forwardRef(({ sections, contentPosition = 'l
108
108
  sectionRefs.current[index] = el;
109
109
  }, className: "flex min-h-[60vh] flex-col justify-center py-16 lg:py-24", children: [jsx("h3", { className: cn('text-2xl font-semibold transition-colors duration-300 lg:text-3xl', index === activeIndex
110
110
  ? 'text-[var(--color-text-primary)]'
111
- : 'text-[var(--color-text-muted)]'), children: section.title }), jsx("p", { className: cn('mt-4 max-w-lg text-base leading-relaxed transition-colors duration-300 lg:text-lg', index === activeIndex
111
+ : 'text-[var(--color-text-muted)]'), children: section.title }), jsx("p", { className: cn('mt-4 max-w-lg text-lg leading-relaxed transition-colors duration-300 lg:text-xl', index === activeIndex
112
112
  ? 'text-[var(--color-text-secondary)]'
113
113
  : 'text-[var(--color-text-placeholder)]'), children: section.description })] }, section.id))) }));
114
114
  /* -------------------------------------------------------------- */
@@ -30,7 +30,7 @@ const checkboxTheme = {
30
30
  "dark:disabled:bg-[var(--color-neutral-700)] dark:disabled:border-[var(--color-neutral-600)] " +
31
31
  "dark:data-[state=disabled]:bg-[var(--color-neutral-700)] dark:data-[state=disabled]:border-[var(--color-neutral-600)]",
32
32
  // Description text - light and dark
33
- descriptionStyle: "text-sm mt-0.5 " + "text-[var(--color-text-secondary)]/80 " + " ",
33
+ descriptionStyle: "text-base mt-0.5 " + "text-[var(--color-text-secondary)]/80 " + " ",
34
34
  sizes: {
35
35
  sm: "size-5 mt-0.25",
36
36
  md: "size-6",
@@ -38,8 +38,8 @@ const checkboxTheme = {
38
38
  // Group styles
39
39
  groupStyle: "flex flex-col gap-1.5",
40
40
  groupHorizontalStyle: "flex-row flex-wrap gap-x-6 gap-y-3",
41
- groupDescriptionStyle: "text-sm text-[var(--color-text-secondary)]/80 -mt-0.5 mb-1",
42
- groupErrorStyle: "text-sm text-[var(--color-danger)] mt-1.5",
41
+ groupDescriptionStyle: "text-base text-[var(--color-text-secondary)]/80 -mt-0.5 mb-1",
42
+ groupErrorStyle: "text-base text-[var(--color-danger)] mt-1.5",
43
43
  groupItemsStyle: "flex flex-col gap-3",
44
44
  };
45
45
 
@@ -152,7 +152,7 @@ const ColorPickerRoot = React__default.forwardRef(({ value, defaultValue = '#000
152
152
  getFormattedValue,
153
153
  onChange,
154
154
  ]);
155
- return (jsx(ColorPickerContext.Provider, { value: contextValue, children: jsxs("div", { ref: ref, className: cn(mergedTheme.baseStyle, className), ...props, children: [label && (jsx(FormLabel, { htmlFor: "color-picker", required: required, state: state, children: label })), children, helperText && (jsx("div", { className: cn('mt-1.5 text-xs text-[var(--color-text-secondary)]', state === 'invalid' && 'text-[var(--color-danger)]'), children: helperText }))] }) }));
155
+ return (jsx(ColorPickerContext.Provider, { value: contextValue, children: jsxs("div", { ref: ref, className: cn(mergedTheme.baseStyle, className), ...props, children: [label && (jsx(FormLabel, { htmlFor: "color-picker", required: required, state: state, children: label })), children, helperText && (jsx("div", { className: cn('mt-1.5 text-sm text-[var(--color-text-secondary)]', state === 'invalid' && 'text-[var(--color-danger)]'), children: helperText }))] }) }));
156
156
  });
157
157
  ColorPickerRoot.displayName = 'ColorPicker';
158
158
  /**
@@ -9,7 +9,7 @@ const colorPickerTheme = {
9
9
  // Content matches Dropdown menu style
10
10
  contentStyle: 'min-w-[min(280px,calc(100vw-2rem))] max-w-[320px] rounded-xl border border-[var(--color-border)] bg-white shadow-real-xl p-3 focus:outline-none',
11
11
  sliderContainerStyle: 'space-y-2',
12
- sliderLabelStyle: 'flex items-center justify-between text-xs font-medium text-[var(--color-text-secondary)]',
12
+ sliderLabelStyle: 'flex items-center justify-between text-sm font-medium text-[var(--color-text-secondary)]',
13
13
  inputContainerStyle: 'flex items-center gap-2',
14
14
  formatSelectorStyle: 'flex-shrink-0',
15
15
  presetGridStyle: 'mt-3 grid grid-cols-6 sm:grid-cols-8 gap-1.5',
@@ -45,7 +45,7 @@ const ColorPickerInput = ({ className, ...props }) => {
45
45
  };
46
46
  // Render different input types based on format
47
47
  if (format === "hex") {
48
- return (jsx("div", { className: cn(theme.inputContainerStyle, className), ...props, children: jsx(Input, { type: "text", size: "sm", value: inputValue, onChange: handleChange, onBlur: handleBlur, onKeyDown: handleKeyDown, state: isInvalid ? "invalid" : "default", placeholder: "#000000", className: "flex-1 text-sm font-mono", "aria-label": "Hex color value" }) }));
48
+ return (jsx("div", { className: cn(theme.inputContainerStyle, className), ...props, children: jsx(Input, { type: "text", size: "sm", value: inputValue, onChange: handleChange, onBlur: handleBlur, onKeyDown: handleKeyDown, state: isInvalid ? "invalid" : "default", placeholder: "#000000", className: "flex-1 text-base font-mono", "aria-label": "Hex color value" }) }));
49
49
  }
50
50
  if (format === "rgb") {
51
51
  const rgb = hslToRgb(color.h, color.s, color.l);
@@ -56,21 +56,21 @@ const ColorPickerInput = ({ className, ...props }) => {
56
56
  if (parsed)
57
57
  setColor(parsed);
58
58
  }
59
- }, className: "flex-1 text-sm", "aria-label": "Red", placeholder: "R" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 255, value: rgb.g, onChange: (e) => {
59
+ }, className: "flex-1 text-base", "aria-label": "Red", placeholder: "R" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 255, value: rgb.g, onChange: (e) => {
60
60
  const newG = parseInt(e.target.value, 10);
61
61
  if (!isNaN(newG) && newG >= 0 && newG <= 255) {
62
62
  const parsed = parseColor(`rgb(${rgb.r}, ${newG}, ${rgb.b})`);
63
63
  if (parsed)
64
64
  setColor(parsed);
65
65
  }
66
- }, className: "flex-1 text-sm", "aria-label": "Green", placeholder: "G" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 255, value: rgb.b, onChange: (e) => {
66
+ }, className: "flex-1 text-base", "aria-label": "Green", placeholder: "G" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 255, value: rgb.b, onChange: (e) => {
67
67
  const newB = parseInt(e.target.value, 10);
68
68
  if (!isNaN(newB) && newB >= 0 && newB <= 255) {
69
69
  const parsed = parseColor(`rgb(${rgb.r}, ${rgb.g}, ${newB})`);
70
70
  if (parsed)
71
71
  setColor(parsed);
72
72
  }
73
- }, className: "flex-1 text-sm", "aria-label": "Blue", placeholder: "B" })] }));
73
+ }, className: "flex-1 text-base", "aria-label": "Blue", placeholder: "B" })] }));
74
74
  }
75
75
  if (format === "hsl") {
76
76
  return (jsxs("div", { className: cn(theme.inputContainerStyle, "flex gap-2", className), ...props, children: [jsx(Input, { type: "number", size: "sm", min: 0, max: 360, value: Math.round(color.h), onChange: (e) => {
@@ -78,17 +78,17 @@ const ColorPickerInput = ({ className, ...props }) => {
78
78
  if (!isNaN(newH) && newH >= 0 && newH <= 360) {
79
79
  setColor({ ...color, h: newH });
80
80
  }
81
- }, className: "flex-1 text-sm", "aria-label": "Hue", placeholder: "H" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 100, value: Math.round(color.s), onChange: (e) => {
81
+ }, className: "flex-1 text-base", "aria-label": "Hue", placeholder: "H" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 100, value: Math.round(color.s), onChange: (e) => {
82
82
  const newS = parseInt(e.target.value, 10);
83
83
  if (!isNaN(newS) && newS >= 0 && newS <= 100) {
84
84
  setColor({ ...color, s: newS });
85
85
  }
86
- }, className: "flex-1 text-sm", "aria-label": "Saturation", placeholder: "S" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 100, value: Math.round(color.l), onChange: (e) => {
86
+ }, className: "flex-1 text-base", "aria-label": "Saturation", placeholder: "S" }), jsx(Input, { type: "number", size: "sm", min: 0, max: 100, value: Math.round(color.l), onChange: (e) => {
87
87
  const newL = parseInt(e.target.value, 10);
88
88
  if (!isNaN(newL) && newL >= 0 && newL <= 100) {
89
89
  setColor({ ...color, l: newL });
90
90
  }
91
- }, className: "flex-1 text-sm", "aria-label": "Lightness", placeholder: "L" })] }));
91
+ }, className: "flex-1 text-base", "aria-label": "Lightness", placeholder: "L" })] }));
92
92
  }
93
93
  return null;
94
94
  };
@@ -100,7 +100,7 @@ const CronInput = React__default.forwardRef(({ value: controlledValue, defaultVa
100
100
  }, [handleRawInputBlur]);
101
101
  const showVisual = mode === "visual" || (mode === "both" && activeMode === "visual");
102
102
  const showRaw = mode === "raw" || (mode === "both" && activeMode === "raw");
103
- return (jsxs("div", { ref: ref, className: cn(theme.baseStyle, className), role: "group", "aria-label": label || "Cron expression builder", ...props, children: [label && (jsx(FormLabel, { htmlFor: `${generatedId}-cron`, state: disabled ? "disabled" : "default", children: label })), mode === "both" && (jsxs("div", { className: "flex items-center gap-1.5", children: [jsxs("button", { type: "button", onClick: () => setActiveMode("visual"), disabled: disabled, className: cn(theme.modeToggleStyle, activeMode === "visual" && theme.modeToggleActiveStyle), "aria-pressed": activeMode === "visual", children: [jsx(CalendarIcon, { className: "w-3.5 h-3.5 mr-1", "aria-hidden": "true" }), "Visual"] }), jsxs("button", { type: "button", onClick: () => setActiveMode("raw"), disabled: disabled, className: cn(theme.modeToggleStyle, activeMode === "raw" && theme.modeToggleActiveStyle), "aria-pressed": activeMode === "raw", children: [jsx(ClockIcon, { className: "w-3.5 h-3.5 mr-1", "aria-hidden": "true" }), "Cron"] })] })), showPresets && (jsxs("div", { children: [jsx("div", { className: cn(theme.sectionHeadingStyle, "mb-1.5"), children: "Presets" }), jsx("div", { className: "flex flex-wrap gap-1.5", children: CRON_PRESETS.map((preset) => (jsx("button", { type: "button", onClick: () => handlePresetClick(preset.value), disabled: disabled, className: cn(theme.presetButtonStyle, activePreset === preset.value && theme.presetButtonActiveStyle), title: preset.description, "aria-pressed": activePreset === preset.value, children: preset.label }, preset.value))) })] })), showVisual && (jsxs("div", { className: theme.builderStyle, children: [jsx(FieldSelect, { label: "Minute", value: fields.minute, options: minuteOptions, onChange: (v) => handleFieldChange("minute", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Hour", value: fields.hour, options: hourOptions, onChange: (v) => handleFieldChange("hour", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Day of Month", value: fields.dayOfMonth, options: dayOfMonthOptions, onChange: (v) => handleFieldChange("dayOfMonth", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Month", value: fields.month, options: monthOptions, onChange: (v) => handleFieldChange("month", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Day of Week", value: fields.dayOfWeek, options: dayOfWeekOptions, onChange: (v) => handleFieldChange("dayOfWeek", v), disabled: disabled, size: size })] })), showRaw && (jsxs("div", { children: [jsx("div", { className: cn(theme.sectionHeadingStyle, "mb-1.5"), children: "Cron Expression" }), jsx("input", { type: "text", value: rawInput, onChange: handleRawInputChange, onBlur: handleRawInputBlur, onKeyDown: handleRawKeyDown, disabled: disabled, placeholder: "* * * * *", className: cn(theme.rawInputStyle, theme.rawInputSizes[size]), id: `${generatedId}-cron`, "aria-label": "Cron expression", "aria-invalid": !validateCron(rawInput), spellCheck: false, autoComplete: "off" }), !validateCron(rawInput) && rawInput !== cronValue && (jsx("div", { className: cn(theme.errorStyle, "mt-1"), children: "Invalid cron expression. Format: minute hour day month weekday" }))] })), showVisual && !showRaw && (jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: cn(theme.fieldLabelStyle, "shrink-0"), children: "Expression:" }), jsx("code", { className: cn("font-mono text-xs px-2 py-1 rounded-[var(--form-radius)]", "bg-[var(--color-background-secondary)] text-[var(--color-text-primary)]", "dark:bg-[var(--color-neutral-800)] dark:text-[var(--color-neutral-200)]"), children: cronValue })] })), showDescription && isValid && (jsxs("div", { className: theme.descriptionStyle, children: [jsx(ClockIcon, { className: "w-4 h-4 shrink-0", "aria-hidden": "true" }), jsx("span", { children: description })] })), showNextRuns && isValid && nextRuns.length > 0 && (jsxs("div", { className: theme.nextRunsStyle, children: [jsx("div", { className: cn(theme.sectionHeadingStyle, "mb-1"), children: "Next runs" }), nextRuns.map((date, index) => (jsxs("div", { className: theme.nextRunItemStyle, children: [jsx(CalendarIcon, { className: "w-3.5 h-3.5 shrink-0", "aria-hidden": "true" }), jsx("span", { children: formatNextRun(date) })] }, index)))] }))] }));
103
+ return (jsxs("div", { ref: ref, className: cn(theme.baseStyle, className), role: "group", "aria-label": label || "Cron expression builder", ...props, children: [label && (jsx(FormLabel, { htmlFor: `${generatedId}-cron`, state: disabled ? "disabled" : "default", children: label })), mode === "both" && (jsxs("div", { className: "flex items-center gap-1.5", children: [jsxs("button", { type: "button", onClick: () => setActiveMode("visual"), disabled: disabled, className: cn(theme.modeToggleStyle, activeMode === "visual" && theme.modeToggleActiveStyle), "aria-pressed": activeMode === "visual", children: [jsx(CalendarIcon, { className: "w-3.5 h-3.5 mr-1", "aria-hidden": "true" }), "Visual"] }), jsxs("button", { type: "button", onClick: () => setActiveMode("raw"), disabled: disabled, className: cn(theme.modeToggleStyle, activeMode === "raw" && theme.modeToggleActiveStyle), "aria-pressed": activeMode === "raw", children: [jsx(ClockIcon, { className: "w-3.5 h-3.5 mr-1", "aria-hidden": "true" }), "Cron"] })] })), showPresets && (jsxs("div", { children: [jsx("div", { className: cn(theme.sectionHeadingStyle, "mb-1.5"), children: "Presets" }), jsx("div", { className: "flex flex-wrap gap-1.5", children: CRON_PRESETS.map((preset) => (jsx("button", { type: "button", onClick: () => handlePresetClick(preset.value), disabled: disabled, className: cn(theme.presetButtonStyle, activePreset === preset.value && theme.presetButtonActiveStyle), title: preset.description, "aria-pressed": activePreset === preset.value, children: preset.label }, preset.value))) })] })), showVisual && (jsxs("div", { className: theme.builderStyle, children: [jsx(FieldSelect, { label: "Minute", value: fields.minute, options: minuteOptions, onChange: (v) => handleFieldChange("minute", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Hour", value: fields.hour, options: hourOptions, onChange: (v) => handleFieldChange("hour", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Day of Month", value: fields.dayOfMonth, options: dayOfMonthOptions, onChange: (v) => handleFieldChange("dayOfMonth", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Month", value: fields.month, options: monthOptions, onChange: (v) => handleFieldChange("month", v), disabled: disabled, size: size }), jsx(FieldSelect, { label: "Day of Week", value: fields.dayOfWeek, options: dayOfWeekOptions, onChange: (v) => handleFieldChange("dayOfWeek", v), disabled: disabled, size: size })] })), showRaw && (jsxs("div", { children: [jsx("div", { className: cn(theme.sectionHeadingStyle, "mb-1.5"), children: "Cron Expression" }), jsx("input", { type: "text", value: rawInput, onChange: handleRawInputChange, onBlur: handleRawInputBlur, onKeyDown: handleRawKeyDown, disabled: disabled, placeholder: "* * * * *", className: cn(theme.rawInputStyle, theme.rawInputSizes[size]), id: `${generatedId}-cron`, "aria-label": "Cron expression", "aria-invalid": !validateCron(rawInput), spellCheck: false, autoComplete: "off" }), !validateCron(rawInput) && rawInput !== cronValue && (jsx("div", { className: cn(theme.errorStyle, "mt-1"), children: "Invalid cron expression. Format: minute hour day month weekday" }))] })), showVisual && !showRaw && (jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: cn(theme.fieldLabelStyle, "shrink-0"), children: "Expression:" }), jsx("code", { className: cn("font-mono text-sm px-2 py-1 rounded-[var(--form-radius)]", "bg-[var(--color-background-secondary)] text-[var(--color-text-primary)]", "dark:bg-[var(--color-neutral-800)] dark:text-[var(--color-neutral-200)]"), children: cronValue })] })), showDescription && isValid && (jsxs("div", { className: theme.descriptionStyle, children: [jsx(ClockIcon, { className: "w-4 h-4 shrink-0", "aria-hidden": "true" }), jsx("span", { children: description })] })), showNextRuns && isValid && nextRuns.length > 0 && (jsxs("div", { className: theme.nextRunsStyle, children: [jsx("div", { className: cn(theme.sectionHeadingStyle, "mb-1"), children: "Next runs" }), nextRuns.map((date, index) => (jsxs("div", { className: theme.nextRunItemStyle, children: [jsx(CalendarIcon, { className: "w-3.5 h-3.5 shrink-0", "aria-hidden": "true" }), jsx("span", { children: formatNextRun(date) })] }, index)))] }))] }));
104
104
  });
105
105
  CronInput.displayName = "CronInput";
106
106
 
@@ -8,13 +8,13 @@ const cronInputTheme = {
8
8
  // Outer wrapper
9
9
  baseStyle: "relative w-full flex flex-col gap-3",
10
10
  // Label
11
- labelStyle: "text-sm font-medium text-[var(--color-text-primary)] dark:text-[var(--color-neutral-200)]",
11
+ labelStyle: "text-base font-medium text-[var(--color-text-primary)] dark:text-[var(--color-neutral-200)]",
12
12
  // Visual builder grid
13
13
  builderStyle: "grid grid-cols-5 gap-2",
14
14
  // Individual field group
15
15
  fieldGroupStyle: "flex flex-col gap-1",
16
16
  // Field label
17
- fieldLabelStyle: "text-xs font-medium text-[var(--color-text-secondary)] dark:text-[var(--color-neutral-400)]",
17
+ fieldLabelStyle: "text-sm font-medium text-[var(--color-text-secondary)] dark:text-[var(--color-neutral-400)]",
18
18
  // Select dropdown
19
19
  fieldSelectStyle: "w-full rounded-[var(--form-radius)] outline outline-1 outline-[var(--color-border)] " +
20
20
  "bg-white text-[var(--color-text-primary)] cursor-pointer transition-all " +
@@ -45,7 +45,7 @@ const cronInputTheme = {
45
45
  lg: `${formsBaseTheme.sizes.lg.text} ${formsBaseTheme.sizes.lg.padding} ${formsBaseTheme.sizes.lg.height}`,
46
46
  },
47
47
  // Mode toggle button
48
- modeToggleStyle: "inline-flex items-center justify-center rounded-[var(--form-radius)] px-3 py-1.5 text-xs font-medium " +
48
+ modeToggleStyle: "inline-flex items-center justify-center rounded-[var(--form-radius)] px-3 py-1.5 text-sm font-medium " +
49
49
  "cursor-pointer transition-all outline outline-1 outline-[var(--color-border)] " +
50
50
  "text-[var(--color-text-secondary)] bg-white hover:bg-[var(--color-background-secondary)] " +
51
51
  "dark:bg-[var(--color-neutral-900)] dark:outline-[var(--color-neutral-700)] dark:text-[var(--color-neutral-400)] " +
@@ -56,7 +56,7 @@ const cronInputTheme = {
56
56
  "dark:outline-[var(--color-primary-500)] dark:bg-[var(--color-primary-500)]/10 dark:text-[var(--color-primary-400)] " +
57
57
  "dark:hover:bg-[var(--color-primary-500)]/15",
58
58
  // Preset button
59
- presetButtonStyle: "inline-flex items-center rounded-[var(--form-radius)] px-2.5 py-1 text-xs font-medium " +
59
+ presetButtonStyle: "inline-flex items-center rounded-[var(--form-radius)] px-2.5 py-1 text-sm font-medium " +
60
60
  "cursor-pointer transition-all outline outline-1 outline-[var(--color-border)] " +
61
61
  "text-[var(--color-text-secondary)] bg-white hover:bg-[var(--color-background-secondary)] " +
62
62
  "hover:text-[var(--color-text-primary)] " +
@@ -67,18 +67,18 @@ const cronInputTheme = {
67
67
  "hover:bg-[var(--color-primary-100)] " +
68
68
  "dark:outline-[var(--color-primary-500)] dark:bg-[var(--color-primary-500)]/10 dark:text-[var(--color-primary-400)]",
69
69
  // Human-readable description
70
- descriptionStyle: "flex items-center gap-2 text-sm text-[var(--color-text-muted)] " +
70
+ descriptionStyle: "flex items-center gap-2 text-base text-[var(--color-text-muted)] " +
71
71
  "dark:text-[var(--color-neutral-400)]",
72
72
  // Next runs container
73
73
  nextRunsStyle: "flex flex-col gap-1",
74
74
  // Individual next run item
75
- nextRunItemStyle: "flex items-center gap-2 text-xs text-[var(--color-text-muted)] " +
75
+ nextRunItemStyle: "flex items-center gap-2 text-sm text-[var(--color-text-muted)] " +
76
76
  "dark:text-[var(--color-neutral-400)]",
77
77
  // Section heading
78
- sectionHeadingStyle: "text-xs font-medium text-[var(--color-text-secondary)] uppercase tracking-wide " +
78
+ sectionHeadingStyle: "text-sm font-medium text-[var(--color-text-secondary)] uppercase tracking-wide " +
79
79
  "dark:text-[var(--color-neutral-400)]",
80
80
  // Validation error
81
- errorStyle: "text-xs text-[var(--color-danger)] dark:text-[var(--color-danger-400)]",
81
+ errorStyle: "text-sm text-[var(--color-danger)] dark:text-[var(--color-danger-400)]",
82
82
  };
83
83
 
84
84
  export { cronInputTheme };
@@ -35,7 +35,7 @@ const datePickerTheme = {
35
35
  presetsContainerStyle: "flex flex-col gap-1 p-3 border-b sm:border-b-0 sm:border-r border-[var(--color-border)] bg-[var(--color-neutral-50)] sm:min-w-[180px] " +
36
36
  "dark:bg-[var(--color-neutral-800)] dark:border-[var(--color-neutral-700)]",
37
37
  // Preset button - with dark mode support
38
- presetButtonStyle: "w-full text-left px-3 py-2 text-sm rounded-[calc(var(--radius-base)*0.75)] transition-colors cursor-pointer " +
38
+ presetButtonStyle: "w-full text-left px-3 py-2 text-base rounded-[calc(var(--radius-base)*0.75)] transition-colors cursor-pointer " +
39
39
  "text-[var(--color-text-secondary)] hover:bg-white hover:text-[var(--color-text-primary)] " +
40
40
  "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 " +
41
41
  "data-[active=true]:bg-white data-[active=true]:text-[var(--color-text-primary)] data-[active=true]:font-medium " +
@@ -213,7 +213,7 @@ const DatePickerContent = ({ isOpen, className, onClose, portal = true, placemen
213
213
  const adjustedLeft = new Date(newDate);
214
214
  adjustedLeft.setMonth(adjustedLeft.getMonth() - 1);
215
215
  setLeftCalendarDate(adjustedLeft);
216
- }, onNavigatePrev: null, onNavigateNext: handleNavigateNext, minDate: minDate, maxDate: maxDate, isDateDisabled: isDateDisabled, showToday: showToday, selectTodayByDefault: false, weekdays: weekdays, months: months, size: "md" }) })] })) }), jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-t border-[var(--color-border)] dark:border-[var(--color-neutral-700)]", children: [jsx("div", { className: "text-sm text-[var(--color-text-secondary)] dark:text-[var(--color-neutral-400)]", children: formatRangeDisplay(tempRange) }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button, { variant: "outline", color: "neutral", size: "sm", onClick: handleCancel, children: "Cancel" }), jsx(Button, { variant: "filled", size: "sm", onClick: handleApply, disabled: !(tempRange === null || tempRange === void 0 ? void 0 : tempRange.start) || !(tempRange === null || tempRange === void 0 ? void 0 : tempRange.end), children: "Apply" })] })] })] })) : (
216
+ }, onNavigatePrev: null, onNavigateNext: handleNavigateNext, minDate: minDate, maxDate: maxDate, isDateDisabled: isDateDisabled, showToday: showToday, selectTodayByDefault: false, weekdays: weekdays, months: months, size: "md" }) })] })) }), jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-t border-[var(--color-border)] dark:border-[var(--color-neutral-700)]", children: [jsx("div", { className: "text-base text-[var(--color-text-secondary)] dark:text-[var(--color-neutral-400)]", children: formatRangeDisplay(tempRange) }), jsxs("div", { className: "flex items-center gap-2", children: [jsx(Button, { variant: "outline", color: "neutral", size: "sm", onClick: handleCancel, children: "Cancel" }), jsx(Button, { variant: "filled", size: "sm", onClick: handleApply, disabled: !(tempRange === null || tempRange === void 0 ? void 0 : tempRange.start) || !(tempRange === null || tempRange === void 0 ? void 0 : tempRange.end), children: "Apply" })] })] })] })) : (
217
217
  // Single calendar for single mode
218
218
  jsx("div", { className: "flex-1 p-4", children: children || (jsx(Calendar, { mode: "single", value: selectedValue, onChange: (value) => {
219
219
  handleDateSelect(value);
@@ -198,10 +198,10 @@ const FileUpload = React__default.forwardRef(({ accept, multiple = false, maxSiz
198
198
  e.preventDefault();
199
199
  handleClick();
200
200
  }
201
- }, children: jsxs("div", { className: theme.contentStyle, children: [jsx("div", { className: "size-11 border border-border bg-white rounded-full flex items-center justify-center mb-4", children: jsx(CloudArrowUpIcon, { className: `size-6 text-[var(--color-text-secondary)]` }) }), jsxs("p", { className: "text-sm font-medium text-[var(--color-text-primary)]", children: [jsx("span", { className: "text-[var(--color-primary)] font-semibold", children: buttonText }), " ", helperText] }), description && (jsx("p", { className: "text-xs text-[var(--color-text-muted)] mt-1", children: description }))] }) }), showPreview && selectedFiles.length > 0 && (jsx("div", { className: theme.previewContainerStyle, children: selectedFiles.map((file, index) => {
201
+ }, children: jsxs("div", { className: theme.contentStyle, children: [jsx("div", { className: "size-11 border border-border bg-white rounded-full flex items-center justify-center mb-4", children: jsx(CloudArrowUpIcon, { className: `size-6 text-[var(--color-text-secondary)]` }) }), jsxs("p", { className: "text-base font-medium text-[var(--color-text-primary)]", children: [jsx("span", { className: "text-[var(--color-primary)] font-semibold", children: buttonText }), " ", helperText] }), description && (jsx("p", { className: "text-sm text-[var(--color-text-muted)] mt-1", children: description }))] }) }), showPreview && selectedFiles.length > 0 && (jsx("div", { className: theme.previewContainerStyle, children: selectedFiles.map((file, index) => {
202
202
  const previewUrl = previewUrls.get(file);
203
203
  const isImage = file.type.startsWith("image/");
204
- return (jsxs("div", { className: theme.previewItemStyle, children: [isImage && previewUrl ? (jsx("img", { src: previewUrl, alt: file.name, className: theme.previewImageStyle })) : (jsxs("div", { className: theme.previewFileStyle, children: [jsx(DocumentIcon, { className: "w-8 h-8 mx-auto mb-2 text-[var(--color-text-muted)]" }), jsx("span", { className: "text-xs", children: file.name }), jsx("span", { className: "text-xs text-[var(--color-text-placeholder)] mt-1", children: formatFileSize(file.size) })] })), jsx(Button, { variant: "filled", color: "danger", size: "sm", iconOnly: true, onClick: (e) => {
204
+ return (jsxs("div", { className: theme.previewItemStyle, children: [isImage && previewUrl ? (jsx("img", { src: previewUrl, alt: file.name, className: theme.previewImageStyle })) : (jsxs("div", { className: theme.previewFileStyle, children: [jsx(DocumentIcon, { className: "w-8 h-8 mx-auto mb-2 text-[var(--color-text-muted)]" }), jsx("span", { className: "text-sm", children: file.name }), jsx("span", { className: "text-sm text-[var(--color-text-placeholder)] mt-1", children: formatFileSize(file.size) })] })), jsx(Button, { variant: "filled", color: "danger", size: "sm", iconOnly: true, onClick: (e) => {
205
205
  e.stopPropagation();
206
206
  handleRemoveFile(file);
207
207
  }, "aria-label": `Remove ${file.name}`, className: cn(theme.removeButtonStyle, "rounded-full !p-0 size-6"), children: jsx(XMarkIcon, { className: "size-4", strokeWidth: 2 }) })] }, `${file.name}-${index}`));
@@ -16,11 +16,11 @@ const fileUploadTheme = {
16
16
  // Upload icon
17
17
  iconStyle: "size-8 text-[var(--color-text-placeholder)]",
18
18
  // Main text
19
- textStyle: "text-sm font-medium text-[var(--color-text-primary)]",
19
+ textStyle: "text-base font-medium text-[var(--color-text-primary)]",
20
20
  // Helper text
21
- helperTextStyle: "text-sm text-[var(--color-text-muted)] mt-1",
21
+ helperTextStyle: "text-base text-[var(--color-text-muted)] mt-1",
22
22
  // Description below dropzone
23
- descriptionStyle: "text-xs text-[var(--color-text-muted)] mt-1",
23
+ descriptionStyle: "text-sm text-[var(--color-text-muted)] mt-1",
24
24
  // Preview container
25
25
  previewContainerStyle: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-4 mt-4",
26
26
  // Individual preview item
@@ -28,7 +28,7 @@ const fileUploadTheme = {
28
28
  // Preview image
29
29
  previewImageStyle: "w-full h-32 object-cover",
30
30
  // Preview file (non-image)
31
- previewFileStyle: "flex items-center justify-center w-full h-32 p-3 text-sm text-[var(--color-text-secondary)] text-center break-all",
31
+ previewFileStyle: "flex items-center justify-center w-full h-32 p-3 text-base text-[var(--color-text-secondary)] text-center break-all",
32
32
  // Remove button
33
33
  removeButtonStyle: "absolute top-1 right-1 -translate-y-1 opacity-0 group-hover:opacity-100 transition-all duration-400 group-hover:-translate-y-0",
34
34
  };
@@ -3,7 +3,7 @@
3
3
  */
4
4
  const formLabelTheme = {
5
5
  // Base styles for the label element
6
- baseStyle: "block text-sm/6 font-medium mb-2",
6
+ baseStyle: "block text-base/6 font-medium mb-2",
7
7
  // State variants - using design tokens from global.scss
8
8
  stateStyles: {
9
9
  default: "text-[var(--color-text-primary)]",