@schemavaults/ui 0.42.2 → 0.44.0

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.
@@ -14,4 +14,10 @@ export interface DashboardLayoutProps extends PropsWithChildren {
14
14
  sizing?: DashboardLayoutSidebarSizing;
15
15
  onOpenSidebar?: () => void;
16
16
  onCloseSidebar?: () => void;
17
+ /**
18
+ * Optional `usePathname` hook (e.g. from `next/navigation`). When provided,
19
+ * the mobile sidebar will automatically close whenever the pathname
20
+ * changes. Pass the hook itself, not its return value.
21
+ */
22
+ usePathname?: () => string;
17
23
  }
@@ -1,11 +1,5 @@
1
1
  import type { ReactElement } from "react";
2
2
  import type { DashboardLayoutProps } from "./DashboardLayoutProps";
3
3
  export type { DashboardLayoutProps };
4
- /**
5
- *
6
- * @param param0 DashboardLayoutProps
7
- *
8
- * @returns A layout component wrapping the page content of 'children'
9
- */
10
- export declare function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, ...props }: DashboardLayoutProps): ReactElement;
4
+ export declare function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, usePathname, ...props }: DashboardLayoutProps): ReactElement;
11
5
  export default DashboardLayout;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import DashboardSidebar, { DashboardLayoutSidebarTrigger, DashboardSidebarContextProvider, useDashboardSidebarOpenState, useDashboardSidebarSizing, } from "./dashboard-sidebar";
3
+ import DashboardSidebar, { DashboardLayoutSidebarTrigger, DashboardSidebarContextProvider, useCloseDashboardSidebarOnRouteChange, useDashboardSidebarOpenState, useDashboardSidebarSizing, } from "./dashboard-sidebar";
4
4
  import { Separator } from "../../ui/separator";
5
5
  import DashboardLayoutMainContentContainer from "./dashboard-layout-main-content-container";
6
6
  import { cn } from "../../../lib/utils";
@@ -10,7 +10,15 @@ import { cn } from "../../../lib/utils";
10
10
  *
11
11
  * @returns A layout component wrapping the page content of 'children'
12
12
  */
13
- export function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, ...props }) {
13
+ // Sibling component that subscribes to `usePathname` and closes the mobile
14
+ // sidebar on navigation. Rendered conditionally only when consumers opt in
15
+ // by passing `usePathname` — keeping the hook call out of the parent avoids
16
+ // the rule-of-hooks issue of a conditionally-called hook.
17
+ function AutoCloseSidebarOnNavigation({ usePathname, }) {
18
+ useCloseDashboardSidebarOnRouteChange(usePathname);
19
+ return null;
20
+ }
21
+ export function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, usePathname, ...props }) {
14
22
  const size = useDashboardSidebarSizing();
15
23
  function HeaderBarPageIdentifierComponent() {
16
24
  if (typeof topBarTitle === "string") {
@@ -22,9 +30,9 @@ export function DashboardLayout({ children, wordmark, logo, Link, brandHref, top
22
30
  }
23
31
  }
24
32
  const TopBarButtonsComponent = props.topBarButtons;
25
- return (_jsx(DashboardSidebarContextProvider, { sidebarItems: props.sidebarItems, sizing: props.sizing, onOpenSidebar: props.onOpenSidebar, onCloseSidebar: props.onCloseSidebar, children: _jsxs("div", { id: "dashboard-layout-container", className: "w-full h-dvh min-h-dvh", children: [_jsx(DashboardSidebar, { wordmark: wordmark, Link: Link, brandHref: brandHref, logo: logo, sidebarFooterContent: props.sidebarFooterContent }), _jsxs(DashboardLayoutMainContentContainer, { children: [_jsx("header", { id: "dashboard-layout-main-content-header", className: cn("sticky top-0", "flex shrink-0 items-center gap-2", "transition-[width,height] ease-linear", "bg-background", "border-b border-border", size.sidebar_and_header_z_index_classname), style: {
26
- height: size.header_height,
27
- }, children: _jsxs("div", { className: "flex flex-row justify-between items-center gap-2 px-4 w-full", children: [_jsx(DashboardLayoutSidebarTrigger, {}), _jsx(Separator, { orientation: "vertical", className: "mr-2 data-[orientation=vertical]:h-4" }), _jsx(HeaderBarPageIdentifierComponent, {}), _jsx("div", { role: "none", className: "grow" }), typeof TopBarButtonsComponent === "function" && (_jsx(TopBarButtonsComponent, { useDashboardSidebarSizing: useDashboardSidebarSizing, useDashboardSidebarOpenState: useDashboardSidebarOpenState, Link: Link }))] }) }), children] })] }) }));
33
+ return (_jsxs(DashboardSidebarContextProvider, { sidebarItems: props.sidebarItems, sizing: props.sizing, onOpenSidebar: props.onOpenSidebar, onCloseSidebar: props.onCloseSidebar, children: [typeof usePathname === "function" && (_jsx(AutoCloseSidebarOnNavigation, { usePathname: usePathname })), _jsxs("div", { id: "dashboard-layout-container", className: "w-full h-dvh min-h-dvh", children: [_jsx(DashboardSidebar, { wordmark: wordmark, Link: Link, brandHref: brandHref, logo: logo, sidebarFooterContent: props.sidebarFooterContent }), _jsxs(DashboardLayoutMainContentContainer, { children: [_jsx("header", { id: "dashboard-layout-main-content-header", className: cn("sticky top-0", "flex shrink-0 items-center gap-2", "transition-[width,height] ease-linear", "bg-background", "border-b border-border", size.sidebar_and_header_z_index_classname), style: {
34
+ height: size.header_height,
35
+ }, children: _jsxs("div", { className: "flex flex-row justify-between items-center gap-2 px-4 w-full", children: [_jsx(DashboardLayoutSidebarTrigger, {}), _jsx(Separator, { orientation: "vertical", className: "mr-2 data-[orientation=vertical]:h-4" }), _jsx(HeaderBarPageIdentifierComponent, {}), _jsx("div", { role: "none", className: "grow" }), typeof TopBarButtonsComponent === "function" && (_jsx(TopBarButtonsComponent, { useDashboardSidebarSizing: useDashboardSidebarSizing, useDashboardSidebarOpenState: useDashboardSidebarOpenState, Link: Link }))] }) }), children] })] })] }));
28
36
  }
29
37
  export default DashboardLayout;
30
38
  //# sourceMappingURL=dashboard-layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-layout.js","sourceRoot":"","sources":["../../../../src/components/layout/dashboard-layout/dashboard-layout.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,gBAAgB,EAAE,EACvB,6BAA6B,EAC7B,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,mCAAmC,MAAM,2CAA2C,CAAC;AAE5F,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAIjC;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,WAAW,EACX,GAAG,KAAK,EACa;IACrB,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IAEzC,SAAS,gCAAgC;QACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,aAAI,SAAS,EAAC,mBAAmB,YAAE,WAAW,GAAM,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,2BAA2B,GAAG,WAAW,CAAC;YAChD,OAAO,CACL,KAAC,2BAA2B,IAC1B,yBAAyB,EAAE,yBAAyB,EACpD,4BAA4B,EAAE,4BAA4B,EAC1D,IAAI,EAAE,IAAI,GACV,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,GAEZ,KAAK,CAAC,aAAa,CAAC;IAEpC,OAAO,CACL,KAAC,+BAA+B,IAC9B,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,cAAc,EAAE,KAAK,CAAC,cAAc,YAEpC,eAAK,EAAE,EAAC,4BAA4B,EAAC,SAAS,EAAC,wBAAwB,aACrE,KAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,GAChD,EACF,MAAC,mCAAmC,eAClC,iBACE,EAAE,EAAC,sCAAsC,EACzC,SAAS,EAAE,EAAE,CACX,cAAc,EACd,kCAAkC,EAClC,uCAAuC,EACvC,eAAe,EACf,wBAAwB,EACxB,IAAI,CAAC,oCAAoC,CAC1C,EACD,KAAK,EAAE;gCACL,MAAM,EAAE,IAAI,CAAC,aAAa;6BAC3B,YAED,eAAK,SAAS,EAAC,8DAA8D,aAC3E,KAAC,6BAA6B,KAAG,EACjC,KAAC,SAAS,IACR,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,sCAAsC,GAChD,EACF,KAAC,gCAAgC,KAAG,EACpC,cAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAG,EACnC,OAAO,sBAAsB,KAAK,UAAU,IAAI,CAC/C,KAAC,sBAAsB,IACrB,yBAAyB,EAAE,yBAAyB,EACpD,4BAA4B,EAAE,4BAA4B,EAC1D,IAAI,EAAE,IAAI,GACV,CACH,IACG,GACC,EACR,QAAQ,IAC2B,IAClC,GAC0B,CACnC,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"dashboard-layout.js","sourceRoot":"","sources":["../../../../src/components/layout/dashboard-layout/dashboard-layout.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,gBAAgB,EAAE,EACvB,6BAA6B,EAC7B,+BAA+B,EAC/B,qCAAqC,EACrC,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,mCAAmC,MAAM,2CAA2C,CAAC;AAE5F,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAIjC;;;;;GAKG;AACH,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,0DAA0D;AAC1D,SAAS,4BAA4B,CAAC,EACpC,WAAW,GAGZ;IACC,qCAAqC,CAAC,WAAW,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,WAAW,EACX,WAAW,EACX,GAAG,KAAK,EACa;IACrB,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IAEzC,SAAS,gCAAgC;QACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,aAAI,SAAS,EAAC,mBAAmB,YAAE,WAAW,GAAM,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,2BAA2B,GAAG,WAAW,CAAC;YAChD,OAAO,CACL,KAAC,2BAA2B,IAC1B,yBAAyB,EAAE,yBAAyB,EACpD,4BAA4B,EAAE,4BAA4B,EAC1D,IAAI,EAAE,IAAI,GACV,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,GAEZ,KAAK,CAAC,aAAa,CAAC;IAEpC,OAAO,CACL,MAAC,+BAA+B,IAC9B,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,cAAc,EAAE,KAAK,CAAC,cAAc,aAEnC,OAAO,WAAW,KAAK,UAAU,IAAI,CACpC,KAAC,4BAA4B,IAAC,WAAW,EAAE,WAAW,GAAI,CAC3D,EACD,eAAK,EAAE,EAAC,4BAA4B,EAAC,SAAS,EAAC,wBAAwB,aACrE,KAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,GAChD,EACF,MAAC,mCAAmC,eAClC,iBACE,EAAE,EAAC,sCAAsC,EACzC,SAAS,EAAE,EAAE,CACX,cAAc,EACd,kCAAkC,EAClC,uCAAuC,EACvC,eAAe,EACf,wBAAwB,EACxB,IAAI,CAAC,oCAAoC,CAC1C,EACD,KAAK,EAAE;oCACL,MAAM,EAAE,IAAI,CAAC,aAAa;iCAC3B,YAED,eAAK,SAAS,EAAC,8DAA8D,aAC3E,KAAC,6BAA6B,KAAG,EACjC,KAAC,SAAS,IACR,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,sCAAsC,GAChD,EACF,KAAC,gCAAgC,KAAG,EACpC,cAAK,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAG,EACnC,OAAO,sBAAsB,KAAK,UAAU,IAAI,CAC/C,KAAC,sBAAsB,IACrB,yBAAyB,EAAE,yBAAyB,EACpD,4BAA4B,EAAE,4BAA4B,EAC1D,IAAI,EAAE,IAAI,GACV,CACH,IACG,GACC,EACR,QAAQ,IAC2B,IAClC,IAC0B,CACnC,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -5,41 +5,47 @@ import toggleDashboardLayoutCollapsedTransitionTime, { toggleDashboardLayoutColl
5
5
  import useDashboardSidebarOpenState from "./useDashboardSidebarOpenState";
6
6
  import { cn } from "../../../../lib/utils";
7
7
  import { useDashboardSidebarSizing } from "./useDashboardSidebarSizing";
8
+ // Declared at module scope so its component identity is stable across
9
+ // renders of DashboardSidebarHeader. Previously this was an inner function
10
+ // declaration, which produced a new component type on every parent render
11
+ // and caused React to unmount/remount the wordmark — re-triggering the
12
+ // AnimatePresence enter animation on every navigation when used inside a
13
+ // Next.js layout.tsx.
14
+ function AnimatedBrandWordmark({ wordmark, Link, brandHref, }) {
15
+ return (_jsx(m.div, { className: "will-change-transform", variants: {
16
+ exit: {
17
+ opacity: 0,
18
+ scale: 0,
19
+ transitionEnd: {
20
+ display: "none",
21
+ },
22
+ width: 0,
23
+ transition: {
24
+ duration: toggleDashboardLayoutCollapsedTransitionTime,
25
+ ease: toggleDashboardLayoutCollapsedTransitionEasing,
26
+ delay: 0,
27
+ },
28
+ },
29
+ enter: {
30
+ opacity: 1,
31
+ scale: 1,
32
+ display: "block",
33
+ width: "auto",
34
+ transition: {
35
+ duration: toggleDashboardLayoutCollapsedTransitionTime,
36
+ ease: toggleDashboardLayoutCollapsedTransitionEasing,
37
+ delay: toggleDashboardLayoutCollapsedTransitionTime / 1.5,
38
+ },
39
+ },
40
+ }, initial: "exit", animate: "enter", exit: "exit", layout: true, children: _jsx(Link, { href: brandHref, children: wordmark }) }));
41
+ }
8
42
  export function DashboardSidebarHeader({ wordmark, logo, Link, brandHref, }) {
9
43
  const size = useDashboardSidebarSizing();
10
44
  const { open, mobile } = useDashboardSidebarOpenState();
11
45
  const showWordmark = mobile || open;
12
- function AnimatedBrandWordmark() {
13
- return (_jsx(m.div, { className: "will-change-transform", variants: {
14
- exit: {
15
- opacity: 0,
16
- scale: 0,
17
- transitionEnd: {
18
- display: "none",
19
- },
20
- width: 0,
21
- transition: {
22
- duration: toggleDashboardLayoutCollapsedTransitionTime,
23
- ease: toggleDashboardLayoutCollapsedTransitionEasing,
24
- delay: 0,
25
- },
26
- },
27
- enter: {
28
- opacity: 1,
29
- scale: 1,
30
- display: "block",
31
- width: "auto",
32
- transition: {
33
- duration: toggleDashboardLayoutCollapsedTransitionTime,
34
- ease: toggleDashboardLayoutCollapsedTransitionEasing,
35
- delay: toggleDashboardLayoutCollapsedTransitionTime / 1.5,
36
- },
37
- },
38
- }, initial: "exit", animate: "enter", exit: "exit", layout: true, children: _jsx(Link, { href: brandHref, children: wordmark }) }));
39
- }
40
46
  return (_jsxs(m.header, { layout: true, style: {
41
47
  height: size.header_height,
42
- }, className: cn("w-full", "flex flex-row flex-nowrap", "justify-start items-center bg-background", "overflow-hidden", "flex-shrink-0", "border-b"), children: [_jsx(Link, { href: brandHref, className: cn(size.desktop_collapsed_width_classname, size.header_height_classname, "flex items-center justify-center", "flex-shrink-0"), children: logo }), _jsx(AnimatePresence, { initial: !mobile, children: showWordmark && (_jsx(AnimatedBrandWordmark, {}, "animated-brand-wordmark")) })] }));
48
+ }, className: cn("w-full", "flex flex-row flex-nowrap", "justify-start items-center bg-background", "overflow-hidden", "flex-shrink-0", "border-b"), children: [_jsx(Link, { href: brandHref, className: cn(size.desktop_collapsed_width_classname, size.header_height_classname, "flex items-center justify-center", "flex-shrink-0"), children: logo }), _jsx(AnimatePresence, { initial: !mobile, children: showWordmark && (_jsx(AnimatedBrandWordmark, { wordmark: wordmark, Link: Link, brandHref: brandHref }, "animated-brand-wordmark")) })] }));
43
49
  }
44
50
  export default DashboardSidebarHeader;
45
51
  //# sourceMappingURL=dashboard-sidebar-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-sidebar-header.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,4CAA4C,EAAE,EACnD,8CAA8C,GAC/C,MAAM,sDAAsD,CAAC;AAC9D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAUxE,MAAM,UAAU,sBAAsB,CAAC,EACrC,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,SAAS,GACyB;IAClC,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,4BAA4B,EAAE,CAAC;IACxD,MAAM,YAAY,GAAY,MAAM,IAAI,IAAI,CAAC;IAG7C,SAAS,qBAAqB;QAC5B,OAAO,CACL,KAAC,CAAC,CAAC,GAAG,IACJ,SAAS,EAAC,uBAAuB,EACjC,QAAQ,EAAE;gBACR,IAAI,EAAE;oBACJ,OAAO,EAAE,CAAC;oBACV,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE;wBACb,OAAO,EAAE,MAAM;qBAChB;oBACD,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE;wBACV,QAAQ,EAAE,4CAA4C;wBACtD,IAAI,EAAE,8CAA8C;wBACpD,KAAK,EAAE,CAAC;qBACT;iBACF;gBACD,KAAK,EAAE;oBACL,OAAO,EAAE,CAAC;oBACV,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,OAAO;oBAChB,KAAK,EAAE,MAAM;oBACb,UAAU,EAAE;wBACV,QAAQ,EAAE,4CAA4C;wBACtD,IAAI,EAAE,8CAA8C;wBACpD,KAAK,EAAE,4CAA4C,GAAG,GAAG;qBAC1D;iBACF;aACF,EACD,OAAO,EAAC,MAAM,EACd,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,MAAM,kBAEN,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,YAAG,QAAQ,GAAQ,GAClC,CACT,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,CAAC,CAAC,MAAM,IACP,MAAM,QACN,KAAK,EAAE;YACL,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,EACD,SAAS,EAAE,EAAE,CACX,QAAQ,EACR,2BAA2B,EAC3B,0CAA0C,EAC1C,iBAAiB,EACjB,eAAe,EACf,UAAU,CACX,aAED,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAClC,IAAI,CAAC,iCAAiC,EACtC,IAAI,CAAC,uBAAuB,EAC5B,kCAAkC,EAClC,eAAe,CAChB,YAAG,IAAI,GAAQ,EAEhB,KAAC,eAAe,IAAC,OAAO,EAAE,CAAC,MAAM,YAC9B,YAAY,IAAI,CACf,KAAC,qBAAqB,MAAK,yBAAyB,CAAG,CACxD,GACe,IACT,CACZ,CAAC;AACJ,CAAC;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"dashboard-sidebar-header.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,4CAA4C,EAAE,EACnD,8CAA8C,GAC/C,MAAM,sDAAsD,CAAC;AAC9D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAgBxE,sEAAsE;AACtE,2EAA2E;AAC3E,0EAA0E;AAC1E,uEAAuE;AACvE,yEAAyE;AACzE,sBAAsB;AACtB,SAAS,qBAAqB,CAAC,EAC7B,QAAQ,EACR,IAAI,EACJ,SAAS,GACkB;IAC3B,OAAO,CACL,KAAC,CAAC,CAAC,GAAG,IACJ,SAAS,EAAC,uBAAuB,EACjC,QAAQ,EAAE;YACR,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,aAAa,EAAE;oBACb,OAAO,EAAE,MAAM;iBAChB;gBACD,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE;oBACV,QAAQ,EAAE,4CAA4C;oBACtD,IAAI,EAAE,8CAA8C;oBACpD,KAAK,EAAE,CAAC;iBACT;aACF;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE;oBACV,QAAQ,EAAE,4CAA4C;oBACtD,IAAI,EAAE,8CAA8C;oBACpD,KAAK,EAAE,4CAA4C,GAAG,GAAG;iBAC1D;aACF;SACF,EACD,OAAO,EAAC,MAAM,EACd,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,MAAM,kBAEN,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,YAAG,QAAQ,GAAQ,GAClC,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,SAAS,GACyB;IAClC,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,4BAA4B,EAAE,CAAC;IACxD,MAAM,YAAY,GAAY,MAAM,IAAI,IAAI,CAAC;IAE7C,OAAO,CACL,MAAC,CAAC,CAAC,MAAM,IACP,MAAM,QACN,KAAK,EAAE;YACL,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,EACD,SAAS,EAAE,EAAE,CACX,QAAQ,EACR,2BAA2B,EAC3B,0CAA0C,EAC1C,iBAAiB,EACjB,eAAe,EACf,UAAU,CACX,aAED,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAClC,IAAI,CAAC,iCAAiC,EACtC,IAAI,CAAC,uBAAuB,EAC5B,kCAAkC,EAClC,eAAe,CAChB,YAAG,IAAI,GAAQ,EAEhB,KAAC,eAAe,IAAC,OAAO,EAAE,CAAC,MAAM,YAC9B,YAAY,IAAI,CACf,KAAC,qBAAqB,IAEpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,IAHhB,yBAAyB,CAI7B,CACH,GACe,IACT,CACZ,CAAC;AACJ,CAAC;AAED,eAAe,sBAAsB,CAAC"}
@@ -3,20 +3,26 @@ import { useEffect } from "react";
3
3
  import useDashboardSidebarOpenState from "./useDashboardSidebarOpenState";
4
4
  import useDashboardSidebarOpenStateDispatch from "./useDashboardSidebarOpenStateDispatch";
5
5
  import useDebug from "../../../hooks/use-debug";
6
+ // Auto-closes the sidebar on route changes. Only acts on mobile — on desktop
7
+ // the sidebar's expanded/collapsed state is the user's preference and should
8
+ // persist across navigation. Closing the desktop sidebar on every route
9
+ // change would also re-animate the wordmark (via AnimatePresence) every
10
+ // navigation, which is undesirable.
6
11
  export function useCloseDashboardSidebarOnRouteChange(usePathname) {
7
12
  const debug = useDebug();
8
13
  const pathname = usePathname();
9
14
  const state = useDashboardSidebarOpenState();
10
15
  const open = state.open;
16
+ const mobile = state.mobile ?? false;
11
17
  const setOpen = useDashboardSidebarOpenStateDispatch();
12
18
  useEffect(() => {
13
- if (open) {
19
+ if (mobile && open) {
14
20
  if (debug) {
15
21
  console.log("[useCloseDashboardSidebarOnRouteChange] Closing sidebar...");
16
22
  }
17
23
  setOpen(false);
18
24
  }
19
- }, [pathname, open, setOpen, debug]);
25
+ }, [pathname, open, mobile, setOpen, debug]);
20
26
  }
21
27
  export default useCloseDashboardSidebarOnRouteChange;
22
28
  //# sourceMappingURL=useCloseDashboardSidebarOnRouteChange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCloseDashboardSidebarOnRouteChange.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/useCloseDashboardSidebarOnRouteChange.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,MAAM,UAAU,qCAAqC,CACnD,WAAyB;IAEzB,MAAM,KAAK,GAAY,QAAQ,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAW,WAAW,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,4BAA4B,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAY,KAAK,CAAC,IAAI,CAAC;IACjC,MAAM,OAAO,GAAG,oCAAoC,EAAE,CAAC;IAEvD,SAAS,CAAC,GAAS,EAAE;QACnB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CACT,4DAA4D,CAC7D,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,eAAe,qCAAqC,CAAC"}
1
+ {"version":3,"file":"useCloseDashboardSidebarOnRouteChange.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/useCloseDashboardSidebarOnRouteChange.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,6EAA6E;AAC7E,6EAA6E;AAC7E,wEAAwE;AACxE,wEAAwE;AACxE,oCAAoC;AACpC,MAAM,UAAU,qCAAqC,CACnD,WAAyB;IAEzB,MAAM,KAAK,GAAY,QAAQ,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAW,WAAW,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,4BAA4B,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAY,KAAK,CAAC,IAAI,CAAC;IACjC,MAAM,MAAM,GAAY,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,oCAAoC,EAAE,CAAC;IAEvD,SAAS,CAAC,GAAS,EAAE;QACnB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CACT,4DAA4D,CAC7D,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,eAAe,qCAAqC,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import type { HTMLAttributes, ReactElement, ReactNode } from "react";
3
+ export declare const gaugeSizeIds: readonly ["sm", "default", "lg", "xl"];
4
+ export type GaugeSizeId = (typeof gaugeSizeIds)[number];
5
+ export declare const gaugeColorIds: readonly ["default", "positive", "warning", "destructive"];
6
+ export type GaugeColorId = (typeof gaugeColorIds)[number];
7
+ export declare const gaugeVariants: (props?: ({
8
+ size?: "sm" | "default" | "lg" | "xl" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ export declare const gaugeIndicatorVariants: (props?: ({
11
+ color?: "default" | "destructive" | "warning" | "positive" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ export declare const gaugeValueLabelVariants: (props?: ({
14
+ size?: "sm" | "default" | "lg" | "xl" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ /**
17
+ * A single color zone painted along the gauge arc.
18
+ *
19
+ * Zones are rendered in order, each filling the portion of the arc between
20
+ * `from` and `to` (both expressed in the gauge's value space, not as
21
+ * percentages — they are normalized against the gauge's `min`/`max`).
22
+ */
23
+ export interface GaugeZone {
24
+ /** Start of the zone, in the gauge's value space. */
25
+ from: number;
26
+ /** End of the zone, in the gauge's value space. */
27
+ to: number;
28
+ /** One of the standard gauge colors. */
29
+ color: GaugeColorId;
30
+ }
31
+ export interface GaugeProps extends Omit<HTMLAttributes<HTMLDivElement>, "role" | "color">, VariantProps<typeof gaugeVariants>, VariantProps<typeof gaugeIndicatorVariants> {
32
+ /** Current value (clamped to [min, max]). */
33
+ value: number;
34
+ /** Accessible label describing what the gauge represents. */
35
+ label: string;
36
+ /** Minimum value (defaults to 0). */
37
+ min?: number;
38
+ /** Maximum value (defaults to 100). */
39
+ max?: number;
40
+ /** Override the SVG stroke width. Defaults are size-aware. */
41
+ strokeWidth?: number;
42
+ /** When true (default), shows the numeric value below the arc. */
43
+ showValue?: boolean;
44
+ /** When true, render min/max tick labels below the arc endpoints. */
45
+ showRange?: boolean;
46
+ /**
47
+ * Optional color zones rendered behind the indicator. Use to highlight
48
+ * acceptable / warning / danger ranges (e.g. CPU thresholds).
49
+ */
50
+ zones?: ReadonlyArray<GaugeZone>;
51
+ /**
52
+ * When true and `zones` is provided, the indicator + value label color is
53
+ * automatically chosen from whichever zone contains the current value,
54
+ * overriding the `color` prop.
55
+ */
56
+ autoColorFromZones?: boolean;
57
+ /** When true (default), render a needle indicator on top of the arc. */
58
+ showNeedle?: boolean;
59
+ /** When provided, displayed beneath the value (e.g. "ms", "%", "req/s"). */
60
+ unit?: string;
61
+ /** Custom content rendered beneath the arc, replacing the default value display. */
62
+ children?: ReactNode;
63
+ /** Additional classes for the indicator (animated) arc. */
64
+ indicatorClassName?: string;
65
+ /** Additional classes for the track (background) arc. */
66
+ trackClassName?: string;
67
+ /** Additional classes for the value label. */
68
+ valueLabelClassName?: string;
69
+ }
70
+ export declare function Gauge({ value, label, min, max, size, color, strokeWidth, showValue, showRange, showNeedle, zones, autoColorFromZones, unit, children, className, indicatorClassName, trackClassName, valueLabelClassName, ...props }: GaugeProps): ReactElement;
71
+ export declare namespace Gauge {
72
+ var displayName: string;
73
+ }
@@ -0,0 +1,134 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { m } from "../../../framer-motion";
5
+ import { cn } from "../../../lib/utils";
6
+ export const gaugeSizeIds = ["sm", "default", "lg", "xl"];
7
+ export const gaugeColorIds = [
8
+ "default",
9
+ "positive",
10
+ "warning",
11
+ "destructive",
12
+ ];
13
+ export const gaugeVariants = cva("relative inline-flex shrink-0 flex-col items-center justify-end", {
14
+ variants: {
15
+ size: {
16
+ sm: "w-32",
17
+ default: "w-48",
18
+ lg: "w-64",
19
+ xl: "w-80",
20
+ },
21
+ },
22
+ defaultVariants: {
23
+ size: "default",
24
+ },
25
+ });
26
+ export const gaugeIndicatorVariants = cva("transition-colors duration-300", {
27
+ variants: {
28
+ color: {
29
+ default: "stroke-schemavaults-brand-blue",
30
+ positive: "stroke-emerald-500 dark:stroke-emerald-400",
31
+ warning: "stroke-warning",
32
+ destructive: "stroke-destructive",
33
+ },
34
+ },
35
+ defaultVariants: {
36
+ color: "default",
37
+ },
38
+ });
39
+ const gaugeNeedleVariants = cva("transition-colors duration-300", {
40
+ variants: {
41
+ color: {
42
+ default: "fill-foreground stroke-foreground",
43
+ positive: "fill-emerald-500 stroke-emerald-500 dark:fill-emerald-400 dark:stroke-emerald-400",
44
+ warning: "fill-warning stroke-warning",
45
+ destructive: "fill-destructive stroke-destructive",
46
+ },
47
+ },
48
+ defaultVariants: {
49
+ color: "default",
50
+ },
51
+ });
52
+ export const gaugeValueLabelVariants = cva("font-semibold tabular-nums leading-none text-foreground", {
53
+ variants: {
54
+ size: {
55
+ sm: "text-base",
56
+ default: "text-2xl",
57
+ lg: "text-3xl",
58
+ xl: "text-4xl",
59
+ },
60
+ },
61
+ defaultVariants: {
62
+ size: "default",
63
+ },
64
+ });
65
+ const SIZE_TO_STROKE_WIDTH = {
66
+ sm: 12,
67
+ default: 14,
68
+ lg: 16,
69
+ xl: 18,
70
+ };
71
+ const VIEWBOX_WIDTH = 200;
72
+ const ARC_RADIUS = 80;
73
+ const ARC_CENTER_X = 100;
74
+ const ARC_CENTER_Y = 100;
75
+ const ARC_START_X = ARC_CENTER_X - ARC_RADIUS;
76
+ const ARC_END_X = ARC_CENTER_X + ARC_RADIUS;
77
+ const ARC_PATH = `M ${ARC_START_X} ${ARC_CENTER_Y} A ${ARC_RADIUS} ${ARC_RADIUS} 0 0 1 ${ARC_END_X} ${ARC_CENTER_Y}`;
78
+ const ZONE_STROKE_CLASSES = {
79
+ default: "stroke-schemavaults-brand-blue/60",
80
+ positive: "stroke-emerald-500/60 dark:stroke-emerald-400/60",
81
+ warning: "stroke-warning/70",
82
+ destructive: "stroke-destructive/60",
83
+ };
84
+ function clampValue(value, min, max) {
85
+ return Math.min(max, Math.max(min, value));
86
+ }
87
+ function valueToPercentage(value, min, max) {
88
+ if (max === min) {
89
+ return 0;
90
+ }
91
+ return ((value - min) / (max - min)) * 100;
92
+ }
93
+ function valueToNeedleAngle(percentage) {
94
+ // Map 0% → -90deg (pointing left) and 100% → +90deg (pointing right),
95
+ // so the needle rotates through the top of the dial.
96
+ return -90 + (percentage / 100) * 180;
97
+ }
98
+ function resolveAutoColor(value, zones, fallback) {
99
+ if (!zones || zones.length === 0) {
100
+ return fallback;
101
+ }
102
+ for (const zone of zones) {
103
+ const lo = Math.min(zone.from, zone.to);
104
+ const hi = Math.max(zone.from, zone.to);
105
+ if (value >= lo && value <= hi) {
106
+ return zone.color;
107
+ }
108
+ }
109
+ return fallback;
110
+ }
111
+ export function Gauge({ value, label, min = 0, max = 100, size, color, strokeWidth, showValue = true, showRange = false, showNeedle = true, zones, autoColorFromZones = false, unit, children, className, indicatorClassName, trackClassName, valueLabelClassName, ...props }) {
112
+ const resolvedSize = size ?? "default";
113
+ const resolvedStrokeWidth = strokeWidth ?? SIZE_TO_STROKE_WIDTH[resolvedSize];
114
+ const clamped = clampValue(value, min, max);
115
+ const percentage = valueToPercentage(clamped, min, max);
116
+ const fallbackColor = color ?? "default";
117
+ const indicatorColor = autoColorFromZones
118
+ ? resolveAutoColor(clamped, zones, fallbackColor)
119
+ : fallbackColor;
120
+ const needleAngle = valueToNeedleAngle(percentage);
121
+ return (_jsxs("div", { role: "meter", "aria-valuenow": clamped, "aria-valuemin": min, "aria-valuemax": max, "aria-label": label, className: cn(gaugeVariants({ size }), className), ...props, children: [_jsxs("svg", { viewBox: `0 0 ${VIEWBOX_WIDTH} ${ARC_CENTER_Y + resolvedStrokeWidth + 4}`, className: "w-full", "aria-hidden": "true", children: [_jsx("path", { d: ARC_PATH, fill: "none", strokeWidth: resolvedStrokeWidth, strokeLinecap: "round", className: cn("stroke-secondary", trackClassName), pathLength: 1 }), zones?.map((zone, index) => {
122
+ const zoneLo = clampValue(Math.min(zone.from, zone.to), min, max);
123
+ const zoneHi = clampValue(Math.max(zone.from, zone.to), min, max);
124
+ const startPct = valueToPercentage(zoneLo, min, max) / 100;
125
+ const endPct = valueToPercentage(zoneHi, min, max) / 100;
126
+ const span = Math.max(0, endPct - startPct);
127
+ if (span === 0) {
128
+ return null;
129
+ }
130
+ return (_jsx("path", { d: ARC_PATH, fill: "none", strokeWidth: resolvedStrokeWidth, strokeLinecap: "butt", pathLength: 1, strokeDasharray: `${span} ${1 - span}`, strokeDashoffset: -startPct, className: ZONE_STROKE_CLASSES[zone.color] }, `zone-${index.toString()}`));
131
+ }), _jsx(m.path, { d: ARC_PATH, fill: "none", strokeWidth: resolvedStrokeWidth, strokeLinecap: "round", pathLength: 1, strokeDasharray: 1, initial: { strokeDashoffset: 1 }, animate: { strokeDashoffset: 1 - percentage / 100 }, transition: { duration: 0.5, ease: "easeOut" }, className: cn(gaugeIndicatorVariants({ color: indicatorColor }), indicatorClassName) }), showNeedle && (_jsxs(m.g, { initial: { rotate: valueToNeedleAngle(0) }, animate: { rotate: needleAngle }, transition: { duration: 0.5, ease: "easeOut" }, style: { transformOrigin: `${ARC_CENTER_X}px ${ARC_CENTER_Y}px` }, children: [_jsx("line", { x1: ARC_CENTER_X, y1: ARC_CENTER_Y, x2: ARC_CENTER_X, y2: ARC_CENTER_Y - (ARC_RADIUS - resolvedStrokeWidth / 2 - 2), strokeWidth: 3, strokeLinecap: "round", className: gaugeNeedleVariants({ color: indicatorColor }) }), _jsx("circle", { cx: ARC_CENTER_X, cy: ARC_CENTER_Y, r: 6, className: cn(gaugeNeedleVariants({ color: indicatorColor }), "stroke-background"), strokeWidth: 2 })] }))] }), showRange && (_jsxs("div", { className: "flex w-[88%] justify-between text-xs tabular-nums text-muted-foreground -mt-1", children: [_jsx("span", { children: min }), _jsx("span", { children: max })] })), (children || showValue) && (_jsx("div", { className: cn("mt-1 flex flex-col items-center gap-0.5", valueLabelClassName), children: children ?? (_jsxs(_Fragment, { children: [_jsx("span", { className: gaugeValueLabelVariants({ size: resolvedSize }), children: Math.round(clamped) }), unit && (_jsx("span", { className: "text-xs uppercase tracking-wide text-muted-foreground", children: unit }))] })) }))] }));
132
+ }
133
+ Gauge.displayName = "Gauge";
134
+ //# sourceMappingURL=gauge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gauge.js","sourceRoot":"","sources":["../../../../src/components/ui/gauge/gauge.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Gauge, gaugeVariants, gaugeIndicatorVariants, gaugeValueLabelVariants, gaugeSizeIds, gaugeColorIds, } from "./gauge";
2
+ export type * from "./gauge";
3
+ export { Gauge as default } from "./gauge";
@@ -0,0 +1,3 @@
1
+ export { Gauge, gaugeVariants, gaugeIndicatorVariants, gaugeValueLabelVariants, gaugeSizeIds, gaugeColorIds, } from "./gauge";
2
+ export { Gauge as default } from "./gauge";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/gauge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC"}
@@ -104,6 +104,8 @@ export * from "./progress-bar";
104
104
  export type * from "./progress-bar";
105
105
  export * from "./circular-progress";
106
106
  export type * from "./circular-progress";
107
+ export * from "./gauge";
108
+ export type * from "./gauge";
107
109
  export * from "./breadcrumb";
108
110
  export type * from "./breadcrumb";
109
111
  export * from "./pagination";
@@ -51,6 +51,7 @@ export * from "./slider";
51
51
  export * from "./switch";
52
52
  export * from "./progress-bar";
53
53
  export * from "./circular-progress";
54
+ export * from "./gauge";
54
55
  export * from "./breadcrumb";
55
56
  export * from "./pagination";
56
57
  export * from "./kbd";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,kCAAkC,CAAC;AAGjD,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,cAAc,CAAC;AAG7B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,kCAAkC,CAAC;AAGjD,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,cAAc,CAAC;AAG7B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,aAAa,CAAC;AAG5B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/ui",
3
- "version": "0.42.2",
3
+ "version": "0.44.0",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "description": "React.js UI components for SchemaVaults frontend applications",