@ikatec/nebula-react 1.9.0-beta.2 → 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 +54 -2
- package/dist/index.d.ts +54 -2
- package/dist/index.js +281 -1
- package/dist/index.mjs +270 -3
- package/package.json +1 -1
- package/dist/ikatec-nebula-react-1.9.0-beta.2.tgz +0 -0
|
Binary file
|
package/dist/index.d.mts
CHANGED
|
@@ -108,7 +108,10 @@ interface SeparatorProps extends Omit<React$1.ComponentPropsWithoutRef<typeof Se
|
|
|
108
108
|
}
|
|
109
109
|
declare const Separator: React$1.ForwardRefExoticComponent<SeparatorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
110
110
|
|
|
111
|
-
declare const ActionBar:
|
|
111
|
+
declare const ActionBar: {
|
|
112
|
+
({ ...props }: React$1.ComponentProps<typeof DrawerPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
113
|
+
displayName: string;
|
|
114
|
+
};
|
|
112
115
|
declare const ActionBarTrigger: React$1.ForwardRefExoticComponent<Omit<DrawerPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
113
116
|
declare const ActionBarPortal: {
|
|
114
117
|
(props: React$1.ComponentProps<typeof DrawerPrimitive.Portal>): react_jsx_runtime.JSX.Element;
|
|
@@ -1085,6 +1088,53 @@ interface LinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElemen
|
|
|
1085
1088
|
}
|
|
1086
1089
|
declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
1087
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
|
+
|
|
1088
1138
|
/**
|
|
1089
1139
|
* Context type to use the NebulaI18nProvider.
|
|
1090
1140
|
*/
|
|
@@ -1155,4 +1205,6 @@ declare function useClickOutside<T extends HTMLElement>(refs: PossibleRefs<T>, o
|
|
|
1155
1205
|
|
|
1156
1206
|
declare function useKeyPress(key: string, callback: VoidFunction): void;
|
|
1157
1207
|
|
|
1158
|
-
|
|
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
|
@@ -108,7 +108,10 @@ interface SeparatorProps extends Omit<React$1.ComponentPropsWithoutRef<typeof Se
|
|
|
108
108
|
}
|
|
109
109
|
declare const Separator: React$1.ForwardRefExoticComponent<SeparatorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
110
110
|
|
|
111
|
-
declare const ActionBar:
|
|
111
|
+
declare const ActionBar: {
|
|
112
|
+
({ ...props }: React$1.ComponentProps<typeof DrawerPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
113
|
+
displayName: string;
|
|
114
|
+
};
|
|
112
115
|
declare const ActionBarTrigger: React$1.ForwardRefExoticComponent<Omit<DrawerPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
113
116
|
declare const ActionBarPortal: {
|
|
114
117
|
(props: React$1.ComponentProps<typeof DrawerPrimitive.Portal>): react_jsx_runtime.JSX.Element;
|
|
@@ -1085,6 +1088,53 @@ interface LinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElemen
|
|
|
1085
1088
|
}
|
|
1086
1089
|
declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
1087
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
|
+
|
|
1088
1138
|
/**
|
|
1089
1139
|
* Context type to use the NebulaI18nProvider.
|
|
1090
1140
|
*/
|
|
@@ -1155,4 +1205,6 @@ declare function useClickOutside<T extends HTMLElement>(refs: PossibleRefs<T>, o
|
|
|
1155
1205
|
|
|
1156
1206
|
declare function useKeyPress(key: string, callback: VoidFunction): void;
|
|
1157
1207
|
|
|
1158
|
-
|
|
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
|
@@ -415,7 +415,9 @@ var Separator = React25__namespace.forwardRef(
|
|
|
415
415
|
}
|
|
416
416
|
);
|
|
417
417
|
Separator.displayName = "Separator";
|
|
418
|
-
var ActionBar =
|
|
418
|
+
var ActionBar = ({
|
|
419
|
+
...props
|
|
420
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { modal: false, ...props });
|
|
419
421
|
ActionBar.displayName = "ActionBar";
|
|
420
422
|
var ActionBarTrigger = React25__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { ref, ...props }));
|
|
421
423
|
ActionBarTrigger.displayName = "ActionBarTrigger";
|
|
@@ -8833,6 +8835,271 @@ var Tooltip = React25__namespace.forwardRef(
|
|
|
8833
8835
|
}
|
|
8834
8836
|
);
|
|
8835
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
|
+
}
|
|
8836
9103
|
|
|
8837
9104
|
// src/tailwind.ts
|
|
8838
9105
|
function content({ base = "./" } = {}) {
|
|
@@ -8963,6 +9230,17 @@ exports.RadioGroup = RadioGroup2;
|
|
|
8963
9230
|
exports.RadioGroupItem = RadioGroupItem;
|
|
8964
9231
|
exports.Select = StyledSelect;
|
|
8965
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;
|
|
8966
9244
|
exports.Skeleton = Skeleton;
|
|
8967
9245
|
exports.Slider = Slider;
|
|
8968
9246
|
exports.Space = Space;
|
|
@@ -9024,6 +9302,8 @@ exports.toast = toast;
|
|
|
9024
9302
|
exports.toggleVariants = toggleVariants;
|
|
9025
9303
|
exports.useClickOutside = useClickOutside;
|
|
9026
9304
|
exports.useFileUpload = useFileUpload;
|
|
9305
|
+
exports.useIsMobile = useIsMobile;
|
|
9027
9306
|
exports.useKeyPress = useKeyPress;
|
|
9028
9307
|
exports.useNebulaI18n = useNebulaI18n;
|
|
9308
|
+
exports.useSidebar = useSidebar;
|
|
9029
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';
|
|
@@ -372,7 +372,9 @@ var Separator = React25.forwardRef(
|
|
|
372
372
|
}
|
|
373
373
|
);
|
|
374
374
|
Separator.displayName = "Separator";
|
|
375
|
-
var ActionBar =
|
|
375
|
+
var ActionBar = ({
|
|
376
|
+
...props
|
|
377
|
+
}) => /* @__PURE__ */ jsx(DialogPrimitive.Root, { modal: false, ...props });
|
|
376
378
|
ActionBar.displayName = "ActionBar";
|
|
377
379
|
var ActionBarTrigger = React25.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ref, ...props }));
|
|
378
380
|
ActionBarTrigger.displayName = "ActionBarTrigger";
|
|
@@ -8790,6 +8792,271 @@ var Tooltip = React25.forwardRef(
|
|
|
8790
8792
|
}
|
|
8791
8793
|
);
|
|
8792
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
|
+
}
|
|
8793
9060
|
|
|
8794
9061
|
// src/tailwind.ts
|
|
8795
9062
|
function content({ base = "./" } = {}) {
|
|
@@ -8801,4 +9068,4 @@ var tailwind = {
|
|
|
8801
9068
|
// plugin: () => require("tailwindcss")("node_modules/@nebulareact/dist/tailwind.config.js"),
|
|
8802
9069
|
};
|
|
8803
9070
|
|
|
8804
|
-
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
|