@xenide-io/the-old-ui-theme 0.3.0 → 0.3.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/chunk-5HSOBJ4F.mjs +5968 -0
- package/dist/{index-D1RTT2Ap.d.mts → index-BgG8Homu.d.mts} +419 -2
- package/dist/{index-D1RTT2Ap.d.ts → index-BgG8Homu.d.ts} +419 -2
- package/dist/index.d.mts +198 -95
- package/dist/index.d.ts +198 -95
- package/dist/index.js +2995 -1136
- package/dist/index.mjs +629 -735
- package/dist/ui.d.mts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +1986 -156
- package/dist/ui.mjs +76 -3
- package/package.json +4 -14
- package/src/app/globals.css +976 -2
- package/src/components/charts/index.ts +9 -8
- package/src/components/charts/quill/BarChart.tsx +85 -0
- package/src/components/charts/quill/FunnelChart.tsx +49 -0
- package/src/components/charts/quill/InsightShell.tsx +27 -0
- package/src/components/charts/quill/MetricCard.tsx +44 -0
- package/src/components/charts/quill/PieChart.tsx +81 -0
- package/src/components/charts/quill/Sparkline.tsx +57 -0
- package/src/components/charts/quill/TimeSeriesLineChart.tsx +62 -0
- package/src/components/charts/quill/index.ts +9 -0
- package/src/components/icons/icons.tsx +2 -0
- package/src/components/icons/index.ts +3 -0
- package/src/components/icons/lemon-brand-icons.tsx +16 -0
- package/src/components/icons/lemon-category-icons.tsx +72 -0
- package/src/components/icons/lemon-icons.tsx +57 -0
- package/src/components/sections/IconShowcase.tsx +110 -7
- package/src/components/sections/NewComponentsShowcase.tsx +1052 -0
- package/src/components/sections/ProductLayoutsShowcase.tsx +57 -117
- package/src/components/sections/QuillChartShowcase.tsx +92 -0
- package/src/components/sections/QuillDashboardShowcase.tsx +149 -0
- package/src/components/sections/SidebarShowcase.tsx +152 -0
- package/src/components/sections/TableShowcase.tsx +2 -0
- package/src/components/sections/TooltipShowcase.tsx +19 -25
- package/src/components/ui/AlertDialog.tsx +62 -0
- package/src/components/ui/AppLayout.tsx +27 -0
- package/src/components/ui/Autocomplete.tsx +106 -0
- package/src/components/ui/Banner.tsx +63 -0
- package/src/components/ui/ButtonGroup.tsx +16 -0
- package/src/components/ui/Chip.tsx +46 -0
- package/src/components/ui/Collapsible.tsx +46 -0
- package/src/components/ui/Combobox.tsx +119 -0
- package/src/components/ui/ContextMenu.tsx +81 -0
- package/src/components/ui/DataTable.tsx +133 -0
- package/src/components/ui/DatePicker.tsx +96 -0
- package/src/components/ui/Dialog.tsx +75 -0
- package/src/components/ui/Divider.tsx +39 -0
- package/src/components/ui/Dot.tsx +32 -0
- package/src/components/ui/InputGroup.tsx +16 -0
- package/src/components/ui/Lettermark.tsx +47 -0
- package/src/components/ui/Link.tsx +32 -0
- package/src/components/ui/LoadingBar.tsx +25 -0
- package/src/components/ui/Menubar.tsx +66 -0
- package/src/components/ui/Metric.tsx +34 -0
- package/src/components/ui/NumberField.tsx +76 -0
- package/src/components/ui/Popover.tsx +73 -0
- package/src/components/ui/ProgressCircle.tsx +63 -0
- package/src/components/ui/Resizable.tsx +71 -0
- package/src/components/ui/Row.tsx +51 -0
- package/src/components/ui/ScrollArea.tsx +54 -0
- package/src/components/ui/Sidebar.tsx +77 -0
- package/src/components/ui/Snack.tsx +48 -0
- package/src/components/ui/Spinner.tsx +30 -0
- package/src/components/ui/Splotch.tsx +33 -0
- package/src/components/ui/Table.tsx +2 -0
- package/src/components/ui/Tag.tsx +65 -0
- package/src/components/ui/Toggle.tsx +62 -0
- package/src/components/ui/Tooltip.test.tsx +58 -0
- package/src/components/ui/Tooltip.tsx +211 -0
- package/src/components/ui/Widget.tsx +31 -0
- package/src/components/ui/index.ts +275 -21
- package/dist/chunk-FDMD3IIN.mjs +0 -3831
- package/src/components/charts/ph-insight-charts.tsx +0 -162
- package/src/components/dashboard/DashboardFiltersBar.tsx +0 -19
- package/src/components/dashboard/DashboardGrid.tsx +0 -23
- package/src/components/dashboard/DashboardInsightPlaceholder.tsx +0 -37
- package/src/components/dashboard/DashboardKpiCard.tsx +0 -25
- package/src/components/dashboard/DashboardToolbar.tsx +0 -23
- package/src/components/dashboard/DashboardWell.tsx +0 -10
- package/src/components/dashboard/InsightMiniCard.tsx +0 -26
- package/src/components/dashboard/InsightShell.tsx +0 -37
- package/src/components/dashboard/InsightShellHeader.tsx +0 -22
- package/src/components/dashboard/MiniTrendBars.tsx +0 -51
- package/src/components/dashboard/index.ts +0 -31
- package/src/components/dashboard/types.ts +0 -9
- package/src/components/sections/ChartShowcase.tsx +0 -190
- package/src/components/sections/DashboardShowcase.tsx +0 -191
- package/src/components/sections/StatShowcase.tsx +0 -129
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { cleanup, render, screen, waitFor } from "@testing-library/react";
|
|
2
|
+
import userEvent from "@testing-library/user-event";
|
|
3
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
4
|
+
import { Tooltip, TooltipProvider } from "@/components/ui/Tooltip";
|
|
5
|
+
|
|
6
|
+
afterEach(cleanup);
|
|
7
|
+
|
|
8
|
+
describe("Tooltip", () => {
|
|
9
|
+
it("opens when its trigger is hovered", async () => {
|
|
10
|
+
const user = userEvent.setup();
|
|
11
|
+
render(
|
|
12
|
+
<Tooltip content="Hover details" delayDuration={0}>
|
|
13
|
+
<button type="button">Hover target</button>
|
|
14
|
+
</Tooltip>,
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
await user.hover(screen.getByRole("button", { name: "Hover target" }));
|
|
18
|
+
|
|
19
|
+
expect(await screen.findByRole("tooltip")).toHaveTextContent("Hover details");
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it("opens on keyboard focus and exposes its description to assistive technology", async () => {
|
|
23
|
+
const user = userEvent.setup();
|
|
24
|
+
render(
|
|
25
|
+
<TooltipProvider delayDuration={0}>
|
|
26
|
+
<Tooltip content="Keyboard details" side="bottom">
|
|
27
|
+
<button type="button">Focus target</button>
|
|
28
|
+
</Tooltip>
|
|
29
|
+
</TooltipProvider>,
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
await user.tab();
|
|
33
|
+
|
|
34
|
+
const trigger = screen.getByRole("button", { name: "Focus target" });
|
|
35
|
+
const tooltip = await screen.findByRole("tooltip");
|
|
36
|
+
expect(trigger).toHaveFocus();
|
|
37
|
+
expect(tooltip).toHaveTextContent("Keyboard details");
|
|
38
|
+
expect(trigger).toHaveAttribute("aria-describedby", tooltip.id);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("dismisses an open tooltip with Escape without moving focus", async () => {
|
|
42
|
+
const user = userEvent.setup();
|
|
43
|
+
render(
|
|
44
|
+
<Tooltip content="Dismissible details">
|
|
45
|
+
<button type="button">Dismiss target</button>
|
|
46
|
+
</Tooltip>,
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
await user.tab();
|
|
50
|
+
const trigger = screen.getByRole("button", { name: "Dismiss target" });
|
|
51
|
+
expect(await screen.findByRole("tooltip")).toBeInTheDocument();
|
|
52
|
+
|
|
53
|
+
await user.keyboard("{Escape}");
|
|
54
|
+
|
|
55
|
+
await waitFor(() => expect(screen.queryByRole("tooltip")).not.toBeInTheDocument());
|
|
56
|
+
expect(trigger).toHaveFocus();
|
|
57
|
+
});
|
|
58
|
+
});
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
cloneElement,
|
|
5
|
+
createContext,
|
|
6
|
+
useContext,
|
|
7
|
+
useEffect,
|
|
8
|
+
useId,
|
|
9
|
+
useRef,
|
|
10
|
+
useState,
|
|
11
|
+
type HTMLAttributes,
|
|
12
|
+
type ReactElement,
|
|
13
|
+
type ReactNode,
|
|
14
|
+
} from "react";
|
|
15
|
+
import { createPortal } from "react-dom";
|
|
16
|
+
import { cn } from "@/lib/cn";
|
|
17
|
+
|
|
18
|
+
export type TooltipSide = "top" | "right" | "bottom" | "left";
|
|
19
|
+
export type TooltipAlign = "start" | "center" | "end";
|
|
20
|
+
|
|
21
|
+
export interface TooltipProviderProps {
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
delayDuration?: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface TooltipProps {
|
|
27
|
+
content: ReactNode;
|
|
28
|
+
children: ReactElement<HTMLAttributes<HTMLElement>>;
|
|
29
|
+
side?: TooltipSide;
|
|
30
|
+
align?: TooltipAlign;
|
|
31
|
+
sideOffset?: number;
|
|
32
|
+
collisionPadding?: number;
|
|
33
|
+
className?: string;
|
|
34
|
+
open?: boolean;
|
|
35
|
+
defaultOpen?: boolean;
|
|
36
|
+
onOpenChange?: (open: boolean) => void;
|
|
37
|
+
delayDuration?: number;
|
|
38
|
+
disableHoverableContent?: boolean;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const TooltipDelayContext = createContext(0);
|
|
42
|
+
|
|
43
|
+
export function TooltipProvider({
|
|
44
|
+
children,
|
|
45
|
+
delayDuration = 0,
|
|
46
|
+
}: TooltipProviderProps) {
|
|
47
|
+
return (
|
|
48
|
+
<TooltipDelayContext.Provider value={delayDuration}>
|
|
49
|
+
{children}
|
|
50
|
+
</TooltipDelayContext.Provider>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function tooltipPosition(
|
|
55
|
+
trigger: DOMRect,
|
|
56
|
+
side: TooltipSide,
|
|
57
|
+
align: TooltipAlign,
|
|
58
|
+
offset: number,
|
|
59
|
+
) {
|
|
60
|
+
const horizontal =
|
|
61
|
+
align === "start"
|
|
62
|
+
? trigger.left
|
|
63
|
+
: align === "end"
|
|
64
|
+
? trigger.right
|
|
65
|
+
: trigger.left + trigger.width / 2;
|
|
66
|
+
const vertical =
|
|
67
|
+
align === "start"
|
|
68
|
+
? trigger.top
|
|
69
|
+
: align === "end"
|
|
70
|
+
? trigger.bottom
|
|
71
|
+
: trigger.top + trigger.height / 2;
|
|
72
|
+
if (side === "top")
|
|
73
|
+
return {
|
|
74
|
+
left: horizontal,
|
|
75
|
+
top: trigger.top - offset,
|
|
76
|
+
transform: "translate(-50%, -100%)",
|
|
77
|
+
};
|
|
78
|
+
if (side === "bottom")
|
|
79
|
+
return {
|
|
80
|
+
left: horizontal,
|
|
81
|
+
top: trigger.bottom + offset,
|
|
82
|
+
transform: "translate(-50%, 0)",
|
|
83
|
+
};
|
|
84
|
+
if (side === "left")
|
|
85
|
+
return {
|
|
86
|
+
left: trigger.left - offset,
|
|
87
|
+
top: vertical,
|
|
88
|
+
transform: "translate(-100%, -50%)",
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
left: trigger.right + offset,
|
|
92
|
+
top: vertical,
|
|
93
|
+
transform: "translate(0, -50%)",
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function Tooltip({
|
|
98
|
+
content,
|
|
99
|
+
children,
|
|
100
|
+
side = "top",
|
|
101
|
+
align = "center",
|
|
102
|
+
sideOffset = 7,
|
|
103
|
+
className,
|
|
104
|
+
open,
|
|
105
|
+
defaultOpen = false,
|
|
106
|
+
onOpenChange,
|
|
107
|
+
delayDuration,
|
|
108
|
+
}: TooltipProps) {
|
|
109
|
+
const providerDelay = useContext(TooltipDelayContext);
|
|
110
|
+
const generatedId = useId().replace(/:/g, "");
|
|
111
|
+
const triggerRef = useRef<HTMLSpanElement>(null);
|
|
112
|
+
const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
113
|
+
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
114
|
+
const [position, setPosition] = useState<ReturnType<
|
|
115
|
+
typeof tooltipPosition
|
|
116
|
+
> | null>(null);
|
|
117
|
+
const isOpen = open ?? internalOpen;
|
|
118
|
+
const triggerId = children.props.id;
|
|
119
|
+
const tooltipId = triggerId
|
|
120
|
+
? `${triggerId}-tooltip`
|
|
121
|
+
: `ph-tooltip-${generatedId}`;
|
|
122
|
+
|
|
123
|
+
function setOpen(next: boolean) {
|
|
124
|
+
if (open === undefined) setInternalOpen(next);
|
|
125
|
+
onOpenChange?.(next);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function clearTimer() {
|
|
129
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
130
|
+
timerRef.current = null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function updatePosition() {
|
|
134
|
+
if (!triggerRef.current) return;
|
|
135
|
+
setPosition(
|
|
136
|
+
tooltipPosition(
|
|
137
|
+
triggerRef.current.getBoundingClientRect(),
|
|
138
|
+
side,
|
|
139
|
+
align,
|
|
140
|
+
sideOffset,
|
|
141
|
+
),
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function show(immediate: boolean) {
|
|
146
|
+
clearTimer();
|
|
147
|
+
updatePosition();
|
|
148
|
+
const delay = immediate ? 0 : (delayDuration ?? providerDelay);
|
|
149
|
+
if (!delay) setOpen(true);
|
|
150
|
+
else timerRef.current = setTimeout(() => setOpen(true), delay);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function hide() {
|
|
154
|
+
clearTimer();
|
|
155
|
+
setOpen(false);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
useEffect(() => {
|
|
159
|
+
if (!isOpen) return;
|
|
160
|
+
const reposition = () => updatePosition();
|
|
161
|
+
window.addEventListener("resize", reposition);
|
|
162
|
+
window.addEventListener("scroll", reposition, true);
|
|
163
|
+
return () => {
|
|
164
|
+
window.removeEventListener("resize", reposition);
|
|
165
|
+
window.removeEventListener("scroll", reposition, true);
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
useEffect(() => () => clearTimer(), []);
|
|
170
|
+
|
|
171
|
+
const describedBy = [children.props["aria-describedby"], tooltipId]
|
|
172
|
+
.filter(Boolean)
|
|
173
|
+
.join(" ");
|
|
174
|
+
const trigger = cloneElement(children, { "aria-describedby": describedBy });
|
|
175
|
+
|
|
176
|
+
return (
|
|
177
|
+
<>
|
|
178
|
+
<span
|
|
179
|
+
ref={triggerRef}
|
|
180
|
+
className="inline-flex"
|
|
181
|
+
onMouseEnter={() => show(false)}
|
|
182
|
+
onMouseLeave={hide}
|
|
183
|
+
onFocusCapture={() => show(true)}
|
|
184
|
+
onBlurCapture={hide}
|
|
185
|
+
onKeyDown={(event) => {
|
|
186
|
+
if (event.key === "Escape") hide();
|
|
187
|
+
}}
|
|
188
|
+
>
|
|
189
|
+
{trigger}
|
|
190
|
+
</span>
|
|
191
|
+
{isOpen && position && typeof document !== "undefined"
|
|
192
|
+
? createPortal(
|
|
193
|
+
<span
|
|
194
|
+
style={{ position: "fixed", ...position }}
|
|
195
|
+
className="pointer-events-none z-[200]"
|
|
196
|
+
>
|
|
197
|
+
<span
|
|
198
|
+
id={tooltipId}
|
|
199
|
+
role="tooltip"
|
|
200
|
+
data-side={side}
|
|
201
|
+
className={cn("ph-tooltip-content", className)}
|
|
202
|
+
>
|
|
203
|
+
{content}
|
|
204
|
+
</span>
|
|
205
|
+
</span>,
|
|
206
|
+
document.body,
|
|
207
|
+
)
|
|
208
|
+
: null}
|
|
209
|
+
</>
|
|
210
|
+
);
|
|
211
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { cn } from "@/lib/cn";
|
|
3
|
+
|
|
4
|
+
export interface WidgetProps {
|
|
5
|
+
title: ReactNode;
|
|
6
|
+
onClose?: () => void;
|
|
7
|
+
actions?: ReactNode;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function Widget({ title, onClose, actions, children, className }: WidgetProps) {
|
|
13
|
+
return (
|
|
14
|
+
<div className={cn("ph-widget", className)}>
|
|
15
|
+
<div className="ph-widget__header">
|
|
16
|
+
<span className="ph-widget__title">{title}</span>
|
|
17
|
+
{actions}
|
|
18
|
+
{onClose && (
|
|
19
|
+
<button type="button" onClick={onClose} className="ph-widget__close" aria-label="Close">
|
|
20
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round">
|
|
21
|
+
<path d="M3 3l8 8M11 3l-8 8" />
|
|
22
|
+
</svg>
|
|
23
|
+
</button>
|
|
24
|
+
)}
|
|
25
|
+
</div>
|
|
26
|
+
<div className="ph-widget__content">{children}</div>
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
Widget.displayName = "Widget";
|
|
@@ -1,10 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
Button as Button,
|
|
5
|
+
type ButtonProps as ButtonProps,
|
|
6
|
+
type ButtonShape as ButtonShape,
|
|
7
|
+
type ButtonSize as ButtonSize,
|
|
8
|
+
type ButtonVariant as ButtonVariant,
|
|
9
|
+
} from "@/components/ui/Button";
|
|
10
|
+
export {
|
|
11
|
+
ButtonChrome as ButtonChrome,
|
|
12
|
+
type ButtonChromeProps as ButtonChromeProps,
|
|
13
|
+
} from "@/components/ui/ButtonChrome";
|
|
14
|
+
export {
|
|
15
|
+
Alert as Alert,
|
|
16
|
+
type AlertProps as AlertProps,
|
|
17
|
+
type AlertStatus as AlertStatus,
|
|
18
|
+
} from "@/components/ui/Alert";
|
|
19
|
+
export {
|
|
20
|
+
Badge as Badge,
|
|
21
|
+
type BadgeProps as BadgeProps,
|
|
22
|
+
type BadgeSize as BadgeSize,
|
|
23
|
+
type BadgeVariant as BadgeVariant,
|
|
24
|
+
} from "@/components/ui/Badge";
|
|
25
|
+
export {
|
|
26
|
+
Card as Card,
|
|
27
|
+
type CardProps as CardProps,
|
|
28
|
+
type CardVariant as CardVariant,
|
|
29
|
+
} from "@/components/ui/Card";
|
|
30
|
+
export {
|
|
31
|
+
Drawer as Drawer,
|
|
32
|
+
type DrawerProps as DrawerProps,
|
|
33
|
+
type DrawerSide as DrawerSide,
|
|
34
|
+
type DrawerSize as DrawerSize,
|
|
35
|
+
} from "@/components/ui/Drawer";
|
|
36
|
+
export {
|
|
37
|
+
Kbd as Kbd,
|
|
38
|
+
type KbdPlatform as KbdPlatform,
|
|
39
|
+
type KbdProps as KbdProps,
|
|
40
|
+
type KbdVariant as KbdVariant,
|
|
41
|
+
} from "@/components/ui/Kbd";
|
|
8
42
|
export {
|
|
9
43
|
Loader,
|
|
10
44
|
LoadingState,
|
|
@@ -71,18 +105,64 @@ export {
|
|
|
71
105
|
type FormFieldControlProps as FormFieldControlProps,
|
|
72
106
|
type FormFieldProps as FormFieldProps,
|
|
73
107
|
} from "@/components/ui/FormField";
|
|
74
|
-
export {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
export {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
108
|
+
export {
|
|
109
|
+
Modal as Modal,
|
|
110
|
+
type ModalProps as ModalProps,
|
|
111
|
+
type ModalSize as ModalSize,
|
|
112
|
+
} from "@/components/ui/Modal";
|
|
113
|
+
export {
|
|
114
|
+
Breadcrumbs as Breadcrumbs,
|
|
115
|
+
Pagination as Pagination,
|
|
116
|
+
type BreadcrumbItem as BreadcrumbItem,
|
|
117
|
+
type BreadcrumbsProps as BreadcrumbsProps,
|
|
118
|
+
type PaginationProps as PaginationProps,
|
|
119
|
+
} from "@/components/ui/Navigation";
|
|
120
|
+
export {
|
|
121
|
+
Panel as Panel,
|
|
122
|
+
type PanelProps as PanelProps,
|
|
123
|
+
} from "@/components/ui/Panel";
|
|
124
|
+
export {
|
|
125
|
+
Rating as Rating,
|
|
126
|
+
type RatingProps as RatingProps,
|
|
127
|
+
} from "@/components/ui/Rating";
|
|
128
|
+
export {
|
|
129
|
+
SearchGroup as SearchGroup,
|
|
130
|
+
SearchInput as SearchInput,
|
|
131
|
+
type SearchGroupProps as SearchGroupProps,
|
|
132
|
+
type SearchInputProps as SearchInputProps,
|
|
133
|
+
} from "@/components/ui/SearchInput";
|
|
134
|
+
export {
|
|
135
|
+
Table as Table,
|
|
136
|
+
type TableColumn as TableColumn,
|
|
137
|
+
type TableProps as TableProps,
|
|
138
|
+
} from "@/components/ui/Table";
|
|
139
|
+
export {
|
|
140
|
+
Stat as Stat,
|
|
141
|
+
type StatProps as StatProps,
|
|
142
|
+
type StatTone as StatTone,
|
|
143
|
+
} from "@/components/ui/Stat";
|
|
144
|
+
export {
|
|
145
|
+
Toast as Toast,
|
|
146
|
+
ToastStack as ToastStack,
|
|
147
|
+
type ToastProps as ToastProps,
|
|
148
|
+
type ToastStackProps as ToastStackProps,
|
|
149
|
+
type ToastStatus as ToastStatus,
|
|
150
|
+
} from "@/components/ui/Toast";
|
|
151
|
+
export {
|
|
152
|
+
Tabs as Tabs,
|
|
153
|
+
type TabItem as TabItem,
|
|
154
|
+
type TabsProps as TabsProps,
|
|
155
|
+
type TabsVariant as TabsVariant,
|
|
156
|
+
} from "@/components/ui/Tabs";
|
|
83
157
|
export { ThemeDomSync } from "@/components/ui/ThemeDomSync";
|
|
84
|
-
export {
|
|
85
|
-
|
|
158
|
+
export {
|
|
159
|
+
ThemeManager,
|
|
160
|
+
type ThemeManagerProps,
|
|
161
|
+
} from "@/components/ui/ThemeManager";
|
|
162
|
+
export {
|
|
163
|
+
ThemeSwitcher,
|
|
164
|
+
type ThemeSwitcherProps,
|
|
165
|
+
} from "@/components/ui/ThemeSwitcher";
|
|
86
166
|
export {
|
|
87
167
|
IconBase as Icon,
|
|
88
168
|
IconByName as IconByName,
|
|
@@ -97,6 +177,14 @@ export { SegmentedControl } from "@/components/ui/SegmentedControl";
|
|
|
97
177
|
export { CommandPalette } from "@/components/ui/CommandPalette";
|
|
98
178
|
export { Calendar } from "@/components/ui/Calendar";
|
|
99
179
|
export { HoverCard } from "@/components/ui/HoverCard";
|
|
180
|
+
export {
|
|
181
|
+
Tooltip,
|
|
182
|
+
TooltipProvider,
|
|
183
|
+
type TooltipAlign,
|
|
184
|
+
type TooltipProps,
|
|
185
|
+
type TooltipProviderProps,
|
|
186
|
+
type TooltipSide,
|
|
187
|
+
} from "@/components/ui/Tooltip";
|
|
100
188
|
export { EmptyState } from "@/components/ui/EmptyState";
|
|
101
189
|
export {
|
|
102
190
|
FilterChips,
|
|
@@ -112,12 +200,33 @@ export {
|
|
|
112
200
|
type FilterMenuProps,
|
|
113
201
|
type SortMenuProps,
|
|
114
202
|
} from "@/components/ui/FilterBar";
|
|
115
|
-
export {
|
|
203
|
+
export {
|
|
204
|
+
FilterControls,
|
|
205
|
+
type FilterControlsProps,
|
|
206
|
+
} from "@/components/ui/FilterControls";
|
|
116
207
|
export { CodeBlock } from "@/components/ui/CodeBlock";
|
|
117
|
-
export {
|
|
208
|
+
export {
|
|
209
|
+
ComponentDocs,
|
|
210
|
+
type ComponentDocsProps,
|
|
211
|
+
type ComponentPropRow,
|
|
212
|
+
} from "@/components/ui/ComponentDocs";
|
|
118
213
|
export { ShowcaseWrapper } from "@/components/ui/ShowcaseWrapper";
|
|
119
214
|
export { CollapsibleSection } from "@/components/ui/CollapsibleSection";
|
|
120
|
-
export {
|
|
215
|
+
export {
|
|
216
|
+
Display,
|
|
217
|
+
H1,
|
|
218
|
+
H2,
|
|
219
|
+
H3,
|
|
220
|
+
H4,
|
|
221
|
+
H5,
|
|
222
|
+
P,
|
|
223
|
+
Small,
|
|
224
|
+
Caption,
|
|
225
|
+
Overline,
|
|
226
|
+
Lead,
|
|
227
|
+
Mono,
|
|
228
|
+
Label,
|
|
229
|
+
} from "@/components/ui/Typography";
|
|
121
230
|
export {
|
|
122
231
|
Avatar as Avatar,
|
|
123
232
|
AvatarGroup as AvatarGroup,
|
|
@@ -149,3 +258,148 @@ export {
|
|
|
149
258
|
type TimelineProps as TimelineProps,
|
|
150
259
|
type TimelineEvent as TimelineEvent,
|
|
151
260
|
} from "@/components/ui/Timeline";
|
|
261
|
+
export {
|
|
262
|
+
Banner as Banner,
|
|
263
|
+
type BannerProps as BannerProps,
|
|
264
|
+
type BannerType as BannerType,
|
|
265
|
+
} from "@/components/ui/Banner";
|
|
266
|
+
export {
|
|
267
|
+
Dialog as Dialog,
|
|
268
|
+
type DialogProps as DialogProps,
|
|
269
|
+
} from "@/components/ui/Dialog";
|
|
270
|
+
export {
|
|
271
|
+
Divider as Divider,
|
|
272
|
+
type DividerProps as DividerProps,
|
|
273
|
+
} from "@/components/ui/Divider";
|
|
274
|
+
export {
|
|
275
|
+
Tag as Tag,
|
|
276
|
+
type TagProps as TagProps,
|
|
277
|
+
type TagType as TagType,
|
|
278
|
+
} from "@/components/ui/Tag";
|
|
279
|
+
export {
|
|
280
|
+
ProgressCircle as ProgressCircle,
|
|
281
|
+
type ProgressCircleProps as ProgressCircleProps,
|
|
282
|
+
} from "@/components/ui/ProgressCircle";
|
|
283
|
+
export {
|
|
284
|
+
Row as Row,
|
|
285
|
+
type RowProps as RowProps,
|
|
286
|
+
} from "@/components/ui/Row";
|
|
287
|
+
export {
|
|
288
|
+
Widget as Widget,
|
|
289
|
+
type WidgetProps as WidgetProps,
|
|
290
|
+
} from "@/components/ui/Widget";
|
|
291
|
+
export {
|
|
292
|
+
Lettermark as Lettermark,
|
|
293
|
+
type LettermarkProps as LettermarkProps,
|
|
294
|
+
} from "@/components/ui/Lettermark";
|
|
295
|
+
export {
|
|
296
|
+
Splotch as Splotch,
|
|
297
|
+
type SplotchProps as SplotchProps,
|
|
298
|
+
type SplotchColor as SplotchColor,
|
|
299
|
+
} from "@/components/ui/Splotch";
|
|
300
|
+
export {
|
|
301
|
+
Popover as Popover,
|
|
302
|
+
type PopoverProps as PopoverProps,
|
|
303
|
+
} from "@/components/ui/Popover";
|
|
304
|
+
export {
|
|
305
|
+
LoadingBar as LoadingBar,
|
|
306
|
+
type LoadingBarProps as LoadingBarProps,
|
|
307
|
+
} from "@/components/ui/LoadingBar";
|
|
308
|
+
export {
|
|
309
|
+
Link as Link,
|
|
310
|
+
type LinkProps as LinkProps,
|
|
311
|
+
} from "@/components/ui/Link";
|
|
312
|
+
export {
|
|
313
|
+
Spinner as Spinner,
|
|
314
|
+
type SpinnerProps as SpinnerProps,
|
|
315
|
+
} from "@/components/ui/Spinner";
|
|
316
|
+
export {
|
|
317
|
+
Snack as Snack,
|
|
318
|
+
type SnackProps as SnackProps,
|
|
319
|
+
} from "@/components/ui/Snack";
|
|
320
|
+
export {
|
|
321
|
+
Combobox as Combobox,
|
|
322
|
+
type ComboboxProps as ComboboxProps,
|
|
323
|
+
type ComboboxOption as ComboboxOption,
|
|
324
|
+
} from "@/components/ui/Combobox";
|
|
325
|
+
export {
|
|
326
|
+
Autocomplete as Autocomplete,
|
|
327
|
+
type AutocompleteProps as AutocompleteProps,
|
|
328
|
+
type AutocompleteOption as AutocompleteOption,
|
|
329
|
+
} from "@/components/ui/Autocomplete";
|
|
330
|
+
export {
|
|
331
|
+
ContextMenu as ContextMenu,
|
|
332
|
+
type ContextMenuProps as ContextMenuProps,
|
|
333
|
+
type ContextMenuItem as ContextMenuItem,
|
|
334
|
+
} from "@/components/ui/ContextMenu";
|
|
335
|
+
export {
|
|
336
|
+
Resizable as Resizable,
|
|
337
|
+
type ResizableProps as ResizableProps,
|
|
338
|
+
} from "@/components/ui/Resizable";
|
|
339
|
+
export {
|
|
340
|
+
ScrollArea as ScrollArea,
|
|
341
|
+
type ScrollAreaProps as ScrollAreaProps,
|
|
342
|
+
} from "@/components/ui/ScrollArea";
|
|
343
|
+
export {
|
|
344
|
+
NumberField as NumberField,
|
|
345
|
+
type NumberFieldProps as NumberFieldProps,
|
|
346
|
+
} from "@/components/ui/NumberField";
|
|
347
|
+
export {
|
|
348
|
+
InputGroup as InputGroup,
|
|
349
|
+
type InputGroupProps as InputGroupProps,
|
|
350
|
+
} from "@/components/ui/InputGroup";
|
|
351
|
+
export {
|
|
352
|
+
ButtonGroup as ButtonGroup,
|
|
353
|
+
type ButtonGroupProps as ButtonGroupProps,
|
|
354
|
+
} from "@/components/ui/ButtonGroup";
|
|
355
|
+
export {
|
|
356
|
+
ToggleButton as ToggleButton,
|
|
357
|
+
ToggleGroup as ToggleGroup,
|
|
358
|
+
type ToggleButtonProps as ToggleButtonProps,
|
|
359
|
+
type ToggleGroupProps as ToggleGroupProps,
|
|
360
|
+
} from "@/components/ui/Toggle";
|
|
361
|
+
export {
|
|
362
|
+
Menubar as Menubar,
|
|
363
|
+
type MenubarProps as MenubarProps,
|
|
364
|
+
type MenubarItem as MenubarItem,
|
|
365
|
+
} from "@/components/ui/Menubar";
|
|
366
|
+
export {
|
|
367
|
+
AlertDialog as AlertDialog,
|
|
368
|
+
type AlertDialogProps as AlertDialogProps,
|
|
369
|
+
} from "@/components/ui/AlertDialog";
|
|
370
|
+
export {
|
|
371
|
+
Dot as Dot,
|
|
372
|
+
type DotProps as DotProps,
|
|
373
|
+
} from "@/components/ui/Dot";
|
|
374
|
+
export {
|
|
375
|
+
Collapsible as Collapsible,
|
|
376
|
+
type CollapsibleProps as CollapsibleProps,
|
|
377
|
+
} from "@/components/ui/Collapsible";
|
|
378
|
+
export {
|
|
379
|
+
Metric as Metric,
|
|
380
|
+
type MetricProps as MetricProps,
|
|
381
|
+
} from "@/components/ui/Metric";
|
|
382
|
+
export {
|
|
383
|
+
Chip as Chip,
|
|
384
|
+
type ChipProps as ChipProps,
|
|
385
|
+
} from "@/components/ui/Chip";
|
|
386
|
+
export {
|
|
387
|
+
DataTable as DataTable,
|
|
388
|
+
type DataTableProps as DataTableProps,
|
|
389
|
+
type DataTableColumn as DataTableColumn,
|
|
390
|
+
} from "@/components/ui/DataTable";
|
|
391
|
+
export {
|
|
392
|
+
DatePicker as DatePicker,
|
|
393
|
+
type DatePickerProps as DatePickerProps,
|
|
394
|
+
} from "@/components/ui/DatePicker";
|
|
395
|
+
export {
|
|
396
|
+
AppLayout as AppLayout,
|
|
397
|
+
type AppLayoutProps as AppLayoutProps,
|
|
398
|
+
} from "@/components/ui/AppLayout";
|
|
399
|
+
|
|
400
|
+
export {
|
|
401
|
+
Sidebar as Sidebar,
|
|
402
|
+
type SidebarProps as SidebarProps,
|
|
403
|
+
type SidebarGroup as SidebarGroup,
|
|
404
|
+
type SidebarItemDef as SidebarItemDef,
|
|
405
|
+
} from "@/components/ui/Sidebar";
|