@schemavaults/ui 0.98.3 → 0.99.1
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/dashboard-sidebar/dashboard-sidebar-content.d.ts +29 -0
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js +35 -10
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.js +16 -2
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.js +18 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.js.map +1 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.d.ts +24 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.js +3 -1
- package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.js.map +1 -1
- package/dist/components/ui/combobox/combobox.d.ts +15 -1
- package/dist/components/ui/combobox/combobox.js +2 -2
- package/dist/components/ui/combobox/combobox.js.map +1 -1
- package/dist/components/ui/date-picker/date-picker.d.ts +9 -0
- package/dist/components/ui/date-picker/date-picker.js +2 -2
- package/dist/components/ui/date-picker/date-picker.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +9 -0
- package/dist/components/ui/date-range-picker/date-range-picker.js +2 -2
- package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/ui/multi-select/multi-select.d.ts +15 -1
- package/dist/components/ui/multi-select/multi-select.js +2 -2
- package/dist/components/ui/multi-select/multi-select.js.map +1 -1
- package/dist/components/ui/time-picker/time-picker.d.ts +14 -0
- package/dist/components/ui/time-picker/time-picker.js +2 -2
- package/dist/components/ui/time-picker/time-picker.js.map +1 -1
- package/package.json +1 -1
package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.d.ts
CHANGED
|
@@ -1,7 +1,36 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
|
+
import type { DashboardSidebarItemDefinition } from "./dashboard-sidebar-item-definition";
|
|
3
|
+
import type { DashboardSidebarItemGroupDefinition } from "./dashboard-sidebar-item-group";
|
|
2
4
|
import type { LinkComponentType } from "../../../../types/Link";
|
|
3
5
|
export interface DashboardLayoutSidebarContentProps {
|
|
4
6
|
Link: LinkComponentType;
|
|
5
7
|
}
|
|
8
|
+
type DashboardSidebarEntry = DashboardSidebarItemDefinition | DashboardSidebarItemGroupDefinition;
|
|
9
|
+
/**
|
|
10
|
+
* A consecutive run of ungrouped menu items, rendered into a single <ul>.
|
|
11
|
+
*
|
|
12
|
+
* Ungrouped items used to be emitted as bare <li> children of the menu <nav>.
|
|
13
|
+
* That is invalid markup — an <li> outside a list container — and it meant the
|
|
14
|
+
* spacing between plain links came from the <nav>'s own gap while the spacing
|
|
15
|
+
* between grouped links came from each group's <ul> gap: two independent
|
|
16
|
+
* declarations that only agreed by coincidence. Collecting ungrouped items
|
|
17
|
+
* into their own list gives both paths the same structure, so they cannot
|
|
18
|
+
* drift apart again.
|
|
19
|
+
*/
|
|
20
|
+
interface UngroupedSidebarItemRun {
|
|
21
|
+
kind: "ungrouped-item-run";
|
|
22
|
+
items: DashboardSidebarItemDefinition[];
|
|
23
|
+
}
|
|
24
|
+
interface SidebarGroupBlock {
|
|
25
|
+
kind: "group";
|
|
26
|
+
group: DashboardSidebarItemGroupDefinition;
|
|
27
|
+
}
|
|
28
|
+
type DashboardSidebarRenderBlock = UngroupedSidebarItemRun | SidebarGroupBlock;
|
|
29
|
+
/**
|
|
30
|
+
* Collapse the flat item/group list into render blocks, preserving the order
|
|
31
|
+
* the consumer supplied. Adjacent ungrouped items merge into one run; a group
|
|
32
|
+
* always starts a new block.
|
|
33
|
+
*/
|
|
34
|
+
export declare function toDashboardSidebarRenderBlocks(entries: readonly DashboardSidebarEntry[]): DashboardSidebarRenderBlock[];
|
|
6
35
|
export declare function DashboardSidebarContent({ Link, }: DashboardLayoutSidebarContentProps): ReactElement;
|
|
7
36
|
export default DashboardSidebarContent;
|
package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js
CHANGED
|
@@ -6,21 +6,46 @@ import useDashboardSidebarItemsAndGroups from "./useDashboardSidebarItemsAndGrou
|
|
|
6
6
|
import { m } from "../../../../framer-motion";
|
|
7
7
|
import { cn } from "../../../../lib/utils";
|
|
8
8
|
import useDashboardSidebarSizing from "./useDashboardSidebarSizing";
|
|
9
|
+
/**
|
|
10
|
+
* Collapse the flat item/group list into render blocks, preserving the order
|
|
11
|
+
* the consumer supplied. Adjacent ungrouped items merge into one run; a group
|
|
12
|
+
* always starts a new block.
|
|
13
|
+
*/
|
|
14
|
+
export function toDashboardSidebarRenderBlocks(entries) {
|
|
15
|
+
const blocks = [];
|
|
16
|
+
for (const entry of entries) {
|
|
17
|
+
if (entry.type === "dashboard-sidebar-item-definition") {
|
|
18
|
+
const previousBlock = blocks[blocks.length - 1];
|
|
19
|
+
if (previousBlock !== undefined && previousBlock.kind === "ungrouped-item-run") {
|
|
20
|
+
previousBlock.items.push(entry);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
blocks.push({ kind: "ungrouped-item-run", items: [entry] });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (entry.type === "dashboard-sidebar-item-group") {
|
|
27
|
+
blocks.push({ kind: "group", group: entry });
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new TypeError("Invalid 'type' for sidebar content item in render list!");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return blocks;
|
|
34
|
+
}
|
|
9
35
|
export function DashboardSidebarContent({ Link, }) {
|
|
10
36
|
const sidebarItems = useDashboardSidebarItemsAndGroups();
|
|
11
37
|
const sizes = useDashboardSidebarSizing();
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
else if (itemOrGroup.type === "dashboard-sidebar-item-group") {
|
|
18
|
-
const group = itemOrGroup;
|
|
38
|
+
const blocks = toDashboardSidebarRenderBlocks(sidebarItems);
|
|
39
|
+
return (_jsx(m.nav, { className: cn("bg-background grow w-full", "flex flex-col items-center justify-start flex-nowrap", sizes.sidebar_menu_item_gap_classname, "overflow-x-hidden overflow-y-scroll", "no-scrollbar"), children: blocks.map((block) => {
|
|
40
|
+
if (block.kind === "group") {
|
|
41
|
+
const group = block.group;
|
|
19
42
|
return (_jsx(DashboardSidebarItemGroupRenderer, { group: group, Link: Link }, `sidebar-group-[${group.title}]`));
|
|
20
43
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
44
|
+
const firstItemTitle = block.items[0].title;
|
|
45
|
+
return (_jsx(m.ul, { layout: true, className: cn("w-full flex flex-col", "items-start justify-start", sizes.sidebar_menu_item_gap_classname,
|
|
46
|
+
// The <nav> is a scrolling flex column; without this the run
|
|
47
|
+
// would be squashed once the menu overflows.
|
|
48
|
+
"flex-shrink-0"), children: block.items.map((item) => (_jsx(DashboardSidebarItemRenderer, { item: item, Link: Link }, `sidebar-item-[${item.title}]`))) }, `sidebar-ungrouped-items-[${firstItemTitle}]`));
|
|
24
49
|
}) }));
|
|
25
50
|
}
|
|
26
51
|
export default DashboardSidebarContent;
|
package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-sidebar-content.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,4BAA4B,MAAM,mCAAmC,CAAC;AAG7E,OAAO,iCAAiC,MAAM,yCAAyC,CAAC;AACxF,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard-sidebar-content.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-content.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,11 @@ export function DashboardSidebarItemGroupRenderer({ group, Link, }) {
|
|
|
14
14
|
const sizes = useDashboardSidebarSizing();
|
|
15
15
|
const groupItemsContainerId = `sidebar-group-items-[${group.title}]`;
|
|
16
16
|
const showGroupLabel = openState.mobile || openState.open;
|
|
17
|
-
return (_jsxs(m.div, { className: cn("w-full", "flex flex-col flex-nowrap", "items-start justify-start"
|
|
17
|
+
return (_jsxs(m.div, { className: cn("w-full", "flex flex-col flex-nowrap", "items-start justify-start",
|
|
18
|
+
// The menu <nav> is a scrolling flex column, so its children shrink
|
|
19
|
+
// by default once the menu overflows. Keep the group at its natural
|
|
20
|
+
// height and let the <nav> scroll instead.
|
|
21
|
+
"flex-shrink-0"), layout: true, children: [_jsx(AnimatePresence, { children: showGroupLabel && (_jsx(m.div, { className: "w-full text-nowrap", initial: {
|
|
18
22
|
scale: 0,
|
|
19
23
|
opacity: 0,
|
|
20
24
|
width: 0,
|
|
@@ -49,7 +53,17 @@ export function DashboardSidebarItemGroupRenderer({ group, Link, }) {
|
|
|
49
53
|
ease: toggleDashboardLayoutCollapsedTransitionEasing,
|
|
50
54
|
delay: 0,
|
|
51
55
|
},
|
|
52
|
-
}, children: _jsx(Label, { htmlFor: groupItemsContainerId, className: cn("font-bold text-nowrap",
|
|
56
|
+
}, children: _jsx(Label, { htmlFor: groupItemsContainerId, className: cn("font-bold text-nowrap", "block"),
|
|
57
|
+
// Align the group heading with the item titles underneath it:
|
|
58
|
+
// each item renders its icon inside a box exactly
|
|
59
|
+
// `desktop_collapsed_width` wide, so its title starts at that
|
|
60
|
+
// offset. Deriving the inset from the same value keeps heading
|
|
61
|
+
// and titles on one left edge instead of the old `mx-2`, which
|
|
62
|
+
// lined up with neither the icons nor the titles.
|
|
63
|
+
style: {
|
|
64
|
+
paddingLeft: sizes.desktop_collapsed_width,
|
|
65
|
+
paddingRight: "0.5rem",
|
|
66
|
+
}, children: groupTitle }) }, "sidebar-item-group-label")) }), _jsx(DashboardSidebarAdminOnlyItemsContext.Provider, { value: group.adminOnly ?? false, children: _jsx(m.ul, { id: groupItemsContainerId, layout: true, className: cn("w-full flex flex-col", "items-start justify-start", sizes.sidebar_menu_item_gap_classname), children: group.items.map((item) => {
|
|
53
67
|
return (_jsx(DashboardSidebarItemRenderer, { item: item, Link: Link }, `sidebar-item-[${groupTitle}]-[${item.title}]`));
|
|
54
68
|
}) }) })] }, `sidebar-group-[${group.title}]`));
|
|
55
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-sidebar-item-group-renderer.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,4BAA4B,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACL,4CAA4C,EAC5C,8CAA8C,GAC/C,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,qCAAqC,EAAE,MAAM,8CAA8C,CAAC;AAGrG,MAAM,UAAU,iCAAiC,CAAC,EAChD,KAAK,EACL,IAAI,GAIL;IACC,MAAM,UAAU,GAAW,KAAK,CAAC,KAAK,CAAC;IACvC,MAAM,SAAS,GAAG,4BAA4B,EAAE,CAAC;IACjD,MAAM,KAAK,GAAG,yBAAyB,EAAE,CAAC;IAE1C,MAAM,qBAAqB,GAAW,wBAAwB,KAAK,CAAC,KAAK,GAAG,CAAC;IAC7E,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC;IAE1D,OAAO,CACL,MAAC,CAAC,CAAC,GAAG,IAEJ,SAAS,EAAE,EAAE,CACX,QAAQ,EACR,2BAA2B,EAC3B,2BAA2B,
|
|
1
|
+
{"version":3,"file":"dashboard-sidebar-item-group-renderer.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-group-renderer.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.js
CHANGED
|
@@ -42,7 +42,24 @@ export function DashboardSidebarItemRenderer({ item, Link, }) {
|
|
|
42
42
|
duration: toggleDashboardLayoutCollapsedTransitionTime,
|
|
43
43
|
}, children: item.title }, `sidebar-menu-item-title-container-[${item.title}]`));
|
|
44
44
|
}
|
|
45
|
-
return (_jsx(m.li, {
|
|
45
|
+
return (_jsx(m.li, {
|
|
46
|
+
// `layout` keeps a row's position/size animated while the sidebar
|
|
47
|
+
// expands and collapses, matching the group wrapper and group <ul>,
|
|
48
|
+
// which have always had it. Without it, ungrouped rows snapped into
|
|
49
|
+
// place while grouped rows glided.
|
|
50
|
+
layout: true, className: cn("w-full", sizes.sidebar_menu_item_height_classname,
|
|
51
|
+
// The menu <nav> is a flex column with a definite height (it grows
|
|
52
|
+
// inside an h-screen sidebar) and its own scrollbar. Flex children
|
|
53
|
+
// shrink by default, so once the menu overflowed, rows squashed
|
|
54
|
+
// below their configured height instead of scrolling — and because
|
|
55
|
+
// grouped rows sit one level deeper, inside their group's <ul>, only
|
|
56
|
+
// the ungrouped rows collapsed. That is the "different spacing"
|
|
57
|
+
// between plain and grouped links. Opt out of shrinking, like the
|
|
58
|
+
// sidebar header and footer already do.
|
|
59
|
+
"flex-shrink-0"), children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { className: cn("w-full h-full"), children: _jsxs(Link, { href: item.url, className: cn("flex flex-row flex-nowrap", "justify-start items-center", "w-full h-full",
|
|
60
|
+
// Theme token rather than a hardcoded gray: bg-gray-200 was
|
|
61
|
+
// near-invisible against a dark background.
|
|
62
|
+
"hover:bg-accent transition-colors"), onClick: () => {
|
|
46
63
|
if (debug) {
|
|
47
64
|
console.log("[DashboardSidebarItemRenderer] onClick(item), where item = ", item);
|
|
48
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-sidebar-item-renderer.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAqB,MAAM,OAAO,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,4CAA4C,MAAM,sDAAsD,CAAC;AAChH,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,qCAAqC,EAAE,MAAM,8CAA8C,CAAC;AACrG,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAGpD,MAAM,UAAU,4BAA4B,CAAC,EAC3C,IAAI,EACJ,IAAI,GAIL;IACC,MAAM,KAAK,GAAY,QAAQ,EAAE,CAAC;IAClC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,4BAA4B,EAAE,CAAC;IACxD,MAAM,cAAc,GAAG,oCAAoC,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAG,yBAAyB,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAY,UAAU,CAC1C,qCAAqC,CACtC,CAAC;IACF,MAAM,aAAa,GAAY,MAAM,IAAI,IAAI,CAAC;IAE9C,MAAM,aAAa,GAA6B,IAAI,CAAC,IAAI,CAAC;IAC1D,MAAM,kBAAkB,GAAW,gBAAgB;QACjD,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,iBAAiB,CAAC;IAEtB,SAAS,oBAAoB;QAC3B,OAAO,CACL,KAAC,CAAC,CAAC,IAAI,IAEL,SAAS,EAAE,EAAE,CACX,kBAAkB,EAClB,aAAa,CACd,EACD,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,aAAa,EAAE;oBACb,OAAO,EAAE,MAAM;iBAChB;aACF,EACD,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO;aACjB,EACD,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,aAAa,EAAE;oBACb,OAAO,EAAE,MAAM;iBAChB;aACF,EACD,UAAU,EAAE;gBACV,QAAQ,EAAE,4CAA4C;aACvD,YAEA,IAAI,CAAC,KAAK,IA5BN,sCAAsC,IAAI,CAAC,KAAK,GAAG,CA6BjD,CACV,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"dashboard-sidebar-item-renderer.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.d.ts
CHANGED
|
@@ -13,9 +13,32 @@ export interface DashboardLayoutSidebarSizing {
|
|
|
13
13
|
content_container_desktop_sidebar_closed_left_classname: string;
|
|
14
14
|
sidebar_menu_item_height: string;
|
|
15
15
|
sidebar_menu_item_height_classname: string;
|
|
16
|
+
/**
|
|
17
|
+
* Space, in pixels, between a group's label and the first item beneath it.
|
|
18
|
+
*
|
|
19
|
+
* This is a raw number rather than a Tailwind class because it is animated
|
|
20
|
+
* by Framer Motion as the sidebar expands and collapses (the label's height
|
|
21
|
+
* and padding animate to 0 on collapse), and Framer needs a numeric target.
|
|
22
|
+
*
|
|
23
|
+
* Keep it equal to `sidebar_menu_item_gap_classname` expressed in pixels —
|
|
24
|
+
* the default `gap-2` is 0.5rem, i.e. 8px. A mismatch is exactly what made
|
|
25
|
+
* grouped items sit on a different vertical rhythm than ungrouped ones.
|
|
26
|
+
*/
|
|
16
27
|
sidebar_expanded_menu_group_label_bottom_padding: number;
|
|
17
28
|
sidebar_and_header_z_index_classname: string;
|
|
29
|
+
/**
|
|
30
|
+
* The single vertical rhythm for the sidebar menu. Applied to every list of
|
|
31
|
+
* menu items — the ungrouped run at the top level and each group's own list
|
|
32
|
+
* — so both paths space their rows identically.
|
|
33
|
+
*/
|
|
18
34
|
sidebar_menu_item_gap_classname: string;
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated No longer read by any sidebar component. Group labels are now
|
|
37
|
+
* aligned to the icon column (`desktop_collapsed_width`) so that a group
|
|
38
|
+
* heading and the item titles below it share a left edge; menu item rows
|
|
39
|
+
* themselves are full-bleed so their hover state spans the sidebar. Retained
|
|
40
|
+
* so that consumers passing a complete `sizing` object keep type-checking.
|
|
41
|
+
*/
|
|
19
42
|
sidebar_menu_item_x_margin_classname: string;
|
|
20
43
|
}
|
|
21
44
|
export declare const DEFAULT_DASHBOARD_SIDEBAR_SIZE: {
|
|
@@ -33,7 +56,7 @@ export declare const DEFAULT_DASHBOARD_SIDEBAR_SIZE: {
|
|
|
33
56
|
readonly content_container_desktop_sidebar_closed_left_classname: "md:left-[4rem]";
|
|
34
57
|
readonly sidebar_menu_item_height: "2.5rem";
|
|
35
58
|
readonly sidebar_menu_item_height_classname: "h-[2.5rem]";
|
|
36
|
-
readonly sidebar_expanded_menu_group_label_bottom_padding:
|
|
59
|
+
readonly sidebar_expanded_menu_group_label_bottom_padding: 8;
|
|
37
60
|
readonly sidebar_and_header_z_index_classname: "z-40";
|
|
38
61
|
readonly sidebar_menu_item_gap_classname: "gap-2";
|
|
39
62
|
readonly sidebar_menu_item_x_margin_classname: "mx-2";
|
package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.js
CHANGED
|
@@ -14,7 +14,9 @@ export const DEFAULT_DASHBOARD_SIDEBAR_SIZE = {
|
|
|
14
14
|
content_container_desktop_sidebar_closed_left_classname: "md:left-[4rem]",
|
|
15
15
|
sidebar_menu_item_height: "2.5rem",
|
|
16
16
|
sidebar_menu_item_height_classname: "h-[2.5rem]",
|
|
17
|
-
|
|
17
|
+
// 8px === gap-2 === sidebar_menu_item_gap_classname. See the doc comment on
|
|
18
|
+
// the interface field before changing this.
|
|
19
|
+
sidebar_expanded_menu_group_label_bottom_padding: 8,
|
|
18
20
|
sidebar_and_header_z_index_classname: "z-40",
|
|
19
21
|
sidebar_menu_item_gap_classname: "gap-2",
|
|
20
22
|
sidebar_menu_item_x_margin_classname: "mx-2",
|
package/dist/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-sidebar-sizing.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard-sidebar-sizing.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-sizing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AA8CtC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,uBAAuB,EAAE,MAAM;IAC/B,iCAAiC,EAAE,UAAU;IAC7C,sBAAsB,EAAE,OAAO;IAC/B,gCAAgC,EAAE,WAAW;IAC7C,qBAAqB,EAAE,OAAO;IAC9B,+BAA+B,EAAE,WAAW;IAC5C,aAAa,EAAE,MAAM;IACrB,uBAAuB,EAAE,UAAU;IACnC,sDAAsD,EACpD,yBAAyB;IAC3B,qDAAqD,EAAE,iBAAiB;IACxE,wDAAwD,EACtD,wBAAwB;IAC1B,uDAAuD,EAAE,gBAAgB;IACzE,wBAAwB,EAAE,QAAQ;IAClC,kCAAkC,EAAE,YAAY;IAChD,4EAA4E;IAC5E,4CAA4C;IAC5C,gDAAgD,EAAE,CAAC;IACnD,oCAAoC,EAAE,MAAM;IAC5C,+BAA+B,EAAE,OAAO;IACxC,oCAAoC,EAAE,MAAM;CACG,CAAC;AAElD,MAAM,CAAC,MAAM,iCAAiC,GAC5C,aAAa,CAA+B,8BAA8B,CAAC,CAAC"}
|
|
@@ -30,9 +30,23 @@ export interface ComboboxProps extends Omit<ButtonHTMLAttributes<HTMLButtonEleme
|
|
|
30
30
|
clearable?: boolean;
|
|
31
31
|
disabled?: boolean;
|
|
32
32
|
align?: "start" | "center" | "end";
|
|
33
|
+
/**
|
|
34
|
+
* Render the dropdown as a modal popover. Defaults to `true`, matching the
|
|
35
|
+
* behaviour of Radix `Select`.
|
|
36
|
+
*
|
|
37
|
+
* A modal popover installs its own scroll lock as the innermost layer, which
|
|
38
|
+
* is what makes the option list wheel/trackpad-scrollable while the
|
|
39
|
+
* `Combobox` sits inside a modal `Dialog`. With `modal={false}` the
|
|
40
|
+
* dialog's `react-remove-scroll` shard swallows wheel events over the
|
|
41
|
+
* portalled content, so it can only be scrolled with the keyboard.
|
|
42
|
+
*
|
|
43
|
+
* While open, a modal popover locks page scroll and the first outside click
|
|
44
|
+
* only dismisses it.
|
|
45
|
+
*/
|
|
46
|
+
modal?: boolean;
|
|
33
47
|
ref?: Ref<HTMLButtonElement>;
|
|
34
48
|
}
|
|
35
|
-
export declare function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, className, clearable, disabled, align, ref, ...buttonProps }: ComboboxProps): ReactElement;
|
|
49
|
+
export declare function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, className, clearable, disabled, align, modal, ref, ...buttonProps }: ComboboxProps): ReactElement;
|
|
36
50
|
export declare namespace Combobox {
|
|
37
51
|
var displayName: string;
|
|
38
52
|
}
|
|
@@ -39,7 +39,7 @@ export const comboboxTriggerVariants = cva("inline-flex items-center justify-bet
|
|
|
39
39
|
fullWidth: false,
|
|
40
40
|
},
|
|
41
41
|
});
|
|
42
|
-
export function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select an option...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, className, clearable = false, disabled = false, align = "start", ref, ...buttonProps }) {
|
|
42
|
+
export function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select an option...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, className, clearable = false, disabled = false, align = "start", modal = true, ref, ...buttonProps }) {
|
|
43
43
|
const reactId = useId();
|
|
44
44
|
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
45
45
|
const [open, setOpen] = useState(false);
|
|
@@ -63,7 +63,7 @@ export function Combobox({ options, value: controlledValue, defaultValue, onValu
|
|
|
63
63
|
setOpen(false);
|
|
64
64
|
}, [commitValue]);
|
|
65
65
|
const showClear = clearable && !disabled && selectedOption !== undefined;
|
|
66
|
-
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-controls": `${reactId}-listbox`, "data-placeholder": selectedOption === undefined ? "true" : "false", disabled: disabled, className: cn(comboboxTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 items-center gap-2 truncate text-left", children: selectedOption ? (_jsxs(_Fragment, { children: [selectedOption.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: selectedOption.icon })) : null, _jsx("span", { className: "truncate", children: selectedOption.label })] })) : (_jsx("span", { className: "truncate", children: placeholder })) }), _jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50", "aria-hidden": "true" })] }) }), _jsx(PopoverContent, { align: align, className: cn("w-[var(--radix-popover-trigger-width)] min-w-[12rem] p-0", contentClassName), children: _jsxs(Command, { id: `${reactId}-listbox`, children: [_jsx(CommandInput, { placeholder: searchPlaceholder }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: emptyMessage }), showClear ? (_jsxs(_Fragment, { children: [_jsx(CommandGroup, { children: _jsxs(CommandItem, { value: "__combobox_clear__", keywords: ["clear", "reset", "none"], onSelect: () => {
|
|
66
|
+
return (_jsxs(Popover, { modal: modal, open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-controls": `${reactId}-listbox`, "data-placeholder": selectedOption === undefined ? "true" : "false", disabled: disabled, className: cn(comboboxTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 items-center gap-2 truncate text-left", children: selectedOption ? (_jsxs(_Fragment, { children: [selectedOption.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: selectedOption.icon })) : null, _jsx("span", { className: "truncate", children: selectedOption.label })] })) : (_jsx("span", { className: "truncate", children: placeholder })) }), _jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50", "aria-hidden": "true" })] }) }), _jsx(PopoverContent, { align: align, className: cn("w-[var(--radix-popover-trigger-width)] min-w-[12rem] p-0", contentClassName), children: _jsxs(Command, { id: `${reactId}-listbox`, children: [_jsx(CommandInput, { placeholder: searchPlaceholder }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: emptyMessage }), showClear ? (_jsxs(_Fragment, { children: [_jsx(CommandGroup, { children: _jsxs(CommandItem, { value: "__combobox_clear__", keywords: ["clear", "reset", "none"], onSelect: () => {
|
|
67
67
|
handleClear();
|
|
68
68
|
}, className: "cursor-pointer gap-2 text-muted-foreground", children: [_jsx(X, { className: "h-4 w-4 shrink-0", "aria-hidden": "true" }), _jsx("span", { children: "Clear selection" })] }) }), _jsx(CommandSeparator, {})] })) : null, _jsx(CommandGroup, { children: options.map((option) => {
|
|
69
69
|
const isSelected = option.value === selectedValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GAKT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,SAAS;IACT,OAAO;CAC6B,CAAC;AAGvC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI;IACJ,SAAS;IACT,IAAI;CACgC,CAAC;AAGvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CACxC,6UAA6U,EAC7U;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,gFAAgF;YAClF,OAAO,EACL,iFAAiF;YACnF,KAAK,EACH,uFAAuF;SAC9C;QAC7C,IAAI,EAAE;YACJ,EAAE,EAAE,oBAAoB;YACxB,OAAO,EAAE,mBAAmB;YAC5B,EAAE,EAAE,qBAAqB;SACe;QAC1C,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,KAAK;KACjB;CACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,15 @@ export interface DatePickerProps extends Pick<CalendarSingleProps, "size" | "wee
|
|
|
17
17
|
formatDate?: (date: Date) => string;
|
|
18
18
|
/** Alignment of the popover relative to the trigger. Defaults to "start". */
|
|
19
19
|
align?: "start" | "center" | "end";
|
|
20
|
+
/**
|
|
21
|
+
* Render the calendar as a modal popover. Defaults to `false`.
|
|
22
|
+
*
|
|
23
|
+
* The calendar grid has no scrollable region, so unlike `MultiSelect`,
|
|
24
|
+
* `Combobox`, and `TimePicker` it is unaffected by the wheel-scroll lock a
|
|
25
|
+
* modal `Dialog` applies to portalled content. Pass `modal` if you still
|
|
26
|
+
* want the popover to lock page scroll and trap focus while open.
|
|
27
|
+
*/
|
|
28
|
+
modal?: boolean;
|
|
20
29
|
/** Controlled popover open state. */
|
|
21
30
|
open?: boolean;
|
|
22
31
|
/** Called when the popover open state changes. */
|
|
@@ -19,7 +19,7 @@ function defaultFormatDate(locale, date) {
|
|
|
19
19
|
* controlled (`value`/`open`) and uncontrolled (`defaultValue`) usage.
|
|
20
20
|
*/
|
|
21
21
|
function DatePicker(props) {
|
|
22
|
-
const { value, defaultValue, onValueChange, placeholder = "Pick a date", disabled, disabledDates, formatDate, align = "start", open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
22
|
+
const { value, defaultValue, onValueChange, placeholder = "Pick a date", disabled, disabledDates, formatDate, align = "start", modal = false, open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
23
23
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
24
24
|
const [internalSelected, setInternalSelected] = useState(defaultValue);
|
|
25
25
|
const isOpenControlled = open !== undefined;
|
|
@@ -32,7 +32,7 @@ function DatePicker(props) {
|
|
|
32
32
|
const isValueControlled = value !== undefined;
|
|
33
33
|
const selected = isValueControlled ? value : internalSelected;
|
|
34
34
|
const format = formatDate ?? ((date) => defaultFormatDate(locale, date));
|
|
35
|
-
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("w-60 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), selected ? (format(selected)) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "single", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected, onSelect: (date) => {
|
|
35
|
+
return (_jsxs(Popover, { modal: modal, open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn("w-60 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), selected ? (format(selected)) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "single", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected, onSelect: (date) => {
|
|
36
36
|
if (!isValueControlled)
|
|
37
37
|
setInternalSelected(date);
|
|
38
38
|
onValueChange?.(date);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-picker/date-picker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,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,QAAQ,EAA4B,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-picker/date-picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,15 @@ export interface DateRangePickerProps extends Pick<CalendarRangeProps, "size" |
|
|
|
17
17
|
formatDate?: (date: Date) => string;
|
|
18
18
|
/** Alignment of the popover relative to the trigger. Defaults to "start". */
|
|
19
19
|
align?: "start" | "center" | "end";
|
|
20
|
+
/**
|
|
21
|
+
* Render the calendar as a modal popover. Defaults to `false`.
|
|
22
|
+
*
|
|
23
|
+
* The calendar grid has no scrollable region, so unlike `MultiSelect`,
|
|
24
|
+
* `Combobox`, and `TimePicker` it is unaffected by the wheel-scroll lock a
|
|
25
|
+
* modal `Dialog` applies to portalled content. Pass `modal` if you still
|
|
26
|
+
* want the popover to lock page scroll and trap focus while open.
|
|
27
|
+
*/
|
|
28
|
+
modal?: boolean;
|
|
20
29
|
/** Controlled popover open state. */
|
|
21
30
|
open?: boolean;
|
|
22
31
|
/** Called when the popover open state changes. */
|
|
@@ -20,7 +20,7 @@ function defaultFormatDate(locale, date) {
|
|
|
20
20
|
* controlled (`value`/`open`) and uncontrolled (`defaultValue`) usage.
|
|
21
21
|
*/
|
|
22
22
|
function DateRangePicker(props) {
|
|
23
|
-
const { value, defaultValue, onValueChange, placeholder = "Pick a date range", disabled, disabledDates, formatDate, align = "start", open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
23
|
+
const { value, defaultValue, onValueChange, placeholder = "Pick a date range", disabled, disabledDates, formatDate, align = "start", modal = false, open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
24
24
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
25
25
|
const [internalSelected, setInternalSelected] = useState(defaultValue);
|
|
26
26
|
const isOpenControlled = open !== undefined;
|
|
@@ -42,7 +42,7 @@ function DateRangePicker(props) {
|
|
|
42
42
|
}
|
|
43
43
|
return `${format(selected.from)} – ${format(selected.to)}`;
|
|
44
44
|
}
|
|
45
|
-
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("w-72 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), renderLabel()] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "range", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected?.from, onSelect: (range) => {
|
|
45
|
+
return (_jsxs(Popover, { modal: modal, open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn("w-72 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), renderLabel()] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "range", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected?.from, onSelect: (range) => {
|
|
46
46
|
if (!isValueControlled)
|
|
47
47
|
setInternalSelected(range);
|
|
48
48
|
onValueChange?.(range);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-range-picker/date-range-picker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,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,EACL,QAAQ,GAGT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"date-range-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-range-picker/date-range-picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -40,9 +40,23 @@ export interface MultiSelectProps extends Omit<ButtonHTMLAttributes<HTMLButtonEl
|
|
|
40
40
|
/** Close the popover after each selection. Defaults to false (multi-pick mode). */
|
|
41
41
|
closeOnSelect?: boolean;
|
|
42
42
|
align?: "start" | "center" | "end";
|
|
43
|
+
/**
|
|
44
|
+
* Render the dropdown as a modal popover. Defaults to `true`, matching the
|
|
45
|
+
* behaviour of Radix `Select`.
|
|
46
|
+
*
|
|
47
|
+
* A modal popover installs its own scroll lock as the innermost layer, which
|
|
48
|
+
* is what makes the option list wheel/trackpad-scrollable while the
|
|
49
|
+
* `MultiSelect` sits inside a modal `Dialog`. With `modal={false}` the
|
|
50
|
+
* dialog's `react-remove-scroll` shard swallows wheel events over the
|
|
51
|
+
* portalled list, so it can only be scrolled with the keyboard.
|
|
52
|
+
*
|
|
53
|
+
* While open, a modal popover locks page scroll and the first outside click
|
|
54
|
+
* only dismisses it — standard combobox semantics.
|
|
55
|
+
*/
|
|
56
|
+
modal?: boolean;
|
|
43
57
|
ref?: Ref<HTMLButtonElement>;
|
|
44
58
|
}
|
|
45
|
-
export declare function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant, className, maxDisplay, maxSelected, clearable, disabled, closeOnSelect, align, ref, ...buttonProps }: MultiSelectProps): ReactElement;
|
|
59
|
+
export declare function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant, className, maxDisplay, maxSelected, clearable, disabled, closeOnSelect, align, modal, ref, ...buttonProps }: MultiSelectProps): ReactElement;
|
|
46
60
|
export declare namespace MultiSelect {
|
|
47
61
|
var displayName: string;
|
|
48
62
|
}
|
|
@@ -56,7 +56,7 @@ function arraysHaveSameValues(a, b) {
|
|
|
56
56
|
}
|
|
57
57
|
return true;
|
|
58
58
|
}
|
|
59
|
-
export function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select options...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant = "secondary", className, maxDisplay, maxSelected, clearable = false, disabled = false, closeOnSelect = false, align = "start", ref, ...buttonProps }) {
|
|
59
|
+
export function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select options...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant = "secondary", className, maxDisplay, maxSelected, clearable = false, disabled = false, closeOnSelect = false, align = "start", modal = true, ref, ...buttonProps }) {
|
|
60
60
|
const reactId = useId();
|
|
61
61
|
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? []);
|
|
62
62
|
const [open, setOpen] = useState(false);
|
|
@@ -117,7 +117,7 @@ export function MultiSelect({ options, value: controlledValue, defaultValue, onV
|
|
|
117
117
|
const showClearControl = clearable && !disabled && selectedValues.length > 0;
|
|
118
118
|
const isLimitReached = maxSelected !== undefined && selectedValues.length >= maxSelected;
|
|
119
119
|
const hasSelection = selectedValues.length > 0;
|
|
120
|
-
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-haspopup": "listbox", "aria-controls": `${reactId}-listbox`, "data-placeholder": hasSelection ? "false" : "true", disabled: disabled, className: cn(multiSelectTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 flex-wrap items-center gap-1 text-left", children: hasSelection ? (_jsxs(_Fragment, { children: [visibleSelected.map((option) => (_jsxs(Badge, { variant: badgeVariant, className: cn("max-w-full gap-1 pr-1", badgeClassName), children: [option.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: option.icon })) : null, _jsx("span", { className: "truncate", children: option.label }), !disabled ? (_jsx("span", { role: "button", tabIndex: -1, "aria-label": `Remove ${option.label}`, onClick: (event) => handleRemoveBadge(event, option.value), onPointerDown: (event) => {
|
|
120
|
+
return (_jsxs(Popover, { modal: modal, open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-haspopup": "listbox", "aria-controls": `${reactId}-listbox`, "data-placeholder": hasSelection ? "false" : "true", disabled: disabled, className: cn(multiSelectTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 flex-wrap items-center gap-1 text-left", children: hasSelection ? (_jsxs(_Fragment, { children: [visibleSelected.map((option) => (_jsxs(Badge, { variant: badgeVariant, className: cn("max-w-full gap-1 pr-1", badgeClassName), children: [option.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: option.icon })) : null, _jsx("span", { className: "truncate", children: option.label }), !disabled ? (_jsx("span", { role: "button", tabIndex: -1, "aria-label": `Remove ${option.label}`, onClick: (event) => handleRemoveBadge(event, option.value), onPointerDown: (event) => {
|
|
121
121
|
event.stopPropagation();
|
|
122
122
|
}, onKeyDown: (event) => {
|
|
123
123
|
if (event.key === "Enter" || event.key === " ") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-select.js","sourceRoot":"","sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GAMT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS;IACT,SAAS;IACT,OAAO;CAC6B,CAAC;AAGvC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,SAAS;IACT,IAAI;CACgC,CAAC;AAGvC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,SAAS;IACT,WAAW;IACX,SAAS;IACT,aAAa;CACuB,CAAC;AAIvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAC3C,kVAAkV,EAClV;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,gFAAgF;YAClF,OAAO,EACL,iFAAiF;YACnF,KAAK,EACH,uFAAuF;SAC3C;QAChD,IAAI,EAAE;YACJ,EAAE,EAAE,2BAA2B;YAC/B,OAAO,EAAE,8BAA8B;YACvC,EAAE,EAAE,8BAA8B;SACS;QAC7C,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,KAAK;KACjB;CACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-select.js","sourceRoot":"","sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,20 @@ export interface TimePickerProps extends VariantProps<typeof triggerVariants> {
|
|
|
38
38
|
formatValue?: (value: TimeValue) => string;
|
|
39
39
|
/** Alignment of the popover relative to the trigger. Defaults to "start". */
|
|
40
40
|
align?: "start" | "center" | "end";
|
|
41
|
+
/**
|
|
42
|
+
* Render the panel as a modal popover. Defaults to `true`, matching the
|
|
43
|
+
* behaviour of Radix `Select`.
|
|
44
|
+
*
|
|
45
|
+
* A modal popover installs its own scroll lock as the innermost layer, which
|
|
46
|
+
* is what keeps the hour/minute/second columns wheel/trackpad-scrollable
|
|
47
|
+
* while the `TimePicker` sits inside a modal `Dialog`. With `modal={false}` the
|
|
48
|
+
* dialog's `react-remove-scroll` shard swallows wheel events over the
|
|
49
|
+
* portalled content, so it can only be scrolled with the keyboard.
|
|
50
|
+
*
|
|
51
|
+
* While open, a modal popover locks page scroll and the first outside click
|
|
52
|
+
* only dismisses it.
|
|
53
|
+
*/
|
|
54
|
+
modal?: boolean;
|
|
41
55
|
/** Controlled popover open state. */
|
|
42
56
|
open?: boolean;
|
|
43
57
|
/** Called when the popover open state changes. */
|
|
@@ -78,7 +78,7 @@ function TimeColumn({ label, items, active, onSelect, formatItem, size, }) {
|
|
|
78
78
|
* `DateRangePicker`.
|
|
79
79
|
*/
|
|
80
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;
|
|
81
|
+
const { value, defaultValue, onValueChange, placeholder = "Pick a time", disabled, format = "24h", showSeconds = false, minuteStep = 1, secondStep = 1, formatValue, align = "start", modal = true, open, onOpenChange, id, className, size, } = props;
|
|
82
82
|
const resolvedSize = size ?? "default";
|
|
83
83
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
84
84
|
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
@@ -145,7 +145,7 @@ function TimePicker(props) {
|
|
|
145
145
|
: selected
|
|
146
146
|
? defaultFormatValue(selected, format, showSeconds)
|
|
147
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) => {
|
|
148
|
+
return (_jsxs(Popover, { modal: modal, 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
149
|
const isActive = isPm ? period === "PM" : period === "AM";
|
|
150
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
151
|
"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"), children: period }, period));
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"time-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/time-picker/time-picker.tsx"],"names":[],"mappings":"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"}
|