@underverse-ui/underverse 1.0.83 → 1.0.85
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/AGENTS.md +1 -1
- package/README.md +4 -1
- package/agent-recipes.json +1 -1
- package/api-reference.json +1 -1
- package/dist/index.cjs +170 -121
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -3
- package/dist/index.d.ts +14 -3
- package/dist/index.js +170 -121
- package/dist/index.js.map +1 -1
- package/llms.txt +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -448,6 +448,7 @@ interface Toast {
|
|
|
448
448
|
onClick: () => void;
|
|
449
449
|
};
|
|
450
450
|
dismissible?: boolean;
|
|
451
|
+
overflowHidden?: boolean;
|
|
451
452
|
}
|
|
452
453
|
interface ToastContextType {
|
|
453
454
|
addToast: (toast: Omit<Toast, "id">) => void;
|
|
@@ -542,8 +543,9 @@ interface AlertProps {
|
|
|
542
543
|
onClose?: () => void;
|
|
543
544
|
actions?: ReactNode;
|
|
544
545
|
closeAriaLabel?: string;
|
|
546
|
+
overflowHidden?: boolean;
|
|
545
547
|
}
|
|
546
|
-
declare const Alert: ({ title, description, variant, className, icon, dismissible, onClose, actions, closeAriaLabel }: AlertProps) => react_jsx_runtime.JSX.Element | null;
|
|
548
|
+
declare const Alert: ({ title, description, variant, className, icon, dismissible, onClose, actions, closeAriaLabel, overflowHidden, }: AlertProps) => react_jsx_runtime.JSX.Element | null;
|
|
547
549
|
|
|
548
550
|
interface GlobalLoadingProps {
|
|
549
551
|
className?: string;
|
|
@@ -765,6 +767,7 @@ interface ScrollAreaProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
765
767
|
contentClassName?: string;
|
|
766
768
|
variant?: "default" | "muted" | "primary" | "accent";
|
|
767
769
|
outlined?: boolean;
|
|
770
|
+
overflowHidden?: boolean;
|
|
768
771
|
useOverlayScrollbar?: boolean;
|
|
769
772
|
}
|
|
770
773
|
declare const ScrollArea: React$1.ForwardRefExoticComponent<ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -794,6 +797,7 @@ interface OverlayScrollAreaProps extends React__default.HTMLAttributes<HTMLDivEl
|
|
|
794
797
|
viewportClassName?: string;
|
|
795
798
|
viewportProps?: React__default.HTMLAttributes<HTMLDivElement>;
|
|
796
799
|
enabled?: boolean;
|
|
800
|
+
overflowHidden?: boolean;
|
|
797
801
|
overlayScrollbarOptions?: Omit<UseOverlayScrollbarTargetOptions, "enabled">;
|
|
798
802
|
}
|
|
799
803
|
declare const OverlayScrollArea: React__default.ForwardRefExoticComponent<OverlayScrollAreaProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
@@ -1376,6 +1380,8 @@ interface CalendarTimelineProps<TResourceMeta = unknown, TEventMeta = unknown> e
|
|
|
1376
1380
|
monthEventStyle?: "span" | "compact";
|
|
1377
1381
|
/** Month view only (when `monthEventStyle="compact"`): max visual width (px). */
|
|
1378
1382
|
monthEventMaxWidth?: number;
|
|
1383
|
+
/** Clip overflow at the outer surface. Disable when child hover shadows or focus rings should escape the timeline card. Default: true. */
|
|
1384
|
+
overflowHidden?: boolean;
|
|
1379
1385
|
dayTimeStepMinutes?: number;
|
|
1380
1386
|
/** Render tooltips on events (can be expensive for large datasets). Default: true. */
|
|
1381
1387
|
enableEventTooltips?: boolean;
|
|
@@ -1466,7 +1472,7 @@ interface CalendarTimelineProps<TResourceMeta = unknown, TEventMeta = unknown> e
|
|
|
1466
1472
|
virtualization?: CalendarTimelineVirtualization;
|
|
1467
1473
|
}
|
|
1468
1474
|
|
|
1469
|
-
declare function CalendarTimeline<TResourceMeta = unknown, TEventMeta = unknown>({ resources, events, size, enableEventSheet, eventSheetSize, eventSheetOverlayOpacity, renderEventSheet, selectedEventId, defaultSelectedEventId, onSelectedEventIdChange, eventSheetOpen, defaultEventSheetOpen, onEventSheetOpenChange, onlyView, view, defaultView, onViewChange, dueDateSprint, date, defaultDate, onDateChange, weekStartsOn, locale, timeZone, labels, formatters, groups, groupCollapsed, defaultGroupCollapsed, onGroupCollapsedChange, hideResourceColumn, resourceColumnWidth, defaultResourceColumnWidth, onResourceColumnWidthChange, minResourceColumnWidth, maxResourceColumnWidth, rowHeight, defaultRowHeight, onRowHeightChange, minRowHeight, maxRowHeight, rowHeights, defaultRowHeights, onRowHeightsChange, autoRowHeight, enableLayoutResize, slotMinWidth, adaptiveSlotWidths, dayEventStyle, dayEventMaxWidth, monthEventStyle, monthEventMaxWidth, dayTimeStepMinutes, enableEventTooltips, dayHeaderMode, daySlotCompression, columnVirtualization, dayRangeMode, workHours, maxLanesPerRow, now, renderResource, renderGroup, renderEvent, interactions, onRangeChange, onEventClick, onEventDoubleClick, onCreateEventClick, onCreateEvent, onEventMove, onEventResize, onEventDelete, onMoreClick, virtualization, className, ...rest }: CalendarTimelineProps<TResourceMeta, TEventMeta>): react_jsx_runtime.JSX.Element;
|
|
1475
|
+
declare function CalendarTimeline<TResourceMeta = unknown, TEventMeta = unknown>({ resources, events, size, enableEventSheet, eventSheetSize, eventSheetOverlayOpacity, renderEventSheet, selectedEventId, defaultSelectedEventId, onSelectedEventIdChange, eventSheetOpen, defaultEventSheetOpen, onEventSheetOpenChange, onlyView, view, defaultView, onViewChange, dueDateSprint, date, defaultDate, onDateChange, weekStartsOn, locale, timeZone, labels, formatters, groups, groupCollapsed, defaultGroupCollapsed, onGroupCollapsedChange, hideResourceColumn, resourceColumnWidth, defaultResourceColumnWidth, onResourceColumnWidthChange, minResourceColumnWidth, maxResourceColumnWidth, rowHeight, defaultRowHeight, onRowHeightChange, minRowHeight, maxRowHeight, rowHeights, defaultRowHeights, onRowHeightsChange, autoRowHeight, enableLayoutResize, slotMinWidth, adaptiveSlotWidths, dayEventStyle, dayEventMaxWidth, monthEventStyle, monthEventMaxWidth, overflowHidden, dayTimeStepMinutes, enableEventTooltips, dayHeaderMode, daySlotCompression, columnVirtualization, dayRangeMode, workHours, maxLanesPerRow, now, renderResource, renderGroup, renderEvent, interactions, onRangeChange, onEventClick, onEventDoubleClick, onCreateEventClick, onCreateEvent, onEventMove, onEventResize, onEventDelete, onMoreClick, virtualization, className, ...rest }: CalendarTimelineProps<TResourceMeta, TEventMeta>): react_jsx_runtime.JSX.Element;
|
|
1470
1476
|
|
|
1471
1477
|
type ComboboxOption = string | {
|
|
1472
1478
|
label: string;
|
|
@@ -1918,6 +1924,8 @@ interface ListProps extends React$1.HTMLAttributes<HTMLUListElement> {
|
|
|
1918
1924
|
dense?: boolean;
|
|
1919
1925
|
/** Class name customization for all list items */
|
|
1920
1926
|
itemClassName?: string;
|
|
1927
|
+
/** Clip overflow on the outer list wrapper. Mainly relevant for striped/card-like variants. */
|
|
1928
|
+
overflowHidden?: boolean;
|
|
1921
1929
|
}
|
|
1922
1930
|
interface ListItemProps extends React$1.HTMLAttributes<HTMLLIElement> {
|
|
1923
1931
|
as?: "li" | "div" | "a" | "button";
|
|
@@ -2101,6 +2109,7 @@ interface MusicPlayerProps {
|
|
|
2101
2109
|
autoPlay?: boolean;
|
|
2102
2110
|
showPlaylist?: boolean;
|
|
2103
2111
|
className?: string;
|
|
2112
|
+
overflowHidden?: boolean;
|
|
2104
2113
|
}
|
|
2105
2114
|
declare const MusicPlayer: React__default.FC<MusicPlayerProps>;
|
|
2106
2115
|
|
|
@@ -2314,6 +2323,8 @@ interface DataTableProps<T> {
|
|
|
2314
2323
|
stickyHeader?: boolean;
|
|
2315
2324
|
/** Chiều cao tối đa của bảng khi bật stickyHeader (mặc định: 500px) */
|
|
2316
2325
|
maxHeight?: number | string;
|
|
2326
|
+
/** Clip overflow của outer wrapper. Tắt khi cần cho phép shadow/focus ring tràn ra ngoài. */
|
|
2327
|
+
overflowHidden?: boolean;
|
|
2317
2328
|
/** Enable OverlayScrollbars on table viewport. Default: false */
|
|
2318
2329
|
useOverlayScrollbar?: boolean;
|
|
2319
2330
|
/** Double-click leaf headers to auto-fit column width based on visible content. Default: true */
|
|
@@ -2321,7 +2332,7 @@ interface DataTableProps<T> {
|
|
|
2321
2332
|
labels?: DataTableLabels;
|
|
2322
2333
|
}
|
|
2323
2334
|
|
|
2324
|
-
declare function DataTable<T extends Record<string, any>>({ columns, data, rowKey, loading, total, page, pageSize, pageSizeOptions, onQueryChange, caption, toolbar, size, enableColumnVisibilityToggle, enableDensityToggle, enableHeaderAlignToggle, striped, columnDividers, className, storageKey, stickyHeader, maxHeight, useOverlayScrollbar, enableHeaderAutoFit, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
2335
|
+
declare function DataTable<T extends Record<string, any>>({ columns, data, rowKey, loading, total, page, pageSize, pageSizeOptions, onQueryChange, caption, toolbar, size, enableColumnVisibilityToggle, enableDensityToggle, enableHeaderAlignToggle, striped, columnDividers, className, storageKey, stickyHeader, maxHeight, overflowHidden, useOverlayScrollbar, enableHeaderAutoFit, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
2325
2336
|
|
|
2326
2337
|
interface TableProps extends React__default.HTMLAttributes<HTMLTableElement> {
|
|
2327
2338
|
containerClassName?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -448,6 +448,7 @@ interface Toast {
|
|
|
448
448
|
onClick: () => void;
|
|
449
449
|
};
|
|
450
450
|
dismissible?: boolean;
|
|
451
|
+
overflowHidden?: boolean;
|
|
451
452
|
}
|
|
452
453
|
interface ToastContextType {
|
|
453
454
|
addToast: (toast: Omit<Toast, "id">) => void;
|
|
@@ -542,8 +543,9 @@ interface AlertProps {
|
|
|
542
543
|
onClose?: () => void;
|
|
543
544
|
actions?: ReactNode;
|
|
544
545
|
closeAriaLabel?: string;
|
|
546
|
+
overflowHidden?: boolean;
|
|
545
547
|
}
|
|
546
|
-
declare const Alert: ({ title, description, variant, className, icon, dismissible, onClose, actions, closeAriaLabel }: AlertProps) => react_jsx_runtime.JSX.Element | null;
|
|
548
|
+
declare const Alert: ({ title, description, variant, className, icon, dismissible, onClose, actions, closeAriaLabel, overflowHidden, }: AlertProps) => react_jsx_runtime.JSX.Element | null;
|
|
547
549
|
|
|
548
550
|
interface GlobalLoadingProps {
|
|
549
551
|
className?: string;
|
|
@@ -765,6 +767,7 @@ interface ScrollAreaProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
765
767
|
contentClassName?: string;
|
|
766
768
|
variant?: "default" | "muted" | "primary" | "accent";
|
|
767
769
|
outlined?: boolean;
|
|
770
|
+
overflowHidden?: boolean;
|
|
768
771
|
useOverlayScrollbar?: boolean;
|
|
769
772
|
}
|
|
770
773
|
declare const ScrollArea: React$1.ForwardRefExoticComponent<ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -794,6 +797,7 @@ interface OverlayScrollAreaProps extends React__default.HTMLAttributes<HTMLDivEl
|
|
|
794
797
|
viewportClassName?: string;
|
|
795
798
|
viewportProps?: React__default.HTMLAttributes<HTMLDivElement>;
|
|
796
799
|
enabled?: boolean;
|
|
800
|
+
overflowHidden?: boolean;
|
|
797
801
|
overlayScrollbarOptions?: Omit<UseOverlayScrollbarTargetOptions, "enabled">;
|
|
798
802
|
}
|
|
799
803
|
declare const OverlayScrollArea: React__default.ForwardRefExoticComponent<OverlayScrollAreaProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
@@ -1376,6 +1380,8 @@ interface CalendarTimelineProps<TResourceMeta = unknown, TEventMeta = unknown> e
|
|
|
1376
1380
|
monthEventStyle?: "span" | "compact";
|
|
1377
1381
|
/** Month view only (when `monthEventStyle="compact"`): max visual width (px). */
|
|
1378
1382
|
monthEventMaxWidth?: number;
|
|
1383
|
+
/** Clip overflow at the outer surface. Disable when child hover shadows or focus rings should escape the timeline card. Default: true. */
|
|
1384
|
+
overflowHidden?: boolean;
|
|
1379
1385
|
dayTimeStepMinutes?: number;
|
|
1380
1386
|
/** Render tooltips on events (can be expensive for large datasets). Default: true. */
|
|
1381
1387
|
enableEventTooltips?: boolean;
|
|
@@ -1466,7 +1472,7 @@ interface CalendarTimelineProps<TResourceMeta = unknown, TEventMeta = unknown> e
|
|
|
1466
1472
|
virtualization?: CalendarTimelineVirtualization;
|
|
1467
1473
|
}
|
|
1468
1474
|
|
|
1469
|
-
declare function CalendarTimeline<TResourceMeta = unknown, TEventMeta = unknown>({ resources, events, size, enableEventSheet, eventSheetSize, eventSheetOverlayOpacity, renderEventSheet, selectedEventId, defaultSelectedEventId, onSelectedEventIdChange, eventSheetOpen, defaultEventSheetOpen, onEventSheetOpenChange, onlyView, view, defaultView, onViewChange, dueDateSprint, date, defaultDate, onDateChange, weekStartsOn, locale, timeZone, labels, formatters, groups, groupCollapsed, defaultGroupCollapsed, onGroupCollapsedChange, hideResourceColumn, resourceColumnWidth, defaultResourceColumnWidth, onResourceColumnWidthChange, minResourceColumnWidth, maxResourceColumnWidth, rowHeight, defaultRowHeight, onRowHeightChange, minRowHeight, maxRowHeight, rowHeights, defaultRowHeights, onRowHeightsChange, autoRowHeight, enableLayoutResize, slotMinWidth, adaptiveSlotWidths, dayEventStyle, dayEventMaxWidth, monthEventStyle, monthEventMaxWidth, dayTimeStepMinutes, enableEventTooltips, dayHeaderMode, daySlotCompression, columnVirtualization, dayRangeMode, workHours, maxLanesPerRow, now, renderResource, renderGroup, renderEvent, interactions, onRangeChange, onEventClick, onEventDoubleClick, onCreateEventClick, onCreateEvent, onEventMove, onEventResize, onEventDelete, onMoreClick, virtualization, className, ...rest }: CalendarTimelineProps<TResourceMeta, TEventMeta>): react_jsx_runtime.JSX.Element;
|
|
1475
|
+
declare function CalendarTimeline<TResourceMeta = unknown, TEventMeta = unknown>({ resources, events, size, enableEventSheet, eventSheetSize, eventSheetOverlayOpacity, renderEventSheet, selectedEventId, defaultSelectedEventId, onSelectedEventIdChange, eventSheetOpen, defaultEventSheetOpen, onEventSheetOpenChange, onlyView, view, defaultView, onViewChange, dueDateSprint, date, defaultDate, onDateChange, weekStartsOn, locale, timeZone, labels, formatters, groups, groupCollapsed, defaultGroupCollapsed, onGroupCollapsedChange, hideResourceColumn, resourceColumnWidth, defaultResourceColumnWidth, onResourceColumnWidthChange, minResourceColumnWidth, maxResourceColumnWidth, rowHeight, defaultRowHeight, onRowHeightChange, minRowHeight, maxRowHeight, rowHeights, defaultRowHeights, onRowHeightsChange, autoRowHeight, enableLayoutResize, slotMinWidth, adaptiveSlotWidths, dayEventStyle, dayEventMaxWidth, monthEventStyle, monthEventMaxWidth, overflowHidden, dayTimeStepMinutes, enableEventTooltips, dayHeaderMode, daySlotCompression, columnVirtualization, dayRangeMode, workHours, maxLanesPerRow, now, renderResource, renderGroup, renderEvent, interactions, onRangeChange, onEventClick, onEventDoubleClick, onCreateEventClick, onCreateEvent, onEventMove, onEventResize, onEventDelete, onMoreClick, virtualization, className, ...rest }: CalendarTimelineProps<TResourceMeta, TEventMeta>): react_jsx_runtime.JSX.Element;
|
|
1470
1476
|
|
|
1471
1477
|
type ComboboxOption = string | {
|
|
1472
1478
|
label: string;
|
|
@@ -1918,6 +1924,8 @@ interface ListProps extends React$1.HTMLAttributes<HTMLUListElement> {
|
|
|
1918
1924
|
dense?: boolean;
|
|
1919
1925
|
/** Class name customization for all list items */
|
|
1920
1926
|
itemClassName?: string;
|
|
1927
|
+
/** Clip overflow on the outer list wrapper. Mainly relevant for striped/card-like variants. */
|
|
1928
|
+
overflowHidden?: boolean;
|
|
1921
1929
|
}
|
|
1922
1930
|
interface ListItemProps extends React$1.HTMLAttributes<HTMLLIElement> {
|
|
1923
1931
|
as?: "li" | "div" | "a" | "button";
|
|
@@ -2101,6 +2109,7 @@ interface MusicPlayerProps {
|
|
|
2101
2109
|
autoPlay?: boolean;
|
|
2102
2110
|
showPlaylist?: boolean;
|
|
2103
2111
|
className?: string;
|
|
2112
|
+
overflowHidden?: boolean;
|
|
2104
2113
|
}
|
|
2105
2114
|
declare const MusicPlayer: React__default.FC<MusicPlayerProps>;
|
|
2106
2115
|
|
|
@@ -2314,6 +2323,8 @@ interface DataTableProps<T> {
|
|
|
2314
2323
|
stickyHeader?: boolean;
|
|
2315
2324
|
/** Chiều cao tối đa của bảng khi bật stickyHeader (mặc định: 500px) */
|
|
2316
2325
|
maxHeight?: number | string;
|
|
2326
|
+
/** Clip overflow của outer wrapper. Tắt khi cần cho phép shadow/focus ring tràn ra ngoài. */
|
|
2327
|
+
overflowHidden?: boolean;
|
|
2317
2328
|
/** Enable OverlayScrollbars on table viewport. Default: false */
|
|
2318
2329
|
useOverlayScrollbar?: boolean;
|
|
2319
2330
|
/** Double-click leaf headers to auto-fit column width based on visible content. Default: true */
|
|
@@ -2321,7 +2332,7 @@ interface DataTableProps<T> {
|
|
|
2321
2332
|
labels?: DataTableLabels;
|
|
2322
2333
|
}
|
|
2323
2334
|
|
|
2324
|
-
declare function DataTable<T extends Record<string, any>>({ columns, data, rowKey, loading, total, page, pageSize, pageSizeOptions, onQueryChange, caption, toolbar, size, enableColumnVisibilityToggle, enableDensityToggle, enableHeaderAlignToggle, striped, columnDividers, className, storageKey, stickyHeader, maxHeight, useOverlayScrollbar, enableHeaderAutoFit, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
2335
|
+
declare function DataTable<T extends Record<string, any>>({ columns, data, rowKey, loading, total, page, pageSize, pageSizeOptions, onQueryChange, caption, toolbar, size, enableColumnVisibilityToggle, enableDensityToggle, enableHeaderAlignToggle, striped, columnDividers, className, storageKey, stickyHeader, maxHeight, overflowHidden, useOverlayScrollbar, enableHeaderAutoFit, labels, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
2325
2336
|
|
|
2326
2337
|
interface TableProps extends React__default.HTMLAttributes<HTMLTableElement> {
|
|
2327
2338
|
containerClassName?: string;
|
package/dist/index.js
CHANGED
|
@@ -5308,9 +5308,10 @@ var ToastComponent = ({ toast, onRemove }) => {
|
|
|
5308
5308
|
"div",
|
|
5309
5309
|
{
|
|
5310
5310
|
className: cn(
|
|
5311
|
-
"relative w-80 rounded-xl border backdrop-blur-md transition-all duration-300 pointer-events-auto
|
|
5311
|
+
"relative w-80 rounded-xl border backdrop-blur-md transition-all duration-300 pointer-events-auto",
|
|
5312
5312
|
"bg-card shadow-xl",
|
|
5313
5313
|
"animate-in slide-in-from-right-full",
|
|
5314
|
+
toast.overflowHidden !== false && "overflow-hidden",
|
|
5314
5315
|
config.containerClassName,
|
|
5315
5316
|
isVisible ? "opacity-100 translate-x-0" : "opacity-0 translate-x-full"
|
|
5316
5317
|
),
|
|
@@ -6156,7 +6157,18 @@ var variantConfig = {
|
|
|
6156
6157
|
accentBarClassName: "bg-destructive"
|
|
6157
6158
|
}
|
|
6158
6159
|
};
|
|
6159
|
-
var Alert = ({
|
|
6160
|
+
var Alert = ({
|
|
6161
|
+
title,
|
|
6162
|
+
description,
|
|
6163
|
+
variant = "default",
|
|
6164
|
+
className,
|
|
6165
|
+
icon,
|
|
6166
|
+
dismissible = false,
|
|
6167
|
+
onClose,
|
|
6168
|
+
actions,
|
|
6169
|
+
closeAriaLabel,
|
|
6170
|
+
overflowHidden = true
|
|
6171
|
+
}) => {
|
|
6160
6172
|
const [open, setOpen] = useState12(true);
|
|
6161
6173
|
const t = useSmartTranslations("Common");
|
|
6162
6174
|
if (!open) return null;
|
|
@@ -6170,9 +6182,10 @@ var Alert = ({ title, description, variant = "default", className, icon, dismiss
|
|
|
6170
6182
|
"div",
|
|
6171
6183
|
{
|
|
6172
6184
|
className: cn(
|
|
6173
|
-
"relative w-full rounded-r-xl border border-l-0
|
|
6185
|
+
"relative w-full rounded-r-xl border border-l-0",
|
|
6174
6186
|
"flex items-start gap-3 p-4 pl-5",
|
|
6175
6187
|
"backdrop-blur-md",
|
|
6188
|
+
overflowHidden && "overflow-hidden",
|
|
6176
6189
|
config.containerClassName,
|
|
6177
6190
|
className
|
|
6178
6191
|
),
|
|
@@ -7749,19 +7762,23 @@ var variantClasses2 = {
|
|
|
7749
7762
|
accent: "bg-accent/10"
|
|
7750
7763
|
};
|
|
7751
7764
|
var ScrollArea = forwardRef6(
|
|
7752
|
-
({
|
|
7765
|
+
({
|
|
7766
|
+
className,
|
|
7767
|
+
contentClassName,
|
|
7768
|
+
children,
|
|
7769
|
+
variant = "default",
|
|
7770
|
+
outlined = false,
|
|
7771
|
+
overflowHidden = true,
|
|
7772
|
+
useOverlayScrollbar = false,
|
|
7773
|
+
...props
|
|
7774
|
+
}, ref) => {
|
|
7753
7775
|
const viewportRef = useRef11(null);
|
|
7754
7776
|
useOverlayScrollbarTarget(viewportRef, { enabled: useOverlayScrollbar });
|
|
7755
7777
|
return /* @__PURE__ */ jsx32(
|
|
7756
7778
|
"div",
|
|
7757
7779
|
{
|
|
7758
7780
|
ref,
|
|
7759
|
-
className: cn(
|
|
7760
|
-
"relative overflow-hidden rounded-2xl md:rounded-3xl",
|
|
7761
|
-
variantClasses2[variant],
|
|
7762
|
-
outlined && "border border-border/60",
|
|
7763
|
-
className
|
|
7764
|
-
),
|
|
7781
|
+
className: cn("relative", variantClasses2[variant], outlined && "border border-border/60", overflowHidden && "overflow-hidden", className),
|
|
7765
7782
|
...props,
|
|
7766
7783
|
children: /* @__PURE__ */ jsx32("div", { ref: viewportRef, className: cn("h-full w-full overflow-y-auto scroll-area-viewport", contentClassName), children })
|
|
7767
7784
|
}
|
|
@@ -7774,13 +7791,13 @@ ScrollArea.displayName = "ScrollArea";
|
|
|
7774
7791
|
import { forwardRef as forwardRef7, useRef as useRef12 } from "react";
|
|
7775
7792
|
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
7776
7793
|
var OverlayScrollArea = forwardRef7(
|
|
7777
|
-
({ className, viewportClassName, viewportProps, enabled = true, overlayScrollbarOptions, children, ...props }, ref) => {
|
|
7794
|
+
({ className, viewportClassName, viewportProps, enabled = true, overflowHidden = true, overlayScrollbarOptions, children, ...props }, ref) => {
|
|
7778
7795
|
const viewportRef = useRef12(null);
|
|
7779
7796
|
useOverlayScrollbarTarget(viewportRef, {
|
|
7780
7797
|
enabled,
|
|
7781
7798
|
...overlayScrollbarOptions
|
|
7782
7799
|
});
|
|
7783
|
-
return /* @__PURE__ */ jsx33("div", { ref, className: cn("relative overflow-hidden", className), ...props, children: /* @__PURE__ */ jsx33(
|
|
7800
|
+
return /* @__PURE__ */ jsx33("div", { ref, className: cn("relative", overflowHidden && "overflow-hidden", className), ...props, children: /* @__PURE__ */ jsx33(
|
|
7784
7801
|
"div",
|
|
7785
7802
|
{
|
|
7786
7803
|
ref: viewportRef,
|
|
@@ -13548,6 +13565,7 @@ function CalendarTimeline({
|
|
|
13548
13565
|
dayEventMaxWidth,
|
|
13549
13566
|
monthEventStyle = "span",
|
|
13550
13567
|
monthEventMaxWidth,
|
|
13568
|
+
overflowHidden = true,
|
|
13551
13569
|
dayTimeStepMinutes = 60,
|
|
13552
13570
|
enableEventTooltips = true,
|
|
13553
13571
|
dayHeaderMode = "full",
|
|
@@ -14610,9 +14628,10 @@ function CalendarTimeline({
|
|
|
14610
14628
|
"div",
|
|
14611
14629
|
{
|
|
14612
14630
|
className: cn(
|
|
14613
|
-
"rounded-2xl md:rounded-3xl
|
|
14631
|
+
"rounded-2xl md:rounded-3xl bg-card text-card-foreground backdrop-blur-sm",
|
|
14614
14632
|
"border border-border/50 shadow-sm md:hover:shadow-md",
|
|
14615
14633
|
"transition-[transform,box-shadow,border-color,background-color] duration-300 ease-soft",
|
|
14634
|
+
overflowHidden && "overflow-hidden",
|
|
14616
14635
|
densityClass,
|
|
14617
14636
|
className
|
|
14618
14637
|
),
|
|
@@ -18793,6 +18812,7 @@ var ListRoot = React46.forwardRef(
|
|
|
18793
18812
|
className,
|
|
18794
18813
|
itemClassName,
|
|
18795
18814
|
// New prop
|
|
18815
|
+
overflowHidden = true,
|
|
18796
18816
|
children,
|
|
18797
18817
|
...rest
|
|
18798
18818
|
}, ref) => {
|
|
@@ -18806,21 +18826,36 @@ var ListRoot = React46.forwardRef(
|
|
|
18806
18826
|
bordered: "border border-border/50 rounded-2xl md:rounded-3xl max-md:rounded-xl",
|
|
18807
18827
|
card: "rounded-2xl md:rounded-3xl bg-card shadow-md border border-border/50 max-md:rounded-xl max-md:shadow-sm",
|
|
18808
18828
|
flush: "",
|
|
18809
|
-
striped: "rounded-2xl md:rounded-3xl border border-border/50
|
|
18829
|
+
striped: "rounded-2xl md:rounded-3xl border border-border/50 max-md:rounded-xl"
|
|
18810
18830
|
};
|
|
18811
18831
|
if (loading2) {
|
|
18812
18832
|
return /* @__PURE__ */ jsx54(
|
|
18813
18833
|
Comp,
|
|
18814
18834
|
{
|
|
18815
18835
|
ref,
|
|
18816
|
-
className: cn(
|
|
18836
|
+
className: cn(
|
|
18837
|
+
"group/list",
|
|
18838
|
+
variantClasses3[variant],
|
|
18839
|
+
variant === "striped" && overflowHidden && "overflow-hidden",
|
|
18840
|
+
inset && "p-1.5 md:p-2 max-md:p-1",
|
|
18841
|
+
divided && "divide-y divide-border/60",
|
|
18842
|
+
className
|
|
18843
|
+
),
|
|
18817
18844
|
...rest,
|
|
18818
18845
|
children: Array.from({ length: loadingCount }).map((_, i) => /* @__PURE__ */ jsx54(ListItemSkeleton, { size }, i))
|
|
18819
18846
|
}
|
|
18820
18847
|
);
|
|
18821
18848
|
}
|
|
18822
18849
|
if (!hasChildren && emptyText) {
|
|
18823
|
-
return /* @__PURE__ */ jsx54(
|
|
18850
|
+
return /* @__PURE__ */ jsx54(
|
|
18851
|
+
Comp,
|
|
18852
|
+
{
|
|
18853
|
+
ref,
|
|
18854
|
+
className: cn("group/list", variantClasses3[variant], variant === "striped" && overflowHidden && "overflow-hidden", inset && "p-1.5 md:p-2 max-md:p-1", className),
|
|
18855
|
+
...rest,
|
|
18856
|
+
children: /* @__PURE__ */ jsx54("div", { className: "text-center py-8 text-muted-foreground text-sm", children: emptyText })
|
|
18857
|
+
}
|
|
18858
|
+
);
|
|
18824
18859
|
}
|
|
18825
18860
|
return /* @__PURE__ */ jsx54(
|
|
18826
18861
|
Comp,
|
|
@@ -18829,6 +18864,7 @@ var ListRoot = React46.forwardRef(
|
|
|
18829
18864
|
className: cn(
|
|
18830
18865
|
"group/list",
|
|
18831
18866
|
variantClasses3[variant],
|
|
18867
|
+
variant === "striped" && overflowHidden && "overflow-hidden",
|
|
18832
18868
|
inset && "p-1.5 md:p-2 max-md:p-1",
|
|
18833
18869
|
divided && "divide-y divide-border/60",
|
|
18834
18870
|
variant === "striped" && "[&>*:nth-child(even)]:bg-muted/30",
|
|
@@ -20159,7 +20195,8 @@ var MusicPlayer = ({
|
|
|
20159
20195
|
playlist = DEFAULT_PLAYLIST,
|
|
20160
20196
|
autoPlay = false,
|
|
20161
20197
|
showPlaylist: initialShowPlaylist = true,
|
|
20162
|
-
className = ""
|
|
20198
|
+
className = "",
|
|
20199
|
+
overflowHidden = true
|
|
20163
20200
|
}) => {
|
|
20164
20201
|
const [currentSongIndex, setCurrentSongIndex] = useState38(0);
|
|
20165
20202
|
const [isPlaying, setIsPlaying] = useState38(false);
|
|
@@ -20261,108 +20298,116 @@ var MusicPlayer = ({
|
|
|
20261
20298
|
}
|
|
20262
20299
|
}
|
|
20263
20300
|
}, [currentSongIndex, currentSong.startTime, isPlaying]);
|
|
20264
|
-
return /* @__PURE__ */ jsxs48(
|
|
20265
|
-
|
|
20266
|
-
|
|
20267
|
-
|
|
20268
|
-
|
|
20269
|
-
|
|
20270
|
-
|
|
20271
|
-
]
|
|
20272
|
-
|
|
20273
|
-
/* @__PURE__ */ jsx58(
|
|
20274
|
-
|
|
20275
|
-
{
|
|
20276
|
-
|
|
20277
|
-
|
|
20278
|
-
|
|
20279
|
-
|
|
20280
|
-
|
|
20281
|
-
|
|
20282
|
-
|
|
20283
|
-
|
|
20284
|
-
|
|
20285
|
-
|
|
20286
|
-
|
|
20287
|
-
|
|
20288
|
-
|
|
20289
|
-
|
|
20290
|
-
|
|
20291
|
-
|
|
20292
|
-
|
|
20293
|
-
|
|
20294
|
-
|
|
20295
|
-
|
|
20296
|
-
}
|
|
20297
|
-
|
|
20298
|
-
|
|
20299
|
-
|
|
20300
|
-
|
|
20301
|
-
|
|
20302
|
-
|
|
20303
|
-
|
|
20304
|
-
|
|
20305
|
-
|
|
20306
|
-
|
|
20307
|
-
|
|
20308
|
-
|
|
20309
|
-
|
|
20310
|
-
|
|
20311
|
-
|
|
20312
|
-
|
|
20313
|
-
|
|
20314
|
-
|
|
20315
|
-
|
|
20316
|
-
|
|
20317
|
-
|
|
20318
|
-
|
|
20319
|
-
|
|
20320
|
-
|
|
20321
|
-
|
|
20322
|
-
|
|
20323
|
-
|
|
20324
|
-
|
|
20325
|
-
|
|
20326
|
-
|
|
20327
|
-
|
|
20328
|
-
|
|
20329
|
-
|
|
20330
|
-
|
|
20331
|
-
|
|
20332
|
-
|
|
20333
|
-
|
|
20334
|
-
|
|
20335
|
-
|
|
20336
|
-
|
|
20337
|
-
|
|
20338
|
-
|
|
20339
|
-
|
|
20340
|
-
|
|
20341
|
-
|
|
20342
|
-
|
|
20343
|
-
|
|
20344
|
-
|
|
20345
|
-
|
|
20346
|
-
|
|
20347
|
-
|
|
20348
|
-
|
|
20349
|
-
|
|
20350
|
-
{
|
|
20351
|
-
|
|
20352
|
-
|
|
20353
|
-
|
|
20354
|
-
|
|
20355
|
-
|
|
20356
|
-
|
|
20357
|
-
|
|
20358
|
-
|
|
20359
|
-
|
|
20360
|
-
|
|
20361
|
-
|
|
20362
|
-
|
|
20363
|
-
|
|
20364
|
-
|
|
20365
|
-
|
|
20301
|
+
return /* @__PURE__ */ jsxs48(
|
|
20302
|
+
"div",
|
|
20303
|
+
{
|
|
20304
|
+
className: [
|
|
20305
|
+
"underverse-music-player bg-card dark:bg-card border border-border/50 rounded-2xl shadow-2xl",
|
|
20306
|
+
overflowHidden ? "overflow-hidden" : "",
|
|
20307
|
+
className
|
|
20308
|
+
].filter(Boolean).join(" "),
|
|
20309
|
+
children: [
|
|
20310
|
+
/* @__PURE__ */ jsx58("audio", { ref: audioRef, src: currentSong.audioUrl, onTimeUpdate: handleTimeUpdate, onLoadedMetadata: handleLoadedMetadata, onEnded: playNext }),
|
|
20311
|
+
/* @__PURE__ */ jsxs48("div", { className: "p-6", children: [
|
|
20312
|
+
/* @__PURE__ */ jsxs48("div", { className: "text-center mb-6", children: [
|
|
20313
|
+
/* @__PURE__ */ jsx58("div", { className: "w-48 h-48 mx-auto mb-4 bg-primary/10 dark:bg-primary/20 border border-primary/30 rounded-2xl shadow-lg flex items-center justify-center", children: /* @__PURE__ */ jsx58("div", { className: "text-6xl", children: "\u{1F3B5}" }) }),
|
|
20314
|
+
/* @__PURE__ */ jsx58("h2", { className: "text-2xl font-bold text-foreground mb-1", children: currentSong.title }),
|
|
20315
|
+
currentSong.artist && /* @__PURE__ */ jsx58("p", { className: "text-muted-foreground", children: currentSong.artist })
|
|
20316
|
+
] }),
|
|
20317
|
+
/* @__PURE__ */ jsxs48("div", { className: "mb-4", children: [
|
|
20318
|
+
/* @__PURE__ */ jsx58(
|
|
20319
|
+
"input",
|
|
20320
|
+
{
|
|
20321
|
+
type: "range",
|
|
20322
|
+
min: "0",
|
|
20323
|
+
max: duration || 0,
|
|
20324
|
+
value: currentTime,
|
|
20325
|
+
onChange: handleSeek,
|
|
20326
|
+
className: "w-full h-2 bg-muted rounded-lg appearance-none cursor-pointer slider"
|
|
20327
|
+
}
|
|
20328
|
+
),
|
|
20329
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex justify-between text-sm text-muted-foreground mt-1", children: [
|
|
20330
|
+
/* @__PURE__ */ jsx58("span", { children: formatTime3(currentTime) }),
|
|
20331
|
+
/* @__PURE__ */ jsx58("span", { children: formatTime3(duration) })
|
|
20332
|
+
] })
|
|
20333
|
+
] }),
|
|
20334
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-center gap-4 mb-6", children: [
|
|
20335
|
+
/* @__PURE__ */ jsx58(
|
|
20336
|
+
"button",
|
|
20337
|
+
{
|
|
20338
|
+
onClick: playPrevious,
|
|
20339
|
+
className: "w-12 h-12 flex items-center justify-center rounded-full bg-secondary hover:bg-secondary/80 transition-colors text-secondary-foreground",
|
|
20340
|
+
children: /* @__PURE__ */ jsx58(SkipBack, { size: 24 })
|
|
20341
|
+
}
|
|
20342
|
+
),
|
|
20343
|
+
/* @__PURE__ */ jsx58(
|
|
20344
|
+
"button",
|
|
20345
|
+
{
|
|
20346
|
+
onClick: togglePlay,
|
|
20347
|
+
className: "w-16 h-16 flex items-center justify-center rounded-full bg-primary hover:bg-primary/90 transition-colors text-primary-foreground shadow-lg",
|
|
20348
|
+
children: isPlaying ? /* @__PURE__ */ jsx58(Pause2, { size: 32 }) : /* @__PURE__ */ jsx58(Play2, { size: 32, className: "ml-1" })
|
|
20349
|
+
}
|
|
20350
|
+
),
|
|
20351
|
+
/* @__PURE__ */ jsx58(
|
|
20352
|
+
"button",
|
|
20353
|
+
{
|
|
20354
|
+
onClick: playNext,
|
|
20355
|
+
className: "w-12 h-12 flex items-center justify-center rounded-full bg-secondary hover:bg-secondary/80 transition-colors text-secondary-foreground",
|
|
20356
|
+
children: /* @__PURE__ */ jsx58(SkipForward, { size: 24 })
|
|
20357
|
+
}
|
|
20358
|
+
)
|
|
20359
|
+
] }),
|
|
20360
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-3 mb-4", children: [
|
|
20361
|
+
/* @__PURE__ */ jsx58("button", { onClick: toggleMute, className: "text-foreground hover:text-primary transition-colors", children: isMuted || volume === 0 ? /* @__PURE__ */ jsx58(VolumeX2, { size: 20 }) : /* @__PURE__ */ jsx58(Volume22, { size: 20 }) }),
|
|
20362
|
+
/* @__PURE__ */ jsx58(
|
|
20363
|
+
"input",
|
|
20364
|
+
{
|
|
20365
|
+
type: "range",
|
|
20366
|
+
min: "0",
|
|
20367
|
+
max: "1",
|
|
20368
|
+
step: "0.01",
|
|
20369
|
+
value: volume,
|
|
20370
|
+
onChange: handleVolumeChange,
|
|
20371
|
+
className: "flex-1 h-2 bg-muted rounded-lg appearance-none cursor-pointer"
|
|
20372
|
+
}
|
|
20373
|
+
)
|
|
20374
|
+
] }),
|
|
20375
|
+
/* @__PURE__ */ jsx58("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs48(
|
|
20376
|
+
"button",
|
|
20377
|
+
{
|
|
20378
|
+
onClick: () => setShowPlaylist(!showPlaylist),
|
|
20379
|
+
className: "flex items-center gap-2 px-4 py-2 bg-secondary hover:bg-secondary/80 rounded-lg text-secondary-foreground transition-colors",
|
|
20380
|
+
children: [
|
|
20381
|
+
showPlaylist ? /* @__PURE__ */ jsx58(X17, { size: 20 }) : /* @__PURE__ */ jsx58(List2, { size: 20 }),
|
|
20382
|
+
/* @__PURE__ */ jsx58("span", { children: showPlaylist ? "Hide Playlist" : "Show Playlist" })
|
|
20383
|
+
]
|
|
20384
|
+
}
|
|
20385
|
+
) })
|
|
20386
|
+
] }),
|
|
20387
|
+
showPlaylist && /* @__PURE__ */ jsx58("div", { className: "bg-muted/50 backdrop-blur-sm max-h-96 overflow-y-auto border-t border-border/50", children: /* @__PURE__ */ jsxs48("div", { className: "p-4", children: [
|
|
20388
|
+
/* @__PURE__ */ jsxs48("h3", { className: "text-lg font-semibold text-foreground mb-3", children: [
|
|
20389
|
+
"Playlist (",
|
|
20390
|
+
playlist.length,
|
|
20391
|
+
" songs)"
|
|
20392
|
+
] }),
|
|
20393
|
+
/* @__PURE__ */ jsx58("div", { className: "space-y-2", children: playlist.map((song, index) => /* @__PURE__ */ jsxs48(
|
|
20394
|
+
"div",
|
|
20395
|
+
{
|
|
20396
|
+
onClick: () => playSong(index),
|
|
20397
|
+
className: `flex items-center gap-3 p-3 rounded-lg cursor-pointer transition-all ${index === currentSongIndex ? "bg-primary/20 border border-primary shadow-lg" : "bg-secondary/30 hover:bg-secondary/50"}`,
|
|
20398
|
+
children: [
|
|
20399
|
+
/* @__PURE__ */ jsx58("div", { className: "shrink-0 w-8 h-8 flex items-center justify-center rounded-full bg-primary text-primary-foreground text-sm font-semibold", children: index === currentSongIndex && isPlaying ? "\u25B6" : index + 1 }),
|
|
20400
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex-1 min-w-0", children: [
|
|
20401
|
+
/* @__PURE__ */ jsx58("p", { className: "text-foreground font-medium truncate", children: song.title }),
|
|
20402
|
+
song.artist && /* @__PURE__ */ jsx58("p", { className: "text-muted-foreground text-sm truncate", children: song.artist })
|
|
20403
|
+
] }),
|
|
20404
|
+
/* @__PURE__ */ jsx58("div", { className: "text-muted-foreground text-sm shrink-0", children: song.duration })
|
|
20405
|
+
]
|
|
20406
|
+
},
|
|
20407
|
+
song.id
|
|
20408
|
+
)) })
|
|
20409
|
+
] }) }),
|
|
20410
|
+
/* @__PURE__ */ jsx58("style", { children: `
|
|
20366
20411
|
.underverse-music-player input[type="range"]::-webkit-slider-thumb {
|
|
20367
20412
|
-webkit-appearance: none;
|
|
20368
20413
|
appearance: none;
|
|
@@ -20388,7 +20433,9 @@ var MusicPlayer = ({
|
|
|
20388
20433
|
background: linear-gradient(to right, hsl(var(--primary)) var(--progress, 0%), hsl(var(--muted)) var(--progress, 0%));
|
|
20389
20434
|
}
|
|
20390
20435
|
` })
|
|
20391
|
-
|
|
20436
|
+
]
|
|
20437
|
+
}
|
|
20438
|
+
);
|
|
20392
20439
|
};
|
|
20393
20440
|
var MusicPlayer_default = MusicPlayer;
|
|
20394
20441
|
|
|
@@ -21923,6 +21970,7 @@ function DataTable({
|
|
|
21923
21970
|
storageKey,
|
|
21924
21971
|
stickyHeader = true,
|
|
21925
21972
|
maxHeight = 500,
|
|
21973
|
+
overflowHidden = true,
|
|
21926
21974
|
useOverlayScrollbar = false,
|
|
21927
21975
|
enableHeaderAutoFit = true,
|
|
21928
21976
|
labels
|
|
@@ -22056,7 +22104,8 @@ function DataTable({
|
|
|
22056
22104
|
"div",
|
|
22057
22105
|
{
|
|
22058
22106
|
className: cn(
|
|
22059
|
-
"relative rounded-2xl md:rounded-3xl border border-border/50 bg-card
|
|
22107
|
+
"relative rounded-2xl md:rounded-3xl border border-border/50 bg-card",
|
|
22108
|
+
overflowHidden && "overflow-hidden",
|
|
22060
22109
|
loading2 && "opacity-60 pointer-events-none"
|
|
22061
22110
|
),
|
|
22062
22111
|
children: /* @__PURE__ */ jsx67(
|