@omniviewdev/ui 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 (257) hide show
  1. package/LICENSE +661 -0
  2. package/dist/Button-Dmu1cikC.cjs +1 -0
  3. package/dist/Button-lr02bh_m.js +51 -0
  4. package/dist/CodeBlock-B1iQO7zU.js +73 -0
  5. package/dist/CodeBlock-CIyG0DbW.cjs +2 -0
  6. package/dist/CopyButton-CACe3RCF.cjs +1 -0
  7. package/dist/CopyButton-DPBgL0K8.js +77 -0
  8. package/dist/ErrorState-CexYrMpy.js +188 -0
  9. package/dist/ErrorState-CnIR-1xa.cjs +1 -0
  10. package/dist/HotkeyHint-6SOi-MaU.js +37 -0
  11. package/dist/HotkeyHint-DrTOTrIM.cjs +1 -0
  12. package/dist/Icon-CKdIOrjZ.cjs +1 -0
  13. package/dist/Icon-CuO9W7cA.js +27 -0
  14. package/dist/SearchInput-CFBBNdI2.cjs +1 -0
  15. package/dist/SearchInput-D3AsCI5H.js +41 -0
  16. package/dist/Select-CnRBSc5w.cjs +1 -0
  17. package/dist/Select-DTUF31OP.js +206 -0
  18. package/dist/Skeleton-BUYyXUiC.js +32 -0
  19. package/dist/Skeleton-CfdQWLQM.cjs +1 -0
  20. package/dist/StatusDot-CYyJxjJK.cjs +1 -0
  21. package/dist/StatusDot-CncykBAY.js +68 -0
  22. package/dist/StatusPill-C1NaiCzd.js +29 -0
  23. package/dist/StatusPill-C7yn7dSA.cjs +1 -0
  24. package/dist/TabPanel-CkUSl6Bt.cjs +1 -0
  25. package/dist/TabPanel-DLHbgKpl.js +124 -0
  26. package/dist/Text-By4P3in5.js +71 -0
  27. package/dist/Text-Mk6Uyg1w.cjs +1 -0
  28. package/dist/Tooltip-44-P5KfQ.cjs +1 -0
  29. package/dist/Tooltip-BEVuYuZ3.js +41 -0
  30. package/dist/_commonjsHelpers-CvWRHxnb.js +26 -0
  31. package/dist/_commonjsHelpers-D3HyQheV.cjs +1 -0
  32. package/dist/buttons/ActionMenu.d.ts +21 -0
  33. package/dist/buttons/Button.d.ts +31 -0
  34. package/dist/buttons/ButtonGroup.d.ts +18 -0
  35. package/dist/buttons/ConfirmButton.d.ts +10 -0
  36. package/dist/buttons/CopyButton.d.ts +11 -0
  37. package/dist/buttons/IconButton.d.ts +21 -0
  38. package/dist/buttons/SearchBar.d.ts +22 -0
  39. package/dist/buttons/ToggleButton.d.ts +18 -0
  40. package/dist/buttons/ToggleGroup.d.ts +23 -0
  41. package/dist/buttons/Toolbar.d.ts +15 -0
  42. package/dist/buttons/ToolbarGroup.d.ts +11 -0
  43. package/dist/buttons/index.d.ts +22 -0
  44. package/dist/buttons.cjs +1 -0
  45. package/dist/buttons.js +430 -0
  46. package/dist/cells/BadgesCell.d.ts +19 -0
  47. package/dist/cells/ChipCell.d.ts +16 -0
  48. package/dist/cells/SelectBoxHeader.d.ts +11 -0
  49. package/dist/cells/SelectBoxRow.d.ts +11 -0
  50. package/dist/cells/TextCell.d.ts +25 -0
  51. package/dist/cells/index.d.ts +5 -0
  52. package/dist/cells.cjs +1 -0
  53. package/dist/cells.js +284 -0
  54. package/dist/charts/BarChart.d.ts +15 -0
  55. package/dist/charts/ChartContainer.d.ts +12 -0
  56. package/dist/charts/ChartLegend.d.ts +11 -0
  57. package/dist/charts/GaugeCard.d.ts +18 -0
  58. package/dist/charts/MetricsPanel.d.ts +61 -0
  59. package/dist/charts/PieChart.d.ts +13 -0
  60. package/dist/charts/ScatterChart.d.ts +25 -0
  61. package/dist/charts/Sparkline.d.ts +16 -0
  62. package/dist/charts/StackedAreaChart.d.ts +18 -0
  63. package/dist/charts/TimeSeriesChart.d.ts +43 -0
  64. package/dist/charts/formatters.d.ts +17 -0
  65. package/dist/charts/index.d.ts +21 -0
  66. package/dist/charts/palette.d.ts +7 -0
  67. package/dist/charts/types.d.ts +67 -0
  68. package/dist/charts/useChartTheme.d.ts +13 -0
  69. package/dist/charts.cjs +1 -0
  70. package/dist/charts.js +967 -0
  71. package/dist/components/ActionCard.d.ts +22 -0
  72. package/dist/components/AspectRatio.d.ts +13 -0
  73. package/dist/components/Avatar.d.ts +19 -0
  74. package/dist/components/Badge.d.ts +22 -0
  75. package/dist/components/Card.d.ts +24 -0
  76. package/dist/components/Chip.d.ts +32 -0
  77. package/dist/components/ClipboardText.d.ts +14 -0
  78. package/dist/components/DetailsCard.d.ts +25 -0
  79. package/dist/components/EmptySearch.d.ts +12 -0
  80. package/dist/components/ExpandableSections.d.ts +51 -0
  81. package/dist/components/FileIcon.d.ts +12 -0
  82. package/dist/components/HotkeyHint.d.ts +8 -0
  83. package/dist/components/Icon.d.ts +7 -0
  84. package/dist/components/InlineEdit.d.ts +14 -0
  85. package/dist/components/KVCard.d.ts +12 -0
  86. package/dist/components/Kbd.d.ts +8 -0
  87. package/dist/components/List.d.ts +29 -0
  88. package/dist/components/ListCard.d.ts +30 -0
  89. package/dist/components/ListItem.d.ts +27 -0
  90. package/dist/components/LoadingOverlay.d.ts +14 -0
  91. package/dist/components/MediaCard.d.ts +24 -0
  92. package/dist/components/MetricsSection.d.ts +37 -0
  93. package/dist/components/OverflowText.d.ts +12 -0
  94. package/dist/components/StatCard.d.ts +26 -0
  95. package/dist/components/StatusCard.d.ts +29 -0
  96. package/dist/components/TruncatedList.d.ts +13 -0
  97. package/dist/domain/DescriptionList.d.ts +12 -0
  98. package/dist/domain/EventsList.d.ts +11 -0
  99. package/dist/domain/FilterBar.d.ts +23 -0
  100. package/dist/domain/LogsViewer.d.ts +15 -0
  101. package/dist/domain/MetricCard.d.ts +14 -0
  102. package/dist/domain/ObjectInspector.d.ts +19 -0
  103. package/dist/domain/ResourceBreadcrumb.d.ts +19 -0
  104. package/dist/domain/ResourceRef.d.ts +15 -0
  105. package/dist/domain/ResourceStatus.d.ts +17 -0
  106. package/dist/domain/SecretValueMask.d.ts +11 -0
  107. package/dist/domain/Timeline.d.ts +21 -0
  108. package/dist/domain/index.d.ts +23 -0
  109. package/dist/domain/types.d.ts +25 -0
  110. package/dist/domain.cjs +1 -0
  111. package/dist/domain.js +871 -0
  112. package/dist/editors/CodeEditor.d.ts +19 -0
  113. package/dist/editors/CommandPalette.d.ts +22 -0
  114. package/dist/editors/DiffViewer.d.ts +14 -0
  115. package/dist/editors/MarkdownPreview.d.ts +9 -0
  116. package/dist/editors/Terminal.d.ts +18 -0
  117. package/dist/editors/index.d.ts +11 -0
  118. package/dist/editors/themes.d.ts +4 -0
  119. package/dist/editors.cjs +42 -0
  120. package/dist/editors.js +38396 -0
  121. package/dist/feedback/Alert.d.ts +21 -0
  122. package/dist/feedback/ConnectionIndicator.d.ts +15 -0
  123. package/dist/feedback/EmptyState.d.ts +17 -0
  124. package/dist/feedback/ErrorState.d.ts +12 -0
  125. package/dist/feedback/IDEStatusFooter.d.ts +104 -0
  126. package/dist/feedback/NotificationStack.d.ts +32 -0
  127. package/dist/feedback/ProgressBar.d.ts +16 -0
  128. package/dist/feedback/ProgressRing.d.ts +26 -0
  129. package/dist/feedback/RunButton.d.ts +17 -0
  130. package/dist/feedback/Skeleton.d.ts +13 -0
  131. package/dist/feedback/StatusBar.d.ts +12 -0
  132. package/dist/feedback/StatusBarItem.d.ts +18 -0
  133. package/dist/feedback/StatusDot.d.ts +14 -0
  134. package/dist/feedback/StatusPill.d.ts +13 -0
  135. package/dist/feedback/index.d.ts +29 -0
  136. package/dist/feedback.cjs +1 -0
  137. package/dist/feedback.js +1011 -0
  138. package/dist/index.cjs +1 -0
  139. package/dist/index.d.ts +54 -0
  140. package/dist/index.js +1632 -0
  141. package/dist/inputs/Autocomplete.d.ts +30 -0
  142. package/dist/inputs/Checkbox.d.ts +17 -0
  143. package/dist/inputs/ColorPicker.d.ts +13 -0
  144. package/dist/inputs/DebouncedInput.d.ts +10 -0
  145. package/dist/inputs/FormField.d.ts +15 -0
  146. package/dist/inputs/FormSection.d.ts +14 -0
  147. package/dist/inputs/KeyValueEditor.d.ts +17 -0
  148. package/dist/inputs/RadioGroup.d.ts +23 -0
  149. package/dist/inputs/SearchInput.d.ts +14 -0
  150. package/dist/inputs/Select.d.ts +32 -0
  151. package/dist/inputs/Slider.d.ts +24 -0
  152. package/dist/inputs/Switch.d.ts +17 -0
  153. package/dist/inputs/TagInput.d.ts +18 -0
  154. package/dist/inputs/TextArea.d.ts +26 -0
  155. package/dist/inputs/TextField.d.ts +39 -0
  156. package/dist/inputs/TimeRangePicker.d.ts +21 -0
  157. package/dist/inputs/index.d.ts +31 -0
  158. package/dist/inputs.cjs +21 -0
  159. package/dist/inputs.js +15834 -0
  160. package/dist/layout/AppShell.d.ts +18 -0
  161. package/dist/layout/DockLayout.d.ts +23 -0
  162. package/dist/layout/Inline.d.ts +15 -0
  163. package/dist/layout/Panel.d.ts +17 -0
  164. package/dist/layout/ResizableSplitPane.d.ts +18 -0
  165. package/dist/layout/Spacer.d.ts +9 -0
  166. package/dist/layout/Stack.d.ts +19 -0
  167. package/dist/layout/index.d.ts +16 -0
  168. package/dist/layout/useResizablePanel.d.ts +18 -0
  169. package/dist/layout.cjs +5 -0
  170. package/dist/layout.js +378 -0
  171. package/dist/menus/ContextMenu.d.ts +12 -0
  172. package/dist/menus/DropdownMenu.d.ts +20 -0
  173. package/dist/menus/MenuBar.d.ts +11 -0
  174. package/dist/menus/NestedMenuItem.d.ts +13 -0
  175. package/dist/menus/SplitButton.d.ts +15 -0
  176. package/dist/menus/index.d.ts +11 -0
  177. package/dist/menus/types.d.ts +24 -0
  178. package/dist/menus.cjs +1 -0
  179. package/dist/menus.js +355 -0
  180. package/dist/navigation/Breadcrumbs.d.ts +18 -0
  181. package/dist/navigation/DraggableTabs.d.ts +24 -0
  182. package/dist/navigation/Pagination.d.ts +15 -0
  183. package/dist/navigation/PersistentTabPanel.d.ts +13 -0
  184. package/dist/navigation/Stepper.d.ts +19 -0
  185. package/dist/navigation/TabPanel.d.ts +11 -0
  186. package/dist/navigation/Tabs.d.ts +26 -0
  187. package/dist/navigation/TreeView.d.ts +27 -0
  188. package/dist/navigation/index.d.ts +16 -0
  189. package/dist/navigation.cjs +1 -0
  190. package/dist/navigation.js +429 -0
  191. package/dist/overlays/Dialog.d.ts +18 -0
  192. package/dist/overlays/Drawer.d.ts +17 -0
  193. package/dist/overlays/ErrorOverlay.d.ts +21 -0
  194. package/dist/overlays/Modal.d.ts +14 -0
  195. package/dist/overlays/NotificationCenter.d.ts +31 -0
  196. package/dist/overlays/Popover.d.ts +15 -0
  197. package/dist/overlays/Spotlight.d.ts +24 -0
  198. package/dist/overlays/ToastProvider.d.ts +32 -0
  199. package/dist/overlays/Tooltip.d.ts +15 -0
  200. package/dist/overlays/index.d.ts +20 -0
  201. package/dist/overlays/useToast.d.ts +21 -0
  202. package/dist/overlays.cjs +1 -0
  203. package/dist/overlays.js +865 -0
  204. package/dist/sidebars/ActivityBar.d.ts +16 -0
  205. package/dist/sidebars/NavMenu.d.ts +27 -0
  206. package/dist/sidebars/NavMenu.test.d.ts +1 -0
  207. package/dist/sidebars/PropertyGrid.d.ts +16 -0
  208. package/dist/sidebars/SidebarGroup.d.ts +15 -0
  209. package/dist/sidebars/SidebarPanel.d.ts +19 -0
  210. package/dist/sidebars/SidebarTreeItem.d.ts +21 -0
  211. package/dist/sidebars/index.d.ts +13 -0
  212. package/dist/sidebars/types.d.ts +29 -0
  213. package/dist/sidebars.cjs +1 -0
  214. package/dist/sidebars.js +762 -0
  215. package/dist/table/ColumnFilter.d.ts +10 -0
  216. package/dist/table/DataTable.d.ts +23 -0
  217. package/dist/table/IDETable.d.ts +48 -0
  218. package/dist/table/TableEmptyState.d.ts +12 -0
  219. package/dist/table/TableSkeleton.d.ts +11 -0
  220. package/dist/table/TableToolbar.d.ts +15 -0
  221. package/dist/table/index.d.ts +12 -0
  222. package/dist/table/types.d.ts +4 -0
  223. package/dist/table.cjs +1 -0
  224. package/dist/table.js +580 -0
  225. package/dist/theme/AppTheme.d.ts +14 -0
  226. package/dist/theme/customizations/dataDisplay.d.ts +2 -0
  227. package/dist/theme/customizations/feedback.d.ts +2 -0
  228. package/dist/theme/customizations/inputs.d.ts +2 -0
  229. package/dist/theme/customizations/navigation.d.ts +2 -0
  230. package/dist/theme/index.d.ts +36 -0
  231. package/dist/theme/primitives.d.ts +234 -0
  232. package/dist/theme.cjs +1 -0
  233. package/dist/theme.js +1362 -0
  234. package/dist/tokens.css +252 -0
  235. package/dist/types/index.d.ts +7 -0
  236. package/dist/types/maps.d.ts +25 -0
  237. package/dist/types/variants.d.ts +21 -0
  238. package/dist/types.cjs +1 -0
  239. package/dist/types.js +96 -0
  240. package/dist/typography/CodeBlock.d.ts +15 -0
  241. package/dist/typography/CodeInline.d.ts +10 -0
  242. package/dist/typography/Heading.d.ts +13 -0
  243. package/dist/typography/Link.d.ts +18 -0
  244. package/dist/typography/Text.d.ts +22 -0
  245. package/dist/typography/index.d.ts +10 -0
  246. package/dist/typography.cjs +1 -0
  247. package/dist/typography.js +120 -0
  248. package/dist/ui.css +1 -0
  249. package/dist/units-BuBKbqQ7.js +54 -0
  250. package/dist/units-CDpdlN1W.cjs +1 -0
  251. package/dist/utils/index.d.ts +4 -0
  252. package/dist/utils/language.d.ts +4 -0
  253. package/dist/utils/time.d.ts +5 -0
  254. package/dist/utils/units.d.ts +7 -0
  255. package/dist/utils.cjs +1 -0
  256. package/dist/utils.js +78 -0
  257. package/package.json +261 -0
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { Column } from '@tanstack/react-table';
3
+ type Props = {
4
+ anchorEl: HTMLElement | undefined;
5
+ columns: Array<Column<any>>;
6
+ onClose: () => void;
7
+ onClick: React.MouseEventHandler<HTMLButtonElement>;
8
+ };
9
+ declare const ColumnFilter: React.FC<Props>;
10
+ export default ColumnFilter;
@@ -0,0 +1,23 @@
1
+ import { ColumnDef } from '@tanstack/react-table';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ import { Density } from '../types';
4
+ export interface DataTableProps<T = any> {
5
+ columns: ColumnDef<T, any>[];
6
+ data: T[];
7
+ density?: Density;
8
+ loading?: boolean;
9
+ error?: React.ReactNode;
10
+ emptyState?: React.ReactNode;
11
+ onRowClick?: (row: T) => void;
12
+ selection?: 'none' | 'single' | 'multi';
13
+ stickyHeader?: boolean;
14
+ rowActions?: (row: T) => React.ReactNode;
15
+ expandable?: boolean;
16
+ renderDetail?: (row: T) => React.ReactNode;
17
+ sx?: SxProps<Theme>;
18
+ }
19
+ declare function DataTable<T = any>({ columns, data, density, loading, error, emptyState, onRowClick, selection, stickyHeader, rowActions, expandable, renderDetail, sx, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
20
+ declare namespace DataTable {
21
+ var displayName: string;
22
+ }
23
+ export default DataTable;
@@ -0,0 +1,48 @@
1
+ import { default as React } from 'react';
2
+ import { ColumnDef, RowSelectionState } from '@tanstack/react-table';
3
+ import { SxProps, Theme } from '@mui/material/styles';
4
+ export interface IDETableProps<T = any> {
5
+ /** TanStack column definitions */
6
+ columns: ColumnDef<T, any>[];
7
+ /** Row data */
8
+ data: T[];
9
+ /** Row height in pixels */
10
+ rowHeight?: number;
11
+ /** Whether to show checkboxes for row selection */
12
+ selection?: boolean;
13
+ /** Selected row IDs (controlled) */
14
+ selectedRows?: RowSelectionState;
15
+ /** Selection change handler */
16
+ onSelectionChange?: (selection: RowSelectionState) => void;
17
+ /** Called when a row is clicked */
18
+ onRowClick?: (row: T) => void;
19
+ /** Render actions column cell (e.g. "..." menu) */
20
+ rowActions?: (row: T) => React.ReactNode;
21
+ /** Whether to show the built-in search bar */
22
+ searchable?: boolean;
23
+ /** Placeholder for the search input */
24
+ searchPlaceholder?: string;
25
+ /** Controlled search value */
26
+ searchValue?: string;
27
+ /** Search change callback */
28
+ onSearchChange?: (value: string) => void;
29
+ /** Toolbar content rendered to the right of the search bar */
30
+ toolbar?: React.ReactNode;
31
+ /** Count label: e.g. "11 Pods" */
32
+ countLabel?: string;
33
+ /** Whether the table is loading */
34
+ loading?: boolean;
35
+ /** Number of skeleton rows to show */
36
+ skeletonRows?: number;
37
+ /** Empty state content */
38
+ emptyState?: React.ReactNode;
39
+ /** Sticky header */
40
+ stickyHeader?: boolean;
41
+ /** Style overrides */
42
+ sx?: SxProps<Theme>;
43
+ }
44
+ declare function IDETable<T = any>({ columns, data, rowHeight, selection, selectedRows: controlledSelection, onSelectionChange, onRowClick, rowActions, searchable, searchPlaceholder, searchValue: controlledSearchValue, onSearchChange, toolbar, countLabel, loading, skeletonRows, emptyState, stickyHeader, sx, }: IDETableProps<T>): import("react/jsx-runtime").JSX.Element;
45
+ declare namespace IDETable {
46
+ var displayName: string;
47
+ }
48
+ export default IDETable;
@@ -0,0 +1,12 @@
1
+ export interface TableEmptyStateProps {
2
+ icon?: React.ReactNode;
3
+ title: string;
4
+ description?: string;
5
+ action?: React.ReactNode;
6
+ colSpan: number;
7
+ }
8
+ declare function TableEmptyState({ icon, title, description, action, colSpan, }: TableEmptyStateProps): import("react/jsx-runtime").JSX.Element;
9
+ declare namespace TableEmptyState {
10
+ var displayName: string;
11
+ }
12
+ export default TableEmptyState;
@@ -0,0 +1,11 @@
1
+ import { Density } from '../types';
2
+ export interface TableSkeletonProps {
3
+ columns: number;
4
+ rows?: number;
5
+ density?: Density;
6
+ }
7
+ declare function TableSkeleton({ columns, rows, density, }: TableSkeletonProps): import("react/jsx-runtime").JSX.Element;
8
+ declare namespace TableSkeleton {
9
+ var displayName: string;
10
+ }
11
+ export default TableSkeleton;
@@ -0,0 +1,15 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface TableToolbarProps {
3
+ title?: string;
4
+ searchValue?: string;
5
+ onSearch?: (value: string) => void;
6
+ filters?: React.ReactNode;
7
+ actions?: React.ReactNode;
8
+ selectedCount?: number;
9
+ sx?: SxProps<Theme>;
10
+ }
11
+ declare function TableToolbar({ title, searchValue, onSearch, filters, actions, selectedCount, sx, }: TableToolbarProps): import("react/jsx-runtime").JSX.Element;
12
+ declare namespace TableToolbar {
13
+ var displayName: string;
14
+ }
15
+ export default TableToolbar;
@@ -0,0 +1,12 @@
1
+ export { default as ColumnFilter } from './ColumnFilter';
2
+ export type { Memoizer, IdAccessor } from './types';
3
+ export { default as DataTable } from './DataTable';
4
+ export type { DataTableProps } from './DataTable';
5
+ export { default as TableToolbar } from './TableToolbar';
6
+ export type { TableToolbarProps } from './TableToolbar';
7
+ export { default as TableSkeleton } from './TableSkeleton';
8
+ export type { TableSkeletonProps } from './TableSkeleton';
9
+ export { default as TableEmptyState } from './TableEmptyState';
10
+ export type { TableEmptyStateProps } from './TableEmptyState';
11
+ export { default as IDETable } from './IDETable';
12
+ export type { IDETableProps } from './IDETable';
@@ -0,0 +1,4 @@
1
+ /** Function or path to derive a memoization key from row data */
2
+ export type Memoizer = string | string[] | ((data: any) => string);
3
+ /** Function or path to derive a unique ID from row data */
4
+ export type IdAccessor = string | ((data: any) => string);
package/dist/table.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("react"),se=require("@mui/material/Card"),ae=require("@mui/material/CardContent"),ce=require("@mui/material/ClickAwayListener"),de=require("@mui/material/Divider"),ge=require("@mui/material/IconButton"),xe=require("@mui/material/Popper"),L=require("@mui/material/Stack"),ue=require("@mui/material/Switch"),v=require("@mui/material/Typography"),he=require("@mui/material/styles"),O=require("react-icons/lu"),c=require("@tanstack/react-table"),J=require("@mui/material/Table"),K=require("@mui/material/TableHead"),Q=require("@mui/material/TableBody"),f=require("@mui/material/TableRow"),m=require("@mui/material/TableCell"),q=require("@mui/material/Checkbox"),d=require("@mui/material/Box"),U=require("@mui/material/TableSortLabel"),A=require("./Skeleton-CfdQWLQM.cjs"),pe=require("./SearchInput-CFBBNdI2.cjs"),fe=require("@mui/material/InputBase"),me=require("@mui/icons-material/Search"),ve=he.styled("div")(({theme:r})=>({width:"max-content",borderRadius:"8px",border:`1px solid ${r.palette.divider}`,backgroundColor:r.palette.background.paper,boxShadow:r.palette.mode==="dark"?"0px 4px 8px rgb(0 0 0 / 0.7)":"0px 4px 8px rgb(0 0 0 / 0.1)",fontFamily:"var(--ov-font-ui)",fontSize:"0.875rem",zIndex:1})),X=({anchorEl:r,columns:u,onClose:a,onClick:s})=>{const g=!!r;return e.jsxs(p.Fragment,{children:[e.jsx(ge,{size:"small",onClick:s,sx:{border:"1px solid",borderColor:"divider"},children:e.jsx(O.LuSettings2,{size:20})}),e.jsx(xe,{style:{zIndex:1e3},id:"table-filter-menu",open:g,anchorEl:r,placement:"bottom-end",children:e.jsx(ce,{onClickAway:()=>{a()},children:e.jsx(ve,{children:e.jsxs(se,{variant:"outlined",sx:{maxHeight:"max-content",maxWidth:"100%",minWidth:"300px",p:1.25,gap:1.25},children:[e.jsxs(L,{direction:"row",spacing:.5,alignItems:"center",px:1,pt:.5,children:[e.jsx(O.LuColumns2,{size:14}),e.jsx(v,{variant:"subtitle2",children:"Columns"})]}),e.jsx(de,{}),e.jsx(ae,{sx:{display:"flex",flexDirection:"column",gap:1.5},children:u.filter(i=>i.getCanHide()).map(i=>e.jsxs(L,{direction:"row",spacing:1,alignItems:"center",component:"label",sx:{cursor:"pointer"},children:[e.jsx(ue,{size:"small",checked:i.getIsVisible(),onChange:i.getToggleVisibilityHandler()}),e.jsx(v,{variant:"caption",children:i.columnDef.header?.toString()})]},i.columnDef.id))})]})})})})]})};X.displayName="ColumnFilter";const G={compact:{rowHeight:28,cellPy:.25,cellPx:.75},comfortable:{rowHeight:40,cellPy:1,cellPx:1.5},spacious:{rowHeight:56,cellPy:2,cellPx:2}};function Y({columns:r,data:u,density:a="comfortable",loading:s=!1,error:g,emptyState:i,onRowClick:h,selection:x="none",stickyHeader:b=!1,rowActions:w,expandable:j=!1,renderDetail:k,sx:y}){const[S,P]=p.useState([]),[D,H]=p.useState({}),[_,R]=p.useState({}),T=G[a]||G.comfortable,C=p.useMemo(()=>{const n=[];return x==="multi"&&n.push({id:"__select",header:({table:o})=>e.jsx(q,{size:"small",checked:o.getIsAllRowsSelected(),indeterminate:o.getIsSomeRowsSelected(),onChange:o.getToggleAllRowsSelectedHandler(),sx:{p:0}}),cell:({row:o})=>e.jsx(q,{size:"small",checked:o.getIsSelected(),onChange:o.getToggleSelectedHandler(),sx:{p:0}}),size:40}),n.push(...r),w&&n.push({id:"__actions",header:"",cell:({row:o})=>w(o.original),size:60}),n},[r,x,w]),I=c.useReactTable({data:u,columns:C,state:{sorting:S,rowSelection:D,expanded:_},onSortingChange:P,onRowSelectionChange:H,onExpandedChange:R,getCoreRowModel:c.getCoreRowModel(),getSortedRowModel:c.getSortedRowModel(),getFilteredRowModel:c.getFilteredRowModel(),getExpandedRowModel:j?c.getExpandedRowModel():void 0,enableRowSelection:x!=="none",enableMultiRowSelection:x==="multi"});return g?e.jsx(d,{sx:{p:3},children:g}):e.jsx(d,{sx:{overflow:"auto",...typeof y=="object"&&!Array.isArray(y)?y:{}},children:e.jsxs(J,{size:"small",stickyHeader:b,sx:{"& td, & th":{py:T.cellPy,px:T.cellPx}},children:[e.jsx(K,{children:I.getHeaderGroups().map(n=>e.jsx(f,{children:n.headers.map(o=>e.jsx(m,{sx:{fontWeight:600,fontSize:"0.75rem",color:"var(--ov-fg-muted)",bgcolor:b?"var(--ov-bg-surface)":void 0,whiteSpace:"nowrap",width:o.getSize()},children:o.isPlaceholder?null:o.column.getCanSort()?e.jsx(U,{active:!!o.column.getIsSorted(),direction:o.column.getIsSorted()==="desc"?"desc":"asc",onClick:o.column.getToggleSortingHandler(),children:c.flexRender(o.column.columnDef.header,o.getContext())}):c.flexRender(o.column.columnDef.header,o.getContext())},o.id))},n.id))}),e.jsx(Q,{children:s?Array.from({length:5}).map((n,o)=>e.jsx(f,{children:C.map((B,F)=>e.jsx(m,{children:e.jsx(A.Skeleton,{variant:"text",width:"80%"})},F))},`skeleton-${o}`)):I.getRowModel().rows.length===0?i?e.jsx(f,{children:e.jsx(m,{colSpan:C.length,sx:{textAlign:"center",py:4},children:i})}):null:I.getRowModel().rows.map(n=>e.jsxs(e.Fragment,{children:[e.jsx(f,{hover:!0,selected:n.getIsSelected(),onClick:()=>{x==="single"&&n.toggleSelected(!n.getIsSelected()),j&&n.toggleExpanded(),h?.(n.original)},sx:{cursor:h||j||x==="single"?"pointer":void 0,height:T.rowHeight},children:n.getVisibleCells().map(o=>e.jsx(m,{sx:{fontSize:"0.8125rem",color:"var(--ov-fg-default)"},children:c.flexRender(o.column.columnDef.cell,o.getContext())},o.id))},n.id),j&&n.getIsExpanded()&&k&&e.jsx(f,{children:e.jsx(m,{colSpan:C.length,sx:{bgcolor:"var(--ov-bg-surface-inset)"},children:k(n.original)})},`${n.id}-detail`)]}))})]})})}Y.displayName="DataTable";function Z({title:r,searchValue:u,onSearch:a,filters:s,actions:g,selectedCount:i,sx:h}){return e.jsxs(d,{sx:{display:"flex",alignItems:"center",gap:1.5,px:1.5,py:1,borderBottom:"1px solid var(--ov-border-default)",...typeof h=="object"&&!Array.isArray(h)?h:{}},children:[r&&e.jsx(v,{variant:"subtitle2",sx:{fontWeight:600,color:"var(--ov-fg-base)",mr:1},children:r}),i!=null&&i>0&&e.jsxs(v,{variant:"body2",sx:{color:"var(--ov-accent-fg)",fontWeight:500},children:[i," selected"]}),a&&e.jsx(pe.SearchInput,{value:u??"",onChange:a,placeholder:"Search..."}),s&&e.jsx(d,{sx:{display:"flex",gap:.5,alignItems:"center"},children:s}),e.jsx(d,{sx:{flex:1}}),g&&e.jsx(d,{sx:{display:"flex",gap:.5,alignItems:"center"},children:g})]})}Z.displayName="TableToolbar";const Se={compact:.25,comfortable:1,spacious:2};function ee({columns:r,rows:u=5,density:a="comfortable"}){const s=Se[a]??1;return e.jsxs(J,{size:"small",children:[e.jsx(K,{children:e.jsx(f,{children:Array.from({length:r}).map((g,i)=>e.jsx(m,{sx:{py:s,fontWeight:600},children:e.jsx(A.Skeleton,{variant:"text",width:"60%"})},i))})}),e.jsx(Q,{children:Array.from({length:u}).map((g,i)=>e.jsx(f,{children:Array.from({length:r}).map((h,x)=>e.jsx(m,{sx:{py:s},children:e.jsx(A.Skeleton,{variant:"text",width:`${50+Math.random()*40}%`})},x))},i))})]})}ee.displayName="TableSkeleton";function te({icon:r,title:u,description:a,action:s,colSpan:g}){return e.jsx(f,{children:e.jsx(m,{colSpan:g,sx:{textAlign:"center",py:6,border:0},children:e.jsxs(d,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:1.5},children:[r&&e.jsx(d,{sx:{color:"var(--ov-fg-faint)",fontSize:40},children:r}),e.jsx(v,{variant:"subtitle1",sx:{fontWeight:600,color:"var(--ov-fg-base)"},children:u}),a&&e.jsx(v,{variant:"body2",sx:{color:"var(--ov-fg-muted)",maxWidth:360},children:a}),s&&e.jsx(d,{sx:{mt:1},children:s})]})})})}te.displayName="TableEmptyState";function oe({columns:r,data:u,rowHeight:a=30,selection:s=!1,selectedRows:g,onSelectionChange:i,onRowClick:h,rowActions:x,searchable:b=!1,searchPlaceholder:w="Search...",searchValue:j,onSearchChange:k,toolbar:y,countLabel:S,loading:P=!1,skeletonRows:D=8,emptyState:H,stickyHeader:_=!0,sx:R}){const[T,C]=p.useState([]),[I,n]=p.useState({}),[o,B]=p.useState(""),F=g??I,le=i??n,N=j??o,V=k??B,$=p.useMemo(()=>{const l=[];return s&&l.push({id:"__select",header:({table:t})=>e.jsx(q,{size:"small",checked:t.getIsAllRowsSelected(),indeterminate:t.getIsSomeRowsSelected(),onChange:t.getToggleAllRowsSelectedHandler(),sx:{p:0,color:"var(--ov-fg-faint)","&.Mui-checked, &.MuiCheckbox-indeterminate":{color:"var(--ov-accent-fg)"}}}),cell:({row:t})=>e.jsx(q,{size:"small",checked:t.getIsSelected(),onChange:t.getToggleSelectedHandler(),onClick:M=>M.stopPropagation(),sx:{p:0,color:"var(--ov-fg-faint)","&.Mui-checked":{color:"var(--ov-accent-fg)"}}}),size:32,enableSorting:!1}),l.push(...r),x&&l.push({id:"__actions",header:"",cell:({row:t})=>e.jsx(d,{onClick:M=>M.stopPropagation(),children:x(t.original)}),size:36,enableSorting:!1}),l},[r,s,x]),z=c.useReactTable({data:u,columns:$,state:{sorting:T,rowSelection:F,globalFilter:N},onSortingChange:C,onRowSelectionChange:le,onGlobalFilterChange:V,getCoreRowModel:c.getCoreRowModel(),getSortedRowModel:c.getSortedRowModel(),getFilteredRowModel:c.getFilteredRowModel(),enableRowSelection:s,enableMultiRowSelection:s}),re=p.useCallback(l=>{h?.(l)},[h]),ne=a+2,E="8px",W="0px";return e.jsxs(d,{sx:{display:"flex",flexDirection:"column",flex:1,minHeight:0,bgcolor:"var(--ov-bg-base)",...typeof R=="object"&&!Array.isArray(R)?R:{}},children:[(b||y||S)&&e.jsxs(d,{sx:{display:"flex",alignItems:"center",gap:1,px:1,py:.5,borderBottom:"1px solid var(--ov-border-default)",bgcolor:"var(--ov-bg-surface)",flexShrink:0},children:[b&&e.jsxs(d,{sx:{display:"flex",alignItems:"center",flex:1,maxWidth:360,height:28,border:"1px solid var(--ov-border-default)",borderRadius:"4px",bgcolor:"var(--ov-bg-base)",px:.75,"&:focus-within":{borderColor:"var(--ov-accent)"}},children:[e.jsx(me,{sx:{fontSize:14,color:"var(--ov-fg-faint)",mr:.5}}),e.jsx(fe,{value:N,onChange:l=>V(l.target.value),placeholder:S?`Search ${S}...`:w,sx:{flex:1,fontSize:"0.75rem",color:"var(--ov-fg-default)","& input":{py:0,px:0},"& input::placeholder":{color:"var(--ov-fg-faint)",opacity:1}}})]}),!b&&S&&e.jsx(v,{sx:{fontSize:"0.75rem",color:"var(--ov-fg-muted)",fontWeight:500},children:S}),e.jsx(d,{sx:{flex:1}}),y]}),e.jsx(d,{sx:{flex:1,overflow:"auto",minHeight:0},children:e.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontFamily:"var(--ov-font-ui)",fontSize:"0.75rem",tableLayout:"fixed"},children:[e.jsx("colgroup",{children:z.getAllColumns().map(l=>e.jsx("col",{style:{width:l.getSize()!==150?l.getSize():void 0}},l.id))}),e.jsx("thead",{children:z.getHeaderGroups().map(l=>e.jsx("tr",{style:{height:ne,..._?{position:"sticky",top:0,zIndex:2}:{}},children:l.headers.map(t=>e.jsx("th",{style:{padding:`${W} ${E}`,textAlign:"left",fontWeight:600,fontSize:"0.6875rem",color:"var(--ov-fg-muted)",backgroundColor:"var(--ov-bg-surface)",borderBottom:"1px solid var(--ov-border-default)",whiteSpace:"nowrap",overflow:"hidden",userSelect:"none",letterSpacing:"0.01em"},children:t.isPlaceholder?null:t.column.getCanSort()?e.jsx(U,{active:!!t.column.getIsSorted(),direction:t.column.getIsSorted()==="desc"?"desc":"asc",onClick:t.column.getToggleSortingHandler(),sx:{fontSize:"inherit",fontWeight:"inherit",color:"inherit !important","& .MuiTableSortLabel-icon":{fontSize:12,opacity:.5}},children:c.flexRender(t.column.columnDef.header,t.getContext())}):c.flexRender(t.column.columnDef.header,t.getContext())},t.id))},l.id))}),e.jsx("tbody",{children:P?Array.from({length:D}).map((l,t)=>e.jsx("tr",{style:{height:a},children:$.map((M,ie)=>e.jsx("td",{style:{padding:`${W} ${E}`,borderBottom:"1px solid var(--ov-border-muted)"},children:e.jsx(A.Skeleton,{variant:"text",width:"70%",sx:{fontSize:"0.75rem"}})},ie))},`skel-${t}`)):z.getRowModel().rows.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:$.length,style:{textAlign:"center",padding:"32px 8px",color:"var(--ov-fg-faint)"},children:H??e.jsx(v,{sx:{fontSize:"0.75rem",color:"var(--ov-fg-faint)"},children:"No items to display"})})}):z.getRowModel().rows.map(l=>e.jsx("tr",{onClick:()=>re(l.original),style:{height:a,cursor:h?"pointer":void 0,backgroundColor:l.getIsSelected()?"var(--ov-accent-subtle)":void 0},onMouseEnter:t=>{l.getIsSelected()||(t.currentTarget.style.backgroundColor="var(--ov-state-hover)")},onMouseLeave:t=>{t.currentTarget.style.backgroundColor=l.getIsSelected()?"var(--ov-accent-subtle)":""},children:l.getVisibleCells().map(t=>e.jsx("td",{style:{padding:`${W} ${E}`,fontSize:"0.75rem",color:"var(--ov-fg-default)",borderBottom:"1px solid var(--ov-border-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",lineHeight:`${a}px`},children:c.flexRender(t.column.columnDef.cell,t.getContext())},t.id))},l.id))})]})})]})}oe.displayName="IDETable";exports.ColumnFilter=X;exports.DataTable=Y;exports.IDETable=oe;exports.TableEmptyState=te;exports.TableSkeleton=ee;exports.TableToolbar=Z;