@optigrit/optigrit-ui 0.0.8 → 0.0.10
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/{chunk-CRWBYFRD.js → chunk-62RFRYVU.js} +1 -1
- package/dist/components/index.d.ts +55 -3
- package/dist/components/index.js +389 -76
- package/dist/core/index.d.ts +5 -29
- package/dist/core/index.js +1 -1
- package/dist/{Input-CBAdjRy6.d.ts → types-BSufqQYT.d.ts} +26 -2
- package/package.json +1 -1
|
@@ -207,7 +207,7 @@ var Input = forwardRef((props, ref) => {
|
|
|
207
207
|
transform: "translateY(0) scale(1)"
|
|
208
208
|
});
|
|
209
209
|
Object.assign(input.style, {
|
|
210
|
-
paddingLeft: startIcon ? `${startIconWidth
|
|
210
|
+
paddingLeft: startIcon ? `${startIconWidth}px` : "8px",
|
|
211
211
|
paddingRight: endIcon ? `${endIconWidth + 8}px` : "8px"
|
|
212
212
|
});
|
|
213
213
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import React__default, { ButtonHTMLAttributes, ReactNode, HTMLAttributes, RefObject, TableHTMLAttributes } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import { P as PopoverProps, a as InputProps } from '../
|
|
4
|
+
import { P as PopoverProps, a as InputProps, S as ShowWithAnimationProps } from '../types-BSufqQYT.js';
|
|
5
5
|
|
|
6
6
|
type ButtonVariant = "contained" | "outlined" | "soft" | "text";
|
|
7
7
|
type ButtonColor = "primary" | "secondary" | "error" | "success" | "warning" | "info";
|
|
@@ -48,7 +48,7 @@ type InputFieldProps = {
|
|
|
48
48
|
validateValue?: (value: string) => string | null;
|
|
49
49
|
onChangeValue?: (value: string) => void;
|
|
50
50
|
containerProps?: HTMLAttributes<HTMLDivElement> & {
|
|
51
|
-
ref
|
|
51
|
+
ref?: RefObject<HTMLDivElement | null>;
|
|
52
52
|
};
|
|
53
53
|
} & Omit<InputProps, 'value'>;
|
|
54
54
|
declare function InputField(props: InputFieldProps): react_jsx_runtime.JSX.Element;
|
|
@@ -77,6 +77,38 @@ type MultiSelectProps = {
|
|
|
77
77
|
} & Omit<InputFieldProps, 'readOnly' | 'value' | 'onChange' | 'onChangeValue'>;
|
|
78
78
|
declare function MultiSelect(props: MultiSelectProps): react_jsx_runtime.JSX.Element;
|
|
79
79
|
|
|
80
|
+
interface SearchBarProps extends Omit<InputProps, 'value' | 'defaultValue'> {
|
|
81
|
+
value?: string;
|
|
82
|
+
defaultValue?: string;
|
|
83
|
+
onSearch: (value: string) => void;
|
|
84
|
+
delay?: number;
|
|
85
|
+
loading?: boolean;
|
|
86
|
+
}
|
|
87
|
+
declare const SearchBar: React__default.ForwardRefExoticComponent<SearchBarProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
88
|
+
|
|
89
|
+
type TabListProps = {
|
|
90
|
+
activeTabValue: string;
|
|
91
|
+
onChangeActiveTabValue: (value: string) => void;
|
|
92
|
+
tabs: Array<{
|
|
93
|
+
value: string;
|
|
94
|
+
label: string;
|
|
95
|
+
}>;
|
|
96
|
+
} & Omit<HTMLAttributes<HTMLDivElement>, "children">;
|
|
97
|
+
declare function TabList(props: TabListProps): react_jsx_runtime.JSX.Element;
|
|
98
|
+
|
|
99
|
+
type RenderPanelProps = {
|
|
100
|
+
activePanelValue: string;
|
|
101
|
+
panels: Array<{
|
|
102
|
+
value: string;
|
|
103
|
+
content: ReactNode;
|
|
104
|
+
}>;
|
|
105
|
+
animationStyle?: ShowWithAnimationProps['animationStyle'];
|
|
106
|
+
panelRemoveOnHide?: boolean;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
type TabPanelProps = RenderPanelProps & Omit<HTMLAttributes<HTMLDivElement>, "children">;
|
|
110
|
+
declare function TabPanel(props: TabPanelProps): react_jsx_runtime.JSX.Element;
|
|
111
|
+
|
|
80
112
|
interface TableProps extends TableHTMLAttributes<HTMLTableElement> {
|
|
81
113
|
stickyHeader?: boolean;
|
|
82
114
|
size?: "small" | "medium";
|
|
@@ -129,6 +161,20 @@ interface CarouselProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
|
129
161
|
}
|
|
130
162
|
declare const Carousel: React__default.ForwardRefExoticComponent<CarouselProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
131
163
|
|
|
164
|
+
interface SeparatorProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
165
|
+
/**
|
|
166
|
+
* The orientation of the separator.
|
|
167
|
+
* @default 'horizontal'
|
|
168
|
+
*/
|
|
169
|
+
orientation?: 'horizontal' | 'vertical';
|
|
170
|
+
/**
|
|
171
|
+
* Whether the element is purely decorative or semantic.
|
|
172
|
+
* @default true
|
|
173
|
+
*/
|
|
174
|
+
decorative?: boolean;
|
|
175
|
+
}
|
|
176
|
+
declare const Separator: React__default.ForwardRefExoticComponent<SeparatorProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
177
|
+
|
|
132
178
|
type DialogProps = {
|
|
133
179
|
open: boolean;
|
|
134
180
|
onClose?: () => void;
|
|
@@ -201,4 +247,10 @@ interface CardContentProps extends React__default.HTMLAttributes<HTMLDivElement>
|
|
|
201
247
|
}
|
|
202
248
|
declare const CardContent: React__default.ForwardRefExoticComponent<CardContentProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
203
249
|
|
|
204
|
-
|
|
250
|
+
interface CardFooterProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
251
|
+
text?: React__default.ReactNode;
|
|
252
|
+
action?: React__default.ReactNode;
|
|
253
|
+
}
|
|
254
|
+
declare const CardFooter: React__default.ForwardRefExoticComponent<CardFooterProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
255
|
+
|
|
256
|
+
export { Button, type ButtonColor, type ButtonProps, type ButtonRoundness, type ButtonSize, type ButtonVariant, Card, CardContent, type CardContentProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, Carousel, type CarouselItem, type CarouselProps, Dialog, DialogContent, DialogFooter, DialogHeader, type DialogProps, Drawer, DrawerContent, DrawerFooter, DrawerHeader, type DrawerProps, IconButton, type IconButtonProps, InputField, type InputFieldProps, MultiSelect, type MultiSelectProps, SearchBar, type SearchBarProps, Select, type SelectProps, Separator, type SeparatorProps, TabList, type TabListProps, TabPanel, type TabPanelProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableContainer, type TableContainerProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tooltip, type TooltipProps };
|
package/dist/components/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
ShowWithAnimation,
|
|
7
7
|
Spinner,
|
|
8
8
|
cn
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-62RFRYVU.js";
|
|
10
10
|
import "../chunk-MCQS3QNN.js";
|
|
11
11
|
import {
|
|
12
12
|
useKeyboardShortcuts
|
|
@@ -96,8 +96,7 @@ var Button = forwardRef(
|
|
|
96
96
|
className,
|
|
97
97
|
children,
|
|
98
98
|
type = "button",
|
|
99
|
-
onClick
|
|
100
|
-
...rest
|
|
99
|
+
onClick
|
|
101
100
|
}, ref) => {
|
|
102
101
|
const rippleRef = useRef(null);
|
|
103
102
|
const isDisabled = disabled || loading;
|
|
@@ -134,7 +133,6 @@ var Button = forwardRef(
|
|
|
134
133
|
fullWidth && "w-full",
|
|
135
134
|
className
|
|
136
135
|
),
|
|
137
|
-
...rest,
|
|
138
136
|
children: [
|
|
139
137
|
/* @__PURE__ */ jsx(Ripple, { ref: rippleRef, color: getRippleColor(variant, color) }),
|
|
140
138
|
loading && /* @__PURE__ */ jsx(Spinner, { size: spinnerSize[size], color: "inherit" }),
|
|
@@ -624,6 +622,269 @@ function MultiSelect(props) {
|
|
|
624
622
|
] });
|
|
625
623
|
}
|
|
626
624
|
|
|
625
|
+
// src/components/Forms/SearchBar/SearchBar.tsx
|
|
626
|
+
import React, { useState as useState5, useEffect, useRef as useRef7 } from "react";
|
|
627
|
+
|
|
628
|
+
// src/shared/Icons/SearchIcon.tsx
|
|
629
|
+
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
630
|
+
var SearchIcon = (props) => /* @__PURE__ */ jsxs7(
|
|
631
|
+
"svg",
|
|
632
|
+
{
|
|
633
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
634
|
+
width: "18",
|
|
635
|
+
height: "18",
|
|
636
|
+
viewBox: "0 0 24 24",
|
|
637
|
+
fill: "none",
|
|
638
|
+
stroke: "currentColor",
|
|
639
|
+
strokeWidth: "2",
|
|
640
|
+
strokeLinecap: "round",
|
|
641
|
+
strokeLinejoin: "round",
|
|
642
|
+
...props,
|
|
643
|
+
children: [
|
|
644
|
+
/* @__PURE__ */ jsx7("circle", { cx: "11", cy: "11", r: "8" }),
|
|
645
|
+
/* @__PURE__ */ jsx7("path", { d: "m21 21-4.3-4.3" })
|
|
646
|
+
]
|
|
647
|
+
}
|
|
648
|
+
);
|
|
649
|
+
|
|
650
|
+
// src/shared/Icons/CrossIcon.tsx
|
|
651
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
652
|
+
var CrossIcon = (props) => /* @__PURE__ */ jsxs8(
|
|
653
|
+
"svg",
|
|
654
|
+
{
|
|
655
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
656
|
+
width: "14",
|
|
657
|
+
height: "14",
|
|
658
|
+
viewBox: "0 0 24 24",
|
|
659
|
+
fill: "none",
|
|
660
|
+
stroke: "currentColor",
|
|
661
|
+
strokeWidth: "2.5",
|
|
662
|
+
strokeLinecap: "round",
|
|
663
|
+
strokeLinejoin: "round",
|
|
664
|
+
...props,
|
|
665
|
+
children: [
|
|
666
|
+
/* @__PURE__ */ jsx8("path", { d: "M18 6 6 18" }),
|
|
667
|
+
/* @__PURE__ */ jsx8("path", { d: "m6 6 12 12" })
|
|
668
|
+
]
|
|
669
|
+
}
|
|
670
|
+
);
|
|
671
|
+
|
|
672
|
+
// src/components/Forms/SearchBar/SearchBar.tsx
|
|
673
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
674
|
+
var SearchBar = React.forwardRef(
|
|
675
|
+
({
|
|
676
|
+
value,
|
|
677
|
+
defaultValue,
|
|
678
|
+
onSearch,
|
|
679
|
+
delay = 300,
|
|
680
|
+
loading = false,
|
|
681
|
+
startIcon,
|
|
682
|
+
endIcon,
|
|
683
|
+
placeholder = "Search..."
|
|
684
|
+
}, ref) => {
|
|
685
|
+
const isControlled = value !== void 0;
|
|
686
|
+
const [internalValue, setInternalValue] = useState5(defaultValue || "");
|
|
687
|
+
const currentValue = isControlled ? value : internalValue;
|
|
688
|
+
const isFirstMount = useRef7(true);
|
|
689
|
+
const debounceTimer = useRef7(null);
|
|
690
|
+
useEffect(() => {
|
|
691
|
+
if (value !== void 0) {
|
|
692
|
+
setInternalValue(value);
|
|
693
|
+
}
|
|
694
|
+
}, [value]);
|
|
695
|
+
const triggerSearch = (val) => {
|
|
696
|
+
if (debounceTimer.current) {
|
|
697
|
+
clearTimeout(debounceTimer.current);
|
|
698
|
+
}
|
|
699
|
+
onSearch?.(val);
|
|
700
|
+
};
|
|
701
|
+
useEffect(() => {
|
|
702
|
+
if (isFirstMount.current) {
|
|
703
|
+
isFirstMount.current = false;
|
|
704
|
+
if (!currentValue) return;
|
|
705
|
+
}
|
|
706
|
+
if (delay === 0) {
|
|
707
|
+
onSearch?.(currentValue);
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
710
|
+
if (debounceTimer.current) {
|
|
711
|
+
clearTimeout(debounceTimer.current);
|
|
712
|
+
}
|
|
713
|
+
debounceTimer.current = setTimeout(() => {
|
|
714
|
+
onSearch?.(currentValue);
|
|
715
|
+
}, delay);
|
|
716
|
+
return () => {
|
|
717
|
+
if (debounceTimer.current) {
|
|
718
|
+
clearTimeout(debounceTimer.current);
|
|
719
|
+
}
|
|
720
|
+
};
|
|
721
|
+
}, [currentValue, delay]);
|
|
722
|
+
const handleOnChange = (e) => {
|
|
723
|
+
const newVal = e.target.value;
|
|
724
|
+
if (!isControlled) {
|
|
725
|
+
setInternalValue(newVal);
|
|
726
|
+
}
|
|
727
|
+
};
|
|
728
|
+
const handleClear = () => {
|
|
729
|
+
if (!isControlled) {
|
|
730
|
+
setInternalValue("");
|
|
731
|
+
}
|
|
732
|
+
triggerSearch("");
|
|
733
|
+
const syntheticEvent = {
|
|
734
|
+
target: { value: "" },
|
|
735
|
+
currentTarget: { value: "" }
|
|
736
|
+
};
|
|
737
|
+
};
|
|
738
|
+
const handleKeyDown = (e) => {
|
|
739
|
+
if (e.key === "Enter") {
|
|
740
|
+
triggerSearch(currentValue);
|
|
741
|
+
} else if (e.key === "Escape") {
|
|
742
|
+
handleClear();
|
|
743
|
+
}
|
|
744
|
+
};
|
|
745
|
+
const defaultSearchIcon = /* @__PURE__ */ jsx9(SearchIcon, { className: "text-gray-400 ml-2" });
|
|
746
|
+
const renderEndIcon = () => {
|
|
747
|
+
if (loading) {
|
|
748
|
+
return /* @__PURE__ */ jsx9("div", { className: "flex items-center justify-center pr-3", children: /* @__PURE__ */ jsx9(Spinner, { size: 16, color: "primary" }) });
|
|
749
|
+
}
|
|
750
|
+
if (currentValue) {
|
|
751
|
+
return /* @__PURE__ */ jsx9(
|
|
752
|
+
"button",
|
|
753
|
+
{
|
|
754
|
+
type: "button",
|
|
755
|
+
onClick: handleClear,
|
|
756
|
+
className: "flex items-center justify-center p-1 mr-2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors rounded-full hover:bg-gray-100 dark:hover:bg-gray-800 cursor-pointer focus:outline-none focus:ring-1 focus:ring-gray-300",
|
|
757
|
+
"aria-label": "Clear search",
|
|
758
|
+
children: /* @__PURE__ */ jsx9(CrossIcon, {})
|
|
759
|
+
}
|
|
760
|
+
);
|
|
761
|
+
}
|
|
762
|
+
return endIcon;
|
|
763
|
+
};
|
|
764
|
+
return /* @__PURE__ */ jsx9(
|
|
765
|
+
Input,
|
|
766
|
+
{
|
|
767
|
+
ref,
|
|
768
|
+
placeholder,
|
|
769
|
+
value: currentValue,
|
|
770
|
+
onChange: handleOnChange,
|
|
771
|
+
onKeyDown: handleKeyDown,
|
|
772
|
+
startIcon: startIcon || defaultSearchIcon,
|
|
773
|
+
endIcon: renderEndIcon()
|
|
774
|
+
}
|
|
775
|
+
);
|
|
776
|
+
}
|
|
777
|
+
);
|
|
778
|
+
SearchBar.displayName = "SearchBar";
|
|
779
|
+
|
|
780
|
+
// src/components/Navigation/Tab/TabList/index.tsx
|
|
781
|
+
import { useEffect as useEffect2, useRef as useRef8 } from "react";
|
|
782
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
783
|
+
function TabList(props) {
|
|
784
|
+
const {
|
|
785
|
+
tabs,
|
|
786
|
+
activeTabValue,
|
|
787
|
+
onChangeActiveTabValue,
|
|
788
|
+
...rest
|
|
789
|
+
} = props;
|
|
790
|
+
const tabsContainer = useRef8(null);
|
|
791
|
+
const activeIndicator = useRef8(null);
|
|
792
|
+
function handleValueChange() {
|
|
793
|
+
if (!tabsContainer.current || !activeIndicator.current) return;
|
|
794
|
+
const tab = tabsContainer.current.querySelector(`#${activeTabValue}`);
|
|
795
|
+
const tabLayoutInfo = tab?.getBoundingClientRect();
|
|
796
|
+
const containerLayoutInfo = tabsContainer.current.getBoundingClientRect();
|
|
797
|
+
if (!tabLayoutInfo) return;
|
|
798
|
+
activeIndicator.current.style.width = `${tabLayoutInfo.width}px`;
|
|
799
|
+
activeIndicator.current.style.height = `${tabLayoutInfo.height}px`;
|
|
800
|
+
activeIndicator.current.style.transform = `translateX(${tabLayoutInfo.left - containerLayoutInfo.left}px)`;
|
|
801
|
+
}
|
|
802
|
+
useEffect2(() => {
|
|
803
|
+
handleValueChange();
|
|
804
|
+
window.addEventListener("resize", handleValueChange);
|
|
805
|
+
tabsContainer.current?.addEventListener("scroll", handleValueChange);
|
|
806
|
+
return () => {
|
|
807
|
+
window.removeEventListener("resize", handleValueChange);
|
|
808
|
+
tabsContainer.current?.removeEventListener("scroll", handleValueChange);
|
|
809
|
+
};
|
|
810
|
+
}, [activeTabValue]);
|
|
811
|
+
return /* @__PURE__ */ jsxs9(
|
|
812
|
+
"div",
|
|
813
|
+
{
|
|
814
|
+
...rest,
|
|
815
|
+
className: cn("bg-bg-secondary w-full p-1 rounded-xl relative", rest.className),
|
|
816
|
+
children: [
|
|
817
|
+
/* @__PURE__ */ jsx10("div", { ref: activeIndicator, className: "absolute rounded-lg bg-primary transition-all duration-200" }),
|
|
818
|
+
/* @__PURE__ */ jsx10("div", { ref: tabsContainer, className: "flex items-center gap-1 w-full overflow-x-auto", children: tabs.map((tab) => /* @__PURE__ */ jsx10(
|
|
819
|
+
"div",
|
|
820
|
+
{
|
|
821
|
+
id: tab.value,
|
|
822
|
+
onClick: () => onChangeActiveTabValue(tab.value),
|
|
823
|
+
className: cn(
|
|
824
|
+
`px-3 py-1 rounded-lg cursor-pointer z-10 transition-all duration-200 whitespace-nowrap hover:bg-primary/20`,
|
|
825
|
+
activeTabValue === tab.value ? "text-white" : "text-text-secondary"
|
|
826
|
+
),
|
|
827
|
+
children: tab.label
|
|
828
|
+
},
|
|
829
|
+
tab.value
|
|
830
|
+
)) })
|
|
831
|
+
]
|
|
832
|
+
}
|
|
833
|
+
);
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
// src/components/Navigation/Tab/TabPanel/RenderPanel.tsx
|
|
837
|
+
import { memo } from "react";
|
|
838
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
839
|
+
var RenderPanel = memo((props) => {
|
|
840
|
+
const {
|
|
841
|
+
activePanelValue,
|
|
842
|
+
panels,
|
|
843
|
+
animationStyle,
|
|
844
|
+
panelRemoveOnHide
|
|
845
|
+
} = props;
|
|
846
|
+
if (panels.length === 0) return null;
|
|
847
|
+
return /* @__PURE__ */ jsx11(
|
|
848
|
+
ShowWithAnimation,
|
|
849
|
+
{
|
|
850
|
+
when: panels[0].value === activePanelValue,
|
|
851
|
+
containerProps: { className: "w-full h-full" },
|
|
852
|
+
className: "w-full h-full",
|
|
853
|
+
removeOnHide: panelRemoveOnHide,
|
|
854
|
+
otherwise: /* @__PURE__ */ jsx11(RenderPanel, { ...props, panels: panels.slice(1) }),
|
|
855
|
+
animationStyle: animationStyle ?? {
|
|
856
|
+
children: {
|
|
857
|
+
from: { scale: 0.9, opacity: 0 },
|
|
858
|
+
active: { scale: 1, opacity: 1 },
|
|
859
|
+
to: { scale: 1.1, opacity: 0 }
|
|
860
|
+
}
|
|
861
|
+
},
|
|
862
|
+
children: panels[0].content
|
|
863
|
+
}
|
|
864
|
+
);
|
|
865
|
+
});
|
|
866
|
+
|
|
867
|
+
// src/components/Navigation/Tab/TabPanel/index.tsx
|
|
868
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
869
|
+
function TabPanel(props) {
|
|
870
|
+
const {
|
|
871
|
+
activePanelValue,
|
|
872
|
+
panels,
|
|
873
|
+
animationStyle,
|
|
874
|
+
panelRemoveOnHide,
|
|
875
|
+
...rest
|
|
876
|
+
} = props;
|
|
877
|
+
return /* @__PURE__ */ jsx12("div", { ...rest, children: /* @__PURE__ */ jsx12(
|
|
878
|
+
RenderPanel,
|
|
879
|
+
{
|
|
880
|
+
activePanelValue,
|
|
881
|
+
panels,
|
|
882
|
+
animationStyle,
|
|
883
|
+
panelRemoveOnHide
|
|
884
|
+
}
|
|
885
|
+
) });
|
|
886
|
+
}
|
|
887
|
+
|
|
627
888
|
// src/components/DataDisplay/Table/Table.tsx
|
|
628
889
|
import { forwardRef as forwardRef3, useMemo } from "react";
|
|
629
890
|
|
|
@@ -636,11 +897,11 @@ var TableContext = createContext({
|
|
|
636
897
|
var useTableContext = () => useContext(TableContext);
|
|
637
898
|
|
|
638
899
|
// src/components/DataDisplay/Table/Table.tsx
|
|
639
|
-
import { jsx as
|
|
900
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
640
901
|
var Table = forwardRef3(
|
|
641
902
|
({ className = "", children, stickyHeader = false, size = "medium", ...props }, ref) => {
|
|
642
903
|
const value = useMemo(() => ({ size, stickyHeader }), [size, stickyHeader]);
|
|
643
|
-
return /* @__PURE__ */
|
|
904
|
+
return /* @__PURE__ */ jsx13(TableContext.Provider, { value, children: /* @__PURE__ */ jsx13(
|
|
644
905
|
"table",
|
|
645
906
|
{
|
|
646
907
|
ref,
|
|
@@ -656,10 +917,10 @@ var Table_default = Table;
|
|
|
656
917
|
|
|
657
918
|
// src/components/DataDisplay/Table/TableBody.tsx
|
|
658
919
|
import { forwardRef as forwardRef4 } from "react";
|
|
659
|
-
import { jsx as
|
|
920
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
660
921
|
var TableBody = forwardRef4(
|
|
661
922
|
({ className = "", children, ...props }, ref) => {
|
|
662
|
-
return /* @__PURE__ */
|
|
923
|
+
return /* @__PURE__ */ jsx14(
|
|
663
924
|
"tbody",
|
|
664
925
|
{
|
|
665
926
|
ref,
|
|
@@ -675,7 +936,7 @@ var TableBody_default = TableBody;
|
|
|
675
936
|
|
|
676
937
|
// src/components/DataDisplay/Table/TableCell.tsx
|
|
677
938
|
import { forwardRef as forwardRef5 } from "react";
|
|
678
|
-
import { jsx as
|
|
939
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
679
940
|
var TableCell = forwardRef5(
|
|
680
941
|
({ className = "", align = "left", padding, variant, component, children, ...props }, ref) => {
|
|
681
942
|
const { size, stickyHeader } = useTableContext();
|
|
@@ -694,7 +955,7 @@ var TableCell = forwardRef5(
|
|
|
694
955
|
checkbox: "p-0 w-[48px] text-center"
|
|
695
956
|
};
|
|
696
957
|
const effectivePadding = padding || "normal";
|
|
697
|
-
return /* @__PURE__ */
|
|
958
|
+
return /* @__PURE__ */ jsx15(
|
|
698
959
|
Component,
|
|
699
960
|
{
|
|
700
961
|
ref,
|
|
@@ -710,10 +971,10 @@ var TableCell_default = TableCell;
|
|
|
710
971
|
|
|
711
972
|
// src/components/DataDisplay/Table/TableContainer.tsx
|
|
712
973
|
import { forwardRef as forwardRef6 } from "react";
|
|
713
|
-
import { jsx as
|
|
974
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
714
975
|
var TableContainer = forwardRef6(
|
|
715
976
|
({ className = "", children, ...props }, ref) => {
|
|
716
|
-
return /* @__PURE__ */
|
|
977
|
+
return /* @__PURE__ */ jsx16(
|
|
717
978
|
"div",
|
|
718
979
|
{
|
|
719
980
|
ref,
|
|
@@ -729,10 +990,10 @@ var TableContainer_default = TableContainer;
|
|
|
729
990
|
|
|
730
991
|
// src/components/DataDisplay/Table/TableFooter.tsx
|
|
731
992
|
import { forwardRef as forwardRef7 } from "react";
|
|
732
|
-
import { jsx as
|
|
993
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
733
994
|
var TableFooter = forwardRef7(
|
|
734
995
|
({ className = "", children, ...props }, ref) => {
|
|
735
|
-
return /* @__PURE__ */
|
|
996
|
+
return /* @__PURE__ */ jsx17(
|
|
736
997
|
"tfoot",
|
|
737
998
|
{
|
|
738
999
|
ref,
|
|
@@ -748,10 +1009,10 @@ var TableFooter_default = TableFooter;
|
|
|
748
1009
|
|
|
749
1010
|
// src/components/DataDisplay/Table/TableHead.tsx
|
|
750
1011
|
import { forwardRef as forwardRef8 } from "react";
|
|
751
|
-
import { jsx as
|
|
1012
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
752
1013
|
var TableHead = forwardRef8(
|
|
753
1014
|
({ className = "", children, ...props }, ref) => {
|
|
754
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ jsx18(
|
|
755
1016
|
"thead",
|
|
756
1017
|
{
|
|
757
1018
|
ref,
|
|
@@ -767,10 +1028,10 @@ var TableHead_default = TableHead;
|
|
|
767
1028
|
|
|
768
1029
|
// src/components/DataDisplay/Table/TableRow.tsx
|
|
769
1030
|
import { forwardRef as forwardRef9 } from "react";
|
|
770
|
-
import { jsx as
|
|
1031
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
771
1032
|
var TableRow = forwardRef9(
|
|
772
1033
|
({ className = "", children, hover = false, selected = false, ...props }, ref) => {
|
|
773
|
-
return /* @__PURE__ */
|
|
1034
|
+
return /* @__PURE__ */ jsx19(
|
|
774
1035
|
"tr",
|
|
775
1036
|
{
|
|
776
1037
|
ref,
|
|
@@ -785,8 +1046,8 @@ TableRow.displayName = "TableRow";
|
|
|
785
1046
|
var TableRow_default = TableRow;
|
|
786
1047
|
|
|
787
1048
|
// src/components/DataDisplay/Carousel/Carousel.tsx
|
|
788
|
-
import { useState as
|
|
789
|
-
import { Fragment as Fragment4, jsx as
|
|
1049
|
+
import { useState as useState6, useEffect as useEffect3, useCallback as useCallback3, forwardRef as forwardRef10 } from "react";
|
|
1050
|
+
import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
790
1051
|
var Carousel = forwardRef10(
|
|
791
1052
|
({
|
|
792
1053
|
items,
|
|
@@ -798,8 +1059,8 @@ var Carousel = forwardRef10(
|
|
|
798
1059
|
style,
|
|
799
1060
|
...props
|
|
800
1061
|
}, ref) => {
|
|
801
|
-
const [currentIndex, setCurrentIndex] =
|
|
802
|
-
const [isHovered, setIsHovered] =
|
|
1062
|
+
const [currentIndex, setCurrentIndex] = useState6(0);
|
|
1063
|
+
const [isHovered, setIsHovered] = useState6(false);
|
|
803
1064
|
const goToNext = useCallback3(() => {
|
|
804
1065
|
setCurrentIndex((prevIndex) => prevIndex === items.length - 1 ? 0 : prevIndex + 1);
|
|
805
1066
|
}, [items.length]);
|
|
@@ -809,7 +1070,7 @@ var Carousel = forwardRef10(
|
|
|
809
1070
|
const goToIndex = (index) => {
|
|
810
1071
|
setCurrentIndex(index);
|
|
811
1072
|
};
|
|
812
|
-
|
|
1073
|
+
useEffect3(() => {
|
|
813
1074
|
if (!autoPlay || isHovered) return;
|
|
814
1075
|
const timer = setInterval(goToNext, interval);
|
|
815
1076
|
return () => clearInterval(timer);
|
|
@@ -817,7 +1078,7 @@ var Carousel = forwardRef10(
|
|
|
817
1078
|
if (!items || items.length === 0) {
|
|
818
1079
|
return null;
|
|
819
1080
|
}
|
|
820
|
-
return /* @__PURE__ */
|
|
1081
|
+
return /* @__PURE__ */ jsxs10(
|
|
821
1082
|
"div",
|
|
822
1083
|
{
|
|
823
1084
|
ref,
|
|
@@ -827,13 +1088,13 @@ var Carousel = forwardRef10(
|
|
|
827
1088
|
onMouseLeave: () => setIsHovered(false),
|
|
828
1089
|
...props,
|
|
829
1090
|
children: [
|
|
830
|
-
/* @__PURE__ */
|
|
1091
|
+
/* @__PURE__ */ jsx20(
|
|
831
1092
|
"div",
|
|
832
1093
|
{
|
|
833
1094
|
className: "flex transition-transform duration-500 ease-in-out h-full w-full flex-1",
|
|
834
1095
|
style: { transform: `translateX(-${currentIndex * 100}%)` },
|
|
835
|
-
children: items.map((item) => /* @__PURE__ */
|
|
836
|
-
/* @__PURE__ */
|
|
1096
|
+
children: items.map((item) => /* @__PURE__ */ jsxs10("div", { className: "w-full h-full relative shrink-0", style: { flex: "0 0 100%" }, children: [
|
|
1097
|
+
/* @__PURE__ */ jsx20(
|
|
837
1098
|
"img",
|
|
838
1099
|
{
|
|
839
1100
|
src: item.imageUrl,
|
|
@@ -841,15 +1102,15 @@ var Carousel = forwardRef10(
|
|
|
841
1102
|
className: "w-full h-full object-cover"
|
|
842
1103
|
}
|
|
843
1104
|
),
|
|
844
|
-
(item.title || item.description) && /* @__PURE__ */
|
|
845
|
-
item.title && /* @__PURE__ */
|
|
846
|
-
item.description && /* @__PURE__ */
|
|
1105
|
+
(item.title || item.description) && /* @__PURE__ */ jsxs10("div", { className: "absolute inset-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent flex flex-col justify-end p-6 md:p-8", children: [
|
|
1106
|
+
item.title && /* @__PURE__ */ jsx20("h3", { className: "text-white text-xl md:text-3xl font-semibold mb-2 transform transition-all duration-500 translate-y-0 opacity-100", children: item.title }),
|
|
1107
|
+
item.description && /* @__PURE__ */ jsx20("p", { className: "text-white/80 text-sm md:text-base max-w-2xl transform transition-all duration-500 delay-100 translate-y-0 opacity-100", children: item.description })
|
|
847
1108
|
] })
|
|
848
1109
|
] }, item.id))
|
|
849
1110
|
}
|
|
850
1111
|
),
|
|
851
|
-
showArrows && items.length > 1 && /* @__PURE__ */
|
|
852
|
-
/* @__PURE__ */
|
|
1112
|
+
showArrows && items.length > 1 && /* @__PURE__ */ jsxs10(Fragment4, { children: [
|
|
1113
|
+
/* @__PURE__ */ jsx20(
|
|
853
1114
|
IconButton_default,
|
|
854
1115
|
{
|
|
855
1116
|
onClick: goToPrevious,
|
|
@@ -857,7 +1118,7 @@ var Carousel = forwardRef10(
|
|
|
857
1118
|
color: "secondary",
|
|
858
1119
|
className: "absolute left-4 top-1/2 -translate-y-1/2 !bg-black/30 hover:!bg-black/50 text-white backdrop-blur-sm transition-all opacity-0 group-hover:opacity-100 disabled:opacity-0 z-10",
|
|
859
1120
|
"aria-label": "Previous slide",
|
|
860
|
-
children: /* @__PURE__ */
|
|
1121
|
+
children: /* @__PURE__ */ jsx20(
|
|
861
1122
|
"svg",
|
|
862
1123
|
{
|
|
863
1124
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -866,12 +1127,12 @@ var Carousel = forwardRef10(
|
|
|
866
1127
|
strokeWidth: 2,
|
|
867
1128
|
stroke: "currentColor",
|
|
868
1129
|
className: "w-5 h-5",
|
|
869
|
-
children: /* @__PURE__ */
|
|
1130
|
+
children: /* @__PURE__ */ jsx20("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 19.5L8.25 12l7.5-7.5" })
|
|
870
1131
|
}
|
|
871
1132
|
)
|
|
872
1133
|
}
|
|
873
1134
|
),
|
|
874
|
-
/* @__PURE__ */
|
|
1135
|
+
/* @__PURE__ */ jsx20(
|
|
875
1136
|
IconButton_default,
|
|
876
1137
|
{
|
|
877
1138
|
onClick: goToNext,
|
|
@@ -879,7 +1140,7 @@ var Carousel = forwardRef10(
|
|
|
879
1140
|
color: "secondary",
|
|
880
1141
|
className: "absolute right-4 top-1/2 -translate-y-1/2 !bg-black/30 hover:!bg-black/50 text-white backdrop-blur-sm transition-all opacity-0 group-hover:opacity-100 disabled:opacity-0 z-10",
|
|
881
1142
|
"aria-label": "Next slide",
|
|
882
|
-
children: /* @__PURE__ */
|
|
1143
|
+
children: /* @__PURE__ */ jsx20(
|
|
883
1144
|
"svg",
|
|
884
1145
|
{
|
|
885
1146
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -888,13 +1149,13 @@ var Carousel = forwardRef10(
|
|
|
888
1149
|
strokeWidth: 2,
|
|
889
1150
|
stroke: "currentColor",
|
|
890
1151
|
className: "w-5 h-5",
|
|
891
|
-
children: /* @__PURE__ */
|
|
1152
|
+
children: /* @__PURE__ */ jsx20("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" })
|
|
892
1153
|
}
|
|
893
1154
|
)
|
|
894
1155
|
}
|
|
895
1156
|
)
|
|
896
1157
|
] }),
|
|
897
|
-
showIndicators && items.length > 1 && /* @__PURE__ */
|
|
1158
|
+
showIndicators && items.length > 1 && /* @__PURE__ */ jsx20("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2 z-20", children: items.map((_, index) => /* @__PURE__ */ jsx20(
|
|
898
1159
|
"button",
|
|
899
1160
|
{
|
|
900
1161
|
onClick: () => goToIndex(index),
|
|
@@ -913,9 +1174,32 @@ var Carousel = forwardRef10(
|
|
|
913
1174
|
);
|
|
914
1175
|
Carousel.displayName = "Carousel";
|
|
915
1176
|
|
|
1177
|
+
// src/components/DataDisplay/Separator/Separator.tsx
|
|
1178
|
+
import React3 from "react";
|
|
1179
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1180
|
+
var Separator = React3.forwardRef(
|
|
1181
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => {
|
|
1182
|
+
return /* @__PURE__ */ jsx21(
|
|
1183
|
+
"div",
|
|
1184
|
+
{
|
|
1185
|
+
ref,
|
|
1186
|
+
role: decorative ? "none" : "separator",
|
|
1187
|
+
"aria-orientation": decorative ? void 0 : orientation,
|
|
1188
|
+
className: cn(
|
|
1189
|
+
"shrink-0 bg-gray-200 dark:bg-gray-800",
|
|
1190
|
+
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
1191
|
+
className
|
|
1192
|
+
),
|
|
1193
|
+
...props
|
|
1194
|
+
}
|
|
1195
|
+
);
|
|
1196
|
+
}
|
|
1197
|
+
);
|
|
1198
|
+
Separator.displayName = "Separator";
|
|
1199
|
+
|
|
916
1200
|
// src/components/Overlay/Dialog/Dialog.tsx
|
|
917
1201
|
import { createPortal } from "react-dom";
|
|
918
|
-
import { jsx as
|
|
1202
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
919
1203
|
function Dialog(props) {
|
|
920
1204
|
const {
|
|
921
1205
|
open,
|
|
@@ -947,7 +1231,7 @@ function Dialog(props) {
|
|
|
947
1231
|
]);
|
|
948
1232
|
if (typeof window === "undefined") return null;
|
|
949
1233
|
return createPortal(
|
|
950
|
-
/* @__PURE__ */
|
|
1234
|
+
/* @__PURE__ */ jsx22(
|
|
951
1235
|
ShowWithAnimation,
|
|
952
1236
|
{
|
|
953
1237
|
when: open,
|
|
@@ -975,7 +1259,7 @@ function Dialog(props) {
|
|
|
975
1259
|
onClose?.();
|
|
976
1260
|
}
|
|
977
1261
|
},
|
|
978
|
-
children: /* @__PURE__ */
|
|
1262
|
+
children: /* @__PURE__ */ jsx22(
|
|
979
1263
|
ShowWithAnimation,
|
|
980
1264
|
{
|
|
981
1265
|
when: open,
|
|
@@ -1000,19 +1284,19 @@ function Dialog(props) {
|
|
|
1000
1284
|
}
|
|
1001
1285
|
|
|
1002
1286
|
// src/components/Overlay/Dialog/DialogHeader.tsx
|
|
1003
|
-
import { jsx as
|
|
1287
|
+
import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1004
1288
|
function DialogHeader(props) {
|
|
1005
1289
|
const { title, children, ...rest } = props;
|
|
1006
|
-
return /* @__PURE__ */
|
|
1007
|
-
/* @__PURE__ */
|
|
1290
|
+
return /* @__PURE__ */ jsxs11("div", { ...rest, className: "px-6 py-4 border-b border-border", children: [
|
|
1291
|
+
/* @__PURE__ */ jsx23(Show, { when: !!title, children: /* @__PURE__ */ jsx23("h1", { className: "text-lg font-medium", children: title }) }),
|
|
1008
1292
|
children
|
|
1009
1293
|
] });
|
|
1010
1294
|
}
|
|
1011
1295
|
|
|
1012
1296
|
// src/components/Overlay/Dialog/DialogFooter.tsx
|
|
1013
|
-
import { jsx as
|
|
1297
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1014
1298
|
function DialogFooter(props) {
|
|
1015
|
-
return /* @__PURE__ */
|
|
1299
|
+
return /* @__PURE__ */ jsx24(
|
|
1016
1300
|
"div",
|
|
1017
1301
|
{
|
|
1018
1302
|
...props,
|
|
@@ -1022,9 +1306,9 @@ function DialogFooter(props) {
|
|
|
1022
1306
|
}
|
|
1023
1307
|
|
|
1024
1308
|
// src/components/Overlay/Dialog/DialogContent.tsx
|
|
1025
|
-
import { jsx as
|
|
1309
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1026
1310
|
function DialogContent(props) {
|
|
1027
|
-
return /* @__PURE__ */
|
|
1311
|
+
return /* @__PURE__ */ jsx25(
|
|
1028
1312
|
"div",
|
|
1029
1313
|
{
|
|
1030
1314
|
...props,
|
|
@@ -1035,7 +1319,7 @@ function DialogContent(props) {
|
|
|
1035
1319
|
|
|
1036
1320
|
// src/components/Overlay/Drawer/Drawer.tsx
|
|
1037
1321
|
import { createPortal as createPortal2 } from "react-dom";
|
|
1038
|
-
import { jsx as
|
|
1322
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1039
1323
|
function Drawer(props) {
|
|
1040
1324
|
const {
|
|
1041
1325
|
open,
|
|
@@ -1070,7 +1354,7 @@ function Drawer(props) {
|
|
|
1070
1354
|
}[_size] + (isHorizontal ? "vw" : "vh");
|
|
1071
1355
|
})();
|
|
1072
1356
|
return createPortal2(
|
|
1073
|
-
/* @__PURE__ */
|
|
1357
|
+
/* @__PURE__ */ jsx26(
|
|
1074
1358
|
ShowWithAnimation,
|
|
1075
1359
|
{
|
|
1076
1360
|
when: open,
|
|
@@ -1100,7 +1384,7 @@ function Drawer(props) {
|
|
|
1100
1384
|
onClose?.();
|
|
1101
1385
|
}
|
|
1102
1386
|
},
|
|
1103
|
-
children: /* @__PURE__ */
|
|
1387
|
+
children: /* @__PURE__ */ jsx26(
|
|
1104
1388
|
ShowWithAnimation,
|
|
1105
1389
|
{
|
|
1106
1390
|
when: open,
|
|
@@ -1147,9 +1431,9 @@ function Drawer(props) {
|
|
|
1147
1431
|
}
|
|
1148
1432
|
|
|
1149
1433
|
// src/components/Overlay/Drawer/DrawerContent.tsx
|
|
1150
|
-
import { jsx as
|
|
1434
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1151
1435
|
function DrawerContent({ children, className, style }) {
|
|
1152
|
-
return /* @__PURE__ */
|
|
1436
|
+
return /* @__PURE__ */ jsx27(
|
|
1153
1437
|
"div",
|
|
1154
1438
|
{
|
|
1155
1439
|
className: cn("overflow-auto flex-1 p-4 relative hide-scrollbar", className),
|
|
@@ -1160,9 +1444,9 @@ function DrawerContent({ children, className, style }) {
|
|
|
1160
1444
|
}
|
|
1161
1445
|
|
|
1162
1446
|
// src/components/Overlay/Drawer/DrawerHeader.tsx
|
|
1163
|
-
import { jsx as
|
|
1447
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1164
1448
|
function DrawerHeader({ children, className, style }) {
|
|
1165
|
-
return /* @__PURE__ */
|
|
1449
|
+
return /* @__PURE__ */ jsx28(
|
|
1166
1450
|
"div",
|
|
1167
1451
|
{
|
|
1168
1452
|
className: cn("sticky top-0 z-20 backdrop-blur-sm bg-white/60 px-4 py-3 border-b border-border", className),
|
|
@@ -1173,9 +1457,9 @@ function DrawerHeader({ children, className, style }) {
|
|
|
1173
1457
|
}
|
|
1174
1458
|
|
|
1175
1459
|
// src/components/Overlay/Drawer/DrawerFooter.tsx
|
|
1176
|
-
import { jsx as
|
|
1460
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1177
1461
|
function DrawerFooter({ children, className, style }) {
|
|
1178
|
-
return /* @__PURE__ */
|
|
1462
|
+
return /* @__PURE__ */ jsx29(
|
|
1179
1463
|
"div",
|
|
1180
1464
|
{
|
|
1181
1465
|
className: cn("sticky bottom-0 z-20 backdrop-blur-sm bg-white/60 px-4 py-3 border-t border-border", className),
|
|
@@ -1186,11 +1470,11 @@ function DrawerFooter({ children, className, style }) {
|
|
|
1186
1470
|
}
|
|
1187
1471
|
|
|
1188
1472
|
// src/components/Surfaces/Card/Card.tsx
|
|
1189
|
-
import
|
|
1190
|
-
import { jsx as
|
|
1191
|
-
var Card =
|
|
1192
|
-
({ className, ...props }, ref) => {
|
|
1193
|
-
return /* @__PURE__ */
|
|
1473
|
+
import React4 from "react";
|
|
1474
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1475
|
+
var Card = React4.forwardRef(
|
|
1476
|
+
({ className, children, ...props }, ref) => {
|
|
1477
|
+
return /* @__PURE__ */ jsx30(
|
|
1194
1478
|
"div",
|
|
1195
1479
|
{
|
|
1196
1480
|
ref,
|
|
@@ -1198,7 +1482,8 @@ var Card = React2.forwardRef(
|
|
|
1198
1482
|
"w-full rounded-xl border border-gray-200 bg-white text-gray-950 shadow-sm dark:border-gray-800 dark:bg-gray-900 dark:text-gray-50",
|
|
1199
1483
|
className
|
|
1200
1484
|
),
|
|
1201
|
-
...props
|
|
1485
|
+
...props,
|
|
1486
|
+
children
|
|
1202
1487
|
}
|
|
1203
1488
|
);
|
|
1204
1489
|
}
|
|
@@ -1206,23 +1491,23 @@ var Card = React2.forwardRef(
|
|
|
1206
1491
|
Card.displayName = "Card";
|
|
1207
1492
|
|
|
1208
1493
|
// src/components/Surfaces/Card/CardHeader.tsx
|
|
1209
|
-
import
|
|
1210
|
-
import { jsx as
|
|
1211
|
-
var CardHeader =
|
|
1494
|
+
import React5 from "react";
|
|
1495
|
+
import { jsx as jsx31, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1496
|
+
var CardHeader = React5.forwardRef(
|
|
1212
1497
|
({ className, avatar, action, title, subheader, ...props }, ref) => {
|
|
1213
|
-
return /* @__PURE__ */
|
|
1498
|
+
return /* @__PURE__ */ jsxs12(
|
|
1214
1499
|
"div",
|
|
1215
1500
|
{
|
|
1216
1501
|
ref,
|
|
1217
1502
|
className: cn("flex items-center p-6", className),
|
|
1218
1503
|
...props,
|
|
1219
1504
|
children: [
|
|
1220
|
-
avatar && /* @__PURE__ */
|
|
1221
|
-
/* @__PURE__ */
|
|
1222
|
-
title && /* @__PURE__ */
|
|
1223
|
-
subheader && /* @__PURE__ */
|
|
1505
|
+
avatar && /* @__PURE__ */ jsx31("div", { className: "mr-4 flex-shrink-0", children: avatar }),
|
|
1506
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex-1 flex flex-col gap-1", children: [
|
|
1507
|
+
title && /* @__PURE__ */ jsx31("div", { className: "font-semibold leading-none tracking-tight", children: title }),
|
|
1508
|
+
subheader && /* @__PURE__ */ jsx31("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: subheader })
|
|
1224
1509
|
] }),
|
|
1225
|
-
action && /* @__PURE__ */
|
|
1510
|
+
action && /* @__PURE__ */ jsx31("div", { className: "ml-4 flex-shrink-0 self-start", children: action })
|
|
1226
1511
|
]
|
|
1227
1512
|
}
|
|
1228
1513
|
);
|
|
@@ -1231,11 +1516,11 @@ var CardHeader = React3.forwardRef(
|
|
|
1231
1516
|
CardHeader.displayName = "CardHeader";
|
|
1232
1517
|
|
|
1233
1518
|
// src/components/Surfaces/Card/CardContent.tsx
|
|
1234
|
-
import
|
|
1235
|
-
import { jsx as
|
|
1236
|
-
var CardContent =
|
|
1519
|
+
import React6 from "react";
|
|
1520
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1521
|
+
var CardContent = React6.forwardRef(
|
|
1237
1522
|
({ className, ...props }, ref) => {
|
|
1238
|
-
return /* @__PURE__ */
|
|
1523
|
+
return /* @__PURE__ */ jsx32(
|
|
1239
1524
|
"div",
|
|
1240
1525
|
{
|
|
1241
1526
|
ref,
|
|
@@ -1246,10 +1531,34 @@ var CardContent = React4.forwardRef(
|
|
|
1246
1531
|
}
|
|
1247
1532
|
);
|
|
1248
1533
|
CardContent.displayName = "CardContent";
|
|
1534
|
+
|
|
1535
|
+
// src/components/Surfaces/Card/CardFooter.tsx
|
|
1536
|
+
import React7 from "react";
|
|
1537
|
+
import { Fragment as Fragment5, jsx as jsx33, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1538
|
+
var CardFooter = React7.forwardRef(
|
|
1539
|
+
({ className, text, action, children }, ref) => {
|
|
1540
|
+
return /* @__PURE__ */ jsx33(
|
|
1541
|
+
"div",
|
|
1542
|
+
{
|
|
1543
|
+
ref,
|
|
1544
|
+
className: cn(
|
|
1545
|
+
"flex items-center justify-between p-6 bg-white dark:bg-gray-900 rounded-b-xl",
|
|
1546
|
+
className
|
|
1547
|
+
),
|
|
1548
|
+
children: children || /* @__PURE__ */ jsxs13(Fragment5, { children: [
|
|
1549
|
+
text && /* @__PURE__ */ jsx33("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: text }),
|
|
1550
|
+
action && /* @__PURE__ */ jsx33("div", { className: "ml-auto flex items-center gap-2", children: action })
|
|
1551
|
+
] })
|
|
1552
|
+
}
|
|
1553
|
+
);
|
|
1554
|
+
}
|
|
1555
|
+
);
|
|
1556
|
+
CardFooter.displayName = "CardFooter";
|
|
1249
1557
|
export {
|
|
1250
1558
|
Button_default as Button,
|
|
1251
1559
|
Card,
|
|
1252
1560
|
CardContent,
|
|
1561
|
+
CardFooter,
|
|
1253
1562
|
CardHeader,
|
|
1254
1563
|
Carousel,
|
|
1255
1564
|
Dialog,
|
|
@@ -1263,7 +1572,11 @@ export {
|
|
|
1263
1572
|
IconButton_default as IconButton,
|
|
1264
1573
|
InputField,
|
|
1265
1574
|
MultiSelect,
|
|
1575
|
+
SearchBar,
|
|
1266
1576
|
Select,
|
|
1577
|
+
Separator,
|
|
1578
|
+
TabList,
|
|
1579
|
+
TabPanel,
|
|
1267
1580
|
Table_default as Table,
|
|
1268
1581
|
TableBody_default as TableBody,
|
|
1269
1582
|
TableCell_default as TableCell,
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
|
-
import { ReactNode
|
|
3
|
-
import { P as PopoverProps } from '../
|
|
4
|
-
export { I as Input, a as InputProps } from '../
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { P as PopoverProps, S as ShowWithAnimationProps } from '../types-BSufqQYT.js';
|
|
4
|
+
export { I as Input, a as InputProps } from '../types-BSufqQYT.js';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
declare function Popover(props: PopoverProps): React$1.ReactPortal | null;
|
|
@@ -59,31 +59,7 @@ interface SpinnerProps {
|
|
|
59
59
|
*/
|
|
60
60
|
declare function Spinner({ size, thickness, color, className, }: SpinnerProps): react_jsx_runtime.JSX.Element;
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
children: {
|
|
64
|
-
from: CSSProperties;
|
|
65
|
-
active: CSSProperties;
|
|
66
|
-
to?: CSSProperties;
|
|
67
|
-
};
|
|
68
|
-
otherwise?: {
|
|
69
|
-
from: CSSProperties;
|
|
70
|
-
active: CSSProperties;
|
|
71
|
-
to?: CSSProperties;
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
type AnimationsType = 'fade' | 'slide';
|
|
75
|
-
type ShowWhenProps = {
|
|
76
|
-
when: boolean;
|
|
77
|
-
children: ReactNode;
|
|
78
|
-
otherwise?: ReactNode;
|
|
79
|
-
removeOnHide?: boolean;
|
|
80
|
-
animationDuration?: number;
|
|
81
|
-
animationType?: AnimationsType;
|
|
82
|
-
animationStyle?: AnimationStyles;
|
|
83
|
-
containerProps?: HTMLAttributes<HTMLDivElement>;
|
|
84
|
-
} & HTMLAttributes<HTMLDivElement>;
|
|
85
|
-
|
|
86
|
-
declare function ShowWithAnimation(props: ShowWhenProps): react_jsx_runtime.JSX.Element | null;
|
|
62
|
+
declare function ShowWithAnimation(props: ShowWithAnimationProps): react_jsx_runtime.JSX.Element | null;
|
|
87
63
|
|
|
88
64
|
type ShowProps = {
|
|
89
65
|
when: boolean;
|
|
@@ -92,4 +68,4 @@ type ShowProps = {
|
|
|
92
68
|
};
|
|
93
69
|
declare function Show({ when, children, otherwise }: ShowProps): ReactNode;
|
|
94
70
|
|
|
95
|
-
export { Popover, PopoverProps, Ripple, type RippleProps, type RippleRef, Show, type ShowProps,
|
|
71
|
+
export { Popover, PopoverProps, Ripple, type RippleProps, type RippleRef, Show, type ShowProps, ShowWithAnimation, ShowWithAnimationProps, Spinner, type SpinnerColor, type SpinnerProps };
|
package/dist/core/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { HTMLAttributes, RefObject, ReactNode, InputHTMLAttributes } from 'react';
|
|
2
|
+
import { HTMLAttributes, RefObject, ReactNode, InputHTMLAttributes, CSSProperties } from 'react';
|
|
3
3
|
|
|
4
4
|
type PopoverPosition = `${'top' | 'bottom' | 'left' | 'right'}-${'start' | 'center' | 'end'}`;
|
|
5
5
|
type PopoverProps = HTMLAttributes<HTMLDivElement> & {
|
|
@@ -38,4 +38,28 @@ declare const Input: React.ForwardRefExoticComponent<{
|
|
|
38
38
|
inputContainerProps?: HTMLAttributes<HTMLDivElement>;
|
|
39
39
|
} & Omit<InputHTMLAttributes<HTMLInputElement>, "required"> & React.RefAttributes<HTMLInputElement>>;
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
type AnimationStyles = {
|
|
42
|
+
children: {
|
|
43
|
+
from: CSSProperties;
|
|
44
|
+
active: CSSProperties;
|
|
45
|
+
to?: CSSProperties;
|
|
46
|
+
};
|
|
47
|
+
otherwise?: {
|
|
48
|
+
from: CSSProperties;
|
|
49
|
+
active: CSSProperties;
|
|
50
|
+
to?: CSSProperties;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
type AnimationsType = 'fade' | 'slide';
|
|
54
|
+
type ShowWithAnimationProps = {
|
|
55
|
+
when: boolean;
|
|
56
|
+
children: ReactNode;
|
|
57
|
+
otherwise?: ReactNode;
|
|
58
|
+
removeOnHide?: boolean;
|
|
59
|
+
animationDuration?: number;
|
|
60
|
+
animationType?: AnimationsType;
|
|
61
|
+
animationStyle?: AnimationStyles;
|
|
62
|
+
containerProps?: HTMLAttributes<HTMLDivElement>;
|
|
63
|
+
} & HTMLAttributes<HTMLDivElement>;
|
|
64
|
+
|
|
65
|
+
export { Input as I, type PopoverProps as P, type ShowWithAnimationProps as S, type InputProps as a };
|