tcce-design-system-test 0.3.39 → 0.3.40

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.
@@ -855,15 +855,15 @@ export declare type HasIcons<T extends WithIconsProps> = {
855
855
  /**
856
856
  * Checks if the user has at least one of the required permissions.
857
857
  *
858
- * @param {string[]} userPermissions - The permissions assigned to the user.
859
- * @param {string[]} requiredPermissions - The required permissions to check against.
858
+ * @param {Permission[]} userPermissions - The Permission objects assigned to the user.
859
+ * @param {string[]} requiredPermissions - The required permission names to check against.
860
860
  * @returns {boolean} True if the user has permission, otherwise false.
861
861
  *
862
862
  * - Returns false if no required permissions are provided.
863
863
  * - Returns true if 'all' is included in the required permissions array.
864
- * - Returns true if any of the user's permissions match the required permissions.
864
+ * - Returns true if any of the user's permission names match the required permissions.
865
865
  */
866
- export declare const hasPermission: (userPermissions?: string[], requiredPermissions?: string[]) => boolean;
866
+ export declare const hasPermission: (userPermissions?: Permission[], requiredPermissions?: string[]) => boolean;
867
867
 
868
868
  /**
869
869
  * Main Header component for the application.
@@ -1187,7 +1187,7 @@ export declare interface NavigationItem {
1187
1187
  href?: string;
1188
1188
  path?: string;
1189
1189
  target?: '_blank' | '_self' | '_parent' | '_top';
1190
- permissions: Permission[];
1190
+ requiredPermissions: string[];
1191
1191
  children?: NavigationItem[];
1192
1192
  }
1193
1193
 
@@ -1274,7 +1274,13 @@ export declare const PasswordInput: ({ size, leftIcon, iconSize, iconColor, plac
1274
1274
  export declare interface PasswordInputProps extends BaseFormFieldProps, Omit<WithIconsProps, 'rightIcon'> {
1275
1275
  }
1276
1276
 
1277
- export declare type Permission = string;
1277
+ export declare interface Permission {
1278
+ id: number;
1279
+ name: string;
1280
+ guard_name: string;
1281
+ created_at?: string;
1282
+ updated_at?: string;
1283
+ }
1278
1284
 
1279
1285
  export declare const PinInput: ForwardRefExoticComponent<PinInputProps & RefAttributes<HTMLInputElement>>;
1280
1286
 
@@ -9318,7 +9318,7 @@ const yl = Je(void 0), n0 = ({ children: e }) => {
9318
9318
  if (!e)
9319
9319
  throw new Error("useSidebar must be used within a SidebarProvider");
9320
9320
  return e;
9321
- }, ls = (e = [], t = []) => !t || t.length === 0 ? !1 : t.includes("all") ? !0 : e.some((n) => t.includes(n)), o0 = b`
9321
+ }, ls = (e = [], t = []) => !t || t.length === 0 ? !1 : t.includes("all") ? !0 : e.map((o) => o.name).some((o) => t.includes(o)), o0 = b`
9322
9322
  display: flex;
9323
9323
  align-items: center;
9324
9324
  justify-content: center;
@@ -9412,12 +9412,14 @@ const yl = Je(void 0), n0 = ({ children: e }) => {
9412
9412
  transition: transform 0.3s ease-out;
9413
9413
  `, bl = ({ item: e, userPermissions: t, level: n = 0, activePath: o, onNavigate: r }) => {
9414
9414
  const [i, s] = Q(!1), { isCollapsed: a, setIsMobileOpen: l, setIsCollapsed: c } = vl(), d = W(
9415
- () => (e.children || []).filter((w) => ls(t, w.permissions)),
9415
+ () => (e.children || []).filter(
9416
+ (w) => ls(t, w.requiredPermissions)
9417
+ ),
9416
9418
  [e.children, t]
9417
9419
  );
9418
9420
  if (!W(
9419
- () => ls(t, e.permissions),
9420
- [t, e.permissions]
9421
+ () => ls(t, e.requiredPermissions),
9422
+ [t, e.requiredPermissions]
9421
9423
  )) return null;
9422
9424
  const h = d.length > 0, f = e.href || e.path || "", m = !!(f && o && o.startsWith(f)), p = () => {
9423
9425
  a && c(!1), s((w) => !w);
@@ -1319,7 +1319,7 @@
1319
1319
  background-color: var(--color-dark-600);
1320
1320
 
1321
1321
  ${({$placement:e})=>u0(e)}
1322
- `,vl=({content:e,children:t,placement:n="bottom",trigger:o="hover",className:r="",arrowClassName:i="",delay:s=200,showArrow:a=!0})=>{const[l,c]=p.useState(!1),d=p.useRef(null),u=p.useRef(null),h=p.useRef(null);p.useEffect(()=>{if(o!=="click"||!l)return;const w=C=>{u.current&&!u.current.contains(C.target)&&h.current&&!h.current.contains(C.target)&&c(!1)};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[l,o]),p.useEffect(()=>()=>{d.current&&clearTimeout(d.current)},[]);const b=o==="hover"?{onMouseEnter:()=>{d.current&&clearTimeout(d.current),d.current=setTimeout(()=>c(!0),s)},onMouseLeave:()=>{d.current&&clearTimeout(d.current),d.current=setTimeout(()=>c(!1),100)}}:{onClick:()=>{c(w=>!w)}};return m.jsxs(s0,{children:[m.jsx(a0,{ref:h,...b,children:t}),l&&m.jsxs(c0,{ref:u,$placement:n,className:r,role:"tooltip","aria-hidden":!l,children:[e,a&&m.jsx(d0,{$placement:n,className:i})]})]})};vl.displayName="Tooltip";const lr=p.createContext(void 0),yl=({children:e})=>{const[t,n]=p.useState(!1),[o,r]=p.useState(!1);return m.jsx(lr.Provider,{value:{isCollapsed:t,setIsCollapsed:n,isMobileOpen:o,setIsMobileOpen:r},children:e})},cr=()=>{const e=p.useContext(lr);if(!e)throw new Error("useSidebar must be used within a SidebarProvider");return e},ur=(e=[],t=[])=>!t||t.length===0?!1:t.includes("all")?!0:e.some(n=>t.includes(n)),f0=g.css`
1322
+ `,vl=({content:e,children:t,placement:n="bottom",trigger:o="hover",className:r="",arrowClassName:i="",delay:s=200,showArrow:a=!0})=>{const[l,c]=p.useState(!1),d=p.useRef(null),u=p.useRef(null),h=p.useRef(null);p.useEffect(()=>{if(o!=="click"||!l)return;const w=C=>{u.current&&!u.current.contains(C.target)&&h.current&&!h.current.contains(C.target)&&c(!1)};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[l,o]),p.useEffect(()=>()=>{d.current&&clearTimeout(d.current)},[]);const b=o==="hover"?{onMouseEnter:()=>{d.current&&clearTimeout(d.current),d.current=setTimeout(()=>c(!0),s)},onMouseLeave:()=>{d.current&&clearTimeout(d.current),d.current=setTimeout(()=>c(!1),100)}}:{onClick:()=>{c(w=>!w)}};return m.jsxs(s0,{children:[m.jsx(a0,{ref:h,...b,children:t}),l&&m.jsxs(c0,{ref:u,$placement:n,className:r,role:"tooltip","aria-hidden":!l,children:[e,a&&m.jsx(d0,{$placement:n,className:i})]})]})};vl.displayName="Tooltip";const lr=p.createContext(void 0),yl=({children:e})=>{const[t,n]=p.useState(!1),[o,r]=p.useState(!1);return m.jsx(lr.Provider,{value:{isCollapsed:t,setIsCollapsed:n,isMobileOpen:o,setIsMobileOpen:r},children:e})},cr=()=>{const e=p.useContext(lr);if(!e)throw new Error("useSidebar must be used within a SidebarProvider");return e},ur=(e=[],t=[])=>!t||t.length===0?!1:t.includes("all")?!0:e.map(o=>o.name).some(o=>t.includes(o)),f0=g.css`
1323
1323
  display: flex;
1324
1324
  align-items: center;
1325
1325
  justify-content: center;
@@ -1411,7 +1411,7 @@
1411
1411
  transform: rotate(${({$open:e})=>e?"90deg":"0deg"});
1412
1412
  pointer-events: none;
1413
1413
  transition: transform 0.3s ease-out;
1414
- `,bl=({item:e,userPermissions:t,level:n=0,activePath:o,onNavigate:r})=>{const[i,s]=p.useState(!1),{isCollapsed:a,setIsMobileOpen:l,setIsCollapsed:c}=cr(),d=p.useMemo(()=>(e.children||[]).filter(x=>ur(t,x.permissions)),[e.children,t]);if(!p.useMemo(()=>ur(t,e.permissions),[t,e.permissions]))return null;const h=d.length>0,f=e.href||e.path||"",v=!!(f&&o&&o.startsWith(f)),y=()=>{a&&c(!1),s(x=>!x)},b=()=>{a&&c(!1),e.href&&r?.(e.href)},w=async()=>{if(a&&c(!1),!e.path)return;const x=e.target||"_blank";try{typeof window<"u"&&(x==="_blank"?window.open(e.path,"_blank","noopener,noreferrer"):window.location.href=e.path),l&&l(!1)}catch(k){console.error("Error al navegar a microservicio:",k)}},C=()=>m.jsxs(m.Fragment,{children:[m.jsxs(m0,{children:[n>0&&!a&&m.jsx(w0,{}),e.icon&&m.jsx(U,{component:e.icon,size:n===0?"md":"sm",color:"var(--color-main-blue-primary)"}),!a&&m.jsx(g0,{$level:n,size:n===0?16:n===1?14:12,color:"var(--color-dark-700, #374151)",children:e.label})]}),!a&&h&&m.jsx(b0,{$disabled:a,$open:i,children:m.jsx(U,{component:Pm,size:"sm",color:"var(--color-main-blue-primary)"})})]});return m.jsxs(y0,{$level:n,children:[e.href&&!e.path&&!h?m.jsx(h0,{type:"button",onClick:b,$level:n,$collapsed:a,$active:v,title:a?e.label:"",children:C()}):m.jsx(p0,{type:"button",onClick:h?y:e.path?w:b,$level:n,$collapsed:a,$active:v,$expanded:i&&h,title:a?e.label:"",children:C()}),m.jsx(Lt,{initial:!1,children:!a&&i&&h&&m.jsx(v0,{$level:n+1,...fl,children:d.map(x=>m.jsx(bl,{item:x,userPermissions:t,level:n+1,onNavigate:r,activePath:o},x.id))})})]})},xl=g(Fe.div)`
1414
+ `,bl=({item:e,userPermissions:t,level:n=0,activePath:o,onNavigate:r})=>{const[i,s]=p.useState(!1),{isCollapsed:a,setIsMobileOpen:l,setIsCollapsed:c}=cr(),d=p.useMemo(()=>(e.children||[]).filter(x=>ur(t,x.requiredPermissions)),[e.children,t]);if(!p.useMemo(()=>ur(t,e.requiredPermissions),[t,e.requiredPermissions]))return null;const h=d.length>0,f=e.href||e.path||"",v=!!(f&&o&&o.startsWith(f)),y=()=>{a&&c(!1),s(x=>!x)},b=()=>{a&&c(!1),e.href&&r?.(e.href)},w=async()=>{if(a&&c(!1),!e.path)return;const x=e.target||"_blank";try{typeof window<"u"&&(x==="_blank"?window.open(e.path,"_blank","noopener,noreferrer"):window.location.href=e.path),l&&l(!1)}catch(k){console.error("Error al navegar a microservicio:",k)}},C=()=>m.jsxs(m.Fragment,{children:[m.jsxs(m0,{children:[n>0&&!a&&m.jsx(w0,{}),e.icon&&m.jsx(U,{component:e.icon,size:n===0?"md":"sm",color:"var(--color-main-blue-primary)"}),!a&&m.jsx(g0,{$level:n,size:n===0?16:n===1?14:12,color:"var(--color-dark-700, #374151)",children:e.label})]}),!a&&h&&m.jsx(b0,{$disabled:a,$open:i,children:m.jsx(U,{component:Pm,size:"sm",color:"var(--color-main-blue-primary)"})})]});return m.jsxs(y0,{$level:n,children:[e.href&&!e.path&&!h?m.jsx(h0,{type:"button",onClick:b,$level:n,$collapsed:a,$active:v,title:a?e.label:"",children:C()}):m.jsx(p0,{type:"button",onClick:h?y:e.path?w:b,$level:n,$collapsed:a,$active:v,$expanded:i&&h,title:a?e.label:"",children:C()}),m.jsx(Lt,{initial:!1,children:!a&&i&&h&&m.jsx(v0,{$level:n+1,...fl,children:d.map(x=>m.jsx(bl,{item:x,userPermissions:t,level:n+1,onNavigate:r,activePath:o},x.id))})})]})},xl=g(Fe.div)`
1415
1415
  position: fixed;
1416
1416
  inset: 0;
1417
1417
  background: rgba(0, 0, 0, 0.5);
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.3.39",
6
+ "version": "0.3.40",
7
7
  "description": "This package provides reusable UI components to ensure consistency across all CRM frontend applications",
8
8
  "author": "BizAppsTotal <bizapps@tcce.biz>",
9
9
  "type": "module",