@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.
Files changed (89) hide show
  1. package/dist/chunk-5HSOBJ4F.mjs +5968 -0
  2. package/dist/{index-D1RTT2Ap.d.mts → index-BgG8Homu.d.mts} +419 -2
  3. package/dist/{index-D1RTT2Ap.d.ts → index-BgG8Homu.d.ts} +419 -2
  4. package/dist/index.d.mts +198 -95
  5. package/dist/index.d.ts +198 -95
  6. package/dist/index.js +2995 -1136
  7. package/dist/index.mjs +629 -735
  8. package/dist/ui.d.mts +1 -1
  9. package/dist/ui.d.ts +1 -1
  10. package/dist/ui.js +1986 -156
  11. package/dist/ui.mjs +76 -3
  12. package/package.json +4 -14
  13. package/src/app/globals.css +976 -2
  14. package/src/components/charts/index.ts +9 -8
  15. package/src/components/charts/quill/BarChart.tsx +85 -0
  16. package/src/components/charts/quill/FunnelChart.tsx +49 -0
  17. package/src/components/charts/quill/InsightShell.tsx +27 -0
  18. package/src/components/charts/quill/MetricCard.tsx +44 -0
  19. package/src/components/charts/quill/PieChart.tsx +81 -0
  20. package/src/components/charts/quill/Sparkline.tsx +57 -0
  21. package/src/components/charts/quill/TimeSeriesLineChart.tsx +62 -0
  22. package/src/components/charts/quill/index.ts +9 -0
  23. package/src/components/icons/icons.tsx +2 -0
  24. package/src/components/icons/index.ts +3 -0
  25. package/src/components/icons/lemon-brand-icons.tsx +16 -0
  26. package/src/components/icons/lemon-category-icons.tsx +72 -0
  27. package/src/components/icons/lemon-icons.tsx +57 -0
  28. package/src/components/sections/IconShowcase.tsx +110 -7
  29. package/src/components/sections/NewComponentsShowcase.tsx +1052 -0
  30. package/src/components/sections/ProductLayoutsShowcase.tsx +57 -117
  31. package/src/components/sections/QuillChartShowcase.tsx +92 -0
  32. package/src/components/sections/QuillDashboardShowcase.tsx +149 -0
  33. package/src/components/sections/SidebarShowcase.tsx +152 -0
  34. package/src/components/sections/TableShowcase.tsx +2 -0
  35. package/src/components/sections/TooltipShowcase.tsx +19 -25
  36. package/src/components/ui/AlertDialog.tsx +62 -0
  37. package/src/components/ui/AppLayout.tsx +27 -0
  38. package/src/components/ui/Autocomplete.tsx +106 -0
  39. package/src/components/ui/Banner.tsx +63 -0
  40. package/src/components/ui/ButtonGroup.tsx +16 -0
  41. package/src/components/ui/Chip.tsx +46 -0
  42. package/src/components/ui/Collapsible.tsx +46 -0
  43. package/src/components/ui/Combobox.tsx +119 -0
  44. package/src/components/ui/ContextMenu.tsx +81 -0
  45. package/src/components/ui/DataTable.tsx +133 -0
  46. package/src/components/ui/DatePicker.tsx +96 -0
  47. package/src/components/ui/Dialog.tsx +75 -0
  48. package/src/components/ui/Divider.tsx +39 -0
  49. package/src/components/ui/Dot.tsx +32 -0
  50. package/src/components/ui/InputGroup.tsx +16 -0
  51. package/src/components/ui/Lettermark.tsx +47 -0
  52. package/src/components/ui/Link.tsx +32 -0
  53. package/src/components/ui/LoadingBar.tsx +25 -0
  54. package/src/components/ui/Menubar.tsx +66 -0
  55. package/src/components/ui/Metric.tsx +34 -0
  56. package/src/components/ui/NumberField.tsx +76 -0
  57. package/src/components/ui/Popover.tsx +73 -0
  58. package/src/components/ui/ProgressCircle.tsx +63 -0
  59. package/src/components/ui/Resizable.tsx +71 -0
  60. package/src/components/ui/Row.tsx +51 -0
  61. package/src/components/ui/ScrollArea.tsx +54 -0
  62. package/src/components/ui/Sidebar.tsx +77 -0
  63. package/src/components/ui/Snack.tsx +48 -0
  64. package/src/components/ui/Spinner.tsx +30 -0
  65. package/src/components/ui/Splotch.tsx +33 -0
  66. package/src/components/ui/Table.tsx +2 -0
  67. package/src/components/ui/Tag.tsx +65 -0
  68. package/src/components/ui/Toggle.tsx +62 -0
  69. package/src/components/ui/Tooltip.test.tsx +58 -0
  70. package/src/components/ui/Tooltip.tsx +211 -0
  71. package/src/components/ui/Widget.tsx +31 -0
  72. package/src/components/ui/index.ts +275 -21
  73. package/dist/chunk-FDMD3IIN.mjs +0 -3831
  74. package/src/components/charts/ph-insight-charts.tsx +0 -162
  75. package/src/components/dashboard/DashboardFiltersBar.tsx +0 -19
  76. package/src/components/dashboard/DashboardGrid.tsx +0 -23
  77. package/src/components/dashboard/DashboardInsightPlaceholder.tsx +0 -37
  78. package/src/components/dashboard/DashboardKpiCard.tsx +0 -25
  79. package/src/components/dashboard/DashboardToolbar.tsx +0 -23
  80. package/src/components/dashboard/DashboardWell.tsx +0 -10
  81. package/src/components/dashboard/InsightMiniCard.tsx +0 -26
  82. package/src/components/dashboard/InsightShell.tsx +0 -37
  83. package/src/components/dashboard/InsightShellHeader.tsx +0 -22
  84. package/src/components/dashboard/MiniTrendBars.tsx +0 -51
  85. package/src/components/dashboard/index.ts +0 -31
  86. package/src/components/dashboard/types.ts +0 -9
  87. package/src/components/sections/ChartShowcase.tsx +0 -190
  88. package/src/components/sections/DashboardShowcase.tsx +0 -191
  89. 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
- export { Button as Button, type ButtonProps as ButtonProps, type ButtonShape as ButtonShape, type ButtonSize as ButtonSize, type ButtonVariant as ButtonVariant } from "@/components/ui/Button";
2
- export { ButtonChrome as ButtonChrome, type ButtonChromeProps as ButtonChromeProps } from "@/components/ui/ButtonChrome";
3
- export { Alert as Alert, type AlertProps as AlertProps, type AlertStatus as AlertStatus } from "@/components/ui/Alert";
4
- export { Badge as Badge, type BadgeProps as BadgeProps, type BadgeSize as BadgeSize, type BadgeVariant as BadgeVariant } from "@/components/ui/Badge";
5
- export { Card as Card, type CardProps as CardProps, type CardVariant as CardVariant } from "@/components/ui/Card";
6
- export { Drawer as Drawer, type DrawerProps as DrawerProps, type DrawerSide as DrawerSide, type DrawerSize as DrawerSize } from "@/components/ui/Drawer";
7
- export { Kbd as Kbd, type KbdPlatform as KbdPlatform, type KbdProps as KbdProps, type KbdVariant as KbdVariant } from "@/components/ui/Kbd";
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 { Modal as Modal, type ModalProps as ModalProps, type ModalSize as ModalSize } from "@/components/ui/Modal";
75
- export { Breadcrumbs as Breadcrumbs, Pagination as Pagination, type BreadcrumbItem as BreadcrumbItem, type BreadcrumbsProps as BreadcrumbsProps, type PaginationProps as PaginationProps } from "@/components/ui/Navigation";
76
- export { Panel as Panel, type PanelProps as PanelProps } from "@/components/ui/Panel";
77
- export { Rating as Rating, type RatingProps as RatingProps } from "@/components/ui/Rating";
78
- export { SearchGroup as SearchGroup, SearchInput as SearchInput, type SearchGroupProps as SearchGroupProps, type SearchInputProps as SearchInputProps } from "@/components/ui/SearchInput";
79
- export { Table as Table, type TableColumn as TableColumn, type TableProps as TableProps } from "@/components/ui/Table";
80
- export { Stat as Stat, type StatProps as StatProps, type StatTone as StatTone } from "@/components/ui/Stat";
81
- export { Toast as Toast, ToastStack as ToastStack, type ToastProps as ToastProps, type ToastStackProps as ToastStackProps, type ToastStatus as ToastStatus } from "@/components/ui/Toast";
82
- export { Tabs as Tabs, type TabItem as TabItem, type TabsProps as TabsProps, type TabsVariant as TabsVariant } from "@/components/ui/Tabs";
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 { ThemeManager, type ThemeManagerProps } from "@/components/ui/ThemeManager";
85
- export { ThemeSwitcher, type ThemeSwitcherProps } from "@/components/ui/ThemeSwitcher";
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 { FilterControls, type FilterControlsProps } from "@/components/ui/FilterControls";
203
+ export {
204
+ FilterControls,
205
+ type FilterControlsProps,
206
+ } from "@/components/ui/FilterControls";
116
207
  export { CodeBlock } from "@/components/ui/CodeBlock";
117
- export { ComponentDocs, type ComponentDocsProps, type ComponentPropRow } from "@/components/ui/ComponentDocs";
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 { Display, H1, H2, H3, H4, H5, P, Small, Caption, Overline, Lead, Mono, Label } from "@/components/ui/Typography";
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";