tembro 6.1.0 → 6.1.1
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/actions/action-menu.d.ts +11 -1
- package/dist/components/display/index.d.ts +0 -2
- package/dist/components/filters/index.d.ts +0 -1
- package/dist/components/inputs/time-picker.d.ts +11 -3
- package/dist/components/modern/file-manager.d.ts +1 -1
- package/dist/components/modern/index.d.ts +3 -1
- package/dist/components/modern/map.cjs +1 -0
- package/dist/components/modern/map.d.ts +29 -0
- package/dist/components/modern/map.js +1 -0
- package/dist/components/modern/media-player.cjs +1 -0
- package/dist/components/modern/media-player.d.ts +21 -0
- package/dist/components/modern/media-player.js +1 -0
- package/dist/components/modern/spreadsheet.cjs +1 -0
- package/dist/components/modern/spreadsheet.d.ts +35 -0
- package/dist/components/modern/spreadsheet.js +1 -0
- package/dist/components/overlay/drawer.d.ts +3 -1
- package/dist/index.d.ts +0 -2
- package/dist/src/components/actions/action-menu.cjs +1 -1
- package/dist/src/components/actions/action-menu.js +47 -39
- package/dist/src/components/actions/copy-button.cjs +1 -1
- package/dist/src/components/actions/copy-button.js +4 -1
- package/dist/src/components/calendar/date-picker.cjs +1 -1
- package/dist/src/components/calendar/date-picker.js +5 -8
- package/dist/src/components/calendar/date-range-picker.cjs +1 -1
- package/dist/src/components/calendar/date-range-picker.js +12 -27
- package/dist/src/components/data-table/data-table.cjs +1 -1
- package/dist/src/components/data-table/data-table.js +172 -171
- package/dist/src/components/display/index.cjs +1 -1
- package/dist/src/components/display/index.js +9 -11
- package/dist/src/components/filters/index.cjs +1 -1
- package/dist/src/components/filters/index.js +2 -3
- package/dist/src/components/inputs/color-picker.cjs +1 -1
- package/dist/src/components/inputs/color-picker.js +63 -46
- package/dist/src/components/inputs/slider.cjs +1 -1
- package/dist/src/components/inputs/slider.js +3 -3
- package/dist/src/components/inputs/tag-input.cjs +1 -1
- package/dist/src/components/inputs/tag-input.js +7 -4
- package/dist/src/components/inputs/time-picker.cjs +1 -1
- package/dist/src/components/inputs/time-picker.js +90 -34
- package/dist/src/components/modern/index.cjs +1 -1
- package/dist/src/components/modern/index.js +6 -4
- package/dist/src/components/modern/map.cjs +1 -0
- package/dist/src/components/modern/map.js +158 -0
- package/dist/src/components/modern/media-player.cjs +1 -0
- package/dist/src/components/modern/media-player.js +176 -0
- package/dist/src/components/modern/resizable-panel.cjs +1 -1
- package/dist/src/components/modern/resizable-panel.js +39 -32
- package/dist/src/components/modern/spreadsheet.cjs +1 -0
- package/dist/src/components/modern/spreadsheet.js +97 -0
- package/dist/src/components/navigation/pagination.cjs +1 -1
- package/dist/src/components/navigation/pagination.js +5 -5
- package/dist/src/components/notifications/toast.cjs +1 -1
- package/dist/src/components/notifications/toast.js +68 -63
- package/dist/src/components/overlay/alert-dialog.cjs +1 -1
- package/dist/src/components/overlay/alert-dialog.js +8 -6
- package/dist/src/components/overlay/drawer.cjs +1 -1
- package/dist/src/components/overlay/drawer.js +38 -20
- package/dist/src/components/ui/checkbox/index.cjs +1 -1
- package/dist/src/components/ui/checkbox/index.js +2 -1
- package/dist/src/components/ui/dialog/index.cjs +1 -1
- package/dist/src/components/ui/dialog/index.js +8 -8
- package/dist/src/components/ui/dropdown-menu/index.cjs +1 -1
- package/dist/src/components/ui/dropdown-menu/index.js +21 -19
- package/dist/src/components/ui/popover/index.cjs +1 -1
- package/dist/src/components/ui/popover/index.js +10 -10
- package/dist/src/components/ui/tabs/index.cjs +1 -1
- package/dist/src/components/ui/tabs/index.js +6 -6
- package/dist/src/components/ui/toggle-group/index.cjs +1 -1
- package/dist/src/components/ui/toggle-group/index.js +2 -2
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +80 -83
- package/dist/src/public-component-surface.cjs +1 -1
- package/dist/src/public-component-surface.js +15 -20
- package/package.json +1 -2
- package/packages/cli/dist/index.cjs +58 -178
- package/packages/cli/vendor/src/components/actions/action-menu.tsx +47 -19
- package/packages/cli/vendor/src/components/actions/copy-button.tsx +2 -2
- package/packages/cli/vendor/src/components/calendar/date-picker.tsx +2 -5
- package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +5 -12
- package/packages/cli/vendor/src/components/data-table/data-table.tsx +45 -34
- package/packages/cli/vendor/src/components/display/index.ts +3 -5
- package/packages/cli/vendor/src/components/filters/index.ts +0 -1
- package/packages/cli/vendor/src/components/inputs/color-picker.tsx +15 -1
- package/packages/cli/vendor/src/components/inputs/slider.tsx +3 -3
- package/packages/cli/vendor/src/components/inputs/tag-input.tsx +4 -4
- package/packages/cli/vendor/src/components/inputs/time-picker.tsx +91 -38
- package/packages/cli/vendor/src/components/modern/file-manager.tsx +1 -1
- package/packages/cli/vendor/src/components/modern/index.ts +3 -1
- package/packages/cli/vendor/src/components/modern/map.tsx +146 -0
- package/packages/cli/vendor/src/components/modern/media-player.tsx +182 -0
- package/packages/cli/vendor/src/components/modern/resizable-panel.tsx +15 -5
- package/packages/cli/vendor/src/components/modern/spreadsheet.tsx +155 -0
- package/packages/cli/vendor/src/components/navigation/pagination.tsx +9 -5
- package/packages/cli/vendor/src/components/notifications/toast.tsx +20 -10
- package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +3 -5
- package/packages/cli/vendor/src/components/overlay/drawer.tsx +22 -11
- package/packages/cli/vendor/src/components/ui/checkbox/index.tsx +3 -1
- package/packages/cli/vendor/src/components/ui/dialog/index.tsx +4 -4
- package/packages/cli/vendor/src/components/ui/dropdown-menu/index.tsx +18 -22
- package/packages/cli/vendor/src/components/ui/popover/index.tsx +4 -4
- package/packages/cli/vendor/src/components/ui/tabs/index.tsx +8 -3
- package/packages/cli/vendor/src/components/ui/toggle-group/index.tsx +6 -6
- package/packages/cli/vendor/src/index.ts +0 -2
- package/packages/cli/vendor/src/public-component-surface.ts +3 -4
- package/packages/cli/vendor/templates/showcase/src/showcase/data/registry.ts +6 -6
- package/packages/cli/vendor/templates/showcase/src/showcase/layout/HeroSection.tsx +23 -8
- package/packages/cli/vendor/templates/showcase/src/showcase/layout/WorkbenchSidebar.tsx +1 -1
- package/packages/cli/vendor/templates/showcase/src/showcase/sections/PatternsSection.tsx +1 -1
- package/packages/cli/vendor/templates/styles/globals.css +0 -120
- package/registry.json +74 -141
- package/dist/components/display/info-card.cjs +0 -1
- package/dist/components/display/info-card.d.ts +0 -51
- package/dist/components/display/info-card.js +0 -1
- package/dist/components/display/statistic.cjs +0 -1
- package/dist/components/display/statistic.d.ts +0 -25
- package/dist/components/display/statistic.js +0 -1
- package/dist/components/filters/filter-bar.cjs +0 -1
- package/dist/components/filters/filter-bar.d.ts +0 -28
- package/dist/components/filters/filter-bar.js +0 -1
- package/dist/components/modern/image-cropper.cjs +0 -1
- package/dist/components/modern/image-cropper.d.ts +0 -39
- package/dist/components/modern/image-cropper.js +0 -1
- package/dist/components/ui/number-field/index.cjs +0 -1
- package/dist/components/ui/number-field/index.d.ts +0 -18
- package/dist/components/ui/number-field/index.js +0 -1
- package/dist/components/ui/toolbar/index.cjs +0 -1
- package/dist/components/ui/toolbar/index.d.ts +0 -14
- package/dist/components/ui/toolbar/index.js +0 -1
- package/dist/src/components/display/info-card.cjs +0 -1
- package/dist/src/components/display/info-card.js +0 -124
- package/dist/src/components/display/statistic.cjs +0 -1
- package/dist/src/components/display/statistic.js +0 -104
- package/dist/src/components/filters/filter-bar.cjs +0 -1
- package/dist/src/components/filters/filter-bar.js +0 -103
- package/dist/src/components/modern/image-cropper.cjs +0 -1
- package/dist/src/components/modern/image-cropper.js +0 -143
- package/dist/src/components/ui/number-field/index.cjs +0 -1
- package/dist/src/components/ui/number-field/index.js +0 -73
- package/dist/src/components/ui/toolbar/index.cjs +0 -1
- package/dist/src/components/ui/toolbar/index.js +0 -50
- package/packages/cli/vendor/src/components/display/info-card.tsx +0 -195
- package/packages/cli/vendor/src/components/display/statistic.tsx +0 -114
- package/packages/cli/vendor/src/components/filters/filter-bar.tsx +0 -163
- package/packages/cli/vendor/src/components/modern/image-cropper.tsx +0 -226
- package/packages/cli/vendor/src/components/ui/number-field/index.tsx +0 -89
- package/packages/cli/vendor/src/components/ui/toolbar/index.tsx +0 -67
|
@@ -16,7 +16,11 @@ export type ActionMenuItem = {
|
|
|
16
16
|
};
|
|
17
17
|
export type ActionMenuProps = {
|
|
18
18
|
actions: ActionMenuItem[];
|
|
19
|
+
open?: boolean;
|
|
20
|
+
defaultOpen?: boolean;
|
|
21
|
+
onOpenChange?: (open: boolean) => void;
|
|
19
22
|
label?: React.ReactNode;
|
|
23
|
+
triggerLabel?: string;
|
|
20
24
|
trigger?: React.ReactElement;
|
|
21
25
|
align?: "start" | "center" | "end";
|
|
22
26
|
side?: "top" | "right" | "bottom" | "left";
|
|
@@ -33,6 +37,12 @@ export type ActionMenuProps = {
|
|
|
33
37
|
menuWidth?: number | string;
|
|
34
38
|
loadingLabel?: React.ReactNode;
|
|
35
39
|
persistIconSpace?: boolean;
|
|
40
|
+
itemRoleDescription?: string;
|
|
41
|
+
renderItem?: (action: ActionMenuItem, state: {
|
|
42
|
+
loading: boolean;
|
|
43
|
+
close: () => void;
|
|
44
|
+
}) => React.ReactNode;
|
|
45
|
+
onActionError?: (error: unknown, action: ActionMenuItem) => void;
|
|
36
46
|
};
|
|
37
|
-
declare function ActionMenu({ actions, label, trigger, align, side, sideOffset, disabled, triggerVariant, triggerSize, showChevron, closeOnSelect, contentClassName, triggerClassName, itemClassName, emptyLabel, menuWidth, loadingLabel, persistIconSpace, }: ActionMenuProps): React.JSX.Element;
|
|
47
|
+
declare function ActionMenu({ actions, open: openProp, defaultOpen, onOpenChange, label, triggerLabel, trigger, align, side, sideOffset, disabled, triggerVariant, triggerSize, showChevron, closeOnSelect, contentClassName, triggerClassName, itemClassName, emptyLabel, menuWidth, loadingLabel, persistIconSpace, itemRoleDescription, renderItem, onActionError, }: ActionMenuProps): React.JSX.Element;
|
|
38
48
|
export { ActionMenu };
|
|
@@ -6,12 +6,10 @@ export * from "./code-block";
|
|
|
6
6
|
export * from "./data-state";
|
|
7
7
|
export * from "./list";
|
|
8
8
|
export * from "./progress";
|
|
9
|
-
export * from "./statistic";
|
|
10
9
|
export * from "./status-dot";
|
|
11
10
|
export * from "./status-legend";
|
|
12
11
|
export * from "./timeline";
|
|
13
12
|
export * from "./tree-view";
|
|
14
|
-
export * from "./info-card";
|
|
15
13
|
export * from "./virtual-list";
|
|
16
14
|
export * from "./qr-code";
|
|
17
15
|
export * from "./carousel";
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
export type TimePickerProps = Omit<React.ComponentProps<"input">, "type"> & {
|
|
3
3
|
label?: React.ReactNode;
|
|
4
|
+
clearable?: boolean;
|
|
5
|
+
onClear?: () => void;
|
|
4
6
|
};
|
|
5
7
|
export type DateTimePickerProps = Omit<React.ComponentProps<"input">, "type"> & {
|
|
6
8
|
label?: React.ReactNode;
|
|
9
|
+
clearable?: boolean;
|
|
10
|
+
onClear?: () => void;
|
|
7
11
|
};
|
|
8
12
|
export type TimeRangePickerProps = React.ComponentProps<"div"> & {
|
|
9
13
|
from?: string;
|
|
@@ -11,8 +15,12 @@ export type TimeRangePickerProps = React.ComponentProps<"div"> & {
|
|
|
11
15
|
onFromChange?: (value: string) => void;
|
|
12
16
|
onToChange?: (value: string) => void;
|
|
13
17
|
disabled?: boolean;
|
|
18
|
+
labels?: {
|
|
19
|
+
from?: React.ReactNode;
|
|
20
|
+
to?: React.ReactNode;
|
|
21
|
+
};
|
|
14
22
|
};
|
|
15
|
-
declare function TimePicker({ label, className, ...props }: TimePickerProps): React.JSX.Element;
|
|
16
|
-
declare function DateTimePicker({ label, className, ...props }: DateTimePickerProps): React.JSX.Element;
|
|
17
|
-
declare function TimeRangePicker({ from, to, onFromChange, onToChange, disabled, className, ...props }: TimeRangePickerProps): React.JSX.Element;
|
|
23
|
+
declare function TimePicker({ label, className, clearable, onClear, value, defaultValue, disabled, onChange, ...props }: TimePickerProps): React.JSX.Element;
|
|
24
|
+
declare function DateTimePicker({ label, className, clearable, onClear, value, defaultValue, disabled, onChange, ...props }: DateTimePickerProps): React.JSX.Element;
|
|
25
|
+
declare function TimeRangePicker({ from, to, onFromChange, onToChange, disabled, labels, className, ...props }: TimeRangePickerProps): React.JSX.Element;
|
|
18
26
|
export { DateTimePicker, TimePicker, TimeRangePicker };
|
|
@@ -7,7 +7,7 @@ export type FileManagerItem = {
|
|
|
7
7
|
owner?: React.ReactNode;
|
|
8
8
|
status?: React.ReactNode;
|
|
9
9
|
};
|
|
10
|
-
export type FileManagerProps = React.ComponentProps<"div"> & {
|
|
10
|
+
export type FileManagerProps = Omit<React.ComponentProps<"div">, "onSelect"> & {
|
|
11
11
|
items: FileManagerItem[];
|
|
12
12
|
selectedId?: string;
|
|
13
13
|
onSelect?: (item: FileManagerItem) => void;
|
|
@@ -2,5 +2,7 @@ export * from "./calendar-scheduler";
|
|
|
2
2
|
export * from "./dual-list-picker";
|
|
3
3
|
export * from "./resizable-panel";
|
|
4
4
|
export * from "./rich-text-editor";
|
|
5
|
-
export * from "./image-cropper";
|
|
6
5
|
export * from "./file-manager";
|
|
6
|
+
export * from "./map";
|
|
7
|
+
export * from "./media-player";
|
|
8
|
+
export * from "./spreadsheet";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("../../src/components/modern/map.cjs")
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type MapMarker = {
|
|
3
|
+
key: string;
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
latitude: number;
|
|
6
|
+
longitude: number;
|
|
7
|
+
description?: React.ReactNode;
|
|
8
|
+
tone?: "neutral" | "info" | "success" | "warning" | "danger" | "muted";
|
|
9
|
+
};
|
|
10
|
+
export type MapViewProps = React.ComponentProps<"section"> & {
|
|
11
|
+
center?: {
|
|
12
|
+
latitude: number;
|
|
13
|
+
longitude: number;
|
|
14
|
+
};
|
|
15
|
+
zoom?: number;
|
|
16
|
+
markers?: MapMarker[];
|
|
17
|
+
title?: React.ReactNode;
|
|
18
|
+
description?: React.ReactNode;
|
|
19
|
+
height?: number | string;
|
|
20
|
+
showMarkerList?: boolean;
|
|
21
|
+
showControls?: boolean;
|
|
22
|
+
iframeTitle?: string;
|
|
23
|
+
mapUrl?: string;
|
|
24
|
+
onMarkerSelect?: (marker: MapMarker) => void;
|
|
25
|
+
selectedMarkerKey?: string;
|
|
26
|
+
defaultSelectedMarkerKey?: string;
|
|
27
|
+
};
|
|
28
|
+
declare function MapView({ center, zoom, markers, title, description, height, showMarkerList, showControls, iframeTitle, mapUrl, onMarkerSelect, selectedMarkerKey, defaultSelectedMarkerKey, className, ...props }: MapViewProps): React.JSX.Element;
|
|
29
|
+
export { MapView };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../src/components/modern/map.js"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("../../src/components/modern/media-player.cjs")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type MediaTrack = {
|
|
3
|
+
src: string;
|
|
4
|
+
kind?: React.TrackHTMLAttributes<HTMLTrackElement>["kind"];
|
|
5
|
+
srcLang?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
default?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type MediaPlayerProps = Omit<React.ComponentProps<"video">, "controls" | "children" | "onTimeUpdate" | "onVolumeChange"> & {
|
|
10
|
+
src: string;
|
|
11
|
+
title?: React.ReactNode;
|
|
12
|
+
description?: React.ReactNode;
|
|
13
|
+
tracks?: MediaTrack[];
|
|
14
|
+
actions?: React.ReactNode;
|
|
15
|
+
aspectRatio?: "video" | "square" | "wide" | string;
|
|
16
|
+
showMeta?: boolean;
|
|
17
|
+
onTimeChange?: (time: number, duration: number) => void;
|
|
18
|
+
onVolumeValueChange?: (volume: number, muted: boolean) => void;
|
|
19
|
+
};
|
|
20
|
+
declare function MediaPlayer({ src, title, description, tracks, actions, aspectRatio, showMeta, poster, autoPlay, muted: mutedProp, loop, playsInline, preload, onTimeChange, onVolumeValueChange, className, ...props }: MediaPlayerProps): React.JSX.Element;
|
|
21
|
+
export { MediaPlayer };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../src/components/modern/media-player.js"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("../../src/components/modern/spreadsheet.cjs")
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type SpreadsheetColumn = {
|
|
3
|
+
key: string;
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
width?: number | string;
|
|
6
|
+
align?: "left" | "center" | "right";
|
|
7
|
+
readOnly?: boolean;
|
|
8
|
+
formatter?: (value: string, row: SpreadsheetRow) => React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export type SpreadsheetRow = {
|
|
11
|
+
key: string;
|
|
12
|
+
cells: Record<string, string>;
|
|
13
|
+
readOnly?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type SpreadsheetSelection = {
|
|
16
|
+
rowKey: string;
|
|
17
|
+
columnKey: string;
|
|
18
|
+
};
|
|
19
|
+
export type SpreadsheetProps = Omit<React.ComponentProps<"div">, "onChange"> & {
|
|
20
|
+
columns: SpreadsheetColumn[];
|
|
21
|
+
rows?: SpreadsheetRow[];
|
|
22
|
+
defaultRows?: SpreadsheetRow[];
|
|
23
|
+
onRowsChange?: (rows: SpreadsheetRow[], selection?: SpreadsheetSelection) => void;
|
|
24
|
+
onCellChange?: (value: string, selection: SpreadsheetSelection, rows: SpreadsheetRow[]) => void;
|
|
25
|
+
selectedCell?: SpreadsheetSelection;
|
|
26
|
+
defaultSelectedCell?: SpreadsheetSelection;
|
|
27
|
+
onSelectedCellChange?: (selection: SpreadsheetSelection) => void;
|
|
28
|
+
readOnly?: boolean;
|
|
29
|
+
showRowNumbers?: boolean;
|
|
30
|
+
showAddRow?: boolean;
|
|
31
|
+
addRowLabel?: React.ReactNode;
|
|
32
|
+
empty?: React.ReactNode;
|
|
33
|
+
};
|
|
34
|
+
declare function Spreadsheet({ columns, rows: rowsProp, defaultRows, onRowsChange, onCellChange, selectedCell, defaultSelectedCell, onSelectedCellChange, readOnly, showRowNumbers, showAddRow, addRowLabel, empty, className, ...props }: SpreadsheetProps): React.JSX.Element;
|
|
35
|
+
export { Spreadsheet };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../src/components/modern/spreadsheet.js"
|
|
@@ -3,12 +3,14 @@ import { Button } from "@/components/ui/button";
|
|
|
3
3
|
import { Dialog } from "@/components/ui/dialog";
|
|
4
4
|
export type DrawerSide = "left" | "right" | "top" | "bottom";
|
|
5
5
|
export type DrawerWidth = "sm" | "md" | "lg" | "xl" | "full";
|
|
6
|
+
export type DrawerDensity = "compact" | "default" | "comfortable";
|
|
6
7
|
export type DrawerProps = Omit<React.ComponentProps<typeof Dialog>, "children"> & {
|
|
7
8
|
trigger?: React.ReactNode;
|
|
8
9
|
title?: React.ReactNode;
|
|
9
10
|
description?: React.ReactNode;
|
|
10
11
|
side?: DrawerSide;
|
|
11
12
|
width?: DrawerWidth;
|
|
13
|
+
density?: DrawerDensity;
|
|
12
14
|
footer?: React.ReactNode;
|
|
13
15
|
headerClassName?: string;
|
|
14
16
|
bodyClassName?: string;
|
|
@@ -17,6 +19,6 @@ export type DrawerProps = Omit<React.ComponentProps<typeof Dialog>, "children">
|
|
|
17
19
|
showCloseButton?: boolean;
|
|
18
20
|
children?: React.ReactNode;
|
|
19
21
|
};
|
|
20
|
-
declare function Drawer({ trigger, title, description, side, width, footer, headerClassName, bodyClassName, footerClassName, contentClassName, showCloseButton, children, ...props }: DrawerProps): React.JSX.Element;
|
|
22
|
+
declare function Drawer({ trigger, title, description, side, width, density, footer, headerClassName, bodyClassName, footerClassName, contentClassName, showCloseButton, children, ...props }: DrawerProps): React.JSX.Element;
|
|
21
23
|
declare function DrawerCloseButton({ children, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
22
24
|
export { Drawer, DrawerCloseButton };
|
package/dist/index.d.ts
CHANGED
|
@@ -26,9 +26,7 @@ export * from './components/ui/kbd';
|
|
|
26
26
|
export * from './components/ui/radio-group';
|
|
27
27
|
export * from './components/ui/scroll-box';
|
|
28
28
|
export * from './components/ui/right-click-menu';
|
|
29
|
-
export * from './components/ui/number-field';
|
|
30
29
|
export * from './components/ui/toggle-group';
|
|
31
|
-
export * from './components/ui/toolbar';
|
|
32
30
|
export * from './components/actions/public';
|
|
33
31
|
export * from './components/layout/public';
|
|
34
32
|
export * from './components/navigation';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("../ui/dropdown-menu/index.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s({actions:e,
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("../ui/dropdown-menu/index.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");function s({actions:e,open:s,defaultOpen:c=!1,onOpenChange:l,label:u,triggerLabel:d=`Open actions`,trigger:f,align:p=`end`,side:m=`bottom`,sideOffset:h=4,disabled:g=!1,triggerVariant:_=`ghost`,triggerSize:v=`icon-sm`,showChevron:y=!1,closeOnSelect:b=!0,contentClassName:x,triggerClassName:S,itemClassName:C,emptyLabel:w=`No actions`,menuWidth:T,loadingLabel:E=`Working...`,persistIconSpace:D=!0,itemRoleDescription:O,renderItem:k,onActionError:A}){let j=e.filter(e=>!e.hidden),[M,N]=i.useState(null),[P,F]=i.useState(c),I=s??P,L=i.useRef(null),R=i.useCallback(e=>{s===void 0&&F(e),l?.(e)},[l,s]),z=async e=>{if(!(e.disabled||e.loading||M))try{N(e.key),await e.onSelect?.(),b&&!e.keepOpen&&R(!1)}catch(t){if(A?.(t,e),!A)throw t}finally{N(null)}},B=e=>{L.current!==e.key&&(L.current=e.key,queueMicrotask(()=>{L.current===e.key&&(L.current=null)}),z(e))};return(0,o.jsxs)(r.DropdownMenu,{open:I,onOpenChange:R,children:[(0,o.jsxs)(r.DropdownMenuTrigger,{render:f??(0,o.jsx)(n.Button,{type:`button`,variant:_,size:v,disabled:g,className:t.cn(`rounded-full border border-transparent text-muted-foreground shadow-none transition-[background-color,border-color,color,box-shadow] hover:border-border/70 hover:bg-accent hover:text-foreground focus-visible:border-[color:var(--aui-focus-ring,var(--ring))] focus-visible:shadow-[0_0_0_3px_var(--aui-focus-ring-soft,transparent)]`,S),onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation}),children:[!f&&(0,o.jsx)(a.MoreHorizontalIcon,{}),!f&&y&&(0,o.jsx)(`span`,{className:`text-[10px] font-medium uppercase tracking-[0.18em]`,children:`Menu`}),(0,o.jsx)(`span`,{className:`sr-only`,children:d})]}),(0,o.jsxs)(r.DropdownMenuContent,{align:p,side:m,sideOffset:h,className:t.cn(`min-w-48 rounded-[var(--aui-card-radius,var(--radius-lg))]`,x),style:T?{width:typeof T==`number`?`${T}px`:T}:void 0,children:[u&&(0,o.jsx)(r.DropdownMenuLabel,{children:u}),u&&j.length>0&&(0,o.jsx)(r.DropdownMenuSeparator,{}),j.length===0&&(0,o.jsx)(r.DropdownMenuItem,{disabled:!0,children:w}),j.map((e,n)=>{let s=e.loading||M===e.key,c=n>0?j[n-1]?.section:void 0,l=!!(e.section&&e.section!==c);return(0,o.jsxs)(i.Fragment,{children:[l?(0,o.jsxs)(o.Fragment,{children:[n>0?(0,o.jsx)(r.DropdownMenuSeparator,{}):null,(0,o.jsx)(r.DropdownMenuLabel,{children:e.section})]}):null,(0,o.jsx)(r.DropdownMenuItem,{disabled:e.disabled||s,variant:e.destructive?`destructive`:`default`,closeOnSelect:b&&!e.keepOpen,"aria-roledescription":O,className:t.cn(`min-h-11 items-start gap-3 rounded-[calc(var(--radius-md)+1px)] border border-transparent py-2.5 transition-[background-color,color,border-color,box-shadow] data-[highlighted]:shadow-[inset_0_0_0_1px_color-mix(in_oklch,var(--primary),transparent_76%)] data-[disabled]:opacity-45`,C),onSelect:n=>{(e.keepOpen||!b)&&n.preventDefault(),t.stopInteractivePropagation(n),B(e)},onClick:n=>{t.stopInteractivePropagation(n),B(e)},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,children:k?.(e,{loading:s,close:()=>R(!1)})??(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`span`,{className:t.cn(`mt-0.5 flex size-5 shrink-0 items-center justify-center text-muted-foreground`,!D&&!s&&!e.icon&&`hidden`),children:s?(0,o.jsx)(a.Loader2Icon,{className:`size-4 animate-spin`}):e.icon}),(0,o.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,o.jsx)(`span`,{className:`block truncate`,children:e.label}),e.description?(0,o.jsx)(r.DropdownMenuItemDescription,{className:`mt-0.5 truncate`,children:s?E:e.description}):null]}),e.shortcut&&(0,o.jsx)(r.DropdownMenuShortcut,{children:e.shortcut})]})})]},e.key)})]})]})}exports.ActionMenu=s;
|
|
@@ -6,73 +6,81 @@ import * as d from "react";
|
|
|
6
6
|
import { Loader2Icon as f, MoreHorizontalIcon as p } from "lucide-react";
|
|
7
7
|
import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/actions/action-menu.tsx
|
|
9
|
-
function _({ actions: _,
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
function _({ actions: _, open: v, defaultOpen: y = !1, onOpenChange: b, label: x, triggerLabel: S = "Open actions", trigger: C, align: w = "end", side: T = "bottom", sideOffset: E = 4, disabled: D = !1, triggerVariant: O = "ghost", triggerSize: k = "icon-sm", showChevron: A = !1, closeOnSelect: j = !0, contentClassName: M, triggerClassName: N, itemClassName: P, emptyLabel: F = "No actions", menuWidth: I, loadingLabel: L = "Working...", persistIconSpace: R = !0, itemRoleDescription: z, renderItem: B, onActionError: V }) {
|
|
10
|
+
let H = _.filter((e) => !e.hidden), [U, W] = d.useState(null), [G, K] = d.useState(y), q = v ?? G, J = d.useRef(null), Y = d.useCallback((e) => {
|
|
11
|
+
v === void 0 && K(e), b?.(e);
|
|
12
|
+
}, [b, v]), X = async (e) => {
|
|
13
|
+
if (!(e.disabled || e.loading || U)) try {
|
|
14
|
+
W(e.key), await e.onSelect?.(), j && !e.keepOpen && Y(!1);
|
|
15
|
+
} catch (t) {
|
|
16
|
+
if (V?.(t, e), !V) throw t;
|
|
13
17
|
} finally {
|
|
14
|
-
|
|
18
|
+
W(null);
|
|
15
19
|
}
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}),
|
|
20
|
+
}, Z = (e) => {
|
|
21
|
+
J.current !== e.key && (J.current = e.key, queueMicrotask(() => {
|
|
22
|
+
J.current === e.key && (J.current = null);
|
|
23
|
+
}), X(e));
|
|
20
24
|
};
|
|
21
25
|
return /* @__PURE__ */ g(r, {
|
|
22
|
-
open:
|
|
23
|
-
onOpenChange:
|
|
26
|
+
open: q,
|
|
27
|
+
onOpenChange: Y,
|
|
24
28
|
children: [/* @__PURE__ */ g(u, {
|
|
25
|
-
render:
|
|
29
|
+
render: C ?? /* @__PURE__ */ h(n, {
|
|
26
30
|
type: "button",
|
|
27
|
-
variant:
|
|
28
|
-
size:
|
|
29
|
-
disabled:
|
|
30
|
-
className: e("rounded-full border border-transparent text-muted-foreground shadow-none transition-[background-color,border-color,color,box-shadow] hover:border-border/70 hover:bg-accent hover:text-foreground focus-visible:border-[color:var(--aui-focus-ring,var(--ring))] focus-visible:shadow-[0_0_0_3px_var(--aui-focus-ring-soft,transparent)]",
|
|
31
|
+
variant: O,
|
|
32
|
+
size: k,
|
|
33
|
+
disabled: D,
|
|
34
|
+
className: e("rounded-full border border-transparent text-muted-foreground shadow-none transition-[background-color,border-color,color,box-shadow] hover:border-border/70 hover:bg-accent hover:text-foreground focus-visible:border-[color:var(--aui-focus-ring,var(--ring))] focus-visible:shadow-[0_0_0_3px_var(--aui-focus-ring-soft,transparent)]", N),
|
|
31
35
|
onMouseDown: t,
|
|
32
36
|
onDoubleClick: t
|
|
33
37
|
}),
|
|
34
38
|
children: [
|
|
35
|
-
!
|
|
36
|
-
!
|
|
39
|
+
!C && /* @__PURE__ */ h(p, {}),
|
|
40
|
+
!C && A && /* @__PURE__ */ h("span", {
|
|
37
41
|
className: "text-[10px] font-medium uppercase tracking-[0.18em]",
|
|
38
42
|
children: "Menu"
|
|
39
43
|
}),
|
|
40
44
|
/* @__PURE__ */ h("span", {
|
|
41
45
|
className: "sr-only",
|
|
42
|
-
children:
|
|
46
|
+
children: S
|
|
43
47
|
})
|
|
44
48
|
]
|
|
45
49
|
}), /* @__PURE__ */ g(i, {
|
|
46
|
-
align:
|
|
47
|
-
side:
|
|
48
|
-
sideOffset:
|
|
49
|
-
className: e("min-w-48 rounded-[var(--aui-card-radius,var(--radius-lg))]",
|
|
50
|
-
style:
|
|
50
|
+
align: w,
|
|
51
|
+
side: T,
|
|
52
|
+
sideOffset: E,
|
|
53
|
+
className: e("min-w-48 rounded-[var(--aui-card-radius,var(--radius-lg))]", M),
|
|
54
|
+
style: I ? { width: typeof I == "number" ? `${I}px` : I } : void 0,
|
|
51
55
|
children: [
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
x && /* @__PURE__ */ h(s, { children: x }),
|
|
57
|
+
x && H.length > 0 && /* @__PURE__ */ h(c, {}),
|
|
58
|
+
H.length === 0 && /* @__PURE__ */ h(a, {
|
|
55
59
|
disabled: !0,
|
|
56
|
-
children:
|
|
60
|
+
children: F
|
|
57
61
|
}),
|
|
58
|
-
|
|
59
|
-
let i = n.loading ||
|
|
60
|
-
return /* @__PURE__ */ g(d.Fragment, { children: [p ? /* @__PURE__ */ g(m, { children: [r > 0 ? /* @__PURE__ */ h(c, {}) : null, /* @__PURE__ */ h(s, { children: n.section })] }) : null, /* @__PURE__ */
|
|
62
|
+
H.map((n, r) => {
|
|
63
|
+
let i = n.loading || U === n.key, u = r > 0 ? H[r - 1]?.section : void 0, p = !!(n.section && n.section !== u);
|
|
64
|
+
return /* @__PURE__ */ g(d.Fragment, { children: [p ? /* @__PURE__ */ g(m, { children: [r > 0 ? /* @__PURE__ */ h(c, {}) : null, /* @__PURE__ */ h(s, { children: n.section })] }) : null, /* @__PURE__ */ h(a, {
|
|
61
65
|
disabled: n.disabled || i,
|
|
62
66
|
variant: n.destructive ? "destructive" : "default",
|
|
63
|
-
closeOnSelect:
|
|
64
|
-
|
|
67
|
+
closeOnSelect: j && !n.keepOpen,
|
|
68
|
+
"aria-roledescription": z,
|
|
69
|
+
className: e("min-h-11 items-start gap-3 rounded-[calc(var(--radius-md)+1px)] border border-transparent py-2.5 transition-[background-color,color,border-color,box-shadow] data-[highlighted]:shadow-[inset_0_0_0_1px_color-mix(in_oklch,var(--primary),transparent_76%)] data-[disabled]:opacity-45", P),
|
|
65
70
|
onSelect: (e) => {
|
|
66
|
-
(n.keepOpen || !
|
|
71
|
+
(n.keepOpen || !j) && e.preventDefault(), t(e), Z(n);
|
|
67
72
|
},
|
|
68
73
|
onClick: (e) => {
|
|
69
|
-
t(e),
|
|
74
|
+
t(e), Z(n);
|
|
70
75
|
},
|
|
71
76
|
onMouseDown: t,
|
|
72
77
|
onDoubleClick: t,
|
|
73
|
-
children:
|
|
78
|
+
children: B?.(n, {
|
|
79
|
+
loading: i,
|
|
80
|
+
close: () => Y(!1)
|
|
81
|
+
}) ?? /* @__PURE__ */ g(m, { children: [
|
|
74
82
|
/* @__PURE__ */ h("span", {
|
|
75
|
-
className: e("mt-0.5 flex size-5 shrink-0 items-center justify-center text-muted-foreground", !
|
|
83
|
+
className: e("mt-0.5 flex size-5 shrink-0 items-center justify-center text-muted-foreground", !R && !i && !n.icon && "hidden"),
|
|
76
84
|
children: i ? /* @__PURE__ */ h(f, { className: "size-4 animate-spin" }) : n.icon
|
|
77
85
|
}),
|
|
78
86
|
/* @__PURE__ */ g("span", {
|
|
@@ -82,11 +90,11 @@ function _({ actions: _, label: v, trigger: y, align: b = "end", side: x = "bott
|
|
|
82
90
|
children: n.label
|
|
83
91
|
}), n.description ? /* @__PURE__ */ h(o, {
|
|
84
92
|
className: "mt-0.5 truncate",
|
|
85
|
-
children: i ?
|
|
93
|
+
children: i ? L : n.description
|
|
86
94
|
}) : null]
|
|
87
95
|
}),
|
|
88
96
|
n.shortcut && /* @__PURE__ */ h(l, { children: n.shortcut })
|
|
89
|
-
]
|
|
97
|
+
] })
|
|
90
98
|
})] }, n.key);
|
|
91
99
|
})
|
|
92
100
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("lucide-react"),a=require("react/jsx-runtime");async function o(e){if(typeof navigator<`u`&&navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}if(typeof document>`u`)throw Error(`Clipboard is not available`);let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.left=`-9999px`,document.body.appendChild(t),t.select();try{document.execCommand(`copy`)}finally{document.body.removeChild(t)}}function s({value:e,copiedLabel:s=`Copied`,copyLabel:c=`Copy`,copiedTimeout:l=1600,onCopied:u,onCopyError:d,showIcon:f=!0,copiedVariant:p,variant:m,disabled:h,children:g,type:_=`button`,...v}){let[y,b]=r.useState(!1),x=r.useRef(void 0);r.useEffect(()=>()=>{x.current&&window.clearTimeout(x.current)},[]);let S=r.useCallback(async()=>{try{await o(e),b(!0),u?.(e),x.current&&window.clearTimeout(x.current),x.current=window.setTimeout(()=>b(!1),l)}catch(e){d?.(e)}},[l,u,d,e]);return(0,a.jsxs)(n.Button,{"data-slot":`copy-button`,"data-copied":y||void 0,type:_,variant:y?p??`secondary`:m,disabled:h||!e,onClick:e=>{t.stopInteractivePropagation(e),S()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,"aria-live":`polite`,...v,children:[f&&(y?(0,a.jsx)(i.CheckIcon,{"data-icon":`inline-start`}):(0,a.jsx)(i.CopyIcon,{"data-icon":`inline-start`})),g??(y?s:c)]})}exports.CopyButton=s;
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("lucide-react"),a=require("react/jsx-runtime");async function o(e){if(typeof navigator<`u`&&navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}if(typeof document>`u`)throw Error(`Clipboard is not available`);let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.left=`-9999px`,document.body.appendChild(t),t.select();try{document.execCommand(`copy`)}finally{document.body.removeChild(t)}}function s({value:e,copiedLabel:s=`Copied`,copyLabel:c=`Copy`,copiedTimeout:l=1600,onCopied:u,onCopyError:d,showIcon:f=!0,copiedVariant:p,variant:m,disabled:h,children:g,type:_=`button`,...v}){let[y,b]=r.useState(!1),x=r.useRef(void 0);r.useEffect(()=>()=>{x.current&&window.clearTimeout(x.current)},[]);let S=r.useCallback(async()=>{try{await o(e),b(!0),u?.(e),x.current&&window.clearTimeout(x.current),x.current=window.setTimeout(()=>b(!1),l)}catch(e){d?.(e)}},[l,u,d,e]);return(0,a.jsxs)(n.Button,{"data-slot":`copy-button`,"data-copied":y||void 0,type:_,variant:y?p??`secondary`:m,disabled:h||!e,onClick:e=>{t.stopInteractivePropagation(e),S()},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,"aria-live":`polite`,...v,children:[f&&(y?(0,a.jsx)(i.CheckIcon,{"data-icon":`inline-start`,className:`size-3.5`}):(0,a.jsx)(i.CopyIcon,{"data-icon":`inline-start`,className:`size-3.5`})),g??(y?s:c)]})}exports.CopyButton=s;
|
|
@@ -49,7 +49,10 @@ function c({ value: c, copiedLabel: l = "Copied", copyLabel: u = "Copy", copiedT
|
|
|
49
49
|
onDoubleClick: e,
|
|
50
50
|
"aria-live": "polite",
|
|
51
51
|
...b,
|
|
52
|
-
children: [m && a(x ? r : i, {
|
|
52
|
+
children: [m && a(x ? r : i, {
|
|
53
|
+
"data-icon": "inline-start",
|
|
54
|
+
className: "size-3.5"
|
|
55
|
+
}), v ?? (x ? l : u)]
|
|
53
56
|
});
|
|
54
57
|
}
|
|
55
58
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./date-utils.cjs"),i=require("./calendar.cjs"),a=require("../ui/popover/index.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("lucide-react"),c=require("react/jsx-runtime");function l(e){let t=r.parseDateKey(e);return t?new Intl.DateTimeFormat(`en-US`,{dateStyle:`medium`}).format(t):e}function u({value:e,onValueChange:r,placeholder:u,labels:d,disabled:f=!1,clearable:p=!0,triggerVariant:m=`default`,formatValue:h=l,triggerClassName:g,contentClassName:_,className:v,...y}){let[b,x]=o.useState(!1),S=!!e,C=e=>{r?.(e),x(!1)},w=()=>{r?.(``),x(!1)};return(0,c.jsx)(`div`,{"data-slot":`date-picker`,"data-trigger-variant":m,className:t.cn(`w-full`,v),children:(0,c.jsxs)(a.Popover,{open:b,onOpenChange:x,children:[(0,c.jsxs)(a.PopoverTrigger,{render:(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,disabled:f,labelClassName:`flex-1`,className:t.cn(`group w-full justify-start rounded-[var(--aui-control-radius,var(--radius-md))] border-border/80 bg-background/96 text-left font-normal shadow-[var(--aui-control-shadow,0_1px_2px_rgba(15,23,42,0.04))]`,m==="default"?`min-h-11 gap-3 px-3`:`min-h-9 gap-2 px-2.5`,!S&&`text-muted-foreground`,g)}),children:[(0,c.jsx)(s.CalendarIcon,{"data-icon":`inline-start`,className:t.cn(S&&`text-primary`)}),(0,c.
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./date-utils.cjs"),i=require("./calendar.cjs"),a=require("../ui/popover/index.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("lucide-react"),c=require("react/jsx-runtime");function l(e){let t=r.parseDateKey(e);return t?new Intl.DateTimeFormat(`en-US`,{dateStyle:`medium`}).format(t):e}function u({value:e,onValueChange:r,placeholder:u,labels:d,disabled:f=!1,clearable:p=!0,triggerVariant:m=`default`,formatValue:h=l,triggerClassName:g,contentClassName:_,className:v,...y}){let[b,x]=o.useState(!1),S=!!e,C=e=>{r?.(e),x(!1)},w=()=>{r?.(``),x(!1)};return(0,c.jsx)(`div`,{"data-slot":`date-picker`,"data-trigger-variant":m,className:t.cn(`w-full`,v),children:(0,c.jsxs)(a.Popover,{open:b,onOpenChange:x,children:[(0,c.jsxs)(a.PopoverTrigger,{render:(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,disabled:f,labelClassName:`flex-1`,className:t.cn(`group w-full justify-start rounded-[var(--aui-control-radius,var(--radius-md))] border-border/80 bg-background/96 text-left font-normal shadow-[var(--aui-control-shadow,0_1px_2px_rgba(15,23,42,0.04))]`,m==="default"?`min-h-11 gap-3 px-3`:`min-h-9 gap-2 px-2.5`,!S&&`text-muted-foreground`,g)}),children:[(0,c.jsx)(s.CalendarIcon,{"data-icon":`inline-start`,className:t.cn(`size-4`,S&&`text-primary`)}),(0,c.jsx)(`span`,{className:`grid min-w-0 flex-1`,children:(0,c.jsx)(`span`,{className:t.cn(`truncate text-sm`,S&&`font-semibold text-foreground`),children:S?h(String(e)):u??d?.placeholder??`Select date`})}),p&&S?(0,c.jsx)(`span`,{role:`button`,tabIndex:0,"aria-label":d?.clear??`Clear date`,className:t.cn(`ml-auto inline-flex shrink-0 items-center justify-center rounded-[var(--radius-sm)] text-muted-foreground opacity-80 transition hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,m==="default"?`size-7`:`size-6`),onClick:e=>{e.preventDefault(),e.stopPropagation(),w()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),w())},children:(0,c.jsx)(s.XIcon,{className:`size-3.5`})}):null]}),(0,c.jsx)(a.PopoverContent,{align:`start`,className:t.cn(`w-auto overflow-hidden rounded-[var(--aui-card-radius,var(--radius-lg))] border-border/70 bg-popover p-0 shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))] backdrop-blur`,_),children:(0,c.jsx)(i.Calendar,{value:e,onValueChange:C,labels:d,showTodayShortcut:!0,showClearShortcut:p,showSelectionSummary:!0,...y})})]})})}exports.DatePicker=u;
|
|
@@ -36,17 +36,14 @@ function p({ value: n, onValueChange: p, placeholder: m, labels: h, disabled: g
|
|
|
36
36
|
children: [
|
|
37
37
|
/* @__PURE__ */ u(c, {
|
|
38
38
|
"data-icon": "inline-start",
|
|
39
|
-
className: e(E && "text-primary")
|
|
39
|
+
className: e("size-4", E && "text-primary")
|
|
40
40
|
}),
|
|
41
|
-
/* @__PURE__ */
|
|
42
|
-
className:
|
|
43
|
-
children:
|
|
44
|
-
className: "text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",
|
|
45
|
-
children: h?.selected ?? "Date"
|
|
46
|
-
}) : null, /* @__PURE__ */ u("span", {
|
|
41
|
+
/* @__PURE__ */ u("span", {
|
|
42
|
+
className: "grid min-w-0 flex-1",
|
|
43
|
+
children: /* @__PURE__ */ u("span", {
|
|
47
44
|
className: e("truncate text-sm", E && "font-semibold text-foreground"),
|
|
48
45
|
children: E ? y(String(n)) : m ?? h?.placeholder ?? "Select date"
|
|
49
|
-
})
|
|
46
|
+
})
|
|
50
47
|
}),
|
|
51
48
|
_ && E ? /* @__PURE__ */ u("span", {
|
|
52
49
|
role: "button",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./date-utils.cjs"),i=require("./calendar.cjs"),a=require("../ui/popover/index.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("lucide-react"),c=require("react/jsx-runtime");function l(e){let t=r.parseDateKey(e);return t?new Intl.DateTimeFormat(`en-US`,{dateStyle:`medium`}).format(t):e}function u(e,t){return typeof e==`string`?e:t}function d({className:e,value:r,onValueChange:d,labels:f,placeholder:p,disabled:m=!1,clearable:h=!0,formatValue:g=l,closeOnSelect:_=!1,closeOnPresetSelect:v=!1,showFooter:y=!0,presets:b,triggerClassName:x,contentClassName:S,months:C,numberOfMonths:w=2,pagedNavigation:T=!0,...E}){let[D,O]=o.useState(!1),[k,A]=o.useState(r??{}),j=r?.from??``,M=r?.to??``,N=!!(j||M),P=y?k:r,F=P?.from??``,I=P?.to??``,L=!!(F||I),R=C??w,z=j&&M?`${g(j)} - ${g(M)}`:j?`${g(j)} - ...`:p??f?.placeholder??`Select date range`,B=F&&I?`${g(F)} - ${g(I)}`:F?`${g(F)} - ...`:f?.placeholder??`Select date range`;o.useEffect(()=>{D&&y&&A(r??{})},[D,y,r]);let V=e=>{if(y){A(e);return}d?.(e),_&&e.from&&e.to&&O(!1)},H=()=>{d?.(k),O(!1)},U=()=>{let e={};if(y){A(e);return}d?.(e)},W=()=>{let e={};A(e),d?.(e)},G=e=>{e.preventDefault(),e.stopPropagation(),W()},K=e=>{if(y){A(e),v&&(d?.(e),O(!1));return}d?.(e),(_||v)&&e.from&&e.to&&O(!1)};return(0,c.jsx)(`div`,{"data-slot":`date-range-picker`,className:t.cn(`w-full`,e),children:(0,c.jsxs)(a.Popover,{open:D,onOpenChange:O,children:[(0,c.jsxs)(a.PopoverTrigger,{render:(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,disabled:m,className:t.cn(`group min-h-11 w-full justify-start gap-3 rounded-[var(--aui-control-radius,var(--radius-md))] border-border/80 bg-background/96 px-3 text-left font-normal shadow-[var(--aui-control-shadow,0_1px_2px_rgba(15,23,42,0.04))]`,!N&&`text-muted-foreground`,x)}),children:[(0,c.jsx)(s.CalendarIcon,{"data-icon":`inline-start`,className:t.cn(N&&`text-primary`)}),N?(0,c.jsxs)(`span`,{className:`
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("./date-utils.cjs"),i=require("./calendar.cjs"),a=require("../ui/popover/index.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("lucide-react"),c=require("react/jsx-runtime");function l(e){let t=r.parseDateKey(e);return t?new Intl.DateTimeFormat(`en-US`,{dateStyle:`medium`}).format(t):e}function u(e,t){return typeof e==`string`?e:t}function d({className:e,value:r,onValueChange:d,labels:f,placeholder:p,disabled:m=!1,clearable:h=!0,formatValue:g=l,closeOnSelect:_=!1,closeOnPresetSelect:v=!1,showFooter:y=!0,presets:b,triggerClassName:x,contentClassName:S,months:C,numberOfMonths:w=2,pagedNavigation:T=!0,...E}){let[D,O]=o.useState(!1),[k,A]=o.useState(r??{}),j=r?.from??``,M=r?.to??``,N=!!(j||M),P=y?k:r,F=P?.from??``,I=P?.to??``,L=!!(F||I),R=C??w,z=j&&M?`${g(j)} - ${g(M)}`:j?`${g(j)} - ...`:p??f?.placeholder??`Select date range`,B=F&&I?`${g(F)} - ${g(I)}`:F?`${g(F)} - ...`:f?.placeholder??`Select date range`;o.useEffect(()=>{D&&y&&A(r??{})},[D,y,r]);let V=e=>{if(y){A(e);return}d?.(e),_&&e.from&&e.to&&O(!1)},H=()=>{d?.(k),O(!1)},U=()=>{let e={};if(y){A(e);return}d?.(e)},W=()=>{let e={};A(e),d?.(e)},G=e=>{e.preventDefault(),e.stopPropagation(),W()},K=e=>{if(y){A(e),v&&(d?.(e),O(!1));return}d?.(e),(_||v)&&e.from&&e.to&&O(!1)};return(0,c.jsx)(`div`,{"data-slot":`date-range-picker`,className:t.cn(`w-full`,e),children:(0,c.jsxs)(a.Popover,{open:D,onOpenChange:O,children:[(0,c.jsxs)(a.PopoverTrigger,{render:(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,disabled:m,className:t.cn(`group min-h-11 w-full justify-start gap-3 rounded-[var(--aui-control-radius,var(--radius-md))] border-border/80 bg-background/96 px-3 text-left font-normal shadow-[var(--aui-control-shadow,0_1px_2px_rgba(15,23,42,0.04))]`,!N&&`text-muted-foreground`,x)}),children:[(0,c.jsx)(s.CalendarIcon,{"data-icon":`inline-start`,className:t.cn(`size-4`,N&&`text-primary`)}),N?(0,c.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,c.jsx)(`span`,{className:`min-w-0 truncate text-sm font-semibold text-foreground`,children:j?g(j):`...`}),(0,c.jsx)(`span`,{className:`text-muted-foreground`,children:`-`}),(0,c.jsx)(`span`,{className:`min-w-0 truncate text-sm font-semibold text-foreground`,children:M?g(M):`...`})]}):(0,c.jsx)(`span`,{className:`grid min-w-0 flex-1`,children:(0,c.jsx)(`span`,{className:`truncate text-sm`,children:z})}),h&&N?(0,c.jsx)(`span`,{role:`button`,tabIndex:0,"aria-label":u(f?.clear,`Clear date range`),className:`ml-auto inline-flex size-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] text-muted-foreground opacity-80 transition hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,onClick:G,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),W())},children:(0,c.jsx)(s.XIcon,{className:`size-3.5`})}):null]}),(0,c.jsxs)(a.PopoverContent,{align:`start`,className:t.cn(`w-auto overflow-hidden rounded-[var(--aui-card-radius,var(--radius-lg))] border-border/70 bg-popover p-0 shadow-[var(--aui-control-panel-shadow,0_18px_40px_rgba(15,23,42,0.14))] backdrop-blur`,S),children:[b?.length?(0,c.jsx)(`div`,{className:`flex flex-wrap gap-2 border-b border-border/70 bg-muted/20 px-3 py-3`,children:b.map((e,t)=>(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,className:`h-7 rounded-full px-3 text-xs`,onClick:()=>K(e.value),children:e.label},t))}):null,(0,c.jsx)(i.Calendar,{mode:`range`,range:P,onRangeChange:V,labels:f,renderSelectionSummary:({range:e})=>{let t=e?.from?g(e.from):null,n=e?.to?g(e.to):null;return t&&n?`${t} -> ${n}`:t?`${t} -> ...`:`No range selected`},numberOfMonths:R,pagedNavigation:T,showClearShortcut:!y&&h,showSelectionSummary:!0,...E}),y&&(0,c.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-border/70 bg-muted/24 px-4 py-3`,children:[(0,c.jsx)(`div`,{className:`min-w-0 text-sm text-muted-foreground`,children:(0,c.jsx)(`span`,{className:`block truncate`,children:B})}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(n.Button,{type:`button`,variant:`ghost`,size:`sm`,onClick:U,children:f?.clear??`Clear`}),(0,c.jsx)(n.Button,{type:`button`,size:`sm`,disabled:!L,onClick:H,children:f?.apply??`Apply`})]})]})]})]})})}exports.DateRangePicker=d;
|
|
@@ -67,45 +67,30 @@ function m({ className: n, value: m, onValueChange: h, labels: g, placeholder: _
|
|
|
67
67
|
children: [
|
|
68
68
|
/* @__PURE__ */ u(c, {
|
|
69
69
|
"data-icon": "inline-start",
|
|
70
|
-
className: e(L && "text-primary")
|
|
70
|
+
className: e("size-4", L && "text-primary")
|
|
71
71
|
}),
|
|
72
72
|
L ? /* @__PURE__ */ d("span", {
|
|
73
|
-
className: "
|
|
73
|
+
className: "flex min-w-0 flex-1 items-center gap-2",
|
|
74
74
|
children: [
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
-
className: "
|
|
77
|
-
children:
|
|
78
|
-
className: "text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",
|
|
79
|
-
children: g?.start ?? "Start"
|
|
80
|
-
}), /* @__PURE__ */ u("span", {
|
|
81
|
-
className: "truncate text-sm font-semibold text-foreground",
|
|
82
|
-
children: F ? b(F) : "..."
|
|
83
|
-
})]
|
|
75
|
+
/* @__PURE__ */ u("span", {
|
|
76
|
+
className: "min-w-0 truncate text-sm font-semibold text-foreground",
|
|
77
|
+
children: F ? b(F) : "..."
|
|
84
78
|
}),
|
|
85
79
|
/* @__PURE__ */ u("span", {
|
|
86
80
|
className: "text-muted-foreground",
|
|
87
81
|
children: "-"
|
|
88
82
|
}),
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
className: "
|
|
91
|
-
children:
|
|
92
|
-
className: "text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",
|
|
93
|
-
children: g?.end ?? "End"
|
|
94
|
-
}), /* @__PURE__ */ u("span", {
|
|
95
|
-
className: "truncate text-sm font-semibold text-foreground",
|
|
96
|
-
children: I ? b(I) : "..."
|
|
97
|
-
})]
|
|
83
|
+
/* @__PURE__ */ u("span", {
|
|
84
|
+
className: "min-w-0 truncate text-sm font-semibold text-foreground",
|
|
85
|
+
children: I ? b(I) : "..."
|
|
98
86
|
})
|
|
99
87
|
]
|
|
100
|
-
}) : /* @__PURE__ */
|
|
101
|
-
className: "grid min-w-0 flex-1
|
|
102
|
-
children:
|
|
103
|
-
className: "text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",
|
|
104
|
-
children: "Range"
|
|
105
|
-
}), /* @__PURE__ */ u("span", {
|
|
88
|
+
}) : /* @__PURE__ */ u("span", {
|
|
89
|
+
className: "grid min-w-0 flex-1",
|
|
90
|
+
children: /* @__PURE__ */ u("span", {
|
|
106
91
|
className: "truncate text-sm",
|
|
107
92
|
children: U
|
|
108
|
-
})
|
|
93
|
+
})
|
|
109
94
|
}),
|
|
110
95
|
y && L ? /* @__PURE__ */ u("span", {
|
|
111
96
|
role: "button",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("../feedback/state-view.cjs"),i=require("../ui/input/index.cjs"),a=require("../ui/table/index.cjs"),ee=require("./data-table-actions-column.cjs"),te=require("./data-table-bulk-actions.cjs"),ne=require("./data-table-column-visibility-menu.cjs"),re=require("./data-table-pagination.cjs"),ie=require("./data-table-toolbar.cjs"),ae=require("../../../node_modules/@tanstack/react-virtual/dist/esm/index.cjs"),o=require("../display/data-state.cjs"),oe=require("../../hooks/use-is-mobile.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("@tanstack/react-table");var se={compact:`h-8 px-2 py-1.5`,default:`h-10 px-2 py-2`,comfortable:`h-12 px-3 py-3`},ce={compact:`px-2 py-1.5`,default:`p-2`,comfortable:`px-3 py-3`};function le(e,t){return typeof t==`function`?t(e):t}function ue(e,t){return typeof t==`function`?t(e):t}function de(e,t){return typeof t==`function`?t(e):t}function fe(e){return e==null||e===``}function pe(e){let t=e.column.columnDef.header;return typeof t==`string`?t:typeof t==`number`?String(t):e.column.id===`actions`?`Actions`:e.column.id}function u({className:e,columns:u,data:d,title:f,description:p,features:m,search:h,filters:g,summary:_,toolbarActions:v,rowActions:y,bulkActions:b,onRefresh:me,onExport:x,refreshLabel:he=`Refresh`,exportLabel:ge=`Export`,getRowId:_e,isLoading:S=!1,isError:ve=!1,emptyState:ye,errorState:be,loadingState:xe,loadingVariant:Se=`skeleton`,toolbar:C,toolbarProps:w,pagination:T,sorting:Ce,onSortingChange:we,columnVisibility:Te,onColumnVisibilityChange:Ee,rowSelection:De,onRowSelectionChange:Oe,enableRowSelection:ke,renderMobileCard:E,mobileLayout:Ae=`auto`,onRowClick:D,onRowDoubleClick:je,getRowDisabled:O,density:k=`default`,striped:A=!1,bordered:j=!1,stickyHeader:M=!1,skeletonRows:Me=6,skeletonCellClassName:Ne,cellFallback:N=`-`,tableClassName:Pe,tableWrapperClassName:Fe,headerCellClassName:Ie,cellClassName:Le,rowClassName:P,renderExpandedRow:F,expanded:Re,onExpandedChange:ze,getRowCanExpand:Be,columnPinning:Ve,onColumnPinningChange:He,virtualization:Ue,...We}){let Ge=s.useMemo(()=>{let e=u;return!y||m?.rowActions===!1?e:[...e,ee.createDataTableActionsColumn({getActions:y})]},[u,m?.rowActions,y]),I=T===!1?void 0:T,Ke=I?{pageIndex:I.pageIndex,pageSize:I.pageSize}:void 0,qe=!!(I&&I.manual!==!1),Je=De??{},L=(0,l.useReactTable)({data:d,columns:Ge,getRowId:_e,getCoreRowModel:(0,l.getCoreRowModel)(),getPaginationRowModel:I&&!qe?(0,l.getPaginationRowModel)():void 0,manualPagination:qe,pageCount:I?.pageCount,state:{sorting:Ce,columnVisibility:Te,rowSelection:Je,pagination:Ke,expanded:Re,...Ve?{columnPinning:Ve}:{}},onSortingChange:we,onColumnVisibilityChange:Ee,onRowSelectionChange:Oe,onExpandedChange:ze,onColumnPinningChange:He,enableRowSelection:ke,getRowCanExpand:Be,getExpandedRowModel:(0,l.getExpandedRowModel)()}),R=L.getRowModel().rows,Ye=s.useRef(null),z=Ue===!1?void 0:Ue,B=!!(z&&z.enabled!==!1&&R.length>0),V=z?.height??480,Xe=z?.onRangeChange,H=ae.useVirtualizer({count:B?R.length:0,getScrollElement:()=>Ye.current,estimateSize:()=>z?.estimateRowHeight??48,getItemKey:e=>R[e]?.id??e,overscan:z?.overscan??8,initialRect:{width:0,height:typeof V==`number`?V:480},onChange(e){if(!Xe)return;let t=e.getVirtualItems();Xe({startIndex:t[0]?.index??-1,endIndex:t.at(-1)?.index??-1})}}),Ze=B?H.getVirtualItems():[],U=z?.estimateRowHeight??48,Qe=B?Math.min(R.length,Math.ceil((typeof V==`number`?V:480)/U)+(z?.overscan??8)):0,W=Ze.length>0?Ze:Array.from({length:Qe},(e,t)=>({key:R[t]?.id??t,index:t,start:t*U,end:(t+1)*U,size:U,lane:0})),$e=W[0]?.start??0,et=W.length?Math.max(H.getTotalSize()-W[W.length-1].end,0):0,G=L.getSelectedRowModel().rows.map(e=>e.original),tt=G.length,K=s.useMemo(()=>({table:L,data:d,selectedRows:G}),[d,G,L]),nt=L.getVisibleLeafColumns(),rt=Math.max(nt.length,1),it=typeof C==`function`?C(L):C,at=typeof w==`function`?w(L):w,q=typeof g==`function`?g(K):g,J=typeof _==`function`?_(K):_,ot=!!(h&&m?.search!==!1),st=!!(m?.columnVisibility&&L.getAllLeafColumns().some(e=>e.getCanHide())),Y=!!(m?.refresh&&me),X=!!(m?.export&&x),ct=!!(m?.bulkActions!==!1&&b?.length),lt=st&&!!(f||p||h||q||J||v||Y||X),ut=ot&&h?(0,c.jsx)(i.Input,{type:`search`,value:h.value,onValueChange:h.onValueChange,placeholder:h.placeholder??`Search...`,wrapperClassName:h.wrapperClassName??h.className,inputClassName:h.inputClassName,disabled:h.disabled,clearable:h.clearable,clearLabel:h.clearLabel,searchIcon:h.searchIcon}):void 0,dt=(0,c.jsxs)(c.Fragment,{children:[typeof v==`function`?v(K):v,lt&&(0,c.jsx)(ne.DataTableColumnVisibilityMenu,{table:L}),Y&&(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,disabled:S,onClick:()=>me?.(K),children:he}),X&&(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>x?.(K),children:ge})]}),ft=ct?(0,c.jsx)(te.DataTableBulkActions,{rows:G,actions:b??[],selectedLabel:()=>`Actions`,clearLabel:null,onClearSelection:()=>L.resetRowSelection(),hideWhenEmpty:!1}):void 0,pt=!!(it||at||f||p||ut||q||J||v||lt||Y||X||ft),mt=!!(I&&!I.hidden),Z=S&&Se===`skeleton`,ht=oe.useIsMobile(),gt=Ae!==`scroll`&&ht,_t=(e,t)=>t>0?(0,c.jsx)(a.TableRow,{"aria-hidden":`true`,className:`pointer-events-none border-0 hover:bg-transparent`,children:(0,c.jsx)(a.TableCell,{colSpan:rt,className:`border-0 p-0`,style:{height:t}})},e):null,vt=e=>(0,c.jsx)(a.TableRow,{children:(0,c.jsx)(a.TableCell,{colSpan:rt,className:`p-0`,children:e})}),yt=()=>Array.from({length:Math.max(Me,1)},(e,n)=>(0,c.jsx)(a.TableRow,{"aria-hidden":`true`,children:nt.map(e=>(0,c.jsx)(a.TableCell,{className:t.cn(ce[k],j&&`border-r last:border-r-0`),children:(0,c.jsx)(`div`,{className:t.cn(`h-4 w-full max-w-40 animate-pulse rounded-md bg-muted`,n%3==1&&`max-w-24`,n%3==2&&`max-w-32`,Ne)})},`${e.id}-${n}`))},`skeleton-${n}`)),Q=Z?null:S?(0,c.jsx)(r.StateView,{status:`loading`,title:`Loading data...`,...xe}):ve?(0,c.jsx)(o.DataState,{status:`error`,title:`Could not load data`,description:`Please try again.`,variant:`plain`,...be}):R.length===0?(0,c.jsx)(o.DataState,{status:`empty`,variant:`plain`,...ye}):null,$=(e,n,r)=>{let i=O?.(e)??!1;return(0,c.jsxs)(s.Fragment,{children:[(0,c.jsx)(a.TableRow,{ref:r&&z?.measureRows!==!1?H.measureElement:void 0,"data-index":r?.index,"data-state":e.getIsSelected()?`selected`:void 0,"data-striped":A&&n%2==1?`true`:void 0,"data-disabled":i||void 0,className:t.cn(D&&!i&&`cursor-pointer`,!i&&`transition-colors hover:bg-[color:color-mix(in_oklch,var(--primary),transparent_96%)] data-[state=selected]:bg-[color:color-mix(in_oklch,var(--primary),transparent_90%)]`,i&&`pointer-events-none opacity-55`,le(e,P)),onClick:()=>{i||D?.(e)},onDoubleClick:()=>{i||je?.(e)},children:e.getVisibleCells().map(e=>{let n=(0,l.flexRender)(e.column.columnDef.cell,e.getContext());return(0,c.jsx)(a.TableCell,{style:{...e.column.getIsPinned()===`left`?{left:`${e.column.getStart(`left`)}px`,position:`sticky`,zIndex:10}:{},...e.column.getIsPinned()===`right`?{right:`${e.column.getAfter(`right`)}px`,position:`sticky`,zIndex:10}:{}},className:t.cn(ce[k],e.column.getIsPinned()&&`bg-card shadow-[1px_0_0_var(--border)]`,j&&`border-r last:border-r-0`,de(e,Le)),children:fe(n)?N:n},e.id)})}),e.getIsExpanded()&&F?(0,c.jsx)(a.TableRow,{className:`bg-muted/50 hover:bg-muted/50`,children:(0,c.jsx)(a.TableCell,{colSpan:e.getVisibleCells().length,children:F(e)})}):null]},e.id)},bt=e=>{let n=O?.(e)??!1,r=e.getVisibleCells();return(0,c.jsx)(`article`,{"data-slot":`data-table-mobile-card`,"data-state":e.getIsSelected()?`selected`:void 0,"data-disabled":n||void 0,className:t.cn(`grid gap-3 rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-card p-3 shadow-[var(--aui-card-shadow,0_10px_24px_rgba(15,23,42,0.07))]`,D&&!n&&`cursor-pointer transition-colors hover:bg-[color:color-mix(in_oklch,var(--primary),transparent_96%)]`,n&&`pointer-events-none opacity-55`,le(e,P)),role:D&&!n?`button`:void 0,tabIndex:D&&!n?0:void 0,onClick:()=>{n||D?.(e)},onKeyDown:t=>{t.target!==t.currentTarget||n||!D||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),D(e))},children:r.map(e=>{let t=(0,l.flexRender)(e.column.columnDef.cell,e.getContext());return(0,c.jsxs)(`div`,{"data-slot":`data-table-mobile-cell`,className:`grid grid-cols-[minmax(7rem,0.42fr)_minmax(0,1fr)] items-start gap-3 text-sm`,children:[(0,c.jsx)(`span`,{className:`min-w-0 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:pe(e)}),(0,c.jsx)(`div`,{className:`min-w-0 text-right text-foreground/92 [&>*]:ml-auto`,children:fe(t)?N:t})]},e.id)})},e.id)};return(0,c.jsxs)(`div`,{"data-slot":`data-table`,className:t.cn(`grid gap-3`,e),...We,children:[pt&&(it??(0,c.jsx)(ie.DataTableToolbar,{title:f,description:p,search:ut,filters:q,summary:J,actions:dt,selectionActions:ft,selectedCount:tt,totalCount:I?I.rowCount??d.length:d.length,variant:`plain`,...at})),gt&&(0,c.jsx)(`div`,{className:`grid gap-3`,children:Q??(Z?(0,c.jsx)(r.StateView,{status:`loading`,title:`Loading data...`,...xe}):R.map(e=>(0,c.jsx)(s.Fragment,{children:E?E(e):bt(e)},e.id)))}),!gt&&(0,c.jsxs)(`div`,{"data-slot":`data-table-wrapper`,"data-density":k,"data-striped":A||void 0,"data-bordered":j||void 0,"data-virtualized":B||void 0,className:t.cn(`overflow-hidden rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-card shadow-[var(--aui-card-shadow,0_10px_24px_rgba(15,23,42,0.07))] backdrop-blur`,Fe),children:[(0,c.jsxs)(a.Table,{containerRef:Ye,containerStyle:B?{height:V,overscrollBehavior:`contain`}:void 0,containerClassName:t.cn(`rounded-none border-0 bg-transparent shadow-none ring-0`,B&&`overflow-auto`),className:t.cn(`text-[0.95rem]`,Pe),"aria-rowcount":R.length,children:[(0,c.jsx)(a.TableHeader,{className:t.cn((M||B)&&`sticky top-0 z-10 shadow-sm backdrop-blur`),children:L.getHeaderGroups().map(e=>(0,c.jsx)(a.TableRow,{children:e.headers.map(e=>(0,c.jsx)(a.TableHead,{style:{width:e.getSize(),...e.column.getIsPinned()===`left`?{left:`${e.column.getStart(`left`)}px`,position:`sticky`,zIndex:M?20:11}:{},...e.column.getIsPinned()===`right`?{right:`${e.column.getAfter(`right`)}px`,position:`sticky`,zIndex:M?20:11}:{}},className:t.cn(se[k],`bg-[color:color-mix(in_oklch,var(--card),var(--background)_10%)] text-muted-foreground`,(M||B)&&`bg-[color:color-mix(in_oklch,var(--card),transparent_12%)] backdrop-blur`,e.column.getIsPinned()&&`bg-card shadow-[1px_0_0_var(--border)]`,j&&`border-r last:border-r-0`,ue(e,Ie)),children:e.isPlaceholder?null:(0,l.flexRender)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,c.jsx)(a.TableBody,{children:Q?vt(Q):Z?yt():B?[_t(`virtual-top`,$e),...W.map(e=>$(R[e.index],e.index,e)),_t(`virtual-bottom`,et)]:R.map((e,t)=>$(e,t))})]}),mt&&I&&(0,c.jsx)(re.DataTablePagination,{pageIndex:I.pageIndex,pageSize:I.pageSize,pageCount:I.pageCount,rowCount:I.rowCount,pageSizeOptions:I.pageSizeOptions,showPageSize:I.showPageSize,labels:I.labels,disabled:S,onPageChange:I.onPageChange,onPageSizeChange:I.onPageSizeChange})]})]})}exports.DataTable=u;
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/button/index.cjs"),r=require("../feedback/state-view.cjs"),i=require("../ui/input/index.cjs"),a=require("../ui/table/index.cjs"),ee=require("./data-table-actions-column.cjs"),te=require("./data-table-bulk-actions.cjs"),ne=require("./data-table-column-visibility-menu.cjs"),re=require("./data-table-pagination.cjs"),ie=require("./data-table-toolbar.cjs"),ae=require("../../../node_modules/@tanstack/react-virtual/dist/esm/index.cjs"),o=require("../display/data-state.cjs"),oe=require("../../hooks/use-is-mobile.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("@tanstack/react-table");var se={compact:`h-8 px-2 py-1.5`,default:`h-10 px-2 py-2`,comfortable:`h-12 px-3 py-3`},ce={compact:`px-2 py-1.5`,default:`p-2`,comfortable:`px-3 py-3`};function u(e,t){return typeof t==`function`?t(e):t}function le(e,t){return typeof t==`function`?t(e):t}function ue(e,t){return typeof t==`function`?t(e):t}function d(e){return e==null||e===``}function de(e){let t=e.column.columnDef.header;return typeof t==`string`?t:typeof t==`number`?String(t):e.column.id===`actions`?`Actions`:e.column.id}function f({className:e,columns:f,data:p,title:m,description:h,features:g,search:_,filters:v,summary:y,toolbarActions:b,rowActions:x,bulkActions:fe,onRefresh:pe,onExport:S,refreshLabel:me=`Refresh`,exportLabel:he=`Export`,getRowId:ge,isLoading:C=!1,isError:_e=!1,emptyState:ve,errorState:ye,loadingState:be,loadingVariant:xe=`skeleton`,toolbar:w,toolbarProps:T,pagination:E,sorting:Se,onSortingChange:Ce,columnVisibility:we,onColumnVisibilityChange:Te,rowSelection:Ee,onRowSelectionChange:De,enableRowSelection:Oe,renderMobileCard:D,mobileLayout:ke=`auto`,onRowClick:O,onRowDoubleClick:Ae,getRowDisabled:je,density:k=`default`,striped:A=!1,bordered:j=!1,stickyHeader:M=!1,skeletonRows:Me=6,skeletonCellClassName:Ne,cellFallback:Pe=`-`,tableClassName:Fe,tableWrapperClassName:Ie,headerCellClassName:Le,cellClassName:Re,rowClassName:ze,renderExpandedRow:Be,expanded:Ve,onExpandedChange:He,getRowCanExpand:Ue,columnPinning:We,onColumnPinningChange:Ge,virtualization:Ke,...qe}){let Je=s.useMemo(()=>{let e=f;return!x||g?.rowActions===!1?e:[...e,ee.createDataTableActionsColumn({getActions:x})]},[f,g?.rowActions,x]),N=E===!1?void 0:E,[Ye,Xe]=s.useState([]),[Ze,Qe]=s.useState({}),[$e,et]=s.useState({}),[tt,nt]=s.useState({}),[rt,it]=s.useState({}),at=Se??Ye,ot=we??Ze,st=Ee??$e,ct=Ve??tt,lt=We??rt,ut=N?{pageIndex:N.pageIndex,pageSize:N.pageSize}:void 0,dt=!!(N&&N.manual!==!1),P=(0,l.useReactTable)({data:p,columns:Je,getRowId:ge,getCoreRowModel:(0,l.getCoreRowModel)(),getSortedRowModel:(0,l.getSortedRowModel)(),getPaginationRowModel:N&&!dt?(0,l.getPaginationRowModel)():void 0,manualPagination:dt,pageCount:N?.pageCount,state:{sorting:at,columnVisibility:ot,rowSelection:st,pagination:ut,expanded:ct,columnPinning:lt},onSortingChange:Ce??Xe,onColumnVisibilityChange:Te??Qe,onRowSelectionChange:De??et,onExpandedChange:He??nt,onColumnPinningChange:Ge??it,enableRowSelection:Oe,getRowCanExpand:Ue,getExpandedRowModel:(0,l.getExpandedRowModel)()}),F=P.getRowModel().rows,I=s.useRef(null),L=Ke===!1?void 0:Ke,R=!!(L&&L.enabled!==!1&&F.length>0),z=L?.height??480,B=L?.onRangeChange,V=ae.useVirtualizer({count:R?F.length:0,getScrollElement:()=>I.current,estimateSize:()=>L?.estimateRowHeight??48,getItemKey:e=>F[e]?.id??e,overscan:L?.overscan??8,initialRect:{width:0,height:typeof z==`number`?z:480},onChange(e){if(!B)return;let t=e.getVirtualItems();B({startIndex:t[0]?.index??-1,endIndex:t.at(-1)?.index??-1})}}),H=R?V.getVirtualItems():[],U=L?.estimateRowHeight??48,ft=R?Math.min(F.length,Math.ceil((typeof z==`number`?z:480)/U)+(L?.overscan??8)):0,W=H.length>0?H:Array.from({length:ft},(e,t)=>({key:F[t]?.id??t,index:t,start:t*U,end:(t+1)*U,size:U,lane:0})),pt=W[0]?.start??0,mt=W.length?Math.max(V.getTotalSize()-W[W.length-1].end,0):0,G=P.getSelectedRowModel().rows.map(e=>e.original),ht=G.length,K=s.useMemo(()=>({table:P,data:p,selectedRows:G}),[p,G,P]),gt=P.getVisibleLeafColumns(),_t=Math.max(gt.length,1),vt=typeof w==`function`?w(P):w,yt=typeof T==`function`?T(P):T,q=typeof v==`function`?v(K):v,J=typeof y==`function`?y(K):y,bt=!!(_&&g?.search!==!1),xt=!!(g?.columnVisibility&&P.getAllLeafColumns().some(e=>e.getCanHide())),Y=!!(g?.refresh&&pe),X=!!(g?.export&&S),St=!!(g?.bulkActions!==!1&&fe?.length),Ct=xt&&!!(m||h||_||q||J||b||Y||X),Z=bt&&_?(0,c.jsx)(i.Input,{type:`search`,value:_.value,onValueChange:_.onValueChange,placeholder:_.placeholder??`Search...`,wrapperClassName:_.wrapperClassName??_.className,inputClassName:_.inputClassName,disabled:_.disabled,clearable:_.clearable,clearLabel:_.clearLabel,searchIcon:_.searchIcon}):void 0,wt=(0,c.jsxs)(c.Fragment,{children:[typeof b==`function`?b(K):b,Ct&&(0,c.jsx)(ne.DataTableColumnVisibilityMenu,{table:P}),Y&&(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,disabled:C,onClick:()=>pe?.(K),children:me}),X&&(0,c.jsx)(n.Button,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>S?.(K),children:he})]}),Tt=St?(0,c.jsx)(te.DataTableBulkActions,{rows:G,actions:fe??[],selectedLabel:()=>`Actions`,clearLabel:null,onClearSelection:()=>P.resetRowSelection(),hideWhenEmpty:!1}):void 0,Et=!!(vt||yt||m||h||Z||q||J||b||Ct||Y||X||Tt),Dt=!!(N&&!N.hidden),Q=C&&xe===`skeleton`,Ot=oe.useIsMobile(),kt=ke!==`scroll`&&Ot,At=(e,t)=>t>0?(0,c.jsx)(a.TableRow,{"aria-hidden":`true`,className:`pointer-events-none border-0 hover:bg-transparent`,children:(0,c.jsx)(a.TableCell,{colSpan:_t,className:`border-0 p-0`,style:{height:t}})},e):null,jt=e=>(0,c.jsx)(a.TableRow,{children:(0,c.jsx)(a.TableCell,{colSpan:_t,className:`p-0`,children:e})}),Mt=()=>Array.from({length:Math.max(Me,1)},(e,n)=>(0,c.jsx)(a.TableRow,{"aria-hidden":`true`,children:gt.map(e=>(0,c.jsx)(a.TableCell,{className:t.cn(ce[k],j&&`border-r last:border-r-0`),children:(0,c.jsx)(`div`,{className:t.cn(`h-4 w-full max-w-40 animate-pulse rounded-md bg-muted`,n%3==1&&`max-w-24`,n%3==2&&`max-w-32`,Ne)})},`${e.id}-${n}`))},`skeleton-${n}`)),$=Q?null:C?(0,c.jsx)(r.StateView,{status:`loading`,title:`Loading data...`,...be}):_e?(0,c.jsx)(o.DataState,{status:`error`,title:`Could not load data`,description:`Please try again.`,variant:`plain`,...ye}):F.length===0?(0,c.jsx)(o.DataState,{status:`empty`,variant:`plain`,...ve}):null,Nt=(e,n,r)=>{let i=je?.(e)??!1;return(0,c.jsxs)(s.Fragment,{children:[(0,c.jsx)(a.TableRow,{ref:r&&L?.measureRows!==!1?V.measureElement:void 0,"data-index":r?.index,"data-state":e.getIsSelected()?`selected`:void 0,"data-striped":A&&n%2==1?`true`:void 0,"data-disabled":i||void 0,className:t.cn(O&&!i&&`cursor-pointer`,!i&&`transition-colors hover:bg-[color:color-mix(in_oklch,var(--primary),transparent_96%)] data-[state=selected]:bg-[color:color-mix(in_oklch,var(--primary),transparent_90%)]`,i&&`pointer-events-none opacity-55`,u(e,ze)),onClick:()=>{i||O?.(e)},onDoubleClick:()=>{i||Ae?.(e)},children:e.getVisibleCells().map(e=>{let n=(0,l.flexRender)(e.column.columnDef.cell,e.getContext());return(0,c.jsx)(a.TableCell,{style:{...e.column.getIsPinned()===`left`?{left:`${e.column.getStart(`left`)}px`,position:`sticky`,zIndex:10}:{},...e.column.getIsPinned()===`right`?{right:`${e.column.getAfter(`right`)}px`,position:`sticky`,zIndex:10}:{}},className:t.cn(ce[k],e.column.getIsPinned()&&`bg-card shadow-[1px_0_0_var(--border)]`,j&&`border-r last:border-r-0`,ue(e,Re)),children:d(n)?Pe:n},e.id)})}),e.getIsExpanded()&&Be?(0,c.jsx)(a.TableRow,{className:`bg-muted/50 hover:bg-muted/50`,children:(0,c.jsx)(a.TableCell,{colSpan:e.getVisibleCells().length,children:Be(e)})}):null]},e.id)},Pt=e=>{let n=je?.(e)??!1,r=e.getVisibleCells();return(0,c.jsx)(`article`,{"data-slot":`data-table-mobile-card`,"data-state":e.getIsSelected()?`selected`:void 0,"data-disabled":n||void 0,className:t.cn(`grid gap-3 rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-card p-3 shadow-[var(--aui-card-shadow,0_10px_24px_rgba(15,23,42,0.07))]`,O&&!n&&`cursor-pointer transition-colors hover:bg-[color:color-mix(in_oklch,var(--primary),transparent_96%)]`,n&&`pointer-events-none opacity-55`,u(e,ze)),role:O&&!n?`button`:void 0,tabIndex:O&&!n?0:void 0,onClick:()=>{n||O?.(e)},onKeyDown:t=>{t.target!==t.currentTarget||n||!O||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),O(e))},children:r.map(e=>{let t=(0,l.flexRender)(e.column.columnDef.cell,e.getContext());return(0,c.jsxs)(`div`,{"data-slot":`data-table-mobile-cell`,className:`grid grid-cols-[minmax(7rem,0.42fr)_minmax(0,1fr)] items-start gap-3 text-sm`,children:[(0,c.jsx)(`span`,{className:`min-w-0 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:de(e)}),(0,c.jsx)(`div`,{className:`min-w-0 text-right text-foreground/92 [&>*]:ml-auto`,children:d(t)?Pe:t})]},e.id)})},e.id)};return(0,c.jsxs)(`div`,{"data-slot":`data-table`,className:t.cn(`grid gap-3`,e),...qe,children:[Et&&(vt??(0,c.jsx)(ie.DataTableToolbar,{title:m,description:h,search:Z,filters:q,summary:J,actions:wt,selectionActions:Tt,selectedCount:ht,totalCount:N?N.rowCount??p.length:p.length,variant:`plain`,...yt})),kt&&(0,c.jsx)(`div`,{className:`grid gap-3`,children:$??(Q?(0,c.jsx)(r.StateView,{status:`loading`,title:`Loading data...`,...be}):F.map(e=>(0,c.jsx)(s.Fragment,{children:D?D(e):Pt(e)},e.id)))}),!kt&&(0,c.jsxs)(`div`,{"data-slot":`data-table-wrapper`,"data-density":k,"data-striped":A||void 0,"data-bordered":j||void 0,"data-virtualized":R||void 0,className:t.cn(`overflow-hidden rounded-[var(--aui-card-radius,var(--radius-lg))] border border-[color:var(--aui-card-border,var(--border))] bg-card shadow-[var(--aui-card-shadow,0_10px_24px_rgba(15,23,42,0.07))] backdrop-blur`,Ie),children:[(0,c.jsxs)(a.Table,{containerRef:I,containerStyle:R?{height:z,overscrollBehavior:`contain`}:void 0,containerClassName:t.cn(`rounded-none border-0 bg-transparent shadow-none ring-0`,R&&`overflow-auto`),className:t.cn(`text-[0.95rem]`,Fe),"aria-rowcount":F.length,children:[(0,c.jsx)(a.TableHeader,{className:t.cn((M||R)&&`sticky top-0 z-10 shadow-sm backdrop-blur`),children:P.getHeaderGroups().map(e=>(0,c.jsx)(a.TableRow,{children:e.headers.map(e=>(0,c.jsx)(a.TableHead,{style:{width:e.getSize(),...e.column.getIsPinned()===`left`?{left:`${e.column.getStart(`left`)}px`,position:`sticky`,zIndex:M?20:11}:{},...e.column.getIsPinned()===`right`?{right:`${e.column.getAfter(`right`)}px`,position:`sticky`,zIndex:M?20:11}:{}},className:t.cn(se[k],`bg-[color:color-mix(in_oklch,var(--card),var(--background)_10%)] text-muted-foreground`,(M||R)&&`bg-[color:color-mix(in_oklch,var(--card),transparent_12%)] backdrop-blur`,e.column.getIsPinned()&&`bg-card shadow-[1px_0_0_var(--border)]`,j&&`border-r last:border-r-0`,le(e,Le)),children:e.isPlaceholder?null:(0,l.flexRender)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,c.jsx)(a.TableBody,{children:$?jt($):Q?Mt():R?[At(`virtual-top`,pt),...W.map(e=>Nt(F[e.index],e.index,e)),At(`virtual-bottom`,mt)]:F.map((e,t)=>Nt(e,t))})]}),Dt&&N&&(0,c.jsx)(re.DataTablePagination,{pageIndex:N.pageIndex,pageSize:N.pageSize,pageCount:N.pageCount,rowCount:N.rowCount,pageSizeOptions:N.pageSizeOptions,showPageSize:N.showPageSize,labels:N.labels,disabled:C,onPageChange:N.onPageChange,onPageSizeChange:N.onPageSizeChange})]})]})}exports.DataTable=f;
|