@pagamio/frontend-commons-lib 0.8.229 → 0.8.230

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.
@@ -168,11 +168,8 @@ const NavbarV2 = ({ dashboardLink = '/dashboard', brandImage, linkComponent: Lin
168
168
  return slots.rightSection;
169
169
  return (_jsxs("div", { className: "flex items-center lg:gap-3", children: [slots.beforeActions, navBarActionComponents.map((action, index) => (_jsx(React.Fragment, { children: action }, `nav-v2-action-${index}`))), showThemeToggler && (renderThemeToggle ? renderThemeToggle() : _jsx(NavbarV2DarkThemeToggle, {})), slots.afterActions, _jsx("div", { className: "flex items-center", children: renderUserDropdown ? renderUserDropdown(userDropdownProps) : _jsx(NavbarV2UserDropdown, { ...userDropdownProps }) }), slots.afterUserDropdown] }));
170
170
  };
171
- return (_jsxs(_Fragment, { children: [_jsx("nav", { className: cn(fixed ? 'fixed top-0 right-0' : '', showBorder ? `border-b ${borderColor.light} ${borderColor.dark}` : '', navbarBackground.light, navbarBackground.dark, className), style: {
171
+ return (_jsxs(_Fragment, { children: [_jsx("nav", { className: cn(fixed ? 'fixed top-0 left-0 right-0' : '', showBorder ? `border-b ${borderColor.light} ${borderColor.dark}` : '', navbarBackground.light, navbarBackground.dark, className), style: {
172
172
  zIndex,
173
- // Account for sidebar width - navbar sits next to sidebar
174
- left: isMobile ? 0 : open ? config.width : config.collapsedWidth,
175
- transition: 'left 0.2s ease-in-out',
176
173
  ...style,
177
174
  }, children: _jsx("div", { className: "w-full px-4 py-3", children: _jsxs("div", { className: "flex items-center justify-between", children: [renderLeftSection(), renderRightSection()] }) }) }), _jsx(NavbarV2EnvironmentBanner, { ...environmentBanner })] }));
178
175
  };
@@ -134,7 +134,7 @@ interface ComingSoonBadgeProps {
134
134
  className?: string;
135
135
  }
136
136
  /**
137
- * Clean, minimal "Coming Soon" indicator
137
+ * Professional "Coming Soon" indicator with subtle yellow styling
138
138
  */
139
139
  declare const ComingSoonBadge: React.FC<ComingSoonBadgeProps>;
140
140
  interface MenuItemRendererProps {
@@ -9,19 +9,19 @@
9
9
  * - Full mobile support with offcanvas
10
10
  */
11
11
  'use client';
12
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { IconChevronDown, IconChevronRight } from '@tabler/icons-react';
12
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
+ import { IconChevronDown, IconChevronRight, IconClock } from '@tabler/icons-react';
14
14
  import React, { useMemo, useState } from 'react';
15
15
  import { cn } from '../../helpers/utils';
16
16
  import { useTranslation } from '../../translations';
17
17
  import { useSidebarV2 } from './SidebarV2Context';
18
- import { SidebarCloseButton, SidebarContainer, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarRail, SidebarSeparator, } from './SidebarV2Primitives';
18
+ import { SidebarContainer, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarRail, SidebarSeparator, } from './SidebarV2Primitives';
19
19
  import { defaultIconResolver, resolveIcon } from './iconResolver';
20
20
  /**
21
- * Clean, minimal "Coming Soon" indicator
21
+ * Professional "Coming Soon" indicator with subtle yellow styling
22
22
  */
23
23
  const ComingSoonBadge = ({ className }) => {
24
- return (_jsx("span", { className: cn('ml-auto inline-flex items-center rounded px-1.5 py-0.5', 'bg-gray-100 dark:bg-gray-800', 'text-[10px] text-gray-500 dark:text-gray-400', className), children: "Soon" }));
24
+ return (_jsxs("span", { className: cn('ml-auto inline-flex items-center gap-1 rounded px-2 py-0.5', 'bg-yellow-50 dark:bg-yellow-900/20', 'text-[10px] font-medium text-yellow-600 dark:text-yellow-500', 'border border-yellow-200 dark:border-yellow-800', className), children: [_jsx(IconClock, { className: "h-3 w-3 stroke-[1.5]" }), "Soon"] }));
25
25
  };
26
26
  /**
27
27
  * Recursive menu item renderer
@@ -59,7 +59,7 @@ const MenuItemRenderer = ({ item, depth = 0, iconResolver = defaultIconResolver
59
59
  }
60
60
  // Handle coming soon items
61
61
  if (item.comingSoon) {
62
- return (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { disabled: true, className: "cursor-not-allowed opacity-60", tooltip: item.tooltip || t(item.label), children: [IconComponent && _jsx(IconComponent, { className: "h-4 w-4 shrink-0" }), (open || isMobile) && (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", children: t(item.label) }), _jsx(ComingSoonBadge, {})] }))] }) }, itemKey));
62
+ return (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { disabled: true, className: "cursor-not-allowed bg-yellow-50/50 hover:bg-yellow-50/50 dark:bg-yellow-900/10 dark:hover:bg-yellow-900/10", tooltip: item.tooltip || t(item.label), children: [IconComponent && _jsx(IconComponent, { className: "h-4 w-4 shrink-0 text-yellow-600 dark:text-yellow-500" }), (open || isMobile) && (_jsxs(_Fragment, { children: [_jsx("span", { className: "truncate text-yellow-700 dark:text-yellow-400", children: t(item.label) }), _jsx(ComingSoonBadge, {})] }))] }) }, itemKey));
63
63
  }
64
64
  // Handle items with children (collapsible)
65
65
  if (item.items && item.items.length > 0) {
@@ -134,7 +134,7 @@ const MenuGroupRenderer = ({ group, iconResolver = defaultIconResolver }) => {
134
134
  */
135
135
  const SidebarV2 = ({ header, footer, groups, items, showRail = false, iconResolver = defaultIconResolver, className, contentClassName, headerClassName, footerClassName, }) => {
136
136
  const { isMobile } = useSidebarV2();
137
- return (_jsxs(SidebarContainer, { className: className, children: [isMobile && _jsx(SidebarCloseButton, {}), header && _jsx(SidebarHeader, { className: headerClassName, children: header }), _jsxs(SidebarContent, { className: contentClassName, children: [groups?.map((group, index) => (_jsxs(React.Fragment, { children: [index > 0 && _jsx(SidebarSeparator, {}), _jsx(MenuGroupRenderer, { group: group, iconResolver: iconResolver })] }, group.key || group.label || `group-${index}`))), items && !groups && (_jsx(SidebarGroup, { children: _jsx(SidebarMenu, { children: items.map((item, index) => (_jsx(MenuItemRenderer, { item: item, iconResolver: iconResolver }, item.key || item.href || `${item.label}-${index}`))) }) }))] }), footer && _jsx(SidebarFooter, { className: footerClassName, children: footer }), showRail && _jsx(SidebarRail, {})] }));
137
+ return (_jsxs(SidebarContainer, { className: className, children: [header && _jsx(SidebarHeader, { className: headerClassName, children: header }), _jsxs(SidebarContent, { className: contentClassName, children: [groups?.map((group, index) => (_jsxs(React.Fragment, { children: [index > 0 && _jsx(SidebarSeparator, {}), _jsx(MenuGroupRenderer, { group: group, iconResolver: iconResolver })] }, group.key || group.label || `group-${index}`))), items && !groups && (_jsx(SidebarGroup, { children: _jsx(SidebarMenu, { children: items.map((item, index) => (_jsx(MenuItemRenderer, { item: item, iconResolver: iconResolver }, item.key || item.href || `${item.label}-${index}`))) }) }))] }), footer && _jsx(SidebarFooter, { className: footerClassName, children: footer }), showRail && _jsx(SidebarRail, {})] }));
138
138
  };
139
139
  export default SidebarV2;
140
140
  export { SidebarV2, ComingSoonBadge, MenuItemRenderer, MenuGroupRenderer };
@@ -19,11 +19,20 @@ const SidebarContainer = forwardRef(({ className, side = 'left', variant = 'defa
19
19
  const { state, open, openMobile, isMobile, config } = useSidebarV2();
20
20
  // Mobile sidebar (offcanvas)
21
21
  if (isMobile) {
22
- return (_jsxs(_Fragment, { children: [openMobile && (_jsx("div", { className: "fixed inset-0 z-40 bg-black/50 backdrop-blur-sm transition-opacity", "aria-hidden": "true" })), _jsx("aside", { ref: ref, "data-state": openMobile ? 'open' : 'closed', "data-side": side, className: cn('fixed inset-y-0 z-50 flex flex-col bg-sidebar text-sidebar-foreground', 'transition-transform duration-300 ease-in-out', side === 'left' ? 'left-0' : 'right-0', openMobile ? 'translate-x-0' : side === 'left' ? '-translate-x-full' : 'translate-x-full', className), style: { width: config.mobileWidth }, ...props, children: children })] }));
22
+ const { setOpenMobile } = useSidebarV2();
23
+ return (_jsxs(_Fragment, { children: [openMobile && (_jsx("div", { className: "fixed inset-0 z-40 bg-black/50 backdrop-blur-sm transition-opacity cursor-pointer", onClick: () => setOpenMobile(false), "aria-hidden": "true" })), _jsx("aside", { ref: ref, "data-state": openMobile ? 'open' : 'closed', "data-side": side, className: cn('fixed top-16 bottom-0 z-[60] flex flex-col bg-sidebar text-sidebar-foreground', 'transition-transform duration-300 ease-in-out', side === 'left' ? 'left-0' : 'right-0', openMobile ? 'translate-x-0' : side === 'left' ? '-translate-x-full' : 'translate-x-full', className), style: {
24
+ width: config.mobileWidth,
25
+ backgroundColor: 'var(--sidebar, hsl(0 0% 100%))',
26
+ color: 'var(--sidebar-foreground, hsl(240 10% 3.9%))',
27
+ }, ...props, children: children })] }));
23
28
  }
24
- // Desktop sidebar - Fixed position
25
- return (_jsx("aside", { ref: ref, "data-state": state, "data-side": side, "data-variant": variant, className: cn('group/sidebar fixed top-0 left-0 h-screen z-40', 'hidden md:flex flex-col', 'bg-sidebar text-sidebar-foreground border-sidebar-border', 'transition-all duration-200 ease-in-out', side === 'left' ? 'border-r' : 'border-l', variant === 'floating' && 'rounded-lg border m-2 shadow-lg', variant === 'inset' && 'rounded-lg', className), style: {
29
+ // Desktop sidebar - Fixed position, starts below navbar
30
+ return (_jsx("aside", { ref: ref, "data-state": state, "data-side": side, "data-variant": variant, className: cn('group/sidebar fixed top-16 left-0 z-50', 'hidden md:flex flex-col', 'bg-sidebar text-sidebar-foreground border-sidebar-border', 'transition-all duration-200 ease-in-out', side === 'left' ? 'border-r' : 'border-l', variant === 'floating' && 'rounded-lg border m-2 shadow-lg', variant === 'inset' && 'rounded-lg', className), style: {
26
31
  width: open ? config.width : config.collapsedWidth,
32
+ height: 'calc(100vh - 4rem)', // Full height minus navbar (64px)
33
+ backgroundColor: 'var(--sidebar, hsl(0 0% 100%))',
34
+ color: 'var(--sidebar-foreground, hsl(240 10% 3.9%))',
35
+ borderColor: 'var(--sidebar-border, hsl(240 5.9% 90%))',
27
36
  }, ...props, children: children }));
28
37
  });
29
38
  SidebarContainer.displayName = 'SidebarContainer';
@@ -31,7 +40,7 @@ SidebarContainer.displayName = 'SidebarContainer';
31
40
  * Sticky header at the top of sidebar
32
41
  */
33
42
  const SidebarHeader = forwardRef(({ className, children, ...props }, ref) => {
34
- return (_jsx("div", { ref: ref, className: cn('flex flex-col gap-2 p-4 border-b border-sidebar-border', className), ...props, children: children }));
43
+ return (_jsx("div", { ref: ref, className: cn('flex flex-col gap-2 p-4 border-b border-sidebar-border z-[60] relative bg-sidebar', className), ...props, children: children }));
35
44
  });
36
45
  SidebarHeader.displayName = 'SidebarHeader';
37
46
  /**
@@ -9,7 +9,10 @@ const DialogPortal = DialogPrimitive.Portal;
9
9
  const DialogClose = DialogPrimitive.Close;
10
10
  const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props })));
11
11
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
12
- const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [_jsx(Cross2Icon, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
12
+ const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), style: {
13
+ backgroundColor: 'var(--background, hsl(0 0% 100%))',
14
+ borderColor: 'var(--border, hsl(240 5.9% 90%))',
15
+ }, ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [_jsx(Cross2Icon, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
13
16
  DialogContent.displayName = DialogPrimitive.Content.displayName;
14
17
  const DialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn('flex flex-col space-y-1.5 text-center sm:text-left', className), ...props }));
15
18
  DialogHeader.displayName = 'DialogHeader';
@@ -5,7 +5,7 @@ import { cn } from '../../helpers';
5
5
  const Popover = PopoverPrimitive.Root;
6
6
  const PopoverTrigger = PopoverPrimitive.Trigger;
7
7
  const PopoverAnchor = PopoverPrimitive.Anchor;
8
- const PopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, className: cn('z-50 w-72 rounded-md border p-4 shadow-md outline-none', 'data-[state=open]:animate-in data-[state=closed]:animate-out', 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2', 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className), style: {
8
+ const PopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, className: cn('z-[70] w-72 rounded-md border p-4 shadow-md outline-none', 'data-[state=open]:animate-in data-[state=closed]:animate-out', 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2', 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className), style: {
9
9
  backgroundColor: 'var(--popover, hsl(0 0% 100%))',
10
10
  color: 'var(--popover-foreground, hsl(240 10% 3.9%))',
11
11
  borderColor: 'var(--border, hsl(240 5.9% 90%))',
@@ -42,8 +42,12 @@ const SelectContent = React.forwardRef(({ className, children, position = 'poppe
42
42
  };
43
43
  setFilteredChildren(filterChildren(children));
44
44
  }, [searchTerm, children]);
45
- return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, className: cn('z-50 relative min-w-[8rem] overflow-hidden rounded-md border bg-white text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', position === 'popper' &&
46
- 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), position: position, ...props, children: [_jsx("div", { className: "p-2 border-b", children: _jsx("input", { type: "text", placeholder: "Search...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), className: "w-full px-2 py-1 text-sm border rounded focus:outline-none focus:ring-1 focus:ring-gray-400", onKeyDown: (e) => {
45
+ return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, className: cn('z-[110] relative min-w-[8rem] overflow-hidden rounded-md border bg-white text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', position === 'popper' &&
46
+ 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), style: {
47
+ backgroundColor: 'var(--popover, hsl(0 0% 100%))',
48
+ color: 'var(--popover-foreground, hsl(240 10% 3.9%))',
49
+ borderColor: 'var(--border, hsl(240 5.9% 90%))',
50
+ }, position: position, ...props, children: [_jsx("div", { className: "p-2 border-b", children: _jsx("input", { type: "text", placeholder: "Search...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), className: "w-full px-2 py-1 text-sm border rounded focus:outline-none focus:ring-1 focus:ring-gray-400", onKeyDown: (e) => {
47
51
  e.stopPropagation();
48
52
  } }) }), _jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: cn('p-1 max-h-[200px] overflow-y-auto', position === 'popper' && 'w-full min-w-[var(--radix-select-trigger-width)]'), children: filteredChildren.length > 0 ? (filteredChildren) : (_jsx("div", { className: "px-2 py-1.5 text-sm text-gray-500", children: "No options found" })) }), _jsx(SelectScrollDownButton, {})] }) }));
49
53
  });
@@ -24,7 +24,10 @@ const sheetVariants = cva('fixed z-50 gap-4 bg-background p-6 shadow-lg transiti
24
24
  side: 'right',
25
25
  },
26
26
  });
27
- const SheetContent = React.forwardRef(({ side = 'right', className, children, ...props }, ref) => (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Content, { ref: ref, className: cn(sheetVariants({ side }), className), ...props, children: [_jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [_jsx(Cross2Icon, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] }), children] })] })));
27
+ const SheetContent = React.forwardRef(({ side = 'right', className, children, ...props }, ref) => (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Content, { ref: ref, className: cn(sheetVariants({ side }), className), style: {
28
+ backgroundColor: 'var(--background, hsl(0 0% 100%))',
29
+ borderColor: 'var(--border, hsl(240 5.9% 90%))',
30
+ }, ...props, children: [_jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [_jsx(Cross2Icon, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] }), children] })] })));
28
31
  SheetContent.displayName = SheetPrimitive.Content.displayName;
29
32
  const SheetHeader = ({ className, ...props }) => (_jsx("div", { className: cn('flex flex-col space-y-2 text-center sm:text-left', className), ...props }));
30
33
  SheetHeader.displayName = 'SheetHeader';
package/lib/styles.css CHANGED
@@ -984,6 +984,15 @@ input[type="range"]::-ms-fill-lower {
984
984
  --warning-foreground: 0 0% 0%;
985
985
  --info: 197 71% 52%;
986
986
  --info-foreground: 0 0% 100%;
987
+
988
+ /* Sidebar colors (for SidebarV2) */
989
+ --sidebar: 0 0% 100%;
990
+ --sidebar-foreground: 240 10% 3.9%;
991
+ --sidebar-border: 240 5.9% 90%;
992
+ --sidebar-accent: 240 4.8% 95.9%;
993
+ --sidebar-accent-foreground: 240 5.9% 10%;
994
+ --sidebar-primary: 305 38% 54%;
995
+ --sidebar-primary-foreground: 0 0% 100%;
987
996
  }
988
997
 
989
998
  .dark {
@@ -1020,6 +1029,15 @@ input[type="range"]::-ms-fill-lower {
1020
1029
  --chart-3: 197 71% 52%;
1021
1030
  --chart-4: 43 96% 56%;
1022
1031
  --chart-5: 305 38% 54%;
1032
+
1033
+ /* Sidebar colors (dark mode) */
1034
+ --sidebar: 240 10% 3.9%;
1035
+ --sidebar-foreground: 0 0% 98%;
1036
+ --sidebar-border: 240 3.7% 15.9%;
1037
+ --sidebar-accent: 240 3.7% 15.9%;
1038
+ --sidebar-accent-foreground: 0 0% 98%;
1039
+ --sidebar-primary: 305 38% 54%;
1040
+ --sidebar-primary-foreground: 0 0% 100%;
1023
1041
  }
1024
1042
  * {
1025
1043
  border-color: hsl(var(--border));
@@ -1209,6 +1227,9 @@ input[type="range"]::-ms-fill-lower {
1209
1227
  .top-12 {
1210
1228
  top: 3rem;
1211
1229
  }
1230
+ .top-16 {
1231
+ top: 4rem;
1232
+ }
1212
1233
  .top-2 {
1213
1234
  top: 0.5rem;
1214
1235
  }
@@ -1257,6 +1278,12 @@ input[type="range"]::-ms-fill-lower {
1257
1278
  .z-\[110\] {
1258
1279
  z-index: 110;
1259
1280
  }
1281
+ .z-\[60\] {
1282
+ z-index: 60;
1283
+ }
1284
+ .z-\[70\] {
1285
+ z-index: 70;
1286
+ }
1260
1287
  .z-auto {
1261
1288
  z-index: auto;
1262
1289
  }
@@ -2537,6 +2564,10 @@ input[type="range"]::-ms-fill-lower {
2537
2564
  --tw-border-opacity: 1;
2538
2565
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
2539
2566
  }
2567
+ .border-yellow-200 {
2568
+ --tw-border-opacity: 1;
2569
+ border-color: rgb(252 233 106 / var(--tw-border-opacity, 1));
2570
+ }
2540
2571
  .border-yellow-300 {
2541
2572
  --tw-border-opacity: 1;
2542
2573
  border-color: rgb(250 202 21 / var(--tw-border-opacity, 1));
@@ -2839,6 +2870,9 @@ input[type="range"]::-ms-fill-lower {
2839
2870
  --tw-bg-opacity: 1;
2840
2871
  background-color: rgb(253 253 234 / var(--tw-bg-opacity, 1));
2841
2872
  }
2873
+ .bg-yellow-50\/50 {
2874
+ background-color: rgb(253 253 234 / 0.5);
2875
+ }
2842
2876
  .bg-yellow-600 {
2843
2877
  --tw-bg-opacity: 1;
2844
2878
  background-color: rgb(159 88 10 / var(--tw-bg-opacity, 1));
@@ -3048,6 +3082,9 @@ input[type="range"]::-ms-fill-lower {
3048
3082
  .fill-yellow-400 {
3049
3083
  fill: #E3A008;
3050
3084
  }
3085
+ .stroke-\[1\.5\] {
3086
+ stroke-width: 1.5;
3087
+ }
3051
3088
  .object-contain {
3052
3089
  -o-object-fit: contain;
3053
3090
  object-fit: contain;
@@ -3648,6 +3685,10 @@ input[type="range"]::-ms-fill-lower {
3648
3685
  --tw-text-opacity: 1;
3649
3686
  color: rgb(194 120 3 / var(--tw-text-opacity, 1));
3650
3687
  }
3688
+ .text-yellow-600 {
3689
+ --tw-text-opacity: 1;
3690
+ color: rgb(159 88 10 / var(--tw-text-opacity, 1));
3691
+ }
3651
3692
  .text-yellow-700 {
3652
3693
  --tw-text-opacity: 1;
3653
3694
  color: rgb(142 75 16 / var(--tw-text-opacity, 1));
@@ -3710,9 +3751,6 @@ input[type="range"]::-ms-fill-lower {
3710
3751
  .opacity-50 {
3711
3752
  opacity: 0.5;
3712
3753
  }
3713
- .opacity-60 {
3714
- opacity: 0.6;
3715
- }
3716
3754
  .opacity-70 {
3717
3755
  opacity: 0.7;
3718
3756
  }
@@ -4279,6 +4317,9 @@ input[type="range"]::-ms-fill-lower {
4279
4317
  --tw-bg-opacity: 1;
4280
4318
  background-color: rgb(252 233 106 / var(--tw-bg-opacity, 1));
4281
4319
  }
4320
+ .hover\:bg-yellow-50\/50:hover {
4321
+ background-color: rgb(253 253 234 / 0.5);
4322
+ }
4282
4323
  .hover\:bg-gradient-to-br:hover {
4283
4324
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
4284
4325
  }
@@ -5175,6 +5216,10 @@ input[type="range"]::-ms-fill-lower {
5175
5216
  --tw-border-opacity: 1;
5176
5217
  border-color: rgb(159 88 10 / var(--tw-border-opacity, 1));
5177
5218
  }
5219
+ .dark\:border-yellow-800:is(.dark *) {
5220
+ --tw-border-opacity: 1;
5221
+ border-color: rgb(114 59 19 / var(--tw-border-opacity, 1));
5222
+ }
5178
5223
  .dark\:bg-\[\#b45dae\]:is(.dark *) {
5179
5224
  --tw-bg-opacity: 1;
5180
5225
  background-color: rgb(180 93 174 / var(--tw-bg-opacity, 1));
@@ -5378,6 +5423,12 @@ input[type="range"]::-ms-fill-lower {
5378
5423
  --tw-bg-opacity: 1;
5379
5424
  background-color: rgb(99 49 18 / var(--tw-bg-opacity, 1));
5380
5425
  }
5426
+ .dark\:bg-yellow-900\/10:is(.dark *) {
5427
+ background-color: rgb(99 49 18 / 0.1);
5428
+ }
5429
+ .dark\:bg-yellow-900\/20:is(.dark *) {
5430
+ background-color: rgb(99 49 18 / 0.2);
5431
+ }
5381
5432
  .dark\:bg-opacity-80:is(.dark *) {
5382
5433
  --tw-bg-opacity: 0.8;
5383
5434
  }
@@ -5572,6 +5623,14 @@ input[type="range"]::-ms-fill-lower {
5572
5623
  --tw-text-opacity: 1;
5573
5624
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
5574
5625
  }
5626
+ .dark\:text-yellow-400:is(.dark *) {
5627
+ --tw-text-opacity: 1;
5628
+ color: rgb(227 160 8 / var(--tw-text-opacity, 1));
5629
+ }
5630
+ .dark\:text-yellow-500:is(.dark *) {
5631
+ --tw-text-opacity: 1;
5632
+ color: rgb(194 120 3 / var(--tw-text-opacity, 1));
5633
+ }
5575
5634
  .dark\:text-yellow-600:is(.dark *) {
5576
5635
  --tw-text-opacity: 1;
5577
5636
  color: rgb(159 88 10 / var(--tw-text-opacity, 1));
@@ -5754,6 +5813,9 @@ input[type="range"]::-ms-fill-lower {
5754
5813
  --tw-bg-opacity: 1;
5755
5814
  background-color: rgb(250 202 21 / var(--tw-bg-opacity, 1));
5756
5815
  }
5816
+ .dark\:hover\:bg-yellow-900\/10:hover:is(.dark *) {
5817
+ background-color: rgb(99 49 18 / 0.1);
5818
+ }
5757
5819
  .dark\:hover\:text-gray-300:hover:is(.dark *) {
5758
5820
  --tw-text-opacity: 1;
5759
5821
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pagamio/frontend-commons-lib",
3
3
  "description": "Pagamio library for Frontend reusable components like the form engine and table container",
4
- "version": "0.8.229",
4
+ "version": "0.8.230",
5
5
  "publishConfig": {
6
6
  "access": "public",
7
7
  "provenance": false