@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.
- package/dist/components/ai/ApprovalCard/ApprovalCard.js +1 -1
- package/dist/components/ai/CodeBlock/CodeBlock.theme.js +2 -2
- package/dist/components/ai/PromptInput/PromptInput.js +2 -2
- package/dist/components/ai/PromptInput/PromptInput.theme.js +1 -1
- package/dist/components/ai/PromptSuggestions/PromptSuggestion.theme.js +1 -1
- package/dist/components/ai/StreamingResponse/MarkdownRenderer.js +6 -6
- package/dist/components/ai/StreamingResponse/StreamingResponse.theme.js +4 -4
- package/dist/components/ai/ThinkingIndicator/ThinkingIndicator.theme.js +2 -2
- package/dist/components/ai/TokenCounter/TokenCounter.theme.js +6 -6
- package/dist/components/charts/ActivityRings/ActivityRings.js +1 -1
- package/dist/components/charts/ActivityRings/ActivityRings.theme.js +2 -2
- package/dist/components/charts/BarChart/BarChart.js +3 -3
- package/dist/components/charts/ChartContainer.js +1 -1
- package/dist/components/charts/ComboChart/ComboChart.js +2 -2
- package/dist/components/charts/DonutChart/DonutChart.theme.js +1 -1
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.js +1 -1
- package/dist/components/charts/DonutChart/MultiSegmentDonutChart.theme.js +1 -1
- package/dist/components/charts/FunnelChart/FunnelChart.js +7 -7
- package/dist/components/charts/Heatmap/Heatmap.theme.js +1 -1
- package/dist/components/charts/Heatmap/HeatmapCell.js +1 -1
- package/dist/components/charts/Heatmap/HeatmapLegend.js +1 -1
- package/dist/components/charts/RadarChart/RadarChart.theme.js +2 -2
- package/dist/components/charts/ScatterPlot/ScatterPlot.js +1 -1
- package/dist/components/charts/ScatterPlot/ScatterPlot.theme.js +2 -2
- package/dist/components/charts/StackedBarChart/StackedBarChart.js +2 -2
- package/dist/components/charts/shared/ChartErrorBoundary/ChartErrorBoundary.js +1 -1
- package/dist/components/charts/shared/ChartLegend/ChartLegendContent.js +1 -1
- package/dist/components/charts/shared/ChartText/ChartText.js +1 -1
- package/dist/components/charts/shared/ChartText/ChartText.theme.js +1 -1
- package/dist/components/charts/shared/ChartTooltip/ChartTooltip.theme.js +4 -4
- package/dist/components/core/Alert/Alert.theme.js +1 -1
- package/dist/components/core/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/core/Avatar/Avatar.theme.js +5 -5
- package/dist/components/core/AvatarGroup/AvatarGroup.theme.js +1 -1
- package/dist/components/core/Badge/Badge.theme.js +2 -2
- package/dist/components/core/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/core/Button/Button.theme.js +6 -6
- package/dist/components/core/ButtonGroup/ButtonGroup.theme.js +1 -1
- package/dist/components/core/Calendar/Calendar.js +1 -1
- package/dist/components/core/Calendar/Calendar.theme.js +5 -5
- package/dist/components/core/Calendar/CalendarMini/CalendarMini.js +1 -1
- package/dist/components/core/Card/Card.theme.js +2 -2
- package/dist/components/core/CommandPalette/CommandItem.js +1 -1
- package/dist/components/core/CommandPalette/CommandPalette.theme.js +3 -3
- package/dist/components/core/ContextMenu/ContextMenu.theme.js +3 -3
- package/dist/components/core/ContextMenu/ContextMenuItem.js +1 -1
- package/dist/components/core/Drawer/Drawer.theme.js +2 -2
- package/dist/components/core/Dropdown/Dropdown.theme.js +1 -1
- package/dist/components/core/Empty/Empty.theme.js +2 -2
- package/dist/components/core/Kbd/Kbd.theme.js +3 -3
- package/dist/components/core/Loader/Loader.theme.js +1 -1
- package/dist/components/core/MenuItem/MenuItem.theme.js +2 -2
- package/dist/components/core/Message/Message.js +1 -1
- package/dist/components/core/Message/Message.theme.js +4 -4
- package/dist/components/core/Modal/Modal.theme.js +2 -2
- package/dist/components/core/NavItem/NavItem.js +1 -1
- package/dist/components/core/NavItem/NavItem.theme.js +1 -1
- package/dist/components/core/OfflineIndicator/OfflineIndicator.theme.js +2 -2
- package/dist/components/core/PageHeading/PageHeading.theme.js +1 -1
- package/dist/components/core/Pagination/Pagination.theme.js +2 -2
- package/dist/components/core/Pill/Pill.theme.js +3 -3
- package/dist/components/core/Progress/Progress.theme.js +2 -2
- package/dist/components/core/Segmented/Segmented.theme.js +3 -3
- package/dist/components/core/Sidebar/SidebarNavGroup.js +1 -1
- package/dist/components/core/Tabs/Tabs.theme.js +2 -2
- package/dist/components/core/Tag/Tag.theme.js +2 -2
- package/dist/components/core/Toast/Toast.theme.js +4 -4
- package/dist/components/core/Tooltip/Tooltip.theme.js +1 -1
- package/dist/components/core/Tree/Tree.theme.js +1 -1
- package/dist/components/data-display/DescriptionList/DescriptionList.theme.js +2 -2
- package/dist/components/data-display/Feed/Feed.js +1 -1
- package/dist/components/data-display/Feed/Feed.theme.js +2 -2
- package/dist/components/data-display/GanttChart/GanttChart.theme.js +2 -2
- package/dist/components/data-display/GanttChart/GanttChartPanel.js +1 -1
- package/dist/components/data-display/GanttChart/GanttMilestone.js +2 -2
- package/dist/components/data-display/GanttChart/GanttTableGroupRow.js +1 -1
- package/dist/components/data-display/GanttChart/GanttTaskBar.js +2 -2
- package/dist/components/data-display/KPI/KPI.js +1 -1
- package/dist/components/data-display/KPI/KPI.theme.js +7 -7
- package/dist/components/data-display/Metric/Metric.js +1 -1
- package/dist/components/data-display/Metric/Metric.theme.js +7 -7
- package/dist/components/data-display/Table/Table.theme.js +3 -3
- package/dist/components/data-display/Table/TableActionsMenu.js +1 -1
- package/dist/components/data-display/Table/TableColumnManager.js +1 -1
- package/dist/components/data-display/Table/TableFilter.js +3 -3
- package/dist/components/data-display/Table/TableHeader.js +1 -1
- package/dist/components/data-display/Table/TablePagination.js +1 -1
- package/dist/components/data-display/Table/TableSelectionHeader.js +1 -1
- package/dist/components/effects/CustomCursor/CustomCursor.js +1 -1
- package/dist/components/effects/CustomCursor/CustomCursor.theme.js +1 -1
- package/dist/components/effects/StickyScroll/StickyScroll.js +1 -1
- package/dist/components/forms/Checkbox/Checkbox.theme.js +3 -3
- package/dist/components/forms/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/forms/ColorPicker/ColorPicker.theme.js +1 -1
- package/dist/components/forms/ColorPicker/ColorPickerInput.js +7 -7
- package/dist/components/forms/CronInput/CronInput.js +1 -1
- package/dist/components/forms/CronInput/CronInput.theme.js +8 -8
- package/dist/components/forms/DatePicker/DatePicker.theme.js +1 -1
- package/dist/components/forms/DatePicker/DatePickerContent.js +1 -1
- package/dist/components/forms/FileUpload/FileUpload.js +2 -2
- package/dist/components/forms/FileUpload/FileUpload.theme.js +4 -4
- package/dist/components/forms/FormLabel/FormLabel.theme.js +1 -1
- package/dist/components/forms/Input/Input.theme.js +1 -1
- package/dist/components/forms/InputCounter/InputCounter.theme.js +1 -1
- package/dist/components/forms/InputOTP/InputOTP.theme.js +1 -1
- package/dist/components/forms/InputTag/InputTag.js +1 -1
- package/dist/components/forms/Mention/Mention.theme.js +3 -3
- package/dist/components/forms/Radio/Radio.theme.js +3 -3
- package/dist/components/forms/RichTextEditor/RichTextEditor.js +2 -2
- package/dist/components/forms/RichTextEditor/RichTextEditor.theme.js +1 -1
- package/dist/components/forms/Select/Select.theme.js +1 -1
- package/dist/components/forms/Signature/Signature.theme.js +1 -1
- package/dist/components/forms/Slider/Slider.theme.js +3 -3
- package/dist/components/forms/Switch/Switch.theme.js +1 -1
- package/dist/components/forms/TimePicker/TimePicker.theme.js +2 -2
- package/dist/components/forms/TransferList/TransferList.js +2 -2
- package/dist/components/forms/TransferList/TransferList.theme.js +6 -6
- package/dist/components/forms/forms.theme.js +6 -6
- package/dist/components/layout/FormLayout/FormLayout.theme.js +4 -4
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/styles/theme.css +0 -17
|
@@ -11,7 +11,7 @@ const avatarGroupTheme = {
|
|
|
11
11
|
loose: "-ml-2 z-10",
|
|
12
12
|
},
|
|
13
13
|
// Overflow avatar styles
|
|
14
|
-
overflowAvatarStyle: "bg-[var(--color-neutral-100)] text-[var(--color-text-primary)] font-semibold text-
|
|
14
|
+
overflowAvatarStyle: "bg-[var(--color-neutral-100)] text-[var(--color-text-primary)] font-semibold text-base flex items-center justify-center hover:bg-neutral-200 transition-colors duration-200",
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
export { avatarGroupTheme };
|
|
@@ -63,8 +63,8 @@ const badgeTheme = {
|
|
|
63
63
|
},
|
|
64
64
|
// Flat size structure (no nested objects)
|
|
65
65
|
sizes: {
|
|
66
|
-
sm: "text-
|
|
67
|
-
md: "text-
|
|
66
|
+
sm: "text-sm px-1.5 py-0.5 gap-1",
|
|
67
|
+
md: "text-base px-2 py-0.5 gap-1",
|
|
68
68
|
},
|
|
69
69
|
// Border radius per size (using CSS variable)
|
|
70
70
|
radiusSizes: {
|
|
@@ -43,7 +43,7 @@ const Breadcrumbs = ({ items, separator, maxItems = 4, variant = "default", clas
|
|
|
43
43
|
const renderItem = (item, index, isLast) => {
|
|
44
44
|
const isCurrentPage = isLast || !item.href;
|
|
45
45
|
const itemContent = (jsxs(Fragment, { children: [showIcons && item.iconStart && (jsx("span", { className: "mr-1.5 flex-shrink-0", children: item.iconStart })), item.label] }));
|
|
46
|
-
return (jsx("span", { className: "flex items-center text-
|
|
46
|
+
return (jsx("span", { className: "flex items-center text-base", children: isCurrentPage ? (jsx("span", { className: cn("flex items-center", theme.current), "aria-current": "page", children: itemContent })) : (jsx("a", { href: item.href, className: cn("flex items-center", theme.link), "aria-label": `Navigate to ${item.label}`, children: itemContent })) }, `${item.label}-${index}`));
|
|
47
47
|
};
|
|
48
48
|
// Render separator
|
|
49
49
|
const renderSeparator = (index) => {
|
|
@@ -124,19 +124,19 @@ const buttonTheme = {
|
|
|
124
124
|
// Size variants
|
|
125
125
|
sizes: {
|
|
126
126
|
sm: {
|
|
127
|
-
default: "min-h-[var(--button-min-h-sm)] px-[var(--button-px-sm)] py-[var(--button-py-sm)] text-
|
|
127
|
+
default: "min-h-[var(--button-min-h-sm)] px-[var(--button-px-sm)] py-[var(--button-py-sm)] text-base",
|
|
128
128
|
iconOnly: "size-[var(--button-icon-size-sm)] p-[var(--button-icon-p-sm)]",
|
|
129
|
-
link: "p-0 text-
|
|
129
|
+
link: "p-0 text-base h-fit",
|
|
130
130
|
},
|
|
131
131
|
md: {
|
|
132
|
-
default: "min-h-[var(--button-min-h-md)] px-[var(--button-px-md)] py-[var(--button-py-md)] text-
|
|
132
|
+
default: "min-h-[var(--button-min-h-md)] px-[var(--button-px-md)] py-[var(--button-py-md)] text-base",
|
|
133
133
|
iconOnly: "size-[var(--button-icon-size-md)] p-[var(--button-icon-p-md)]",
|
|
134
|
-
link: "p-0 text-
|
|
134
|
+
link: "p-0 text-base h-fit",
|
|
135
135
|
},
|
|
136
136
|
lg: {
|
|
137
|
-
default: "min-h-[var(--button-min-h-lg)] px-[var(--button-px-lg)] py-[var(--button-py-lg)] text-
|
|
137
|
+
default: "min-h-[var(--button-min-h-lg)] px-[var(--button-px-lg)] py-[var(--button-py-lg)] text-lg",
|
|
138
138
|
iconOnly: "size-[var(--button-icon-size-lg)] p-[var(--button-icon-p-lg)]",
|
|
139
|
-
link: "p-0 text-
|
|
139
|
+
link: "p-0 text-lg h-fit",
|
|
140
140
|
},
|
|
141
141
|
},
|
|
142
142
|
// State styles
|
|
@@ -44,7 +44,7 @@ const buttonGroupTheme = {
|
|
|
44
44
|
vertical: "h-px self-stretch",
|
|
45
45
|
},
|
|
46
46
|
// Text styles for ButtonGroupText component
|
|
47
|
-
textStyles: "px-3 py-2 text-
|
|
47
|
+
textStyles: "px-3 py-2 text-base text-[var(--color-text-primary)] flex items-center",
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
export { buttonGroupTheme };
|
|
@@ -371,7 +371,7 @@ const Calendar = React__default.forwardRef(({ mode = 'single', value, defaultVal
|
|
|
371
371
|
}
|
|
372
372
|
}
|
|
373
373
|
}, [minDate, maxDate, customIsDateDisabled, currentMonth, currentYear, onViewDateChange, mode, value, onChange, selectedValue, rangeSelectionState]);
|
|
374
|
-
return (jsxs("div", { ref: ref, className: cn(calendarTheme.baseStyle, className), ...props, children: [jsxs("div", { className: calendarTheme.headerStyle, children: [onNavigatePrev !== null && (jsx(Button, { onClick: navigateToPreviousMonth, "aria-label": "Previous month", disabled: !canNavigateToPrev, iconOnly: true, variant: "link", color: "neutral", size: "sm", children: jsx(ChevronLeftIcon, { className: "size-4", strokeWidth: 2 }) })), onNavigatePrev === null && jsx("div", { className: "w-8" }), resolvedHeaderMode === 'static' ? (jsxs("h2", { className: calendarTheme.titleStyle, children: [getMonthName(viewDate, months), " ", currentYear] })) : (jsxs("div", { className: calendarTheme.headerDropdownsStyle, children: [(resolvedHeaderMode === 'dropdown' || (resolvedHeaderMode === 'mixed' && enableMonthDropdown)) && (jsx(Select, { value: currentMonth.toString(), onChange: handleMonthChange, options: monthOptions, displayValue: currentAbbreviatedMonth, size: "sm", className: "text-
|
|
374
|
+
return (jsxs("div", { ref: ref, className: cn(calendarTheme.baseStyle, className), ...props, children: [jsxs("div", { className: calendarTheme.headerStyle, children: [onNavigatePrev !== null && (jsx(Button, { onClick: navigateToPreviousMonth, "aria-label": "Previous month", disabled: !canNavigateToPrev, iconOnly: true, variant: "link", color: "neutral", size: "sm", children: jsx(ChevronLeftIcon, { className: "size-4", strokeWidth: 2 }) })), onNavigatePrev === null && jsx("div", { className: "w-8" }), resolvedHeaderMode === 'static' ? (jsxs("h2", { className: calendarTheme.titleStyle, children: [getMonthName(viewDate, months), " ", currentYear] })) : (jsxs("div", { className: calendarTheme.headerDropdownsStyle, children: [(resolvedHeaderMode === 'dropdown' || (resolvedHeaderMode === 'mixed' && enableMonthDropdown)) && (jsx(Select, { value: currentMonth.toString(), onChange: handleMonthChange, options: monthOptions, displayValue: currentAbbreviatedMonth, size: "sm", className: "text-base font-medium" })), (resolvedHeaderMode === 'dropdown' || (resolvedHeaderMode === 'mixed' && enableYearDropdown)) && (jsx(Select, { value: currentYear.toString(), onChange: handleYearChange, options: yearOptions, size: "sm", className: "text-base font-medium" }))] })), onNavigateNext !== null && (jsx(Button, { onClick: navigateToNextMonth, "aria-label": "Next month", disabled: !canNavigateToNext, iconOnly: true, variant: "link", color: "neutral", size: "sm", children: jsx(ChevronRightIcon, { className: "size-4", strokeWidth: 2 }) })), onNavigateNext === null && jsx("div", { className: "w-8" })] }), jsx("div", { className: calendarTheme.weekdaysStyle, children: weekdays.map((day, index) => (jsx("div", { className: calendarTheme.weekdayStyle, children: day }, index))) }), jsx("div", { className: calendarTheme.daysGridStyle, children: calendarDays.map((day) => {
|
|
375
375
|
var _a;
|
|
376
376
|
const dayNumber = day.date.getDate();
|
|
377
377
|
return (jsxs(motion.button, { type: "button", onClick: () => handleDateSelect(day.date), disabled: day.isDisabled, className: cn(calendarTheme.dayButtonStyle, (_a = calendarTheme.dayButtonSizes) === null || _a === void 0 ? void 0 : _a[size]), "data-selected": day.isSelected, "data-range-start": day.isRangeStart, "data-range-end": day.isRangeEnd, "data-in-range": day.isInRange, "data-today": day.isToday && !day.isSelected && !day.isRangeStart && !day.isRangeEnd, "data-disabled": day.isDisabled, "data-other-month": !day.isCurrentMonth, "aria-label": `Select ${day.date.toLocaleDateString()}`, variants: shouldReduceMotion ? {} : calendarAnimations.dayButton, whileHover: shouldReduceMotion ? undefined : (!day.isDisabled ? "hover" : undefined), whileTap: shouldReduceMotion ? undefined : (!day.isDisabled ? "tap" : undefined), children: [jsx("time", { dateTime: day.date.toISOString().split("T")[0], children: dayNumber }), day.isToday && (jsx(motion.span, { className: "absolute z-10 bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 bg-[var(--color-primary)] rounded-full", variants: shouldReduceMotion ? {} : calendarAnimations.todayDot, initial: shouldReduceMotion ? undefined : "initial", animate: shouldReduceMotion ? undefined : "animate" }))] }, day.date.toISOString()));
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
const calendarTheme = {
|
|
6
6
|
baseStyle: "select-none w-full bg-white dark:bg-[var(--color-neutral-900)]",
|
|
7
7
|
headerStyle: "flex items-center justify-between mb-4",
|
|
8
|
-
titleStyle: "text-
|
|
8
|
+
titleStyle: "text-lg font-semibold text-[var(--color-text-primary)] cursor-pointer hover:text-[var(--color-primary)] transition-colors " +
|
|
9
9
|
"dark:text-[var(--color-neutral-200)] dark:hover:text-[var(--color-primary-400)]",
|
|
10
10
|
headerDropdownsStyle: "grid grid-cols-2 items-center gap-2 flex-1 justify-center mx-3",
|
|
11
11
|
navButtonStyle: "inline-flex items-center justify-center size-8 rounded-[calc(var(--radius-base)*0.75)] border-0 bg-transparent " +
|
|
@@ -16,7 +16,7 @@ const calendarTheme = {
|
|
|
16
16
|
"dark:text-[var(--color-neutral-500)] dark:hover:text-[var(--color-neutral-200)] dark:hover:bg-[var(--color-neutral-800)] " +
|
|
17
17
|
"dark:focus-visible:ring-offset-[var(--color-neutral-900)]",
|
|
18
18
|
weekdaysStyle: "grid grid-cols-7 mb-2",
|
|
19
|
-
weekdayStyle: "flex items-center justify-center h-8 text-
|
|
19
|
+
weekdayStyle: "flex items-center justify-center h-8 text-sm font-medium text-[var(--color-text-muted)] " +
|
|
20
20
|
"dark:text-[var(--color-neutral-500)]",
|
|
21
21
|
daysGridStyle: "grid grid-cols-7 gap-0.5",
|
|
22
22
|
dayButtonStyle: "relative flex items-center justify-center rounded-full border-0 bg-transparent font-medium cursor-pointer " +
|
|
@@ -45,9 +45,9 @@ const calendarTheme = {
|
|
|
45
45
|
// Focus offset for dark mode
|
|
46
46
|
"dark:focus-visible:ring-offset-[var(--color-neutral-900)]",
|
|
47
47
|
dayButtonSizes: {
|
|
48
|
-
sm: "size-8 text-
|
|
49
|
-
md: "size-10 text-
|
|
50
|
-
lg: "size-12 text-
|
|
48
|
+
sm: "size-8 text-base",
|
|
49
|
+
md: "size-10 text-base",
|
|
50
|
+
lg: "size-12 text-lg",
|
|
51
51
|
},
|
|
52
52
|
};
|
|
53
53
|
|
|
@@ -242,7 +242,7 @@ const CalendarMini = React__default.forwardRef(({ selectedDate, currentMonth, on
|
|
|
242
242
|
day: "numeric",
|
|
243
243
|
}), "aria-selected": isSelected, "aria-current": isToday ? "date" : undefined, "aria-disabled": disabled, type: "button", ...(enableAnimations && {
|
|
244
244
|
whileTap: !disabled ? { scale: 0.95 } : undefined,
|
|
245
|
-
}), children: [jsx("div", { className: "text-
|
|
245
|
+
}), children: [jsx("div", { className: "text-base font-medium opacity-60", children: formatDayName(date) }), jsx("time", { dateTime: date.toISOString(), className: cn("font-semibold"), children: formatDateNumber(date) })] }, date.toISOString()));
|
|
246
246
|
}) }, `${startDate.getTime()}-dates`) }) }) })] }), jsx(Button, { iconOnly: true, color: "neutral", variant: "ghost", className: "!flex-shrink !flex-grow-0 !w-fit self-stretch !h-auto !min-h-0 px-0.5", onClick: handleNextMonth, "aria-label": "Next month", children: jsx(ChevronRightIcon, { className: "size-5 text-[var(--color-text-primary)]" }) })] }));
|
|
247
247
|
});
|
|
248
248
|
CalendarMini.displayName = "CalendarMini";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const cardTheme = {
|
|
2
2
|
baseStyle: "rounded-[var(--card-radius)] overflow-hidden bg-white border border-[var(--color-border)] shadow-xs dark:bg-[var(--color-background-secondary)] [&>*+*]:pt-0",
|
|
3
3
|
headerStyle: "flex flex-col space-y-1.5 p-6",
|
|
4
|
-
titleStyle: "text-
|
|
5
|
-
subtitleStyle: "text-
|
|
4
|
+
titleStyle: "text-lg font-semibold leading-none text-[var(--color-text-primary)]",
|
|
5
|
+
subtitleStyle: "text-base text-[var(--color-text-muted)]",
|
|
6
6
|
contentStyle: "p-6",
|
|
7
7
|
footerStyle: "flex items-center p-6",
|
|
8
8
|
};
|
|
@@ -126,7 +126,7 @@ const CommandItem = ({ command, index, isHighlighted, contentStart, contentEnd,
|
|
|
126
126
|
}
|
|
127
127
|
return null;
|
|
128
128
|
};
|
|
129
|
-
return (jsxs("div", { "data-command-index": index, "data-highlighted": isHighlighted, "data-disabled": command.disabled || false, className: cn(theme.commandItem, className), onClick: handleClick, onMouseEnter: handleMouseEnter, children: [finalContentStart && (jsx("div", { className: "flex-shrink-0", children: finalContentStart })), jsxs("div", { className: "flex-1 min-w-0", children: [jsx("div", { className: "text-
|
|
129
|
+
return (jsxs("div", { "data-command-index": index, "data-highlighted": isHighlighted, "data-disabled": command.disabled || false, className: cn(theme.commandItem, className), onClick: handleClick, onMouseEnter: handleMouseEnter, children: [finalContentStart && (jsx("div", { className: "flex-shrink-0", children: finalContentStart })), jsxs("div", { className: "flex-1 min-w-0", children: [jsx("div", { className: "text-base truncate", children: command.label }), command.subtitle && (jsx("div", { className: "text-base opacity-70 truncate mt-0", children: command.subtitle }))] }), renderContentEnd()] }));
|
|
130
130
|
};
|
|
131
131
|
|
|
132
132
|
export { CommandItem };
|
|
@@ -8,12 +8,12 @@ const commandPaletteTheme = {
|
|
|
8
8
|
// Dark mode
|
|
9
9
|
"dark:ring-black/30",
|
|
10
10
|
searchWrapper: "border-b border-[var(--color-border)] px-4 py-3 " + "",
|
|
11
|
-
searchInput: "w-full px-0 py-0 text-
|
|
11
|
+
searchInput: "w-full px-0 py-0 text-base bg-transparent border-none outline-none " +
|
|
12
12
|
"text-[var(--color-text-primary)] placeholder:text-[var(--color-text-placeholder)] " +
|
|
13
13
|
"focus:outline-none focus:ring-0 " +
|
|
14
14
|
// Dark mode
|
|
15
15
|
"dark:text-[var(--color-neutral-200)] dark:placeholder:text-[var(--color-neutral-500)]",
|
|
16
|
-
groupLabel: "px-4 py-1 text-
|
|
16
|
+
groupLabel: "px-4 py-1 text-sm font-semibold text-[var(--color-text-muted)]/50 uppercase " +
|
|
17
17
|
"dark:text-[var(--color-neutral-500)]",
|
|
18
18
|
commandItem: "flex items-center gap-3 px-4 py-2 rounded-[var(--radius-base)] cursor-pointer transition-colors " +
|
|
19
19
|
"hover:bg-[var(--color-primary)] " +
|
|
@@ -23,7 +23,7 @@ const commandPaletteTheme = {
|
|
|
23
23
|
// Dark mode - adjust hover state
|
|
24
24
|
"dark:text-[var(--color-neutral-200)] dark:hover:bg-[var(--color-primary-600)] " +
|
|
25
25
|
"dark:data-[highlighted=true]:bg-[var(--color-primary-600)]",
|
|
26
|
-
emptyState: "px-4 py-12 text-center text-
|
|
26
|
+
emptyState: "px-4 py-12 text-center text-base text-[var(--color-text-muted)] " +
|
|
27
27
|
"dark:text-[var(--color-neutral-500)]",
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -13,10 +13,10 @@ const contextMenuTheme = {
|
|
|
13
13
|
// Submenu trigger - based on Dropdown item style with chevron space
|
|
14
14
|
subTriggerStyle: `${dropdownTheme.itemBaseStyle} pr-8 data-[state=open]:bg-[var(--color-background-tertiary)] ` +
|
|
15
15
|
"dark:data-[state=open]:bg-[var(--color-neutral-700)]",
|
|
16
|
-
// Submenu content -
|
|
16
|
+
// Submenu content - matches main dropdown menu style
|
|
17
17
|
subContentStyle: "min-w-[180px] max-h-[400px] overflow-y-auto rounded-[var(--dropdown-radius)] border border-[var(--color-border)] " +
|
|
18
|
-
"bg-[var(--color-background
|
|
19
|
-
"dark:bg-[var(--color-
|
|
18
|
+
"bg-[var(--color-background)] shadow-real-xl flex flex-col p-1 focus:outline-none " +
|
|
19
|
+
"dark:bg-[var(--color-background-secondary)]",
|
|
20
20
|
// Separator - horizontal divider
|
|
21
21
|
separatorStyle: "h-px bg-[var(--color-border)] my-1 -mx-1 " +
|
|
22
22
|
"dark:bg-[var(--color-neutral-700)]",
|
|
@@ -22,7 +22,7 @@ const ContextMenuItem = React__default.forwardRef(({ children, className, checke
|
|
|
22
22
|
const resolvedStartContent = hasPrefix ? (jsxs(Fragment, { children: [checked && (jsx(CheckIcon, { className: theme.itemCheckedStyle, "aria-hidden": "true" })), startContent] })) : undefined;
|
|
23
23
|
// Build end content: user's endContent OR shortcut display
|
|
24
24
|
const resolvedEndContent = endContent ||
|
|
25
|
-
(shortcut ? (jsx("span", { className: "text-
|
|
25
|
+
(shortcut ? (jsx("span", { className: "text-sm text-[var(--color-text-muted)] font-mono", children: shortcut })) : undefined);
|
|
26
26
|
return (jsx(MenuItem, { ref: ref, role: "menuitem", disabled: disabled, isDanger: isDanger, startContent: resolvedStartContent, endContent: resolvedEndContent, subtitle: subtitle, onActivate: handleActivate, "data-checked": checked, "aria-checked": checked ? "true" : undefined, className: cn(checked && "pl-8", className), theme: {
|
|
27
27
|
baseStyle: theme.itemStyle,
|
|
28
28
|
dangerStyle: theme.itemDangerStyle,
|
|
@@ -8,8 +8,8 @@ const drawerTheme = {
|
|
|
8
8
|
content: "h-full flex flex-col",
|
|
9
9
|
header: "flex items-start justify-between p-4 border-b border-[var(--color-border)] shrink-0 text-[var(--color-text-primary)] gap-4",
|
|
10
10
|
headerContent: "flex items-start gap-3 flex-1 min-w-0",
|
|
11
|
-
title: "text-
|
|
12
|
-
subtitle: "text-
|
|
11
|
+
title: "text-lg font-semibold leading-6 text-[var(--color-text-primary)]",
|
|
12
|
+
subtitle: "text-base text-[var(--color-text-secondary)] mt-0.5",
|
|
13
13
|
body: "flex-1 overflow-y-auto p-4",
|
|
14
14
|
footer: "flex items-center justify-end gap-3 p-4 border-t border-[var(--color-border)] shrink-0 " +
|
|
15
15
|
"dark:border-[var(--color-neutral-700)]",
|
|
@@ -9,7 +9,7 @@ const dropdownTheme = {
|
|
|
9
9
|
itemDangerStyle: menuItemTheme.dangerStyle,
|
|
10
10
|
itemFocusStyle: menuItemTheme.focusStyle,
|
|
11
11
|
// Section title styling
|
|
12
|
-
sectionTitleStyle: "px-2 py-1.5 text-
|
|
12
|
+
sectionTitleStyle: "px-2 py-1.5 text-sm font-semibold text-[var(--color-text-muted)] uppercase tracking-tight",
|
|
13
13
|
// Section container styling
|
|
14
14
|
sectionStyle: "py-1",
|
|
15
15
|
// Separator between sections
|
|
@@ -5,9 +5,9 @@ const emptyTheme = {
|
|
|
5
5
|
// Base container styles - customizable spacing, colors, and layout
|
|
6
6
|
baseStyle: "flex flex-col items-center justify-center text-center w-full max-w-md mx-auto space-y-3 py-12 px-6 ",
|
|
7
7
|
// Title text styles - customizable typography and colors
|
|
8
|
-
titleStyle: "text-
|
|
8
|
+
titleStyle: "text-lg font-semibold text-[var(--color-text-primary)]",
|
|
9
9
|
// Description text styles - customizable typography and colors
|
|
10
|
-
subtitleStyle: "text-
|
|
10
|
+
subtitleStyle: "text-base text-[var(--color-text-muted)]",
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export { emptyTheme };
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
const kbdTheme = {
|
|
5
5
|
baseStyle: 'inline-flex items-center justify-center font-sans font-medium rounded-[calc(var(--radius-base)*0.75)] bg-neutral-100 border border-[var(--color-border)] text-[var(--color-text-secondary)] glass-effect',
|
|
6
6
|
sizes: {
|
|
7
|
-
sm: 'text-
|
|
8
|
-
md: 'text-
|
|
7
|
+
sm: 'text-sm px-1 py-0.5 min-w-[1.25rem]',
|
|
8
|
+
md: 'text-base px-1.5 py-0.5 min-w-[1.5rem]',
|
|
9
9
|
},
|
|
10
|
-
separatorStyle: 'text-[var(--color-text-muted)] text-
|
|
10
|
+
separatorStyle: 'text-[var(--color-text-muted)] text-sm',
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export { kbdTheme };
|
|
@@ -14,7 +14,7 @@ const loaderTheme = {
|
|
|
14
14
|
// Linear bar (foreground)
|
|
15
15
|
linearBarStyle: "h-full rounded-full transition-all duration-300 ease-out",
|
|
16
16
|
// Label text for linear variant
|
|
17
|
-
linearLabelStyle: "text-
|
|
17
|
+
linearLabelStyle: "text-base font-medium text-[var(--color-text-secondary)] min-w-[3ch] tabular-nums",
|
|
18
18
|
// Size variants for both circular and linear
|
|
19
19
|
sizes: {
|
|
20
20
|
sm: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const menuItemTheme = {
|
|
2
2
|
// Base item styling with hover, focus, and disabled states
|
|
3
|
-
baseStyle: "relative flex items-center gap-2 px-2.5 py-1.5 text-
|
|
3
|
+
baseStyle: "relative flex items-center gap-2 px-2.5 py-1.5 text-base font-[500] text-[var(--color-text-primary)] cursor-pointer outline-none select-none rounded-[var(--radius-base)] transition-colors duration-300 " +
|
|
4
4
|
"hover:bg-[var(--color-background-secondary)] focus:bg-[var(--color-background-secondary)] " +
|
|
5
5
|
"data-[focused=true]:bg-[var(--color-background-secondary)] " +
|
|
6
6
|
"data-[selected=true]:bg-[var(--color-primary)]/5 data-[selected=true]:text-[var(--color-primary)] " +
|
|
@@ -19,7 +19,7 @@ const menuItemTheme = {
|
|
|
19
19
|
focusStyle: "focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 " +
|
|
20
20
|
"dark:focus-visible:ring-[var(--color-primary-400)] dark:focus-visible:ring-offset-[var(--color-neutral-900)]",
|
|
21
21
|
// Description text below the label
|
|
22
|
-
subtitleStyle: "text-
|
|
22
|
+
subtitleStyle: "text-sm text-[var(--color-text-muted)] mt-0.5 truncate",
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { menuItemTheme };
|
|
@@ -98,7 +98,7 @@ const MessageRoot = React__default.forwardRef(({ role, variant: variantProp, con
|
|
|
98
98
|
const renderedContent = shouldAnimate ? (jsx(TypeWriter, { text: messageContent, speed: typingSpeed, enabled: true, className: "break-words" })) : (messageContent);
|
|
99
99
|
// System messages render differently (centered, no avatar)
|
|
100
100
|
if (variant === "system") {
|
|
101
|
-
return (jsx("div", { ref: ref, className: cn("w-full max-w-full", className), "data-variant": "system", "data-role": role, ...props, children: jsxs("div", { className: containerStyle, children: [jsx("div", { className: bubbleStyle, children: typeof renderedContent === "string" ? (jsx("p", { className: "text-
|
|
101
|
+
return (jsx("div", { ref: ref, className: cn("w-full max-w-full", className), "data-variant": "system", "data-role": role, ...props, children: jsxs("div", { className: containerStyle, children: [jsx("div", { className: bubbleStyle, children: typeof renderedContent === "string" ? (jsx("p", { className: "text-base", children: renderedContent })) : (renderedContent) }), jsx(MessageFooter, { isStreaming: isStreaming, streamingIndicator: streamingIndicator, showTimestamp: showTimestamp, timestamp: timestamp, actions: undefined, timestampStyle: timestampStyle, streamingIndicatorStyle: cn(messageTheme.streamingIndicatorStyle, customTheme.streamingIndicatorStyle), actionsContainerStyle: undefined, variant: "system" })] }) }));
|
|
102
102
|
}
|
|
103
103
|
return (jsx("div", { ref: ref, className: cn("w-full max-w-full group", className), "data-variant": variant, "data-role": role, ...props, children: jsxs("div", { className: containerStyle, children: [avatar && (jsx("div", { className: "flex-shrink-0", children: jsx(Avatar, { src: avatar.src, alt: avatar.alt, fallback: avatar.fallback, size: "xs" }) })), jsxs("div", { className: cn("flex flex-col", variant === "sender" ? "items-end" : "items-start"), children: [jsx("div", { className: bubbleStyle, children: typeof renderedContent === "string" ? (jsx("p", { className: "break-words", children: renderedContent })) : (renderedContent) }), jsx(MessageFooter, { isStreaming: isStreaming, streamingIndicator: streamingIndicator, showTimestamp: showTimestamp, timestamp: timestamp, actions: finalActions, timestampStyle: timestampStyle, streamingIndicatorStyle: cn(messageTheme.streamingIndicatorStyle, customTheme.streamingIndicatorStyle), actionsContainerStyle: cn(messageTheme.actionsContainerStyle, customTheme.actionsContainerStyle), variant: variant })] })] }) }));
|
|
104
104
|
});
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
const messageTheme = {
|
|
6
6
|
// Shared base styles (apply to all variants)
|
|
7
7
|
bubbleBaseStyle: "max-w-[80%] sm:max-w-[85%] rounded-[calc(var(--radius-base)*1.5)] px-3 py-2 w-fit min-w-fit h-fit",
|
|
8
|
-
containerBaseStyle: "flex items-start gap-3 h-fit text-
|
|
9
|
-
timestampStyle: "text-
|
|
8
|
+
containerBaseStyle: "flex items-start gap-3 h-fit text-base",
|
|
9
|
+
timestampStyle: "text-sm text-[var(--color-text-placeholder)] dark:text-[var(--color-neutral-500)]",
|
|
10
10
|
// Variant-specific modifiers (only differences)
|
|
11
11
|
variants: {
|
|
12
12
|
sender: {
|
|
@@ -29,14 +29,14 @@ const messageTheme = {
|
|
|
29
29
|
system: {
|
|
30
30
|
containerModifier: "justify-center", // Center alignment
|
|
31
31
|
bubbleStyle: "bg-[var(--color-background)] text-[var(--color-text-muted)]/80 rounded-[calc(var(--radius-base)*0.75)] px-1 py-0.5 " +
|
|
32
|
-
"text-
|
|
32
|
+
"text-sm border-none " +
|
|
33
33
|
// Dark mode
|
|
34
34
|
"",
|
|
35
35
|
timestampModifier: "text-center",
|
|
36
36
|
},
|
|
37
37
|
},
|
|
38
38
|
// Feature styles (streaming, actions)
|
|
39
|
-
streamingIndicatorStyle: "flex items-center gap-1 text-[var(--color-text-placeholder)] text-
|
|
39
|
+
streamingIndicatorStyle: "flex items-center gap-1 text-[var(--color-text-placeholder)] text-sm " +
|
|
40
40
|
"dark:text-[var(--color-neutral-500)]",
|
|
41
41
|
actionsContainerStyle: "flex items-start gap-3",
|
|
42
42
|
};
|
|
@@ -8,8 +8,8 @@ const modalTheme = {
|
|
|
8
8
|
},
|
|
9
9
|
header: "flex items-start justify-between p-6 pb-0 shrink-0 border-b border-transparent gap-6 relative",
|
|
10
10
|
headerContent: "flex flex-col items-start gap-2 flex-1",
|
|
11
|
-
title: "text-
|
|
12
|
-
subtitle: "text-
|
|
11
|
+
title: "text-lg leading-6 font-semibold text-[var(--color-text-primary)]",
|
|
12
|
+
subtitle: "text-base text-[var(--color-text-secondary)] mt-0.5",
|
|
13
13
|
body: "flex-1 overflow-y-auto p-6 pb-3",
|
|
14
14
|
footer: "flex items-center justify-end gap-2 p-6 py-3 border-t border-transparent",
|
|
15
15
|
};
|
|
@@ -104,7 +104,7 @@ description, shortcut, href, onClick, active = false, disabled = false, isDisabl
|
|
|
104
104
|
? React__default.cloneElement(startContent, {
|
|
105
105
|
className: cn(iconClasses, startContent.props.className),
|
|
106
106
|
})
|
|
107
|
-
: startContent })), (!isInSidebar || !collapsed) && (jsxs("div", { className: "flex-1 min-w-0", children: [jsxs("div", { className: "flex items-center justify-between gap-2", children: [jsx("span", { className: cn("truncate", textClasses), children: children }), shortcut && (jsx("kbd", { className: "hidden group-hover:inline-block text-
|
|
107
|
+
: startContent })), (!isInSidebar || !collapsed) && (jsxs("div", { className: "flex-1 min-w-0", children: [jsxs("div", { className: "flex items-center justify-between gap-2", children: [jsx("span", { className: cn("truncate", textClasses), children: children }), shortcut && (jsx("kbd", { className: "hidden group-hover:inline-block text-sm text-[var(--color-text-muted)] font-sans border border-[var(--color-border)] rounded px-1.5 py-0.5", children: shortcut }))] }), description && (jsx("div", { className: "text-sm text-[var(--color-text-muted)] mt-0.5 truncate", children: description }))] })), endContent && (!isInSidebar || !collapsed) && (jsx("div", { className: "flex items-center justify-center flex-shrink-0", children: endContent })), isInSidebar && collapsed && (jsx("span", { className: "sr-only", children: children }))] }));
|
|
108
108
|
// Wrap with link if href is provided
|
|
109
109
|
if (href && !actualIsDisabled) {
|
|
110
110
|
const LinkContent = (jsx("a", { href: href, className: "block group", children: content }));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const navItemTheme = {
|
|
2
|
-
baseStyle: "relative flex items-center gap-2 px-2 py-1.5 text-
|
|
2
|
+
baseStyle: "relative flex items-center gap-2 px-2 py-1.5 text-base font-medium cursor-pointer select-none transition-all duration-300 w-full rounded-[var(--nav-item-radius)] outline-none group",
|
|
3
3
|
icon: "size-4 text-[var(--color-text-secondary)]",
|
|
4
4
|
text: "flex-1 min-w-0 truncate",
|
|
5
5
|
states: {
|
|
@@ -15,8 +15,8 @@ const offlineIndicatorTheme = {
|
|
|
15
15
|
offline: "bg-[var(--color-neutral-900)]/90 backdrop-blur-sm text-white",
|
|
16
16
|
online: "bg-[var(--color-success)]/90 backdrop-blur-sm text-[var(--color-success-contrast)]",
|
|
17
17
|
icon: "size-4 flex-shrink-0",
|
|
18
|
-
message: "text-
|
|
19
|
-
queueCount: "text-
|
|
18
|
+
message: "text-sm font-medium",
|
|
19
|
+
queueCount: "text-sm opacity-80 ml-1",
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
export { offlineIndicatorTheme };
|
|
@@ -2,7 +2,7 @@ const pageHeadingTheme = {
|
|
|
2
2
|
baseStyle: "flex flex-col pb-6 mb-6",
|
|
3
3
|
headerStyle: "flex items-center gap-4",
|
|
4
4
|
titleStyle: "text-2xl font-semibold tracking-tight text-[var(--color-text-primary)]",
|
|
5
|
-
subtitleStyle: "text-
|
|
5
|
+
subtitleStyle: "text-base text-[var(--color-text-muted)] mt-1",
|
|
6
6
|
actionsStyle: "sm:ml-auto flex items-center gap-2 shrink-0",
|
|
7
7
|
iconStyle: "flex items-center justify-center shrink-0 text-[var(--color-text-muted)]",
|
|
8
8
|
separatorStyle: "border-b border-[var(--color-border)] mt-4",
|
|
@@ -26,8 +26,8 @@ const paginationTheme = {
|
|
|
26
26
|
"data-[disabled=true]:opacity-50 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:pointer-events-none",
|
|
27
27
|
// Unified item sizes
|
|
28
28
|
itemSizes: {
|
|
29
|
-
sm: "size-8 min-w-[2rem] text-
|
|
30
|
-
md: "size-10 min-w-[2.5rem] text-
|
|
29
|
+
sm: "size-8 min-w-[2rem] text-base",
|
|
30
|
+
md: "size-10 min-w-[2.5rem] text-base",
|
|
31
31
|
},
|
|
32
32
|
// Ellipsis styles
|
|
33
33
|
ellipsisStyle: "inline-flex items-center justify-center font-medium text-[var(--color-text-muted)] dark:text-[var(--color-neutral-500)] cursor-default pointer-events-none",
|
|
@@ -27,9 +27,9 @@ const pillTheme = {
|
|
|
27
27
|
* Size variants
|
|
28
28
|
*/
|
|
29
29
|
sizes: {
|
|
30
|
-
sm: "text-
|
|
31
|
-
md: "text-
|
|
32
|
-
lg: "text-
|
|
30
|
+
sm: "text-sm px-2 py-0.5 gap-0.5",
|
|
31
|
+
md: "text-base px-2.5 py-1 gap-1",
|
|
32
|
+
lg: "text-base px-3 py-1 gap-1.5",
|
|
33
33
|
},
|
|
34
34
|
/**
|
|
35
35
|
* Icon sizes for iconStart and CheckIcon
|
|
@@ -11,9 +11,9 @@ const progressTheme = {
|
|
|
11
11
|
// Fill (progress bar) styles
|
|
12
12
|
fillStyle: "h-full rounded-full",
|
|
13
13
|
// Label text styles
|
|
14
|
-
labelStyle: "text-
|
|
14
|
+
labelStyle: "text-base font-medium text-[var(--color-text-secondary)] tabular-nums min-w-[2.5rem] text-right",
|
|
15
15
|
// Inside label styles (when label is positioned inside the bar)
|
|
16
|
-
insideLabelStyle: "absolute inset-0 flex items-center justify-center text-
|
|
16
|
+
insideLabelStyle: "absolute inset-0 flex items-center justify-center text-sm font-medium text-[var(--color-primary-contrast)] tabular-nums",
|
|
17
17
|
// Size variants for track height
|
|
18
18
|
sizes: {
|
|
19
19
|
sm: "h-1.5",
|
|
@@ -25,9 +25,9 @@ const segmentedItemTheme = {
|
|
|
25
25
|
baseStyle: "relative flex min-h-full min-w-fit flex-1 items-center justify-center transition-all duration-200 rounded-[calc(var(--segmented-radius)-1.5px)] font-medium cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary-500)] focus-visible:ring-offset-1",
|
|
26
26
|
// Size variants using CSS variables
|
|
27
27
|
sizes: {
|
|
28
|
-
sm: "text-
|
|
29
|
-
md: "text-
|
|
30
|
-
lg: "text-
|
|
28
|
+
sm: "text-base px-[var(--segmented-px-sm)]",
|
|
29
|
+
md: "text-base px-[var(--segmented-px-md)]",
|
|
30
|
+
lg: "text-base px-[var(--segmented-px-lg)]",
|
|
31
31
|
},
|
|
32
32
|
// Selected state
|
|
33
33
|
selectedStyle: "text-[var(--color-text-primary)] z-10",
|
|
@@ -7,7 +7,7 @@ const SidebarNavGroup = React__default.forwardRef(({ title, showTitleWhenCollaps
|
|
|
7
7
|
const sidebarContext = useSidebarContext();
|
|
8
8
|
const collapsed = (sidebarContext === null || sidebarContext === void 0 ? void 0 : sidebarContext.collapsed) || false;
|
|
9
9
|
const showTitle = title && (!collapsed || showTitleWhenCollapsed);
|
|
10
|
-
return (jsxs("div", { ref: ref, className: cn("space-y-1", className), ...props, children: [showTitle && (jsx("div", { className: "px-2 py-2", children: jsx("h3", { className: "text-
|
|
10
|
+
return (jsxs("div", { ref: ref, className: cn("space-y-1", className), ...props, children: [showTitle && (jsx("div", { className: "px-2 py-2", children: jsx("h3", { className: "text-sm font-semibold text-[var(--color-text-muted)] uppercase tracking-wider", children: title }) })), collapsed && !showTitleWhenCollapsed && (jsx("div", { className: "h-px bg-[var(--color-border)] mx-2 my-2" })), jsx("div", { className: "space-y-1", children: children })] }));
|
|
11
11
|
});
|
|
12
12
|
SidebarNavGroup.displayName = "SidebarNavGroup";
|
|
13
13
|
|
|
@@ -10,8 +10,8 @@ const tabsTheme = {
|
|
|
10
10
|
triggerStyle: "relative inline-flex items-center justify-center whitespace-nowrap font-medium transition-all duration-300 cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 text-[var(--color-text-muted)] hover:text-[var(--color-text-primary)] data-[state=active]:text-[var(--color-primary)]",
|
|
11
11
|
// TabsTrigger size variants using CSS variables where applicable
|
|
12
12
|
triggerSizes: {
|
|
13
|
-
sm: "px-2 py-1.5 text-
|
|
14
|
-
md: "px-2 py-2 text-
|
|
13
|
+
sm: "px-2 py-1.5 text-base gap-1",
|
|
14
|
+
md: "px-2 py-2 text-base gap-1",
|
|
15
15
|
},
|
|
16
16
|
// TabsContent styles with proper CSS variables
|
|
17
17
|
contentStyle: "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
|
|
@@ -3,8 +3,8 @@ const tagTheme = {
|
|
|
3
3
|
"bg-white dark:bg-[var(--color-background-secondary)] border border-[var(--color-border)] " +
|
|
4
4
|
"text-[var(--color-text-primary)]",
|
|
5
5
|
sizes: {
|
|
6
|
-
sm: "text-
|
|
7
|
-
md: "text-
|
|
6
|
+
sm: "text-sm px-2.5 py-0.5",
|
|
7
|
+
md: "text-base px-2.5 py-0.5",
|
|
8
8
|
},
|
|
9
9
|
disabledStyle: "opacity-50 cursor-not-allowed",
|
|
10
10
|
removeButtonStyle: "inline-flex items-center justify-center rounded-full p-1 " +
|
|
@@ -8,10 +8,10 @@ const toastTheme = {
|
|
|
8
8
|
},
|
|
9
9
|
iconStyle: "flex-shrink-0 size-5 mt-0.5",
|
|
10
10
|
iconCenteredStyle: "flex-shrink-0 size-5",
|
|
11
|
-
titleStyle: "font-semibold text-
|
|
12
|
-
textOnlyStyle: "text-
|
|
13
|
-
subtitleStyle: "text-
|
|
14
|
-
actionStyle: "text-
|
|
11
|
+
titleStyle: "font-semibold text-base",
|
|
12
|
+
textOnlyStyle: "text-base",
|
|
13
|
+
subtitleStyle: "text-base mt-0.5 opacity-60",
|
|
14
|
+
actionStyle: "text-sm font-medium px-2 py-1 rounded border bg-white/80 hover:bg-white transition-colors cursor-pointer " +
|
|
15
15
|
"dark:bg-white/10 dark:border-white/20 dark:hover:bg-white/20 dark:text-white",
|
|
16
16
|
closeButtonStyle: "absolute top-2 right-2 flex-shrink-0 w-4 h-4 opacity-70 hover:opacity-100 transition-opacity cursor-pointer",
|
|
17
17
|
closeButtonCenteredStyle: "flex-shrink-0 w-4 h-4 opacity-70 hover:opacity-100 transition-opacity cursor-pointer",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const tooltipTheme = {
|
|
2
2
|
// Base style for the tooltip - using fixed positioning for portal rendering
|
|
3
|
-
baseStyle: "fixed z-[99] rounded-[var(--tooltip-radius)] py-1 px-2 text-
|
|
3
|
+
baseStyle: "fixed z-[99] rounded-[var(--tooltip-radius)] py-1 px-2 text-sm text-[var(--color-text-primary)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 pointer-events-none bg-white/60 backdrop-blur-md outline outline-[var(--color-border)] shadow-lg border-t-[1px] border-white " +
|
|
4
4
|
"dark:bg-neutral-800/80 dark:outline-[var(--color-border)]/80 dark:border-[var(--color-border)]",
|
|
5
5
|
};
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const treeTheme = {
|
|
2
2
|
baseStyle: 'flex flex-col w-full',
|
|
3
3
|
nodeStyle: 'flex items-center py-1 pr-1 rounded-[calc(var(--radius-base)*0.75)] hover:bg-[var(--color-background-secondary)] cursor-pointer transition-colors select-none gap-2',
|
|
4
|
-
labelStyle: 'flex-1 text-
|
|
4
|
+
labelStyle: 'flex-1 text-lg text-[var(--color-text-primary)] truncate',
|
|
5
5
|
iconStyle: 'flex-shrink-0 text-[var(--color-text-muted)]',
|
|
6
6
|
expandIconStyle: 'flex-shrink-0 mr-1 text-[var(--color-text-muted)] hover:text-[var(--color-text-primary)] transition-colors cursor-pointer size-4 flex items-center justify-center',
|
|
7
7
|
indentSize: '1rem',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const descriptionListTheme = {
|
|
2
2
|
baseStyle: "divide-y divide-[var(--color-border)] min-w-0",
|
|
3
3
|
itemStyle: "px-4 py-3",
|
|
4
|
-
termStyle: "text-
|
|
5
|
-
detailStyle: "mt-1 text-
|
|
4
|
+
termStyle: "text-base/6 font-medium text-[var(--color-text-primary)]",
|
|
5
|
+
detailStyle: "mt-1 text-base/6 text-[var(--color-text-secondary)]",
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export { descriptionListTheme };
|
|
@@ -54,7 +54,7 @@ const FeedItem = React__default.forwardRef(({ variant = "default", title, timest
|
|
|
54
54
|
case "icon":
|
|
55
55
|
return (jsxs("div", { className: cn(theme.contentStyle, "py-1.5"), children: [jsxs("p", { className: theme.actionTextStyle, children: [title && jsxs("span", { className: theme.titleStyle, children: [title, " "] }), children] }), timestamp && jsx("p", { className: theme.timestampStyle, children: timestamp })] }));
|
|
56
56
|
case "avatar":
|
|
57
|
-
return (jsxs("div", { className: theme.contentStyle, children: [title && (jsx("p", { className: cn(theme.titleStyle, "text-
|
|
57
|
+
return (jsxs("div", { className: theme.contentStyle, children: [title && (jsx("p", { className: cn(theme.titleStyle, "text-base"), children: title })), jsx("p", { className: cn(theme.actionTextStyle, "mt-0.5"), children: children }), timestamp && jsx("p", { className: theme.timestampStyle, children: timestamp })] }));
|
|
58
58
|
case "comment-input": {
|
|
59
59
|
const handleSubmit = () => {
|
|
60
60
|
const trimmed = inputValue.trim();
|
|
@@ -12,8 +12,8 @@ const feedTheme = {
|
|
|
12
12
|
// Content
|
|
13
13
|
contentStyle: "min-w-0 flex-1",
|
|
14
14
|
titleStyle: "font-medium text-[var(--color-text-primary)]",
|
|
15
|
-
actionTextStyle: "text-
|
|
16
|
-
timestampStyle: "mt-1 text-
|
|
15
|
+
actionTextStyle: "text-base text-[var(--color-text-secondary)]",
|
|
16
|
+
timestampStyle: "mt-1 text-sm text-[var(--color-text-muted)]/80 whitespace-nowrap font-medium",
|
|
17
17
|
// Comment input
|
|
18
18
|
commentInputWrapperStyle: "min-w-0 flex-1 space-y-2",
|
|
19
19
|
commentInputFooterStyle: "flex justify-end",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const ganttChartTheme = {
|
|
2
|
-
baseStyle: "flex flex-col w-full overflow-hidden text-
|
|
2
|
+
baseStyle: "flex flex-col w-full overflow-hidden text-base",
|
|
3
3
|
toolbarStyle: "flex flex-wrap items-center justify-between gap-3 px-3 py-2 border-b border-[var(--color-border)] bg-[var(--color-background-secondary)]",
|
|
4
4
|
tablePanelStyle: "hidden sm:flex flex-col shrink-0 overflow-hidden",
|
|
5
5
|
chartPanelStyle: "flex flex-col flex-1 min-w-0 overflow-hidden",
|
|
@@ -9,7 +9,7 @@ const ganttChartTheme = {
|
|
|
9
9
|
tableTaskRowStyle: "flex items-center hover:bg-[var(--color-background-secondary)] transition-colors",
|
|
10
10
|
tableCellStyle: "px-3 truncate text-[var(--color-text-primary)]",
|
|
11
11
|
timelineHeaderStyle: "bg-[var(--color-background)] border-b border-[var(--color-border)]",
|
|
12
|
-
timelineMonthStyle: "text-
|
|
12
|
+
timelineMonthStyle: "text-sm font-medium text-[var(--color-text-secondary)] px-2 border-b border-[var(--color-border)] flex items-center",
|
|
13
13
|
timelineDayStyle: "text-[10px] text-[var(--color-text-muted)] flex items-center justify-center",
|
|
14
14
|
gridLineStyle: "border-r border-[var(--color-border)]/30",
|
|
15
15
|
weekendStyle: "bg-[var(--color-background-secondary)]/50",
|
|
@@ -64,7 +64,7 @@ const GanttChartPanel = forwardRef(({ onScroll, days, monthSpans }, ref) => {
|
|
|
64
64
|
}
|
|
65
65
|
}, [rows, focusedTaskId, setFocusedTaskId, onTaskClick]);
|
|
66
66
|
if (tasks.length === 0) {
|
|
67
|
-
return (jsx("div", { className: cn(theme.chartPanelStyle, "items-center justify-center"), children: jsxs("div", { className: "flex flex-col items-center gap-2 text-[var(--color-text-muted)]", children: [jsx(CalendarDaysIcon, { className: "size-10 opacity-40" }), jsx("div", { className: "text-
|
|
67
|
+
return (jsx("div", { className: cn(theme.chartPanelStyle, "items-center justify-center"), children: jsxs("div", { className: "flex flex-col items-center gap-2 text-[var(--color-text-muted)]", children: [jsx(CalendarDaysIcon, { className: "size-10 opacity-40" }), jsx("div", { className: "text-base font-medium", children: "No tasks to display" }), jsx("div", { className: "text-sm opacity-70", children: "Add tasks to see them on the timeline" })] }) }));
|
|
68
68
|
}
|
|
69
69
|
return (jsx("div", { className: cn(theme.chartPanelStyle), children: jsx("div", { ref: ref, className: "overflow-auto flex-1 min-h-0 focus:outline-none", onScroll: onScroll, onKeyDown: handleKeyDown, tabIndex: 0, role: "grid", "aria-label": "Gantt chart timeline", "data-gantt-chart-scroll": true, children: jsxs("div", { style: { width: totalWidth }, children: [jsx("div", { className: "sticky top-0 z-10", children: jsx(GanttTimelineHeader, { days: days, monthSpans: monthSpans }) }), jsxs("div", { className: "relative", style: { height: bodyHeight }, children: [jsx(GanttTimelineGrid, { days: days, height: bodyHeight }), jsx(GanttDependencyArrows, {}), rows.map((row, i) => {
|
|
70
70
|
const top = i * rowHeight;
|