@internxt/ui 0.1.4 → 0.1.5

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.
@@ -27,3 +27,4 @@ export * from './switch';
27
27
  export * from './table/Table';
28
28
  export * from './textArea';
29
29
  export * from './tooltip';
30
+ export * from './sidenav';
@@ -4,6 +4,7 @@ export interface PopoverProps {
4
4
  panel: (closePopover: () => void) => ReactNode;
5
5
  className?: string;
6
6
  classButton?: string;
7
+ align?: 'left' | 'right';
7
8
  }
8
9
  /**
9
10
  * Popover component
@@ -25,5 +26,5 @@ export interface PopoverProps {
25
26
  * @returns {JSX.Element}
26
27
  * - The rendered Popover component.
27
28
  */
28
- declare const Popover: ({ childrenButton, panel, className, classButton }: PopoverProps) => JSX.Element;
29
+ declare const Popover: ({ childrenButton, panel, className, classButton, align }: PopoverProps) => JSX.Element;
29
30
  export default Popover;
@@ -0,0 +1,55 @@
1
+ import { ReactNode } from 'react';
2
+ import { SidenavOption } from './SidenavOptions';
3
+ export interface SidenavHeader {
4
+ logo: string;
5
+ title: string;
6
+ onClick: () => void;
7
+ className?: string;
8
+ }
9
+ export interface SidenavStorage {
10
+ usage: string;
11
+ limit: string;
12
+ percentage: number;
13
+ onUpgradeClick: () => void;
14
+ upgradeLabel?: string;
15
+ isLoading?: boolean;
16
+ }
17
+ export interface SidenavProps {
18
+ header: SidenavHeader;
19
+ primaryAction?: ReactNode;
20
+ suiteLauncher?: {
21
+ className?: string;
22
+ suiteArray: {
23
+ icon: JSX.Element;
24
+ title: string;
25
+ onClick: () => void;
26
+ isMain?: boolean;
27
+ availableSoon?: boolean;
28
+ isLocked?: boolean;
29
+ }[];
30
+ soonText: string;
31
+ };
32
+ collapsedPrimaryAction?: ReactNode;
33
+ options: SidenavOption[];
34
+ showSubsections?: boolean;
35
+ isCollapsed?: boolean;
36
+ storage?: SidenavStorage;
37
+ onToggleCollapse?: () => void;
38
+ }
39
+ /**
40
+ * Sidenav component
41
+ *
42
+ * A custom sidenav component that provides a sidebar with options for navigation and interaction.
43
+ *
44
+ * @property {SidenavHeader} header - Header configuration with logo, title, and onClick handler
45
+ * @property {ReactNode} primaryAction - The primary action displayed at the top of the sidenav
46
+ * @property {object} suiteLauncher - The suite launcher configuration
47
+ * @property {ReactNode} collapsedPrimaryAction - The primary action displayed when the sidenav is collapsed
48
+ * @property {SidenavOption[]} options - An array of options to be displayed in the sidenav. Each option can specify an 'as' prop to use a custom component (e.g., NavLink)
49
+ * @property {boolean} showSubsections - Determines whether to display the subsections of the sidenav
50
+ * @property {boolean} isCollapsed - Determines whether the sidenav is collapsed or not
51
+ * @property {SidenavStorage} storage - The storage information displayed at the bottom of the sidenav
52
+ * @property {() => void} onToggleCollapse - A callback function triggered when the collapse button is clicked
53
+ */
54
+ declare const Sidenav: ({ header, primaryAction, suiteLauncher, collapsedPrimaryAction, options, showSubsections, isCollapsed, storage, onToggleCollapse, }: SidenavProps) => import("react/jsx-runtime").JSX.Element;
55
+ export default Sidenav;
@@ -0,0 +1,22 @@
1
+ interface SidenavHeaderProps {
2
+ logo: string;
3
+ title: string;
4
+ onClick: () => void;
5
+ isCollapsed: boolean;
6
+ className?: string;
7
+ onToggleCollapse?: () => void;
8
+ suiteLauncher?: {
9
+ className?: string;
10
+ suiteArray: {
11
+ icon: JSX.Element;
12
+ title: string;
13
+ onClick: () => void;
14
+ isMain?: boolean;
15
+ availableSoon?: boolean;
16
+ isLocked?: boolean;
17
+ }[];
18
+ soonText: string;
19
+ };
20
+ }
21
+ declare const SidenavHeader: ({ logo, title, onClick, isCollapsed, className, onToggleCollapse, suiteLauncher, }: SidenavHeaderProps) => JSX.Element;
22
+ export default SidenavHeader;
@@ -0,0 +1,13 @@
1
+ import { IconProps } from '@phosphor-icons/react';
2
+ interface SidenavItemProps {
3
+ label: string;
4
+ notifications?: number;
5
+ Icon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
6
+ onClick?: () => void;
7
+ iconDataCy?: string;
8
+ isActive?: boolean;
9
+ isCollapsed?: boolean;
10
+ subsection?: boolean;
11
+ }
12
+ declare const SidenavItem: ({ label, Icon, onClick, notifications, iconDataCy, isActive, isCollapsed, subsection, }: SidenavItemProps) => JSX.Element;
13
+ export default SidenavItem;
@@ -0,0 +1,18 @@
1
+ import { Icon } from '@phosphor-icons/react';
2
+ export interface SidenavOption {
3
+ label: string;
4
+ icon: Icon;
5
+ iconDataCy: string;
6
+ isVisible: boolean;
7
+ isActive?: boolean;
8
+ notifications?: number;
9
+ onClick?: () => void;
10
+ subsection?: boolean;
11
+ }
12
+ interface SidenavOptionsProps {
13
+ options: SidenavOption[];
14
+ isCollapsed: boolean;
15
+ showSubsections?: boolean;
16
+ }
17
+ declare const SidenavOptions: ({ options, isCollapsed, showSubsections }: SidenavOptionsProps) => JSX.Element;
18
+ export default SidenavOptions;
@@ -0,0 +1,10 @@
1
+ interface SidenavStorageProps {
2
+ usage: string;
3
+ limit: string;
4
+ percentage: number;
5
+ onUpgradeClick: () => void;
6
+ upgradeLabel?: string;
7
+ isLoading?: boolean;
8
+ }
9
+ declare const SidenavStorage: ({ usage, limit, percentage, onUpgradeClick, upgradeLabel, isLoading, }: SidenavStorageProps) => JSX.Element;
10
+ export default SidenavStorage;
@@ -0,0 +1,4 @@
1
+ export { default as Sidenav } from './Sidenav';
2
+ export { default as SidenavItem } from './SidenavItem';
3
+ export type { SidenavOption } from './SidenavOptions';
4
+ export type { SidenavHeader, SidenavProps, SidenavStorage } from './Sidenav';
@@ -9,6 +9,7 @@ export interface SuiteLauncherProps {
9
9
  isLocked?: boolean;
10
10
  }[];
11
11
  soonText?: string;
12
+ align?: 'left' | 'right';
12
13
  }
13
14
  /**
14
15
  * SuiteLauncher renders a dropdown menu with a list of suite applications.
@@ -28,4 +29,4 @@ export interface SuiteLauncherProps {
28
29
  * @returns {JSX.Element}
29
30
  * - The rendered suiteLauncher component.
30
31
  */
31
- export default function SuiteLauncher({ className, suiteArray, soonText, }: Readonly<SuiteLauncherProps>): JSX.Element;
32
+ export default function SuiteLauncher({ className, suiteArray, soonText, align, }: Readonly<SuiteLauncherProps>): JSX.Element;