@greatapps/common 1.1.313 → 1.1.315

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.
@@ -34,7 +34,7 @@ function MdSideBarNavigation({
34
34
  "button",
35
35
  {
36
36
  onClick: collapse,
37
- className: "absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40",
37
+ className: "absolute top-[60px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40",
38
38
  children: /* @__PURE__ */ jsx(IconChevronLeft, { size: 16, className: "text-gray-500" })
39
39
  }
40
40
  ) }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/layouts/MdSideBarNavigation.tsx"],"sourcesContent":["'use client';\n\n\"use client\"\n\nimport * as React from \"react\"\nimport { IconChevronLeft } from '@tabler/icons-react'\nimport { useMdSidebarStore } from \"../../store/useMdSidebarStore\"\nimport { cn } from \"../../infra/utils/clsx\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\"\n\nfunction MdSideBarNavigation({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { isExpanded, collapse } = useMdSidebarStore()\n\n return (\n <>\n <div\n className={`hidden md:block lg:hidden fixed inset-0 bg-black/50 z-20 transition-opacity duration-300 ${\n isExpanded ? \"opacity-100\" : \"opacity-0 pointer-events-none\"\n }`}\n onClick={collapse}\n />\n <div\n className={`hidden md:flex lg:hidden fixed top-0 bottom-0 left-[73px] z-30 transition-transform duration-300 ease-in-out overflow-visible ${\n isExpanded ? \"translate-x-0\" : \"-translate-x-full\"\n }`}\n >\n <div\n data-slot=\"md-sidebar-navigation\"\n className={cn(\"relative w-[273px] h-full flex flex-col p-4 bg-white border-r border-gray-200\", className)}\n {...props}\n >\n {isExpanded && (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={collapse}\n className=\"absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40\"\n >\n <IconChevronLeft size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">Recolher menu</TooltipContent>\n </Tooltip>\n )}\n {children}\n </div>\n </div>\n </>\n )\n}\n\nexport { MdSideBarNavigation };\n"],"mappings":";AAkBQ,mBACI,KAiBY,YAlBhB;AAbR,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,UAAU;AACnB,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,oBAAoB;AAAA,EACzB;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAAgC;AAC5B,QAAM,EAAE,YAAY,SAAS,IAAI,kBAAkB;AAEnD,SACI,iCACI;AAAA;AAAA,MAAC;AAAA;AAAA,QACG,WAAW,4FACP,aAAa,gBAAgB,+BACjC;AAAA,QACA,SAAS;AAAA;AAAA,IACb;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACG,WAAW,iIACP,aAAa,kBAAkB,mBACnC;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACG,aAAU;AAAA,YACV,WAAW,GAAG,iFAAiF,SAAS;AAAA,YACvG,GAAG;AAAA,YAEH;AAAA,4BACG,qBAAC,WACG;AAAA,oCAAC,kBAAe,SAAO,MACnB;AAAA,kBAAC;AAAA;AAAA,oBACG,SAAS;AAAA,oBACT,WAAU;AAAA,oBAEV,8BAAC,mBAAgB,MAAM,IAAI,WAAU,iBAAgB;AAAA;AAAA,gBACzD,GACJ;AAAA,gBACA,oBAAC,kBAAe,MAAK,SAAQ,2BAAa;AAAA,iBAC9C;AAAA,cAEH;AAAA;AAAA;AAAA,QACL;AAAA;AAAA,IACJ;AAAA,KACJ;AAER;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/layouts/MdSideBarNavigation.tsx"],"sourcesContent":["'use client';\n\n\"use client\"\n\nimport * as React from \"react\"\nimport { IconChevronLeft } from '@tabler/icons-react'\nimport { useMdSidebarStore } from \"../../store/useMdSidebarStore\"\nimport { cn } from \"../../infra/utils/clsx\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\"\n\nfunction MdSideBarNavigation({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { isExpanded, collapse } = useMdSidebarStore()\n\n return (\n <>\n <div\n className={`hidden md:block lg:hidden fixed inset-0 bg-black/50 z-20 transition-opacity duration-300 ${\n isExpanded ? \"opacity-100\" : \"opacity-0 pointer-events-none\"\n }`}\n onClick={collapse}\n />\n <div\n className={`hidden md:flex lg:hidden fixed top-0 bottom-0 left-[73px] z-30 transition-transform duration-300 ease-in-out overflow-visible ${\n isExpanded ? \"translate-x-0\" : \"-translate-x-full\"\n }`}\n >\n <div\n data-slot=\"md-sidebar-navigation\"\n className={cn(\"relative w-[273px] h-full flex flex-col p-4 bg-white border-r border-gray-200\", className)}\n {...props}\n >\n {isExpanded && (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={collapse}\n className=\"absolute top-[60px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40\"\n >\n <IconChevronLeft size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"right\">Recolher menu</TooltipContent>\n </Tooltip>\n )}\n {children}\n </div>\n </div>\n </>\n )\n}\n\nexport { MdSideBarNavigation };\n"],"mappings":";AAkBQ,mBACI,KAiBY,YAlBhB;AAbR,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,UAAU;AACnB,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,oBAAoB;AAAA,EACzB;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAAgC;AAC5B,QAAM,EAAE,YAAY,SAAS,IAAI,kBAAkB;AAEnD,SACI,iCACI;AAAA;AAAA,MAAC;AAAA;AAAA,QACG,WAAW,4FACP,aAAa,gBAAgB,+BACjC;AAAA,QACA,SAAS;AAAA;AAAA,IACb;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACG,WAAW,iIACP,aAAa,kBAAkB,mBACnC;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACG,aAAU;AAAA,YACV,WAAW,GAAG,iFAAiF,SAAS;AAAA,YACvG,GAAG;AAAA,YAEH;AAAA,4BACG,qBAAC,WACG;AAAA,oCAAC,kBAAe,SAAO,MACnB;AAAA,kBAAC;AAAA;AAAA,oBACG,SAAS;AAAA,oBACT,WAAU;AAAA,oBAEV,8BAAC,mBAAgB,MAAM,IAAI,WAAU,iBAAgB;AAAA;AAAA,gBACzD,GACJ;AAAA,gBACA,oBAAC,kBAAe,MAAK,SAAQ,2BAAa;AAAA,iBAC9C;AAAA,cAEH;AAAA;AAAA;AAAA,QACL;AAAA;AAAA,IACJ;AAAA,KACJ;AAER;","names":[]}
@@ -39,7 +39,7 @@ function SideBarNavigation({
39
39
  {
40
40
  onClick: collapse,
41
41
  className: cn(
42
- "absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-50",
42
+ "absolute top-[60px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-50",
43
43
  isExpanded ? "opacity-100 scale-100" : "opacity-0 scale-0 pointer-events-none"
44
44
  ),
45
45
  children: /* @__PURE__ */ jsx(IconChevronLeft, { size: 16, className: "text-gray-500" })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/layouts/SideBarNavigation.tsx"],"sourcesContent":["'use client';\n\nimport * as React from \"react\"\nimport { IconChevronLeft } from '@tabler/icons-react'\nimport { useDesktopSidebarStore } from \"../../store/useDesktopSidebarStore\"\nimport { useMdSidebarStore } from \"../../store/useMdSidebarStore\"\nimport { cn } from \"../../infra/utils/clsx\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\"\n\nfunction SideBarNavigation({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { isExpanded, collapse } = useDesktopSidebarStore()\n const collapseMd = useMdSidebarStore((s) => s.collapse)\n\n React.useEffect(() => {\n const mql = window.matchMedia('(min-width: 1351px)')\n const handler = (e: MediaQueryListEvent) => {\n if (e.matches) collapseMd()\n }\n if (mql.matches) collapseMd()\n mql.addEventListener('change', handler)\n return () => mql.removeEventListener('change', handler)\n }, [collapseMd])\n\n return (\n <div\n data-slot=\"sidebar-navigation\"\n className={cn(\n \"relative hidden lg:flex flex-col h-screen border-r border-gray-200 transition-all duration-300 ease-in-out\",\n isExpanded ? \"w-[273px] p-4\" : \"w-0 p-0 border-r-0 overflow-hidden\",\n className,\n )}\n {...props}\n >\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={collapse}\n className={cn(\n \"absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-50\",\n isExpanded ? \"opacity-100 scale-100\" : \"opacity-0 scale-0 pointer-events-none\",\n )}\n >\n <IconChevronLeft size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n {isExpanded && <TooltipContent side=\"right\">Recolher menu</TooltipContent>}\n </Tooltip>\n {children}\n </div>\n )\n}\n\nexport { SideBarNavigation };\n"],"mappings":";AAqCY,SASY,KATZ;AAnCZ,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,UAAU;AACnB,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,kBAAkB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAAgC;AAC5B,QAAM,EAAE,YAAY,SAAS,IAAI,uBAAuB;AACxD,QAAM,aAAa,kBAAkB,CAAC,MAAM,EAAE,QAAQ;AAEtD,QAAM,UAAU,MAAM;AAClB,UAAM,MAAM,OAAO,WAAW,qBAAqB;AACnD,UAAM,UAAU,CAAC,MAA2B;AACxC,UAAI,EAAE,QAAS,YAAW;AAAA,IAC9B;AACA,QAAI,IAAI,QAAS,YAAW;AAC5B,QAAI,iBAAiB,UAAU,OAAO;AACtC,WAAO,MAAM,IAAI,oBAAoB,UAAU,OAAO;AAAA,EAC1D,GAAG,CAAC,UAAU,CAAC;AAEf,SACI;AAAA,IAAC;AAAA;AAAA,MACG,aAAU;AAAA,MACV,WAAW;AAAA,QACP;AAAA,QACA,aAAa,kBAAkB;AAAA,QAC/B;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,6BAAC,WACG;AAAA,8BAAC,kBAAe,SAAO,MACnB;AAAA,YAAC;AAAA;AAAA,cACG,SAAS;AAAA,cACT,WAAW;AAAA,gBACP;AAAA,gBACA,aAAa,0BAA0B;AAAA,cAC3C;AAAA,cAEA,8BAAC,mBAAgB,MAAM,IAAI,WAAU,iBAAgB;AAAA;AAAA,UACzD,GACJ;AAAA,UACC,cAAc,oBAAC,kBAAe,MAAK,SAAQ,2BAAa;AAAA,WAC7D;AAAA,QACC;AAAA;AAAA;AAAA,EACL;AAER;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/layouts/SideBarNavigation.tsx"],"sourcesContent":["'use client';\n\nimport * as React from \"react\"\nimport { IconChevronLeft } from '@tabler/icons-react'\nimport { useDesktopSidebarStore } from \"../../store/useDesktopSidebarStore\"\nimport { useMdSidebarStore } from \"../../store/useMdSidebarStore\"\nimport { cn } from \"../../infra/utils/clsx\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../ui/overlay/Tooltip\"\n\nfunction SideBarNavigation({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { isExpanded, collapse } = useDesktopSidebarStore()\n const collapseMd = useMdSidebarStore((s) => s.collapse)\n\n React.useEffect(() => {\n const mql = window.matchMedia('(min-width: 1351px)')\n const handler = (e: MediaQueryListEvent) => {\n if (e.matches) collapseMd()\n }\n if (mql.matches) collapseMd()\n mql.addEventListener('change', handler)\n return () => mql.removeEventListener('change', handler)\n }, [collapseMd])\n\n return (\n <div\n data-slot=\"sidebar-navigation\"\n className={cn(\n \"relative hidden lg:flex flex-col h-screen border-r border-gray-200 transition-all duration-300 ease-in-out\",\n isExpanded ? \"w-[273px] p-4\" : \"w-0 p-0 border-r-0 overflow-hidden\",\n className,\n )}\n {...props}\n >\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={collapse}\n className={cn(\n \"absolute top-[60px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-50\",\n isExpanded ? \"opacity-100 scale-100\" : \"opacity-0 scale-0 pointer-events-none\",\n )}\n >\n <IconChevronLeft size={16} className=\"text-gray-500\" />\n </button>\n </TooltipTrigger>\n {isExpanded && <TooltipContent side=\"right\">Recolher menu</TooltipContent>}\n </Tooltip>\n {children}\n </div>\n )\n}\n\nexport { SideBarNavigation };\n"],"mappings":";AAqCY,SASY,KATZ;AAnCZ,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,UAAU;AACnB,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,kBAAkB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAAgC;AAC5B,QAAM,EAAE,YAAY,SAAS,IAAI,uBAAuB;AACxD,QAAM,aAAa,kBAAkB,CAAC,MAAM,EAAE,QAAQ;AAEtD,QAAM,UAAU,MAAM;AAClB,UAAM,MAAM,OAAO,WAAW,qBAAqB;AACnD,UAAM,UAAU,CAAC,MAA2B;AACxC,UAAI,EAAE,QAAS,YAAW;AAAA,IAC9B;AACA,QAAI,IAAI,QAAS,YAAW;AAC5B,QAAI,iBAAiB,UAAU,OAAO;AACtC,WAAO,MAAM,IAAI,oBAAoB,UAAU,OAAO;AAAA,EAC1D,GAAG,CAAC,UAAU,CAAC;AAEf,SACI;AAAA,IAAC;AAAA;AAAA,MACG,aAAU;AAAA,MACV,WAAW;AAAA,QACP;AAAA,QACA,aAAa,kBAAkB;AAAA,QAC/B;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,6BAAC,WACG;AAAA,8BAAC,kBAAe,SAAO,MACnB;AAAA,YAAC;AAAA;AAAA,cACG,SAAS;AAAA,cACT,WAAW;AAAA,gBACP;AAAA,gBACA,aAAa,0BAA0B;AAAA,cAC3C;AAAA,cAEA,8BAAC,mBAAgB,MAAM,IAAI,WAAU,iBAAgB;AAAA;AAAA,UACzD,GACJ;AAAA,UACC,cAAc,oBAAC,kBAAe,MAAK,SAAQ,2BAAa;AAAA,WAC7D;AAAA,QACC;AAAA;AAAA;AAAA,EACL;AAER;","names":[]}
@@ -1,9 +1,26 @@
1
1
  import { create } from "zustand";
2
+ const STORAGE_KEY = "desktop-sidebar-expanded";
3
+ function getInitialState() {
4
+ if (typeof window === "undefined") return true;
5
+ const stored = localStorage.getItem(STORAGE_KEY);
6
+ if (stored === null) return true;
7
+ return stored === "true";
8
+ }
2
9
  const useDesktopSidebarStore = create((set) => ({
3
- isExpanded: true,
4
- toggle: () => set((state) => ({ isExpanded: !state.isExpanded })),
5
- expand: () => set({ isExpanded: true }),
6
- collapse: () => set({ isExpanded: false })
10
+ isExpanded: getInitialState(),
11
+ toggle: () => set((state) => {
12
+ const next = !state.isExpanded;
13
+ localStorage.setItem(STORAGE_KEY, String(next));
14
+ return { isExpanded: next };
15
+ }),
16
+ expand: () => {
17
+ localStorage.setItem(STORAGE_KEY, "true");
18
+ return set({ isExpanded: true });
19
+ },
20
+ collapse: () => {
21
+ localStorage.setItem(STORAGE_KEY, "false");
22
+ return set({ isExpanded: false });
23
+ }
7
24
  }));
8
25
  export {
9
26
  useDesktopSidebarStore
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/store/useDesktopSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\n\ntype DesktopSidebarStore = {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n};\n\nexport const useDesktopSidebarStore = create<DesktopSidebarStore>((set) => ({\n isExpanded: true,\n toggle: () => set((state) => ({ isExpanded: !state.isExpanded })),\n expand: () => set({ isExpanded: true }),\n collapse: () => set({ isExpanded: false }),\n}));\n"],"mappings":"AAAA,SAAS,cAAc;AAShB,MAAM,yBAAyB,OAA4B,CAAC,SAAS;AAAA,EACxE,YAAY;AAAA,EACZ,QAAQ,MAAM,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,WAAW,EAAE;AAAA,EAChE,QAAQ,MAAM,IAAI,EAAE,YAAY,KAAK,CAAC;AAAA,EACtC,UAAU,MAAM,IAAI,EAAE,YAAY,MAAM,CAAC;AAC7C,EAAE;","names":[]}
1
+ {"version":3,"sources":["../../src/store/useDesktopSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\n\nconst STORAGE_KEY = \"desktop-sidebar-expanded\";\n\nfunction getInitialState(): boolean {\n if (typeof window === \"undefined\") return true;\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored === null) return true;\n return stored === \"true\";\n}\n\ntype DesktopSidebarStore = {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n};\n\nexport const useDesktopSidebarStore = create<DesktopSidebarStore>((set) => ({\n isExpanded: getInitialState(),\n toggle: () => set((state) => {\n const next = !state.isExpanded;\n localStorage.setItem(STORAGE_KEY, String(next));\n return { isExpanded: next };\n }),\n expand: () => {\n localStorage.setItem(STORAGE_KEY, \"true\");\n return set({ isExpanded: true });\n },\n collapse: () => {\n localStorage.setItem(STORAGE_KEY, \"false\");\n return set({ isExpanded: false });\n },\n}));\n"],"mappings":"AAAA,SAAS,cAAc;AAEvB,MAAM,cAAc;AAEpB,SAAS,kBAA2B;AAChC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,SAAS,aAAa,QAAQ,WAAW;AAC/C,MAAI,WAAW,KAAM,QAAO;AAC5B,SAAO,WAAW;AACtB;AASO,MAAM,yBAAyB,OAA4B,CAAC,SAAS;AAAA,EACxE,YAAY,gBAAgB;AAAA,EAC5B,QAAQ,MAAM,IAAI,CAAC,UAAU;AACzB,UAAM,OAAO,CAAC,MAAM;AACpB,iBAAa,QAAQ,aAAa,OAAO,IAAI,CAAC;AAC9C,WAAO,EAAE,YAAY,KAAK;AAAA,EAC9B,CAAC;AAAA,EACD,QAAQ,MAAM;AACV,iBAAa,QAAQ,aAAa,MAAM;AACxC,WAAO,IAAI,EAAE,YAAY,KAAK,CAAC;AAAA,EACnC;AAAA,EACA,UAAU,MAAM;AACZ,iBAAa,QAAQ,aAAa,OAAO;AACzC,WAAO,IAAI,EAAE,YAAY,MAAM,CAAC;AAAA,EACpC;AACJ,EAAE;","names":[]}
@@ -1,9 +1,26 @@
1
1
  import { create } from "zustand";
2
+ const STORAGE_KEY = "md-sidebar-expanded";
3
+ function getInitialState() {
4
+ if (typeof window === "undefined") return false;
5
+ const stored = localStorage.getItem(STORAGE_KEY);
6
+ if (stored === null) return false;
7
+ return stored === "true";
8
+ }
2
9
  const useMdSidebarStore = create((set) => ({
3
- isExpanded: true,
4
- toggle: () => set((state) => ({ isExpanded: !state.isExpanded })),
5
- expand: () => set({ isExpanded: true }),
6
- collapse: () => set({ isExpanded: false })
10
+ isExpanded: getInitialState(),
11
+ toggle: () => set((state) => {
12
+ const next = !state.isExpanded;
13
+ localStorage.setItem(STORAGE_KEY, String(next));
14
+ return { isExpanded: next };
15
+ }),
16
+ expand: () => {
17
+ localStorage.setItem(STORAGE_KEY, "true");
18
+ return set({ isExpanded: true });
19
+ },
20
+ collapse: () => {
21
+ localStorage.setItem(STORAGE_KEY, "false");
22
+ return set({ isExpanded: false });
23
+ }
7
24
  }));
8
25
  export {
9
26
  useMdSidebarStore
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/store/useMdSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\r\n\r\ntype MdSidebarStore = {\r\n isExpanded: boolean;\r\n toggle: () => void;\r\n expand: () => void;\r\n collapse: () => void;\r\n};\r\n\r\nexport const useMdSidebarStore = create<MdSidebarStore>((set) => ({\r\n isExpanded: true,\r\n toggle: () => set((state) => ({ isExpanded: !state.isExpanded })),\r\n expand: () => set({ isExpanded: true }),\r\n collapse: () => set({ isExpanded: false }),\r\n}));\r\n"],"mappings":"AAAA,SAAS,cAAc;AAShB,MAAM,oBAAoB,OAAuB,CAAC,SAAS;AAAA,EAC9D,YAAY;AAAA,EACZ,QAAQ,MAAM,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,WAAW,EAAE;AAAA,EAChE,QAAQ,MAAM,IAAI,EAAE,YAAY,KAAK,CAAC;AAAA,EACtC,UAAU,MAAM,IAAI,EAAE,YAAY,MAAM,CAAC;AAC7C,EAAE;","names":[]}
1
+ {"version":3,"sources":["../../src/store/useMdSidebarStore.ts"],"sourcesContent":["import { create } from \"zustand\";\n\nconst STORAGE_KEY = \"md-sidebar-expanded\";\n\nfunction getInitialState(): boolean {\n if (typeof window === \"undefined\") return false;\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored === null) return false;\n return stored === \"true\";\n}\n\ntype MdSidebarStore = {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n};\n\nexport const useMdSidebarStore = create<MdSidebarStore>((set) => ({\n isExpanded: getInitialState(),\n toggle: () => set((state) => {\n const next = !state.isExpanded;\n localStorage.setItem(STORAGE_KEY, String(next));\n return { isExpanded: next };\n }),\n expand: () => {\n localStorage.setItem(STORAGE_KEY, \"true\");\n return set({ isExpanded: true });\n },\n collapse: () => {\n localStorage.setItem(STORAGE_KEY, \"false\");\n return set({ isExpanded: false });\n },\n}));\n"],"mappings":"AAAA,SAAS,cAAc;AAEvB,MAAM,cAAc;AAEpB,SAAS,kBAA2B;AAChC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,SAAS,aAAa,QAAQ,WAAW;AAC/C,MAAI,WAAW,KAAM,QAAO;AAC5B,SAAO,WAAW;AACtB;AASO,MAAM,oBAAoB,OAAuB,CAAC,SAAS;AAAA,EAC9D,YAAY,gBAAgB;AAAA,EAC5B,QAAQ,MAAM,IAAI,CAAC,UAAU;AACzB,UAAM,OAAO,CAAC,MAAM;AACpB,iBAAa,QAAQ,aAAa,OAAO,IAAI,CAAC;AAC9C,WAAO,EAAE,YAAY,KAAK;AAAA,EAC9B,CAAC;AAAA,EACD,QAAQ,MAAM;AACV,iBAAa,QAAQ,aAAa,MAAM;AACxC,WAAO,IAAI,EAAE,YAAY,KAAK,CAAC;AAAA,EACnC;AAAA,EACA,UAAU,MAAM;AACZ,iBAAa,QAAQ,aAAa,OAAO;AACzC,WAAO,IAAI,EAAE,YAAY,MAAM,CAAC;AAAA,EACpC;AACJ,EAAE;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greatapps/common",
3
- "version": "1.1.313",
3
+ "version": "1.1.315",
4
4
  "description": "Shared library for GreatApps frontend applications",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./src/index.ts",
@@ -38,7 +38,7 @@ function MdSideBarNavigation({
38
38
  <TooltipTrigger asChild>
39
39
  <button
40
40
  onClick={collapse}
41
- className="absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40"
41
+ className="absolute top-[60px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-colors z-40"
42
42
  >
43
43
  <IconChevronLeft size={16} className="text-gray-500" />
44
44
  </button>
@@ -40,7 +40,7 @@ function SideBarNavigation({
40
40
  <button
41
41
  onClick={collapse}
42
42
  className={cn(
43
- "absolute top-[68px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-50",
43
+ "absolute top-[60px] -right-4 size-8 flex items-center justify-center rounded-full border border-gray-200 bg-white hover:bg-gray-100 cursor-pointer transition-all duration-300 z-50",
44
44
  isExpanded ? "opacity-100 scale-100" : "opacity-0 scale-0 pointer-events-none",
45
45
  )}
46
46
  >
@@ -1,5 +1,14 @@
1
1
  import { create } from "zustand";
2
2
 
3
+ const STORAGE_KEY = "desktop-sidebar-expanded";
4
+
5
+ function getInitialState(): boolean {
6
+ if (typeof window === "undefined") return true;
7
+ const stored = localStorage.getItem(STORAGE_KEY);
8
+ if (stored === null) return true;
9
+ return stored === "true";
10
+ }
11
+
3
12
  type DesktopSidebarStore = {
4
13
  isExpanded: boolean;
5
14
  toggle: () => void;
@@ -8,8 +17,18 @@ type DesktopSidebarStore = {
8
17
  };
9
18
 
10
19
  export const useDesktopSidebarStore = create<DesktopSidebarStore>((set) => ({
11
- isExpanded: true,
12
- toggle: () => set((state) => ({ isExpanded: !state.isExpanded })),
13
- expand: () => set({ isExpanded: true }),
14
- collapse: () => set({ isExpanded: false }),
20
+ isExpanded: getInitialState(),
21
+ toggle: () => set((state) => {
22
+ const next = !state.isExpanded;
23
+ localStorage.setItem(STORAGE_KEY, String(next));
24
+ return { isExpanded: next };
25
+ }),
26
+ expand: () => {
27
+ localStorage.setItem(STORAGE_KEY, "true");
28
+ return set({ isExpanded: true });
29
+ },
30
+ collapse: () => {
31
+ localStorage.setItem(STORAGE_KEY, "false");
32
+ return set({ isExpanded: false });
33
+ },
15
34
  }));
@@ -1,15 +1,34 @@
1
- import { create } from "zustand";
2
-
3
- type MdSidebarStore = {
4
- isExpanded: boolean;
5
- toggle: () => void;
6
- expand: () => void;
7
- collapse: () => void;
8
- };
9
-
10
- export const useMdSidebarStore = create<MdSidebarStore>((set) => ({
11
- isExpanded: true,
12
- toggle: () => set((state) => ({ isExpanded: !state.isExpanded })),
13
- expand: () => set({ isExpanded: true }),
14
- collapse: () => set({ isExpanded: false }),
15
- }));
1
+ import { create } from "zustand";
2
+
3
+ const STORAGE_KEY = "md-sidebar-expanded";
4
+
5
+ function getInitialState(): boolean {
6
+ if (typeof window === "undefined") return false;
7
+ const stored = localStorage.getItem(STORAGE_KEY);
8
+ if (stored === null) return false;
9
+ return stored === "true";
10
+ }
11
+
12
+ type MdSidebarStore = {
13
+ isExpanded: boolean;
14
+ toggle: () => void;
15
+ expand: () => void;
16
+ collapse: () => void;
17
+ };
18
+
19
+ export const useMdSidebarStore = create<MdSidebarStore>((set) => ({
20
+ isExpanded: getInitialState(),
21
+ toggle: () => set((state) => {
22
+ const next = !state.isExpanded;
23
+ localStorage.setItem(STORAGE_KEY, String(next));
24
+ return { isExpanded: next };
25
+ }),
26
+ expand: () => {
27
+ localStorage.setItem(STORAGE_KEY, "true");
28
+ return set({ isExpanded: true });
29
+ },
30
+ collapse: () => {
31
+ localStorage.setItem(STORAGE_KEY, "false");
32
+ return set({ isExpanded: false });
33
+ },
34
+ }));