@onesaz/ui 0.4.0 → 0.4.2
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/index.d.ts +105 -17
- package/dist/index.js +890 -559
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -737,10 +737,10 @@ var colorClasses2 = {
|
|
|
737
737
|
inherit: "",
|
|
738
738
|
primary: "text-accent",
|
|
739
739
|
secondary: "text-muted-foreground",
|
|
740
|
-
success: "text-
|
|
741
|
-
warning: "text-
|
|
742
|
-
error: "text-
|
|
743
|
-
info: "text-
|
|
740
|
+
success: "text-success-600 dark:text-success-400",
|
|
741
|
+
warning: "text-warning-600 dark:text-warning-400",
|
|
742
|
+
error: "text-error-600 dark:text-error-400",
|
|
743
|
+
info: "text-info-600 dark:text-info-400",
|
|
744
744
|
muted: "text-muted-foreground",
|
|
745
745
|
white: "text-white",
|
|
746
746
|
dark: "text-foreground"
|
|
@@ -771,13 +771,13 @@ var verticalAlignClasses = {
|
|
|
771
771
|
baseline: "align-baseline"
|
|
772
772
|
};
|
|
773
773
|
var gradientClasses = {
|
|
774
|
-
primary: "from-
|
|
775
|
-
secondary: "from-slate-
|
|
776
|
-
info: "from-
|
|
777
|
-
success: "from-
|
|
778
|
-
warning: "from-
|
|
779
|
-
error: "from-
|
|
780
|
-
dark: "from-slate-
|
|
774
|
+
primary: "from-violet-400 to-violet-700",
|
|
775
|
+
secondary: "from-slate-400 to-slate-700",
|
|
776
|
+
info: "from-info-400 to-info-700",
|
|
777
|
+
success: "from-success-400 to-success-700",
|
|
778
|
+
warning: "from-warning-400 to-warning-700",
|
|
779
|
+
error: "from-error-400 to-error-700",
|
|
780
|
+
dark: "from-slate-600 to-slate-900"
|
|
781
781
|
};
|
|
782
782
|
var Typography = React5.forwardRef(
|
|
783
783
|
({
|
|
@@ -1834,8 +1834,34 @@ CardFooter.displayName = "CardFooter";
|
|
|
1834
1834
|
// src/components/badge.tsx
|
|
1835
1835
|
import * as React19 from "react";
|
|
1836
1836
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1837
|
+
var containedClasses = {
|
|
1838
|
+
default: "bg-accent text-accent-foreground",
|
|
1839
|
+
success: "bg-success-500 text-white dark:bg-success-600",
|
|
1840
|
+
warning: "bg-warning-500 text-white dark:bg-warning-600",
|
|
1841
|
+
error: "bg-error-500 text-white dark:bg-error-600",
|
|
1842
|
+
destructive: "bg-destructive text-destructive-foreground"
|
|
1843
|
+
};
|
|
1844
|
+
var outlinedClasses = {
|
|
1845
|
+
default: "border border-accent text-accent",
|
|
1846
|
+
success: "border border-success-500 text-success-600 dark:text-success-400",
|
|
1847
|
+
warning: "border border-warning-500 text-warning-600 dark:text-warning-400",
|
|
1848
|
+
error: "border border-error-500 text-error-600 dark:text-error-400",
|
|
1849
|
+
destructive: "border border-destructive text-destructive"
|
|
1850
|
+
};
|
|
1851
|
+
var textClasses = {
|
|
1852
|
+
default: "text-accent",
|
|
1853
|
+
success: "text-success-600 dark:text-success-400",
|
|
1854
|
+
warning: "text-warning-600 dark:text-warning-400",
|
|
1855
|
+
error: "text-error-600 dark:text-error-400",
|
|
1856
|
+
destructive: "text-destructive"
|
|
1857
|
+
};
|
|
1858
|
+
var variantMap = {
|
|
1859
|
+
contained: containedClasses,
|
|
1860
|
+
outlined: outlinedClasses,
|
|
1861
|
+
text: textClasses
|
|
1862
|
+
};
|
|
1837
1863
|
var Badge = React19.forwardRef(
|
|
1838
|
-
({ className,
|
|
1864
|
+
({ className, color = "default", variant = "contained", ...props }, ref) => {
|
|
1839
1865
|
return /* @__PURE__ */ jsx19(
|
|
1840
1866
|
"div",
|
|
1841
1867
|
{
|
|
@@ -1843,15 +1869,7 @@ var Badge = React19.forwardRef(
|
|
|
1843
1869
|
className: cn(
|
|
1844
1870
|
"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors",
|
|
1845
1871
|
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
1846
|
-
|
|
1847
|
-
"border-transparent bg-accent text-accent-foreground": variant === "default",
|
|
1848
|
-
"border-transparent bg-muted text-foreground": variant === "secondary",
|
|
1849
|
-
"border-transparent bg-destructive text-destructive-foreground": variant === "destructive",
|
|
1850
|
-
"border border-border text-foreground": variant === "outline",
|
|
1851
|
-
"border border-green-300 bg-green-100 text-green-800": variant === "success",
|
|
1852
|
-
"border border-yellow-300 bg-yellow-100 text-yellow-800": variant === "warning",
|
|
1853
|
-
"border border-blue-300 bg-blue-100 text-blue-800": variant === "info"
|
|
1854
|
-
},
|
|
1872
|
+
(variantMap[variant] ?? variantMap.contained)[color] ?? "",
|
|
1855
1873
|
className
|
|
1856
1874
|
),
|
|
1857
1875
|
...props
|
|
@@ -1864,28 +1882,51 @@ Badge.displayName = "Badge";
|
|
|
1864
1882
|
// src/components/chip.tsx
|
|
1865
1883
|
import * as React20 from "react";
|
|
1866
1884
|
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1867
|
-
var
|
|
1868
|
-
default: "bg-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1885
|
+
var filledClasses = {
|
|
1886
|
+
default: "bg-accent text-accent-foreground",
|
|
1887
|
+
success: "bg-success-500 text-white dark:bg-success-600",
|
|
1888
|
+
warning: "bg-warning-500 text-white dark:bg-warning-600",
|
|
1889
|
+
error: "bg-error-500 text-white dark:bg-error-600",
|
|
1890
|
+
destructive: "bg-destructive text-destructive-foreground"
|
|
1891
|
+
};
|
|
1892
|
+
var filledHoverClasses = {
|
|
1893
|
+
default: "hover:bg-accent-hover",
|
|
1894
|
+
success: "hover:bg-success-600 dark:hover:bg-success-500",
|
|
1895
|
+
warning: "hover:bg-warning-600 dark:hover:bg-warning-500",
|
|
1896
|
+
error: "hover:bg-error-600 dark:hover:bg-error-500",
|
|
1897
|
+
destructive: "hover:bg-destructive/90"
|
|
1898
|
+
};
|
|
1899
|
+
var outlinedClasses2 = {
|
|
1900
|
+
default: "border-accent text-accent",
|
|
1901
|
+
success: "border-success-500 text-success-600 dark:border-success-400 dark:text-success-400",
|
|
1902
|
+
warning: "border-warning-500 text-warning-600 dark:border-warning-400 dark:text-warning-400",
|
|
1903
|
+
error: "border-error-500 text-error-600 dark:border-error-400 dark:text-error-400",
|
|
1904
|
+
destructive: "border-destructive text-destructive"
|
|
1875
1905
|
};
|
|
1876
|
-
var
|
|
1877
|
-
default: "
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
error: "border-red-500 text-red-700",
|
|
1883
|
-
info: "border-blue-500 text-blue-700"
|
|
1906
|
+
var outlinedHoverClasses = {
|
|
1907
|
+
default: "hover:bg-accent/10",
|
|
1908
|
+
success: "hover:bg-success-500/10",
|
|
1909
|
+
warning: "hover:bg-warning-500/10",
|
|
1910
|
+
error: "hover:bg-error-500/10",
|
|
1911
|
+
destructive: "hover:bg-destructive/10"
|
|
1884
1912
|
};
|
|
1885
1913
|
var sizeClasses3 = {
|
|
1886
|
-
small: "h-6 text-xs px-2",
|
|
1887
|
-
medium: "h-8 text-sm px-3"
|
|
1914
|
+
small: "h-6 text-xs px-2 gap-1",
|
|
1915
|
+
medium: "h-8 text-sm px-3 gap-1.5"
|
|
1888
1916
|
};
|
|
1917
|
+
var iconSizeClasses = {
|
|
1918
|
+
small: "[&>svg]:h-3 [&>svg]:w-3",
|
|
1919
|
+
medium: "[&>svg]:h-4 [&>svg]:w-4"
|
|
1920
|
+
};
|
|
1921
|
+
var avatarSizeClasses = {
|
|
1922
|
+
small: "[&>*]:h-4 [&>*]:w-4",
|
|
1923
|
+
medium: "[&>*]:h-5 [&>*]:w-5"
|
|
1924
|
+
};
|
|
1925
|
+
var deleteBtnSizeClasses = {
|
|
1926
|
+
small: "h-3.5 w-3.5",
|
|
1927
|
+
medium: "h-4 w-4"
|
|
1928
|
+
};
|
|
1929
|
+
var DefaultDeleteIcon = ({ size }) => /* @__PURE__ */ jsx20("svg", { viewBox: "0 0 20 20", fill: "currentColor", className: deleteBtnSizeClasses[size], children: /* @__PURE__ */ jsx20("path", { d: "M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z" }) });
|
|
1889
1930
|
var Chip = React20.forwardRef(
|
|
1890
1931
|
({
|
|
1891
1932
|
className,
|
|
@@ -1899,58 +1940,74 @@ var Chip = React20.forwardRef(
|
|
|
1899
1940
|
deleteIcon,
|
|
1900
1941
|
clickable = false,
|
|
1901
1942
|
disabled = false,
|
|
1943
|
+
href,
|
|
1944
|
+
component,
|
|
1902
1945
|
children,
|
|
1903
1946
|
onClick,
|
|
1947
|
+
onKeyDown,
|
|
1904
1948
|
...props
|
|
1905
1949
|
}, ref) => {
|
|
1906
|
-
const isClickable = clickable || !!onClick;
|
|
1907
1950
|
const content = label ?? children;
|
|
1951
|
+
const isClickable = clickable || !!onClick || !!href;
|
|
1952
|
+
const Component = component ?? (href ? "a" : "div");
|
|
1953
|
+
const colorClass = variant === "filled" ? filledClasses[color] ?? filledClasses.default : outlinedClasses2[color] ?? outlinedClasses2.default;
|
|
1954
|
+
const hoverClass = isClickable && !disabled ? variant === "filled" ? filledHoverClasses[color] ?? filledHoverClasses.default : outlinedHoverClasses[color] ?? outlinedHoverClasses.default : "";
|
|
1955
|
+
const handleKeyDown = (e) => {
|
|
1956
|
+
if (!disabled) {
|
|
1957
|
+
if (isClickable && (e.key === "Enter" || e.key === " ")) {
|
|
1958
|
+
e.preventDefault();
|
|
1959
|
+
e.currentTarget.click();
|
|
1960
|
+
}
|
|
1961
|
+
if (onDelete && (e.key === "Delete" || e.key === "Backspace")) {
|
|
1962
|
+
e.preventDefault();
|
|
1963
|
+
onDelete(e);
|
|
1964
|
+
}
|
|
1965
|
+
}
|
|
1966
|
+
onKeyDown?.(e);
|
|
1967
|
+
};
|
|
1908
1968
|
return /* @__PURE__ */ jsxs9(
|
|
1909
|
-
|
|
1969
|
+
Component,
|
|
1910
1970
|
{
|
|
1911
1971
|
ref,
|
|
1972
|
+
href,
|
|
1912
1973
|
role: isClickable ? "button" : void 0,
|
|
1913
|
-
tabIndex: isClickable && !disabled ? 0 : void 0,
|
|
1974
|
+
tabIndex: isClickable && !disabled ? 0 : onDelete && !disabled ? 0 : void 0,
|
|
1975
|
+
"aria-disabled": disabled || void 0,
|
|
1914
1976
|
onClick: disabled ? void 0 : onClick,
|
|
1977
|
+
onKeyDown: handleKeyDown,
|
|
1915
1978
|
className: cn(
|
|
1916
|
-
"inline-flex items-center rounded-full font-medium transition-colors",
|
|
1917
|
-
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1",
|
|
1979
|
+
"inline-flex items-center rounded-full font-medium transition-colors select-none",
|
|
1980
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
|
|
1918
1981
|
sizeClasses3[size],
|
|
1919
|
-
variant === "
|
|
1920
|
-
|
|
1982
|
+
variant === "outlined" && "border bg-transparent",
|
|
1983
|
+
colorClass,
|
|
1984
|
+
hoverClass,
|
|
1985
|
+
isClickable && !disabled ? "cursor-pointer" : "cursor-default",
|
|
1921
1986
|
disabled && "pointer-events-none opacity-50",
|
|
1922
1987
|
className
|
|
1923
1988
|
),
|
|
1924
1989
|
...props,
|
|
1925
1990
|
children: [
|
|
1926
|
-
avatar && /* @__PURE__ */ jsx20("span", { className: "
|
|
1927
|
-
!avatar && icon && /* @__PURE__ */ jsx20("span", { className: "
|
|
1991
|
+
avatar && /* @__PURE__ */ jsx20("span", { className: cn("-ml-1 flex shrink-0 items-center justify-center [&>*]:rounded-full", avatarSizeClasses[size]), children: avatar }),
|
|
1992
|
+
!avatar && icon && /* @__PURE__ */ jsx20("span", { className: cn("-ml-0.5 flex shrink-0 items-center justify-center", iconSizeClasses[size]), children: icon }),
|
|
1928
1993
|
/* @__PURE__ */ jsx20("span", { className: "truncate", children: content }),
|
|
1929
1994
|
onDelete && /* @__PURE__ */ jsx20(
|
|
1930
1995
|
"button",
|
|
1931
1996
|
{
|
|
1932
1997
|
type: "button",
|
|
1998
|
+
tabIndex: -1,
|
|
1933
1999
|
onClick: (e) => {
|
|
1934
2000
|
e.stopPropagation();
|
|
1935
2001
|
if (!disabled) onDelete(e);
|
|
1936
2002
|
},
|
|
1937
2003
|
className: cn(
|
|
1938
|
-
"
|
|
1939
|
-
"
|
|
2004
|
+
"-mr-1 flex shrink-0 items-center justify-center rounded-full",
|
|
2005
|
+
"opacity-60 hover:opacity-100 focus:outline-none transition-opacity",
|
|
1940
2006
|
disabled && "pointer-events-none"
|
|
1941
2007
|
),
|
|
1942
2008
|
disabled,
|
|
1943
2009
|
"aria-label": "Remove",
|
|
1944
|
-
children: deleteIcon ?? /* @__PURE__ */ jsx20(
|
|
1945
|
-
"svg",
|
|
1946
|
-
{
|
|
1947
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1948
|
-
viewBox: "0 0 20 20",
|
|
1949
|
-
fill: "currentColor",
|
|
1950
|
-
className: "h-3 w-3",
|
|
1951
|
-
children: /* @__PURE__ */ jsx20("path", { d: "M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z" })
|
|
1952
|
-
}
|
|
1953
|
-
)
|
|
2010
|
+
children: deleteIcon ?? /* @__PURE__ */ jsx20(DefaultDeleteIcon, { size })
|
|
1954
2011
|
}
|
|
1955
2012
|
)
|
|
1956
2013
|
]
|
|
@@ -2399,20 +2456,20 @@ var variantStyles = {
|
|
|
2399
2456
|
border: ""
|
|
2400
2457
|
},
|
|
2401
2458
|
destructive: {
|
|
2402
|
-
icon: "text-
|
|
2403
|
-
border: "border-l-4 border-l-
|
|
2459
|
+
icon: "text-error-500",
|
|
2460
|
+
border: "border-l-4 border-l-error-500"
|
|
2404
2461
|
},
|
|
2405
2462
|
success: {
|
|
2406
|
-
icon: "text-
|
|
2407
|
-
border: "border-l-4 border-l-
|
|
2463
|
+
icon: "text-success-500",
|
|
2464
|
+
border: "border-l-4 border-l-success-500"
|
|
2408
2465
|
},
|
|
2409
2466
|
warning: {
|
|
2410
|
-
icon: "text-
|
|
2411
|
-
border: "border-l-4 border-l-
|
|
2467
|
+
icon: "text-warning-500",
|
|
2468
|
+
border: "border-l-4 border-l-warning-500"
|
|
2412
2469
|
},
|
|
2413
2470
|
info: {
|
|
2414
|
-
icon: "text-
|
|
2415
|
-
border: "border-l-4 border-l-
|
|
2471
|
+
icon: "text-info-500",
|
|
2472
|
+
border: "border-l-4 border-l-info-500"
|
|
2416
2473
|
}
|
|
2417
2474
|
};
|
|
2418
2475
|
var VariantIcons = {
|
|
@@ -2578,217 +2635,170 @@ Spinner.displayName = "Spinner";
|
|
|
2578
2635
|
// src/components/alert.tsx
|
|
2579
2636
|
import * as React27 from "react";
|
|
2580
2637
|
import { jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2581
|
-
var
|
|
2638
|
+
var variantConfig = {
|
|
2582
2639
|
default: {
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
},
|
|
2587
|
-
info: {
|
|
2588
|
-
iconBg: "bg-blue-600",
|
|
2589
|
-
progress: "bg-blue-600",
|
|
2590
|
-
textColor: "text-blue-600"
|
|
2640
|
+
root: "bg-accent/10",
|
|
2641
|
+
strip: "bg-accent",
|
|
2642
|
+
iconColor: "text-accent"
|
|
2591
2643
|
},
|
|
2592
2644
|
success: {
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2645
|
+
root: "bg-success-50",
|
|
2646
|
+
strip: "bg-success-500",
|
|
2647
|
+
iconColor: "text-success-600"
|
|
2596
2648
|
},
|
|
2597
2649
|
warning: {
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2650
|
+
root: "bg-warning-50",
|
|
2651
|
+
strip: "bg-warning-500",
|
|
2652
|
+
iconColor: "text-warning-600"
|
|
2601
2653
|
},
|
|
2602
2654
|
error: {
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
},
|
|
2607
|
-
destructive: {
|
|
2608
|
-
iconBg: "bg-rose-700",
|
|
2609
|
-
progress: "bg-rose-700",
|
|
2610
|
-
textColor: "text-rose-700"
|
|
2655
|
+
root: "bg-error-50",
|
|
2656
|
+
strip: "bg-error-500",
|
|
2657
|
+
iconColor: "text-error-600"
|
|
2611
2658
|
}
|
|
2612
2659
|
};
|
|
2613
|
-
var
|
|
2660
|
+
var InfoIcon = () => /* @__PURE__ */ jsxs14(
|
|
2614
2661
|
"svg",
|
|
2615
2662
|
{
|
|
2616
|
-
className,
|
|
2617
2663
|
viewBox: "0 0 24 24",
|
|
2618
2664
|
fill: "none",
|
|
2619
2665
|
stroke: "currentColor",
|
|
2620
2666
|
strokeWidth: "2",
|
|
2621
|
-
|
|
2667
|
+
strokeLinecap: "round",
|
|
2668
|
+
strokeLinejoin: "round",
|
|
2669
|
+
className: "h-4 w-4 shrink-0 mt-px",
|
|
2670
|
+
children: [
|
|
2671
|
+
/* @__PURE__ */ jsx27("circle", { cx: "12", cy: "12", r: "10" }),
|
|
2672
|
+
/* @__PURE__ */ jsx27("path", { d: "M12 16v-4M12 8h.01" })
|
|
2673
|
+
]
|
|
2622
2674
|
}
|
|
2623
2675
|
);
|
|
2624
|
-
var
|
|
2676
|
+
var CheckIcon2 = () => /* @__PURE__ */ jsxs14(
|
|
2625
2677
|
"svg",
|
|
2626
2678
|
{
|
|
2627
|
-
className,
|
|
2628
2679
|
viewBox: "0 0 24 24",
|
|
2629
2680
|
fill: "none",
|
|
2630
2681
|
stroke: "currentColor",
|
|
2631
2682
|
strokeWidth: "2",
|
|
2683
|
+
strokeLinecap: "round",
|
|
2684
|
+
strokeLinejoin: "round",
|
|
2685
|
+
className: "h-4 w-4 shrink-0 mt-px",
|
|
2632
2686
|
children: [
|
|
2633
|
-
/* @__PURE__ */ jsx27("
|
|
2634
|
-
/* @__PURE__ */ jsx27("path", { d: "
|
|
2687
|
+
/* @__PURE__ */ jsx27("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }),
|
|
2688
|
+
/* @__PURE__ */ jsx27("path", { d: "m9 11 3 3L22 4" })
|
|
2635
2689
|
]
|
|
2636
2690
|
}
|
|
2637
2691
|
);
|
|
2638
|
-
var WarningIcon = (
|
|
2692
|
+
var WarningIcon = () => /* @__PURE__ */ jsxs14(
|
|
2639
2693
|
"svg",
|
|
2640
2694
|
{
|
|
2641
|
-
className,
|
|
2642
2695
|
viewBox: "0 0 24 24",
|
|
2643
2696
|
fill: "none",
|
|
2644
2697
|
stroke: "currentColor",
|
|
2645
2698
|
strokeWidth: "2",
|
|
2699
|
+
strokeLinecap: "round",
|
|
2700
|
+
strokeLinejoin: "round",
|
|
2701
|
+
className: "h-4 w-4 shrink-0 mt-px",
|
|
2646
2702
|
children: [
|
|
2647
2703
|
/* @__PURE__ */ jsx27("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }),
|
|
2648
2704
|
/* @__PURE__ */ jsx27("path", { d: "M12 9v4M12 17h.01" })
|
|
2649
2705
|
]
|
|
2650
2706
|
}
|
|
2651
2707
|
);
|
|
2652
|
-
var
|
|
2708
|
+
var ErrorIcon = () => /* @__PURE__ */ jsxs14(
|
|
2653
2709
|
"svg",
|
|
2654
2710
|
{
|
|
2655
|
-
className,
|
|
2656
2711
|
viewBox: "0 0 24 24",
|
|
2657
2712
|
fill: "none",
|
|
2658
2713
|
stroke: "currentColor",
|
|
2659
2714
|
strokeWidth: "2",
|
|
2715
|
+
strokeLinecap: "round",
|
|
2716
|
+
strokeLinejoin: "round",
|
|
2717
|
+
className: "h-4 w-4 shrink-0 mt-px",
|
|
2660
2718
|
children: [
|
|
2661
2719
|
/* @__PURE__ */ jsx27("circle", { cx: "12", cy: "12", r: "10" }),
|
|
2662
2720
|
/* @__PURE__ */ jsx27("path", { d: "m15 9-6 6M9 9l6 6" })
|
|
2663
2721
|
]
|
|
2664
2722
|
}
|
|
2665
2723
|
);
|
|
2666
|
-
var CloseIcon = (
|
|
2724
|
+
var CloseIcon = () => /* @__PURE__ */ jsx27(
|
|
2667
2725
|
"svg",
|
|
2668
2726
|
{
|
|
2669
|
-
className,
|
|
2670
2727
|
viewBox: "0 0 24 24",
|
|
2671
2728
|
fill: "none",
|
|
2672
2729
|
stroke: "currentColor",
|
|
2673
2730
|
strokeWidth: "2",
|
|
2731
|
+
strokeLinecap: "round",
|
|
2732
|
+
strokeLinejoin: "round",
|
|
2733
|
+
className: "h-3.5 w-3.5",
|
|
2674
2734
|
children: /* @__PURE__ */ jsx27("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
2675
2735
|
}
|
|
2676
2736
|
);
|
|
2677
|
-
var
|
|
2678
|
-
default: InfoIcon,
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
error: XCircleIcon,
|
|
2683
|
-
destructive: XCircleIcon
|
|
2737
|
+
var defaultIcons = {
|
|
2738
|
+
default: /* @__PURE__ */ jsx27(InfoIcon, {}),
|
|
2739
|
+
success: /* @__PURE__ */ jsx27(CheckIcon2, {}),
|
|
2740
|
+
warning: /* @__PURE__ */ jsx27(WarningIcon, {}),
|
|
2741
|
+
error: /* @__PURE__ */ jsx27(ErrorIcon, {})
|
|
2684
2742
|
};
|
|
2685
|
-
var Alert = (
|
|
2686
|
-
variant = "default",
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2743
|
+
var Alert = React27.forwardRef(
|
|
2744
|
+
({ className, variant = "default", onClose, icon, children, ...props }, ref) => {
|
|
2745
|
+
const cfg = variantConfig[variant];
|
|
2746
|
+
const resolvedIcon = icon === null ? null : icon ?? defaultIcons[variant];
|
|
2747
|
+
return /* @__PURE__ */ jsxs14(
|
|
2748
|
+
"div",
|
|
2749
|
+
{
|
|
2750
|
+
ref,
|
|
2751
|
+
role: "alert",
|
|
2752
|
+
className: cn(
|
|
2753
|
+
"relative flex gap-3 rounded-lg border border-border pl-5 pr-4 py-3 text-sm overflow-hidden",
|
|
2754
|
+
cfg.root,
|
|
2755
|
+
className
|
|
2756
|
+
),
|
|
2757
|
+
...props,
|
|
2758
|
+
children: [
|
|
2759
|
+
/* @__PURE__ */ jsx27("div", { className: cn("absolute left-0 top-0 bottom-0 w-1", cfg.strip) }),
|
|
2760
|
+
resolvedIcon && /* @__PURE__ */ jsx27("span", { className: cn("mt-0.5", cfg.iconColor), children: resolvedIcon }),
|
|
2761
|
+
/* @__PURE__ */ jsx27("div", { className: "flex-1 min-w-0", children }),
|
|
2762
|
+
onClose && /* @__PURE__ */ jsx27(
|
|
2763
|
+
"button",
|
|
2764
|
+
{
|
|
2765
|
+
type: "button",
|
|
2766
|
+
onClick: onClose,
|
|
2767
|
+
"aria-label": "Dismiss",
|
|
2768
|
+
className: "shrink-0 self-start mt-0.5 rounded text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
2769
|
+
children: /* @__PURE__ */ jsx27(CloseIcon, {})
|
|
2770
|
+
}
|
|
2771
|
+
)
|
|
2772
|
+
]
|
|
2711
2773
|
}
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
if (!visible) return null;
|
|
2720
|
-
return /* @__PURE__ */ jsxs14(
|
|
2721
|
-
"div",
|
|
2774
|
+
);
|
|
2775
|
+
}
|
|
2776
|
+
);
|
|
2777
|
+
Alert.displayName = "Alert";
|
|
2778
|
+
var AlertTitle = React27.forwardRef(
|
|
2779
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2780
|
+
"h5",
|
|
2722
2781
|
{
|
|
2723
|
-
|
|
2724
|
-
className: cn(
|
|
2725
|
-
"relative w-[380px] rounded-xl bg-background border border-border shadow-lg p-4 flex gap-4 items-start overflow-hidden",
|
|
2726
|
-
className
|
|
2727
|
-
),
|
|
2782
|
+
ref,
|
|
2783
|
+
className: cn("font-semibold leading-snug text-foreground", className),
|
|
2728
2784
|
...props,
|
|
2729
|
-
children
|
|
2730
|
-
/* @__PURE__ */ jsx27(
|
|
2731
|
-
"div",
|
|
2732
|
-
{
|
|
2733
|
-
className: cn(
|
|
2734
|
-
"flex items-center justify-center h-10 w-10 rounded-full text-white shrink-0",
|
|
2735
|
-
styles.iconBg
|
|
2736
|
-
),
|
|
2737
|
-
children: /* @__PURE__ */ jsx27(Icon2, { className: "h-5 w-5" })
|
|
2738
|
-
}
|
|
2739
|
-
),
|
|
2740
|
-
/* @__PURE__ */ jsx27("div", { className: cn("flex-1", !hasDescription && "flex items-center mt-2"), children: React27.Children.map(children, (child) => {
|
|
2741
|
-
if (React27.isValidElement(child) && child.type === AlertTitle) {
|
|
2742
|
-
return React27.cloneElement(child, {
|
|
2743
|
-
hasDescription,
|
|
2744
|
-
variant
|
|
2745
|
-
});
|
|
2746
|
-
}
|
|
2747
|
-
return child;
|
|
2748
|
-
}) }),
|
|
2749
|
-
/* @__PURE__ */ jsx27(
|
|
2750
|
-
"button",
|
|
2751
|
-
{
|
|
2752
|
-
onClick: handleClose,
|
|
2753
|
-
className: "absolute top-3 right-3 text-muted-foreground hover:text-foreground transition",
|
|
2754
|
-
children: /* @__PURE__ */ jsx27(CloseIcon, { className: "h-4 w-4" })
|
|
2755
|
-
}
|
|
2756
|
-
),
|
|
2757
|
-
duration !== null && /* @__PURE__ */ jsx27("div", { className: "absolute bottom-0 left-0 h-1 w-full bg-muted", children: /* @__PURE__ */ jsx27(
|
|
2758
|
-
"div",
|
|
2759
|
-
{
|
|
2760
|
-
className: cn("h-full transition-all", styles.progress),
|
|
2761
|
-
style: { width: `${progress}%` }
|
|
2762
|
-
}
|
|
2763
|
-
) })
|
|
2764
|
-
]
|
|
2785
|
+
children
|
|
2765
2786
|
}
|
|
2766
|
-
)
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
children,
|
|
2771
|
-
|
|
2772
|
-
variant = "default",
|
|
2773
|
-
...props
|
|
2774
|
-
}) => {
|
|
2775
|
-
const styles = variants[variant];
|
|
2776
|
-
return /* @__PURE__ */ jsx27(
|
|
2777
|
-
"h4",
|
|
2787
|
+
)
|
|
2788
|
+
);
|
|
2789
|
+
AlertTitle.displayName = "AlertTitle";
|
|
2790
|
+
var AlertDescription = React27.forwardRef(
|
|
2791
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2792
|
+
"p",
|
|
2778
2793
|
{
|
|
2779
|
-
|
|
2794
|
+
ref,
|
|
2795
|
+
className: cn("text-sm text-muted-foreground mt-0.5 leading-relaxed", className),
|
|
2780
2796
|
...props,
|
|
2781
2797
|
children
|
|
2782
2798
|
}
|
|
2783
|
-
)
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
className,
|
|
2787
|
-
children,
|
|
2788
|
-
...props
|
|
2789
|
-
}) => {
|
|
2790
|
-
return /* @__PURE__ */ jsx27("p", { className: cn("text-sm text-muted-foreground mt-1", className), ...props, children });
|
|
2791
|
-
};
|
|
2799
|
+
)
|
|
2800
|
+
);
|
|
2801
|
+
AlertDescription.displayName = "AlertDescription";
|
|
2792
2802
|
|
|
2793
2803
|
// src/components/tabs.tsx
|
|
2794
2804
|
import * as React28 from "react";
|
|
@@ -3053,11 +3063,11 @@ var linearSizeClasses = {
|
|
|
3053
3063
|
lg: "h-3"
|
|
3054
3064
|
};
|
|
3055
3065
|
var variantClasses2 = {
|
|
3056
|
-
default: "bg-
|
|
3057
|
-
success: "bg-
|
|
3058
|
-
warning: "bg-
|
|
3059
|
-
error: "bg-
|
|
3060
|
-
info: "bg-
|
|
3066
|
+
default: "bg-accent",
|
|
3067
|
+
success: "bg-success-500",
|
|
3068
|
+
warning: "bg-warning-500",
|
|
3069
|
+
error: "bg-error-500",
|
|
3070
|
+
info: "bg-info-500"
|
|
3061
3071
|
};
|
|
3062
3072
|
var LinearProgress = React30.forwardRef(
|
|
3063
3073
|
({
|
|
@@ -3109,11 +3119,11 @@ var circularSizeValues = {
|
|
|
3109
3119
|
xl: 72
|
|
3110
3120
|
};
|
|
3111
3121
|
var strokeColors = {
|
|
3112
|
-
default: "stroke-
|
|
3113
|
-
success: "stroke-
|
|
3114
|
-
warning: "stroke-
|
|
3115
|
-
error: "stroke-
|
|
3116
|
-
info: "stroke-
|
|
3122
|
+
default: "stroke-accent",
|
|
3123
|
+
success: "stroke-success-500",
|
|
3124
|
+
warning: "stroke-warning-500",
|
|
3125
|
+
error: "stroke-error-500",
|
|
3126
|
+
info: "stroke-info-500"
|
|
3117
3127
|
};
|
|
3118
3128
|
var CircularProgress = React30.forwardRef(
|
|
3119
3129
|
({
|
|
@@ -6118,10 +6128,10 @@ var colorStyles = {
|
|
|
6118
6128
|
default: "text-foreground",
|
|
6119
6129
|
muted: "text-muted-foreground",
|
|
6120
6130
|
primary: "text-primary",
|
|
6121
|
-
success: "text-
|
|
6122
|
-
warning: "text-
|
|
6123
|
-
error: "text-
|
|
6124
|
-
info: "text-
|
|
6131
|
+
success: "text-success-600 dark:text-success-400",
|
|
6132
|
+
warning: "text-warning-600 dark:text-warning-400",
|
|
6133
|
+
error: "text-error-600 dark:text-error-400",
|
|
6134
|
+
info: "text-info-600 dark:text-info-400"
|
|
6125
6135
|
};
|
|
6126
6136
|
var DataListLabel = React38.forwardRef(
|
|
6127
6137
|
({
|
|
@@ -7767,15 +7777,327 @@ var DropdownMenuShortcut = ({
|
|
|
7767
7777
|
};
|
|
7768
7778
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
7769
7779
|
|
|
7770
|
-
// src/components/
|
|
7780
|
+
// src/components/backdrop.tsx
|
|
7771
7781
|
import * as React43 from "react";
|
|
7782
|
+
import { createPortal } from "react-dom";
|
|
7783
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
7784
|
+
var Backdrop = React43.forwardRef(
|
|
7785
|
+
({
|
|
7786
|
+
open,
|
|
7787
|
+
invisible = false,
|
|
7788
|
+
transitionDuration = 225,
|
|
7789
|
+
keepMounted = false,
|
|
7790
|
+
disablePortal = false,
|
|
7791
|
+
disableScrollLock = false,
|
|
7792
|
+
className,
|
|
7793
|
+
children,
|
|
7794
|
+
onClick,
|
|
7795
|
+
...props
|
|
7796
|
+
}, ref) => {
|
|
7797
|
+
const [mounted, setMounted] = React43.useState(open);
|
|
7798
|
+
const [visible, setVisible] = React43.useState(false);
|
|
7799
|
+
React43.useEffect(() => {
|
|
7800
|
+
if (open) {
|
|
7801
|
+
setMounted(true);
|
|
7802
|
+
const raf = requestAnimationFrame(() => setVisible(true));
|
|
7803
|
+
return () => cancelAnimationFrame(raf);
|
|
7804
|
+
} else {
|
|
7805
|
+
setVisible(false);
|
|
7806
|
+
if (!keepMounted) {
|
|
7807
|
+
const t = setTimeout(() => setMounted(false), transitionDuration);
|
|
7808
|
+
return () => clearTimeout(t);
|
|
7809
|
+
}
|
|
7810
|
+
}
|
|
7811
|
+
}, [open, keepMounted, transitionDuration]);
|
|
7812
|
+
React43.useEffect(() => {
|
|
7813
|
+
if (disableScrollLock) return;
|
|
7814
|
+
if (open) {
|
|
7815
|
+
const prev = document.body.style.overflow;
|
|
7816
|
+
document.body.style.overflow = "hidden";
|
|
7817
|
+
return () => {
|
|
7818
|
+
document.body.style.overflow = prev;
|
|
7819
|
+
};
|
|
7820
|
+
}
|
|
7821
|
+
}, [open, disableScrollLock]);
|
|
7822
|
+
if (!mounted) return null;
|
|
7823
|
+
const node = /* @__PURE__ */ jsx43(
|
|
7824
|
+
"div",
|
|
7825
|
+
{
|
|
7826
|
+
ref,
|
|
7827
|
+
"aria-hidden": "true",
|
|
7828
|
+
onClick,
|
|
7829
|
+
style: { transitionDuration: `${transitionDuration}ms` },
|
|
7830
|
+
className: cn(
|
|
7831
|
+
"fixed inset-0 z-50 flex items-center justify-center transition-opacity",
|
|
7832
|
+
invisible ? "bg-transparent" : "bg-black/50",
|
|
7833
|
+
visible ? "opacity-100" : "opacity-0",
|
|
7834
|
+
!visible && "pointer-events-none",
|
|
7835
|
+
className
|
|
7836
|
+
),
|
|
7837
|
+
...props,
|
|
7838
|
+
children
|
|
7839
|
+
}
|
|
7840
|
+
);
|
|
7841
|
+
if (disablePortal || typeof document === "undefined") return node;
|
|
7842
|
+
return createPortal(node, document.body);
|
|
7843
|
+
}
|
|
7844
|
+
);
|
|
7845
|
+
Backdrop.displayName = "Backdrop";
|
|
7846
|
+
|
|
7847
|
+
// src/components/snackbar.tsx
|
|
7848
|
+
import * as React44 from "react";
|
|
7849
|
+
import { createPortal as createPortal2 } from "react-dom";
|
|
7850
|
+
import { jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
7851
|
+
var SnackbarContent = React44.forwardRef(
|
|
7852
|
+
({ className, message, action, ...props }, ref) => /* @__PURE__ */ jsxs28(
|
|
7853
|
+
"div",
|
|
7854
|
+
{
|
|
7855
|
+
ref,
|
|
7856
|
+
role: "alert",
|
|
7857
|
+
className: cn(
|
|
7858
|
+
"flex items-center gap-3 min-w-72 max-w-[568px] rounded-lg px-4 py-3 text-sm shadow-lg",
|
|
7859
|
+
"bg-foreground text-background",
|
|
7860
|
+
className
|
|
7861
|
+
),
|
|
7862
|
+
...props,
|
|
7863
|
+
children: [
|
|
7864
|
+
/* @__PURE__ */ jsx44("span", { className: "flex-1", children: message }),
|
|
7865
|
+
action && /* @__PURE__ */ jsx44("span", { className: "shrink-0", children: action })
|
|
7866
|
+
]
|
|
7867
|
+
}
|
|
7868
|
+
)
|
|
7869
|
+
);
|
|
7870
|
+
SnackbarContent.displayName = "SnackbarContent";
|
|
7871
|
+
var anchorClasses = {
|
|
7872
|
+
"top-left": "top-4 left-4",
|
|
7873
|
+
"top-center": "top-4 left-1/2 -translate-x-1/2",
|
|
7874
|
+
"top-right": "top-4 right-4",
|
|
7875
|
+
"bottom-left": "bottom-4 left-4",
|
|
7876
|
+
"bottom-center": "bottom-4 left-1/2 -translate-x-1/2",
|
|
7877
|
+
"bottom-right": "bottom-4 right-4"
|
|
7878
|
+
};
|
|
7879
|
+
var Snackbar = React44.forwardRef(
|
|
7880
|
+
({
|
|
7881
|
+
open,
|
|
7882
|
+
message,
|
|
7883
|
+
action,
|
|
7884
|
+
autoHideDuration = 6e3,
|
|
7885
|
+
onClose,
|
|
7886
|
+
anchorOrigin = { vertical: "bottom", horizontal: "left" },
|
|
7887
|
+
transitionDuration = 225,
|
|
7888
|
+
disableWindowBlurListener = false,
|
|
7889
|
+
disablePortal = false,
|
|
7890
|
+
className,
|
|
7891
|
+
children,
|
|
7892
|
+
...props
|
|
7893
|
+
}, ref) => {
|
|
7894
|
+
const [mounted, setMounted] = React44.useState(open);
|
|
7895
|
+
const [visible, setVisible] = React44.useState(false);
|
|
7896
|
+
const timer = React44.useRef(null);
|
|
7897
|
+
const posKey = `${anchorOrigin.vertical}-${anchorOrigin.horizontal}`;
|
|
7898
|
+
const position = anchorClasses[posKey] ?? anchorClasses["bottom-left"];
|
|
7899
|
+
const slideDir = anchorOrigin.vertical === "top" ? "-8px" : "8px";
|
|
7900
|
+
const clearTimer = React44.useCallback(() => {
|
|
7901
|
+
if (timer.current) clearTimeout(timer.current);
|
|
7902
|
+
}, []);
|
|
7903
|
+
const startTimer = React44.useCallback(() => {
|
|
7904
|
+
if (!autoHideDuration) return;
|
|
7905
|
+
clearTimer();
|
|
7906
|
+
timer.current = setTimeout(() => onClose?.(null, "timeout"), autoHideDuration);
|
|
7907
|
+
}, [autoHideDuration, onClose, clearTimer]);
|
|
7908
|
+
React44.useEffect(() => {
|
|
7909
|
+
if (open) {
|
|
7910
|
+
setMounted(true);
|
|
7911
|
+
const raf = requestAnimationFrame(() => setVisible(true));
|
|
7912
|
+
return () => cancelAnimationFrame(raf);
|
|
7913
|
+
} else {
|
|
7914
|
+
setVisible(false);
|
|
7915
|
+
const t = setTimeout(() => setMounted(false), transitionDuration);
|
|
7916
|
+
return () => clearTimeout(t);
|
|
7917
|
+
}
|
|
7918
|
+
}, [open, transitionDuration]);
|
|
7919
|
+
React44.useEffect(() => {
|
|
7920
|
+
if (open) {
|
|
7921
|
+
startTimer();
|
|
7922
|
+
return clearTimer;
|
|
7923
|
+
}
|
|
7924
|
+
}, [open, startTimer, clearTimer]);
|
|
7925
|
+
React44.useEffect(() => {
|
|
7926
|
+
if (disableWindowBlurListener || !open) return;
|
|
7927
|
+
window.addEventListener("blur", clearTimer);
|
|
7928
|
+
window.addEventListener("focus", startTimer);
|
|
7929
|
+
return () => {
|
|
7930
|
+
window.removeEventListener("blur", clearTimer);
|
|
7931
|
+
window.removeEventListener("focus", startTimer);
|
|
7932
|
+
};
|
|
7933
|
+
}, [open, disableWindowBlurListener, clearTimer, startTimer]);
|
|
7934
|
+
React44.useEffect(() => {
|
|
7935
|
+
if (!open) return;
|
|
7936
|
+
const onKey = (e) => {
|
|
7937
|
+
if (e.key === "Escape") {
|
|
7938
|
+
e.stopPropagation();
|
|
7939
|
+
onClose?.(e, "escapeKeyDown");
|
|
7940
|
+
}
|
|
7941
|
+
};
|
|
7942
|
+
document.addEventListener("keydown", onKey);
|
|
7943
|
+
return () => document.removeEventListener("keydown", onKey);
|
|
7944
|
+
}, [open, onClose]);
|
|
7945
|
+
if (!mounted) return null;
|
|
7946
|
+
const node = /* @__PURE__ */ jsx44(
|
|
7947
|
+
"div",
|
|
7948
|
+
{
|
|
7949
|
+
ref,
|
|
7950
|
+
className: cn("fixed z-[1400]", position, className),
|
|
7951
|
+
style: {
|
|
7952
|
+
opacity: visible ? 1 : 0,
|
|
7953
|
+
transform: visible ? "translateY(0)" : `translateY(${slideDir})`,
|
|
7954
|
+
transition: `opacity ${transitionDuration}ms ease, transform ${transitionDuration}ms ease`
|
|
7955
|
+
},
|
|
7956
|
+
onMouseEnter: clearTimer,
|
|
7957
|
+
onMouseLeave: startTimer,
|
|
7958
|
+
...props,
|
|
7959
|
+
children: children ?? /* @__PURE__ */ jsx44(SnackbarContent, { message, action })
|
|
7960
|
+
}
|
|
7961
|
+
);
|
|
7962
|
+
if (disablePortal || typeof document === "undefined") return node;
|
|
7963
|
+
return createPortal2(node, document.body);
|
|
7964
|
+
}
|
|
7965
|
+
);
|
|
7966
|
+
Snackbar.displayName = "Snackbar";
|
|
7967
|
+
function ManagedRow({ item, vertical, transitionDuration, onRemove }) {
|
|
7968
|
+
const [visible, setVisible] = React44.useState(false);
|
|
7969
|
+
const timer = React44.useRef(null);
|
|
7970
|
+
const slideDir = vertical === "top" ? "-8px" : "8px";
|
|
7971
|
+
const clearTimer = React44.useCallback(() => {
|
|
7972
|
+
if (timer.current) clearTimeout(timer.current);
|
|
7973
|
+
}, []);
|
|
7974
|
+
const startTimer = React44.useCallback(() => {
|
|
7975
|
+
if (!item.autoHideDuration) return;
|
|
7976
|
+
clearTimer();
|
|
7977
|
+
timer.current = setTimeout(() => {
|
|
7978
|
+
onRemove(item.key);
|
|
7979
|
+
item.onClose?.();
|
|
7980
|
+
}, item.autoHideDuration);
|
|
7981
|
+
}, [item, onRemove, clearTimer]);
|
|
7982
|
+
React44.useEffect(() => {
|
|
7983
|
+
const raf = requestAnimationFrame(() => setVisible(true));
|
|
7984
|
+
return () => cancelAnimationFrame(raf);
|
|
7985
|
+
}, []);
|
|
7986
|
+
React44.useEffect(() => {
|
|
7987
|
+
startTimer();
|
|
7988
|
+
return clearTimer;
|
|
7989
|
+
}, [startTimer, clearTimer]);
|
|
7990
|
+
return /* @__PURE__ */ jsx44(
|
|
7991
|
+
"div",
|
|
7992
|
+
{
|
|
7993
|
+
style: {
|
|
7994
|
+
opacity: visible ? 1 : 0,
|
|
7995
|
+
transform: visible ? "translateY(0)" : `translateY(${slideDir})`,
|
|
7996
|
+
transition: `opacity ${transitionDuration}ms ease, transform ${transitionDuration}ms ease`
|
|
7997
|
+
},
|
|
7998
|
+
onMouseEnter: clearTimer,
|
|
7999
|
+
onMouseLeave: startTimer,
|
|
8000
|
+
children: item.content
|
|
8001
|
+
}
|
|
8002
|
+
);
|
|
8003
|
+
}
|
|
8004
|
+
var SnackbarContext = React44.createContext({
|
|
8005
|
+
enqueueSnackbar: () => "",
|
|
8006
|
+
closeSnackbar: () => {
|
|
8007
|
+
}
|
|
8008
|
+
});
|
|
8009
|
+
function SnackbarProvider({
|
|
8010
|
+
children,
|
|
8011
|
+
anchorOrigin = { vertical: "bottom", horizontal: "left" },
|
|
8012
|
+
autoHideDuration = 5e3,
|
|
8013
|
+
maxSnack = 3,
|
|
8014
|
+
transitionDuration = 225
|
|
8015
|
+
}) {
|
|
8016
|
+
const [items, setItems] = React44.useState([]);
|
|
8017
|
+
const closeSnackbar = React44.useCallback((key) => {
|
|
8018
|
+
setItems((prev) => prev.filter((i) => i.key !== key));
|
|
8019
|
+
}, []);
|
|
8020
|
+
const enqueueSnackbar = React44.useCallback(
|
|
8021
|
+
(message, options = {}) => {
|
|
8022
|
+
const key = `snk-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
8023
|
+
const { variant, action, onClose, autoHideDuration: dur, anchorOrigin: anchor } = options;
|
|
8024
|
+
let content;
|
|
8025
|
+
if (variant) {
|
|
8026
|
+
content = /* @__PURE__ */ jsx44(Alert, { variant, onClose: () => {
|
|
8027
|
+
closeSnackbar(key);
|
|
8028
|
+
onClose?.();
|
|
8029
|
+
}, children: message });
|
|
8030
|
+
} else if (React44.isValidElement(message)) {
|
|
8031
|
+
content = message;
|
|
8032
|
+
} else {
|
|
8033
|
+
content = /* @__PURE__ */ jsx44(SnackbarContent, { message, action });
|
|
8034
|
+
}
|
|
8035
|
+
setItems((prev) => {
|
|
8036
|
+
const capped = prev.length >= maxSnack ? prev.slice(-(maxSnack - 1)) : prev;
|
|
8037
|
+
return [
|
|
8038
|
+
...capped,
|
|
8039
|
+
{
|
|
8040
|
+
key,
|
|
8041
|
+
content,
|
|
8042
|
+
autoHideDuration: dur !== void 0 ? dur : autoHideDuration,
|
|
8043
|
+
anchorOrigin: anchor ?? anchorOrigin,
|
|
8044
|
+
onClose
|
|
8045
|
+
}
|
|
8046
|
+
];
|
|
8047
|
+
});
|
|
8048
|
+
return key;
|
|
8049
|
+
},
|
|
8050
|
+
[autoHideDuration, anchorOrigin, maxSnack, closeSnackbar]
|
|
8051
|
+
);
|
|
8052
|
+
const groups = React44.useMemo(() => {
|
|
8053
|
+
const map = /* @__PURE__ */ new Map();
|
|
8054
|
+
items.forEach((item) => {
|
|
8055
|
+
const k = `${item.anchorOrigin.vertical}-${item.anchorOrigin.horizontal}`;
|
|
8056
|
+
map.set(k, [...map.get(k) ?? [], item]);
|
|
8057
|
+
});
|
|
8058
|
+
return map;
|
|
8059
|
+
}, [items]);
|
|
8060
|
+
return /* @__PURE__ */ jsxs28(SnackbarContext.Provider, { value: { enqueueSnackbar, closeSnackbar }, children: [
|
|
8061
|
+
children,
|
|
8062
|
+
typeof document !== "undefined" && Array.from(groups.entries()).map(([posKey, posItems]) => {
|
|
8063
|
+
const [vertical, horizontal] = posKey.split("-");
|
|
8064
|
+
return createPortal2(
|
|
8065
|
+
/* @__PURE__ */ jsx44(
|
|
8066
|
+
"div",
|
|
8067
|
+
{
|
|
8068
|
+
className: cn(
|
|
8069
|
+
"fixed z-[1400] flex gap-2 pointer-events-none",
|
|
8070
|
+
vertical === "top" ? "top-4 flex-col" : "bottom-4 flex-col-reverse",
|
|
8071
|
+
horizontal === "left" ? "left-4" : horizontal === "right" ? "right-4" : "left-1/2 -translate-x-1/2"
|
|
8072
|
+
),
|
|
8073
|
+
children: posItems.map((item) => /* @__PURE__ */ jsx44("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx44(
|
|
8074
|
+
ManagedRow,
|
|
8075
|
+
{
|
|
8076
|
+
item,
|
|
8077
|
+
vertical,
|
|
8078
|
+
transitionDuration,
|
|
8079
|
+
onRemove: closeSnackbar
|
|
8080
|
+
}
|
|
8081
|
+
) }, item.key))
|
|
8082
|
+
},
|
|
8083
|
+
posKey
|
|
8084
|
+
),
|
|
8085
|
+
document.body
|
|
8086
|
+
);
|
|
8087
|
+
})
|
|
8088
|
+
] });
|
|
8089
|
+
}
|
|
8090
|
+
var useSnackbar = () => React44.useContext(SnackbarContext);
|
|
8091
|
+
|
|
8092
|
+
// src/components/drawer.tsx
|
|
8093
|
+
import * as React45 from "react";
|
|
7772
8094
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
7773
|
-
import { jsx as
|
|
8095
|
+
import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
7774
8096
|
var Drawer = DialogPrimitive2.Root;
|
|
7775
8097
|
var DrawerTrigger = DialogPrimitive2.Trigger;
|
|
7776
8098
|
var DrawerClose = DialogPrimitive2.Close;
|
|
7777
8099
|
var DrawerPortal = DialogPrimitive2.Portal;
|
|
7778
|
-
var DrawerOverlay =
|
|
8100
|
+
var DrawerOverlay = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
7779
8101
|
DialogPrimitive2.Overlay,
|
|
7780
8102
|
{
|
|
7781
8103
|
ref,
|
|
@@ -7795,9 +8117,9 @@ var slideVariants = {
|
|
|
7795
8117
|
top: "inset-x-0 top-0 w-full data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
7796
8118
|
bottom: "inset-x-0 bottom-0 w-full data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom"
|
|
7797
8119
|
};
|
|
7798
|
-
var DrawerContent =
|
|
7799
|
-
/* @__PURE__ */
|
|
7800
|
-
/* @__PURE__ */
|
|
8120
|
+
var DrawerContent = React45.forwardRef(({ side = "right", showClose = true, className, children, ...props }, ref) => /* @__PURE__ */ jsxs29(DrawerPortal, { children: [
|
|
8121
|
+
/* @__PURE__ */ jsx45(DrawerOverlay, {}),
|
|
8122
|
+
/* @__PURE__ */ jsxs29(
|
|
7801
8123
|
DialogPrimitive2.Content,
|
|
7802
8124
|
{
|
|
7803
8125
|
ref,
|
|
@@ -7811,7 +8133,7 @@ var DrawerContent = React43.forwardRef(({ side = "right", showClose = true, clas
|
|
|
7811
8133
|
...props,
|
|
7812
8134
|
children: [
|
|
7813
8135
|
children,
|
|
7814
|
-
showClose && /* @__PURE__ */
|
|
8136
|
+
showClose && /* @__PURE__ */ jsxs29(
|
|
7815
8137
|
DrawerClose,
|
|
7816
8138
|
{
|
|
7817
8139
|
className: cn(
|
|
@@ -7821,7 +8143,7 @@ var DrawerContent = React43.forwardRef(({ side = "right", showClose = true, clas
|
|
|
7821
8143
|
"disabled:pointer-events-none"
|
|
7822
8144
|
),
|
|
7823
8145
|
children: [
|
|
7824
|
-
/* @__PURE__ */
|
|
8146
|
+
/* @__PURE__ */ jsx45(
|
|
7825
8147
|
"svg",
|
|
7826
8148
|
{
|
|
7827
8149
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -7834,10 +8156,10 @@ var DrawerContent = React43.forwardRef(({ side = "right", showClose = true, clas
|
|
|
7834
8156
|
strokeLinecap: "round",
|
|
7835
8157
|
strokeLinejoin: "round",
|
|
7836
8158
|
className: "h-4 w-4",
|
|
7837
|
-
children: /* @__PURE__ */
|
|
8159
|
+
children: /* @__PURE__ */ jsx45("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
7838
8160
|
}
|
|
7839
8161
|
),
|
|
7840
|
-
/* @__PURE__ */
|
|
8162
|
+
/* @__PURE__ */ jsx45("span", { className: "sr-only", children: "Close" })
|
|
7841
8163
|
]
|
|
7842
8164
|
}
|
|
7843
8165
|
)
|
|
@@ -7846,8 +8168,8 @@ var DrawerContent = React43.forwardRef(({ side = "right", showClose = true, clas
|
|
|
7846
8168
|
)
|
|
7847
8169
|
] }));
|
|
7848
8170
|
DrawerContent.displayName = "DrawerContent";
|
|
7849
|
-
var DrawerHeader =
|
|
7850
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
8171
|
+
var DrawerHeader = React45.forwardRef(
|
|
8172
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
7851
8173
|
"div",
|
|
7852
8174
|
{
|
|
7853
8175
|
ref,
|
|
@@ -7857,7 +8179,7 @@ var DrawerHeader = React43.forwardRef(
|
|
|
7857
8179
|
)
|
|
7858
8180
|
);
|
|
7859
8181
|
DrawerHeader.displayName = "DrawerHeader";
|
|
7860
|
-
var DrawerTitle =
|
|
8182
|
+
var DrawerTitle = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
7861
8183
|
DialogPrimitive2.Title,
|
|
7862
8184
|
{
|
|
7863
8185
|
ref,
|
|
@@ -7866,7 +8188,7 @@ var DrawerTitle = React43.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
7866
8188
|
}
|
|
7867
8189
|
));
|
|
7868
8190
|
DrawerTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
7869
|
-
var DrawerDescription =
|
|
8191
|
+
var DrawerDescription = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
7870
8192
|
DialogPrimitive2.Description,
|
|
7871
8193
|
{
|
|
7872
8194
|
ref,
|
|
@@ -7875,8 +8197,8 @@ var DrawerDescription = React43.forwardRef(({ className, ...props }, ref) => /*
|
|
|
7875
8197
|
}
|
|
7876
8198
|
));
|
|
7877
8199
|
DrawerDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
7878
|
-
var DrawerBody =
|
|
7879
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
8200
|
+
var DrawerBody = React45.forwardRef(
|
|
8201
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
7880
8202
|
"div",
|
|
7881
8203
|
{
|
|
7882
8204
|
ref,
|
|
@@ -7886,8 +8208,8 @@ var DrawerBody = React43.forwardRef(
|
|
|
7886
8208
|
)
|
|
7887
8209
|
);
|
|
7888
8210
|
DrawerBody.displayName = "DrawerBody";
|
|
7889
|
-
var DrawerFooter =
|
|
7890
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
8211
|
+
var DrawerFooter = React45.forwardRef(
|
|
8212
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
7891
8213
|
"div",
|
|
7892
8214
|
{
|
|
7893
8215
|
ref,
|
|
@@ -7913,16 +8235,16 @@ var SheetBody = DrawerBody;
|
|
|
7913
8235
|
var SheetFooter = DrawerFooter;
|
|
7914
8236
|
|
|
7915
8237
|
// src/components/topbar.tsx
|
|
7916
|
-
import * as
|
|
7917
|
-
import { Fragment as Fragment6, jsx as
|
|
8238
|
+
import * as React46 from "react";
|
|
8239
|
+
import { Fragment as Fragment6, jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
7918
8240
|
var sizeClasses5 = {
|
|
7919
8241
|
sm: "h-12",
|
|
7920
8242
|
md: "h-14",
|
|
7921
8243
|
lg: "h-16"
|
|
7922
8244
|
};
|
|
7923
|
-
var TopBar =
|
|
8245
|
+
var TopBar = React46.forwardRef(
|
|
7924
8246
|
({ className, bordered = true, sticky = false, size = "md", children, ...props }, ref) => {
|
|
7925
|
-
return /* @__PURE__ */
|
|
8247
|
+
return /* @__PURE__ */ jsx46(
|
|
7926
8248
|
"header",
|
|
7927
8249
|
{
|
|
7928
8250
|
ref,
|
|
@@ -7940,23 +8262,23 @@ var TopBar = React44.forwardRef(
|
|
|
7940
8262
|
}
|
|
7941
8263
|
);
|
|
7942
8264
|
TopBar.displayName = "TopBar";
|
|
7943
|
-
var TopBarBrand =
|
|
8265
|
+
var TopBarBrand = React46.forwardRef(
|
|
7944
8266
|
({ className, logo, name, href, children, ...props }, ref) => {
|
|
7945
|
-
const content = /* @__PURE__ */
|
|
7946
|
-
logo && /* @__PURE__ */
|
|
7947
|
-
name && /* @__PURE__ */
|
|
8267
|
+
const content = /* @__PURE__ */ jsxs30(Fragment6, { children: [
|
|
8268
|
+
logo && /* @__PURE__ */ jsx46("span", { className: "shrink-0", children: logo }),
|
|
8269
|
+
name && /* @__PURE__ */ jsx46("span", { className: "font-semibold text-lg", children: name }),
|
|
7948
8270
|
children
|
|
7949
8271
|
] });
|
|
7950
8272
|
if (href) {
|
|
7951
|
-
return /* @__PURE__ */
|
|
8273
|
+
return /* @__PURE__ */ jsx46("div", { ref, className: cn("flex items-center gap-2", className), ...props, children: /* @__PURE__ */ jsx46("a", { href, className: "flex items-center gap-2 hover:opacity-80 transition-opacity", children: content }) });
|
|
7952
8274
|
}
|
|
7953
|
-
return /* @__PURE__ */
|
|
8275
|
+
return /* @__PURE__ */ jsx46("div", { ref, className: cn("flex items-center gap-2", className), ...props, children: content });
|
|
7954
8276
|
}
|
|
7955
8277
|
);
|
|
7956
8278
|
TopBarBrand.displayName = "TopBarBrand";
|
|
7957
|
-
var TopBarNav =
|
|
8279
|
+
var TopBarNav = React46.forwardRef(
|
|
7958
8280
|
({ className, children, ...props }, ref) => {
|
|
7959
|
-
return /* @__PURE__ */
|
|
8281
|
+
return /* @__PURE__ */ jsx46(
|
|
7960
8282
|
"nav",
|
|
7961
8283
|
{
|
|
7962
8284
|
ref,
|
|
@@ -7968,9 +8290,9 @@ var TopBarNav = React44.forwardRef(
|
|
|
7968
8290
|
}
|
|
7969
8291
|
);
|
|
7970
8292
|
TopBarNav.displayName = "TopBarNav";
|
|
7971
|
-
var TopBarNavItem =
|
|
8293
|
+
var TopBarNavItem = React46.forwardRef(
|
|
7972
8294
|
({ className, active, children, ...props }, ref) => {
|
|
7973
|
-
return /* @__PURE__ */
|
|
8295
|
+
return /* @__PURE__ */ jsx46(
|
|
7974
8296
|
"a",
|
|
7975
8297
|
{
|
|
7976
8298
|
ref,
|
|
@@ -7986,9 +8308,9 @@ var TopBarNavItem = React44.forwardRef(
|
|
|
7986
8308
|
}
|
|
7987
8309
|
);
|
|
7988
8310
|
TopBarNavItem.displayName = "TopBarNavItem";
|
|
7989
|
-
var TopBarSection =
|
|
8311
|
+
var TopBarSection = React46.forwardRef(
|
|
7990
8312
|
({ className, align = "left", children, ...props }, ref) => {
|
|
7991
|
-
return /* @__PURE__ */
|
|
8313
|
+
return /* @__PURE__ */ jsx46(
|
|
7992
8314
|
"div",
|
|
7993
8315
|
{
|
|
7994
8316
|
ref,
|
|
@@ -8008,9 +8330,9 @@ var TopBarSection = React44.forwardRef(
|
|
|
8008
8330
|
}
|
|
8009
8331
|
);
|
|
8010
8332
|
TopBarSection.displayName = "TopBarSection";
|
|
8011
|
-
var TopBarDivider =
|
|
8333
|
+
var TopBarDivider = React46.forwardRef(
|
|
8012
8334
|
({ className, ...props }, ref) => {
|
|
8013
|
-
return /* @__PURE__ */
|
|
8335
|
+
return /* @__PURE__ */ jsx46(
|
|
8014
8336
|
"div",
|
|
8015
8337
|
{
|
|
8016
8338
|
ref,
|
|
@@ -8023,17 +8345,17 @@ var TopBarDivider = React44.forwardRef(
|
|
|
8023
8345
|
TopBarDivider.displayName = "TopBarDivider";
|
|
8024
8346
|
|
|
8025
8347
|
// src/components/sidebar.tsx
|
|
8026
|
-
import * as
|
|
8027
|
-
import { Fragment as Fragment7, jsx as
|
|
8028
|
-
var SidebarContext =
|
|
8348
|
+
import * as React47 from "react";
|
|
8349
|
+
import { Fragment as Fragment7, jsx as jsx47, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
8350
|
+
var SidebarContext = React47.createContext(void 0);
|
|
8029
8351
|
var useSidebar = () => {
|
|
8030
|
-
const context =
|
|
8352
|
+
const context = React47.useContext(SidebarContext);
|
|
8031
8353
|
if (!context) {
|
|
8032
8354
|
throw new Error("useSidebar must be used within a Sidebar");
|
|
8033
8355
|
}
|
|
8034
8356
|
return context;
|
|
8035
8357
|
};
|
|
8036
|
-
var Sidebar =
|
|
8358
|
+
var Sidebar = React47.forwardRef(
|
|
8037
8359
|
({
|
|
8038
8360
|
className,
|
|
8039
8361
|
collapsed: controlledCollapsed,
|
|
@@ -8045,10 +8367,10 @@ var Sidebar = React45.forwardRef(
|
|
|
8045
8367
|
children,
|
|
8046
8368
|
...props
|
|
8047
8369
|
}, ref) => {
|
|
8048
|
-
const [uncontrolledCollapsed, setUncontrolledCollapsed] =
|
|
8370
|
+
const [uncontrolledCollapsed, setUncontrolledCollapsed] = React47.useState(defaultCollapsed);
|
|
8049
8371
|
const isControlled = controlledCollapsed !== void 0;
|
|
8050
8372
|
const collapsed = isControlled ? controlledCollapsed : uncontrolledCollapsed;
|
|
8051
|
-
const setCollapsed =
|
|
8373
|
+
const setCollapsed = React47.useCallback(
|
|
8052
8374
|
(value) => {
|
|
8053
8375
|
if (!isControlled) {
|
|
8054
8376
|
setUncontrolledCollapsed(value);
|
|
@@ -8057,7 +8379,7 @@ var Sidebar = React45.forwardRef(
|
|
|
8057
8379
|
},
|
|
8058
8380
|
[isControlled, onCollapsedChange]
|
|
8059
8381
|
);
|
|
8060
|
-
return /* @__PURE__ */
|
|
8382
|
+
return /* @__PURE__ */ jsx47(SidebarContext.Provider, { value: { collapsed, setCollapsed }, children: /* @__PURE__ */ jsx47(
|
|
8061
8383
|
"aside",
|
|
8062
8384
|
{
|
|
8063
8385
|
ref,
|
|
@@ -8077,9 +8399,9 @@ var Sidebar = React45.forwardRef(
|
|
|
8077
8399
|
}
|
|
8078
8400
|
);
|
|
8079
8401
|
Sidebar.displayName = "Sidebar";
|
|
8080
|
-
var SidebarHeader =
|
|
8402
|
+
var SidebarHeader = React47.forwardRef(
|
|
8081
8403
|
({ className, children, ...props }, ref) => {
|
|
8082
|
-
return /* @__PURE__ */
|
|
8404
|
+
return /* @__PURE__ */ jsx47(
|
|
8083
8405
|
"div",
|
|
8084
8406
|
{
|
|
8085
8407
|
ref,
|
|
@@ -8091,9 +8413,9 @@ var SidebarHeader = React45.forwardRef(
|
|
|
8091
8413
|
}
|
|
8092
8414
|
);
|
|
8093
8415
|
SidebarHeader.displayName = "SidebarHeader";
|
|
8094
|
-
var SidebarContent =
|
|
8416
|
+
var SidebarContent = React47.forwardRef(
|
|
8095
8417
|
({ className, children, ...props }, ref) => {
|
|
8096
|
-
return /* @__PURE__ */
|
|
8418
|
+
return /* @__PURE__ */ jsx47(
|
|
8097
8419
|
"div",
|
|
8098
8420
|
{
|
|
8099
8421
|
ref,
|
|
@@ -8105,9 +8427,9 @@ var SidebarContent = React45.forwardRef(
|
|
|
8105
8427
|
}
|
|
8106
8428
|
);
|
|
8107
8429
|
SidebarContent.displayName = "SidebarContent";
|
|
8108
|
-
var SidebarFooter =
|
|
8430
|
+
var SidebarFooter = React47.forwardRef(
|
|
8109
8431
|
({ className, children, ...props }, ref) => {
|
|
8110
|
-
return /* @__PURE__ */
|
|
8432
|
+
return /* @__PURE__ */ jsx47(
|
|
8111
8433
|
"div",
|
|
8112
8434
|
{
|
|
8113
8435
|
ref,
|
|
@@ -8119,25 +8441,25 @@ var SidebarFooter = React45.forwardRef(
|
|
|
8119
8441
|
}
|
|
8120
8442
|
);
|
|
8121
8443
|
SidebarFooter.displayName = "SidebarFooter";
|
|
8122
|
-
var SidebarGroup =
|
|
8444
|
+
var SidebarGroup = React47.forwardRef(
|
|
8123
8445
|
({ className, label, children, ...props }, ref) => {
|
|
8124
8446
|
const { collapsed } = useSidebar();
|
|
8125
|
-
return /* @__PURE__ */
|
|
8126
|
-
label && !collapsed && /* @__PURE__ */
|
|
8127
|
-
label && collapsed && /* @__PURE__ */
|
|
8128
|
-
/* @__PURE__ */
|
|
8447
|
+
return /* @__PURE__ */ jsxs31("div", { ref, className: cn("px-2 py-2", className), ...props, children: [
|
|
8448
|
+
label && !collapsed && /* @__PURE__ */ jsx47("div", { className: "px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: label }),
|
|
8449
|
+
label && collapsed && /* @__PURE__ */ jsx47("div", { className: "flex justify-center py-1.5", children: /* @__PURE__ */ jsx47("div", { className: "h-px w-4 bg-border" }) }),
|
|
8450
|
+
/* @__PURE__ */ jsx47("div", { className: "space-y-1", children })
|
|
8129
8451
|
] });
|
|
8130
8452
|
}
|
|
8131
8453
|
);
|
|
8132
8454
|
SidebarGroup.displayName = "SidebarGroup";
|
|
8133
|
-
var SidebarItem =
|
|
8455
|
+
var SidebarItem = React47.forwardRef(
|
|
8134
8456
|
({ className, icon, active, disabled, badge, onClick, href, children, ...props }, ref) => {
|
|
8135
8457
|
const { collapsed } = useSidebar();
|
|
8136
|
-
const content = /* @__PURE__ */
|
|
8137
|
-
icon && /* @__PURE__ */
|
|
8138
|
-
!collapsed && /* @__PURE__ */
|
|
8139
|
-
/* @__PURE__ */
|
|
8140
|
-
badge && /* @__PURE__ */
|
|
8458
|
+
const content = /* @__PURE__ */ jsxs31(Fragment7, { children: [
|
|
8459
|
+
icon && /* @__PURE__ */ jsx47("span", { className: cn("shrink-0", collapsed ? "mx-auto" : ""), children: icon }),
|
|
8460
|
+
!collapsed && /* @__PURE__ */ jsxs31(Fragment7, { children: [
|
|
8461
|
+
/* @__PURE__ */ jsx47("span", { className: "flex-1 truncate", children }),
|
|
8462
|
+
badge && /* @__PURE__ */ jsx47("span", { className: "shrink-0", children: badge })
|
|
8141
8463
|
] })
|
|
8142
8464
|
] });
|
|
8143
8465
|
const itemClasses = cn(
|
|
@@ -8148,9 +8470,9 @@ var SidebarItem = React45.forwardRef(
|
|
|
8148
8470
|
className
|
|
8149
8471
|
);
|
|
8150
8472
|
if (href) {
|
|
8151
|
-
return /* @__PURE__ */
|
|
8473
|
+
return /* @__PURE__ */ jsx47("div", { ref, ...props, children: /* @__PURE__ */ jsx47("a", { href, className: itemClasses, children: content }) });
|
|
8152
8474
|
}
|
|
8153
|
-
return /* @__PURE__ */
|
|
8475
|
+
return /* @__PURE__ */ jsx47(
|
|
8154
8476
|
"div",
|
|
8155
8477
|
{
|
|
8156
8478
|
ref,
|
|
@@ -8165,20 +8487,20 @@ var SidebarItem = React45.forwardRef(
|
|
|
8165
8487
|
}
|
|
8166
8488
|
);
|
|
8167
8489
|
SidebarItem.displayName = "SidebarItem";
|
|
8168
|
-
var SidebarSubMenu =
|
|
8490
|
+
var SidebarSubMenu = React47.forwardRef(
|
|
8169
8491
|
({ className, icon, label, defaultOpen = false, children, ...props }, ref) => {
|
|
8170
|
-
const [open, setOpen] =
|
|
8492
|
+
const [open, setOpen] = React47.useState(defaultOpen);
|
|
8171
8493
|
const { collapsed } = useSidebar();
|
|
8172
|
-
|
|
8494
|
+
React47.useEffect(() => {
|
|
8173
8495
|
if (collapsed) {
|
|
8174
8496
|
setOpen(false);
|
|
8175
8497
|
}
|
|
8176
8498
|
}, [collapsed]);
|
|
8177
8499
|
if (collapsed) {
|
|
8178
|
-
return /* @__PURE__ */
|
|
8500
|
+
return /* @__PURE__ */ jsx47(SidebarItem, { icon, className, children: label });
|
|
8179
8501
|
}
|
|
8180
|
-
return /* @__PURE__ */
|
|
8181
|
-
/* @__PURE__ */
|
|
8502
|
+
return /* @__PURE__ */ jsxs31("div", { ref, className, ...props, children: [
|
|
8503
|
+
/* @__PURE__ */ jsxs31(
|
|
8182
8504
|
"div",
|
|
8183
8505
|
{
|
|
8184
8506
|
className: cn(
|
|
@@ -8189,9 +8511,9 @@ var SidebarSubMenu = React45.forwardRef(
|
|
|
8189
8511
|
role: "button",
|
|
8190
8512
|
tabIndex: 0,
|
|
8191
8513
|
children: [
|
|
8192
|
-
icon && /* @__PURE__ */
|
|
8193
|
-
/* @__PURE__ */
|
|
8194
|
-
/* @__PURE__ */
|
|
8514
|
+
icon && /* @__PURE__ */ jsx47("span", { className: "shrink-0", children: icon }),
|
|
8515
|
+
/* @__PURE__ */ jsx47("span", { className: "flex-1 truncate", children: label }),
|
|
8516
|
+
/* @__PURE__ */ jsx47(
|
|
8195
8517
|
"svg",
|
|
8196
8518
|
{
|
|
8197
8519
|
className: cn("h-4 w-4 shrink-0 transition-transform", open && "rotate-90"),
|
|
@@ -8202,21 +8524,21 @@ var SidebarSubMenu = React45.forwardRef(
|
|
|
8202
8524
|
strokeWidth: "2",
|
|
8203
8525
|
strokeLinecap: "round",
|
|
8204
8526
|
strokeLinejoin: "round",
|
|
8205
|
-
children: /* @__PURE__ */
|
|
8527
|
+
children: /* @__PURE__ */ jsx47("path", { d: "m9 18 6-6-6-6" })
|
|
8206
8528
|
}
|
|
8207
8529
|
)
|
|
8208
8530
|
]
|
|
8209
8531
|
}
|
|
8210
8532
|
),
|
|
8211
|
-
open && /* @__PURE__ */
|
|
8533
|
+
open && /* @__PURE__ */ jsx47("div", { className: "ml-4 pl-3 border-l border-border space-y-1 mt-1", children })
|
|
8212
8534
|
] });
|
|
8213
8535
|
}
|
|
8214
8536
|
);
|
|
8215
8537
|
SidebarSubMenu.displayName = "SidebarSubMenu";
|
|
8216
|
-
var SidebarToggle =
|
|
8538
|
+
var SidebarToggle = React47.forwardRef(
|
|
8217
8539
|
({ className, children, ...props }, ref) => {
|
|
8218
8540
|
const { collapsed, setCollapsed } = useSidebar();
|
|
8219
|
-
return /* @__PURE__ */
|
|
8541
|
+
return /* @__PURE__ */ jsx47(
|
|
8220
8542
|
"button",
|
|
8221
8543
|
{
|
|
8222
8544
|
ref,
|
|
@@ -8230,7 +8552,7 @@ var SidebarToggle = React45.forwardRef(
|
|
|
8230
8552
|
),
|
|
8231
8553
|
"aria-label": collapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
8232
8554
|
...props,
|
|
8233
|
-
children: children || /* @__PURE__ */
|
|
8555
|
+
children: children || /* @__PURE__ */ jsxs31(
|
|
8234
8556
|
"svg",
|
|
8235
8557
|
{
|
|
8236
8558
|
className: cn("h-5 w-5 transition-transform", collapsed && "rotate-180"),
|
|
@@ -8242,9 +8564,9 @@ var SidebarToggle = React45.forwardRef(
|
|
|
8242
8564
|
strokeLinecap: "round",
|
|
8243
8565
|
strokeLinejoin: "round",
|
|
8244
8566
|
children: [
|
|
8245
|
-
/* @__PURE__ */
|
|
8246
|
-
/* @__PURE__ */
|
|
8247
|
-
/* @__PURE__ */
|
|
8567
|
+
/* @__PURE__ */ jsx47("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }),
|
|
8568
|
+
/* @__PURE__ */ jsx47("path", { d: "M9 3v18" }),
|
|
8569
|
+
/* @__PURE__ */ jsx47("path", { d: "m14 9 3 3-3 3" })
|
|
8248
8570
|
]
|
|
8249
8571
|
}
|
|
8250
8572
|
)
|
|
@@ -8255,17 +8577,17 @@ var SidebarToggle = React45.forwardRef(
|
|
|
8255
8577
|
SidebarToggle.displayName = "SidebarToggle";
|
|
8256
8578
|
|
|
8257
8579
|
// src/components/sidebar-rail.tsx
|
|
8258
|
-
import * as
|
|
8259
|
-
import { Fragment as Fragment8, jsx as
|
|
8260
|
-
var SidebarRailContext =
|
|
8580
|
+
import * as React48 from "react";
|
|
8581
|
+
import { Fragment as Fragment8, jsx as jsx48, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
8582
|
+
var SidebarRailContext = React48.createContext(void 0);
|
|
8261
8583
|
var useSidebarRail = () => {
|
|
8262
|
-
const context =
|
|
8584
|
+
const context = React48.useContext(SidebarRailContext);
|
|
8263
8585
|
if (!context) {
|
|
8264
8586
|
throw new Error("useSidebarRail must be used within a SidebarRail");
|
|
8265
8587
|
}
|
|
8266
8588
|
return context;
|
|
8267
8589
|
};
|
|
8268
|
-
var SidebarRail =
|
|
8590
|
+
var SidebarRail = React48.forwardRef(
|
|
8269
8591
|
({
|
|
8270
8592
|
className,
|
|
8271
8593
|
defaultActiveRail = null,
|
|
@@ -8283,14 +8605,14 @@ var SidebarRail = React46.forwardRef(
|
|
|
8283
8605
|
children,
|
|
8284
8606
|
...props
|
|
8285
8607
|
}, ref) => {
|
|
8286
|
-
const [uncontrolledActiveRail, setUncontrolledActiveRail] =
|
|
8287
|
-
const [expanded, setExpanded] =
|
|
8288
|
-
const [uncontrolledRailExpanded, setUncontrolledRailExpanded] =
|
|
8608
|
+
const [uncontrolledActiveRail, setUncontrolledActiveRail] = React48.useState(defaultActiveRail);
|
|
8609
|
+
const [expanded, setExpanded] = React48.useState(!!defaultActiveRail);
|
|
8610
|
+
const [uncontrolledRailExpanded, setUncontrolledRailExpanded] = React48.useState(defaultRailExpanded);
|
|
8289
8611
|
const isControlled = controlledActiveRail !== void 0;
|
|
8290
8612
|
const activeRail = isControlled ? controlledActiveRail : uncontrolledActiveRail;
|
|
8291
8613
|
const isRailControlled = controlledRailExpanded !== void 0;
|
|
8292
8614
|
const railExpanded = isRailControlled ? controlledRailExpanded : uncontrolledRailExpanded;
|
|
8293
|
-
const setActiveRail =
|
|
8615
|
+
const setActiveRail = React48.useCallback(
|
|
8294
8616
|
(rail) => {
|
|
8295
8617
|
if (!isControlled) {
|
|
8296
8618
|
setUncontrolledActiveRail(rail);
|
|
@@ -8300,7 +8622,7 @@ var SidebarRail = React46.forwardRef(
|
|
|
8300
8622
|
},
|
|
8301
8623
|
[isControlled, onActiveRailChange]
|
|
8302
8624
|
);
|
|
8303
|
-
const setRailExpanded =
|
|
8625
|
+
const setRailExpanded = React48.useCallback(
|
|
8304
8626
|
(value) => {
|
|
8305
8627
|
if (!isRailControlled) {
|
|
8306
8628
|
setUncontrolledRailExpanded(value);
|
|
@@ -8309,7 +8631,7 @@ var SidebarRail = React46.forwardRef(
|
|
|
8309
8631
|
},
|
|
8310
8632
|
[isRailControlled, onRailExpandedChange]
|
|
8311
8633
|
);
|
|
8312
|
-
return /* @__PURE__ */
|
|
8634
|
+
return /* @__PURE__ */ jsx48(
|
|
8313
8635
|
SidebarRailContext.Provider,
|
|
8314
8636
|
{
|
|
8315
8637
|
value: {
|
|
@@ -8323,7 +8645,7 @@ var SidebarRail = React46.forwardRef(
|
|
|
8323
8645
|
overlayRail: overlayRail && expandableRail,
|
|
8324
8646
|
expandableRail
|
|
8325
8647
|
},
|
|
8326
|
-
children: /* @__PURE__ */
|
|
8648
|
+
children: /* @__PURE__ */ jsx48(
|
|
8327
8649
|
"div",
|
|
8328
8650
|
{
|
|
8329
8651
|
ref,
|
|
@@ -8346,11 +8668,11 @@ var SidebarRail = React46.forwardRef(
|
|
|
8346
8668
|
}
|
|
8347
8669
|
);
|
|
8348
8670
|
SidebarRail.displayName = "SidebarRail";
|
|
8349
|
-
var IconRail =
|
|
8671
|
+
var IconRail = React48.forwardRef(
|
|
8350
8672
|
({ className, children, ...props }, ref) => {
|
|
8351
8673
|
const { railExpanded, overlayRail, expandableRail } = useSidebarRail();
|
|
8352
8674
|
const isExpanded = expandableRail && railExpanded;
|
|
8353
|
-
return /* @__PURE__ */
|
|
8675
|
+
return /* @__PURE__ */ jsx48(
|
|
8354
8676
|
"div",
|
|
8355
8677
|
{
|
|
8356
8678
|
ref,
|
|
@@ -8359,13 +8681,16 @@ var IconRail = React46.forwardRef(
|
|
|
8359
8681
|
isExpanded && !overlayRail ? "w-[var(--rail-expanded-width)]" : "w-[var(--rail-width)]"
|
|
8360
8682
|
),
|
|
8361
8683
|
...props,
|
|
8362
|
-
children: /* @__PURE__ */
|
|
8684
|
+
children: /* @__PURE__ */ jsx48(
|
|
8363
8685
|
"div",
|
|
8364
8686
|
{
|
|
8365
8687
|
className: cn(
|
|
8366
8688
|
"flex flex-col bg-card border-r border-border h-full",
|
|
8367
|
-
"transition-[width] duration-200",
|
|
8368
|
-
overlayRail &&
|
|
8689
|
+
"transition-[width,box-shadow] duration-200",
|
|
8690
|
+
overlayRail && expandableRail ? cn(
|
|
8691
|
+
"absolute left-0 top-0 z-30",
|
|
8692
|
+
isExpanded ? "w-[var(--rail-expanded-width)] shadow-lg" : "w-[var(--rail-width)] shadow-none"
|
|
8693
|
+
) : "w-full",
|
|
8369
8694
|
className
|
|
8370
8695
|
),
|
|
8371
8696
|
children
|
|
@@ -8376,9 +8701,9 @@ var IconRail = React46.forwardRef(
|
|
|
8376
8701
|
}
|
|
8377
8702
|
);
|
|
8378
8703
|
IconRail.displayName = "IconRail";
|
|
8379
|
-
var IconRailHeader =
|
|
8704
|
+
var IconRailHeader = React48.forwardRef(
|
|
8380
8705
|
({ className, children, ...props }, ref) => {
|
|
8381
|
-
return /* @__PURE__ */
|
|
8706
|
+
return /* @__PURE__ */ jsx48(
|
|
8382
8707
|
"div",
|
|
8383
8708
|
{
|
|
8384
8709
|
ref,
|
|
@@ -8393,9 +8718,9 @@ var IconRailHeader = React46.forwardRef(
|
|
|
8393
8718
|
}
|
|
8394
8719
|
);
|
|
8395
8720
|
IconRailHeader.displayName = "IconRailHeader";
|
|
8396
|
-
var IconRailContent =
|
|
8721
|
+
var IconRailContent = React48.forwardRef(
|
|
8397
8722
|
({ className, children, ...props }, ref) => {
|
|
8398
|
-
return /* @__PURE__ */
|
|
8723
|
+
return /* @__PURE__ */ jsx48(
|
|
8399
8724
|
"div",
|
|
8400
8725
|
{
|
|
8401
8726
|
ref,
|
|
@@ -8407,9 +8732,9 @@ var IconRailContent = React46.forwardRef(
|
|
|
8407
8732
|
}
|
|
8408
8733
|
);
|
|
8409
8734
|
IconRailContent.displayName = "IconRailContent";
|
|
8410
|
-
var IconRailFooter =
|
|
8735
|
+
var IconRailFooter = React48.forwardRef(
|
|
8411
8736
|
({ className, children, ...props }, ref) => {
|
|
8412
|
-
return /* @__PURE__ */
|
|
8737
|
+
return /* @__PURE__ */ jsx48(
|
|
8413
8738
|
"div",
|
|
8414
8739
|
{
|
|
8415
8740
|
ref,
|
|
@@ -8424,7 +8749,7 @@ var IconRailFooter = React46.forwardRef(
|
|
|
8424
8749
|
}
|
|
8425
8750
|
);
|
|
8426
8751
|
IconRailFooter.displayName = "IconRailFooter";
|
|
8427
|
-
var IconRailItem =
|
|
8752
|
+
var IconRailItem = React48.forwardRef(
|
|
8428
8753
|
({ className, railId, icon, label, asButton = false, toggleRail = false, onClick, ...props }, ref) => {
|
|
8429
8754
|
const {
|
|
8430
8755
|
activeRail,
|
|
@@ -8450,7 +8775,7 @@ var IconRailItem = React46.forwardRef(
|
|
|
8450
8775
|
setActiveRail(railId);
|
|
8451
8776
|
}
|
|
8452
8777
|
};
|
|
8453
|
-
return /* @__PURE__ */
|
|
8778
|
+
return /* @__PURE__ */ jsxs32(
|
|
8454
8779
|
"button",
|
|
8455
8780
|
{
|
|
8456
8781
|
ref,
|
|
@@ -8469,14 +8794,14 @@ var IconRailItem = React46.forwardRef(
|
|
|
8469
8794
|
...props,
|
|
8470
8795
|
children: [
|
|
8471
8796
|
icon,
|
|
8472
|
-
isRailExpanded && label && /* @__PURE__ */
|
|
8797
|
+
isRailExpanded && label && /* @__PURE__ */ jsx48("span", { className: "text-sm font-medium truncate", children: label })
|
|
8473
8798
|
]
|
|
8474
8799
|
}
|
|
8475
8800
|
);
|
|
8476
8801
|
}
|
|
8477
8802
|
);
|
|
8478
8803
|
IconRailItem.displayName = "IconRailItem";
|
|
8479
|
-
var RailPanel =
|
|
8804
|
+
var RailPanel = React48.forwardRef(
|
|
8480
8805
|
({ className, railId, title, children, ...props }, ref) => {
|
|
8481
8806
|
const { activeRail, setActiveRail, hoverExpand } = useSidebarRail();
|
|
8482
8807
|
const isVisible = activeRail === railId;
|
|
@@ -8486,7 +8811,7 @@ var RailPanel = React46.forwardRef(
|
|
|
8486
8811
|
}
|
|
8487
8812
|
};
|
|
8488
8813
|
if (!isVisible) return null;
|
|
8489
|
-
return /* @__PURE__ */
|
|
8814
|
+
return /* @__PURE__ */ jsxs32(
|
|
8490
8815
|
"div",
|
|
8491
8816
|
{
|
|
8492
8817
|
ref,
|
|
@@ -8499,16 +8824,16 @@ var RailPanel = React46.forwardRef(
|
|
|
8499
8824
|
onMouseLeave: handleMouseLeave,
|
|
8500
8825
|
...props,
|
|
8501
8826
|
children: [
|
|
8502
|
-
title && /* @__PURE__ */
|
|
8503
|
-
/* @__PURE__ */
|
|
8504
|
-
/* @__PURE__ */
|
|
8827
|
+
title && /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-between h-14 px-4 border-b border-border shrink-0", children: [
|
|
8828
|
+
/* @__PURE__ */ jsx48("span", { className: "font-semibold text-sm", children: title }),
|
|
8829
|
+
/* @__PURE__ */ jsx48(
|
|
8505
8830
|
"button",
|
|
8506
8831
|
{
|
|
8507
8832
|
type: "button",
|
|
8508
8833
|
onClick: () => setActiveRail(null),
|
|
8509
8834
|
className: "p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground cursor-pointer",
|
|
8510
8835
|
"aria-label": "Close panel",
|
|
8511
|
-
children: /* @__PURE__ */
|
|
8836
|
+
children: /* @__PURE__ */ jsxs32(
|
|
8512
8837
|
"svg",
|
|
8513
8838
|
{
|
|
8514
8839
|
className: "h-4 w-4",
|
|
@@ -8520,36 +8845,36 @@ var RailPanel = React46.forwardRef(
|
|
|
8520
8845
|
strokeLinecap: "round",
|
|
8521
8846
|
strokeLinejoin: "round",
|
|
8522
8847
|
children: [
|
|
8523
|
-
/* @__PURE__ */
|
|
8524
|
-
/* @__PURE__ */
|
|
8848
|
+
/* @__PURE__ */ jsx48("path", { d: "M18 6 6 18" }),
|
|
8849
|
+
/* @__PURE__ */ jsx48("path", { d: "m6 6 12 12" })
|
|
8525
8850
|
]
|
|
8526
8851
|
}
|
|
8527
8852
|
)
|
|
8528
8853
|
}
|
|
8529
8854
|
)
|
|
8530
8855
|
] }),
|
|
8531
|
-
/* @__PURE__ */
|
|
8856
|
+
/* @__PURE__ */ jsx48("div", { className: "flex-1 overflow-y-auto", children })
|
|
8532
8857
|
]
|
|
8533
8858
|
}
|
|
8534
8859
|
);
|
|
8535
8860
|
}
|
|
8536
8861
|
);
|
|
8537
8862
|
RailPanel.displayName = "RailPanel";
|
|
8538
|
-
var RailPanelGroup =
|
|
8863
|
+
var RailPanelGroup = React48.forwardRef(
|
|
8539
8864
|
({ className, label, children, ...props }, ref) => {
|
|
8540
|
-
return /* @__PURE__ */
|
|
8541
|
-
label && /* @__PURE__ */
|
|
8542
|
-
/* @__PURE__ */
|
|
8865
|
+
return /* @__PURE__ */ jsxs32("div", { ref, className: cn("px-2 py-2", className), ...props, children: [
|
|
8866
|
+
label && /* @__PURE__ */ jsx48("div", { className: "px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: label }),
|
|
8867
|
+
/* @__PURE__ */ jsx48("div", { className: "space-y-1", children })
|
|
8543
8868
|
] });
|
|
8544
8869
|
}
|
|
8545
8870
|
);
|
|
8546
8871
|
RailPanelGroup.displayName = "RailPanelGroup";
|
|
8547
|
-
var RailPanelItem =
|
|
8872
|
+
var RailPanelItem = React48.forwardRef(
|
|
8548
8873
|
({ className, icon, active, disabled, badge, href, children, onClick, ...props }, ref) => {
|
|
8549
|
-
const content = /* @__PURE__ */
|
|
8550
|
-
icon && /* @__PURE__ */
|
|
8551
|
-
/* @__PURE__ */
|
|
8552
|
-
badge && /* @__PURE__ */
|
|
8874
|
+
const content = /* @__PURE__ */ jsxs32(Fragment8, { children: [
|
|
8875
|
+
icon && /* @__PURE__ */ jsx48("span", { className: "shrink-0", children: icon }),
|
|
8876
|
+
/* @__PURE__ */ jsx48("span", { className: "flex-1 truncate", children }),
|
|
8877
|
+
badge && /* @__PURE__ */ jsx48("span", { className: "shrink-0", children: badge })
|
|
8553
8878
|
] });
|
|
8554
8879
|
const itemClasses = cn(
|
|
8555
8880
|
"flex items-center gap-3 px-3 py-2 rounded-md text-sm transition-colors cursor-pointer",
|
|
@@ -8558,9 +8883,9 @@ var RailPanelItem = React46.forwardRef(
|
|
|
8558
8883
|
className
|
|
8559
8884
|
);
|
|
8560
8885
|
if (href) {
|
|
8561
|
-
return /* @__PURE__ */
|
|
8886
|
+
return /* @__PURE__ */ jsx48("div", { ref, ...props, children: /* @__PURE__ */ jsx48("a", { href, className: itemClasses, children: content }) });
|
|
8562
8887
|
}
|
|
8563
|
-
return /* @__PURE__ */
|
|
8888
|
+
return /* @__PURE__ */ jsx48(
|
|
8564
8889
|
"div",
|
|
8565
8890
|
{
|
|
8566
8891
|
ref,
|
|
@@ -8577,34 +8902,34 @@ var RailPanelItem = React46.forwardRef(
|
|
|
8577
8902
|
RailPanelItem.displayName = "RailPanelItem";
|
|
8578
8903
|
|
|
8579
8904
|
// src/playground.tsx
|
|
8580
|
-
import * as
|
|
8581
|
-
import { jsx as
|
|
8582
|
-
var Section = ({ title, children }) => /* @__PURE__ */
|
|
8583
|
-
/* @__PURE__ */
|
|
8584
|
-
/* @__PURE__ */
|
|
8905
|
+
import * as React49 from "react";
|
|
8906
|
+
import { jsx as jsx49, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
8907
|
+
var Section = ({ title, children }) => /* @__PURE__ */ jsxs33("div", { className: "mb-8", children: [
|
|
8908
|
+
/* @__PURE__ */ jsx49("h2", { className: "text-xl font-semibold mb-4 text-foreground", children: title }),
|
|
8909
|
+
/* @__PURE__ */ jsx49("div", { className: "p-4 border border-border rounded-lg bg-background", children })
|
|
8585
8910
|
] });
|
|
8586
8911
|
var ThemeToggle = () => {
|
|
8587
8912
|
const { theme, setTheme } = useTheme();
|
|
8588
|
-
return /* @__PURE__ */
|
|
8589
|
-
/* @__PURE__ */
|
|
8590
|
-
/* @__PURE__ */
|
|
8591
|
-
/* @__PURE__ */
|
|
8592
|
-
/* @__PURE__ */
|
|
8593
|
-
/* @__PURE__ */
|
|
8594
|
-
/* @__PURE__ */
|
|
8595
|
-
/* @__PURE__ */
|
|
8913
|
+
return /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
8914
|
+
/* @__PURE__ */ jsx49(Label, { children: "Theme:" }),
|
|
8915
|
+
/* @__PURE__ */ jsxs33(SelectNamespace, { value: theme, onValueChange: (value) => setTheme(value), children: [
|
|
8916
|
+
/* @__PURE__ */ jsx49(SelectTrigger, { className: "w-32", children: /* @__PURE__ */ jsx49(SelectValue, { placeholder: "Select theme" }) }),
|
|
8917
|
+
/* @__PURE__ */ jsxs33(SelectContent, { children: [
|
|
8918
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "light", children: "Light" }),
|
|
8919
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "dark", children: "Dark" }),
|
|
8920
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "system", children: "System" })
|
|
8596
8921
|
] })
|
|
8597
8922
|
] })
|
|
8598
8923
|
] });
|
|
8599
8924
|
};
|
|
8600
8925
|
var PlaygroundContent = () => {
|
|
8601
|
-
const [dialogOpen, setDialogOpen] =
|
|
8602
|
-
const [checkboxChecked, setCheckboxChecked] =
|
|
8603
|
-
const [switchChecked, setSwitchChecked] =
|
|
8604
|
-
const [inputValue, setInputValue] =
|
|
8605
|
-
const [textareaValue, setTextareaValue] =
|
|
8606
|
-
const [selectValue, setSelectValue] =
|
|
8607
|
-
const [comboboxValue, setComboboxValue] =
|
|
8926
|
+
const [dialogOpen, setDialogOpen] = React49.useState(false);
|
|
8927
|
+
const [checkboxChecked, setCheckboxChecked] = React49.useState(false);
|
|
8928
|
+
const [switchChecked, setSwitchChecked] = React49.useState(false);
|
|
8929
|
+
const [inputValue, setInputValue] = React49.useState("");
|
|
8930
|
+
const [textareaValue, setTextareaValue] = React49.useState("");
|
|
8931
|
+
const [selectValue, setSelectValue] = React49.useState("");
|
|
8932
|
+
const [comboboxValue, setComboboxValue] = React49.useState(null);
|
|
8608
8933
|
const comboboxOptions = [
|
|
8609
8934
|
{ value: "react", label: "React" },
|
|
8610
8935
|
{ value: "vue", label: "Vue" },
|
|
@@ -8612,35 +8937,35 @@ var PlaygroundContent = () => {
|
|
|
8612
8937
|
{ value: "svelte", label: "Svelte" },
|
|
8613
8938
|
{ value: "solid", label: "SolidJS" }
|
|
8614
8939
|
];
|
|
8615
|
-
return /* @__PURE__ */
|
|
8616
|
-
/* @__PURE__ */
|
|
8617
|
-
/* @__PURE__ */
|
|
8618
|
-
/* @__PURE__ */
|
|
8940
|
+
return /* @__PURE__ */ jsx49("div", { className: "min-h-screen bg-background p-8", children: /* @__PURE__ */ jsxs33("div", { className: "max-w-4xl mx-auto", children: [
|
|
8941
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center justify-between mb-8", children: [
|
|
8942
|
+
/* @__PURE__ */ jsx49("h1", { className: "text-3xl font-bold text-foreground", children: "@onesaz/ui Playground" }),
|
|
8943
|
+
/* @__PURE__ */ jsx49(ThemeToggle, {})
|
|
8619
8944
|
] }),
|
|
8620
|
-
/* @__PURE__ */
|
|
8621
|
-
/* @__PURE__ */
|
|
8622
|
-
/* @__PURE__ */
|
|
8623
|
-
/* @__PURE__ */
|
|
8624
|
-
/* @__PURE__ */
|
|
8625
|
-
/* @__PURE__ */
|
|
8626
|
-
/* @__PURE__ */
|
|
8627
|
-
/* @__PURE__ */
|
|
8945
|
+
/* @__PURE__ */ jsxs33(Section, { title: "Button", children: [
|
|
8946
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-wrap gap-4", children: [
|
|
8947
|
+
/* @__PURE__ */ jsx49(Button, { variant: "default", children: "Default" }),
|
|
8948
|
+
/* @__PURE__ */ jsx49(Button, { variant: "destructive", children: "Destructive" }),
|
|
8949
|
+
/* @__PURE__ */ jsx49(Button, { variant: "outline", children: "Outline" }),
|
|
8950
|
+
/* @__PURE__ */ jsx49(Button, { variant: "secondary", children: "Secondary" }),
|
|
8951
|
+
/* @__PURE__ */ jsx49(Button, { variant: "ghost", children: "Ghost" }),
|
|
8952
|
+
/* @__PURE__ */ jsx49(Button, { variant: "link", children: "Link" })
|
|
8628
8953
|
] }),
|
|
8629
|
-
/* @__PURE__ */
|
|
8630
|
-
/* @__PURE__ */
|
|
8631
|
-
/* @__PURE__ */
|
|
8632
|
-
/* @__PURE__ */
|
|
8633
|
-
/* @__PURE__ */
|
|
8954
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-wrap gap-4 mt-4", children: [
|
|
8955
|
+
/* @__PURE__ */ jsx49(Button, { size: "sm", children: "Small" }),
|
|
8956
|
+
/* @__PURE__ */ jsx49(Button, { size: "default", children: "Default" }),
|
|
8957
|
+
/* @__PURE__ */ jsx49(Button, { size: "lg", children: "Large" }),
|
|
8958
|
+
/* @__PURE__ */ jsx49(Button, { size: "icon", children: "\u{1F514}" })
|
|
8634
8959
|
] }),
|
|
8635
|
-
/* @__PURE__ */
|
|
8636
|
-
/* @__PURE__ */
|
|
8637
|
-
/* @__PURE__ */
|
|
8960
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-wrap gap-4 mt-4", children: [
|
|
8961
|
+
/* @__PURE__ */ jsx49(Button, { disabled: true, children: "Disabled" }),
|
|
8962
|
+
/* @__PURE__ */ jsx49(Button, { variant: "outline", disabled: true, children: "Disabled Outline" })
|
|
8638
8963
|
] })
|
|
8639
8964
|
] }),
|
|
8640
|
-
/* @__PURE__ */
|
|
8641
|
-
/* @__PURE__ */
|
|
8642
|
-
/* @__PURE__ */
|
|
8643
|
-
/* @__PURE__ */
|
|
8965
|
+
/* @__PURE__ */ jsx49(Section, { title: "Input", children: /* @__PURE__ */ jsxs33("div", { className: "space-y-4 max-w-md", children: [
|
|
8966
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
8967
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "input-default", children: "Default Input" }),
|
|
8968
|
+
/* @__PURE__ */ jsx49(
|
|
8644
8969
|
Input,
|
|
8645
8970
|
{
|
|
8646
8971
|
id: "input-default",
|
|
@@ -8650,19 +8975,19 @@ var PlaygroundContent = () => {
|
|
|
8650
8975
|
}
|
|
8651
8976
|
)
|
|
8652
8977
|
] }),
|
|
8653
|
-
/* @__PURE__ */
|
|
8654
|
-
/* @__PURE__ */
|
|
8655
|
-
/* @__PURE__ */
|
|
8978
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
8979
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "input-disabled", children: "Disabled Input" }),
|
|
8980
|
+
/* @__PURE__ */ jsx49(Input, { id: "input-disabled", placeholder: "Disabled...", disabled: true })
|
|
8656
8981
|
] }),
|
|
8657
|
-
/* @__PURE__ */
|
|
8658
|
-
/* @__PURE__ */
|
|
8659
|
-
/* @__PURE__ */
|
|
8982
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
8983
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "input-type", children: "Email Input" }),
|
|
8984
|
+
/* @__PURE__ */ jsx49(Input, { id: "input-type", type: "email", placeholder: "email@example.com" })
|
|
8660
8985
|
] })
|
|
8661
8986
|
] }) }),
|
|
8662
|
-
/* @__PURE__ */
|
|
8663
|
-
/* @__PURE__ */
|
|
8664
|
-
/* @__PURE__ */
|
|
8665
|
-
/* @__PURE__ */
|
|
8987
|
+
/* @__PURE__ */ jsx49(Section, { title: "Textarea", children: /* @__PURE__ */ jsxs33("div", { className: "space-y-4 max-w-md", children: [
|
|
8988
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
8989
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "textarea-default", children: "Default Textarea" }),
|
|
8990
|
+
/* @__PURE__ */ jsx49(
|
|
8666
8991
|
Textarea,
|
|
8667
8992
|
{
|
|
8668
8993
|
id: "textarea-default",
|
|
@@ -8672,52 +8997,52 @@ var PlaygroundContent = () => {
|
|
|
8672
8997
|
}
|
|
8673
8998
|
)
|
|
8674
8999
|
] }),
|
|
8675
|
-
/* @__PURE__ */
|
|
8676
|
-
/* @__PURE__ */
|
|
8677
|
-
/* @__PURE__ */
|
|
9000
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9001
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "textarea-disabled", children: "Disabled Textarea" }),
|
|
9002
|
+
/* @__PURE__ */ jsx49(Textarea, { id: "textarea-disabled", placeholder: "Disabled...", disabled: true })
|
|
8678
9003
|
] })
|
|
8679
9004
|
] }) }),
|
|
8680
|
-
/* @__PURE__ */
|
|
8681
|
-
/* @__PURE__ */
|
|
8682
|
-
/* @__PURE__ */
|
|
8683
|
-
/* @__PURE__ */
|
|
8684
|
-
/* @__PURE__ */
|
|
8685
|
-
/* @__PURE__ */
|
|
8686
|
-
/* @__PURE__ */
|
|
8687
|
-
/* @__PURE__ */
|
|
8688
|
-
/* @__PURE__ */
|
|
9005
|
+
/* @__PURE__ */ jsx49(Section, { title: "Select", children: /* @__PURE__ */ jsxs33("div", { className: "space-y-4 max-w-md", children: [
|
|
9006
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9007
|
+
/* @__PURE__ */ jsx49(Label, { children: "Default Select" }),
|
|
9008
|
+
/* @__PURE__ */ jsxs33(SelectNamespace, { value: selectValue, onValueChange: setSelectValue, children: [
|
|
9009
|
+
/* @__PURE__ */ jsx49(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx49(SelectValue, { placeholder: "Select an option..." }) }),
|
|
9010
|
+
/* @__PURE__ */ jsxs33(SelectContent, { children: [
|
|
9011
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "option1", children: "Option 1" }),
|
|
9012
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "option2", children: "Option 2" }),
|
|
9013
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "option3", children: "Option 3" })
|
|
8689
9014
|
] })
|
|
8690
9015
|
] })
|
|
8691
9016
|
] }),
|
|
8692
|
-
/* @__PURE__ */
|
|
8693
|
-
/* @__PURE__ */
|
|
8694
|
-
/* @__PURE__ */
|
|
8695
|
-
/* @__PURE__ */
|
|
8696
|
-
/* @__PURE__ */
|
|
8697
|
-
/* @__PURE__ */
|
|
8698
|
-
/* @__PURE__ */
|
|
8699
|
-
/* @__PURE__ */
|
|
8700
|
-
/* @__PURE__ */
|
|
9017
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9018
|
+
/* @__PURE__ */ jsx49(Label, { children: "Grouped Select" }),
|
|
9019
|
+
/* @__PURE__ */ jsxs33(SelectNamespace, { children: [
|
|
9020
|
+
/* @__PURE__ */ jsx49(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx49(SelectValue, { placeholder: "Select a food..." }) }),
|
|
9021
|
+
/* @__PURE__ */ jsxs33(SelectContent, { children: [
|
|
9022
|
+
/* @__PURE__ */ jsxs33(SelectGroup, { children: [
|
|
9023
|
+
/* @__PURE__ */ jsx49(SelectLabel, { children: "Fruits" }),
|
|
9024
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "apple", children: "Apple" }),
|
|
9025
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "banana", children: "Banana" })
|
|
8701
9026
|
] }),
|
|
8702
|
-
/* @__PURE__ */
|
|
8703
|
-
/* @__PURE__ */
|
|
8704
|
-
/* @__PURE__ */
|
|
8705
|
-
/* @__PURE__ */
|
|
9027
|
+
/* @__PURE__ */ jsxs33(SelectGroup, { children: [
|
|
9028
|
+
/* @__PURE__ */ jsx49(SelectLabel, { children: "Vegetables" }),
|
|
9029
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "carrot", children: "Carrot" }),
|
|
9030
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "potato", children: "Potato" })
|
|
8706
9031
|
] })
|
|
8707
9032
|
] })
|
|
8708
9033
|
] })
|
|
8709
9034
|
] }),
|
|
8710
|
-
/* @__PURE__ */
|
|
8711
|
-
/* @__PURE__ */
|
|
8712
|
-
/* @__PURE__ */
|
|
8713
|
-
/* @__PURE__ */
|
|
8714
|
-
/* @__PURE__ */
|
|
9035
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9036
|
+
/* @__PURE__ */ jsx49(Label, { children: "Disabled Select" }),
|
|
9037
|
+
/* @__PURE__ */ jsxs33(SelectNamespace, { disabled: true, children: [
|
|
9038
|
+
/* @__PURE__ */ jsx49(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx49(SelectValue, { placeholder: "Disabled..." }) }),
|
|
9039
|
+
/* @__PURE__ */ jsx49(SelectContent, { children: /* @__PURE__ */ jsx49(SelectItem, { value: "none", children: "None" }) })
|
|
8715
9040
|
] })
|
|
8716
9041
|
] })
|
|
8717
9042
|
] }) }),
|
|
8718
|
-
/* @__PURE__ */
|
|
8719
|
-
/* @__PURE__ */
|
|
8720
|
-
/* @__PURE__ */
|
|
9043
|
+
/* @__PURE__ */ jsx49(Section, { title: "Combobox (Searchable Select)", children: /* @__PURE__ */ jsx49("div", { className: "space-y-4 max-w-md", children: /* @__PURE__ */ jsxs33("div", { children: [
|
|
9044
|
+
/* @__PURE__ */ jsx49(Label, { children: "Framework" }),
|
|
9045
|
+
/* @__PURE__ */ jsx49(
|
|
8721
9046
|
Combobox,
|
|
8722
9047
|
{
|
|
8723
9048
|
options: comboboxOptions,
|
|
@@ -8729,9 +9054,9 @@ var PlaygroundContent = () => {
|
|
|
8729
9054
|
}
|
|
8730
9055
|
)
|
|
8731
9056
|
] }) }) }),
|
|
8732
|
-
/* @__PURE__ */
|
|
8733
|
-
/* @__PURE__ */
|
|
8734
|
-
/* @__PURE__ */
|
|
9057
|
+
/* @__PURE__ */ jsx49(Section, { title: "Checkbox & Switch", children: /* @__PURE__ */ jsxs33("div", { className: "space-y-4", children: [
|
|
9058
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
9059
|
+
/* @__PURE__ */ jsx49(
|
|
8735
9060
|
Checkbox,
|
|
8736
9061
|
{
|
|
8737
9062
|
id: "checkbox",
|
|
@@ -8739,15 +9064,15 @@ var PlaygroundContent = () => {
|
|
|
8739
9064
|
onChange: (e) => setCheckboxChecked(e.target.checked)
|
|
8740
9065
|
}
|
|
8741
9066
|
),
|
|
8742
|
-
/* @__PURE__ */
|
|
9067
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "checkbox", children: "Accept terms and conditions" })
|
|
8743
9068
|
] }),
|
|
8744
|
-
/* @__PURE__ */
|
|
8745
|
-
/* @__PURE__ */
|
|
8746
|
-
/* @__PURE__ */
|
|
9069
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
9070
|
+
/* @__PURE__ */ jsx49(Checkbox, { id: "checkbox-disabled", disabled: true }),
|
|
9071
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "checkbox-disabled", children: "Disabled checkbox" })
|
|
8747
9072
|
] }),
|
|
8748
|
-
/* @__PURE__ */
|
|
8749
|
-
/* @__PURE__ */
|
|
8750
|
-
/* @__PURE__ */
|
|
9073
|
+
/* @__PURE__ */ jsx49(Separator, {}),
|
|
9074
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
9075
|
+
/* @__PURE__ */ jsx49(
|
|
8751
9076
|
Switch,
|
|
8752
9077
|
{
|
|
8753
9078
|
id: "switch",
|
|
@@ -8755,160 +9080,161 @@ var PlaygroundContent = () => {
|
|
|
8755
9080
|
onChange: (e) => setSwitchChecked(e.target.checked)
|
|
8756
9081
|
}
|
|
8757
9082
|
),
|
|
8758
|
-
/* @__PURE__ */
|
|
9083
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "switch", children: "Enable notifications" })
|
|
8759
9084
|
] }),
|
|
8760
|
-
/* @__PURE__ */
|
|
8761
|
-
/* @__PURE__ */
|
|
8762
|
-
/* @__PURE__ */
|
|
9085
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
9086
|
+
/* @__PURE__ */ jsx49(Switch, { id: "switch-disabled", disabled: true }),
|
|
9087
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "switch-disabled", children: "Disabled switch" })
|
|
8763
9088
|
] })
|
|
8764
9089
|
] }) }),
|
|
8765
|
-
/* @__PURE__ */
|
|
8766
|
-
/* @__PURE__ */
|
|
8767
|
-
/* @__PURE__ */
|
|
8768
|
-
/* @__PURE__ */
|
|
8769
|
-
/* @__PURE__ */
|
|
9090
|
+
/* @__PURE__ */ jsx49(Section, { title: "Badge", children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-wrap gap-4", children: [
|
|
9091
|
+
/* @__PURE__ */ jsx49(Badge, { children: "Default" }),
|
|
9092
|
+
/* @__PURE__ */ jsx49(Badge, { color: "success", children: "Success" }),
|
|
9093
|
+
/* @__PURE__ */ jsx49(Badge, { color: "warning", children: "Warning" }),
|
|
9094
|
+
/* @__PURE__ */ jsx49(Badge, { color: "error", variant: "outlined", children: "Error" }),
|
|
9095
|
+
/* @__PURE__ */ jsx49(Badge, { color: "destructive", variant: "text", children: "Destructive" })
|
|
8770
9096
|
] }) }),
|
|
8771
|
-
/* @__PURE__ */
|
|
8772
|
-
/* @__PURE__ */
|
|
8773
|
-
/* @__PURE__ */
|
|
8774
|
-
/* @__PURE__ */
|
|
8775
|
-
/* @__PURE__ */
|
|
9097
|
+
/* @__PURE__ */ jsx49(Section, { title: "Card", children: /* @__PURE__ */ jsxs33("div", { className: "grid gap-4 md:grid-cols-2", children: [
|
|
9098
|
+
/* @__PURE__ */ jsxs33(Card, { children: [
|
|
9099
|
+
/* @__PURE__ */ jsxs33(CardHeader, { children: [
|
|
9100
|
+
/* @__PURE__ */ jsx49(CardTitle, { children: "Card Title" }),
|
|
9101
|
+
/* @__PURE__ */ jsx49(CardDescription, { children: "Card description goes here" })
|
|
8776
9102
|
] }),
|
|
8777
|
-
/* @__PURE__ */
|
|
8778
|
-
/* @__PURE__ */
|
|
8779
|
-
/* @__PURE__ */
|
|
8780
|
-
/* @__PURE__ */
|
|
9103
|
+
/* @__PURE__ */ jsx49(CardContent, { children: /* @__PURE__ */ jsx49("p", { className: "text-foreground", children: "This is the card content area." }) }),
|
|
9104
|
+
/* @__PURE__ */ jsxs33(CardFooter, { children: [
|
|
9105
|
+
/* @__PURE__ */ jsx49(Button, { variant: "outline", className: "mr-2", children: "Cancel" }),
|
|
9106
|
+
/* @__PURE__ */ jsx49(Button, { children: "Submit" })
|
|
8781
9107
|
] })
|
|
8782
9108
|
] }),
|
|
8783
|
-
/* @__PURE__ */
|
|
8784
|
-
/* @__PURE__ */
|
|
8785
|
-
/* @__PURE__ */
|
|
8786
|
-
/* @__PURE__ */
|
|
9109
|
+
/* @__PURE__ */ jsxs33(Card, { children: [
|
|
9110
|
+
/* @__PURE__ */ jsxs33(CardHeader, { children: [
|
|
9111
|
+
/* @__PURE__ */ jsx49(CardTitle, { children: "Another Card" }),
|
|
9112
|
+
/* @__PURE__ */ jsx49(CardDescription, { children: "With different content" })
|
|
8787
9113
|
] }),
|
|
8788
|
-
/* @__PURE__ */
|
|
8789
|
-
/* @__PURE__ */
|
|
8790
|
-
/* @__PURE__ */
|
|
9114
|
+
/* @__PURE__ */ jsx49(CardContent, { children: /* @__PURE__ */ jsxs33("div", { className: "space-y-2", children: [
|
|
9115
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "card-input", children: "Name" }),
|
|
9116
|
+
/* @__PURE__ */ jsx49(Input, { id: "card-input", placeholder: "Enter name..." })
|
|
8791
9117
|
] }) }),
|
|
8792
|
-
/* @__PURE__ */
|
|
9118
|
+
/* @__PURE__ */ jsx49(CardFooter, { children: /* @__PURE__ */ jsx49(Button, { className: "w-full", children: "Save" }) })
|
|
8793
9119
|
] })
|
|
8794
9120
|
] }) }),
|
|
8795
|
-
/* @__PURE__ */
|
|
8796
|
-
/* @__PURE__ */
|
|
8797
|
-
/* @__PURE__ */
|
|
8798
|
-
/* @__PURE__ */
|
|
8799
|
-
/* @__PURE__ */
|
|
8800
|
-
/* @__PURE__ */
|
|
9121
|
+
/* @__PURE__ */ jsxs33(Section, { title: "Dialog", children: [
|
|
9122
|
+
/* @__PURE__ */ jsx49(Button, { onClick: () => setDialogOpen(true), children: "Open Dialog" }),
|
|
9123
|
+
/* @__PURE__ */ jsx49(DialogNamespace, { open: dialogOpen, onOpenChange: setDialogOpen, children: /* @__PURE__ */ jsxs33(DialogContent, { children: [
|
|
9124
|
+
/* @__PURE__ */ jsxs33(DialogHeader, { children: [
|
|
9125
|
+
/* @__PURE__ */ jsx49(DialogTitle, { children: "Create New Zone" }),
|
|
9126
|
+
/* @__PURE__ */ jsx49(DialogDescription, { children: "Fill in the details below to create a new zone." })
|
|
8801
9127
|
] }),
|
|
8802
|
-
/* @__PURE__ */
|
|
8803
|
-
/* @__PURE__ */
|
|
8804
|
-
/* @__PURE__ */
|
|
8805
|
-
/* @__PURE__ */
|
|
8806
|
-
/* @__PURE__ */
|
|
9128
|
+
/* @__PURE__ */ jsxs33("div", { className: "space-y-4 py-4", children: [
|
|
9129
|
+
/* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
9130
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9131
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "zone-name", children: "Zone Name *" }),
|
|
9132
|
+
/* @__PURE__ */ jsx49(Input, { id: "zone-name", placeholder: "eg:hyderabad" })
|
|
8807
9133
|
] }),
|
|
8808
|
-
/* @__PURE__ */
|
|
8809
|
-
/* @__PURE__ */
|
|
8810
|
-
/* @__PURE__ */
|
|
9134
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9135
|
+
/* @__PURE__ */ jsx49(Label, { htmlFor: "zone-code", children: "Zone Code *" }),
|
|
9136
|
+
/* @__PURE__ */ jsx49(Input, { id: "zone-code", placeholder: "eg :hyd022" })
|
|
8811
9137
|
] })
|
|
8812
9138
|
] }),
|
|
8813
|
-
/* @__PURE__ */
|
|
8814
|
-
/* @__PURE__ */
|
|
8815
|
-
/* @__PURE__ */
|
|
8816
|
-
/* @__PURE__ */
|
|
8817
|
-
/* @__PURE__ */
|
|
8818
|
-
/* @__PURE__ */
|
|
8819
|
-
/* @__PURE__ */
|
|
8820
|
-
/* @__PURE__ */
|
|
9139
|
+
/* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
9140
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9141
|
+
/* @__PURE__ */ jsx49(Label, { children: "State *" }),
|
|
9142
|
+
/* @__PURE__ */ jsxs33(SelectNamespace, { children: [
|
|
9143
|
+
/* @__PURE__ */ jsx49(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx49(SelectValue, { placeholder: "Select state" }) }),
|
|
9144
|
+
/* @__PURE__ */ jsxs33(SelectContent, { children: [
|
|
9145
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "telangana", children: "TELANGANA" }),
|
|
9146
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "andhra", children: "ANDHRA PRADESH" })
|
|
8821
9147
|
] })
|
|
8822
9148
|
] })
|
|
8823
9149
|
] }),
|
|
8824
|
-
/* @__PURE__ */
|
|
8825
|
-
/* @__PURE__ */
|
|
8826
|
-
/* @__PURE__ */
|
|
8827
|
-
/* @__PURE__ */
|
|
8828
|
-
/* @__PURE__ */
|
|
8829
|
-
/* @__PURE__ */
|
|
8830
|
-
/* @__PURE__ */
|
|
9150
|
+
/* @__PURE__ */ jsxs33("div", { children: [
|
|
9151
|
+
/* @__PURE__ */ jsx49(Label, { children: "District *" }),
|
|
9152
|
+
/* @__PURE__ */ jsxs33(SelectNamespace, { children: [
|
|
9153
|
+
/* @__PURE__ */ jsx49(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx49(SelectValue, { placeholder: "Select District" }) }),
|
|
9154
|
+
/* @__PURE__ */ jsxs33(SelectContent, { children: [
|
|
9155
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "hyderabad", children: "HYDERABAD" }),
|
|
9156
|
+
/* @__PURE__ */ jsx49(SelectItem, { value: "rangareddy", children: "RANGAREDDY" })
|
|
8831
9157
|
] })
|
|
8832
9158
|
] })
|
|
8833
9159
|
] })
|
|
8834
9160
|
] })
|
|
8835
9161
|
] }),
|
|
8836
|
-
/* @__PURE__ */
|
|
8837
|
-
/* @__PURE__ */
|
|
8838
|
-
/* @__PURE__ */
|
|
9162
|
+
/* @__PURE__ */ jsxs33(DialogFooter, { children: [
|
|
9163
|
+
/* @__PURE__ */ jsx49(Button, { variant: "outline", onClick: () => setDialogOpen(false), children: "CANCEL" }),
|
|
9164
|
+
/* @__PURE__ */ jsx49(Button, { onClick: () => setDialogOpen(false), children: "Create" })
|
|
8839
9165
|
] })
|
|
8840
9166
|
] }) })
|
|
8841
9167
|
] }),
|
|
8842
|
-
/* @__PURE__ */
|
|
8843
|
-
/* @__PURE__ */
|
|
8844
|
-
/* @__PURE__ */
|
|
8845
|
-
/* @__PURE__ */
|
|
8846
|
-
/* @__PURE__ */
|
|
8847
|
-
/* @__PURE__ */
|
|
8848
|
-
/* @__PURE__ */
|
|
9168
|
+
/* @__PURE__ */ jsx49(Section, { title: "Table", children: /* @__PURE__ */ jsxs33(TableNamespace, { children: [
|
|
9169
|
+
/* @__PURE__ */ jsx49(TableCaption, { children: "A list of recent invoices" }),
|
|
9170
|
+
/* @__PURE__ */ jsx49(TableHeader, { children: /* @__PURE__ */ jsxs33(TableRow, { children: [
|
|
9171
|
+
/* @__PURE__ */ jsx49(TableHead, { children: "Invoice" }),
|
|
9172
|
+
/* @__PURE__ */ jsx49(TableHead, { children: "Status" }),
|
|
9173
|
+
/* @__PURE__ */ jsx49(TableHead, { children: "Method" }),
|
|
9174
|
+
/* @__PURE__ */ jsx49(TableHead, { className: "text-right", children: "Amount" })
|
|
8849
9175
|
] }) }),
|
|
8850
|
-
/* @__PURE__ */
|
|
8851
|
-
/* @__PURE__ */
|
|
8852
|
-
/* @__PURE__ */
|
|
8853
|
-
/* @__PURE__ */
|
|
8854
|
-
/* @__PURE__ */
|
|
8855
|
-
/* @__PURE__ */
|
|
9176
|
+
/* @__PURE__ */ jsxs33(TableBody, { children: [
|
|
9177
|
+
/* @__PURE__ */ jsxs33(TableRow, { children: [
|
|
9178
|
+
/* @__PURE__ */ jsx49(TableCell, { children: "INV001" }),
|
|
9179
|
+
/* @__PURE__ */ jsx49(TableCell, { children: /* @__PURE__ */ jsx49(Badge, { color: "success", children: "Paid" }) }),
|
|
9180
|
+
/* @__PURE__ */ jsx49(TableCell, { children: "Credit Card" }),
|
|
9181
|
+
/* @__PURE__ */ jsx49(TableCell, { className: "text-right", children: "$250.00" })
|
|
8856
9182
|
] }),
|
|
8857
|
-
/* @__PURE__ */
|
|
8858
|
-
/* @__PURE__ */
|
|
8859
|
-
/* @__PURE__ */
|
|
8860
|
-
/* @__PURE__ */
|
|
8861
|
-
/* @__PURE__ */
|
|
9183
|
+
/* @__PURE__ */ jsxs33(TableRow, { children: [
|
|
9184
|
+
/* @__PURE__ */ jsx49(TableCell, { children: "INV002" }),
|
|
9185
|
+
/* @__PURE__ */ jsx49(TableCell, { children: /* @__PURE__ */ jsx49(Badge, { color: "warning", variant: "outlined", children: "Pending" }) }),
|
|
9186
|
+
/* @__PURE__ */ jsx49(TableCell, { children: "PayPal" }),
|
|
9187
|
+
/* @__PURE__ */ jsx49(TableCell, { className: "text-right", children: "$150.00" })
|
|
8862
9188
|
] }),
|
|
8863
|
-
/* @__PURE__ */
|
|
8864
|
-
/* @__PURE__ */
|
|
8865
|
-
/* @__PURE__ */
|
|
8866
|
-
/* @__PURE__ */
|
|
8867
|
-
/* @__PURE__ */
|
|
9189
|
+
/* @__PURE__ */ jsxs33(TableRow, { children: [
|
|
9190
|
+
/* @__PURE__ */ jsx49(TableCell, { children: "INV003" }),
|
|
9191
|
+
/* @__PURE__ */ jsx49(TableCell, { children: /* @__PURE__ */ jsx49(Badge, { color: "error", variant: "outlined", children: "Failed" }) }),
|
|
9192
|
+
/* @__PURE__ */ jsx49(TableCell, { children: "Bank Transfer" }),
|
|
9193
|
+
/* @__PURE__ */ jsx49(TableCell, { className: "text-right", children: "$350.00" })
|
|
8868
9194
|
] })
|
|
8869
9195
|
] })
|
|
8870
9196
|
] }) }),
|
|
8871
|
-
/* @__PURE__ */
|
|
8872
|
-
/* @__PURE__ */
|
|
8873
|
-
/* @__PURE__ */
|
|
8874
|
-
/* @__PURE__ */
|
|
8875
|
-
/* @__PURE__ */
|
|
8876
|
-
/* @__PURE__ */
|
|
8877
|
-
/* @__PURE__ */
|
|
9197
|
+
/* @__PURE__ */ jsx49(Section, { title: "Pagination", children: /* @__PURE__ */ jsx49(PaginationNamespace, { children: /* @__PURE__ */ jsxs33(PaginationContent, { children: [
|
|
9198
|
+
/* @__PURE__ */ jsx49(PaginationItem, { children: /* @__PURE__ */ jsx49(PaginationPrevious, { onClick: () => console.log("Previous") }) }),
|
|
9199
|
+
/* @__PURE__ */ jsx49(PaginationItem, { children: /* @__PURE__ */ jsx49(PaginationLink, { isActive: true, children: "1" }) }),
|
|
9200
|
+
/* @__PURE__ */ jsx49(PaginationItem, { children: /* @__PURE__ */ jsx49(PaginationLink, { children: "2" }) }),
|
|
9201
|
+
/* @__PURE__ */ jsx49(PaginationItem, { children: /* @__PURE__ */ jsx49(PaginationLink, { children: "3" }) }),
|
|
9202
|
+
/* @__PURE__ */ jsx49(PaginationItem, { children: /* @__PURE__ */ jsx49(PaginationEllipsis, {}) }),
|
|
9203
|
+
/* @__PURE__ */ jsx49(PaginationItem, { children: /* @__PURE__ */ jsx49(PaginationNext, { onClick: () => console.log("Next") }) })
|
|
8878
9204
|
] }) }) }),
|
|
8879
|
-
/* @__PURE__ */
|
|
8880
|
-
/* @__PURE__ */
|
|
8881
|
-
/* @__PURE__ */
|
|
8882
|
-
/* @__PURE__ */
|
|
9205
|
+
/* @__PURE__ */ jsx49(Section, { title: "Spinner", children: /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-8", children: [
|
|
9206
|
+
/* @__PURE__ */ jsxs33("div", { className: "text-center", children: [
|
|
9207
|
+
/* @__PURE__ */ jsx49(Spinner, { size: "sm" }),
|
|
9208
|
+
/* @__PURE__ */ jsx49("p", { className: "text-sm text-muted-foreground mt-2", children: "Small" })
|
|
8883
9209
|
] }),
|
|
8884
|
-
/* @__PURE__ */
|
|
8885
|
-
/* @__PURE__ */
|
|
8886
|
-
/* @__PURE__ */
|
|
9210
|
+
/* @__PURE__ */ jsxs33("div", { className: "text-center", children: [
|
|
9211
|
+
/* @__PURE__ */ jsx49(Spinner, { size: "default" }),
|
|
9212
|
+
/* @__PURE__ */ jsx49("p", { className: "text-sm text-muted-foreground mt-2", children: "Default" })
|
|
8887
9213
|
] }),
|
|
8888
|
-
/* @__PURE__ */
|
|
8889
|
-
/* @__PURE__ */
|
|
8890
|
-
/* @__PURE__ */
|
|
9214
|
+
/* @__PURE__ */ jsxs33("div", { className: "text-center", children: [
|
|
9215
|
+
/* @__PURE__ */ jsx49(Spinner, { size: "lg" }),
|
|
9216
|
+
/* @__PURE__ */ jsx49("p", { className: "text-sm text-muted-foreground mt-2", children: "Large" })
|
|
8891
9217
|
] })
|
|
8892
9218
|
] }) }),
|
|
8893
|
-
/* @__PURE__ */
|
|
8894
|
-
/* @__PURE__ */
|
|
8895
|
-
/* @__PURE__ */
|
|
8896
|
-
/* @__PURE__ */
|
|
8897
|
-
/* @__PURE__ */
|
|
8898
|
-
/* @__PURE__ */
|
|
8899
|
-
/* @__PURE__ */
|
|
8900
|
-
/* @__PURE__ */
|
|
9219
|
+
/* @__PURE__ */ jsx49(Section, { title: "Separator", children: /* @__PURE__ */ jsxs33("div", { className: "space-y-4", children: [
|
|
9220
|
+
/* @__PURE__ */ jsx49("p", { className: "text-foreground", children: "Content above separator" }),
|
|
9221
|
+
/* @__PURE__ */ jsx49(Separator, {}),
|
|
9222
|
+
/* @__PURE__ */ jsx49("p", { className: "text-foreground", children: "Content below separator" }),
|
|
9223
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center h-10", children: [
|
|
9224
|
+
/* @__PURE__ */ jsx49("span", { className: "text-foreground", children: "Left" }),
|
|
9225
|
+
/* @__PURE__ */ jsx49(Separator, { orientation: "vertical", className: "mx-4" }),
|
|
9226
|
+
/* @__PURE__ */ jsx49("span", { className: "text-foreground", children: "Right" })
|
|
8901
9227
|
] })
|
|
8902
9228
|
] }) }),
|
|
8903
|
-
/* @__PURE__ */
|
|
8904
|
-
/* @__PURE__ */
|
|
8905
|
-
/* @__PURE__ */
|
|
8906
|
-
/* @__PURE__ */
|
|
8907
|
-
/* @__PURE__ */
|
|
9229
|
+
/* @__PURE__ */ jsx49(Section, { title: "Typography & Colors", children: /* @__PURE__ */ jsxs33("div", { className: "space-y-2", children: [
|
|
9230
|
+
/* @__PURE__ */ jsx49("p", { className: "text-foreground", children: "text-foreground - Primary text color" }),
|
|
9231
|
+
/* @__PURE__ */ jsx49("p", { className: "text-muted-foreground", children: "text-muted-foreground - Muted text color" }),
|
|
9232
|
+
/* @__PURE__ */ jsx49("p", { className: "text-accent", children: "text-accent - Accent color" }),
|
|
9233
|
+
/* @__PURE__ */ jsx49("p", { className: "text-destructive", children: "text-destructive - Destructive color" })
|
|
8908
9234
|
] }) })
|
|
8909
9235
|
] }) });
|
|
8910
9236
|
};
|
|
8911
|
-
var Playground = () => /* @__PURE__ */
|
|
9237
|
+
var Playground = () => /* @__PURE__ */ jsx49(ThemeProvider, { defaultTheme: "light", children: /* @__PURE__ */ jsx49(PlaygroundContent, {}) });
|
|
8912
9238
|
export {
|
|
8913
9239
|
Accordion,
|
|
8914
9240
|
AccordionContent,
|
|
@@ -8931,6 +9257,7 @@ export {
|
|
|
8931
9257
|
AreaChart,
|
|
8932
9258
|
Avatar,
|
|
8933
9259
|
AvatarGroup,
|
|
9260
|
+
Backdrop,
|
|
8934
9261
|
Badge,
|
|
8935
9262
|
BarChart,
|
|
8936
9263
|
BottomNavigation,
|
|
@@ -9091,6 +9418,9 @@ export {
|
|
|
9091
9418
|
SkeletonTableRow,
|
|
9092
9419
|
SkeletonText,
|
|
9093
9420
|
Slider,
|
|
9421
|
+
Snackbar,
|
|
9422
|
+
SnackbarContent,
|
|
9423
|
+
SnackbarProvider,
|
|
9094
9424
|
Spinner,
|
|
9095
9425
|
Stack,
|
|
9096
9426
|
Switch,
|
|
@@ -9139,6 +9469,7 @@ export {
|
|
|
9139
9469
|
useFormControl,
|
|
9140
9470
|
useSidebar,
|
|
9141
9471
|
useSidebarRail,
|
|
9472
|
+
useSnackbar,
|
|
9142
9473
|
useTheme
|
|
9143
9474
|
};
|
|
9144
9475
|
//# sourceMappingURL=index.js.map
|