@datum-cloud/datum-ui 0.2.0-alpha.2 → 0.2.0-alpha.4
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/README.md +336 -0
- package/dist/alert/index.mjs +3 -0
- package/dist/alert-BC2Mccfo.mjs +95 -0
- package/dist/autocomplete/index.mjs +7 -0
- package/dist/autocomplete-DZtI97HP.mjs +295 -0
- package/dist/avatar-stack/index.mjs +5 -0
- package/dist/avatar-stack-JCfBlPB9.mjs +80 -0
- package/dist/badge/index.mjs +3 -0
- package/dist/badge-bFgeYceE.mjs +185 -0
- package/dist/breadcrumb/index.mjs +4 -0
- package/dist/breadcrumb-BGYJgom_.mjs +71 -0
- package/dist/button/index.mjs +4 -0
- package/dist/button-AzpnV-WB.mjs +49 -0
- package/dist/button-C1wRfGtT.mjs +230 -0
- package/dist/button-group/index.mjs +5 -0
- package/dist/button-group-C1IB2K5s.mjs +40 -0
- package/dist/calendar/index.mjs +5 -0
- package/dist/calendar-DlIHeWb0.mjs +113 -0
- package/dist/card/index.mjs +4 -0
- package/dist/card-3Kd0VdNf.mjs +63 -0
- package/dist/chart/index.mjs +4 -0
- package/dist/chart-BZqUKpkh.mjs +143 -0
- package/dist/checkbox/index.mjs +4 -0
- package/dist/checkbox-LG1OKTpG.mjs +34 -0
- package/dist/col-lrLMZaTJ.mjs +184 -0
- package/dist/collapsible/index.mjs +3 -0
- package/dist/collapsible-Bt9UYfv3.mjs +9 -0
- package/dist/command/index.mjs +5 -0
- package/dist/command-s0Yv3abE.mjs +86 -0
- package/dist/components/features/date-picker/index.d.ts +3 -0
- package/dist/components/features/date-picker/index.d.ts.map +1 -0
- package/dist/components/features/dropzone/index.d.ts +1 -0
- package/dist/components/features/dropzone/index.d.ts.map +1 -1
- package/dist/date-picker/index.mjs +9 -0
- package/dist/{datum.provider-D6VMjSV0.mjs → datum.provider-B77goJgl.mjs} +1 -1
- package/dist/dialog/index.mjs +5 -0
- package/dist/dialog-DXBaT9gA.mjs +86 -0
- package/dist/dialog-bnMMf9GD.mjs +73 -0
- package/dist/dropdown/index.mjs +3 -0
- package/dist/dropdown-DtSa_lqc.mjs +112 -0
- package/dist/dropzone/index.mjs +5 -0
- package/dist/dropzone-BkOnwrS4.mjs +221 -0
- package/dist/empty-content/index.mjs +3 -0
- package/dist/empty-content-BM9rzI13.mjs +196 -0
- package/dist/exports/map.d.ts +3 -0
- package/dist/exports/map.d.ts.map +1 -0
- package/dist/form/index.mjs +146 -0
- package/dist/grid/index.mjs +3 -0
- package/dist/hooks/index.mjs +2 -3
- package/dist/hover-card/index.mjs +4 -0
- package/dist/hover-card-CUPfFUqE.mjs +33 -0
- package/dist/icon-wrapper-9ticVbRL.mjs +14 -0
- package/dist/icons/index.mjs +3 -3
- package/dist/index.mjs +66 -8
- package/dist/input/index.mjs +5 -0
- package/dist/input-DuyjEKEW.mjs +17 -0
- package/dist/input-fzXBheCN.mjs +17 -0
- package/dist/input-group/index.mjs +7 -0
- package/dist/input-group-CPaFSTEV.mjs +80 -0
- package/dist/input-number/index.mjs +6 -0
- package/dist/input-number-9o62JHRl.mjs +106 -0
- package/dist/input-with-addons/index.mjs +3 -0
- package/dist/input-with-addons-BQn7KCTU.mjs +30 -0
- package/dist/label/index.mjs +4 -0
- package/dist/label-_ste_Re3.mjs +44 -0
- package/dist/link-button-TIF2Zdrk.mjs +36 -0
- package/dist/loader-overlay/index.mjs +3 -0
- package/dist/loader-overlay-DUaQSZQP.mjs +17 -0
- package/dist/map/index.mjs +13 -0
- package/dist/map-Df8QMcX0.mjs +1094 -0
- package/dist/more-actions/index.mjs +5 -0
- package/dist/more-actions-Ch1f6Mh3.mjs +54 -0
- package/dist/nprogress/index.mjs +32 -0
- package/dist/page-title/index.mjs +3 -0
- package/dist/page-title-BJuo81rT.mjs +26 -0
- package/dist/popover/index.mjs +4 -0
- package/dist/popover-SQlKSz6L.mjs +36 -0
- package/dist/provider/index.mjs +4 -0
- package/dist/radio-group/index.mjs +4 -0
- package/dist/radio-group-Oshv0b-U.mjs +49 -0
- package/dist/select/index.mjs +4 -0
- package/dist/select-DVlEzD2W.mjs +166 -0
- package/dist/separator/index.mjs +4 -0
- package/dist/separator-T2ppyD-8.mjs +18 -0
- package/dist/sheet/index.mjs +5 -0
- package/dist/sheet-BKiCwtNO.mjs +45 -0
- package/dist/sheet-CtnP6gTD.mjs +77 -0
- package/dist/sidebar/index.mjs +11 -0
- package/dist/sidebar-DfqezV8t.mjs +945 -0
- package/dist/skeleton/index.mjs +4 -0
- package/dist/skeleton-vzbxA-DQ.mjs +13 -0
- package/dist/spinner/index.mjs +4 -0
- package/dist/spinner-BE7k2bAD.mjs +16 -0
- package/dist/{icon-wrapper-BgPkifId.mjs → spinner.icon-Bg8zgGh0.mjs} +1 -12
- package/dist/stepper/index.mjs +5 -0
- package/dist/stepper-SWB-u_nM.mjs +323 -0
- package/dist/style.css +3 -0
- package/dist/switch/index.mjs +4 -0
- package/dist/switch-Calk7Gyw.mjs +32 -0
- package/dist/table/index.mjs +4 -0
- package/dist/table-CsXBcQLI.mjs +68 -0
- package/dist/tabs/index.mjs +3 -0
- package/dist/tabs-D8n-dqnw.mjs +52 -0
- package/dist/tag-input/index.mjs +5 -0
- package/dist/tag-input-Di7SDNbK.mjs +284 -0
- package/dist/task-queue/index.mjs +7 -0
- package/dist/task-queue-dropdown-DW72ikDH.mjs +1356 -0
- package/dist/textarea/index.mjs +5 -0
- package/dist/textarea-CxE3YbC7.mjs +17 -0
- package/dist/textarea-QYRcDEpK.mjs +15 -0
- package/dist/theme/index.mjs +4 -0
- package/dist/theme-script-XBouzsNR.mjs +66 -0
- package/dist/to-api-format-C2xjQUcI.mjs +1506 -0
- package/dist/toast/index.mjs +3 -0
- package/dist/tooltip/index.mjs +4 -0
- package/dist/tooltip-Dd3ActSS.mjs +74 -0
- package/dist/typography/index.mjs +3 -0
- package/dist/typography-UA7ZZvgJ.mjs +200 -0
- package/dist/use-copy-to-clipboard-ki-WoTml.mjs +31 -0
- package/dist/use-stepper-BaToCYMs.mjs +2017 -0
- package/dist/{use-copy-to-clipboard-BfrpD6G8.mjs → use-toast-mdn_CqRY.mjs} +34 -27
- package/dist/utils/index.mjs +0 -1
- package/dist/utils-Bfgoe-Gm.mjs +20 -0
- package/dist/visually-hidden/index.mjs +3 -0
- package/dist/visuallyhidden-aaTUk4Yo.mjs +7 -0
- package/package.json +208 -8
- package/dist/components/index.mjs +0 -8
- package/dist/providers/index.mjs +0 -4
- package/dist/theme-script-DHyLk25i.mjs +0 -11128
- /package/dist/{close.icon-chkXPAUC.mjs → close.icon-CMNMoXM_.mjs} +0 -0
- /package/dist/{map-leaflet-imports-OKaoesjZ.mjs → map-leaflet-imports-CdzvEnzY.mjs} +0 -0
- /package/dist/{theme.provider-DpFLwtHe.mjs → theme.provider-DgGshapa.mjs} +0 -0
- /package/dist/{use-debounce-BYB-jPeX.mjs → use-debounce-DQ1tmxOL.mjs} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { t as cn } from "./cn-DWCc1QRE.mjs";
|
|
2
|
+
import { t as cn$1 } from "./utils-Bfgoe-Gm.mjs";
|
|
3
|
+
import { CheckIcon } from "lucide-react";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
7
|
+
|
|
8
|
+
//#region ../shadcn/ui/checkbox.tsx
|
|
9
|
+
function Checkbox$1({ className, ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
|
|
11
|
+
"data-slot": "checkbox",
|
|
12
|
+
className: cn$1("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
13
|
+
...props,
|
|
14
|
+
children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
|
|
15
|
+
"data-slot": "checkbox-indicator",
|
|
16
|
+
className: "flex items-center justify-center text-current transition-none",
|
|
17
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/components/base/checkbox/checkbox.tsx
|
|
24
|
+
function Checkbox({ ref, className, ...props }) {
|
|
25
|
+
return /* @__PURE__ */ jsx(Checkbox$1, {
|
|
26
|
+
ref,
|
|
27
|
+
className: cn(className),
|
|
28
|
+
...props
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
Checkbox.displayName = "Checkbox";
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { Checkbox as t };
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { t as cn } from "./cn-DWCc1QRE.mjs";
|
|
2
|
+
import React, { use, useEffect, useState } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/features/grid/constants/grid.constants.ts
|
|
6
|
+
const GRID_BREAKPOINTS = {
|
|
7
|
+
xs: 480,
|
|
8
|
+
sm: 576,
|
|
9
|
+
md: 768,
|
|
10
|
+
lg: 992,
|
|
11
|
+
xl: 1200,
|
|
12
|
+
xxl: 1600
|
|
13
|
+
};
|
|
14
|
+
const GRID_COLUMNS = 24;
|
|
15
|
+
const GRID_PREFIX = "grid";
|
|
16
|
+
const RESPONSIVE_ARRAY = [
|
|
17
|
+
"xxl",
|
|
18
|
+
"xl",
|
|
19
|
+
"lg",
|
|
20
|
+
"md",
|
|
21
|
+
"sm",
|
|
22
|
+
"xs"
|
|
23
|
+
];
|
|
24
|
+
const RESPONSIVE_MAP = {
|
|
25
|
+
xs: "(max-width: 575px)",
|
|
26
|
+
sm: "(min-width: 576px)",
|
|
27
|
+
md: "(min-width: 768px)",
|
|
28
|
+
lg: "(min-width: 992px)",
|
|
29
|
+
xl: "(min-width: 1200px)",
|
|
30
|
+
xxl: "(min-width: 1600px)"
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/components/features/grid/utils/responsive.ts
|
|
35
|
+
function registerMediaQuery(query, callback) {
|
|
36
|
+
const mediaQuery = window.matchMedia(query);
|
|
37
|
+
const handleChange = (event) => {
|
|
38
|
+
if (event.matches) callback.match();
|
|
39
|
+
else callback.unmatch();
|
|
40
|
+
};
|
|
41
|
+
if (mediaQuery.matches) callback.match();
|
|
42
|
+
mediaQuery.addEventListener("change", handleChange);
|
|
43
|
+
return () => {
|
|
44
|
+
mediaQuery.removeEventListener("change", handleChange);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function getGutter(gutter = 0, screens) {
|
|
48
|
+
const results = [0, 0];
|
|
49
|
+
(Array.isArray(gutter) ? gutter.slice(0, 2) : [gutter, 0]).forEach((g, index) => {
|
|
50
|
+
if (typeof g === "object") for (let i = 0; i < RESPONSIVE_ARRAY.length; i++) {
|
|
51
|
+
const breakpoint = RESPONSIVE_ARRAY[i];
|
|
52
|
+
if (screens[breakpoint] && g[breakpoint] !== void 0) {
|
|
53
|
+
results[index] = g[breakpoint];
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else results[index] = g || 0;
|
|
58
|
+
});
|
|
59
|
+
return results;
|
|
60
|
+
}
|
|
61
|
+
function getResponsiveValue(value, screens) {
|
|
62
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
63
|
+
const responsiveValue = value;
|
|
64
|
+
for (let i = 0; i < RESPONSIVE_ARRAY.length; i++) {
|
|
65
|
+
const breakpoint = RESPONSIVE_ARRAY[i];
|
|
66
|
+
if (screens[breakpoint] && responsiveValue[breakpoint] !== void 0) return responsiveValue[breakpoint];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return value;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/components/features/grid/components/row.tsx
|
|
74
|
+
const RowContext = React.createContext(null);
|
|
75
|
+
const Row = ({ type, align, justify, className, style, children, gutter = 0, prefixCls = GRID_PREFIX, ...rest }) => {
|
|
76
|
+
const [screens, setScreens] = useState({
|
|
77
|
+
xs: true,
|
|
78
|
+
sm: true,
|
|
79
|
+
md: true,
|
|
80
|
+
lg: true,
|
|
81
|
+
xl: true,
|
|
82
|
+
xxl: true
|
|
83
|
+
});
|
|
84
|
+
const [unRegisters, setUnRegisters] = useState([]);
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
if (typeof gutter === "object" && !Array.isArray(gutter)) setUnRegisters(Object.keys(RESPONSIVE_MAP).map((screen) => registerMediaQuery(RESPONSIVE_MAP[screen], {
|
|
87
|
+
match: () => {
|
|
88
|
+
setScreens((prevState) => ({
|
|
89
|
+
...prevState,
|
|
90
|
+
[screen]: true
|
|
91
|
+
}));
|
|
92
|
+
},
|
|
93
|
+
unmatch: () => {
|
|
94
|
+
setScreens((prevState) => ({
|
|
95
|
+
...prevState,
|
|
96
|
+
[screen]: false
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
})));
|
|
100
|
+
return () => {
|
|
101
|
+
unRegisters.forEach((unRegister) => unRegister());
|
|
102
|
+
};
|
|
103
|
+
}, [gutter]);
|
|
104
|
+
const gutters = getGutter(gutter, screens);
|
|
105
|
+
const prefix = `${prefixCls}-row`;
|
|
106
|
+
const classes = cn({
|
|
107
|
+
[prefix]: type !== "flex",
|
|
108
|
+
[`${prefix}-${type}`]: type,
|
|
109
|
+
[`${prefix}-${type}-${justify}`]: type && justify,
|
|
110
|
+
[`${prefix}-${type}-${align}`]: type && align
|
|
111
|
+
}, className);
|
|
112
|
+
const rowStyle = {
|
|
113
|
+
...gutters[0] > 0 ? {
|
|
114
|
+
marginLeft: gutters[0] / -2,
|
|
115
|
+
marginRight: gutters[0] / -2
|
|
116
|
+
} : {},
|
|
117
|
+
...gutters[1] > 0 ? {
|
|
118
|
+
marginTop: gutters[1] / -2,
|
|
119
|
+
marginBottom: gutters[1] / -2
|
|
120
|
+
} : {},
|
|
121
|
+
...style
|
|
122
|
+
};
|
|
123
|
+
return /* @__PURE__ */ jsx(RowContext, {
|
|
124
|
+
value: { gutters },
|
|
125
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
126
|
+
...rest,
|
|
127
|
+
className: classes,
|
|
128
|
+
style: rowStyle,
|
|
129
|
+
children
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/components/features/grid/components/col.tsx
|
|
136
|
+
const Col = ({ span, order, offset, push, pull, className, prefixCls = GRID_PREFIX, style, children, ...rest }) => {
|
|
137
|
+
const context = use(RowContext);
|
|
138
|
+
const prefix = `${prefixCls}-col`;
|
|
139
|
+
let sizeClassObj = {};
|
|
140
|
+
RESPONSIVE_ARRAY.forEach((size) => {
|
|
141
|
+
let sizeProps = {};
|
|
142
|
+
const sizeValue = rest[size];
|
|
143
|
+
if (typeof sizeValue === "number") sizeProps.span = sizeValue;
|
|
144
|
+
else if (typeof sizeValue === "object") sizeProps = sizeValue || {};
|
|
145
|
+
delete rest[size];
|
|
146
|
+
sizeClassObj = {
|
|
147
|
+
...sizeClassObj,
|
|
148
|
+
[`${prefix}-${size}-${sizeProps.span}`]: sizeProps.span !== void 0,
|
|
149
|
+
[`${prefix}-${size}-order-${sizeProps.order}`]: sizeProps.order !== void 0,
|
|
150
|
+
[`${prefix}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset !== void 0,
|
|
151
|
+
[`${prefix}-${size}-push-${sizeProps.push}`]: sizeProps.push !== void 0,
|
|
152
|
+
[`${prefix}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull !== void 0
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
const classes = cn(prefix, {
|
|
156
|
+
[`${prefix}-${span}`]: span !== void 0,
|
|
157
|
+
[`${prefix}-order-${order}`]: order !== void 0,
|
|
158
|
+
[`${prefix}-offset-${offset}`]: offset !== void 0,
|
|
159
|
+
[`${prefix}-push-${push}`]: push !== void 0,
|
|
160
|
+
[`${prefix}-pull-${pull}`]: pull !== void 0,
|
|
161
|
+
...sizeClassObj
|
|
162
|
+
}, className);
|
|
163
|
+
const colStyle = { ...style };
|
|
164
|
+
if (context && context.gutters) {
|
|
165
|
+
const [horizontalGutter, verticalGutter] = context.gutters;
|
|
166
|
+
if (horizontalGutter > 0) {
|
|
167
|
+
colStyle.paddingLeft = horizontalGutter / 2;
|
|
168
|
+
colStyle.paddingRight = horizontalGutter / 2;
|
|
169
|
+
}
|
|
170
|
+
if (verticalGutter > 0) {
|
|
171
|
+
colStyle.paddingTop = verticalGutter / 2;
|
|
172
|
+
colStyle.paddingBottom = verticalGutter / 2;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return /* @__PURE__ */ jsx("div", {
|
|
176
|
+
...rest,
|
|
177
|
+
style: colStyle,
|
|
178
|
+
className: classes,
|
|
179
|
+
children
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
//#endregion
|
|
184
|
+
export { getResponsiveValue as a, GRID_COLUMNS as c, RESPONSIVE_MAP as d, getGutter as i, GRID_PREFIX as l, Row as n, registerMediaQuery as o, RowContext as r, GRID_BREAKPOINTS as s, Col as t, RESPONSIVE_ARRAY as u };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
2
|
+
|
|
3
|
+
//#region ../shadcn/ui/collapsible.tsx
|
|
4
|
+
const Collapsible = CollapsiblePrimitive.Root;
|
|
5
|
+
const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
|
|
6
|
+
const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { CollapsibleContent as n, CollapsibleTrigger as r, Collapsible as t };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import "../utils-Bfgoe-Gm.mjs";
|
|
2
|
+
import "../dialog-DXBaT9gA.mjs";
|
|
3
|
+
import { a as CommandInput, c as CommandSeparator, i as CommandGroup, l as CommandShortcut, n as CommandDialog, o as CommandItem, r as CommandEmpty, s as CommandList, t as Command } from "../command-s0Yv3abE.mjs";
|
|
4
|
+
|
|
5
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { t as cn } from "./utils-Bfgoe-Gm.mjs";
|
|
2
|
+
import { i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-DXBaT9gA.mjs";
|
|
3
|
+
import { SearchIcon } from "lucide-react";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { Command } from "cmdk";
|
|
7
|
+
|
|
8
|
+
//#region ../shadcn/ui/command.tsx
|
|
9
|
+
const Command$1 = ({ className, ...props }) => {
|
|
10
|
+
return /* @__PURE__ */ jsx(Command, {
|
|
11
|
+
"data-slot": "command",
|
|
12
|
+
className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className),
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
const CommandDialog = ({ title = "Command Palette", description = "Search for a command to run...", children, ...props }) => {
|
|
17
|
+
return /* @__PURE__ */ jsxs(Dialog, {
|
|
18
|
+
...props,
|
|
19
|
+
children: [/* @__PURE__ */ jsxs(DialogHeader, {
|
|
20
|
+
className: "sr-only",
|
|
21
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
|
|
22
|
+
}), /* @__PURE__ */ jsx(DialogContent, {
|
|
23
|
+
className: "overflow-hidden p-0",
|
|
24
|
+
children: /* @__PURE__ */ jsx(Command$1, {
|
|
25
|
+
className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",
|
|
26
|
+
children
|
|
27
|
+
})
|
|
28
|
+
})]
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
const CommandInput = ({ className, wrapperClassName, iconClassName, ...props }) => {
|
|
32
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
33
|
+
"data-slot": "command-input-wrapper",
|
|
34
|
+
className: cn("flex h-9 items-center gap-2 border-b px-3", wrapperClassName),
|
|
35
|
+
children: [/* @__PURE__ */ jsx(SearchIcon, { className: cn("size-4 shrink-0 opacity-50", iconClassName) }), /* @__PURE__ */ jsx(Command.Input, {
|
|
36
|
+
"data-slot": "command-input",
|
|
37
|
+
className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
38
|
+
...props
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const CommandList = ({ className, ...props }) => {
|
|
43
|
+
return /* @__PURE__ */ jsx(Command.List, {
|
|
44
|
+
"data-slot": "command-list",
|
|
45
|
+
className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className),
|
|
46
|
+
...props
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const CommandEmpty = ({ ...props }) => {
|
|
50
|
+
return /* @__PURE__ */ jsx(Command.Empty, {
|
|
51
|
+
"data-slot": "command-empty",
|
|
52
|
+
className: "py-6 text-center text-sm",
|
|
53
|
+
...props
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const CommandGroup = ({ className, ...props }) => {
|
|
57
|
+
return /* @__PURE__ */ jsx(Command.Group, {
|
|
58
|
+
"data-slot": "command-group",
|
|
59
|
+
className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className),
|
|
60
|
+
...props
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
const CommandSeparator = ({ className, ...props }) => {
|
|
64
|
+
return /* @__PURE__ */ jsx(Command.Separator, {
|
|
65
|
+
"data-slot": "command-separator",
|
|
66
|
+
className: cn("bg-border -mx-1 h-px", className),
|
|
67
|
+
...props
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const CommandItem = ({ className, ...props }) => {
|
|
71
|
+
return /* @__PURE__ */ jsx(Command.Item, {
|
|
72
|
+
"data-slot": "command-item",
|
|
73
|
+
className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
74
|
+
...props
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const CommandShortcut = ({ className, ...props }) => {
|
|
78
|
+
return /* @__PURE__ */ jsx("span", {
|
|
79
|
+
"data-slot": "command-shortcut",
|
|
80
|
+
className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
|
|
81
|
+
...props
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//#endregion
|
|
86
|
+
export { CommandInput as a, CommandSeparator as c, CommandGroup as i, CommandShortcut as l, CommandDialog as n, CommandItem as o, CommandEmpty as r, CommandList as s, Command$1 as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/date-picker/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/dropzone/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/dropzone/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE1E,YAAY,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "../utils-Bfgoe-Gm.mjs";
|
|
2
|
+
import "../separator-T2ppyD-8.mjs";
|
|
3
|
+
import "../button-AzpnV-WB.mjs";
|
|
4
|
+
import "../input-DuyjEKEW.mjs";
|
|
5
|
+
import "../popover-SQlKSz6L.mjs";
|
|
6
|
+
import "../select-DVlEzD2W.mjs";
|
|
7
|
+
import { C as utcToLocalInputString, S as utcStringToZonedDate, T as CalendarDatePicker, _ as getBrowserTimezone, a as formatTimeRangeDisplay, b as getTimezoneOffset, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as formatUtcForDisplay, h as formatTimezoneLabel, i as formatSingleTimeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as TimeRangePicker, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatDateForInput, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as getDefaultTimezoneOptions, w as zonedDateToUtcString, x as localInputStringToUtc, y as getShortTimezoneDisplay } from "../to-api-format-C2xjQUcI.mjs";
|
|
8
|
+
|
|
9
|
+
export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, CalendarDatePicker, DEFAULT_PRESETS, QuickRangesPanel, TimeRangePicker, TimezoneSelector, createTimezoneOption, formatDateForInput, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, getBrowserTimezone, getDefaultPreset, getDefaultTimezoneOptions, getPresetByKey, getPresetByShortcut, getPresetRange, getShortTimezoneDisplay, getTimezoneOffset, localInputStringToUtc, toApiTimeRange, utcStringToZonedDate, utcToLocalInputString, zonedDateToUtcString };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { t as cn } from "./utils-Bfgoe-Gm.mjs";
|
|
2
|
+
import { XIcon } from "lucide-react";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
6
|
+
|
|
7
|
+
//#region ../shadcn/ui/dialog.tsx
|
|
8
|
+
const Dialog = ({ ...props }) => {
|
|
9
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Root, {
|
|
10
|
+
"data-slot": "dialog",
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
const DialogTrigger = ({ ...props }) => {
|
|
15
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, {
|
|
16
|
+
"data-slot": "dialog-trigger",
|
|
17
|
+
...props
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
const DialogPortal = ({ ...props }) => {
|
|
21
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Portal, {
|
|
22
|
+
"data-slot": "dialog-portal",
|
|
23
|
+
...props
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
const DialogClose = ({ ...props }) => {
|
|
27
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Close, {
|
|
28
|
+
"data-slot": "dialog-close",
|
|
29
|
+
...props
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const DialogOverlay = ({ className, ...props }) => {
|
|
33
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
|
|
34
|
+
"data-slot": "dialog-overlay",
|
|
35
|
+
className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80", className),
|
|
36
|
+
...props
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
const DialogContent = ({ className, children, ...props }) => {
|
|
40
|
+
return /* @__PURE__ */ jsxs(DialogPortal, {
|
|
41
|
+
"data-slot": "dialog-portal",
|
|
42
|
+
children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
|
|
43
|
+
"data-slot": "dialog-content",
|
|
44
|
+
className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", className),
|
|
45
|
+
...props,
|
|
46
|
+
children: [children, /* @__PURE__ */ jsxs(DialogPrimitive.Close, {
|
|
47
|
+
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
48
|
+
children: [/* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
|
|
49
|
+
className: "sr-only",
|
|
50
|
+
children: "Close"
|
|
51
|
+
})]
|
|
52
|
+
})]
|
|
53
|
+
})]
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const DialogHeader = ({ className, ...props }) => {
|
|
57
|
+
return /* @__PURE__ */ jsx("div", {
|
|
58
|
+
"data-slot": "dialog-header",
|
|
59
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
60
|
+
...props
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
const DialogFooter = ({ className, ...props }) => {
|
|
64
|
+
return /* @__PURE__ */ jsx("div", {
|
|
65
|
+
"data-slot": "dialog-footer",
|
|
66
|
+
className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
|
|
67
|
+
...props
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const DialogTitle = ({ className, ...props }) => {
|
|
71
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
|
|
72
|
+
"data-slot": "dialog-title",
|
|
73
|
+
className: cn("text-lg leading-none font-semibold", className),
|
|
74
|
+
...props
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const DialogDescription = ({ className, ...props }) => {
|
|
78
|
+
return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
|
|
79
|
+
"data-slot": "dialog-description",
|
|
80
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
81
|
+
...props
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//#endregion
|
|
86
|
+
export { DialogFooter as a, DialogPortal as c, DialogDescription as i, DialogTitle as l, DialogClose as n, DialogHeader as o, DialogContent as r, DialogOverlay as s, Dialog as t, DialogTrigger as u };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { t as cn } from "./cn-DWCc1QRE.mjs";
|
|
2
|
+
import { a as DialogFooter, c as DialogPortal, i as DialogDescription, l as DialogTitle, n as DialogClose, s as DialogOverlay$1, t as Dialog$1, u as DialogTrigger } from "./dialog-DXBaT9gA.mjs";
|
|
3
|
+
import { t as CloseIcon } from "./close.icon-CMNMoXM_.mjs";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
7
|
+
|
|
8
|
+
//#region src/components/base/dialog/dialog.tsx
|
|
9
|
+
function Dialog({ children, ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(Dialog$1, {
|
|
11
|
+
...props,
|
|
12
|
+
children
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function DialogOverlay({ className, ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx(DialogOverlay$1, {
|
|
17
|
+
className: cn("bg-dialog-overlay/50 backdrop-blur-[2px]", className),
|
|
18
|
+
...props
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function Trigger({ children, asChild = true }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(DialogTrigger, {
|
|
23
|
+
asChild,
|
|
24
|
+
children
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function Content({ children, className }) {
|
|
28
|
+
return /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsx(DialogPrimitive.Content, {
|
|
29
|
+
className: cn("dark:bg-muted dark:border-dialog-border data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 flex max-h-[80vh] w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] flex-col gap-0 overflow-y-auto rounded-lg bg-white p-0 shadow-xl duration-200 sm:max-w-lg dark:border [&>button:last-child]:hidden", className),
|
|
30
|
+
children
|
|
31
|
+
})] });
|
|
32
|
+
}
|
|
33
|
+
function Header({ title, description, onClose, className, descriptionClassName }) {
|
|
34
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
35
|
+
className: cn("dark:bg-muted dark:border-dialog-border sticky top-0 z-50 flex shrink-0 flex-col gap-2 bg-white p-5", className),
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ jsx(DialogTitle, {
|
|
38
|
+
className: "text-base font-semibold",
|
|
39
|
+
children: title
|
|
40
|
+
}),
|
|
41
|
+
description && /* @__PURE__ */ jsx(DialogDescription, {
|
|
42
|
+
className: cn("text-sm font-normal", descriptionClassName),
|
|
43
|
+
children: description
|
|
44
|
+
}),
|
|
45
|
+
onClose && /* @__PURE__ */ jsx(DialogClose, {
|
|
46
|
+
className: "absolute top-4 right-4 cursor-pointer",
|
|
47
|
+
onClick: onClose,
|
|
48
|
+
children: /* @__PURE__ */ jsx(CloseIcon, {})
|
|
49
|
+
})
|
|
50
|
+
]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function Body({ children, className }) {
|
|
54
|
+
return /* @__PURE__ */ jsx("div", {
|
|
55
|
+
className: cn("py-5", className),
|
|
56
|
+
children
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function Footer({ children, className }) {
|
|
60
|
+
return /* @__PURE__ */ jsx(DialogFooter, {
|
|
61
|
+
className: cn("dark:bg-muted dark:border-dialog-border sticky bottom-0 z-50 shrink-0 gap-3 bg-white p-5", className),
|
|
62
|
+
children
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
Dialog.Trigger = Trigger;
|
|
66
|
+
Dialog.Content = Content;
|
|
67
|
+
Dialog.Header = Header;
|
|
68
|
+
Dialog.Body = Body;
|
|
69
|
+
Dialog.Footer = Footer;
|
|
70
|
+
Dialog.Overlay = DialogOverlay;
|
|
71
|
+
|
|
72
|
+
//#endregion
|
|
73
|
+
export { Dialog as t };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { a as DropdownMenuItem, c as DropdownMenuRadioGroup, d as DropdownMenuShortcut, f as DropdownMenuSub, h as DropdownMenuTrigger, i as DropdownMenuGroup, l as DropdownMenuRadioItem, m as DropdownMenuSubTrigger, n as DropdownMenuCheckboxItem, o as DropdownMenuLabel, p as DropdownMenuSubContent, r as DropdownMenuContent, s as DropdownMenuPortal, t as DropdownMenu, u as DropdownMenuSeparator } from "../dropdown-DtSa_lqc.mjs";
|
|
2
|
+
|
|
3
|
+
export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { t as cn } from "./cn-DWCc1QRE.mjs";
|
|
2
|
+
import { t as Icon } from "./icon-wrapper-9ticVbRL.mjs";
|
|
3
|
+
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
7
|
+
|
|
8
|
+
//#region src/components/features/dropdown/dropdown.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Datum Dropdown Menu Component
|
|
11
|
+
* Extends shadcn DropdownMenu with:
|
|
12
|
+
* - Destructive variant for DropdownMenuItem
|
|
13
|
+
*/
|
|
14
|
+
function DropdownMenu({ ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { ...props });
|
|
16
|
+
}
|
|
17
|
+
function DropdownMenuPortal({ ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { ...props });
|
|
19
|
+
}
|
|
20
|
+
function DropdownMenuTrigger({ ...props }) {
|
|
21
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { ...props });
|
|
22
|
+
}
|
|
23
|
+
function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, {
|
|
25
|
+
sideOffset,
|
|
26
|
+
className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", className),
|
|
27
|
+
...props
|
|
28
|
+
}) });
|
|
29
|
+
}
|
|
30
|
+
function DropdownMenuGroup({ ...props }) {
|
|
31
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { ...props });
|
|
32
|
+
}
|
|
33
|
+
function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, {
|
|
35
|
+
"data-inset": inset,
|
|
36
|
+
"data-variant": variant,
|
|
37
|
+
className: cn("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive-foreground data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/40 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
38
|
+
...props
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
|
|
42
|
+
return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, {
|
|
43
|
+
className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
44
|
+
checked,
|
|
45
|
+
...props,
|
|
46
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
47
|
+
className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
|
|
48
|
+
children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icon, {
|
|
49
|
+
icon: CheckIcon,
|
|
50
|
+
className: "size-4"
|
|
51
|
+
}) })
|
|
52
|
+
}), children]
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function DropdownMenuRadioGroup({ ...props }) {
|
|
56
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, { ...props });
|
|
57
|
+
}
|
|
58
|
+
function DropdownMenuRadioItem({ className, children, ...props }) {
|
|
59
|
+
return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, {
|
|
60
|
+
className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
61
|
+
...props,
|
|
62
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
63
|
+
className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
|
|
64
|
+
children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icon, {
|
|
65
|
+
icon: CircleIcon,
|
|
66
|
+
className: "size-2 fill-current"
|
|
67
|
+
}) })
|
|
68
|
+
}), children]
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
72
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, {
|
|
73
|
+
"data-inset": inset,
|
|
74
|
+
className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
|
|
75
|
+
...props
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function DropdownMenuSeparator({ className, ...props }) {
|
|
79
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, {
|
|
80
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
81
|
+
...props
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function DropdownMenuShortcut({ className, ...props }) {
|
|
85
|
+
return /* @__PURE__ */ jsx("span", {
|
|
86
|
+
className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
|
|
87
|
+
...props
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function DropdownMenuSub({ ...props }) {
|
|
91
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { ...props });
|
|
92
|
+
}
|
|
93
|
+
function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
94
|
+
return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, {
|
|
95
|
+
"data-inset": inset,
|
|
96
|
+
className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8", className),
|
|
97
|
+
...props,
|
|
98
|
+
children: [children, /* @__PURE__ */ jsx(Icon, {
|
|
99
|
+
icon: ChevronRightIcon,
|
|
100
|
+
className: "ml-auto size-4"
|
|
101
|
+
})]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function DropdownMenuSubContent({ className, ...props }) {
|
|
105
|
+
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, {
|
|
106
|
+
className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg", className),
|
|
107
|
+
...props
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
//#endregion
|
|
112
|
+
export { DropdownMenuItem as a, DropdownMenuRadioGroup as c, DropdownMenuShortcut as d, DropdownMenuSub as f, DropdownMenuTrigger as h, DropdownMenuGroup as i, DropdownMenuRadioItem as l, DropdownMenuSubTrigger as m, DropdownMenuCheckboxItem as n, DropdownMenuLabel as o, DropdownMenuSubContent as p, DropdownMenuContent as r, DropdownMenuPortal as s, DropdownMenu as t, DropdownMenuSeparator as u };
|