@gamecp/ui 0.1.39 → 0.1.41

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/index.d.mts CHANGED
@@ -75,7 +75,7 @@ interface CardProps extends AccordionCardProps, StatusCardProps {
75
75
  maxHeight?: string;
76
76
  headerBorder?: string;
77
77
  headerBg?: string;
78
- headerStatus?: 'online' | 'offline' | 'maintenance' | 'error' | 'restarting' | 'starting' | 'success' | 'info' | 'updating' | 'unknown';
78
+ headerStatus?: 'online' | 'offline' | 'maintenance' | 'error' | 'restarting' | 'starting' | 'success' | 'info' | 'updating' | 'terminating' | 'unknown';
79
79
  }
80
80
  declare function Card({ children, className, onClick, disabled, padding, borderAccent, variant, overflow, minHeight, maxHeight, hover, clickable, title, subtitle, description, icon: Icon, iconColor, iconSize, actionButton, headerClassName, accordion, defaultExpanded, onToggle, contentClassName, status, statusIcon, statusText, headerBorder, headerBg, headerStatus, }: CardProps): react_jsx_runtime.JSX.Element;
81
81
 
@@ -251,15 +251,6 @@ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
251
251
  }
252
252
  declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
253
253
 
254
- /**
255
- * Get the sidebar nav item classes based on active state.
256
- * Useful for extensions that need custom Link components.
257
- */
258
- declare function getSidebarNavItemClasses(isActive: boolean, className?: string): string;
259
- /**
260
- * Get the sidebar nav icon classes.
261
- */
262
- declare function getSidebarNavIconClasses(isActive?: boolean): string;
263
254
  interface SidebarNavItemProps {
264
255
  href: string;
265
256
  icon?: IconType;
@@ -270,17 +261,8 @@ interface SidebarNavItemProps {
270
261
  exact?: boolean;
271
262
  onClick?: () => void;
272
263
  isButton?: boolean;
273
- /** Custom Link component for extensions that inject their own routing */
274
- LinkComponent?: React__default.ComponentType<{
275
- href: string;
276
- className?: string;
277
- onClick?: () => void;
278
- children: React__default.ReactNode;
279
- }>;
280
- /** Custom pathname for extensions that inject their own routing context */
281
- pathname?: string;
282
264
  }
283
- declare function SidebarNavItem({ href, icon: Icon, children, active, className, title, exact, onClick, isButton, LinkComponent, pathname: externalPathname, }: SidebarNavItemProps): react_jsx_runtime.JSX.Element;
265
+ declare function SidebarNavItem({ href, icon: Icon, children, active, className, title, exact, onClick, isButton, }: SidebarNavItemProps): react_jsx_runtime.JSX.Element;
284
266
 
285
267
  interface LoadingSpinnerProps {
286
268
  message?: string;
@@ -1025,4 +1007,4 @@ declare function VariableInput({ name, label, value, onChange, placeholder, erro
1025
1007
 
1026
1008
  declare const VERSION = "0.1.35";
1027
1009
 
1028
- export { ActionButton, Badge, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, ConfirmDialog, type ConfirmDialogOptions, Container, DangerNotice, DataTable, DataTableActions, DataTableBody, DataTableCell, DataTableEmptyState, DataTableHeader, DataTableHeaderCell, DataTableLoadingState, DataTableRow, DropDownArrow, Dropdown, DropdownItem, EmptyState, ErrorAlert, ErrorMessage, FilterSelect, FilterToggleButton, FormInput, FormSection, Grid, IconButtonWithCount, InfoAlert, InfoBox, InfoNotice, Link, type LinkProps, LoadingSpinner, MobileSearchLayout, Modal, Notice, PageHeader, RefreshButton, SearchCard, SearchCardContent, SearchCardHeader, SearchInput, Select, SharedTooltip, SidebarNavItem, type SidebarNavItemProps, Skeleton, SkeletonCard, SkeletonEnvironmentsList, SkeletonForm, SkeletonGameCard, SkeletonGameServerCard, SkeletonGameServerCards, SkeletonGameServerTable, SkeletonGamesTable, SkeletonItem, SkeletonList, SkeletonNodeCard, SkeletonNodeCards, SkeletonNodeTable, SkeletonRecentActivity, SkeletonSearchCard, SkeletonStats, SkeletonTable, SkeletonTenantCard, SkeletonUserCard, SmartDropdown, SmartSelect, Spinner, StatusBadge, StickyActionsColumn, SuccessAlert, SuccessNotice, Switch, type SwitchVariant, Typography, UnsavedAlert, UnsavedChangesNotification, VERSION, VariableInput, VariableSelector, ViewToggle, WarningAlert, WarningNotice, getSidebarNavIconClasses, getSidebarNavItemClasses, useConfirmDialog };
1010
+ export { ActionButton, Badge, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, ConfirmDialog, type ConfirmDialogOptions, Container, DangerNotice, DataTable, DataTableActions, DataTableBody, DataTableCell, DataTableEmptyState, DataTableHeader, DataTableHeaderCell, DataTableLoadingState, DataTableRow, DropDownArrow, Dropdown, DropdownItem, EmptyState, ErrorAlert, ErrorMessage, FilterSelect, FilterToggleButton, FormInput, FormSection, Grid, IconButtonWithCount, InfoAlert, InfoBox, InfoNotice, Link, type LinkProps, LoadingSpinner, MobileSearchLayout, Modal, Notice, PageHeader, RefreshButton, SearchCard, SearchCardContent, SearchCardHeader, SearchInput, Select, SharedTooltip, SidebarNavItem, type SidebarNavItemProps, Skeleton, SkeletonCard, SkeletonEnvironmentsList, SkeletonForm, SkeletonGameCard, SkeletonGameServerCard, SkeletonGameServerCards, SkeletonGameServerTable, SkeletonGamesTable, SkeletonItem, SkeletonList, SkeletonNodeCard, SkeletonNodeCards, SkeletonNodeTable, SkeletonRecentActivity, SkeletonSearchCard, SkeletonStats, SkeletonTable, SkeletonTenantCard, SkeletonUserCard, SmartDropdown, SmartSelect, Spinner, StatusBadge, StickyActionsColumn, SuccessAlert, SuccessNotice, Switch, type SwitchVariant, Typography, UnsavedAlert, UnsavedChangesNotification, VERSION, VariableInput, VariableSelector, ViewToggle, WarningAlert, WarningNotice, useConfirmDialog };
package/dist/index.d.ts CHANGED
@@ -75,7 +75,7 @@ interface CardProps extends AccordionCardProps, StatusCardProps {
75
75
  maxHeight?: string;
76
76
  headerBorder?: string;
77
77
  headerBg?: string;
78
- headerStatus?: 'online' | 'offline' | 'maintenance' | 'error' | 'restarting' | 'starting' | 'success' | 'info' | 'updating' | 'unknown';
78
+ headerStatus?: 'online' | 'offline' | 'maintenance' | 'error' | 'restarting' | 'starting' | 'success' | 'info' | 'updating' | 'terminating' | 'unknown';
79
79
  }
80
80
  declare function Card({ children, className, onClick, disabled, padding, borderAccent, variant, overflow, minHeight, maxHeight, hover, clickable, title, subtitle, description, icon: Icon, iconColor, iconSize, actionButton, headerClassName, accordion, defaultExpanded, onToggle, contentClassName, status, statusIcon, statusText, headerBorder, headerBg, headerStatus, }: CardProps): react_jsx_runtime.JSX.Element;
81
81
 
@@ -251,15 +251,6 @@ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
251
251
  }
252
252
  declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
253
253
 
254
- /**
255
- * Get the sidebar nav item classes based on active state.
256
- * Useful for extensions that need custom Link components.
257
- */
258
- declare function getSidebarNavItemClasses(isActive: boolean, className?: string): string;
259
- /**
260
- * Get the sidebar nav icon classes.
261
- */
262
- declare function getSidebarNavIconClasses(isActive?: boolean): string;
263
254
  interface SidebarNavItemProps {
264
255
  href: string;
265
256
  icon?: IconType;
@@ -270,17 +261,8 @@ interface SidebarNavItemProps {
270
261
  exact?: boolean;
271
262
  onClick?: () => void;
272
263
  isButton?: boolean;
273
- /** Custom Link component for extensions that inject their own routing */
274
- LinkComponent?: React__default.ComponentType<{
275
- href: string;
276
- className?: string;
277
- onClick?: () => void;
278
- children: React__default.ReactNode;
279
- }>;
280
- /** Custom pathname for extensions that inject their own routing context */
281
- pathname?: string;
282
264
  }
283
- declare function SidebarNavItem({ href, icon: Icon, children, active, className, title, exact, onClick, isButton, LinkComponent, pathname: externalPathname, }: SidebarNavItemProps): react_jsx_runtime.JSX.Element;
265
+ declare function SidebarNavItem({ href, icon: Icon, children, active, className, title, exact, onClick, isButton, }: SidebarNavItemProps): react_jsx_runtime.JSX.Element;
284
266
 
285
267
  interface LoadingSpinnerProps {
286
268
  message?: string;
@@ -1025,4 +1007,4 @@ declare function VariableInput({ name, label, value, onChange, placeholder, erro
1025
1007
 
1026
1008
  declare const VERSION = "0.1.35";
1027
1009
 
1028
- export { ActionButton, Badge, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, ConfirmDialog, type ConfirmDialogOptions, Container, DangerNotice, DataTable, DataTableActions, DataTableBody, DataTableCell, DataTableEmptyState, DataTableHeader, DataTableHeaderCell, DataTableLoadingState, DataTableRow, DropDownArrow, Dropdown, DropdownItem, EmptyState, ErrorAlert, ErrorMessage, FilterSelect, FilterToggleButton, FormInput, FormSection, Grid, IconButtonWithCount, InfoAlert, InfoBox, InfoNotice, Link, type LinkProps, LoadingSpinner, MobileSearchLayout, Modal, Notice, PageHeader, RefreshButton, SearchCard, SearchCardContent, SearchCardHeader, SearchInput, Select, SharedTooltip, SidebarNavItem, type SidebarNavItemProps, Skeleton, SkeletonCard, SkeletonEnvironmentsList, SkeletonForm, SkeletonGameCard, SkeletonGameServerCard, SkeletonGameServerCards, SkeletonGameServerTable, SkeletonGamesTable, SkeletonItem, SkeletonList, SkeletonNodeCard, SkeletonNodeCards, SkeletonNodeTable, SkeletonRecentActivity, SkeletonSearchCard, SkeletonStats, SkeletonTable, SkeletonTenantCard, SkeletonUserCard, SmartDropdown, SmartSelect, Spinner, StatusBadge, StickyActionsColumn, SuccessAlert, SuccessNotice, Switch, type SwitchVariant, Typography, UnsavedAlert, UnsavedChangesNotification, VERSION, VariableInput, VariableSelector, ViewToggle, WarningAlert, WarningNotice, getSidebarNavIconClasses, getSidebarNavItemClasses, useConfirmDialog };
1010
+ export { ActionButton, Badge, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, ConfirmDialog, type ConfirmDialogOptions, Container, DangerNotice, DataTable, DataTableActions, DataTableBody, DataTableCell, DataTableEmptyState, DataTableHeader, DataTableHeaderCell, DataTableLoadingState, DataTableRow, DropDownArrow, Dropdown, DropdownItem, EmptyState, ErrorAlert, ErrorMessage, FilterSelect, FilterToggleButton, FormInput, FormSection, Grid, IconButtonWithCount, InfoAlert, InfoBox, InfoNotice, Link, type LinkProps, LoadingSpinner, MobileSearchLayout, Modal, Notice, PageHeader, RefreshButton, SearchCard, SearchCardContent, SearchCardHeader, SearchInput, Select, SharedTooltip, SidebarNavItem, type SidebarNavItemProps, Skeleton, SkeletonCard, SkeletonEnvironmentsList, SkeletonForm, SkeletonGameCard, SkeletonGameServerCard, SkeletonGameServerCards, SkeletonGameServerTable, SkeletonGamesTable, SkeletonItem, SkeletonList, SkeletonNodeCard, SkeletonNodeCards, SkeletonNodeTable, SkeletonRecentActivity, SkeletonSearchCard, SkeletonStats, SkeletonTable, SkeletonTenantCard, SkeletonUserCard, SmartDropdown, SmartSelect, Spinner, StatusBadge, StickyActionsColumn, SuccessAlert, SuccessNotice, Switch, type SwitchVariant, Typography, UnsavedAlert, UnsavedChangesNotification, VERSION, VariableInput, VariableSelector, ViewToggle, WarningAlert, WarningNotice, useConfirmDialog };
package/dist/index.js CHANGED
@@ -287,6 +287,8 @@ function Card({
287
287
  case "restarting":
288
288
  case "updating":
289
289
  return { border: "bg-orange", bg: "bg-orange/10" };
290
+ case "terminating":
291
+ return { border: "bg-destructive", bg: "bg-danger/10" };
290
292
  case "unknown":
291
293
  return { border: "bg-muted-foreground/30", bg: "bg-muted/10" };
292
294
  default:
@@ -1060,8 +1062,8 @@ function DropdownItem({
1060
1062
  flex items-start gap-3 border-b border-border/30 last:border-b-0
1061
1063
  ${disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"}
1062
1064
  ${selected && !multiple ? "bg-primary text-primary-foreground" : variantClasses5[variant]}
1063
- ${focused && !selected ? "bg-muted/70 ring-2 ring-primary/50 ring-inset" : ""}
1064
- ${focused && selected ? "brightness-110 ring-2 ring-primary-foreground/30" : ""}
1065
+ ${focused && !selected ? "bg-muted/70 ring-1 ring-primary/50 ring-inset" : ""}
1066
+ ${focused && selected ? "brightness-110 ring-1 ring-primary-foreground/30" : ""}
1065
1067
  `;
1066
1068
  return /* @__PURE__ */ jsxRuntime.jsxs(
1067
1069
  "button",
@@ -3554,7 +3556,7 @@ function FormInput({
3554
3556
  /* @__PURE__ */ jsxRuntime.jsxs(
3555
3557
  "div",
3556
3558
  {
3557
- className: `relative flex-1 ${footerDescription ? "border-r-2 border-info/50 hover:border-info rounded-r-sm cursor-help transition-colors" : ""}`,
3559
+ className: `relative flex-1 ${footerDescription ? "cursor-help" : ""}`,
3558
3560
  "data-tooltip-id": footerDescription ? `${uniqueId}-help` : void 0,
3559
3561
  children: [
3560
3562
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3573,7 +3575,7 @@ function FormInput({
3573
3575
  } : handleSelectChange,
3574
3576
  options: options || [],
3575
3577
  placeholder: placeholder || "Select an option...",
3576
- className: `${error ? "form-input-error" : ""} ${inputClassName}`,
3578
+ className: `${error ? "form-input-error" : ""} ${footerDescription ? "border-r-2 border-r-info/50 hover:border-r-info transition-colors" : ""} ${inputClassName}`,
3577
3579
  multiple: multiSelect,
3578
3580
  width: selectWidth,
3579
3581
  searchable,
@@ -3605,7 +3607,7 @@ function FormInput({
3605
3607
  /* @__PURE__ */ jsxRuntime.jsx(
3606
3608
  "div",
3607
3609
  {
3608
- className: `relative flex-1 ${footerDescription ? "border-r-2 border-info/50 hover:border-info rounded-r-sm cursor-help transition-colors" : ""}`,
3610
+ className: `relative flex-1 ${footerDescription ? "cursor-help" : ""}`,
3609
3611
  "data-tooltip-id": footerDescription ? `${uniqueId}-help` : void 0,
3610
3612
  children: /* @__PURE__ */ jsxRuntime.jsx(
3611
3613
  "textarea",
@@ -3624,7 +3626,7 @@ function FormInput({
3624
3626
  maxLength,
3625
3627
  "aria-invalid": error ? "true" : "false",
3626
3628
  "aria-describedby": error ? `${name}-error` : description ? `${name}-description` : void 0,
3627
- className: `form-input ${error ? "form-input-error" : ""} ${inputClassName}`
3629
+ className: `form-input ${error ? "form-input-error" : ""} ${footerDescription ? "border-r-2 border-r-info/50 hover:border-r-info transition-colors" : ""} ${inputClassName}`
3628
3630
  }
3629
3631
  )
3630
3632
  }
@@ -3642,7 +3644,7 @@ function FormInput({
3642
3644
  ] }) : type === "color" ? /* @__PURE__ */ jsxRuntime.jsxs(
3643
3645
  "div",
3644
3646
  {
3645
- className: `flex items-center space-x-3 ${footerDescription ? "border-r-2 border-info/50 hover:border-info pr-2 rounded-r-sm cursor-help transition-colors" : ""}`,
3647
+ className: `flex items-center space-x-3 ${footerDescription ? "cursor-help" : ""}`,
3646
3648
  "data-tooltip-id": footerDescription ? `${uniqueId}-help` : void 0,
3647
3649
  children: [
3648
3650
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-10 h-10 border border-input rounded-md overflow-hidden bg-card", children: [
@@ -3712,7 +3714,7 @@ function FormInput({
3712
3714
  /* @__PURE__ */ jsxRuntime.jsxs(
3713
3715
  "div",
3714
3716
  {
3715
- className: `relative flex-1 ${footerDescription ? "border-r-2 border-info/50 hover:border-info rounded-r-sm cursor-help transition-colors" : ""}`,
3717
+ className: `relative flex-1 ${footerDescription ? "cursor-help" : ""}`,
3716
3718
  "data-tooltip-id": footerDescription ? `${uniqueId}-help` : void 0,
3717
3719
  children: [
3718
3720
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3734,7 +3736,7 @@ function FormInput({
3734
3736
  onBlur,
3735
3737
  "aria-invalid": error ? "true" : "false",
3736
3738
  "aria-describedby": error ? `${name}-error` : description ? `${name}-description` : void 0,
3737
- className: `form-input ${error ? "form-input-error" : ""} ${readOnly ? "bg-muted cursor-default" : ""} ${copyable ? "pr-20" : "pr-10"} ${getInputPaddingClasses(type, getIconConfig(icon))} ${inputClassName}`
3739
+ className: `form-input ${error ? "form-input-error" : ""} ${readOnly ? "bg-muted cursor-default" : ""} ${copyable ? "pr-20" : "pr-10"} ${footerDescription ? "border-r-2 border-r-info/50 hover:border-r-info transition-colors" : ""} ${getInputPaddingClasses(type, getIconConfig(icon))} ${inputClassName}`
3738
3740
  }
3739
3741
  ),
3740
3742
  shouldShowIcons(type) && (() => {
@@ -3802,7 +3804,7 @@ function FormInput({
3802
3804
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(
3803
3805
  "div",
3804
3806
  {
3805
- className: `flex items-center ${variablePicker ? "input-group" : ""} ${footerDescription ? "border-r-2 border-info/50 hover:border-info rounded-r-sm cursor-help transition-colors" : ""}`,
3807
+ className: `flex items-center ${variablePicker ? "input-group" : ""} ${footerDescription ? "cursor-help" : ""}`,
3806
3808
  "data-tooltip-id": footerDescription ? `${uniqueId}-help` : void 0,
3807
3809
  children: [
3808
3810
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative group flex-1", children: [
@@ -3829,7 +3831,7 @@ function FormInput({
3829
3831
  onBlur,
3830
3832
  "aria-invalid": error ? "true" : "false",
3831
3833
  "aria-describedby": error ? `${name}-error` : description ? `${name}-description` : void 0,
3832
- className: `form-input ${error ? "form-input-error" : ""} ${readOnly ? "bg-muted cursor-default" : ""} ${copyable ? "pr-10" : ""} ${variablePicker ? "rounded-r-none border-r-0" : ""} ${getInputPaddingClasses(type, getIconConfig(icon))} ${inputClassName}`
3834
+ className: `form-input ${error ? "form-input-error" : ""} ${readOnly ? "bg-muted cursor-default" : ""} ${copyable ? "pr-10" : ""} ${variablePicker ? "rounded-r-none border-r-0" : ""} ${footerDescription && !variablePicker ? "border-r-2 border-r-info/50 hover:border-r-info transition-colors" : ""} ${getInputPaddingClasses(type, getIconConfig(icon))} ${inputClassName}`
3833
3835
  }
3834
3836
  ),
3835
3837
  shouldShowIcons(type) && (() => {
@@ -4114,12 +4116,6 @@ var Link2 = React6.forwardRef(
4114
4116
  );
4115
4117
  Link2.displayName = "Link";
4116
4118
  var Link_default = Link2;
4117
- function getSidebarNavItemClasses(isActive, className = "") {
4118
- return `group flex items-center gap-0 overflow-hidden rounded-md px-3 py-2 text-sm font-medium outline-hidden ring-sidebar-ring transition-[width,height,padding,background-color,color] duration-300 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 ${isActive ? "bg-primary text-primary-foreground" : "text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground"} ${className}`;
4119
- }
4120
- function getSidebarNavIconClasses(isActive = false) {
4121
- return `mr-3 h-5 w-5 shrink-0 transition-all duration-300 ease-in-out${isActive ? " text-primary-foreground" : ""}`;
4122
- }
4123
4119
  function SidebarNavItem({
4124
4120
  href,
4125
4121
  icon: Icon,
@@ -4129,22 +4125,20 @@ function SidebarNavItem({
4129
4125
  title,
4130
4126
  exact = false,
4131
4127
  onClick,
4132
- isButton = false,
4133
- LinkComponent,
4134
- pathname: externalPathname
4128
+ isButton = false
4135
4129
  }) {
4136
- const nextPathname = navigation.usePathname();
4137
- const pathname = externalPathname ?? nextPathname;
4130
+ const pathname = navigation.usePathname();
4138
4131
  const isActive = active !== void 0 ? active : exact ? pathname === href : pathname === href || pathname?.startsWith(`${href}/`);
4139
- const commonClasses = getSidebarNavItemClasses(isActive, className);
4140
- const iconClasses = getSidebarNavIconClasses(isActive);
4132
+ const commonClasses = `group flex items-center gap-0 overflow-hidden rounded-md px-3 py-2 text-sm font-medium outline-hidden ring-sidebar-ring transition-all duration-300 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 ${isActive ? "bg-primary/15 backdrop-blur-md border border-primary/30 text-primary shadow-[0_0_12px_-3px_hsl(var(--primary)/0.2)] hover:bg-primary/20 hover:border-primary/50 hover:shadow-[0_0_16px_-2px_hsl(var(--primary)/0.3)]" : "border border-transparent text-sidebar-foreground hover:bg-sidebar-accent/50 hover:backdrop-blur-sm hover:border-sidebar-foreground/10 hover:text-sidebar-accent-foreground active:bg-sidebar-accent"} ${className}`;
4133
+ const iconClasses = `mr-3 h-5 w-5 shrink-0 transition-all duration-300 ease-in-out${isActive ? " text-primary" : ""}`;
4141
4134
  if (isButton) {
4142
4135
  return /* @__PURE__ */ jsxRuntime.jsxs(
4143
4136
  "button",
4144
4137
  {
4145
4138
  type: "button",
4146
4139
  onClick,
4147
- title,
4140
+ "data-tooltip-id": title ? "global-tooltip" : void 0,
4141
+ "data-tooltip-content": title,
4148
4142
  "aria-current": isActive ? "page" : void 0,
4149
4143
  className: `w-full text-left ${commonClasses}`,
4150
4144
  children: [
@@ -4160,12 +4154,13 @@ function SidebarNavItem({
4160
4154
  }
4161
4155
  );
4162
4156
  }
4163
- const LinkEl = LinkComponent || Link__default.default;
4164
4157
  return /* @__PURE__ */ jsxRuntime.jsxs(
4165
- LinkEl,
4158
+ Link__default.default,
4166
4159
  {
4167
4160
  href,
4168
4161
  onClick,
4162
+ "data-tooltip-id": title ? "global-tooltip" : void 0,
4163
+ "data-tooltip-content": title,
4169
4164
  className: commonClasses,
4170
4165
  children: [
4171
4166
  Icon && /* @__PURE__ */ jsxRuntime.jsx(
@@ -5561,8 +5556,6 @@ exports.VariableSelector = VariableSelector;
5561
5556
  exports.ViewToggle = ViewToggle;
5562
5557
  exports.WarningAlert = WarningAlert;
5563
5558
  exports.WarningNotice = WarningNotice;
5564
- exports.getSidebarNavIconClasses = getSidebarNavIconClasses;
5565
- exports.getSidebarNavItemClasses = getSidebarNavItemClasses;
5566
5559
  exports.useConfirmDialog = useConfirmDialog;
5567
5560
  //# sourceMappingURL=index.js.map
5568
5561
  //# sourceMappingURL=index.js.map