xedonium 0.0.0-stage → 0.1.0

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 (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -3
  3. package/dist/components/ActionMenu.d.ts +13 -0
  4. package/dist/components/Alert.d.ts +10 -0
  5. package/dist/components/AppBar.d.ts +18 -0
  6. package/dist/components/AppShell.d.ts +13 -0
  7. package/dist/components/AreaChart.d.ts +6 -0
  8. package/dist/components/Avatar.d.ts +8 -0
  9. package/dist/components/BarChart.d.ts +14 -0
  10. package/dist/components/Breadcrumb.d.ts +11 -0
  11. package/dist/components/Button.d.ts +2 -0
  12. package/dist/components/Calendar.d.ts +17 -0
  13. package/dist/components/Card.d.ts +11 -0
  14. package/dist/components/Carousel.d.ts +15 -0
  15. package/dist/components/Checkbox.d.ts +11 -0
  16. package/dist/components/CommandPalette.d.ts +13 -0
  17. package/dist/components/ConfirmDialog.d.ts +18 -0
  18. package/dist/components/Container.d.ts +8 -0
  19. package/dist/components/Dashboard.d.ts +13 -0
  20. package/dist/components/DataGrid.d.ts +19 -0
  21. package/dist/components/DatePicker.d.ts +13 -0
  22. package/dist/components/DateRangePicker.d.ts +16 -0
  23. package/dist/components/Divider.d.ts +7 -0
  24. package/dist/components/Drawer.d.ts +11 -0
  25. package/dist/components/FanFavicon.d.ts +6 -0
  26. package/dist/components/Field.d.ts +12 -0
  27. package/dist/components/FileUpload.d.ts +9 -0
  28. package/dist/components/Flex.d.ts +14 -0
  29. package/dist/components/FocusTrap.d.ts +11 -0
  30. package/dist/components/Grid.d.ts +11 -0
  31. package/dist/components/Image.d.ts +11 -0
  32. package/dist/components/Input.d.ts +3 -0
  33. package/dist/components/LineChart.d.ts +14 -0
  34. package/dist/components/List.d.ts +7 -0
  35. package/dist/components/LoadingScreen.d.ts +2 -0
  36. package/dist/components/Modal.d.ts +23 -0
  37. package/dist/components/Navbar.d.ts +14 -0
  38. package/dist/components/NotificationCenter.d.ts +15 -0
  39. package/dist/components/PageHeader.d.ts +6 -0
  40. package/dist/components/PageLayout.d.ts +9 -0
  41. package/dist/components/Pagination.d.ts +9 -0
  42. package/dist/components/PieChart.d.ts +9 -0
  43. package/dist/components/Popover.d.ts +13 -0
  44. package/dist/components/Portal.d.ts +6 -0
  45. package/dist/components/Progress.d.ts +8 -0
  46. package/dist/components/RackServer.d.ts +2 -0
  47. package/dist/components/Radio.d.ts +8 -0
  48. package/dist/components/RadioGroup.d.ts +10 -0
  49. package/dist/components/Select.d.ts +12 -0
  50. package/dist/components/Sidebar.d.ts +18 -0
  51. package/dist/components/Skeleton.d.ts +7 -0
  52. package/dist/components/Slider.d.ts +13 -0
  53. package/dist/components/SortableList.d.ts +14 -0
  54. package/dist/components/Stack.d.ts +7 -0
  55. package/dist/components/StatCard.d.ts +10 -0
  56. package/dist/components/Stepper.d.ts +7 -0
  57. package/dist/components/Switch.d.ts +10 -0
  58. package/dist/components/Table.d.ts +13 -0
  59. package/dist/components/Tabs.d.ts +12 -0
  60. package/dist/components/ThemeToggle.d.ts +4 -0
  61. package/dist/components/TimePicker.d.ts +12 -0
  62. package/dist/components/Timeline.d.ts +6 -0
  63. package/dist/components/Toast.d.ts +2 -0
  64. package/dist/components/Tooltip.d.ts +6 -0
  65. package/dist/components/Tree.d.ts +16 -0
  66. package/dist/components/Video.d.ts +11 -0
  67. package/dist/components/VirtualList.d.ts +15 -0
  68. package/dist/components/charts/ChartFrame.d.ts +21 -0
  69. package/dist/components/charts/chartUtils.d.ts +8 -0
  70. package/dist/components/icons/ArrowLeft.d.ts +4 -0
  71. package/dist/components/icons/Check.d.ts +4 -0
  72. package/dist/components/icons/Close.d.ts +4 -0
  73. package/dist/components/icons/Eye.d.ts +4 -0
  74. package/dist/components/icons/EyeOff.d.ts +4 -0
  75. package/dist/components/icons/Grid.d.ts +4 -0
  76. package/dist/components/icons/Home.d.ts +4 -0
  77. package/dist/components/icons/Info.d.ts +4 -0
  78. package/dist/components/icons/Logout.d.ts +4 -0
  79. package/dist/components/icons/Menu.d.ts +4 -0
  80. package/dist/components/icons/Pencil.d.ts +4 -0
  81. package/dist/components/icons/Refresh.d.ts +4 -0
  82. package/dist/components/icons/Settings.d.ts +4 -0
  83. package/dist/components/icons/Shield.d.ts +4 -0
  84. package/dist/components/inputClass.d.ts +2 -0
  85. package/dist/components/toolbarButtonClass.d.ts +2 -0
  86. package/dist/hooks/useDialogFocus.d.ts +2 -0
  87. package/dist/hooks/useDismissable.d.ts +2 -0
  88. package/dist/hooks/useDocumentTitle.d.ts +2 -0
  89. package/dist/hooks/useEscapeKey.d.ts +2 -0
  90. package/dist/hooks/useFlipAlign.d.ts +2 -0
  91. package/dist/hooks/useKeyboardShortcuts.d.ts +6 -0
  92. package/dist/hooks/useLeaveWarning.d.ts +2 -0
  93. package/dist/hooks/useTimedToast.d.ts +7 -0
  94. package/dist/index.d.ts +93 -0
  95. package/dist/styles.css +79 -0
  96. package/dist/theme/ThemeContext.d.ts +8 -0
  97. package/dist/theme/ThemeProvider.d.ts +7 -0
  98. package/dist/theme/constants.d.ts +28 -0
  99. package/dist/theme/favicon.d.ts +1 -0
  100. package/dist/theme/systemTheme.d.ts +2 -0
  101. package/dist/theme/useAppTheme.d.ts +9 -0
  102. package/dist/utils/date.d.ts +10 -0
  103. package/dist/xedonium.cjs +46 -0
  104. package/dist/xedonium.js +2902 -0
  105. package/package.json +76 -5
  106. package/tailwind-preset.js +32 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ankit Yadav
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,74 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
1
+ # xedonium
2
+
3
+ Minimal, theme-aware React + Tailwind UI components, extracted from Boot Bridge.
4
+ Square corners, semantic `app-*` color tokens, light/dark via `<html data-theme>`.
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ npm i xedonium # or: yarn add xedonium
10
+ # peers: react, react-dom, tailwindcss ^3.4
11
+ ```
12
+
13
+ ## Setup
14
+
15
+ 1. Tailwind config: use the preset and scan the library's files.
16
+
17
+ ```js
18
+ // tailwind.config.js
19
+ import xedonium from 'xedonium/tailwind-preset'
20
+
21
+ export default {
22
+ presets: [xedonium],
23
+ content: ['./index.html', './src/**/*.{js,jsx}', './node_modules/xedonium/dist/**/*.js'],
24
+ }
25
+ ```
26
+
27
+ 2. Import the theme tokens + base styles once (before your Tailwind CSS):
28
+
29
+ ```js
30
+ import 'xedonium/styles.css'
31
+ ```
32
+
33
+ 3. Wrap your app:
34
+
35
+ ```jsx
36
+ import { ThemeProvider, AppBar, PageLayout, Button } from 'xedonium'
37
+
38
+ ;<ThemeProvider storageKey="my-app-theme">
39
+ <AppBar brand="My App" />
40
+ <PageLayout>
41
+ <Button>Hello</Button>
42
+ </PageLayout>
43
+ </ThemeProvider>
44
+ ```
45
+
46
+ ## What's included
47
+
48
+ - Layout: `AppShell`, `AppBar`, `Navbar`, `Sidebar`, `PageLayout`, `PageHeader`, `Container`, `Flex`, `Stack`, `Grid`, `Card`, `Dashboard`, `Divider`, `Tabs`, `Breadcrumb`
49
+ - Forms: `Button`, `Field`, `Input`, `Select`, `Checkbox`, `Radio`, `RadioGroup`, `Switch`, `Slider`, `DatePicker`, `DateRangePicker`, `TimePicker`, `FileUpload`
50
+ - Data: `Table`, `DataGrid`, `List`, `SortableList`, `VirtualList`, `Tree`, `Pagination`, `Calendar`, `Carousel`, `Timeline`, `Stepper`, `StatCard`, and charts (`LineChart`, `AreaChart`, `BarChart`, `PieChart`)
51
+ - Feedback and overlays: `Alert`, `Toast`, `Tooltip`, `Modal`, `ConfirmDialog`, `Drawer`, `Popover`, `ActionMenu`, `CommandPalette`, `NotificationCenter`, `Progress`, `Skeleton`, `FanFavicon`, `LoadingScreen`, `RackServer`
52
+ - Media and utilities: `Avatar`, `Image`, `Video`, `Portal`, `FocusTrap`, `ThemeToggle`, plus 14 icons
53
+ - Hooks: `useTimedToast`, `useEscapeKey`, `useDialogFocus`, `useDismissable`, `useFlipAlign`, `useKeyboardShortcuts`, `useLeaveWarning`, `useDocumentTitle(title, suffix)`.
54
+ - Theme: `ThemeProvider`, `useTheme`, `useAppTheme`, `buildFaviconHref`.
55
+
56
+ `AppBar` has no router dependency. For react-router pass `linkComponent={Link} linkProp="to"`.
57
+
58
+ Overlay z-indexes can be overridden with `--xd-z-modal`, `--xd-z-toast`, `--xd-z-tooltip`.
59
+
60
+ ## Develop
61
+
62
+ ```bash
63
+ yarn dev # playground (every component, tabbed) at http://localhost:3100
64
+ yarn build # dist/ (ESM, CJS, .d.ts, styles.css)
65
+ ```
66
+
67
+ ## Docs
68
+
69
+ Docusaurus site in `docs/` (live examples, uses the built `dist/`). Install once with `yarn --cwd docs install`.
70
+
71
+ ```bash
72
+ yarn docs # builds the lib, then serves at http://localhost:3000
73
+ yarn docs:build # static site in docs/build
74
+ ```
@@ -0,0 +1,13 @@
1
+ export default ActionMenu;
2
+ /**
3
+ * Dropdown of page actions. Closes on outside click and Escape (focus returns to the trigger).
4
+ * items: [{ key, label, description?, badge?, tone?, disabled?, hasDialog?, onClick }]
5
+ * `trigger` is the button content; `variant` styles the trigger (e.g. 'warning' to flag pending work).
6
+ */
7
+ declare function ActionMenu({ label, trigger, variant, items, className }: {
8
+ label: any;
9
+ trigger: any;
10
+ variant?: string;
11
+ items: any;
12
+ className?: string;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export default Alert;
2
+ /** Inline message. tone: info | success | warning | danger. Pass `onClose` to make it dismissible. */
3
+ declare function Alert({ tone, title, onClose, icon, className, children }: {
4
+ tone?: string;
5
+ title: any;
6
+ onClose: any;
7
+ icon: any;
8
+ className?: string;
9
+ children: any;
10
+ }): import("react").JSX.Element;
@@ -0,0 +1,18 @@
1
+ export default AppBar;
2
+ /**
3
+ * Sticky top bar: brand on the left, optional navigation, theme toggle and extra actions on the right.
4
+ * links: [{ href, label, active?, ...extraLinkProps }].
5
+ * `linkComponent` swaps in a router link; `linkProp` names its destination prop (e.g. "to" for react-router).
6
+ */
7
+ declare function AppBar({ brand, logo, brandHref, links, actions, themeToggle, hideBrandOnMobile, linkComponent: Link, linkProp, maxWidth, }: {
8
+ brand: any;
9
+ logo: any;
10
+ brandHref?: string;
11
+ links?: any[];
12
+ actions: any;
13
+ themeToggle?: boolean;
14
+ hideBrandOnMobile?: boolean;
15
+ linkComponent?: string;
16
+ linkProp?: string;
17
+ maxWidth?: string;
18
+ }): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export default AppShell;
2
+ /**
3
+ * Application frame: header on top, `sidebar` on the left, scrolling `children` as the main area.
4
+ * Below the `md` breakpoint the sidebar moves into a Drawer opened from a menu button in the header.
5
+ * `sidebar` may be a node, or a function `(close) => node` if it should close the drawer on selection.
6
+ */
7
+ declare function AppShell({ header, sidebar, sidebarTitle, children, className }: {
8
+ header: any;
9
+ sidebar: any;
10
+ sidebarTitle?: string;
11
+ children: any;
12
+ className?: string;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export default AreaChart;
2
+ /** LineChart with the area under each line filled. Same props. */
3
+ declare function AreaChart({ label, ...props }: {
4
+ [x: string]: any;
5
+ label?: string;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export default Avatar;
2
+ /** Round avatar: image when `src` loads, otherwise initials from `name`. size: sm | md | lg. */
3
+ declare function Avatar({ src, name, size, className }: {
4
+ src: any;
5
+ name: any;
6
+ size?: string;
7
+ className?: string;
8
+ }): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ export default BarChart;
2
+ /**
3
+ * Bar chart. `labels` names the categories; `series: [{ name, values, color? }]` has one value per label.
4
+ * Multiple series are grouped side by side, or stacked with `stacked`.
5
+ */
6
+ declare function BarChart({ labels, series, height, stacked, label, legend, className, }: {
7
+ labels: any;
8
+ series: any;
9
+ height?: number;
10
+ stacked?: boolean;
11
+ label?: string;
12
+ legend?: boolean;
13
+ className?: string;
14
+ }): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default Breadcrumb;
2
+ /**
3
+ * Trail of links ending in the current page. items: [{ label, href? }]; the last item is the current page.
4
+ * `linkComponent` / `linkProp` swap in a router link, as in AppBar.
5
+ */
6
+ declare function Breadcrumb({ items, linkComponent: Link, linkProp, className }: {
7
+ items: any;
8
+ linkComponent?: string;
9
+ linkProp?: string;
10
+ className?: string;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default Button;
2
+ declare function Button(props: any): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export default Calendar;
2
+ /**
3
+ * Month calendar. `value` is a Date (or null); `onChange` receives the picked Date.
4
+ * `rangeStart` / `rangeEnd` highlight a range (used by DateRangePicker). `min` / `max` disable days outside them.
5
+ * Arrow keys move by day / week, PageUp / PageDown by month, Home / End to the start / end of the week.
6
+ */
7
+ declare function Calendar({ value, onChange, rangeStart, rangeEnd, min, max, weekStartsOn, locale, className }: {
8
+ value: any;
9
+ onChange: any;
10
+ rangeStart: any;
11
+ rangeEnd: any;
12
+ min: any;
13
+ max: any;
14
+ weekStartsOn?: number;
15
+ locale: any;
16
+ className?: string;
17
+ }): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default Card;
2
+ /** Bordered surface with optional header (title + actions) and footer. */
3
+ declare function Card({ title, subtitle, actions, footer, padded, className, children }: {
4
+ title: any;
5
+ subtitle: any;
6
+ actions: any;
7
+ footer: any;
8
+ padded?: boolean;
9
+ className?: string;
10
+ children: any;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ export default Carousel;
2
+ /**
3
+ * Slide carousel; each child is one slide. Controlled with `index` + `onIndexChange`, or uncontrolled via
4
+ * `defaultIndex`. `autoPlay` (ms) advances automatically and pauses on hover / focus. `loop` wraps around.
5
+ */
6
+ declare function Carousel({ children, index, defaultIndex, onIndexChange, autoPlay, loop, label, className, }: {
7
+ children: any;
8
+ index: any;
9
+ defaultIndex?: number;
10
+ onIndexChange: any;
11
+ autoPlay?: number;
12
+ loop?: boolean;
13
+ label?: string;
14
+ className?: string;
15
+ }): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default Checkbox;
2
+ /** Checkbox with inline label. `onChange` receives the new boolean. `indeterminate` shows the mixed state. */
3
+ declare function Checkbox({ label, checked, onChange, indeterminate, disabled, className, ...rest }: {
4
+ [x: string]: any;
5
+ label: any;
6
+ checked: any;
7
+ onChange: any;
8
+ indeterminate?: boolean;
9
+ disabled?: boolean;
10
+ className?: string;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export default CommandPalette;
2
+ /**
3
+ * Searchable command list in a modal (open it from a shortcut, e.g. with useKeyboardShortcuts('mod+k')).
4
+ * commands: [{ key, label, description?, group?, shortcut?, onSelect }]. Arrow keys move, Enter runs, Escape closes.
5
+ * `onClose` is called after a command runs as well, so the parent just sets `open` to false.
6
+ */
7
+ declare function CommandPalette({ open, onClose, commands, placeholder, empty, }: {
8
+ open: any;
9
+ onClose: any;
10
+ commands: any;
11
+ placeholder?: string;
12
+ empty?: string;
13
+ }): any;
@@ -0,0 +1,18 @@
1
+ export default ConfirmDialog;
2
+ /**
3
+ * Confirm / cancel dialog built on Modal. Shows a spinner on the confirm button while `busy`
4
+ * (Escape, backdrop and close are ignored then). Use tone="danger" for destructive actions.
5
+ */
6
+ declare function ConfirmDialog({ open, onClose, onConfirm, title, tone, busy, confirmLabel, busyLabel, cancelLabel, error, children, }: {
7
+ open: any;
8
+ onClose: any;
9
+ onConfirm: any;
10
+ title: any;
11
+ tone?: string;
12
+ busy?: boolean;
13
+ confirmLabel?: string;
14
+ busyLabel: any;
15
+ cancelLabel?: string;
16
+ error: any;
17
+ children: any;
18
+ }): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export default Container;
2
+ declare function Container({ maxWidth, className, as: Tag, children, ...rest }: {
3
+ [x: string]: any;
4
+ maxWidth?: string;
5
+ className?: string;
6
+ as?: string;
7
+ children: any;
8
+ }): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export default Dashboard;
2
+ /**
3
+ * Dashboard page scaffold: header, a row of stat tiles, then your panels (Cards, charts, tables) in a grid.
4
+ * stats: [{ label, value, delta?, trend?, hint? }]. `columns` sets the panel grid (1-3).
5
+ */
6
+ declare function Dashboard({ title, subtitle, actions, stats, columns, children }: {
7
+ title: any;
8
+ subtitle: any;
9
+ actions: any;
10
+ stats?: any[];
11
+ columns?: number;
12
+ children: any;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ export default DataGrid;
2
+ /**
3
+ * Table with client-side sorting, search, pagination and row selection.
4
+ * columns: [{ key, header, sortable?, render?(row), align?, accessor?(row) }] (`accessor` supplies the sort / search value).
5
+ * Selection is controlled with `selected` (array of row keys) + `onSelectionChange`, or uncontrolled with `selectable`.
6
+ */
7
+ declare function DataGrid({ columns, rows, rowKey, pageSize, searchable, selectable, selected, onSelectionChange, empty, caption, className, }: {
8
+ columns: any;
9
+ rows: any;
10
+ rowKey?: string;
11
+ pageSize?: number;
12
+ searchable?: boolean;
13
+ selectable?: boolean;
14
+ selected: any;
15
+ onSelectionChange: any;
16
+ empty?: string;
17
+ caption: any;
18
+ className?: string;
19
+ }): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export default DatePicker;
2
+ /** Labelled date field that opens a Calendar. `value` is a Date or null; `onChange` receives the picked Date. */
3
+ declare function DatePicker({ label, value, onChange, min, max, placeholder, error, locale, weekStartsOn }: {
4
+ label: any;
5
+ value: any;
6
+ onChange: any;
7
+ min: any;
8
+ max: any;
9
+ placeholder?: string;
10
+ error: any;
11
+ locale: any;
12
+ weekStartsOn: any;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ export default DateRangePicker;
2
+ /**
3
+ * Labelled date range field. `value` is `{ start, end }` (Dates or null); `onChange` receives the same shape.
4
+ * Click once for the start, again for the end (picked in either order); the panel closes when the range is complete.
5
+ */
6
+ declare function DateRangePicker({ label, value, onChange, min, max, placeholder, error, locale, weekStartsOn, }: {
7
+ label: any;
8
+ value: any;
9
+ onChange: any;
10
+ min: any;
11
+ max: any;
12
+ placeholder?: string;
13
+ error: any;
14
+ locale: any;
15
+ weekStartsOn: any;
16
+ }): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export default Divider;
2
+ /** Horizontal or vertical rule, with optional centered label (horizontal only). */
3
+ declare function Divider({ orientation, label, className }: {
4
+ orientation?: string;
5
+ label: any;
6
+ className?: string;
7
+ }): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default Drawer;
2
+ /** Side panel dialog: backdrop, focus trap, Escape / backdrop to close. side: right | left. */
3
+ declare function Drawer({ open, onClose, title, side, width, footer, children }: {
4
+ open: any;
5
+ onClose: any;
6
+ title: any;
7
+ side?: string;
8
+ width?: string;
9
+ footer: any;
10
+ children: any;
11
+ }): any;
@@ -0,0 +1,6 @@
1
+ export default FanFavicon;
2
+ declare function FanFavicon({ size, theme: themeOverride, label }: {
3
+ size?: number;
4
+ theme: any;
5
+ label: any;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export default Field;
2
+ declare function Field({ label, value, onChange, placeholder, error, type, autoComplete, required, ...inputProps }: {
3
+ [x: string]: any;
4
+ label: any;
5
+ value: any;
6
+ onChange: any;
7
+ placeholder: any;
8
+ error: any;
9
+ type?: string;
10
+ autoComplete?: string;
11
+ required?: boolean;
12
+ }): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export default FileUpload;
2
+ /** Drop zone + file picker. `onChange` receives an array of File objects; selected names are listed below. */
3
+ declare function FileUpload({ label, accept, multiple, onChange, disabled, }: {
4
+ label?: string;
5
+ accept: any;
6
+ multiple?: boolean;
7
+ onChange: any;
8
+ disabled?: boolean;
9
+ }): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ export default Flex;
2
+ /** Flexbox wrapper. gap: 0-4, 6 or 8 (Tailwind spacing steps). */
3
+ declare function Flex({ direction, gap, align, justify, wrap, inline, className, as: Tag, children, ...rest }: {
4
+ [x: string]: any;
5
+ direction?: string;
6
+ gap?: number;
7
+ align: any;
8
+ justify: any;
9
+ wrap?: boolean;
10
+ inline?: boolean;
11
+ className?: string;
12
+ as?: string;
13
+ children: any;
14
+ }): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default FocusTrap;
2
+ /**
3
+ * Keeps Tab focus inside while `active`, focuses the first control (or `[data-autofocus]`) on activation and
4
+ * restores focus to the previous element on deactivation.
5
+ */
6
+ declare function FocusTrap({ active, className, children, ...rest }: {
7
+ [x: string]: any;
8
+ active?: boolean;
9
+ className?: string;
10
+ children: any;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default Grid;
2
+ /** CSS grid. cols: 1-6 or 12. */
3
+ declare function Grid({ cols, gap, responsive, className, as: Tag, children, ...rest }: {
4
+ [x: string]: any;
5
+ cols?: number;
6
+ gap?: number;
7
+ responsive?: boolean;
8
+ className?: string;
9
+ as?: string;
10
+ children: any;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default Image;
2
+ /** Image with optional fixed `ratio` (square | video | photo), lazy loading and a fallback box if it fails. */
3
+ declare function Image({ src, alt, ratio, fit, fallback, className, ...rest }: {
4
+ [x: string]: any;
5
+ src: any;
6
+ alt: any;
7
+ ratio: any;
8
+ fit?: string;
9
+ fallback?: string;
10
+ className?: string;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export default Input;
2
+ /** Bare text input (no label; use Field for a labelled one). `onChange` receives the value string. */
3
+ declare const Input: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
@@ -0,0 +1,14 @@
1
+ export default LineChart;
2
+ /**
3
+ * Line chart. `labels` names the x positions; `series: [{ name, values, color? }]` has one value per label.
4
+ * `area` fills under each line (see AreaChart). Hover a point for its value.
5
+ */
6
+ declare function LineChart({ labels, series, height, area, label, legend, className, }: {
7
+ labels: any;
8
+ series: any;
9
+ height?: number;
10
+ area?: boolean;
11
+ label?: string;
12
+ legend?: boolean;
13
+ className?: string;
14
+ }): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export default List;
2
+ /** Vertical list. items: [{ key, primary, secondary?, leading?, trailing?, onClick? }]. Clickable rows become buttons. */
3
+ declare function List({ items, divided, className }: {
4
+ items: any;
5
+ divided?: boolean;
6
+ className?: string;
7
+ }): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export default LoadingScreen;
2
+ declare function LoadingScreen(): import("react").JSX.Element;
@@ -0,0 +1,23 @@
1
+ export default Modal;
2
+ /**
3
+ * Shared dialog shell: backdrop, focus trap, Escape to close, header with close button.
4
+ * While `busy`, Escape / backdrop / close are ignored so an in-flight action can't lose its result.
5
+ * `dismissible={false}` only ignores Escape / backdrop (e.g. while a nested confirm dialog is open).
6
+ * Pass `as="form"` with `onSubmit` to make the dialog a form.
7
+ */
8
+ declare function Modal({ open, onClose, title, tone, busy, dismissible, role, describedBy, maxWidth, className, as: Container, footer, children, ...containerProps }: {
9
+ [x: string]: any;
10
+ open: any;
11
+ onClose: any;
12
+ title: any;
13
+ tone?: string;
14
+ busy?: boolean;
15
+ dismissible?: boolean;
16
+ role?: string;
17
+ describedBy: any;
18
+ maxWidth?: string;
19
+ className?: string;
20
+ as?: string;
21
+ footer: any;
22
+ children: any;
23
+ }): any;
@@ -0,0 +1,14 @@
1
+ export default Navbar;
2
+ /**
3
+ * Plain horizontal navigation bar (not sticky, no theme toggle; use AppBar for the full app header).
4
+ * links: [{ href, label, active?, ...extraLinkProps }]. `linkComponent` / `linkProp` swap in a router link.
5
+ */
6
+ declare function Navbar({ brand, links, actions, linkComponent: Link, linkProp, label, className, }: {
7
+ brand: any;
8
+ links?: any[];
9
+ actions: any;
10
+ linkComponent?: string;
11
+ linkProp?: string;
12
+ label?: string;
13
+ className?: string;
14
+ }): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ export default NotificationCenter;
2
+ /**
3
+ * Bell button with an unread count and a dropdown list.
4
+ * notifications: [{ id, title, body?, time?, read? }]. Clicking one calls `onSelect(notification)` (and
5
+ * `onMarkRead(id)` if unread); `onMarkAllRead` and `onClear` add header actions when provided.
6
+ */
7
+ declare function NotificationCenter({ notifications, onSelect, onMarkRead, onMarkAllRead, onClear, empty, align, }: {
8
+ notifications: any;
9
+ onSelect: any;
10
+ onMarkRead: any;
11
+ onMarkAllRead: any;
12
+ onClear: any;
13
+ empty?: string;
14
+ align?: string;
15
+ }): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export default PageHeader;
2
+ declare function PageHeader({ title, subtitle, children }: {
3
+ title: any;
4
+ subtitle: any;
5
+ children: any;
6
+ }): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export default PageLayout;
2
+ declare function PageLayout({ children, maxWidth, centerContent, themeToggle, outerClassName, innerClassName, }: {
3
+ children: any;
4
+ maxWidth?: string;
5
+ centerContent?: boolean;
6
+ themeToggle?: boolean;
7
+ outerClassName?: string;
8
+ innerClassName?: string;
9
+ }): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export default Pagination;
2
+ /** Page selector. 1-based `page`; `onChange` receives the new page number. */
3
+ declare function Pagination({ page, pageCount, onChange, siblings, className }: {
4
+ page: any;
5
+ pageCount: any;
6
+ onChange: any;
7
+ siblings?: number;
8
+ className?: string;
9
+ }): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ export default PieChart;
2
+ /** Pie chart (or donut with `donut`). `data: [{ label, value, color? }]`; `center` is shown in the donut hole. */
3
+ declare function PieChart({ data, donut, center, label, className }: {
4
+ data: any;
5
+ donut?: boolean;
6
+ center: any;
7
+ label?: string;
8
+ className?: string;
9
+ }): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export default Popover;
2
+ /**
3
+ * Button that toggles a floating panel with arbitrary content. Closes on outside click and Escape
4
+ * (focus returns to the trigger). align: start | end. Use ActionMenu for a plain list of actions.
5
+ */
6
+ declare function Popover({ trigger, label, variant, align, className, children }: {
7
+ trigger: any;
8
+ label: any;
9
+ variant?: string;
10
+ align?: string;
11
+ className?: string;
12
+ children: any;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export default Portal;
2
+ /** Renders children into `container` (default document.body), escaping ancestors that clip or transform. */
3
+ declare function Portal({ children, container }: {
4
+ children: any;
5
+ container: any;
6
+ }): any;