@schemavaults/ui 0.68.1 → 0.70.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.
- package/dist/components/layout/dashboard-layout/DashboardLayoutProps.d.ts +9 -0
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.d.ts +8 -1
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.js +7 -2
- package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-layout.d.ts +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-layout.js +6 -2
- package/dist/components/layout/dashboard-layout/dashboard-layout.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.js +2 -2
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.js.map +1 -1
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.js +1 -0
- package/dist/components/ui/index.js.map +1 -1
- package/dist/components/ui/time-picker/index.d.ts +3 -0
- package/dist/components/ui/time-picker/index.js +3 -0
- package/dist/components/ui/time-picker/index.js.map +1 -0
- package/dist/components/ui/time-picker/time-picker.d.ts +62 -0
- package/dist/components/ui/time-picker/time-picker.js +164 -0
- package/dist/components/ui/time-picker/time-picker.js.map +1 -0
- package/package.json +1 -1
|
@@ -20,4 +20,13 @@ export interface DashboardLayoutProps extends PropsWithChildren {
|
|
|
20
20
|
* changes. Pass the hook itself, not its return value.
|
|
21
21
|
*/
|
|
22
22
|
usePathname?: () => string;
|
|
23
|
+
/**
|
|
24
|
+
* When `true`, the dashboard "chrome" (the left sidebar and the top header
|
|
25
|
+
* bar) is hidden from printed output via `@media print`, so the system print
|
|
26
|
+
* dialog renders only the main page content. The on-screen layout is
|
|
27
|
+
* unaffected. The main content area also expands to the full page width when
|
|
28
|
+
* printing so it is not offset by the now-hidden sidebar. Defaults to
|
|
29
|
+
* `false`, preserving the previous print behaviour.
|
|
30
|
+
*/
|
|
31
|
+
printHidden?: boolean;
|
|
23
32
|
}
|
package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { PropsWithChildren, ReactElement } from "react";
|
|
2
2
|
export interface DashboardLayoutMainContentContainerProps extends PropsWithChildren {
|
|
3
|
+
/**
|
|
4
|
+
* When `true`, the content area drops its sidebar-aware absolute positioning
|
|
5
|
+
* under `@media print` and fills the full page width. This pairs with the
|
|
6
|
+
* sidebar/header being hidden for print so the printed content is not offset
|
|
7
|
+
* by, or clipped to, the now-hidden chrome.
|
|
8
|
+
*/
|
|
9
|
+
printHidden?: boolean;
|
|
3
10
|
}
|
|
4
|
-
export declare function DashboardLayoutMainContentContainer({ children, }: DashboardLayoutMainContentContainerProps): ReactElement;
|
|
11
|
+
export declare function DashboardLayoutMainContentContainer({ children, printHidden, }: DashboardLayoutMainContentContainerProps): ReactElement;
|
|
5
12
|
export default DashboardLayoutMainContentContainer;
|
|
@@ -2,14 +2,19 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useDashboardSidebarSizing, useDashboardSidebarOpenState, } from "./dashboard-sidebar";
|
|
4
4
|
import { cn } from "../../../lib/utils";
|
|
5
|
-
export function DashboardLayoutMainContentContainer({ children, }) {
|
|
5
|
+
export function DashboardLayoutMainContentContainer({ children, printHidden = false, }) {
|
|
6
6
|
const openState = useDashboardSidebarOpenState();
|
|
7
7
|
const size = useDashboardSidebarSizing();
|
|
8
8
|
return (_jsx("div", { id: "dashboard-layout-main-content-container", className: cn("absolute", "h-full grow", "flex flex-col flex-nowrap justify-start items-stretch", "overflow-x-hidden overflow-y-scroll", "overscroll-none", "no-scrollbar", "max-md:w-full", "transition-[width,left] ease-linear will-change-[width]", openState.open
|
|
9
9
|
? size.content_container_desktop_sidebar_open_width_classname
|
|
10
10
|
: size.content_container_desktop_sidebar_closed_width_classname, "max-md:left-0", openState.open
|
|
11
11
|
? size.content_container_desktop_sidebar_open_left_classname
|
|
12
|
-
: size.content_container_desktop_sidebar_closed_left_classname
|
|
12
|
+
: size.content_container_desktop_sidebar_closed_left_classname,
|
|
13
|
+
// For print, expand to the full page (the sidebar/header are hidden)
|
|
14
|
+
// and allow content to flow across pages instead of scrolling within a
|
|
15
|
+
// viewport-height box.
|
|
16
|
+
printHidden &&
|
|
17
|
+
"print:static print:left-0 print:h-auto print:w-full print:overflow-visible"), children: children }));
|
|
13
18
|
}
|
|
14
19
|
export default DashboardLayoutMainContentContainer;
|
|
15
20
|
//# sourceMappingURL=dashboard-layout-main-content-container.js.map
|
package/dist/components/layout/dashboard-layout/dashboard-layout-main-content-container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-layout-main-content-container.js","sourceRoot":"","sources":["../../../../src/components/layout/dashboard-layout/dashboard-layout-main-content-container.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard-layout-main-content-container.js","sourceRoot":"","sources":["../../../../src/components/layout/dashboard-layout/dashboard-layout-main-content-container.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAajC,MAAM,UAAU,mCAAmC,CAAC,EAClD,QAAQ,EACR,WAAW,GAAG,KAAK,GACsB;IACzC,MAAM,SAAS,GAAG,4BAA4B,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IAEzC,OAAO,CACL,cACE,EAAE,EAAC,yCAAyC,EAC5C,SAAS,EAAE,EAAE,CACX,UAAU,EACV,aAAa,EACb,uDAAuD,EACvD,qCAAqC,EACrC,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,yDAAyD,EACzD,SAAS,CAAC,IAAI;YACZ,CAAC,CAAC,IAAI,CAAC,sDAAsD;YAC7D,CAAC,CAAC,IAAI,CAAC,wDAAwD,EACjE,eAAe,EACf,SAAS,CAAC,IAAI;YACZ,CAAC,CAAC,IAAI,CAAC,qDAAqD;YAC5D,CAAC,CAAC,IAAI,CAAC,uDAAuD;QAChE,qEAAqE;QACrE,uEAAuE;QACvE,uBAAuB;QACvB,WAAW;YACT,4EAA4E,CAC/E,YAEA,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,eAAe,mCAAmC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import type { DashboardLayoutProps } from "./DashboardLayoutProps";
|
|
3
3
|
export type { DashboardLayoutProps };
|
|
4
|
-
export declare function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, usePathname, ...props }: DashboardLayoutProps): ReactElement;
|
|
4
|
+
export declare function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, usePathname, printHidden, ...props }: DashboardLayoutProps): ReactElement;
|
|
5
5
|
export default DashboardLayout;
|
|
@@ -18,7 +18,7 @@ function AutoCloseSidebarOnNavigation({ usePathname, }) {
|
|
|
18
18
|
useCloseDashboardSidebarOnRouteChange(usePathname);
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
|
-
export function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, usePathname, ...props }) {
|
|
21
|
+
export function DashboardLayout({ children, wordmark, logo, Link, brandHref, topBarTitle, usePathname, printHidden = false, ...props }) {
|
|
22
22
|
const size = useDashboardSidebarSizing();
|
|
23
23
|
function HeaderBarPageIdentifierComponent() {
|
|
24
24
|
if (typeof topBarTitle === "string") {
|
|
@@ -30,7 +30,11 @@ export function DashboardLayout({ children, wordmark, logo, Link, brandHref, top
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
const TopBarButtonsComponent = props.topBarButtons;
|
|
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",
|
|
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: cn("w-full h-dvh min-h-dvh",
|
|
34
|
+
// When hiding chrome for print, let the container grow to fit all
|
|
35
|
+
// page content across printed pages instead of clamping to the
|
|
36
|
+
// on-screen viewport height.
|
|
37
|
+
printHidden && "print:h-auto print:min-h-0"), children: [_jsx(DashboardSidebar, { wordmark: wordmark, Link: Link, brandHref: brandHref, logo: logo, sidebarFooterContent: props.sidebarFooterContent, className: cn(printHidden && "print:hidden") }), _jsxs(DashboardLayoutMainContentContainer, { printHidden: printHidden, 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, printHidden && "print:hidden"), style: {
|
|
34
38
|
height: size.header_height,
|
|
35
39
|
}, 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] })] })] }));
|
|
36
40
|
}
|
|
@@ -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,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,
|
|
1
|
+
{"version":3,"file":"dashboard-layout.js","sourceRoot":"","sources":["../../../../src/components/layout/dashboard-layout/dashboard-layout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,12 @@ export function DashboardSidebar(props) {
|
|
|
15
15
|
if (openState.mobile) {
|
|
16
16
|
return (_jsx(Sheet, { open: openState.open, onOpenChange: (newOpenState) => {
|
|
17
17
|
setOpen(newOpenState);
|
|
18
|
-
}, children: _jsxs(SheetContent, { side: "left", className: cn(size.mobile_expanded_width_classname), style: {
|
|
18
|
+
}, children: _jsxs(SheetContent, { side: "left", className: cn(size.mobile_expanded_width_classname, props.className), style: {
|
|
19
19
|
zIndex: 1000,
|
|
20
20
|
}, children: [_jsx(VisuallyHidden, { children: _jsxs(SheetHeader, { children: [_jsx(SheetTitle, { children: "Sidebar Mobile Navigation Menu" }), _jsx(SheetDescription, { children: "This sidebar contains links for navigating to other pages within this application." })] }) }), _jsx(DashboardLayoutSidebarLayout, { logo: props.logo, wordmark: props.wordmark, Link: props.Link, brandHref: props.brandHref, sidebarFooterContent: props.sidebarFooterContent })] }) }));
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
|
-
return (_jsx(DashboardLayoutSidebarLayout, { logo: props.logo, wordmark: props.wordmark, Link: props.Link, brandHref: props.brandHref, sidebarFooterContent: props.sidebarFooterContent }));
|
|
23
|
+
return (_jsx(DashboardLayoutSidebarLayout, { logo: props.logo, wordmark: props.wordmark, Link: props.Link, brandHref: props.brandHref, sidebarFooterContent: props.sidebarFooterContent, className: props.className }));
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
export default DashboardSidebar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-sidebar.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,wCAAwC,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,4BAEN,MAAM,4BAA4B,CAAC;AACpC,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAE7D,MAAM,UAAU,gBAAgB,CAC9B,KAAwC;IAExC,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,4BAA4B,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CACL,KAAC,KAAK,IACJ,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,YAAY,EAAE,CAAC,YAAqB,EAAQ,EAAE;gBAC5C,OAAO,CAAC,YAAY,CAAC,CAAC;YACxB,CAAC,YAED,MAAC,YAAY,IACX,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,
|
|
1
|
+
{"version":3,"file":"dashboard-sidebar.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,wCAAwC,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,4BAEN,MAAM,4BAA4B,CAAC;AACpC,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAE7D,MAAM,UAAU,gBAAgB,CAC9B,KAAwC;IAExC,MAAM,IAAI,GAAG,yBAAyB,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,4BAA4B,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CACL,KAAC,KAAK,IACJ,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,YAAY,EAAE,CAAC,YAAqB,EAAQ,EAAE;gBAC5C,OAAO,CAAC,YAAY,CAAC,CAAC;YACxB,CAAC,YAED,MAAC,YAAY,IACX,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,SAAS,CAAC,EACpE,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb,aAED,KAAC,cAAc,cACb,MAAC,WAAW,eACV,KAAC,UAAU,iDAA4C,EACvD,KAAC,gBAAgB,qGAGE,IACP,GACC,EACjB,KAAC,4BAA4B,IAC3B,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,GAChD,IACW,GACT,CACT,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CACL,KAAC,4BAA4B,IAC3B,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAChD,SAAS,EAAE,KAAK,CAAC,SAAS,GAC1B,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/time-picker/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
export declare const timePickerSizeIds: ["sm", "default", "lg"];
|
|
4
|
+
export type TimePickerSizeId = (typeof timePickerSizeIds)[number];
|
|
5
|
+
export declare const timePickerFormatIds: ["12h", "24h"];
|
|
6
|
+
export type TimePickerFormatId = (typeof timePickerFormatIds)[number];
|
|
7
|
+
export interface TimeValue {
|
|
8
|
+
/** 0-23 hours (always stored in 24-hour form regardless of display format). */
|
|
9
|
+
hours: number;
|
|
10
|
+
/** 0-59 minutes. */
|
|
11
|
+
minutes: number;
|
|
12
|
+
/** 0-59 seconds. Only populated when `showSeconds` is enabled. */
|
|
13
|
+
seconds?: number;
|
|
14
|
+
}
|
|
15
|
+
declare const triggerVariants: (props?: ({
|
|
16
|
+
size?: "sm" | "default" | "lg" | null | undefined;
|
|
17
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
18
|
+
export interface TimePickerProps extends VariantProps<typeof triggerVariants> {
|
|
19
|
+
/** Controlled selected time. */
|
|
20
|
+
value?: TimeValue;
|
|
21
|
+
/** Initial selected time when uncontrolled. */
|
|
22
|
+
defaultValue?: TimeValue;
|
|
23
|
+
/** Called whenever the selected time changes. */
|
|
24
|
+
onValueChange?: (value: TimeValue | undefined) => void;
|
|
25
|
+
/** Text shown in the trigger when no time is selected. Defaults to "Pick a time". */
|
|
26
|
+
placeholder?: string;
|
|
27
|
+
/** Disables the trigger button. */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Display format. Defaults to "24h". */
|
|
30
|
+
format?: TimePickerFormatId;
|
|
31
|
+
/** Whether to include a seconds column. Defaults to false. */
|
|
32
|
+
showSeconds?: boolean;
|
|
33
|
+
/** Minute step shown in the panel. Defaults to 1. */
|
|
34
|
+
minuteStep?: number;
|
|
35
|
+
/** Second step shown in the panel. Defaults to 1. */
|
|
36
|
+
secondStep?: number;
|
|
37
|
+
/** Format the selected time for display in the trigger. */
|
|
38
|
+
formatValue?: (value: TimeValue) => string;
|
|
39
|
+
/** Alignment of the popover relative to the trigger. Defaults to "start". */
|
|
40
|
+
align?: "start" | "center" | "end";
|
|
41
|
+
/** Controlled popover open state. */
|
|
42
|
+
open?: boolean;
|
|
43
|
+
/** Called when the popover open state changes. */
|
|
44
|
+
onOpenChange?: (open: boolean) => void;
|
|
45
|
+
/** Forwarded to the trigger button. */
|
|
46
|
+
id?: string;
|
|
47
|
+
/** Class name applied to the trigger button. */
|
|
48
|
+
className?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A time-of-day input that composes a `Popover`, `Button`, and scrollable
|
|
52
|
+
* hour/minute/second columns. Supports both controlled (`value`/`open`) and
|
|
53
|
+
* uncontrolled (`defaultValue`) usage, 12h/24h display, optional seconds, and
|
|
54
|
+
* configurable minute/second steps. Complements `DatePicker` and
|
|
55
|
+
* `DateRangePicker`.
|
|
56
|
+
*/
|
|
57
|
+
declare function TimePicker(props: TimePickerProps): ReactElement;
|
|
58
|
+
declare namespace TimePicker {
|
|
59
|
+
var displayName: string;
|
|
60
|
+
}
|
|
61
|
+
export { TimePicker, triggerVariants as timePickerTriggerVariants };
|
|
62
|
+
export default TimePicker;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
|
4
|
+
import { Clock } from "lucide-react";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
import { cn } from "../../../lib/utils";
|
|
7
|
+
import { Button } from "../../ui/button";
|
|
8
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../ui/popover";
|
|
9
|
+
import { ScrollArea } from "../../ui/scroll-area";
|
|
10
|
+
export const timePickerSizeIds = ["sm", "default", "lg"];
|
|
11
|
+
export const timePickerFormatIds = ["12h", "24h"];
|
|
12
|
+
const triggerSizeClasses = {
|
|
13
|
+
sm: "h-9 px-3 text-xs",
|
|
14
|
+
default: "h-10 px-4",
|
|
15
|
+
lg: "h-11 px-5 text-base",
|
|
16
|
+
};
|
|
17
|
+
const cellSizeClasses = {
|
|
18
|
+
sm: "h-7 text-xs",
|
|
19
|
+
default: "h-8 text-sm",
|
|
20
|
+
lg: "h-9 text-base",
|
|
21
|
+
};
|
|
22
|
+
const panelHeightClasses = {
|
|
23
|
+
sm: "h-44",
|
|
24
|
+
default: "h-52",
|
|
25
|
+
lg: "h-56",
|
|
26
|
+
};
|
|
27
|
+
const triggerVariants = cva("justify-start gap-2 font-normal tabular-nums", {
|
|
28
|
+
variants: {
|
|
29
|
+
size: {
|
|
30
|
+
sm: "w-44",
|
|
31
|
+
default: "w-52",
|
|
32
|
+
lg: "w-60",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
defaultVariants: { size: "default" },
|
|
36
|
+
});
|
|
37
|
+
function pad(value) {
|
|
38
|
+
return value.toString().padStart(2, "0");
|
|
39
|
+
}
|
|
40
|
+
function defaultFormatValue(value, format, showSeconds) {
|
|
41
|
+
const { hours, minutes, seconds } = value;
|
|
42
|
+
if (format === "24h") {
|
|
43
|
+
return showSeconds
|
|
44
|
+
? `${pad(hours)}:${pad(minutes)}:${pad(seconds ?? 0)}`
|
|
45
|
+
: `${pad(hours)}:${pad(minutes)}`;
|
|
46
|
+
}
|
|
47
|
+
const period = hours >= 12 ? "PM" : "AM";
|
|
48
|
+
const displayHour = hours % 12 === 0 ? 12 : hours % 12;
|
|
49
|
+
const base = `${pad(displayHour)}:${pad(minutes)}`;
|
|
50
|
+
return showSeconds ? `${base}:${pad(seconds ?? 0)} ${period}` : `${base} ${period}`;
|
|
51
|
+
}
|
|
52
|
+
function range(from, to, step) {
|
|
53
|
+
const result = [];
|
|
54
|
+
for (let i = from; i <= to; i += step)
|
|
55
|
+
result.push(i);
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
function TimeColumn({ label, items, active, onSelect, formatItem, size, }) {
|
|
59
|
+
const viewportRef = useRef(null);
|
|
60
|
+
const activeRef = useRef(null);
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
const node = activeRef.current;
|
|
63
|
+
if (!node)
|
|
64
|
+
return;
|
|
65
|
+
node.scrollIntoView({ block: "center" });
|
|
66
|
+
}, [active]);
|
|
67
|
+
return (_jsxs("div", { className: "flex flex-col items-stretch min-w-0", children: [_jsx("div", { className: "px-2 pb-1 text-[10px] uppercase tracking-wider text-muted-foreground text-center", "aria-hidden": "true", children: label }), _jsx(ScrollArea, { className: cn("w-14 rounded-md border border-border bg-muted/30", panelHeightClasses[size]), children: _jsx("div", { className: "flex flex-col gap-0.5 p-1", ref: viewportRef, role: "listbox", "aria-label": label, children: items.map((item) => {
|
|
68
|
+
const isActive = item === active;
|
|
69
|
+
return (_jsx("button", { type: "button", role: "option", "aria-selected": isActive, ref: isActive ? activeRef : undefined, onClick: () => onSelect(item), className: cn("w-full rounded-sm tabular-nums transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "hover:bg-accent hover:text-accent-foreground", cellSizeClasses[size], isActive &&
|
|
70
|
+
"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"), children: formatItem(item) }, item));
|
|
71
|
+
}) }) })] }));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A time-of-day input that composes a `Popover`, `Button`, and scrollable
|
|
75
|
+
* hour/minute/second columns. Supports both controlled (`value`/`open`) and
|
|
76
|
+
* uncontrolled (`defaultValue`) usage, 12h/24h display, optional seconds, and
|
|
77
|
+
* configurable minute/second steps. Complements `DatePicker` and
|
|
78
|
+
* `DateRangePicker`.
|
|
79
|
+
*/
|
|
80
|
+
function TimePicker(props) {
|
|
81
|
+
const { value, defaultValue, onValueChange, placeholder = "Pick a time", disabled, format = "24h", showSeconds = false, minuteStep = 1, secondStep = 1, formatValue, align = "start", open, onOpenChange, id, className, size, } = props;
|
|
82
|
+
const resolvedSize = size ?? "default";
|
|
83
|
+
const [internalOpen, setInternalOpen] = useState(false);
|
|
84
|
+
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
85
|
+
const isOpenControlled = open !== undefined;
|
|
86
|
+
const isOpen = isOpenControlled ? open : internalOpen;
|
|
87
|
+
const setOpen = useCallback((next) => {
|
|
88
|
+
if (!isOpenControlled)
|
|
89
|
+
setInternalOpen(next);
|
|
90
|
+
onOpenChange?.(next);
|
|
91
|
+
}, [isOpenControlled, onOpenChange]);
|
|
92
|
+
const isValueControlled = value !== undefined;
|
|
93
|
+
const selected = isValueControlled ? value : internalValue;
|
|
94
|
+
const emit = useCallback((next) => {
|
|
95
|
+
if (!isValueControlled)
|
|
96
|
+
setInternalValue(next);
|
|
97
|
+
onValueChange?.(next);
|
|
98
|
+
}, [isValueControlled, onValueChange]);
|
|
99
|
+
const format12 = format === "12h";
|
|
100
|
+
const hourItems = useMemo(() => (format12 ? range(1, 12, 1) : range(0, 23, 1)), [format12]);
|
|
101
|
+
const minuteItems = useMemo(() => range(0, 59, Math.max(1, minuteStep)), [minuteStep]);
|
|
102
|
+
const secondItems = useMemo(() => range(0, 59, Math.max(1, secondStep)), [secondStep]);
|
|
103
|
+
const activeHour24 = selected?.hours ?? 0;
|
|
104
|
+
const activeHourDisplay = format12
|
|
105
|
+
? activeHour24 % 12 === 0
|
|
106
|
+
? 12
|
|
107
|
+
: activeHour24 % 12
|
|
108
|
+
: activeHour24;
|
|
109
|
+
const activeMinute = selected?.minutes ?? 0;
|
|
110
|
+
const activeSecond = selected?.seconds ?? 0;
|
|
111
|
+
const isPm = activeHour24 >= 12;
|
|
112
|
+
const handleHour = useCallback((hour) => {
|
|
113
|
+
const next24 = format12
|
|
114
|
+
? (hour % 12) + (isPm ? 12 : 0)
|
|
115
|
+
: hour;
|
|
116
|
+
emit({
|
|
117
|
+
hours: next24,
|
|
118
|
+
minutes: activeMinute,
|
|
119
|
+
...(showSeconds ? { seconds: activeSecond } : {}),
|
|
120
|
+
});
|
|
121
|
+
}, [emit, format12, isPm, activeMinute, activeSecond, showSeconds]);
|
|
122
|
+
const handleMinute = useCallback((minute) => {
|
|
123
|
+
emit({
|
|
124
|
+
hours: activeHour24,
|
|
125
|
+
minutes: minute,
|
|
126
|
+
...(showSeconds ? { seconds: activeSecond } : {}),
|
|
127
|
+
});
|
|
128
|
+
}, [emit, activeHour24, activeSecond, showSeconds]);
|
|
129
|
+
const handleSecond = useCallback((second) => {
|
|
130
|
+
emit({ hours: activeHour24, minutes: activeMinute, seconds: second });
|
|
131
|
+
}, [emit, activeHour24, activeMinute]);
|
|
132
|
+
const handlePeriod = useCallback((period) => {
|
|
133
|
+
const base = activeHour24 % 12;
|
|
134
|
+
const next24 = period === "PM" ? base + 12 : base;
|
|
135
|
+
emit({
|
|
136
|
+
hours: next24,
|
|
137
|
+
minutes: activeMinute,
|
|
138
|
+
...(showSeconds ? { seconds: activeSecond } : {}),
|
|
139
|
+
});
|
|
140
|
+
}, [emit, activeHour24, activeMinute, activeSecond, showSeconds]);
|
|
141
|
+
const display = formatValue
|
|
142
|
+
? selected
|
|
143
|
+
? formatValue(selected)
|
|
144
|
+
: undefined
|
|
145
|
+
: selected
|
|
146
|
+
? defaultFormatValue(selected, format, showSeconds)
|
|
147
|
+
: undefined;
|
|
148
|
+
return (_jsxs(Popover, { open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn(triggerVariants({ size: resolvedSize }), triggerSizeClasses[resolvedSize], className), children: [_jsx(Clock, { className: "size-4 opacity-70" }), display ? (display) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsxs(PopoverContent, { className: "w-auto p-3", align: align, children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(TimeColumn, { label: "Hour", items: hourItems, active: activeHourDisplay, onSelect: handleHour, formatItem: pad, size: resolvedSize }), _jsx(TimeColumn, { label: "Min", items: minuteItems, active: activeMinute, onSelect: handleMinute, formatItem: pad, size: resolvedSize }), showSeconds ? (_jsx(TimeColumn, { label: "Sec", items: secondItems, active: activeSecond, onSelect: handleSecond, formatItem: pad, size: resolvedSize })) : null, format12 ? (_jsxs("div", { className: "flex flex-col items-stretch", children: [_jsx("div", { className: "px-2 pb-1 text-[10px] uppercase tracking-wider text-muted-foreground text-center", "aria-hidden": "true", children: "AM/PM" }), _jsx("div", { className: cn("flex flex-col gap-1 rounded-md border border-border bg-muted/30 p-1", panelHeightClasses[resolvedSize]), role: "radiogroup", "aria-label": "AM/PM", children: ["AM", "PM"].map((period) => {
|
|
149
|
+
const isActive = isPm ? period === "PM" : period === "AM";
|
|
150
|
+
return (_jsx("button", { type: "button", role: "radio", "aria-checked": isActive, onClick: () => handlePeriod(period), className: cn("w-12 rounded-sm font-medium transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "hover:bg-accent hover:text-accent-foreground", cellSizeClasses[resolvedSize], isActive &&
|
|
151
|
+
"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"), children: period }, period));
|
|
152
|
+
}) })] })) : null] }), _jsxs("div", { className: "mt-3 flex items-center justify-between gap-2", children: [_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => {
|
|
153
|
+
const now = new Date();
|
|
154
|
+
emit({
|
|
155
|
+
hours: now.getHours(),
|
|
156
|
+
minutes: now.getMinutes(),
|
|
157
|
+
...(showSeconds ? { seconds: now.getSeconds() } : {}),
|
|
158
|
+
});
|
|
159
|
+
}, children: "Now" }), _jsx(Button, { type: "button", variant: "default", size: "sm", onClick: () => setOpen(false), children: "Done" })] })] })] }));
|
|
160
|
+
}
|
|
161
|
+
TimePicker.displayName = "TimePicker";
|
|
162
|
+
export { TimePicker, triggerVariants as timePickerTriggerVariants };
|
|
163
|
+
export default TimePicker;
|
|
164
|
+
//# sourceMappingURL=time-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/time-picker/time-picker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAA6B,CAAC;AAGrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,CAA6B,CAAC;AAY9E,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,WAAW;IACpB,EAAE,EAAE,qBAAqB;CAC0B,CAAC;AAEtD,MAAM,eAAe,GAAG;IACtB,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,aAAa;IACtB,EAAE,EAAE,eAAe;CACgC,CAAC;AAEtD,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,EAAE,EAAE,MAAM;CACyC,CAAC;AAEtD,MAAM,eAAe,GAAG,GAAG,CACzB,8CAA8C,EAC9C;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,MAAM;YACf,EAAE,EAAE,MAAM;SACgC;KAC7C;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CACrC,CACF,CAAC;AAmCF,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAgB,EAChB,MAA0B,EAC1B,WAAoB;IAEpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1C,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,WAAW;YAChB,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE;YACtD,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,EAAU,EAAE,IAAY;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAWD,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,IAAI,GACQ;IACZ,MAAM,WAAW,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL,eAAK,SAAS,EAAC,qCAAqC,aAClD,cACE,SAAS,EAAC,kFAAkF,iBAChF,MAAM,YAEjB,KAAK,GACF,EACN,KAAC,UAAU,IACT,SAAS,EAAE,EAAE,CAAC,kDAAkD,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,YAE3F,cAAK,SAAS,EAAC,2BAA2B,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAC,SAAS,gBAAa,KAAK,YAC1F,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAgB,EAAE;wBAChC,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC;wBACjC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,mBACE,QAAQ,EACvB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACrC,OAAO,EAAE,GAAS,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EACnC,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,yEAAyE,EACzE,8CAA8C,EAC9C,eAAe,CAAC,IAAI,CAAC,EACrB,QAAQ;gCACN,mFAAmF,CACtF,YAEA,UAAU,CAAC,IAAI,CAAC,IAfZ,IAAI,CAgBF,CACV,CAAC;oBACJ,CAAC,CAAC,GACE,GACK,IACT,CACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAsB;IACxC,MAAM,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,aAAa,EAC3B,QAAQ,EACR,MAAM,GAAG,KAAK,EACd,WAAW,GAAG,KAAK,EACnB,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,CAAC,EACd,WAAW,EACX,KAAK,GAAG,OAAO,EACf,IAAI,EACJ,YAAY,EACZ,EAAE,EACF,SAAS,EACT,IAAI,GACL,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAqB,IAAI,IAAI,SAAS,CAAC;IAEzD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACjE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,YAAY,CACb,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,KAAK,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IACtD,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,IAAa,EAAQ,EAAE;QACtB,IAAI,CAAC,gBAAgB;YAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7C,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,gBAAgB,EAAE,YAAY,CAAC,CACjC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,KAAK,SAAS,CAAC;IAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IAE3D,MAAM,IAAI,GAAG,WAAW,CACtB,CAAC,IAAe,EAAQ,EAAE;QACxB,IAAI,CAAC,iBAAiB;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/C,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EACD,CAAC,iBAAiB,EAAE,aAAa,CAAC,CACnC,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,KAAK,CAAC;IAClC,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EACpD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAC3C,CAAC,UAAU,CAAC,CACb,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAC3C,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,YAAY,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,QAAQ;QAChC,CAAC,CAAC,YAAY,GAAG,EAAE,KAAK,CAAC;YACvB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,YAAY,GAAG,EAAE;QACrB,CAAC,CAAC,YAAY,CAAC;IACjB,MAAM,YAAY,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;IAEhC,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,IAAY,EAAQ,EAAE;QACrB,MAAM,MAAM,GAAG,QAAQ;YACrB,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC;YACH,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,YAAY;YACrB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC,EACD,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,CAChE,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,MAAc,EAAQ,EAAE;QACvB,IAAI,CAAC;YACH,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,MAAM;YACf,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC,EACD,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,CAChD,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,MAAc,EAAQ,EAAE;QACvB,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC,EACD,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CACnC,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,MAAmB,EAAQ,EAAE;QAC5B,MAAM,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC;YACH,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,YAAY;YACrB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC,EACD,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,CAC9D,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW;QACzB,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,SAAS;QACb,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL,MAAC,OAAO,IAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,aAC1C,KAAC,cAAc,IAAC,OAAO,kBACrB,MAAC,MAAM,IACL,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EACvC,kBAAkB,CAAC,YAAY,CAAC,EAChC,SAAS,CACV,aAED,KAAC,KAAK,IAAC,SAAS,EAAC,mBAAmB,GAAG,EACtC,OAAO,CAAC,CAAC,CAAC,CACT,OAAO,CACR,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,YAAE,WAAW,GAAQ,CAC7D,IACM,GACM,EACjB,MAAC,cAAc,IAAC,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,KAAK,aACjD,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,UAAU,IACT,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,GAAG,EACf,IAAI,EAAE,YAAY,GAClB,EACF,KAAC,UAAU,IACT,KAAK,EAAC,KAAK,EACX,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,GAAG,EACf,IAAI,EAAE,YAAY,GAClB,EACD,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,UAAU,IACT,KAAK,EAAC,KAAK,EACX,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,GAAG,EACf,IAAI,EAAE,YAAY,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,CAAC,CAAC,CAAC,CACV,eAAK,SAAS,EAAC,6BAA6B,aAC1C,cACE,SAAS,EAAC,kFAAkF,iBAChF,MAAM,sBAGd,EACN,cACE,SAAS,EAAE,EAAE,CACX,qEAAqE,EACrE,kBAAkB,CAAC,YAAY,CAAC,CACjC,EACD,IAAI,EAAC,YAAY,gBACN,OAAO,YAEhB,CAAC,IAAI,EAAE,IAAI,CAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAgB,EAAE;4CACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC;4CAC1D,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,QAAQ,EACtB,OAAO,EAAE,GAAS,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EACzC,SAAS,EAAE,EAAE,CACX,+CAA+C,EAC/C,yEAAyE,EACzE,8CAA8C,EAC9C,eAAe,CAAC,YAAY,CAAC,EAC7B,QAAQ;oDACN,mFAAmF,CACtF,YAEA,MAAM,IAdF,MAAM,CAeJ,CACV,CAAC;wCACJ,CAAC,CAAC,GACE,IACF,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,eAAK,SAAS,EAAC,8CAA8C,aAC3D,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAS,EAAE;oCAClB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;oCACvB,IAAI,CAAC;wCACH,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE;wCACrB,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;wCACzB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qCACtD,CAAC,CAAC;gCACL,CAAC,oBAGM,EACT,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,qBAG5B,IACL,IACS,IACT,CACX,CAAC;AACJ,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,eAAe,IAAI,yBAAyB,EAAE,CAAC;AACpE,eAAe,UAAU,CAAC"}
|