@ikatec/nebula-react 1.9.0-beta.3 → 1.9.0-beta.4
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/ikatec-nebula-react-1.9.0-beta.4.tgz +0 -0
- package/dist/index.d.mts +50 -1
- package/dist/index.d.ts +50 -1
- package/dist/index.js +278 -0
- package/dist/index.mjs +267 -2
- package/package.json +1 -1
- package/dist/ikatec-nebula-react-1.9.0-beta.3.tgz +0 -0
|
Binary file
|
package/dist/index.d.mts
CHANGED
|
@@ -1088,6 +1088,53 @@ interface LinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElemen
|
|
|
1088
1088
|
}
|
|
1089
1089
|
declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
1090
1090
|
|
|
1091
|
+
declare enum SidebarStateEnum {
|
|
1092
|
+
expanded = "expanded",
|
|
1093
|
+
rail = "rail",
|
|
1094
|
+
collapsed = "collapsed"
|
|
1095
|
+
}
|
|
1096
|
+
type SidebarState = keyof typeof SidebarStateEnum;
|
|
1097
|
+
type SidebarContextType = {
|
|
1098
|
+
state: SidebarState;
|
|
1099
|
+
setState: (s: SidebarState) => void;
|
|
1100
|
+
isMobile: boolean;
|
|
1101
|
+
};
|
|
1102
|
+
declare function useSidebar(): SidebarContextType;
|
|
1103
|
+
interface SidebarProps {
|
|
1104
|
+
children: React$1.ReactNode;
|
|
1105
|
+
defaultState?: SidebarState;
|
|
1106
|
+
open?: boolean;
|
|
1107
|
+
onOpenChange?: (open: boolean) => void;
|
|
1108
|
+
}
|
|
1109
|
+
declare function Sidebar({ children, defaultState, open, onOpenChange, }: SidebarProps): react_jsx_runtime.JSX.Element;
|
|
1110
|
+
declare function SidebarHeader({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
1111
|
+
declare function SidebarContent({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
1112
|
+
declare function SidebarTitle({ className, children, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element | null;
|
|
1113
|
+
declare function SidebarFooter({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
1114
|
+
declare const SidebarTrigger: React$1.ForwardRefExoticComponent<Omit<ButtonProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & {
|
|
1115
|
+
asChild?: boolean;
|
|
1116
|
+
} & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1117
|
+
declare function SidebarGroup({ children, className, }: {
|
|
1118
|
+
children: React$1.ReactNode;
|
|
1119
|
+
className?: string;
|
|
1120
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1121
|
+
declare function SidebarGroupLabel({ children }: {
|
|
1122
|
+
children: React$1.ReactNode;
|
|
1123
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1124
|
+
declare function SidebarSeparator(): react_jsx_runtime.JSX.Element;
|
|
1125
|
+
type SidebarMenuItemProps = {
|
|
1126
|
+
icon?: React$1.ReactNode;
|
|
1127
|
+
action?: React$1.ReactNode;
|
|
1128
|
+
label: string;
|
|
1129
|
+
active?: boolean;
|
|
1130
|
+
disabled?: boolean;
|
|
1131
|
+
counter?: number;
|
|
1132
|
+
collapsible?: boolean;
|
|
1133
|
+
defaultOpen?: boolean;
|
|
1134
|
+
children?: React$1.ReactNode;
|
|
1135
|
+
};
|
|
1136
|
+
declare function SidebarMenuItem({ icon, action, label, active, disabled, counter, collapsible, defaultOpen, children, }: SidebarMenuItemProps): react_jsx_runtime.JSX.Element;
|
|
1137
|
+
|
|
1091
1138
|
/**
|
|
1092
1139
|
* Context type to use the NebulaI18nProvider.
|
|
1093
1140
|
*/
|
|
@@ -1158,4 +1205,6 @@ declare function useClickOutside<T extends HTMLElement>(refs: PossibleRefs<T>, o
|
|
|
1158
1205
|
|
|
1159
1206
|
declare function useKeyPress(key: string, callback: VoidFunction): void;
|
|
1160
1207
|
|
|
1161
|
-
|
|
1208
|
+
declare const useIsMobile: (breakpoint?: number) => boolean;
|
|
1209
|
+
|
|
1210
|
+
export { Accordion, AccordionContent, AccordionDescription, AccordionItem, type AccordionProps, AccordionTitle, AccordionTrigger, ActionBar, ActionBarButton, ActionBarClose, ActionBarContent, ActionBarDivider, ActionBarPortal, ActionBarTrigger, Alert, AlertButton, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, StyledAsync as Async, StyledAsyncCreatable as AsyncCreatable, Avatar, AvatarFallback, AvatarHoverAction, AvatarImage, AvatarSizeEnum, AvatarStick, AvatarVariantEnum, Badge, type BadgeProps, BannerAlert, type BannerAlertProps, BannerType, BannerVariant, Box, type BoxProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, Calendar, type CalendarProps, Caption, type CaptionProps, Checkbox, type CheckboxProps, StyledCreatable as Creatable, Cropper, CropperCropArea, CropperDescription, CropperImage, type CropperProps, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type FileMetadata, FileUpload, type FileUploadActions, FileUploadError, type FileUploadOptions, type FileUploadProps, type FileUploadState, type FileWithPreview, Heading, type HeadingProps, InputDatePickerSingle, type InputDatePickerSingleProps, InputDateRangePicker, type InputDateRangePickerProps, InputDateTimePickerSingle, type InputDateTimePickerSingleProps, InputPhone, InputText, type InputTextProps, InputTime, type InputTimeProps, KanbanBoard, type KanbanBoardCard, type KanbanBoardColumn, type KanbanBoardProps, KanbanCard, type KanbanCardDropEvent, KanbanColumn, KanbanColumnDragHandle, type KanbanColumnDropEvent, KanbanColumnFooter, KanbanColumnHeader, KanbanColumnTitle, type KanbanOrderingMode, type KanbanRenderCardContext, type KanbanRenderColumnBodyContext, type KanbanRenderColumnContext, Label, Link, type LinkProps, NebulaI18nProvider, type NebulaI18nProviderProps, Pagination, type PaginationProps, Paragraph, type ParagraphProps, Popover, PopoverContent, type PopoverContentProps, PopoverTrigger, ProfileImage, type ProfileImageProps, RadioGroup, RadioGroupItem, StyledSelect as Select, type CreateStyledSelectProps as SelectProps, Separator, type SeparatorProps, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarMenuItem, type SidebarProps, SidebarSeparator, SidebarStateEnum, SidebarTitle, SidebarTrigger, Skeleton, type SkeletonProps, Slider, Space, SpaceDirectionEnum, type SpaceProps, SpaceSizeEnum, Stepper, StepperDescription, StepperIndicator, StepperItem, StepperSeparator, StepperTitle, StepperTrigger, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, type TagProps, TextArea, type TextAreaProps, TipCard, TipCardContent, TipCardFooter, TipCardHeader, TipCardItem, TipCardMedia, TipCardMediaType, TipCardProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupTypeEnum, ToggleSizeEnum, Tooltip, type TooltipProps, alertVariants, badgeSizeEnum, badgeVariantEnum, buttonSizeEnum, buttonVariantEnum, buttonVariantsConfig, dateIsAvailable, formatBytes, getNebulaLanguage, localeByi18nKey, messages, separatorVariants, setNebulaLanguage, tagVariantsEnum, tailwind, toast, toggleVariants, useClickOutside, useFileUpload, useIsMobile, useKeyPress, useNebulaI18n, useSidebar, useTipCard };
|
package/dist/index.d.ts
CHANGED
|
@@ -1088,6 +1088,53 @@ interface LinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElemen
|
|
|
1088
1088
|
}
|
|
1089
1089
|
declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
1090
1090
|
|
|
1091
|
+
declare enum SidebarStateEnum {
|
|
1092
|
+
expanded = "expanded",
|
|
1093
|
+
rail = "rail",
|
|
1094
|
+
collapsed = "collapsed"
|
|
1095
|
+
}
|
|
1096
|
+
type SidebarState = keyof typeof SidebarStateEnum;
|
|
1097
|
+
type SidebarContextType = {
|
|
1098
|
+
state: SidebarState;
|
|
1099
|
+
setState: (s: SidebarState) => void;
|
|
1100
|
+
isMobile: boolean;
|
|
1101
|
+
};
|
|
1102
|
+
declare function useSidebar(): SidebarContextType;
|
|
1103
|
+
interface SidebarProps {
|
|
1104
|
+
children: React$1.ReactNode;
|
|
1105
|
+
defaultState?: SidebarState;
|
|
1106
|
+
open?: boolean;
|
|
1107
|
+
onOpenChange?: (open: boolean) => void;
|
|
1108
|
+
}
|
|
1109
|
+
declare function Sidebar({ children, defaultState, open, onOpenChange, }: SidebarProps): react_jsx_runtime.JSX.Element;
|
|
1110
|
+
declare function SidebarHeader({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
1111
|
+
declare function SidebarContent({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
1112
|
+
declare function SidebarTitle({ className, children, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element | null;
|
|
1113
|
+
declare function SidebarFooter({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
1114
|
+
declare const SidebarTrigger: React$1.ForwardRefExoticComponent<Omit<ButtonProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & {
|
|
1115
|
+
asChild?: boolean;
|
|
1116
|
+
} & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1117
|
+
declare function SidebarGroup({ children, className, }: {
|
|
1118
|
+
children: React$1.ReactNode;
|
|
1119
|
+
className?: string;
|
|
1120
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1121
|
+
declare function SidebarGroupLabel({ children }: {
|
|
1122
|
+
children: React$1.ReactNode;
|
|
1123
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1124
|
+
declare function SidebarSeparator(): react_jsx_runtime.JSX.Element;
|
|
1125
|
+
type SidebarMenuItemProps = {
|
|
1126
|
+
icon?: React$1.ReactNode;
|
|
1127
|
+
action?: React$1.ReactNode;
|
|
1128
|
+
label: string;
|
|
1129
|
+
active?: boolean;
|
|
1130
|
+
disabled?: boolean;
|
|
1131
|
+
counter?: number;
|
|
1132
|
+
collapsible?: boolean;
|
|
1133
|
+
defaultOpen?: boolean;
|
|
1134
|
+
children?: React$1.ReactNode;
|
|
1135
|
+
};
|
|
1136
|
+
declare function SidebarMenuItem({ icon, action, label, active, disabled, counter, collapsible, defaultOpen, children, }: SidebarMenuItemProps): react_jsx_runtime.JSX.Element;
|
|
1137
|
+
|
|
1091
1138
|
/**
|
|
1092
1139
|
* Context type to use the NebulaI18nProvider.
|
|
1093
1140
|
*/
|
|
@@ -1158,4 +1205,6 @@ declare function useClickOutside<T extends HTMLElement>(refs: PossibleRefs<T>, o
|
|
|
1158
1205
|
|
|
1159
1206
|
declare function useKeyPress(key: string, callback: VoidFunction): void;
|
|
1160
1207
|
|
|
1161
|
-
|
|
1208
|
+
declare const useIsMobile: (breakpoint?: number) => boolean;
|
|
1209
|
+
|
|
1210
|
+
export { Accordion, AccordionContent, AccordionDescription, AccordionItem, type AccordionProps, AccordionTitle, AccordionTrigger, ActionBar, ActionBarButton, ActionBarClose, ActionBarContent, ActionBarDivider, ActionBarPortal, ActionBarTrigger, Alert, AlertButton, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, StyledAsync as Async, StyledAsyncCreatable as AsyncCreatable, Avatar, AvatarFallback, AvatarHoverAction, AvatarImage, AvatarSizeEnum, AvatarStick, AvatarVariantEnum, Badge, type BadgeProps, BannerAlert, type BannerAlertProps, BannerType, BannerVariant, Box, type BoxProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, Calendar, type CalendarProps, Caption, type CaptionProps, Checkbox, type CheckboxProps, StyledCreatable as Creatable, Cropper, CropperCropArea, CropperDescription, CropperImage, type CropperProps, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type FileMetadata, FileUpload, type FileUploadActions, FileUploadError, type FileUploadOptions, type FileUploadProps, type FileUploadState, type FileWithPreview, Heading, type HeadingProps, InputDatePickerSingle, type InputDatePickerSingleProps, InputDateRangePicker, type InputDateRangePickerProps, InputDateTimePickerSingle, type InputDateTimePickerSingleProps, InputPhone, InputText, type InputTextProps, InputTime, type InputTimeProps, KanbanBoard, type KanbanBoardCard, type KanbanBoardColumn, type KanbanBoardProps, KanbanCard, type KanbanCardDropEvent, KanbanColumn, KanbanColumnDragHandle, type KanbanColumnDropEvent, KanbanColumnFooter, KanbanColumnHeader, KanbanColumnTitle, type KanbanOrderingMode, type KanbanRenderCardContext, type KanbanRenderColumnBodyContext, type KanbanRenderColumnContext, Label, Link, type LinkProps, NebulaI18nProvider, type NebulaI18nProviderProps, Pagination, type PaginationProps, Paragraph, type ParagraphProps, Popover, PopoverContent, type PopoverContentProps, PopoverTrigger, ProfileImage, type ProfileImageProps, RadioGroup, RadioGroupItem, StyledSelect as Select, type CreateStyledSelectProps as SelectProps, Separator, type SeparatorProps, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarMenuItem, type SidebarProps, SidebarSeparator, SidebarStateEnum, SidebarTitle, SidebarTrigger, Skeleton, type SkeletonProps, Slider, Space, SpaceDirectionEnum, type SpaceProps, SpaceSizeEnum, Stepper, StepperDescription, StepperIndicator, StepperItem, StepperSeparator, StepperTitle, StepperTrigger, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, type TagProps, TextArea, type TextAreaProps, TipCard, TipCardContent, TipCardFooter, TipCardHeader, TipCardItem, TipCardMedia, TipCardMediaType, TipCardProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupTypeEnum, ToggleSizeEnum, Tooltip, type TooltipProps, alertVariants, badgeSizeEnum, badgeVariantEnum, buttonSizeEnum, buttonVariantEnum, buttonVariantsConfig, dateIsAvailable, formatBytes, getNebulaLanguage, localeByi18nKey, messages, separatorVariants, setNebulaLanguage, tagVariantsEnum, tailwind, toast, toggleVariants, useClickOutside, useFileUpload, useIsMobile, useKeyPress, useNebulaI18n, useSidebar, useTipCard };
|
package/dist/index.js
CHANGED
|
@@ -8835,6 +8835,271 @@ var Tooltip = React25__namespace.forwardRef(
|
|
|
8835
8835
|
}
|
|
8836
8836
|
);
|
|
8837
8837
|
Tooltip.displayName = "Tooltip";
|
|
8838
|
+
var useIsMobile = (breakpoint = 768) => {
|
|
8839
|
+
const [isMobile, setIsMobile] = React25.useState(false);
|
|
8840
|
+
React25.useEffect(() => {
|
|
8841
|
+
const mediaQuery = window.matchMedia(`(max-width: ${breakpoint}px)`);
|
|
8842
|
+
const handleMediaQueryChange = (event) => setIsMobile(event.matches);
|
|
8843
|
+
setIsMobile(mediaQuery.matches);
|
|
8844
|
+
mediaQuery.addEventListener("change", handleMediaQueryChange);
|
|
8845
|
+
return () => {
|
|
8846
|
+
mediaQuery.removeEventListener("change", handleMediaQueryChange);
|
|
8847
|
+
};
|
|
8848
|
+
}, [breakpoint]);
|
|
8849
|
+
return isMobile;
|
|
8850
|
+
};
|
|
8851
|
+
var SidebarStateEnum = /* @__PURE__ */ ((SidebarStateEnum2) => {
|
|
8852
|
+
SidebarStateEnum2["expanded"] = "expanded";
|
|
8853
|
+
SidebarStateEnum2["rail"] = "rail";
|
|
8854
|
+
SidebarStateEnum2["collapsed"] = "collapsed";
|
|
8855
|
+
return SidebarStateEnum2;
|
|
8856
|
+
})(SidebarStateEnum || {});
|
|
8857
|
+
var SidebarContext = React25__namespace.createContext(null);
|
|
8858
|
+
function useSidebar() {
|
|
8859
|
+
const ctx = React25__namespace.useContext(SidebarContext);
|
|
8860
|
+
if (!ctx) throw new Error("Sidebar must be used inside Sidebar");
|
|
8861
|
+
return ctx;
|
|
8862
|
+
}
|
|
8863
|
+
function Sidebar({
|
|
8864
|
+
children,
|
|
8865
|
+
defaultState = "expanded",
|
|
8866
|
+
open,
|
|
8867
|
+
onOpenChange
|
|
8868
|
+
}) {
|
|
8869
|
+
const isMobile = useIsMobile();
|
|
8870
|
+
const isControlled = open !== void 0;
|
|
8871
|
+
const [internalState, setInternalState] = React25__namespace.useState(defaultState);
|
|
8872
|
+
const state = isControlled ? open ? "expanded" : "collapsed" : internalState;
|
|
8873
|
+
const setState = React25__namespace.useCallback(
|
|
8874
|
+
(next) => {
|
|
8875
|
+
if (!isControlled) {
|
|
8876
|
+
setInternalState(next);
|
|
8877
|
+
}
|
|
8878
|
+
if (onOpenChange) {
|
|
8879
|
+
onOpenChange(next !== "collapsed");
|
|
8880
|
+
}
|
|
8881
|
+
},
|
|
8882
|
+
[isControlled, onOpenChange]
|
|
8883
|
+
);
|
|
8884
|
+
const contextValue = React25__namespace.useMemo(
|
|
8885
|
+
() => ({ state, setState, isMobile }),
|
|
8886
|
+
[state, isMobile, setState]
|
|
8887
|
+
);
|
|
8888
|
+
if (isMobile) {
|
|
8889
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8890
|
+
Drawer,
|
|
8891
|
+
{
|
|
8892
|
+
open: state !== "collapsed",
|
|
8893
|
+
onOpenChange: (o) => setState(o ? "expanded" : "collapsed"),
|
|
8894
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DrawerContent, { className: "nebula-ds w-[var(--sidebar-width)] p-0 shadow-xl", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nebula-ds flex h-full flex-col bg-sidebar-background", children }) })
|
|
8895
|
+
}
|
|
8896
|
+
) });
|
|
8897
|
+
}
|
|
8898
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8899
|
+
"aside",
|
|
8900
|
+
{
|
|
8901
|
+
"data-state": state,
|
|
8902
|
+
className: cn(
|
|
8903
|
+
"relative hidden md:flex flex-col border-r border-sidebar-border bg-sidebar-background transition-all duration-300 ease-in-out",
|
|
8904
|
+
state === "expanded" && "w-[var(--sidebar-width)]",
|
|
8905
|
+
state === "rail" && "w-[var(--sidebar-rail-width)]",
|
|
8906
|
+
state === "collapsed" && "w-0 overflow-hidden"
|
|
8907
|
+
),
|
|
8908
|
+
children
|
|
8909
|
+
}
|
|
8910
|
+
) });
|
|
8911
|
+
}
|
|
8912
|
+
function SidebarHeader({
|
|
8913
|
+
className,
|
|
8914
|
+
...props
|
|
8915
|
+
}) {
|
|
8916
|
+
const { state } = useSidebar();
|
|
8917
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8918
|
+
"div",
|
|
8919
|
+
{
|
|
8920
|
+
"data-state": state,
|
|
8921
|
+
className: cn(
|
|
8922
|
+
"sticky top-0 z-20 flex h-14 items-center border-b border-sidebar-border bg-sidebar-background transition-all duration-300",
|
|
8923
|
+
state === "expanded" && "justify-between px-4",
|
|
8924
|
+
state === "rail" && "justify-center px-2",
|
|
8925
|
+
className
|
|
8926
|
+
),
|
|
8927
|
+
...props
|
|
8928
|
+
}
|
|
8929
|
+
);
|
|
8930
|
+
}
|
|
8931
|
+
function SidebarContent({
|
|
8932
|
+
className,
|
|
8933
|
+
...props
|
|
8934
|
+
}) {
|
|
8935
|
+
const { state } = useSidebar();
|
|
8936
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8937
|
+
"div",
|
|
8938
|
+
{
|
|
8939
|
+
className: cn(
|
|
8940
|
+
"flex-1 overflow-y-auto py-3 space-y-4",
|
|
8941
|
+
state === "rail" && "flex flex-col items-center",
|
|
8942
|
+
className
|
|
8943
|
+
),
|
|
8944
|
+
...props
|
|
8945
|
+
}
|
|
8946
|
+
);
|
|
8947
|
+
}
|
|
8948
|
+
function SidebarTitle({
|
|
8949
|
+
className,
|
|
8950
|
+
children,
|
|
8951
|
+
...props
|
|
8952
|
+
}) {
|
|
8953
|
+
const { state } = useSidebar();
|
|
8954
|
+
if (state === "rail") return null;
|
|
8955
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8956
|
+
"div",
|
|
8957
|
+
{
|
|
8958
|
+
"data-state": state,
|
|
8959
|
+
className: cn(
|
|
8960
|
+
"font-semibold text-sidebar-text whitespace-nowrap transition-all duration-300",
|
|
8961
|
+
className
|
|
8962
|
+
),
|
|
8963
|
+
...props,
|
|
8964
|
+
children
|
|
8965
|
+
}
|
|
8966
|
+
);
|
|
8967
|
+
}
|
|
8968
|
+
function SidebarFooter({
|
|
8969
|
+
className,
|
|
8970
|
+
...props
|
|
8971
|
+
}) {
|
|
8972
|
+
const { state } = useSidebar();
|
|
8973
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8974
|
+
"div",
|
|
8975
|
+
{
|
|
8976
|
+
className: cn(
|
|
8977
|
+
"sticky bottom-0 bg-sidebar-background p-3",
|
|
8978
|
+
state === "rail" && "flex justify-center p-2",
|
|
8979
|
+
className
|
|
8980
|
+
),
|
|
8981
|
+
...props
|
|
8982
|
+
}
|
|
8983
|
+
);
|
|
8984
|
+
}
|
|
8985
|
+
var SidebarTrigger = React25__namespace.forwardRef(({ asChild = false, className, onClick, children, ...props }, ref) => {
|
|
8986
|
+
const { state, setState, isMobile } = useSidebar();
|
|
8987
|
+
const Comp = asChild ? reactSlot.Slot : Button;
|
|
8988
|
+
function handleToggle(e) {
|
|
8989
|
+
if (isMobile) {
|
|
8990
|
+
setState(state === "collapsed" ? "expanded" : "collapsed");
|
|
8991
|
+
} else {
|
|
8992
|
+
setState(state === "expanded" ? "rail" : "expanded");
|
|
8993
|
+
}
|
|
8994
|
+
onClick?.(e);
|
|
8995
|
+
}
|
|
8996
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8997
|
+
Comp,
|
|
8998
|
+
{
|
|
8999
|
+
ref,
|
|
9000
|
+
onClick: handleToggle,
|
|
9001
|
+
"aria-label": "Toggle sidebar",
|
|
9002
|
+
className: cn(
|
|
9003
|
+
!asChild && "size-9",
|
|
9004
|
+
state === "rail" && "mx-auto",
|
|
9005
|
+
className
|
|
9006
|
+
),
|
|
9007
|
+
...!asChild && { variant: "ghost", icon: true },
|
|
9008
|
+
...props,
|
|
9009
|
+
children: children ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PanelLeft, { className: "nebula-ds size-5" })
|
|
9010
|
+
}
|
|
9011
|
+
);
|
|
9012
|
+
});
|
|
9013
|
+
SidebarTrigger.displayName = "SidebarTrigger";
|
|
9014
|
+
function SidebarGroup({
|
|
9015
|
+
children,
|
|
9016
|
+
className
|
|
9017
|
+
}) {
|
|
9018
|
+
const { state } = useSidebar();
|
|
9019
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9020
|
+
"div",
|
|
9021
|
+
{
|
|
9022
|
+
className: cn(
|
|
9023
|
+
"flex flex-col space-y-1 px-2",
|
|
9024
|
+
state === "rail" && "items-center",
|
|
9025
|
+
className
|
|
9026
|
+
),
|
|
9027
|
+
children
|
|
9028
|
+
}
|
|
9029
|
+
);
|
|
9030
|
+
}
|
|
9031
|
+
function SidebarGroupLabel({ children }) {
|
|
9032
|
+
const { state } = useSidebar();
|
|
9033
|
+
if (state === "rail") return null;
|
|
9034
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nebula-ds px-3 py-1 text-xs font-medium tracking-wide text-sidebar-label", children });
|
|
9035
|
+
}
|
|
9036
|
+
function SidebarSeparator() {
|
|
9037
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Separator, { orientation: "horizontal" });
|
|
9038
|
+
}
|
|
9039
|
+
var SidebarLevelContext = React25__namespace.createContext(0);
|
|
9040
|
+
function SidebarMenuItem({
|
|
9041
|
+
icon,
|
|
9042
|
+
action,
|
|
9043
|
+
label,
|
|
9044
|
+
active,
|
|
9045
|
+
disabled,
|
|
9046
|
+
counter,
|
|
9047
|
+
collapsible,
|
|
9048
|
+
defaultOpen = false,
|
|
9049
|
+
children
|
|
9050
|
+
}) {
|
|
9051
|
+
const { state } = useSidebar();
|
|
9052
|
+
const [open, setOpen] = React25__namespace.useState(defaultOpen);
|
|
9053
|
+
const level = React25__namespace.useContext(SidebarLevelContext);
|
|
9054
|
+
const isRail = state === "rail";
|
|
9055
|
+
const paddingLeft = level > 0 ? "pl-11" : "";
|
|
9056
|
+
const content2 = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9057
|
+
Button,
|
|
9058
|
+
{
|
|
9059
|
+
variant: "ghost",
|
|
9060
|
+
disabled,
|
|
9061
|
+
"aria-expanded": collapsible ? open : void 0,
|
|
9062
|
+
onClick: () => collapsible && setOpen((p) => !p),
|
|
9063
|
+
className: cn(
|
|
9064
|
+
"group font-medium relative flex items-center rounded-lg py-2 text-sm transition-colors",
|
|
9065
|
+
active && "font-semibold",
|
|
9066
|
+
isRail ? "justify-center w-10 h-10 mx-auto px-0 rounded-full" : cn("w-full pr-3", paddingLeft)
|
|
9067
|
+
),
|
|
9068
|
+
children: [
|
|
9069
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
9070
|
+
"span",
|
|
9071
|
+
{
|
|
9072
|
+
className: cn(
|
|
9073
|
+
"flex items-center justify-center size-4 shrink-0",
|
|
9074
|
+
!isRail && "mr-3"
|
|
9075
|
+
),
|
|
9076
|
+
children: icon
|
|
9077
|
+
}
|
|
9078
|
+
),
|
|
9079
|
+
!isRail && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9080
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "nebula-ds flex-1 truncate text-left", children: label }),
|
|
9081
|
+
(action || counter !== void 0 || collapsible) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "nebula-ds flex items-center gap-2 shrink-0", children: [
|
|
9082
|
+
action,
|
|
9083
|
+
counter !== void 0 && counter > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nebula-ds text-xs font-medium bg-muted px-2 py-0.5 rounded-md", children: counter }),
|
|
9084
|
+
collapsible && /* @__PURE__ */ jsxRuntime.jsx(
|
|
9085
|
+
lucideReact.ChevronDown,
|
|
9086
|
+
{
|
|
9087
|
+
className: cn(
|
|
9088
|
+
"size-4 transition-transform",
|
|
9089
|
+
open && "rotate-180"
|
|
9090
|
+
)
|
|
9091
|
+
}
|
|
9092
|
+
)
|
|
9093
|
+
] })
|
|
9094
|
+
] })
|
|
9095
|
+
]
|
|
9096
|
+
}
|
|
9097
|
+
);
|
|
9098
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(isRail && "flex justify-center"), children: [
|
|
9099
|
+
isRail ? /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { content: label, side: "right", children: content2 }) : content2,
|
|
9100
|
+
collapsible && open && !isRail && /* @__PURE__ */ jsxRuntime.jsx(SidebarLevelContext.Provider, { value: level + 1, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nebula-ds mt-1 space-y-1", children }) })
|
|
9101
|
+
] });
|
|
9102
|
+
}
|
|
8838
9103
|
|
|
8839
9104
|
// src/tailwind.ts
|
|
8840
9105
|
function content({ base = "./" } = {}) {
|
|
@@ -8965,6 +9230,17 @@ exports.RadioGroup = RadioGroup2;
|
|
|
8965
9230
|
exports.RadioGroupItem = RadioGroupItem;
|
|
8966
9231
|
exports.Select = StyledSelect;
|
|
8967
9232
|
exports.Separator = Separator;
|
|
9233
|
+
exports.Sidebar = Sidebar;
|
|
9234
|
+
exports.SidebarContent = SidebarContent;
|
|
9235
|
+
exports.SidebarFooter = SidebarFooter;
|
|
9236
|
+
exports.SidebarGroup = SidebarGroup;
|
|
9237
|
+
exports.SidebarGroupLabel = SidebarGroupLabel;
|
|
9238
|
+
exports.SidebarHeader = SidebarHeader;
|
|
9239
|
+
exports.SidebarMenuItem = SidebarMenuItem;
|
|
9240
|
+
exports.SidebarSeparator = SidebarSeparator;
|
|
9241
|
+
exports.SidebarStateEnum = SidebarStateEnum;
|
|
9242
|
+
exports.SidebarTitle = SidebarTitle;
|
|
9243
|
+
exports.SidebarTrigger = SidebarTrigger;
|
|
8968
9244
|
exports.Skeleton = Skeleton;
|
|
8969
9245
|
exports.Slider = Slider;
|
|
8970
9246
|
exports.Space = Space;
|
|
@@ -9026,6 +9302,8 @@ exports.toast = toast;
|
|
|
9026
9302
|
exports.toggleVariants = toggleVariants;
|
|
9027
9303
|
exports.useClickOutside = useClickOutside;
|
|
9028
9304
|
exports.useFileUpload = useFileUpload;
|
|
9305
|
+
exports.useIsMobile = useIsMobile;
|
|
9029
9306
|
exports.useKeyPress = useKeyPress;
|
|
9030
9307
|
exports.useNebulaI18n = useNebulaI18n;
|
|
9308
|
+
exports.useSidebar = useSidebar;
|
|
9031
9309
|
exports.useTipCard = useTipCard;
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
2
|
-
import { Minus, Check, X, ChevronRight, Circle, CircleX, Eye, EyeOff, ClockIcon, ChevronLeftIcon, ChevronRightIcon, ChevronDown, XIcon, MoreHorizontal, ChevronDownIcon, MinusIcon, PlusIcon, ImageUpIcon, CalendarIcon, ChevronsLeft, ChevronLeft, ChevronsRight, UserIcon, LoaderCircleIcon, CheckIcon, FileTextIcon, FileAudioIcon, FileVideoIcon, PhoneIcon, InfoIcon, TriangleAlertIcon, CircleCheckBigIcon, Info, CircleCheckBig } from 'lucide-react';
|
|
2
|
+
import { Minus, Check, X, ChevronRight, Circle, CircleX, Eye, EyeOff, ClockIcon, ChevronLeftIcon, ChevronRightIcon, PanelLeft, ChevronDown, XIcon, MoreHorizontal, ChevronDownIcon, MinusIcon, PlusIcon, ImageUpIcon, CalendarIcon, ChevronsLeft, ChevronLeft, ChevronsRight, UserIcon, LoaderCircleIcon, CheckIcon, FileTextIcon, FileAudioIcon, FileVideoIcon, PhoneIcon, InfoIcon, TriangleAlertIcon, CircleCheckBigIcon, Info, CircleCheckBig } from 'lucide-react';
|
|
3
3
|
import { extendTailwindMerge } from 'tailwind-merge';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import * as React25 from 'react';
|
|
@@ -8792,6 +8792,271 @@ var Tooltip = React25.forwardRef(
|
|
|
8792
8792
|
}
|
|
8793
8793
|
);
|
|
8794
8794
|
Tooltip.displayName = "Tooltip";
|
|
8795
|
+
var useIsMobile = (breakpoint = 768) => {
|
|
8796
|
+
const [isMobile, setIsMobile] = useState(false);
|
|
8797
|
+
useEffect(() => {
|
|
8798
|
+
const mediaQuery = window.matchMedia(`(max-width: ${breakpoint}px)`);
|
|
8799
|
+
const handleMediaQueryChange = (event) => setIsMobile(event.matches);
|
|
8800
|
+
setIsMobile(mediaQuery.matches);
|
|
8801
|
+
mediaQuery.addEventListener("change", handleMediaQueryChange);
|
|
8802
|
+
return () => {
|
|
8803
|
+
mediaQuery.removeEventListener("change", handleMediaQueryChange);
|
|
8804
|
+
};
|
|
8805
|
+
}, [breakpoint]);
|
|
8806
|
+
return isMobile;
|
|
8807
|
+
};
|
|
8808
|
+
var SidebarStateEnum = /* @__PURE__ */ ((SidebarStateEnum2) => {
|
|
8809
|
+
SidebarStateEnum2["expanded"] = "expanded";
|
|
8810
|
+
SidebarStateEnum2["rail"] = "rail";
|
|
8811
|
+
SidebarStateEnum2["collapsed"] = "collapsed";
|
|
8812
|
+
return SidebarStateEnum2;
|
|
8813
|
+
})(SidebarStateEnum || {});
|
|
8814
|
+
var SidebarContext = React25.createContext(null);
|
|
8815
|
+
function useSidebar() {
|
|
8816
|
+
const ctx = React25.useContext(SidebarContext);
|
|
8817
|
+
if (!ctx) throw new Error("Sidebar must be used inside Sidebar");
|
|
8818
|
+
return ctx;
|
|
8819
|
+
}
|
|
8820
|
+
function Sidebar({
|
|
8821
|
+
children,
|
|
8822
|
+
defaultState = "expanded",
|
|
8823
|
+
open,
|
|
8824
|
+
onOpenChange
|
|
8825
|
+
}) {
|
|
8826
|
+
const isMobile = useIsMobile();
|
|
8827
|
+
const isControlled = open !== void 0;
|
|
8828
|
+
const [internalState, setInternalState] = React25.useState(defaultState);
|
|
8829
|
+
const state = isControlled ? open ? "expanded" : "collapsed" : internalState;
|
|
8830
|
+
const setState = React25.useCallback(
|
|
8831
|
+
(next) => {
|
|
8832
|
+
if (!isControlled) {
|
|
8833
|
+
setInternalState(next);
|
|
8834
|
+
}
|
|
8835
|
+
if (onOpenChange) {
|
|
8836
|
+
onOpenChange(next !== "collapsed");
|
|
8837
|
+
}
|
|
8838
|
+
},
|
|
8839
|
+
[isControlled, onOpenChange]
|
|
8840
|
+
);
|
|
8841
|
+
const contextValue = React25.useMemo(
|
|
8842
|
+
() => ({ state, setState, isMobile }),
|
|
8843
|
+
[state, isMobile, setState]
|
|
8844
|
+
);
|
|
8845
|
+
if (isMobile) {
|
|
8846
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
8847
|
+
Drawer,
|
|
8848
|
+
{
|
|
8849
|
+
open: state !== "collapsed",
|
|
8850
|
+
onOpenChange: (o) => setState(o ? "expanded" : "collapsed"),
|
|
8851
|
+
children: /* @__PURE__ */ jsx(DrawerContent, { className: "nebula-ds w-[var(--sidebar-width)] p-0 shadow-xl", children: /* @__PURE__ */ jsx("div", { className: "nebula-ds flex h-full flex-col bg-sidebar-background", children }) })
|
|
8852
|
+
}
|
|
8853
|
+
) });
|
|
8854
|
+
}
|
|
8855
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
8856
|
+
"aside",
|
|
8857
|
+
{
|
|
8858
|
+
"data-state": state,
|
|
8859
|
+
className: cn(
|
|
8860
|
+
"relative hidden md:flex flex-col border-r border-sidebar-border bg-sidebar-background transition-all duration-300 ease-in-out",
|
|
8861
|
+
state === "expanded" && "w-[var(--sidebar-width)]",
|
|
8862
|
+
state === "rail" && "w-[var(--sidebar-rail-width)]",
|
|
8863
|
+
state === "collapsed" && "w-0 overflow-hidden"
|
|
8864
|
+
),
|
|
8865
|
+
children
|
|
8866
|
+
}
|
|
8867
|
+
) });
|
|
8868
|
+
}
|
|
8869
|
+
function SidebarHeader({
|
|
8870
|
+
className,
|
|
8871
|
+
...props
|
|
8872
|
+
}) {
|
|
8873
|
+
const { state } = useSidebar();
|
|
8874
|
+
return /* @__PURE__ */ jsx(
|
|
8875
|
+
"div",
|
|
8876
|
+
{
|
|
8877
|
+
"data-state": state,
|
|
8878
|
+
className: cn(
|
|
8879
|
+
"sticky top-0 z-20 flex h-14 items-center border-b border-sidebar-border bg-sidebar-background transition-all duration-300",
|
|
8880
|
+
state === "expanded" && "justify-between px-4",
|
|
8881
|
+
state === "rail" && "justify-center px-2",
|
|
8882
|
+
className
|
|
8883
|
+
),
|
|
8884
|
+
...props
|
|
8885
|
+
}
|
|
8886
|
+
);
|
|
8887
|
+
}
|
|
8888
|
+
function SidebarContent({
|
|
8889
|
+
className,
|
|
8890
|
+
...props
|
|
8891
|
+
}) {
|
|
8892
|
+
const { state } = useSidebar();
|
|
8893
|
+
return /* @__PURE__ */ jsx(
|
|
8894
|
+
"div",
|
|
8895
|
+
{
|
|
8896
|
+
className: cn(
|
|
8897
|
+
"flex-1 overflow-y-auto py-3 space-y-4",
|
|
8898
|
+
state === "rail" && "flex flex-col items-center",
|
|
8899
|
+
className
|
|
8900
|
+
),
|
|
8901
|
+
...props
|
|
8902
|
+
}
|
|
8903
|
+
);
|
|
8904
|
+
}
|
|
8905
|
+
function SidebarTitle({
|
|
8906
|
+
className,
|
|
8907
|
+
children,
|
|
8908
|
+
...props
|
|
8909
|
+
}) {
|
|
8910
|
+
const { state } = useSidebar();
|
|
8911
|
+
if (state === "rail") return null;
|
|
8912
|
+
return /* @__PURE__ */ jsx(
|
|
8913
|
+
"div",
|
|
8914
|
+
{
|
|
8915
|
+
"data-state": state,
|
|
8916
|
+
className: cn(
|
|
8917
|
+
"font-semibold text-sidebar-text whitespace-nowrap transition-all duration-300",
|
|
8918
|
+
className
|
|
8919
|
+
),
|
|
8920
|
+
...props,
|
|
8921
|
+
children
|
|
8922
|
+
}
|
|
8923
|
+
);
|
|
8924
|
+
}
|
|
8925
|
+
function SidebarFooter({
|
|
8926
|
+
className,
|
|
8927
|
+
...props
|
|
8928
|
+
}) {
|
|
8929
|
+
const { state } = useSidebar();
|
|
8930
|
+
return /* @__PURE__ */ jsx(
|
|
8931
|
+
"div",
|
|
8932
|
+
{
|
|
8933
|
+
className: cn(
|
|
8934
|
+
"sticky bottom-0 bg-sidebar-background p-3",
|
|
8935
|
+
state === "rail" && "flex justify-center p-2",
|
|
8936
|
+
className
|
|
8937
|
+
),
|
|
8938
|
+
...props
|
|
8939
|
+
}
|
|
8940
|
+
);
|
|
8941
|
+
}
|
|
8942
|
+
var SidebarTrigger = React25.forwardRef(({ asChild = false, className, onClick, children, ...props }, ref) => {
|
|
8943
|
+
const { state, setState, isMobile } = useSidebar();
|
|
8944
|
+
const Comp = asChild ? Slot : Button;
|
|
8945
|
+
function handleToggle(e) {
|
|
8946
|
+
if (isMobile) {
|
|
8947
|
+
setState(state === "collapsed" ? "expanded" : "collapsed");
|
|
8948
|
+
} else {
|
|
8949
|
+
setState(state === "expanded" ? "rail" : "expanded");
|
|
8950
|
+
}
|
|
8951
|
+
onClick?.(e);
|
|
8952
|
+
}
|
|
8953
|
+
return /* @__PURE__ */ jsx(
|
|
8954
|
+
Comp,
|
|
8955
|
+
{
|
|
8956
|
+
ref,
|
|
8957
|
+
onClick: handleToggle,
|
|
8958
|
+
"aria-label": "Toggle sidebar",
|
|
8959
|
+
className: cn(
|
|
8960
|
+
!asChild && "size-9",
|
|
8961
|
+
state === "rail" && "mx-auto",
|
|
8962
|
+
className
|
|
8963
|
+
),
|
|
8964
|
+
...!asChild && { variant: "ghost", icon: true },
|
|
8965
|
+
...props,
|
|
8966
|
+
children: children ?? /* @__PURE__ */ jsx(PanelLeft, { className: "nebula-ds size-5" })
|
|
8967
|
+
}
|
|
8968
|
+
);
|
|
8969
|
+
});
|
|
8970
|
+
SidebarTrigger.displayName = "SidebarTrigger";
|
|
8971
|
+
function SidebarGroup({
|
|
8972
|
+
children,
|
|
8973
|
+
className
|
|
8974
|
+
}) {
|
|
8975
|
+
const { state } = useSidebar();
|
|
8976
|
+
return /* @__PURE__ */ jsx(
|
|
8977
|
+
"div",
|
|
8978
|
+
{
|
|
8979
|
+
className: cn(
|
|
8980
|
+
"flex flex-col space-y-1 px-2",
|
|
8981
|
+
state === "rail" && "items-center",
|
|
8982
|
+
className
|
|
8983
|
+
),
|
|
8984
|
+
children
|
|
8985
|
+
}
|
|
8986
|
+
);
|
|
8987
|
+
}
|
|
8988
|
+
function SidebarGroupLabel({ children }) {
|
|
8989
|
+
const { state } = useSidebar();
|
|
8990
|
+
if (state === "rail") return null;
|
|
8991
|
+
return /* @__PURE__ */ jsx("div", { className: "nebula-ds px-3 py-1 text-xs font-medium tracking-wide text-sidebar-label", children });
|
|
8992
|
+
}
|
|
8993
|
+
function SidebarSeparator() {
|
|
8994
|
+
return /* @__PURE__ */ jsx(Separator, { orientation: "horizontal" });
|
|
8995
|
+
}
|
|
8996
|
+
var SidebarLevelContext = React25.createContext(0);
|
|
8997
|
+
function SidebarMenuItem({
|
|
8998
|
+
icon,
|
|
8999
|
+
action,
|
|
9000
|
+
label,
|
|
9001
|
+
active,
|
|
9002
|
+
disabled,
|
|
9003
|
+
counter,
|
|
9004
|
+
collapsible,
|
|
9005
|
+
defaultOpen = false,
|
|
9006
|
+
children
|
|
9007
|
+
}) {
|
|
9008
|
+
const { state } = useSidebar();
|
|
9009
|
+
const [open, setOpen] = React25.useState(defaultOpen);
|
|
9010
|
+
const level = React25.useContext(SidebarLevelContext);
|
|
9011
|
+
const isRail = state === "rail";
|
|
9012
|
+
const paddingLeft = level > 0 ? "pl-11" : "";
|
|
9013
|
+
const content2 = /* @__PURE__ */ jsxs(
|
|
9014
|
+
Button,
|
|
9015
|
+
{
|
|
9016
|
+
variant: "ghost",
|
|
9017
|
+
disabled,
|
|
9018
|
+
"aria-expanded": collapsible ? open : void 0,
|
|
9019
|
+
onClick: () => collapsible && setOpen((p) => !p),
|
|
9020
|
+
className: cn(
|
|
9021
|
+
"group font-medium relative flex items-center rounded-lg py-2 text-sm transition-colors",
|
|
9022
|
+
active && "font-semibold",
|
|
9023
|
+
isRail ? "justify-center w-10 h-10 mx-auto px-0 rounded-full" : cn("w-full pr-3", paddingLeft)
|
|
9024
|
+
),
|
|
9025
|
+
children: [
|
|
9026
|
+
icon && /* @__PURE__ */ jsx(
|
|
9027
|
+
"span",
|
|
9028
|
+
{
|
|
9029
|
+
className: cn(
|
|
9030
|
+
"flex items-center justify-center size-4 shrink-0",
|
|
9031
|
+
!isRail && "mr-3"
|
|
9032
|
+
),
|
|
9033
|
+
children: icon
|
|
9034
|
+
}
|
|
9035
|
+
),
|
|
9036
|
+
!isRail && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9037
|
+
/* @__PURE__ */ jsx("span", { className: "nebula-ds flex-1 truncate text-left", children: label }),
|
|
9038
|
+
(action || counter !== void 0 || collapsible) && /* @__PURE__ */ jsxs("span", { className: "nebula-ds flex items-center gap-2 shrink-0", children: [
|
|
9039
|
+
action,
|
|
9040
|
+
counter !== void 0 && counter > 0 && /* @__PURE__ */ jsx("span", { className: "nebula-ds text-xs font-medium bg-muted px-2 py-0.5 rounded-md", children: counter }),
|
|
9041
|
+
collapsible && /* @__PURE__ */ jsx(
|
|
9042
|
+
ChevronDown,
|
|
9043
|
+
{
|
|
9044
|
+
className: cn(
|
|
9045
|
+
"size-4 transition-transform",
|
|
9046
|
+
open && "rotate-180"
|
|
9047
|
+
)
|
|
9048
|
+
}
|
|
9049
|
+
)
|
|
9050
|
+
] })
|
|
9051
|
+
] })
|
|
9052
|
+
]
|
|
9053
|
+
}
|
|
9054
|
+
);
|
|
9055
|
+
return /* @__PURE__ */ jsxs("div", { className: cn(isRail && "flex justify-center"), children: [
|
|
9056
|
+
isRail ? /* @__PURE__ */ jsx(Tooltip, { content: label, side: "right", children: content2 }) : content2,
|
|
9057
|
+
collapsible && open && !isRail && /* @__PURE__ */ jsx(SidebarLevelContext.Provider, { value: level + 1, children: /* @__PURE__ */ jsx("div", { className: "nebula-ds mt-1 space-y-1", children }) })
|
|
9058
|
+
] });
|
|
9059
|
+
}
|
|
8795
9060
|
|
|
8796
9061
|
// src/tailwind.ts
|
|
8797
9062
|
function content({ base = "./" } = {}) {
|
|
@@ -8803,4 +9068,4 @@ var tailwind = {
|
|
|
8803
9068
|
// plugin: () => require("tailwindcss")("node_modules/@nebulareact/dist/tailwind.config.js"),
|
|
8804
9069
|
};
|
|
8805
9070
|
|
|
8806
|
-
export { Accordion, AccordionContent, AccordionDescription, AccordionItem, AccordionTitle, AccordionTrigger, ActionBar, ActionBarButton, ActionBarClose, ActionBarContent, ActionBarDivider, ActionBarPortal, ActionBarTrigger, Alert, AlertButton, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AlertTitle, StyledAsync as Async, StyledAsyncCreatable as AsyncCreatable, Avatar, AvatarFallback, AvatarHoverAction, AvatarImage, AvatarSizeEnum, AvatarStick, AvatarVariantEnum, Badge, BannerAlert, BannerType, BannerVariant, Box, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, Caption, Checkbox, StyledCreatable as Creatable, Cropper2 as Cropper, CropperCropArea2 as CropperCropArea, CropperDescription2 as CropperDescription, CropperImage2 as CropperImage, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileUpload, FileUploadError, Heading, InputDatePickerSingle, InputDateRangePicker, InputDateTimePickerSingle, InputPhone, InputText, InputTime, KanbanBoard, KanbanCard, KanbanColumn, KanbanColumnDragHandle, KanbanColumnFooter, KanbanColumnHeader, KanbanColumnTitle, Label2 as Label, Link, NebulaI18nProvider, Pagination, Paragraph, Popover, PopoverContent, PopoverTrigger, ProfileImage, RadioGroup2 as RadioGroup, RadioGroupItem, StyledSelect as Select, Separator, Skeleton, Slider, Space, SpaceDirectionEnum, SpaceSizeEnum, Stepper, StepperDescription, StepperIndicator, StepperItem, StepperSeparator, StepperTitle, StepperTrigger, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TextArea, TipCard, TipCardContent2 as TipCardContent, TipCardFooter, TipCardHeader, TipCardItem, TipCardMedia, TipCardMediaType, TipCardProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupTypeEnum, ToggleSizeEnum, Tooltip, alertVariants, badgeSizeEnum, badgeVariantEnum, buttonSizeEnum, buttonVariantEnum, buttonVariantsConfig, dateIsAvailable, formatBytes, getNebulaLanguage, localeByi18nKey, messages19 as messages, separatorVariants, setNebulaLanguage, tagVariantsEnum, tailwind, toast, toggleVariants, useClickOutside, useFileUpload, useKeyPress, useNebulaI18n, useTipCard };
|
|
9071
|
+
export { Accordion, AccordionContent, AccordionDescription, AccordionItem, AccordionTitle, AccordionTrigger, ActionBar, ActionBarButton, ActionBarClose, ActionBarContent, ActionBarDivider, ActionBarPortal, ActionBarTrigger, Alert, AlertButton, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AlertTitle, StyledAsync as Async, StyledAsyncCreatable as AsyncCreatable, Avatar, AvatarFallback, AvatarHoverAction, AvatarImage, AvatarSizeEnum, AvatarStick, AvatarVariantEnum, Badge, BannerAlert, BannerType, BannerVariant, Box, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, Caption, Checkbox, StyledCreatable as Creatable, Cropper2 as Cropper, CropperCropArea2 as CropperCropArea, CropperDescription2 as CropperDescription, CropperImage2 as CropperImage, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileUpload, FileUploadError, Heading, InputDatePickerSingle, InputDateRangePicker, InputDateTimePickerSingle, InputPhone, InputText, InputTime, KanbanBoard, KanbanCard, KanbanColumn, KanbanColumnDragHandle, KanbanColumnFooter, KanbanColumnHeader, KanbanColumnTitle, Label2 as Label, Link, NebulaI18nProvider, Pagination, Paragraph, Popover, PopoverContent, PopoverTrigger, ProfileImage, RadioGroup2 as RadioGroup, RadioGroupItem, StyledSelect as Select, Separator, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarMenuItem, SidebarSeparator, SidebarStateEnum, SidebarTitle, SidebarTrigger, Skeleton, Slider, Space, SpaceDirectionEnum, SpaceSizeEnum, Stepper, StepperDescription, StepperIndicator, StepperItem, StepperSeparator, StepperTitle, StepperTrigger, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TextArea, TipCard, TipCardContent2 as TipCardContent, TipCardFooter, TipCardHeader, TipCardItem, TipCardMedia, TipCardMediaType, TipCardProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupTypeEnum, ToggleSizeEnum, Tooltip, alertVariants, badgeSizeEnum, badgeVariantEnum, buttonSizeEnum, buttonVariantEnum, buttonVariantsConfig, dateIsAvailable, formatBytes, getNebulaLanguage, localeByi18nKey, messages19 as messages, separatorVariants, setNebulaLanguage, tagVariantsEnum, tailwind, toast, toggleVariants, useClickOutside, useFileUpload, useIsMobile, useKeyPress, useNebulaI18n, useSidebar, useTipCard };
|
package/package.json
CHANGED
|
Binary file
|