art-bd-ui 1.0.0
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/README.md +1 -0
- package/dist/cjs/components/buttons/button/button.js +43 -0
- package/dist/cjs/components/buttons/icon-button/icon-button.js +33 -0
- package/dist/cjs/components/buttons/toggle/toggle.js +34 -0
- package/dist/cjs/components/buttons/toggle-group/toggle-group.js +31 -0
- package/dist/cjs/components/forms/checkbox/checkbox.js +52 -0
- package/dist/cjs/components/forms/input/input.js +38 -0
- package/dist/cjs/components/forms/label/label.js +38 -0
- package/dist/cjs/components/forms/radio/radio.js +22 -0
- package/dist/cjs/components/forms/select/select.js +72 -0
- package/dist/cjs/components/forms/switch/switch.js +51 -0
- package/dist/cjs/components/forms/textarea/textarea.js +37 -0
- package/dist/cjs/components/layout/box/box.js +19 -0
- package/dist/cjs/components/layout/flex/flex.js +14 -0
- package/dist/cjs/components/layout/grid/grid.js +14 -0
- package/dist/cjs/components/media/aspect-ratio/aspect-ratio.js +31 -0
- package/dist/cjs/components/media/avatar/avatar.js +27 -0
- package/dist/cjs/components/media/icon/icon.js +27 -0
- package/dist/cjs/components/popovers/dialog/dialog.js +69 -0
- package/dist/cjs/components/popovers/drawer/drawer.js +82 -0
- package/dist/cjs/components/popovers/popover/popover.js +66 -0
- package/dist/cjs/components/popovers/sheet/sheet.js +94 -0
- package/dist/cjs/components/popovers/toast/toast.js +75 -0
- package/dist/cjs/components/popovers/tooltip/tooltip.js +45 -0
- package/dist/cjs/components/typography/heading/heading.js +55 -0
- package/dist/cjs/components/typography/text/text.js +57 -0
- package/dist/cjs/components/ui/alert/alert.js +34 -0
- package/dist/cjs/components/ui/badge/badge.js +31 -0
- package/dist/cjs/components/ui/button/button.js +42 -0
- package/dist/cjs/components/ui/calendar/calendar.js +24 -0
- package/dist/cjs/components/ui/command/command.js +83 -0
- package/dist/cjs/components/ui/data-table/components/cell.js +24 -0
- package/dist/cjs/components/ui/data-table/components/column-group.js +45 -0
- package/dist/cjs/components/ui/data-table/components/table-body.js +47 -0
- package/dist/cjs/components/ui/data-table/components/table-fallback.js +28 -0
- package/dist/cjs/components/ui/data-table/components/table-head.js +56 -0
- package/dist/cjs/components/ui/data-table/components/table-placeholder.js +18 -0
- package/dist/cjs/components/ui/data-table/data-table.js +97 -0
- package/dist/cjs/components/ui/data-table/hooks/contextHooks.js +75 -0
- package/dist/cjs/components/ui/data-table/hooks/useStickyColumns.js +98 -0
- package/dist/cjs/components/ui/data-table/utils.js +26 -0
- package/dist/cjs/components/ui/date-picker/date-picker.js +15 -0
- package/dist/cjs/components/ui/dropdown-menu/dropdown-menu.js +100 -0
- package/dist/cjs/components/ui/icon/icon.js +27 -0
- package/dist/cjs/components/ui/link/link.js +32 -0
- package/dist/cjs/components/ui/pagination/pagination.js +51 -0
- package/dist/cjs/components/ui/progress/progress.js +13 -0
- package/dist/cjs/components/ui/sidebar/sidebar.js +331 -0
- package/dist/cjs/components/ui/table/components/cell.js +30 -0
- package/dist/cjs/components/ui/table/components/row.js +25 -0
- package/dist/cjs/components/ui/table/components/table-body.js +13 -0
- package/dist/cjs/components/ui/table/components/table-caption.js +13 -0
- package/dist/cjs/components/ui/table/components/table-footer.js +13 -0
- package/dist/cjs/components/ui/table/components/table-head.js +30 -0
- package/dist/cjs/components/ui/table/components/table-header.js +13 -0
- package/dist/cjs/components/ui/table/table.js +36 -0
- package/dist/cjs/components/ui/tabs/tabs.js +47 -0
- package/dist/cjs/components/utility/empty-state/empty-state.js +29 -0
- package/dist/cjs/components/utility/separator/separator.js +14 -0
- package/dist/cjs/components/utility/skeleton/skeleton.js +13 -0
- package/dist/cjs/components/utility/status-controller/status-controller.js +12 -0
- package/dist/cjs/hooks/use-mobile.js +21 -0
- package/dist/cjs/hooks/useControlled.js +19 -0
- package/dist/cjs/hooks/useFirstMountState.js +16 -0
- package/dist/cjs/hooks/useForkRef.js +23 -0
- package/dist/cjs/hooks/useLatest.js +12 -0
- package/dist/cjs/hooks/usePrevious.js +14 -0
- package/dist/cjs/hooks/useScrollState.js +39 -0
- package/dist/cjs/hooks/useStateRef.js +12 -0
- package/dist/cjs/hooks/useUpdateEffect.js +17 -0
- package/dist/cjs/index.js +237 -0
- package/dist/cjs/lib/utils.js +16 -0
- package/dist/cjs/styles/responsive.js +84 -0
- package/dist/cjs/styles/typography.js +25 -0
- package/dist/cjs/utils/addIf.js +5 -0
- package/dist/cjs/utils/chain.js +30 -0
- package/dist/cjs/utils/getBoundingRect.js +19 -0
- package/dist/cjs/utils/mergeProps.js +42 -0
- package/dist/cjs/utils/mergeRefs.js +18 -0
- package/dist/cjs/utils/toggle.js +16 -0
- package/dist/esm/components/buttons/button/button.js +40 -0
- package/dist/esm/components/buttons/icon-button/icon-button.js +31 -0
- package/dist/esm/components/buttons/toggle/toggle.js +31 -0
- package/dist/esm/components/buttons/toggle-group/toggle-group.js +28 -0
- package/dist/esm/components/forms/checkbox/checkbox.js +50 -0
- package/dist/esm/components/forms/input/input.js +36 -0
- package/dist/esm/components/forms/label/label.js +36 -0
- package/dist/esm/components/forms/radio/radio.js +19 -0
- package/dist/esm/components/forms/select/select.js +61 -0
- package/dist/esm/components/forms/switch/switch.js +49 -0
- package/dist/esm/components/forms/textarea/textarea.js +35 -0
- package/dist/esm/components/layout/box/box.js +17 -0
- package/dist/esm/components/layout/flex/flex.js +12 -0
- package/dist/esm/components/layout/grid/grid.js +12 -0
- package/dist/esm/components/media/aspect-ratio/aspect-ratio.js +10 -0
- package/dist/esm/components/media/avatar/avatar.js +23 -0
- package/dist/esm/components/media/icon/icon.js +25 -0
- package/dist/esm/components/popovers/dialog/dialog.js +60 -0
- package/dist/esm/components/popovers/drawer/drawer.js +74 -0
- package/dist/esm/components/popovers/popover/popover.js +61 -0
- package/dist/esm/components/popovers/sheet/sheet.js +86 -0
- package/dist/esm/components/popovers/toast/toast.js +67 -0
- package/dist/esm/components/popovers/tooltip/tooltip.js +40 -0
- package/dist/esm/components/typography/heading/heading.js +53 -0
- package/dist/esm/components/typography/text/text.js +55 -0
- package/dist/esm/components/ui/alert/alert.js +30 -0
- package/dist/esm/components/ui/badge/badge.js +28 -0
- package/dist/esm/components/ui/button/button.js +40 -0
- package/dist/esm/components/ui/calendar/calendar.js +22 -0
- package/dist/esm/components/ui/command/command.js +73 -0
- package/dist/esm/components/ui/data-table/components/cell.js +22 -0
- package/dist/esm/components/ui/data-table/components/column-group.js +43 -0
- package/dist/esm/components/ui/data-table/components/table-body.js +45 -0
- package/dist/esm/components/ui/data-table/components/table-fallback.js +26 -0
- package/dist/esm/components/ui/data-table/components/table-head.js +54 -0
- package/dist/esm/components/ui/data-table/components/table-placeholder.js +16 -0
- package/dist/esm/components/ui/data-table/data-table.js +95 -0
- package/dist/esm/components/ui/data-table/hooks/contextHooks.js +60 -0
- package/dist/esm/components/ui/data-table/hooks/useStickyColumns.js +96 -0
- package/dist/esm/components/ui/data-table/utils.js +22 -0
- package/dist/esm/components/ui/date-picker/date-picker.js +13 -0
- package/dist/esm/components/ui/dropdown-menu/dropdown-menu.js +84 -0
- package/dist/esm/components/ui/icon/icon.js +25 -0
- package/dist/esm/components/ui/link/link.js +30 -0
- package/dist/esm/components/ui/pagination/pagination.js +43 -0
- package/dist/esm/components/ui/progress/progress.js +11 -0
- package/dist/esm/components/ui/sidebar/sidebar.js +306 -0
- package/dist/esm/components/ui/table/components/cell.js +28 -0
- package/dist/esm/components/ui/table/components/row.js +23 -0
- package/dist/esm/components/ui/table/components/table-body.js +11 -0
- package/dist/esm/components/ui/table/components/table-caption.js +11 -0
- package/dist/esm/components/ui/table/components/table-footer.js +11 -0
- package/dist/esm/components/ui/table/components/table-head.js +28 -0
- package/dist/esm/components/ui/table/components/table-header.js +11 -0
- package/dist/esm/components/ui/table/table.js +26 -0
- package/dist/esm/components/ui/tabs/tabs.js +23 -0
- package/dist/esm/components/utility/empty-state/empty-state.js +27 -0
- package/dist/esm/components/utility/separator/separator.js +12 -0
- package/dist/esm/components/utility/skeleton/skeleton.js +11 -0
- package/dist/esm/components/utility/status-controller/status-controller.js +10 -0
- package/dist/esm/hooks/use-mobile.js +19 -0
- package/dist/esm/hooks/useControlled.js +17 -0
- package/dist/esm/hooks/useFirstMountState.js +14 -0
- package/dist/esm/hooks/useForkRef.js +21 -0
- package/dist/esm/hooks/useLatest.js +10 -0
- package/dist/esm/hooks/usePrevious.js +12 -0
- package/dist/esm/hooks/useScrollState.js +37 -0
- package/dist/esm/hooks/useStateRef.js +10 -0
- package/dist/esm/hooks/useUpdateEffect.js +15 -0
- package/dist/esm/index.js +63 -0
- package/dist/esm/lib/utils.js +13 -0
- package/dist/esm/styles/responsive.js +81 -0
- package/dist/esm/styles/typography.js +21 -0
- package/dist/esm/utils/addIf.js +3 -0
- package/dist/esm/utils/chain.js +28 -0
- package/dist/esm/utils/getBoundingRect.js +16 -0
- package/dist/esm/utils/mergeProps.js +40 -0
- package/dist/esm/utils/mergeRefs.js +15 -0
- package/dist/esm/utils/toggle.js +14 -0
- package/dist/styles.css +1 -0
- package/dist/types/index.d.ts +1418 -0
- package/package.json +114 -0
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var tslib = require('tslib');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
7
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var useMobile = require('../../../hooks/use-mobile.js');
|
|
10
|
+
var utils = require('../../../lib/utils.js');
|
|
11
|
+
var icon = require('../../media/icon/icon.js');
|
|
12
|
+
var button = require('../../buttons/button/button.js');
|
|
13
|
+
var input = require('../../forms/input/input.js');
|
|
14
|
+
var separator = require('../../utility/separator/separator.js');
|
|
15
|
+
var sheet = require('../../popovers/sheet/sheet.js');
|
|
16
|
+
var skeleton = require('../../utility/skeleton/skeleton.js');
|
|
17
|
+
var tooltip = require('../../popovers/tooltip/tooltip.js');
|
|
18
|
+
|
|
19
|
+
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
20
|
+
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
21
|
+
const SIDEBAR_WIDTH = "16rem";
|
|
22
|
+
const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
23
|
+
const SIDEBAR_WIDTH_ICON = "3rem";
|
|
24
|
+
const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
25
|
+
const SidebarContext = react.createContext(null);
|
|
26
|
+
function useSidebar() {
|
|
27
|
+
const context = react.useContext(SidebarContext);
|
|
28
|
+
if (!context) {
|
|
29
|
+
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
30
|
+
}
|
|
31
|
+
return context;
|
|
32
|
+
}
|
|
33
|
+
function SidebarProvider(_a) {
|
|
34
|
+
var { defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children } = _a, props = tslib.__rest(_a, ["defaultOpen", "open", "onOpenChange", "className", "style", "children"]);
|
|
35
|
+
const isMobile = useMobile.useIsMobile();
|
|
36
|
+
const [openMobile, setOpenMobile] = react.useState(false);
|
|
37
|
+
// This is the internal state of the sidebar.
|
|
38
|
+
// We use openProp and setOpenProp for control from outside the component.
|
|
39
|
+
const [_open, _setOpen] = react.useState(defaultOpen);
|
|
40
|
+
const open = openProp !== null && openProp !== void 0 ? openProp : _open;
|
|
41
|
+
const setOpen = react.useCallback((value) => {
|
|
42
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
43
|
+
if (setOpenProp) {
|
|
44
|
+
setOpenProp(openState);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
_setOpen(openState);
|
|
48
|
+
}
|
|
49
|
+
// This sets the cookie to keep the sidebar state.
|
|
50
|
+
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
51
|
+
}, [setOpenProp, open]);
|
|
52
|
+
// Helper to toggle the sidebar.
|
|
53
|
+
const toggleSidebar = react.useCallback(() => {
|
|
54
|
+
return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);
|
|
55
|
+
}, [isMobile, setOpen, setOpenMobile]);
|
|
56
|
+
// Adds a keyboard shortcut to toggle the sidebar.
|
|
57
|
+
react.useEffect(() => {
|
|
58
|
+
const handleKeyDown = (event) => {
|
|
59
|
+
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
toggleSidebar();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
65
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
66
|
+
}, [toggleSidebar]);
|
|
67
|
+
// We add a state so that we can do data-state="expanded" or "collapsed".
|
|
68
|
+
// This makes it easier to style the sidebar with Tailwind classes.
|
|
69
|
+
const state = open ? "expanded" : "collapsed";
|
|
70
|
+
const contextValue = react.useMemo(() => ({
|
|
71
|
+
state,
|
|
72
|
+
open,
|
|
73
|
+
setOpen,
|
|
74
|
+
isMobile,
|
|
75
|
+
openMobile,
|
|
76
|
+
setOpenMobile,
|
|
77
|
+
toggleSidebar,
|
|
78
|
+
}), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
|
|
79
|
+
return (jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: jsxRuntime.jsx(tooltip.TooltipProvider, { delayDuration: 0, children: jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-wrapper", style: Object.assign({ "--sidebar-width": SIDEBAR_WIDTH, "--sidebar-width-icon": SIDEBAR_WIDTH_ICON }, style), className: utils.cn("group/sidebar-wrapper flex min-h-svh w-full", "has-data-[variant=inset]:bg-sidebar", className) }, props, { children: children })) }) }));
|
|
80
|
+
}
|
|
81
|
+
function Sidebar(_a) {
|
|
82
|
+
var { side = "left", variant = "sidebar", collapsible = "offcanvas", className, children } = _a, props = tslib.__rest(_a, ["side", "variant", "collapsible", "className", "children"]);
|
|
83
|
+
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
84
|
+
if (collapsible === "none") {
|
|
85
|
+
return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar", className: utils.cn("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", className) }, props, { children: children })));
|
|
86
|
+
}
|
|
87
|
+
if (isMobile) {
|
|
88
|
+
return (jsxRuntime.jsx(sheet.Sheet, Object.assign({ open: openMobile, onOpenChange: setOpenMobile }, props, { children: jsxRuntime.jsxs(sheet.SheetContent, { "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: utils.cn("bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0", "[&>button]:hidden"), style: {
|
|
89
|
+
"--sidebar-width": SIDEBAR_WIDTH_MOBILE,
|
|
90
|
+
}, side: side, children: [jsxRuntime.jsxs(sheet.SheetHeader, { className: "sr-only", children: [jsxRuntime.jsx(sheet.SheetTitle, { children: "Sidebar" }), jsxRuntime.jsx(sheet.SheetDescription, { children: "Displays the mobile sidebar." })] }), jsxRuntime.jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) })));
|
|
91
|
+
}
|
|
92
|
+
return (jsxRuntime.jsxs("div", { className: "group peer text-sidebar-foreground hidden md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [jsxRuntime.jsx("div", { "data-slot": "sidebar-gap", className: utils.cn(
|
|
93
|
+
// Base styles
|
|
94
|
+
"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
|
|
95
|
+
// Collapsible styles
|
|
96
|
+
"group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180",
|
|
97
|
+
// Variant-specific styles
|
|
98
|
+
variant === "floating" || variant === "inset"
|
|
99
|
+
? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
|
|
100
|
+
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-container", className: utils.cn(
|
|
101
|
+
// Base styles
|
|
102
|
+
"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
|
|
103
|
+
// Side-specific styles
|
|
104
|
+
side === "left"
|
|
105
|
+
? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"
|
|
106
|
+
: "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
|
|
107
|
+
// Variant-specific styles
|
|
108
|
+
variant === "floating" || variant === "inset"
|
|
109
|
+
? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
|
|
110
|
+
: "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className) }, props, { children: jsxRuntime.jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: utils.cn("bg-sidebar flex h-full w-full flex-col", "group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"), children: children }) }))] }));
|
|
111
|
+
}
|
|
112
|
+
function SidebarTrigger(_a) {
|
|
113
|
+
var { className, onClick } = _a, props = tslib.__rest(_a, ["className", "onClick"]);
|
|
114
|
+
const { toggleSidebar } = useSidebar();
|
|
115
|
+
return (jsxRuntime.jsxs(button.Button, Object.assign({ "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon", className: utils.cn("size-7", className), onClick: (event) => {
|
|
116
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
117
|
+
toggleSidebar();
|
|
118
|
+
} }, props, { children: [jsxRuntime.jsx(icon.Icon, { name: "panel-left" }), jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] })));
|
|
119
|
+
}
|
|
120
|
+
function SidebarRail(_a) {
|
|
121
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
122
|
+
const { toggleSidebar } = useSidebar();
|
|
123
|
+
return (jsxRuntime.jsx("button", Object.assign({ "data-sidebar": "rail", "data-slot": "sidebar-rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: utils.cn(
|
|
124
|
+
// Base styles
|
|
125
|
+
"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear", "after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]",
|
|
126
|
+
// Side-specific styles
|
|
127
|
+
"group-data-[side=left]:-right-4 group-data-[side=right]:left-0",
|
|
128
|
+
// Cursor styles
|
|
129
|
+
"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
|
|
130
|
+
// Hover and collapsible styles
|
|
131
|
+
"hover:after:bg-sidebar-border", "hover:group-data-[collapsible=offcanvas]:bg-sidebar", "group-data-[collapsible=offcanvas]:translate-x-0", "group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", "sm:flex", className) }, props)));
|
|
132
|
+
}
|
|
133
|
+
function SidebarInset(_a) {
|
|
134
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
135
|
+
return (jsxRuntime.jsx("main", Object.assign({ "data-slot": "sidebar-inset", className: utils.cn(
|
|
136
|
+
// Base styles
|
|
137
|
+
"bg-background relative flex w-full flex-1 flex-col",
|
|
138
|
+
// Inset variant styles
|
|
139
|
+
"md:peer-data-[variant=inset]:m-2", "md:peer-data-[variant=inset]:ml-0", "md:peer-data-[variant=inset]:rounded-xl", "md:peer-data-[variant=inset]:shadow-sm", "md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", className) }, props)));
|
|
140
|
+
}
|
|
141
|
+
function SidebarInput(_a) {
|
|
142
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
143
|
+
return (jsxRuntime.jsx(input.Input, Object.assign({ "data-slot": "sidebar-input", "data-sidebar": "input", className: utils.cn("bg-background h-8 w-full shadow-none", className) }, props)));
|
|
144
|
+
}
|
|
145
|
+
function SidebarHeader(_a) {
|
|
146
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
147
|
+
return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-header", "data-sidebar": "header", className: utils.cn("flex flex-col gap-2 p-2", className) }, props)));
|
|
148
|
+
}
|
|
149
|
+
function SidebarFooter(_a) {
|
|
150
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
151
|
+
return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-footer", "data-sidebar": "footer", className: utils.cn("flex flex-col gap-2 p-2", className) }, props)));
|
|
152
|
+
}
|
|
153
|
+
function SidebarSeparator(_a) {
|
|
154
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
155
|
+
return (jsxRuntime.jsx(separator.Separator, Object.assign({ "data-slot": "sidebar-separator", "data-sidebar": "separator", className: utils.cn("bg-sidebar-border mx-2 w-auto", className) }, props)));
|
|
156
|
+
}
|
|
157
|
+
function SidebarContent(_a) {
|
|
158
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
159
|
+
return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-content", "data-sidebar": "content", className: utils.cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto", "group-data-[collapsible=icon]:overflow-hidden", className) }, props)));
|
|
160
|
+
}
|
|
161
|
+
function SidebarGroup(_a) {
|
|
162
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
163
|
+
return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-group", "data-sidebar": "group", className: utils.cn("relative flex w-full min-w-0 flex-col p-2", className) }, props)));
|
|
164
|
+
}
|
|
165
|
+
function SidebarGroupLabel(_a) {
|
|
166
|
+
var { className, asChild = false } = _a, props = tslib.__rest(_a, ["className", "asChild"]);
|
|
167
|
+
const Comp = asChild ? reactSlot.Slot : "div";
|
|
168
|
+
return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-group-label", "data-sidebar": "group-label", className: utils.cn(
|
|
169
|
+
// Base styles
|
|
170
|
+
"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium", "outline-hidden transition-[margin,opacity] duration-200 ease-linear", "focus-visible:ring-2",
|
|
171
|
+
// Icon styles
|
|
172
|
+
"[&>svg]:size-4 [&>svg]:shrink-0",
|
|
173
|
+
// Collapsible styles
|
|
174
|
+
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className) }, props)));
|
|
175
|
+
}
|
|
176
|
+
function SidebarGroupAction(_a) {
|
|
177
|
+
var { className, asChild = false } = _a, props = tslib.__rest(_a, ["className", "asChild"]);
|
|
178
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
179
|
+
return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-group-action", "data-sidebar": "group-action", className: utils.cn(
|
|
180
|
+
// Base styles
|
|
181
|
+
"text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0", "outline-hidden transition-transform focus-visible:ring-2",
|
|
182
|
+
// Hover styles
|
|
183
|
+
"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
184
|
+
// Icon styles
|
|
185
|
+
"[&>svg]:size-4 [&>svg]:shrink-0",
|
|
186
|
+
// Mobile hit area
|
|
187
|
+
"after:absolute after:-inset-2 md:after:hidden",
|
|
188
|
+
// Collapsible styles
|
|
189
|
+
"group-data-[collapsible=icon]:hidden", className) }, props)));
|
|
190
|
+
}
|
|
191
|
+
function SidebarGroupContent(_a) {
|
|
192
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
193
|
+
return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: utils.cn("w-full text-sm", className) }, props)));
|
|
194
|
+
}
|
|
195
|
+
function SidebarMenu(_a) {
|
|
196
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
197
|
+
return (jsxRuntime.jsx("ul", Object.assign({ "data-slot": "sidebar-menu", "data-sidebar": "menu", className: utils.cn("flex w-full min-w-0 flex-col gap-1", className) }, props)));
|
|
198
|
+
}
|
|
199
|
+
function SidebarMenuItem(_a) {
|
|
200
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
201
|
+
return (jsxRuntime.jsx("li", Object.assign({ "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: utils.cn("group/menu-item relative", className) }, props)));
|
|
202
|
+
}
|
|
203
|
+
function SidebarMenuAction(_a) {
|
|
204
|
+
var { className, asChild = false, showOnHover = false } = _a, props = tslib.__rest(_a, ["className", "asChild", "showOnHover"]);
|
|
205
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
206
|
+
return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-menu-action", "data-sidebar": "menu-action", className: utils.cn(
|
|
207
|
+
// Base styles
|
|
208
|
+
"text-sidebar-foreground ring-sidebar-ring absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0", "outline-hidden transition-transform focus-visible:ring-2",
|
|
209
|
+
// Hover styles
|
|
210
|
+
"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground", "peer-hover/menu-button:text-sidebar-accent-foreground",
|
|
211
|
+
// Icon styles
|
|
212
|
+
"[&>svg]:size-4 [&>svg]:shrink-0",
|
|
213
|
+
// Mobile hit area
|
|
214
|
+
"after:absolute after:-inset-2 md:after:hidden",
|
|
215
|
+
// Size-specific styles
|
|
216
|
+
"peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5",
|
|
217
|
+
// Collapsible styles
|
|
218
|
+
"group-data-[collapsible=icon]:hidden",
|
|
219
|
+
// Hover visibility
|
|
220
|
+
showOnHover &&
|
|
221
|
+
utils.cn("peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "group-focus-within/menu-item:opacity-100", "group-hover/menu-item:opacity-100", "data-[state=open]:opacity-100", "md:opacity-0"), className) }, props)));
|
|
222
|
+
}
|
|
223
|
+
function SidebarMenuBadge(_a) {
|
|
224
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
225
|
+
return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-menu-badge", "data-sidebar": "menu-badge", className: utils.cn(
|
|
226
|
+
// Base styles
|
|
227
|
+
"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium", "tabular-nums select-none",
|
|
228
|
+
// Hover and active states
|
|
229
|
+
"peer-hover/menu-button:text-sidebar-accent-foreground", "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
|
|
230
|
+
// Size-specific styles
|
|
231
|
+
"peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5",
|
|
232
|
+
// Collapsible styles
|
|
233
|
+
"group-data-[collapsible=icon]:hidden", className) }, props)));
|
|
234
|
+
}
|
|
235
|
+
function SidebarMenuSkeleton(_a) {
|
|
236
|
+
var { className, showIcon = false } = _a, props = tslib.__rest(_a, ["className", "showIcon"]);
|
|
237
|
+
const width = react.useMemo(() => {
|
|
238
|
+
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
239
|
+
}, []);
|
|
240
|
+
return (jsxRuntime.jsxs("div", Object.assign({ "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: utils.cn("flex h-8 items-center gap-2 rounded-md px-2", className) }, props, { children: [showIcon && jsxRuntime.jsx(skeleton.Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }), jsxRuntime.jsx(skeleton.Skeleton, { className: "h-4 max-w-(--skeleton-width) flex-1", "data-sidebar": "menu-skeleton-text", style: {
|
|
241
|
+
"--skeleton-width": width,
|
|
242
|
+
} })] })));
|
|
243
|
+
}
|
|
244
|
+
function SidebarMenuSub(_a) {
|
|
245
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
246
|
+
return (jsxRuntime.jsx("ul", Object.assign({ "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: utils.cn(
|
|
247
|
+
// Base styles
|
|
248
|
+
"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5",
|
|
249
|
+
// Collapsible styles
|
|
250
|
+
"group-data-[collapsible=icon]:hidden", className) }, props)));
|
|
251
|
+
}
|
|
252
|
+
function SidebarMenuSubItem(_a) {
|
|
253
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
254
|
+
return (jsxRuntime.jsx("li", Object.assign({ "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: utils.cn("group/menu-sub-item relative", className) }, props)));
|
|
255
|
+
}
|
|
256
|
+
function SidebarMenuSubButton(_a) {
|
|
257
|
+
var { asChild = false, size = "md", isActive = false, className } = _a, props = tslib.__rest(_a, ["asChild", "size", "isActive", "className"]);
|
|
258
|
+
const Comp = asChild ? reactSlot.Slot : "a";
|
|
259
|
+
return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-menu-sub-button", "data-sidebar": "menu-sub-button", "data-size": size, "data-active": isActive, className: utils.cn(
|
|
260
|
+
// Base styles
|
|
261
|
+
"text-sidebar-foreground ring-sidebar-ring flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2", "outline-hidden focus-visible:ring-2",
|
|
262
|
+
// Hover and active states
|
|
263
|
+
"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground", "active:bg-sidebar-accent active:text-sidebar-accent-foreground", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
|
|
264
|
+
// Icon styles
|
|
265
|
+
"[&>svg]:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
|
|
266
|
+
// Text styles
|
|
267
|
+
"[&>span:last-child]:truncate",
|
|
268
|
+
// Size-specific styles
|
|
269
|
+
size === "sm" && "text-xs", size === "md" && "text-sm",
|
|
270
|
+
// Disabled states
|
|
271
|
+
"disabled:pointer-events-none disabled:opacity-50", "aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
272
|
+
// Collapsible styles
|
|
273
|
+
"group-data-[collapsible=icon]:hidden", className) }, props)));
|
|
274
|
+
}
|
|
275
|
+
const sidebarMenuButtonVariants = classVarianceAuthority.cva("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
|
|
276
|
+
variants: {
|
|
277
|
+
variant: {
|
|
278
|
+
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
279
|
+
outline: utils.cn("bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))]", "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"),
|
|
280
|
+
},
|
|
281
|
+
size: {
|
|
282
|
+
default: "h-8 text-sm",
|
|
283
|
+
sm: "h-7 text-xs",
|
|
284
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!",
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
defaultVariants: {
|
|
288
|
+
variant: "default",
|
|
289
|
+
size: "default",
|
|
290
|
+
},
|
|
291
|
+
});
|
|
292
|
+
function SidebarMenuButton(_a) {
|
|
293
|
+
var { asChild = false, isActive = false, variant = "default", size = "default", tooltip: tooltip$1, className } = _a, props = tslib.__rest(_a, ["asChild", "isActive", "variant", "size", "tooltip", "className"]);
|
|
294
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
295
|
+
const { isMobile, state } = useSidebar();
|
|
296
|
+
const button = (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-menu-button", "data-sidebar": "menu-button", "data-size": size, "data-active": isActive, className: utils.cn(sidebarMenuButtonVariants({ variant, size }), className) }, props)));
|
|
297
|
+
if (!tooltip$1) {
|
|
298
|
+
return button;
|
|
299
|
+
}
|
|
300
|
+
if (typeof tooltip$1 === "string") {
|
|
301
|
+
tooltip$1 = {
|
|
302
|
+
children: tooltip$1,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
return (jsxRuntime.jsxs(tooltip.Tooltip, { children: [jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: button }), jsxRuntime.jsx(tooltip.TooltipContent, Object.assign({ side: "right", align: "center", hidden: state !== "collapsed" || isMobile }, tooltip$1))] }));
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
exports.Sidebar = Sidebar;
|
|
309
|
+
exports.SidebarContent = SidebarContent;
|
|
310
|
+
exports.SidebarFooter = SidebarFooter;
|
|
311
|
+
exports.SidebarGroup = SidebarGroup;
|
|
312
|
+
exports.SidebarGroupAction = SidebarGroupAction;
|
|
313
|
+
exports.SidebarGroupContent = SidebarGroupContent;
|
|
314
|
+
exports.SidebarGroupLabel = SidebarGroupLabel;
|
|
315
|
+
exports.SidebarHeader = SidebarHeader;
|
|
316
|
+
exports.SidebarInput = SidebarInput;
|
|
317
|
+
exports.SidebarInset = SidebarInset;
|
|
318
|
+
exports.SidebarMenu = SidebarMenu;
|
|
319
|
+
exports.SidebarMenuAction = SidebarMenuAction;
|
|
320
|
+
exports.SidebarMenuBadge = SidebarMenuBadge;
|
|
321
|
+
exports.SidebarMenuButton = SidebarMenuButton;
|
|
322
|
+
exports.SidebarMenuItem = SidebarMenuItem;
|
|
323
|
+
exports.SidebarMenuSkeleton = SidebarMenuSkeleton;
|
|
324
|
+
exports.SidebarMenuSub = SidebarMenuSub;
|
|
325
|
+
exports.SidebarMenuSubButton = SidebarMenuSubButton;
|
|
326
|
+
exports.SidebarMenuSubItem = SidebarMenuSubItem;
|
|
327
|
+
exports.SidebarProvider = SidebarProvider;
|
|
328
|
+
exports.SidebarRail = SidebarRail;
|
|
329
|
+
exports.SidebarSeparator = SidebarSeparator;
|
|
330
|
+
exports.SidebarTrigger = SidebarTrigger;
|
|
331
|
+
exports.useSidebar = useSidebar;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
6
|
+
var utils = require('../../../../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
const cellVariants = classVarianceAuthority.cva("p-2 bg-inherit align-middle whitespace-nowrap [&>[role=checkbox]]:translate-y-[2px]", {
|
|
9
|
+
variants: {
|
|
10
|
+
align: {
|
|
11
|
+
left: "text-left",
|
|
12
|
+
center: "text-center",
|
|
13
|
+
right: "text-right",
|
|
14
|
+
},
|
|
15
|
+
sticky: {
|
|
16
|
+
left: "sticky z-[2]",
|
|
17
|
+
right: "sticky z-[2]",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
align: "left",
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const TableCell = (_a) => {
|
|
25
|
+
var { className, align, sticky } = _a, props = tslib.__rest(_a, ["className", "align", "sticky"]);
|
|
26
|
+
return (jsxRuntime.jsx("td", Object.assign({ "data-slot": "table-cell", "data-sticky": sticky, className: utils.cn(cellVariants({ align, sticky }), className) }, props)));
|
|
27
|
+
};
|
|
28
|
+
TableCell.displayName = "TableCell";
|
|
29
|
+
|
|
30
|
+
exports.TableCell = TableCell;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
6
|
+
var utils = require('../../../../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
const rowVariants = classVarianceAuthority.cva("bg-white hover:bg-muted border-b transition-colors", {
|
|
9
|
+
variants: {
|
|
10
|
+
selected: {
|
|
11
|
+
true: "bg-muted",
|
|
12
|
+
false: "",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
selected: false,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const TableRow = (_a) => {
|
|
20
|
+
var { className, selected } = _a, props = tslib.__rest(_a, ["className", "selected"]);
|
|
21
|
+
return (jsxRuntime.jsx("tr", Object.assign({ "data-slot": "table-row", "data-selected": selected ? "selected" : undefined, className: utils.cn(rowVariants({ selected }), className) }, props)));
|
|
22
|
+
};
|
|
23
|
+
TableRow.displayName = "TableRow";
|
|
24
|
+
|
|
25
|
+
exports.TableRow = TableRow;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var utils = require('../../../../lib/utils.js');
|
|
6
|
+
|
|
7
|
+
const TableBody = (_a) => {
|
|
8
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
9
|
+
return jsxRuntime.jsx("tbody", Object.assign({ "data-slot": "table-body", className: utils.cn("[&_tr:last-child]:border-0", className) }, props));
|
|
10
|
+
};
|
|
11
|
+
TableBody.displayName = "TableBody";
|
|
12
|
+
|
|
13
|
+
exports.TableBody = TableBody;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var utils = require('../../../../lib/utils.js');
|
|
6
|
+
|
|
7
|
+
const TableCaption = (_a) => {
|
|
8
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
9
|
+
return (jsxRuntime.jsx("caption", Object.assign({ "data-slot": "table-caption", className: utils.cn("text-muted-foreground mt-4 text-sm", className) }, props)));
|
|
10
|
+
};
|
|
11
|
+
TableCaption.displayName = "TableCaption";
|
|
12
|
+
|
|
13
|
+
exports.TableCaption = TableCaption;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var utils = require('../../../../lib/utils.js');
|
|
6
|
+
|
|
7
|
+
const TableFooter = (_a) => {
|
|
8
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
9
|
+
return (jsxRuntime.jsx("tfoot", Object.assign({ "data-slot": "table-footer", className: utils.cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className) }, props)));
|
|
10
|
+
};
|
|
11
|
+
TableFooter.displayName = "TableFooter";
|
|
12
|
+
|
|
13
|
+
exports.TableFooter = TableFooter;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
6
|
+
var utils = require('../../../../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
const cellVariants = classVarianceAuthority.cva("text-foreground h-10 px-2 text-left align-middle font-semibold whitespace-nowrap bg-white [&>[role=checkbox]]:translate-y-[2px]", {
|
|
9
|
+
variants: {
|
|
10
|
+
align: {
|
|
11
|
+
left: "text-left",
|
|
12
|
+
center: "text-center",
|
|
13
|
+
right: "text-right",
|
|
14
|
+
},
|
|
15
|
+
sticky: {
|
|
16
|
+
left: "sticky z-[4]!",
|
|
17
|
+
right: "sticky z-[4]!",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
align: "left",
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const TableHead = (_a) => {
|
|
25
|
+
var { className, sticky } = _a, props = tslib.__rest(_a, ["className", "sticky"]);
|
|
26
|
+
return (jsxRuntime.jsx("th", Object.assign({ "data-slot": "table-head", "data-sticky": sticky, className: utils.cn(cellVariants({ sticky }), className) }, props)));
|
|
27
|
+
};
|
|
28
|
+
TableHead.displayName = "TableHead";
|
|
29
|
+
|
|
30
|
+
exports.TableHead = TableHead;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var utils = require('../../../../lib/utils.js');
|
|
6
|
+
|
|
7
|
+
const TableHeader = (_a) => {
|
|
8
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
9
|
+
return jsxRuntime.jsx("thead", Object.assign({ "data-slot": "table-header", className: utils.cn("[&_tr]:border-b", className) }, props));
|
|
10
|
+
};
|
|
11
|
+
TableHeader.displayName = "TableHeader";
|
|
12
|
+
|
|
13
|
+
exports.TableHeader = TableHeader;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var cell = require('./components/cell.js');
|
|
6
|
+
var row = require('./components/row.js');
|
|
7
|
+
var tableHead = require('./components/table-head.js');
|
|
8
|
+
var tableHeader = require('./components/table-header.js');
|
|
9
|
+
var tableBody = require('./components/table-body.js');
|
|
10
|
+
var tableFooter = require('./components/table-footer.js');
|
|
11
|
+
var tableCaption = require('./components/table-caption.js');
|
|
12
|
+
var utils = require('../../../lib/utils.js');
|
|
13
|
+
|
|
14
|
+
const Table = (_a) => {
|
|
15
|
+
var { className, stickyHeader, grid } = _a, props = tslib.__rest(_a, ["className", "stickyHeader", "grid"]);
|
|
16
|
+
return (jsxRuntime.jsx("table", Object.assign({ "data-slot": "table", className: utils.cn("w-full table-fixed caption-bottom text-sm", {
|
|
17
|
+
"[&_th]:sticky [&_th]:top-0 [&_th]:z-3": stickyHeader,
|
|
18
|
+
"[&_td]:border-r [&_td]:border-slate-200 [&_th]:border-r [&_th]:border-slate-200": grid,
|
|
19
|
+
}, className) }, props)));
|
|
20
|
+
};
|
|
21
|
+
Table.displayName = "Table";
|
|
22
|
+
const TableContainer = (_a) => {
|
|
23
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
24
|
+
return jsxRuntime.jsx("div", Object.assign({ "data-slot": "table-container", className: utils.cn("relative w-full overflow-auto", className) }, props));
|
|
25
|
+
};
|
|
26
|
+
TableContainer.displayName = "TableContainer";
|
|
27
|
+
|
|
28
|
+
exports.TableCell = cell.TableCell;
|
|
29
|
+
exports.TableRow = row.TableRow;
|
|
30
|
+
exports.TableHead = tableHead.TableHead;
|
|
31
|
+
exports.TableHeader = tableHeader.TableHeader;
|
|
32
|
+
exports.TableBody = tableBody.TableBody;
|
|
33
|
+
exports.TableFooter = tableFooter.TableFooter;
|
|
34
|
+
exports.TableCaption = tableCaption.TableCaption;
|
|
35
|
+
exports.Table = Table;
|
|
36
|
+
exports.TableContainer = TableContainer;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
6
|
+
var utils = require('../../../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TabsPrimitive);
|
|
26
|
+
|
|
27
|
+
function Tabs(_a) {
|
|
28
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
29
|
+
return jsxRuntime.jsx(TabsPrimitive__namespace.Root, Object.assign({ "data-slot": "tabs", className: utils.cn("flex flex-col gap-2", className) }, props));
|
|
30
|
+
}
|
|
31
|
+
function TabsList(_a) {
|
|
32
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
33
|
+
return (jsxRuntime.jsx(TabsPrimitive__namespace.List, Object.assign({ "data-slot": "tabs-list", className: utils.cn("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]", className) }, props)));
|
|
34
|
+
}
|
|
35
|
+
function TabsTrigger(_a) {
|
|
36
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
37
|
+
return (jsxRuntime.jsx(TabsPrimitive__namespace.Trigger, Object.assign({ "data-slot": "tabs-trigger", className: utils.cn("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className) }, props)));
|
|
38
|
+
}
|
|
39
|
+
function TabsContent(_a) {
|
|
40
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
41
|
+
return jsxRuntime.jsx(TabsPrimitive__namespace.Content, Object.assign({ "data-slot": "tabs-content", className: utils.cn("flex-1 outline-none", className) }, props));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
exports.Tabs = Tabs;
|
|
45
|
+
exports.TabsContent = TabsContent;
|
|
46
|
+
exports.TabsList = TabsList;
|
|
47
|
+
exports.TabsTrigger = TabsTrigger;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var heading = require('../../typography/heading/heading.js');
|
|
6
|
+
var text = require('../../typography/text/text.js');
|
|
7
|
+
var button = require('../../buttons/button/button.js');
|
|
8
|
+
var flex = require('../../layout/flex/flex.js');
|
|
9
|
+
|
|
10
|
+
const EmptyStateBase = react.forwardRef((props, ref) => {
|
|
11
|
+
return jsxRuntime.jsx(flex.Flex, Object.assign({ ref: ref, direction: "col", justify: "center", align: "center", gap: 8 }, props));
|
|
12
|
+
});
|
|
13
|
+
const Image = (props) => jsxRuntime.jsx(flex.Flex, Object.assign({ align: "center", justify: "center" }, props));
|
|
14
|
+
const Title = (props) => jsxRuntime.jsx(heading.Heading, Object.assign({ level: 6, color: "primary" }, props));
|
|
15
|
+
const Description = (props) => jsxRuntime.jsx(text.Text, Object.assign({ type: "body", color: "primary" }, props));
|
|
16
|
+
const Action = (props) => jsxRuntime.jsx(button.Button, Object.assign({ variant: "default", size: "default" }, props));
|
|
17
|
+
const EmptyState = Object.assign(EmptyStateBase, {
|
|
18
|
+
Image,
|
|
19
|
+
Title,
|
|
20
|
+
Description,
|
|
21
|
+
Action,
|
|
22
|
+
});
|
|
23
|
+
Image.displayName = "EmptyState.Image";
|
|
24
|
+
Title.displayName = "EmptyState.Title";
|
|
25
|
+
Description.displayName = "EmptyState.Description";
|
|
26
|
+
Action.displayName = "EmptyState.Action";
|
|
27
|
+
EmptyState.displayName = "EmptyState";
|
|
28
|
+
|
|
29
|
+
exports.EmptyState = EmptyState;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactSeparator = require('@radix-ui/react-separator');
|
|
6
|
+
var utils = require('../../../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
const Separator = (_a) => {
|
|
9
|
+
var { className, orientation = "horizontal", decorative = true } = _a, props = tslib.__rest(_a, ["className", "orientation", "decorative"]);
|
|
10
|
+
return (jsxRuntime.jsx(reactSeparator.Root, Object.assign({ "data-slot": "separator-root", decorative: decorative, orientation: orientation, className: utils.cn("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className) }, props)));
|
|
11
|
+
};
|
|
12
|
+
Separator.displayName = "Separator";
|
|
13
|
+
|
|
14
|
+
exports.Separator = Separator;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var utils = require('../../../lib/utils.js');
|
|
6
|
+
|
|
7
|
+
const Skeleton = (_a) => {
|
|
8
|
+
var { className } = _a, props = tslib.__rest(_a, ["className"]);
|
|
9
|
+
return jsxRuntime.jsx("div", Object.assign({ "data-slot": "skeleton", className: utils.cn("bg-accent animate-pulse rounded-md", className) }, props));
|
|
10
|
+
};
|
|
11
|
+
Skeleton.displayName = "Skeleton";
|
|
12
|
+
|
|
13
|
+
exports.Skeleton = Skeleton;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
|
|
6
|
+
const Show = ({ when, fallback, children }) => when ? children : jsxRuntime.jsx(react.Fragment, { children: fallback });
|
|
7
|
+
const StatusController = ({ loading = false, error = false, empty = false, loadingFallback, errorFallback, emptyFallback, children, }) => {
|
|
8
|
+
return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Show, { when: loading, children: loadingFallback }), jsxRuntime.jsx(Show, { when: !loading && error, children: errorFallback }), jsxRuntime.jsx(Show, { when: !loading && !error && empty, children: emptyFallback }), jsxRuntime.jsx(Show, { when: !loading && !error && !empty, children: children })] }));
|
|
9
|
+
};
|
|
10
|
+
StatusController.displayName = "StatusController";
|
|
11
|
+
|
|
12
|
+
exports.StatusController = StatusController;
|