@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.
- package/LICENSE +661 -0
- package/dist/Button-Dmu1cikC.cjs +1 -0
- package/dist/Button-lr02bh_m.js +51 -0
- package/dist/CodeBlock-B1iQO7zU.js +73 -0
- package/dist/CodeBlock-CIyG0DbW.cjs +2 -0
- package/dist/CopyButton-CACe3RCF.cjs +1 -0
- package/dist/CopyButton-DPBgL0K8.js +77 -0
- package/dist/ErrorState-CexYrMpy.js +188 -0
- package/dist/ErrorState-CnIR-1xa.cjs +1 -0
- package/dist/HotkeyHint-6SOi-MaU.js +37 -0
- package/dist/HotkeyHint-DrTOTrIM.cjs +1 -0
- package/dist/Icon-CKdIOrjZ.cjs +1 -0
- package/dist/Icon-CuO9W7cA.js +27 -0
- package/dist/SearchInput-CFBBNdI2.cjs +1 -0
- package/dist/SearchInput-D3AsCI5H.js +41 -0
- package/dist/Select-CnRBSc5w.cjs +1 -0
- package/dist/Select-DTUF31OP.js +206 -0
- package/dist/Skeleton-BUYyXUiC.js +32 -0
- package/dist/Skeleton-CfdQWLQM.cjs +1 -0
- package/dist/StatusDot-CYyJxjJK.cjs +1 -0
- package/dist/StatusDot-CncykBAY.js +68 -0
- package/dist/StatusPill-C1NaiCzd.js +29 -0
- package/dist/StatusPill-C7yn7dSA.cjs +1 -0
- package/dist/TabPanel-CkUSl6Bt.cjs +1 -0
- package/dist/TabPanel-DLHbgKpl.js +124 -0
- package/dist/Text-By4P3in5.js +71 -0
- package/dist/Text-Mk6Uyg1w.cjs +1 -0
- package/dist/Tooltip-44-P5KfQ.cjs +1 -0
- package/dist/Tooltip-BEVuYuZ3.js +41 -0
- package/dist/_commonjsHelpers-CvWRHxnb.js +26 -0
- package/dist/_commonjsHelpers-D3HyQheV.cjs +1 -0
- package/dist/buttons/ActionMenu.d.ts +21 -0
- package/dist/buttons/Button.d.ts +31 -0
- package/dist/buttons/ButtonGroup.d.ts +18 -0
- package/dist/buttons/ConfirmButton.d.ts +10 -0
- package/dist/buttons/CopyButton.d.ts +11 -0
- package/dist/buttons/IconButton.d.ts +21 -0
- package/dist/buttons/SearchBar.d.ts +22 -0
- package/dist/buttons/ToggleButton.d.ts +18 -0
- package/dist/buttons/ToggleGroup.d.ts +23 -0
- package/dist/buttons/Toolbar.d.ts +15 -0
- package/dist/buttons/ToolbarGroup.d.ts +11 -0
- package/dist/buttons/index.d.ts +22 -0
- package/dist/buttons.cjs +1 -0
- package/dist/buttons.js +430 -0
- package/dist/cells/BadgesCell.d.ts +19 -0
- package/dist/cells/ChipCell.d.ts +16 -0
- package/dist/cells/SelectBoxHeader.d.ts +11 -0
- package/dist/cells/SelectBoxRow.d.ts +11 -0
- package/dist/cells/TextCell.d.ts +25 -0
- package/dist/cells/index.d.ts +5 -0
- package/dist/cells.cjs +1 -0
- package/dist/cells.js +284 -0
- package/dist/charts/BarChart.d.ts +15 -0
- package/dist/charts/ChartContainer.d.ts +12 -0
- package/dist/charts/ChartLegend.d.ts +11 -0
- package/dist/charts/GaugeCard.d.ts +18 -0
- package/dist/charts/MetricsPanel.d.ts +61 -0
- package/dist/charts/PieChart.d.ts +13 -0
- package/dist/charts/ScatterChart.d.ts +25 -0
- package/dist/charts/Sparkline.d.ts +16 -0
- package/dist/charts/StackedAreaChart.d.ts +18 -0
- package/dist/charts/TimeSeriesChart.d.ts +43 -0
- package/dist/charts/formatters.d.ts +17 -0
- package/dist/charts/index.d.ts +21 -0
- package/dist/charts/palette.d.ts +7 -0
- package/dist/charts/types.d.ts +67 -0
- package/dist/charts/useChartTheme.d.ts +13 -0
- package/dist/charts.cjs +1 -0
- package/dist/charts.js +967 -0
- package/dist/components/ActionCard.d.ts +22 -0
- package/dist/components/AspectRatio.d.ts +13 -0
- package/dist/components/Avatar.d.ts +19 -0
- package/dist/components/Badge.d.ts +22 -0
- package/dist/components/Card.d.ts +24 -0
- package/dist/components/Chip.d.ts +32 -0
- package/dist/components/ClipboardText.d.ts +14 -0
- package/dist/components/DetailsCard.d.ts +25 -0
- package/dist/components/EmptySearch.d.ts +12 -0
- package/dist/components/ExpandableSections.d.ts +51 -0
- package/dist/components/FileIcon.d.ts +12 -0
- package/dist/components/HotkeyHint.d.ts +8 -0
- package/dist/components/Icon.d.ts +7 -0
- package/dist/components/InlineEdit.d.ts +14 -0
- package/dist/components/KVCard.d.ts +12 -0
- package/dist/components/Kbd.d.ts +8 -0
- package/dist/components/List.d.ts +29 -0
- package/dist/components/ListCard.d.ts +30 -0
- package/dist/components/ListItem.d.ts +27 -0
- package/dist/components/LoadingOverlay.d.ts +14 -0
- package/dist/components/MediaCard.d.ts +24 -0
- package/dist/components/MetricsSection.d.ts +37 -0
- package/dist/components/OverflowText.d.ts +12 -0
- package/dist/components/StatCard.d.ts +26 -0
- package/dist/components/StatusCard.d.ts +29 -0
- package/dist/components/TruncatedList.d.ts +13 -0
- package/dist/domain/DescriptionList.d.ts +12 -0
- package/dist/domain/EventsList.d.ts +11 -0
- package/dist/domain/FilterBar.d.ts +23 -0
- package/dist/domain/LogsViewer.d.ts +15 -0
- package/dist/domain/MetricCard.d.ts +14 -0
- package/dist/domain/ObjectInspector.d.ts +19 -0
- package/dist/domain/ResourceBreadcrumb.d.ts +19 -0
- package/dist/domain/ResourceRef.d.ts +15 -0
- package/dist/domain/ResourceStatus.d.ts +17 -0
- package/dist/domain/SecretValueMask.d.ts +11 -0
- package/dist/domain/Timeline.d.ts +21 -0
- package/dist/domain/index.d.ts +23 -0
- package/dist/domain/types.d.ts +25 -0
- package/dist/domain.cjs +1 -0
- package/dist/domain.js +871 -0
- package/dist/editors/CodeEditor.d.ts +19 -0
- package/dist/editors/CommandPalette.d.ts +22 -0
- package/dist/editors/DiffViewer.d.ts +14 -0
- package/dist/editors/MarkdownPreview.d.ts +9 -0
- package/dist/editors/Terminal.d.ts +18 -0
- package/dist/editors/index.d.ts +11 -0
- package/dist/editors/themes.d.ts +4 -0
- package/dist/editors.cjs +42 -0
- package/dist/editors.js +38396 -0
- package/dist/feedback/Alert.d.ts +21 -0
- package/dist/feedback/ConnectionIndicator.d.ts +15 -0
- package/dist/feedback/EmptyState.d.ts +17 -0
- package/dist/feedback/ErrorState.d.ts +12 -0
- package/dist/feedback/IDEStatusFooter.d.ts +104 -0
- package/dist/feedback/NotificationStack.d.ts +32 -0
- package/dist/feedback/ProgressBar.d.ts +16 -0
- package/dist/feedback/ProgressRing.d.ts +26 -0
- package/dist/feedback/RunButton.d.ts +17 -0
- package/dist/feedback/Skeleton.d.ts +13 -0
- package/dist/feedback/StatusBar.d.ts +12 -0
- package/dist/feedback/StatusBarItem.d.ts +18 -0
- package/dist/feedback/StatusDot.d.ts +14 -0
- package/dist/feedback/StatusPill.d.ts +13 -0
- package/dist/feedback/index.d.ts +29 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.js +1011 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +1632 -0
- package/dist/inputs/Autocomplete.d.ts +30 -0
- package/dist/inputs/Checkbox.d.ts +17 -0
- package/dist/inputs/ColorPicker.d.ts +13 -0
- package/dist/inputs/DebouncedInput.d.ts +10 -0
- package/dist/inputs/FormField.d.ts +15 -0
- package/dist/inputs/FormSection.d.ts +14 -0
- package/dist/inputs/KeyValueEditor.d.ts +17 -0
- package/dist/inputs/RadioGroup.d.ts +23 -0
- package/dist/inputs/SearchInput.d.ts +14 -0
- package/dist/inputs/Select.d.ts +32 -0
- package/dist/inputs/Slider.d.ts +24 -0
- package/dist/inputs/Switch.d.ts +17 -0
- package/dist/inputs/TagInput.d.ts +18 -0
- package/dist/inputs/TextArea.d.ts +26 -0
- package/dist/inputs/TextField.d.ts +39 -0
- package/dist/inputs/TimeRangePicker.d.ts +21 -0
- package/dist/inputs/index.d.ts +31 -0
- package/dist/inputs.cjs +21 -0
- package/dist/inputs.js +15834 -0
- package/dist/layout/AppShell.d.ts +18 -0
- package/dist/layout/DockLayout.d.ts +23 -0
- package/dist/layout/Inline.d.ts +15 -0
- package/dist/layout/Panel.d.ts +17 -0
- package/dist/layout/ResizableSplitPane.d.ts +18 -0
- package/dist/layout/Spacer.d.ts +9 -0
- package/dist/layout/Stack.d.ts +19 -0
- package/dist/layout/index.d.ts +16 -0
- package/dist/layout/useResizablePanel.d.ts +18 -0
- package/dist/layout.cjs +5 -0
- package/dist/layout.js +378 -0
- package/dist/menus/ContextMenu.d.ts +12 -0
- package/dist/menus/DropdownMenu.d.ts +20 -0
- package/dist/menus/MenuBar.d.ts +11 -0
- package/dist/menus/NestedMenuItem.d.ts +13 -0
- package/dist/menus/SplitButton.d.ts +15 -0
- package/dist/menus/index.d.ts +11 -0
- package/dist/menus/types.d.ts +24 -0
- package/dist/menus.cjs +1 -0
- package/dist/menus.js +355 -0
- package/dist/navigation/Breadcrumbs.d.ts +18 -0
- package/dist/navigation/DraggableTabs.d.ts +24 -0
- package/dist/navigation/Pagination.d.ts +15 -0
- package/dist/navigation/PersistentTabPanel.d.ts +13 -0
- package/dist/navigation/Stepper.d.ts +19 -0
- package/dist/navigation/TabPanel.d.ts +11 -0
- package/dist/navigation/Tabs.d.ts +26 -0
- package/dist/navigation/TreeView.d.ts +27 -0
- package/dist/navigation/index.d.ts +16 -0
- package/dist/navigation.cjs +1 -0
- package/dist/navigation.js +429 -0
- package/dist/overlays/Dialog.d.ts +18 -0
- package/dist/overlays/Drawer.d.ts +17 -0
- package/dist/overlays/ErrorOverlay.d.ts +21 -0
- package/dist/overlays/Modal.d.ts +14 -0
- package/dist/overlays/NotificationCenter.d.ts +31 -0
- package/dist/overlays/Popover.d.ts +15 -0
- package/dist/overlays/Spotlight.d.ts +24 -0
- package/dist/overlays/ToastProvider.d.ts +32 -0
- package/dist/overlays/Tooltip.d.ts +15 -0
- package/dist/overlays/index.d.ts +20 -0
- package/dist/overlays/useToast.d.ts +21 -0
- package/dist/overlays.cjs +1 -0
- package/dist/overlays.js +865 -0
- package/dist/sidebars/ActivityBar.d.ts +16 -0
- package/dist/sidebars/NavMenu.d.ts +27 -0
- package/dist/sidebars/NavMenu.test.d.ts +1 -0
- package/dist/sidebars/PropertyGrid.d.ts +16 -0
- package/dist/sidebars/SidebarGroup.d.ts +15 -0
- package/dist/sidebars/SidebarPanel.d.ts +19 -0
- package/dist/sidebars/SidebarTreeItem.d.ts +21 -0
- package/dist/sidebars/index.d.ts +13 -0
- package/dist/sidebars/types.d.ts +29 -0
- package/dist/sidebars.cjs +1 -0
- package/dist/sidebars.js +762 -0
- package/dist/table/ColumnFilter.d.ts +10 -0
- package/dist/table/DataTable.d.ts +23 -0
- package/dist/table/IDETable.d.ts +48 -0
- package/dist/table/TableEmptyState.d.ts +12 -0
- package/dist/table/TableSkeleton.d.ts +11 -0
- package/dist/table/TableToolbar.d.ts +15 -0
- package/dist/table/index.d.ts +12 -0
- package/dist/table/types.d.ts +4 -0
- package/dist/table.cjs +1 -0
- package/dist/table.js +580 -0
- package/dist/theme/AppTheme.d.ts +14 -0
- package/dist/theme/customizations/dataDisplay.d.ts +2 -0
- package/dist/theme/customizations/feedback.d.ts +2 -0
- package/dist/theme/customizations/inputs.d.ts +2 -0
- package/dist/theme/customizations/navigation.d.ts +2 -0
- package/dist/theme/index.d.ts +36 -0
- package/dist/theme/primitives.d.ts +234 -0
- package/dist/theme.cjs +1 -0
- package/dist/theme.js +1362 -0
- package/dist/tokens.css +252 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/maps.d.ts +25 -0
- package/dist/types/variants.d.ts +21 -0
- package/dist/types.cjs +1 -0
- package/dist/types.js +96 -0
- package/dist/typography/CodeBlock.d.ts +15 -0
- package/dist/typography/CodeInline.d.ts +10 -0
- package/dist/typography/Heading.d.ts +13 -0
- package/dist/typography/Link.d.ts +18 -0
- package/dist/typography/Text.d.ts +22 -0
- package/dist/typography/index.d.ts +10 -0
- package/dist/typography.cjs +1 -0
- package/dist/typography.js +120 -0
- package/dist/ui.css +1 -0
- package/dist/units-BuBKbqQ7.js +54 -0
- package/dist/units-CDpdlN1W.cjs +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/language.d.ts +4 -0
- package/dist/utils/time.d.ts +5 -0
- package/dist/utils/units.d.ts +7 -0
- package/dist/utils.cjs +1 -0
- package/dist/utils.js +78 -0
- package/package.json +261 -0
package/dist/menus.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),x=require("@mui/material/Menu"),z=require("@mui/material/Divider"),k=require("@mui/material/MenuItem"),m=require("@mui/material/ListItemIcon"),M=require("@mui/material/ListItemText"),E=require("react-icons/lu"),W=require("./HotkeyHint-DrTOTrIM.cjs"),q=require("@mui/material/Box"),I=require("@mui/material/Button"),A=require("@mui/material/ButtonGroup"),C=require("./types.cjs");function p({item:r,onClose:i,submenuDirection:s="right"}){const[d,u]=o.useState(!1),h=o.useRef(null),a=()=>u(!0),n=()=>u(!1),t=()=>{r.onClick&&(r.onClick(),i())};return r.children?.length?e.jsxs(e.Fragment,{children:[e.jsxs(k,{ref:h,disabled:r.disabled,onMouseEnter:a,onMouseLeave:n,onClick:a,sx:{fontSize:"var(--ov-text-sm)",color:r.color==="danger"||r.color==="error"?"var(--ov-danger-default)":"var(--ov-fg-default)",display:"flex",justifyContent:"space-between",gap:.5},children:[r.icon&&e.jsx(m,{sx:{color:"inherit",minWidth:24},children:r.icon}),e.jsx(M,{children:r.label}),e.jsx(E.LuChevronRight,{size:14})]}),e.jsx(x,{open:d,anchorEl:h.current,onClose:n,anchorOrigin:{vertical:"top",horizontal:s==="left"?"left":"right"},transformOrigin:{vertical:"top",horizontal:s==="left"?"right":"left"},slotProps:{paper:{sx:{minWidth:160,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)",pointerEvents:"auto"},onMouseEnter:a,onMouseLeave:n}},sx:{pointerEvents:"none"},disableAutoFocus:!0,disableEnforceFocus:!0,children:r.children.flatMap(l=>{const v=[e.jsx(p,{item:l,onClose:i,submenuDirection:s},l.key)];return l.dividerAfter&&v.push(e.jsx("hr",{style:{margin:"4px 0",border:"none",borderTop:"1px solid var(--ov-border-muted)"}},`${l.key}-divider`)),v})})]}):e.jsxs(k,{ref:h,disabled:r.disabled,onClick:t,sx:{fontSize:"var(--ov-text-sm)",color:r.color==="danger"||r.color==="error"?"var(--ov-danger-default)":"var(--ov-fg-default)",gap:.5},children:[r.icon&&e.jsx(m,{sx:{color:"inherit",minWidth:24},children:r.icon}),e.jsx(M,{children:r.label}),r.shortcut&&e.jsx(W.HotkeyHint,{keys:r.shortcut})]})}p.displayName="NestedMenuItem";function R({items:r,children:i,onOpenChange:s}){const[d,u]=o.useState(null),h=o.useCallback(n=>{n.preventDefault(),n.stopPropagation(),u({top:n.clientY,left:n.clientX}),s?.(!0)},[s]),a=o.useCallback(()=>{u(null),s?.(!1)},[s]);return e.jsxs(e.Fragment,{children:[e.jsx("span",{onContextMenu:h,style:{display:"contents"},children:i}),e.jsx(x,{open:d!==null,onClose:a,anchorReference:"anchorPosition",anchorPosition:d??void 0,slotProps:{paper:{sx:{minWidth:180,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:r.map(n=>e.jsxs(o.Fragment,{children:[e.jsx(p,{item:n,onClose:a}),n.dividerAfter&&e.jsx(z,{})]},n.key))})]})}R.displayName="ContextMenu";const N={"bottom-start":{anchor:{vertical:"bottom",horizontal:"left"},transform:{vertical:"top",horizontal:"left"}},"bottom-end":{anchor:{vertical:"bottom",horizontal:"right"},transform:{vertical:"top",horizontal:"right"}},"top-start":{anchor:{vertical:"top",horizontal:"left"},transform:{vertical:"bottom",horizontal:"left"}},"top-end":{anchor:{vertical:"top",horizontal:"right"},transform:{vertical:"bottom",horizontal:"right"}}};function B({items:r,trigger:i,placement:s="bottom-start",submenuDirection:d,width:u}){const[h,a]=o.useState(!1),n=o.useRef(null),t=o.useCallback(()=>a(!1),[]),l=o.useCallback(()=>a(f=>!f),[]),{anchor:v,transform:g}=N[s],j=d??(s.endsWith("-end")?"left":"right");return e.jsxs(e.Fragment,{children:[e.jsx("span",{ref:n,onClick:l,style:{cursor:"pointer",display:"inline-flex"},children:i}),e.jsx(x,{open:h,anchorEl:n.current,onClose:t,anchorOrigin:v,transformOrigin:g,slotProps:{paper:{sx:{minWidth:u??180,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:r.flatMap(f=>{const b=[e.jsx(p,{item:f,onClose:t,submenuDirection:j},f.key)];return f.dividerAfter&&b.push(e.jsx(z,{},`${f.key}-divider`)),b})})]})}B.displayName="DropdownMenu";function F({menus:r,sx:i}){const[s,d]=o.useState(null),u=o.useRef({}),h=o.useCallback(()=>d(null),[]),a=o.useCallback(t=>{d(l=>l===t?null:t)},[]),n=o.useCallback(t=>{s!==null&&d(t)},[s]);return e.jsx(q,{sx:{display:"flex",alignItems:"center",height:32,bgcolor:"var(--ov-bg-surface)",borderBottom:"1px solid var(--ov-border-default)",...typeof i=="object"&&!Array.isArray(i)?i:{}},children:r.map(t=>e.jsxs(o.Fragment,{children:[e.jsx(q,{component:"button",ref:l=>{u.current[t.key]=l},onClick:()=>a(t.key),onMouseEnter:()=>n(t.key),sx:{border:"none",background:s===t.key?"var(--ov-state-hover)":"transparent",color:"var(--ov-fg-default)",fontSize:"var(--ov-text-sm)",fontFamily:"var(--ov-font-ui)",px:1.5,py:.5,cursor:"pointer",borderRadius:"4px","&:hover":{bgcolor:"var(--ov-state-hover)"}},children:t.label}),e.jsx(x,{open:s===t.key,anchorEl:u.current[t.key],onClose:h,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{minWidth:200,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:t.items.map(l=>e.jsxs(o.Fragment,{children:[e.jsx(p,{item:l,onClose:h}),l.dividerAfter&&e.jsx(z,{})]},l.key))})]},t.key))})}F.displayName="MenuBar";function O({options:r,onSelect:i,defaultIndex:s=0,color:d="primary",emphasis:u="soft",size:h="sm"}){const[a,n]=o.useState(s),[t,l]=o.useState(!1),v=o.useRef(null),g=C.toMuiColor(d),j=C.toMuiVariant(u),f=C.toMuiSize(h),b=o.useCallback(()=>{const c=r[a];c&&!c.disabled&&i(c)},[r,a,i]),P=o.useCallback(c=>{n(c),l(!1),i(r[c])},[r,i]),y=r[a];return e.jsxs(e.Fragment,{children:[e.jsxs(A,{ref:v,variant:j,color:g,size:f,children:[e.jsx(I,{onClick:b,disabled:y?.disabled,startIcon:y?.icon,children:y?.label}),e.jsx(I,{onClick:()=>l(c=>!c),sx:{px:.5,minWidth:"auto"},"aria-label":"Select option",children:e.jsx(E.LuChevronDown,{size:14})})]}),e.jsx(x,{open:t,anchorEl:v.current,onClose:()=>l(!1),anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{minWidth:160,bgcolor:"var(--ov-bg-surface)",border:"1px solid var(--ov-border-default)"}}},children:r.map((c,S)=>e.jsxs(k,{disabled:c.disabled,selected:S===a,onClick:()=>P(S),sx:{fontSize:"var(--ov-text-sm)"},children:[c.icon&&e.jsx(m,{sx:{minWidth:28},children:c.icon}),e.jsx(M,{children:c.label})]},c.key))})]})}O.displayName="SplitButton";exports.ContextMenu=R;exports.DropdownMenu=B;exports.MenuBar=F;exports.NestedMenuItem=p;exports.SplitButton=O;
|
package/dist/menus.js
ADDED
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import { jsxs as h, jsx as r, Fragment as y } from "react/jsx-runtime";
|
|
2
|
+
import E, { useState as b, useRef as C, useCallback as u } from "react";
|
|
3
|
+
import m from "@mui/material/Menu";
|
|
4
|
+
import P from "@mui/material/Divider";
|
|
5
|
+
import I from "@mui/material/MenuItem";
|
|
6
|
+
import W from "@mui/material/ListItemIcon";
|
|
7
|
+
import O from "@mui/material/ListItemText";
|
|
8
|
+
import { LuChevronRight as N, LuChevronDown as R } from "react-icons/lu";
|
|
9
|
+
import { H as L } from "./HotkeyHint-6SOi-MaU.js";
|
|
10
|
+
import A from "@mui/material/Box";
|
|
11
|
+
import B from "@mui/material/Button";
|
|
12
|
+
import D from "@mui/material/ButtonGroup";
|
|
13
|
+
import { toMuiColor as j, toMuiVariant as w, toMuiSize as H } from "./types.js";
|
|
14
|
+
function g({ item: o, onClose: i, submenuDirection: n = "right" }) {
|
|
15
|
+
const [c, d] = b(!1), f = C(null), a = () => d(!0), t = () => d(!1), e = () => {
|
|
16
|
+
o.onClick && (o.onClick(), i());
|
|
17
|
+
};
|
|
18
|
+
return o.children?.length ? /* @__PURE__ */ h(y, { children: [
|
|
19
|
+
/* @__PURE__ */ h(
|
|
20
|
+
I,
|
|
21
|
+
{
|
|
22
|
+
ref: f,
|
|
23
|
+
disabled: o.disabled,
|
|
24
|
+
onMouseEnter: a,
|
|
25
|
+
onMouseLeave: t,
|
|
26
|
+
onClick: a,
|
|
27
|
+
sx: {
|
|
28
|
+
fontSize: "var(--ov-text-sm)",
|
|
29
|
+
color: o.color === "danger" || o.color === "error" ? "var(--ov-danger-default)" : "var(--ov-fg-default)",
|
|
30
|
+
display: "flex",
|
|
31
|
+
justifyContent: "space-between",
|
|
32
|
+
gap: 0.5
|
|
33
|
+
},
|
|
34
|
+
children: [
|
|
35
|
+
o.icon && /* @__PURE__ */ r(W, { sx: { color: "inherit", minWidth: 24 }, children: o.icon }),
|
|
36
|
+
/* @__PURE__ */ r(O, { children: o.label }),
|
|
37
|
+
/* @__PURE__ */ r(N, { size: 14 })
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
/* @__PURE__ */ r(
|
|
42
|
+
m,
|
|
43
|
+
{
|
|
44
|
+
open: c,
|
|
45
|
+
anchorEl: f.current,
|
|
46
|
+
onClose: t,
|
|
47
|
+
anchorOrigin: {
|
|
48
|
+
vertical: "top",
|
|
49
|
+
horizontal: n === "left" ? "left" : "right"
|
|
50
|
+
},
|
|
51
|
+
transformOrigin: {
|
|
52
|
+
vertical: "top",
|
|
53
|
+
horizontal: n === "left" ? "right" : "left"
|
|
54
|
+
},
|
|
55
|
+
slotProps: {
|
|
56
|
+
paper: {
|
|
57
|
+
sx: {
|
|
58
|
+
minWidth: 160,
|
|
59
|
+
bgcolor: "var(--ov-bg-surface)",
|
|
60
|
+
border: "1px solid var(--ov-border-default)",
|
|
61
|
+
pointerEvents: "auto"
|
|
62
|
+
},
|
|
63
|
+
onMouseEnter: a,
|
|
64
|
+
onMouseLeave: t
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
sx: { pointerEvents: "none" },
|
|
68
|
+
disableAutoFocus: !0,
|
|
69
|
+
disableEnforceFocus: !0,
|
|
70
|
+
children: o.children.flatMap((l) => {
|
|
71
|
+
const v = [
|
|
72
|
+
/* @__PURE__ */ r(g, { item: l, onClose: i, submenuDirection: n }, l.key)
|
|
73
|
+
];
|
|
74
|
+
return l.dividerAfter && v.push(
|
|
75
|
+
/* @__PURE__ */ r(
|
|
76
|
+
"hr",
|
|
77
|
+
{
|
|
78
|
+
style: {
|
|
79
|
+
margin: "4px 0",
|
|
80
|
+
border: "none",
|
|
81
|
+
borderTop: "1px solid var(--ov-border-muted)"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
`${l.key}-divider`
|
|
85
|
+
)
|
|
86
|
+
), v;
|
|
87
|
+
})
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
] }) : /* @__PURE__ */ h(
|
|
91
|
+
I,
|
|
92
|
+
{
|
|
93
|
+
ref: f,
|
|
94
|
+
disabled: o.disabled,
|
|
95
|
+
onClick: e,
|
|
96
|
+
sx: {
|
|
97
|
+
fontSize: "var(--ov-text-sm)",
|
|
98
|
+
color: o.color === "danger" || o.color === "error" ? "var(--ov-danger-default)" : "var(--ov-fg-default)",
|
|
99
|
+
gap: 0.5
|
|
100
|
+
},
|
|
101
|
+
children: [
|
|
102
|
+
o.icon && /* @__PURE__ */ r(W, { sx: { color: "inherit", minWidth: 24 }, children: o.icon }),
|
|
103
|
+
/* @__PURE__ */ r(O, { children: o.label }),
|
|
104
|
+
o.shortcut && /* @__PURE__ */ r(L, { keys: o.shortcut })
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
g.displayName = "NestedMenuItem";
|
|
110
|
+
function T({
|
|
111
|
+
items: o,
|
|
112
|
+
children: i,
|
|
113
|
+
onOpenChange: n
|
|
114
|
+
}) {
|
|
115
|
+
const [c, d] = b(null), f = u((t) => {
|
|
116
|
+
t.preventDefault(), t.stopPropagation(), d({ top: t.clientY, left: t.clientX }), n?.(!0);
|
|
117
|
+
}, [n]), a = u(() => {
|
|
118
|
+
d(null), n?.(!1);
|
|
119
|
+
}, [n]);
|
|
120
|
+
return /* @__PURE__ */ h(y, { children: [
|
|
121
|
+
/* @__PURE__ */ r("span", { onContextMenu: f, style: { display: "contents" }, children: i }),
|
|
122
|
+
/* @__PURE__ */ r(
|
|
123
|
+
m,
|
|
124
|
+
{
|
|
125
|
+
open: c !== null,
|
|
126
|
+
onClose: a,
|
|
127
|
+
anchorReference: "anchorPosition",
|
|
128
|
+
anchorPosition: c ?? void 0,
|
|
129
|
+
slotProps: {
|
|
130
|
+
paper: {
|
|
131
|
+
sx: {
|
|
132
|
+
minWidth: 180,
|
|
133
|
+
bgcolor: "var(--ov-bg-surface)",
|
|
134
|
+
border: "1px solid var(--ov-border-default)"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
children: o.map((t) => /* @__PURE__ */ h(E.Fragment, { children: [
|
|
139
|
+
/* @__PURE__ */ r(g, { item: t, onClose: a }),
|
|
140
|
+
t.dividerAfter && /* @__PURE__ */ r(P, {})
|
|
141
|
+
] }, t.key))
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
] });
|
|
145
|
+
}
|
|
146
|
+
T.displayName = "ContextMenu";
|
|
147
|
+
const K = {
|
|
148
|
+
"bottom-start": { anchor: { vertical: "bottom", horizontal: "left" }, transform: { vertical: "top", horizontal: "left" } },
|
|
149
|
+
"bottom-end": { anchor: { vertical: "bottom", horizontal: "right" }, transform: { vertical: "top", horizontal: "right" } },
|
|
150
|
+
"top-start": { anchor: { vertical: "top", horizontal: "left" }, transform: { vertical: "bottom", horizontal: "left" } },
|
|
151
|
+
"top-end": { anchor: { vertical: "top", horizontal: "right" }, transform: { vertical: "bottom", horizontal: "right" } }
|
|
152
|
+
};
|
|
153
|
+
function V({
|
|
154
|
+
items: o,
|
|
155
|
+
trigger: i,
|
|
156
|
+
placement: n = "bottom-start",
|
|
157
|
+
submenuDirection: c,
|
|
158
|
+
width: d
|
|
159
|
+
}) {
|
|
160
|
+
const [f, a] = b(!1), t = C(null), e = u(() => a(!1), []), l = u(() => a((p) => !p), []), { anchor: v, transform: k } = K[n], M = c ?? (n.endsWith("-end") ? "left" : "right");
|
|
161
|
+
return /* @__PURE__ */ h(y, { children: [
|
|
162
|
+
/* @__PURE__ */ r(
|
|
163
|
+
"span",
|
|
164
|
+
{
|
|
165
|
+
ref: t,
|
|
166
|
+
onClick: l,
|
|
167
|
+
style: { cursor: "pointer", display: "inline-flex" },
|
|
168
|
+
children: i
|
|
169
|
+
}
|
|
170
|
+
),
|
|
171
|
+
/* @__PURE__ */ r(
|
|
172
|
+
m,
|
|
173
|
+
{
|
|
174
|
+
open: f,
|
|
175
|
+
anchorEl: t.current,
|
|
176
|
+
onClose: e,
|
|
177
|
+
anchorOrigin: v,
|
|
178
|
+
transformOrigin: k,
|
|
179
|
+
slotProps: {
|
|
180
|
+
paper: {
|
|
181
|
+
sx: {
|
|
182
|
+
minWidth: d ?? 180,
|
|
183
|
+
bgcolor: "var(--ov-bg-surface)",
|
|
184
|
+
border: "1px solid var(--ov-border-default)"
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
children: o.flatMap((p) => {
|
|
189
|
+
const x = [
|
|
190
|
+
/* @__PURE__ */ r(g, { item: p, onClose: e, submenuDirection: M }, p.key)
|
|
191
|
+
];
|
|
192
|
+
return p.dividerAfter && x.push(/* @__PURE__ */ r(P, {}, `${p.key}-divider`)), x;
|
|
193
|
+
})
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
] });
|
|
197
|
+
}
|
|
198
|
+
V.displayName = "DropdownMenu";
|
|
199
|
+
function _({ menus: o, sx: i }) {
|
|
200
|
+
const [n, c] = b(null), d = C({}), f = u(() => c(null), []), a = u((e) => {
|
|
201
|
+
c((l) => l === e ? null : e);
|
|
202
|
+
}, []), t = u((e) => {
|
|
203
|
+
n !== null && c(e);
|
|
204
|
+
}, [n]);
|
|
205
|
+
return /* @__PURE__ */ r(
|
|
206
|
+
A,
|
|
207
|
+
{
|
|
208
|
+
sx: {
|
|
209
|
+
display: "flex",
|
|
210
|
+
alignItems: "center",
|
|
211
|
+
height: 32,
|
|
212
|
+
bgcolor: "var(--ov-bg-surface)",
|
|
213
|
+
borderBottom: "1px solid var(--ov-border-default)",
|
|
214
|
+
...typeof i == "object" && !Array.isArray(i) ? i : {}
|
|
215
|
+
},
|
|
216
|
+
children: o.map((e) => /* @__PURE__ */ h(E.Fragment, { children: [
|
|
217
|
+
/* @__PURE__ */ r(
|
|
218
|
+
A,
|
|
219
|
+
{
|
|
220
|
+
component: "button",
|
|
221
|
+
ref: (l) => {
|
|
222
|
+
d.current[e.key] = l;
|
|
223
|
+
},
|
|
224
|
+
onClick: () => a(e.key),
|
|
225
|
+
onMouseEnter: () => t(e.key),
|
|
226
|
+
sx: {
|
|
227
|
+
border: "none",
|
|
228
|
+
background: n === e.key ? "var(--ov-state-hover)" : "transparent",
|
|
229
|
+
color: "var(--ov-fg-default)",
|
|
230
|
+
fontSize: "var(--ov-text-sm)",
|
|
231
|
+
fontFamily: "var(--ov-font-ui)",
|
|
232
|
+
px: 1.5,
|
|
233
|
+
py: 0.5,
|
|
234
|
+
cursor: "pointer",
|
|
235
|
+
borderRadius: "4px",
|
|
236
|
+
"&:hover": { bgcolor: "var(--ov-state-hover)" }
|
|
237
|
+
},
|
|
238
|
+
children: e.label
|
|
239
|
+
}
|
|
240
|
+
),
|
|
241
|
+
/* @__PURE__ */ r(
|
|
242
|
+
m,
|
|
243
|
+
{
|
|
244
|
+
open: n === e.key,
|
|
245
|
+
anchorEl: d.current[e.key],
|
|
246
|
+
onClose: f,
|
|
247
|
+
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
248
|
+
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
249
|
+
slotProps: {
|
|
250
|
+
paper: {
|
|
251
|
+
sx: {
|
|
252
|
+
minWidth: 200,
|
|
253
|
+
bgcolor: "var(--ov-bg-surface)",
|
|
254
|
+
border: "1px solid var(--ov-border-default)"
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
children: e.items.map((l) => /* @__PURE__ */ h(E.Fragment, { children: [
|
|
259
|
+
/* @__PURE__ */ r(g, { item: l, onClose: f }),
|
|
260
|
+
l.dividerAfter && /* @__PURE__ */ r(P, {})
|
|
261
|
+
] }, l.key))
|
|
262
|
+
}
|
|
263
|
+
)
|
|
264
|
+
] }, e.key))
|
|
265
|
+
}
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
_.displayName = "MenuBar";
|
|
269
|
+
function $({
|
|
270
|
+
options: o,
|
|
271
|
+
onSelect: i,
|
|
272
|
+
defaultIndex: n = 0,
|
|
273
|
+
color: c = "primary",
|
|
274
|
+
emphasis: d = "soft",
|
|
275
|
+
size: f = "sm"
|
|
276
|
+
}) {
|
|
277
|
+
const [a, t] = b(n), [e, l] = b(!1), v = C(null), k = j(c), M = w(d), p = H(f), x = u(() => {
|
|
278
|
+
const s = o[a];
|
|
279
|
+
s && !s.disabled && i(s);
|
|
280
|
+
}, [o, a, i]), F = u((s) => {
|
|
281
|
+
t(s), l(!1), i(o[s]);
|
|
282
|
+
}, [o, i]), z = o[a];
|
|
283
|
+
return /* @__PURE__ */ h(y, { children: [
|
|
284
|
+
/* @__PURE__ */ h(
|
|
285
|
+
D,
|
|
286
|
+
{
|
|
287
|
+
ref: v,
|
|
288
|
+
variant: M,
|
|
289
|
+
color: k,
|
|
290
|
+
size: p,
|
|
291
|
+
children: [
|
|
292
|
+
/* @__PURE__ */ r(
|
|
293
|
+
B,
|
|
294
|
+
{
|
|
295
|
+
onClick: x,
|
|
296
|
+
disabled: z?.disabled,
|
|
297
|
+
startIcon: z?.icon,
|
|
298
|
+
children: z?.label
|
|
299
|
+
}
|
|
300
|
+
),
|
|
301
|
+
/* @__PURE__ */ r(
|
|
302
|
+
B,
|
|
303
|
+
{
|
|
304
|
+
onClick: () => l((s) => !s),
|
|
305
|
+
sx: { px: 0.5, minWidth: "auto" },
|
|
306
|
+
"aria-label": "Select option",
|
|
307
|
+
children: /* @__PURE__ */ r(R, { size: 14 })
|
|
308
|
+
}
|
|
309
|
+
)
|
|
310
|
+
]
|
|
311
|
+
}
|
|
312
|
+
),
|
|
313
|
+
/* @__PURE__ */ r(
|
|
314
|
+
m,
|
|
315
|
+
{
|
|
316
|
+
open: e,
|
|
317
|
+
anchorEl: v.current,
|
|
318
|
+
onClose: () => l(!1),
|
|
319
|
+
anchorOrigin: { vertical: "bottom", horizontal: "left" },
|
|
320
|
+
transformOrigin: { vertical: "top", horizontal: "left" },
|
|
321
|
+
slotProps: {
|
|
322
|
+
paper: {
|
|
323
|
+
sx: {
|
|
324
|
+
minWidth: 160,
|
|
325
|
+
bgcolor: "var(--ov-bg-surface)",
|
|
326
|
+
border: "1px solid var(--ov-border-default)"
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
children: o.map((s, S) => /* @__PURE__ */ h(
|
|
331
|
+
I,
|
|
332
|
+
{
|
|
333
|
+
disabled: s.disabled,
|
|
334
|
+
selected: S === a,
|
|
335
|
+
onClick: () => F(S),
|
|
336
|
+
sx: { fontSize: "var(--ov-text-sm)" },
|
|
337
|
+
children: [
|
|
338
|
+
s.icon && /* @__PURE__ */ r(W, { sx: { minWidth: 28 }, children: s.icon }),
|
|
339
|
+
/* @__PURE__ */ r(O, { children: s.label })
|
|
340
|
+
]
|
|
341
|
+
},
|
|
342
|
+
s.key
|
|
343
|
+
))
|
|
344
|
+
}
|
|
345
|
+
)
|
|
346
|
+
] });
|
|
347
|
+
}
|
|
348
|
+
$.displayName = "SplitButton";
|
|
349
|
+
export {
|
|
350
|
+
T as ContextMenu,
|
|
351
|
+
V as DropdownMenu,
|
|
352
|
+
_ as MenuBar,
|
|
353
|
+
g as NestedMenuItem,
|
|
354
|
+
$ as SplitButton
|
|
355
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
export interface BreadcrumbItem {
|
|
3
|
+
label: string;
|
|
4
|
+
href?: string;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
onClick?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface BreadcrumbsProps {
|
|
9
|
+
items: BreadcrumbItem[];
|
|
10
|
+
separator?: React.ReactNode;
|
|
11
|
+
maxItems?: number;
|
|
12
|
+
sx?: SxProps<Theme>;
|
|
13
|
+
}
|
|
14
|
+
declare function Breadcrumbs({ items, separator, maxItems, sx, }: BreadcrumbsProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare namespace Breadcrumbs {
|
|
16
|
+
var displayName: string;
|
|
17
|
+
}
|
|
18
|
+
export default Breadcrumbs;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
export interface DraggableTab {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
closable?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface DraggableTabsProps {
|
|
10
|
+
tabs: DraggableTab[];
|
|
11
|
+
activeId: string;
|
|
12
|
+
onSelect: (id: string) => void;
|
|
13
|
+
onClose?: (id: string) => void;
|
|
14
|
+
onReorder?: (tabs: DraggableTab[]) => void;
|
|
15
|
+
onAdd?: () => void;
|
|
16
|
+
onContextMenu?: (id: string, event: React.MouseEvent) => void;
|
|
17
|
+
maxTabWidth?: number;
|
|
18
|
+
sx?: SxProps<Theme>;
|
|
19
|
+
}
|
|
20
|
+
declare function DraggableTabs({ tabs, activeId, onSelect, onClose, onReorder, onAdd, onContextMenu, maxTabWidth, sx, }: DraggableTabsProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare namespace DraggableTabs {
|
|
22
|
+
var displayName: string;
|
|
23
|
+
}
|
|
24
|
+
export default DraggableTabs;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { ComponentSize } from '../types';
|
|
3
|
+
export interface PaginationProps {
|
|
4
|
+
count: number;
|
|
5
|
+
page: number;
|
|
6
|
+
onChange: (page: number) => void;
|
|
7
|
+
variant?: 'compact' | 'full';
|
|
8
|
+
size?: ComponentSize;
|
|
9
|
+
sx?: SxProps<Theme>;
|
|
10
|
+
}
|
|
11
|
+
declare function Pagination({ count, page, onChange, variant, size, sx, }: PaginationProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare namespace Pagination {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export default Pagination;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
export interface PersistentTabPanelProps {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
value: string;
|
|
6
|
+
activeValue: string;
|
|
7
|
+
sx?: SxProps<Theme>;
|
|
8
|
+
}
|
|
9
|
+
declare function PersistentTabPanel({ children, value, activeValue, sx, }: PersistentTabPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare namespace PersistentTabPanel {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export default PersistentTabPanel;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
export interface StepItem {
|
|
3
|
+
label: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
optional?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface StepperProps {
|
|
9
|
+
steps: StepItem[];
|
|
10
|
+
activeStep: number;
|
|
11
|
+
orientation?: 'horizontal' | 'vertical';
|
|
12
|
+
variant?: 'linear' | 'nonLinear';
|
|
13
|
+
sx?: SxProps<Theme>;
|
|
14
|
+
}
|
|
15
|
+
declare function Stepper({ steps, activeStep, orientation, variant, sx, }: StepperProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare namespace Stepper {
|
|
17
|
+
var displayName: string;
|
|
18
|
+
}
|
|
19
|
+
export default Stepper;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface TabPanelProps {
|
|
2
|
+
value: string;
|
|
3
|
+
activeValue: string;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
keepMounted?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare function TabPanel({ value, activeValue, children, keepMounted, }: TabPanelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
declare namespace TabPanel {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
}
|
|
11
|
+
export default TabPanel;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { ComponentSize } from '../types';
|
|
3
|
+
export interface TabItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface TabsProps {
|
|
10
|
+
tabs: TabItem[];
|
|
11
|
+
value: string;
|
|
12
|
+
onChange: (key: string) => void;
|
|
13
|
+
variant?: 'line' | 'pill' | 'segmented';
|
|
14
|
+
size?: ComponentSize;
|
|
15
|
+
closable?: boolean;
|
|
16
|
+
onClose?: (key: string) => void;
|
|
17
|
+
scrollable?: boolean;
|
|
18
|
+
addButton?: boolean;
|
|
19
|
+
onAdd?: () => void;
|
|
20
|
+
sx?: SxProps<Theme>;
|
|
21
|
+
}
|
|
22
|
+
declare function Tabs({ tabs, value, onChange, variant, size, closable, onClose, scrollable, addButton, onAdd, sx, }: TabsProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare namespace Tabs {
|
|
24
|
+
var displayName: string;
|
|
25
|
+
}
|
|
26
|
+
export default Tabs;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
export interface TreeNode {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
children?: TreeNode[];
|
|
7
|
+
badge?: React.ReactNode;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface TreeViewProps {
|
|
11
|
+
nodes: TreeNode[];
|
|
12
|
+
selected?: string;
|
|
13
|
+
onSelect?: (id: string) => void;
|
|
14
|
+
expanded?: string[];
|
|
15
|
+
onToggle?: (id: string) => void;
|
|
16
|
+
multiSelect?: boolean;
|
|
17
|
+
checkboxes?: boolean;
|
|
18
|
+
lazyLoad?: boolean;
|
|
19
|
+
onLoadChildren?: (id: string) => Promise<TreeNode[]>;
|
|
20
|
+
contextMenu?: (node: TreeNode) => React.ReactNode;
|
|
21
|
+
sx?: SxProps<Theme>;
|
|
22
|
+
}
|
|
23
|
+
declare function TreeView({ nodes, selected, onSelect, expanded: controlledExpanded, onToggle: controlledOnToggle, checkboxes, lazyLoad, onLoadChildren, sx, }: TreeViewProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare namespace TreeView {
|
|
25
|
+
var displayName: string;
|
|
26
|
+
}
|
|
27
|
+
export default TreeView;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { default as Tabs } from './Tabs';
|
|
2
|
+
export type { TabsProps, TabItem } from './Tabs';
|
|
3
|
+
export { default as TabPanel } from './TabPanel';
|
|
4
|
+
export type { TabPanelProps } from './TabPanel';
|
|
5
|
+
export { default as TreeView } from './TreeView';
|
|
6
|
+
export type { TreeViewProps, TreeNode } from './TreeView';
|
|
7
|
+
export { default as Breadcrumbs } from './Breadcrumbs';
|
|
8
|
+
export type { BreadcrumbsProps, BreadcrumbItem } from './Breadcrumbs';
|
|
9
|
+
export { default as Stepper } from './Stepper';
|
|
10
|
+
export type { StepperProps, StepItem } from './Stepper';
|
|
11
|
+
export { default as Pagination } from './Pagination';
|
|
12
|
+
export type { PaginationProps } from './Pagination';
|
|
13
|
+
export { default as DraggableTabs } from './DraggableTabs';
|
|
14
|
+
export type { DraggableTabsProps, DraggableTab } from './DraggableTabs';
|
|
15
|
+
export { default as PersistentTabPanel } from './PersistentTabPanel';
|
|
16
|
+
export type { PersistentTabPanelProps } from './PersistentTabPanel';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("./TabPanel-CkUSl6Bt.cjs"),e=require("react/jsx-runtime"),j=require("react"),x=require("@mui/material/Box"),W=require("@mui/material/Collapse"),S=require("@mui/material/Typography"),E=require("@mui/material/Checkbox"),O=require("@mui/material/CircularProgress"),k=require("react-icons/lu"),V=require("@mui/material/Breadcrumbs"),P=require("@mui/material/Link"),R=require("@mui/material/Stepper"),X=require("@mui/material/Step"),_=require("@mui/material/StepLabel"),F=require("@mui/material/Pagination"),T=require("@mui/material/IconButton"),C=require("./types.cjs");function D({node:r,depth:s,selected:d,onSelect:a,expanded:i,onToggle:t,checkboxes:u,lazyLoad:p,onLoadChildren:f,loadingNodes:m,setLoadingNodes:g,dynamicChildren:b,setDynamicChildren:n}){const h=i.has(r.id),l=d===r.id,o=b.get(r.id)??r.children,y=o&&o.length>0||p&&!b.has(r.id),v=m.has(r.id),w=async()=>{if(p&&!b.has(r.id)&&f){g(c=>new Set(c).add(r.id));try{const c=await f(r.id);n(z=>new Map(z).set(r.id,c))}finally{g(c=>{const z=new Set(c);return z.delete(r.id),z})}}t(r.id)};return e.jsxs(x,{children:[e.jsxs(x,{onClick:()=>{r.disabled||a?.(r.id)},sx:{display:"flex",alignItems:"center",gap:.5,py:.25,px:1,pl:s*2+1,cursor:r.disabled?"default":"pointer",opacity:r.disabled?.5:1,borderRadius:"4px",bgcolor:l?"var(--ov-accent-subtle)":"transparent",color:l?"var(--ov-accent-fg)":"var(--ov-fg-default)","&:hover":{bgcolor:l?"var(--ov-accent-subtle)":"var(--ov-state-hover)"},fontSize:"0.8125rem"},children:[y?e.jsx(x,{onClick:c=>{c.stopPropagation(),w()},sx:{display:"flex",alignItems:"center",cursor:"pointer",flexShrink:0},children:v?e.jsx(O,{size:12}):h?e.jsx(k.LuChevronDown,{size:14}):e.jsx(k.LuChevronRight,{size:14})}):e.jsx(x,{sx:{width:14,flexShrink:0}}),u&&e.jsx(E,{size:"small",checked:l,disabled:r.disabled,onClick:c=>c.stopPropagation(),onChange:()=>a?.(r.id),sx:{p:0}}),r.icon&&e.jsx(x,{sx:{display:"flex",alignItems:"center",flexShrink:0},children:r.icon}),e.jsx(S,{variant:"body2",sx:{flex:1,fontSize:"inherit",color:"inherit"},noWrap:!0,children:r.label}),r.badge]}),y&&o&&e.jsx(W,{in:h,unmountOnExit:!0,children:o.map(c=>e.jsx(D,{node:c,depth:s+1,selected:d,onSelect:a,expanded:i,onToggle:t,checkboxes:u,lazyLoad:p,onLoadChildren:f,loadingNodes:m,setLoadingNodes:g,dynamicChildren:b,setDynamicChildren:n},c.id))})]})}function M({nodes:r,selected:s,onSelect:d,expanded:a,onToggle:i,checkboxes:t=!1,lazyLoad:u=!1,onLoadChildren:p,sx:f}){const[m,g]=j.useState(new Set),[b,n]=j.useState(new Set),[h,l]=j.useState(new Map),o=a?new Set(a):m,y=j.useCallback(v=>{i?i(v):g(w=>{const c=new Set(w);return c.has(v)?c.delete(v):c.add(v),c})},[i]);return e.jsx(x,{sx:f,children:r.map(v=>e.jsx(D,{node:v,depth:0,selected:s,onSelect:d,expanded:o,onToggle:y,checkboxes:t,lazyLoad:u,onLoadChildren:p,loadingNodes:b,setLoadingNodes:n,dynamicChildren:h,setDynamicChildren:l},v.id))})}M.displayName="TreeView";function I({items:r,separator:s,maxItems:d,sx:a}){return e.jsx(V,{separator:s??"/",maxItems:d,sx:{fontSize:"0.8125rem",color:"var(--ov-fg-muted)",...typeof a=="object"&&!Array.isArray(a)?a:{}},children:r.map((i,t)=>{const u=t===r.length-1,p=e.jsxs(x,{sx:{display:"inline-flex",alignItems:"center",gap:.5},children:[i.icon,e.jsx("span",{children:i.label})]});return u?e.jsx(S,{variant:"body2",sx:{fontSize:"inherit",color:"var(--ov-fg-base)",fontWeight:500},children:p},t):i.onClick?e.jsx(P,{component:"button",variant:"body2",onClick:i.onClick,underline:"hover",sx:{fontSize:"inherit",cursor:"pointer",color:"inherit"},children:p},t):i.href?e.jsx(P,{href:i.href,variant:"body2",underline:"hover",sx:{fontSize:"inherit",color:"inherit"},children:p},t):e.jsx(S,{variant:"body2",sx:{fontSize:"inherit",color:"inherit"},children:p},t)})})}I.displayName="Breadcrumbs";function A({steps:r,activeStep:s,orientation:d="horizontal",variant:a="linear",sx:i}){return e.jsx(R,{activeStep:s,orientation:d,nonLinear:a==="nonLinear",sx:i,children:r.map((t,u)=>e.jsx(X,{children:e.jsx(_,{icon:t.icon,optional:t.optional?e.jsx(S,{variant:"caption",sx:{color:"var(--ov-fg-muted)"},children:"Optional"}):t.description?e.jsx(S,{variant:"caption",sx:{color:"var(--ov-fg-muted)"},children:t.description}):void 0,children:t.label})},u))})}A.displayName="Stepper";function L({count:r,page:s,onChange:d,variant:a="full",size:i="md",sx:t}){if(a==="compact"){const u=C.toMuiSize(i);return e.jsxs(x,{sx:{display:"flex",alignItems:"center",gap:1,...typeof t=="object"&&!Array.isArray(t)?t:{}},children:[e.jsx(T,{size:u,disabled:s<=1,onClick:()=>d(s-1),children:e.jsx(k.LuChevronLeft,{})}),e.jsxs(x,{sx:{fontSize:"0.8125rem",color:"var(--ov-fg-default)"},children:[s," / ",r]}),e.jsx(T,{size:u,disabled:s>=r,onClick:()=>d(s+1),children:e.jsx(k.LuChevronRight,{})})]})}return e.jsx(F,{count:r,page:s,onChange:(u,p)=>d(p),size:C.toMuiSize(i),sx:t})}L.displayName="Pagination";function B({tabs:r,activeId:s,onSelect:d,onClose:a,onReorder:i,onAdd:t,onContextMenu:u,maxTabWidth:p=180,sx:f}){const m=j.useCallback((n,h)=>{n.dataTransfer.setData("text/plain",String(h)),n.dataTransfer.effectAllowed="move"},[]),g=j.useCallback((n,h)=>{n.preventDefault();const l=parseInt(n.dataTransfer.getData("text/plain"),10);if(isNaN(l)||l===h||!i)return;const o=[...r],[y]=o.splice(l,1);o.splice(h,0,y),i(o)},[r,i]),b=j.useCallback(n=>{n.preventDefault(),n.dataTransfer.dropEffect="move"},[]);return e.jsxs(x,{sx:{display:"flex",alignItems:"end",height:36,overflow:"auto",bgcolor:"var(--ov-bg-surface)",borderBottom:"1px solid var(--ov-border-default)",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"},...typeof f=="object"&&!Array.isArray(f)?f:{}},children:[r.map((n,h)=>{const l=n.id===s;return e.jsxs(x,{draggable:!!i,onDragStart:o=>m(o,h),onDragOver:b,onDrop:o=>g(o,h),onContextMenu:o=>{u&&(o.preventDefault(),u(n.id,o))},onClick:()=>d(n.id),sx:{display:"flex",alignItems:"center",gap:.75,maxWidth:p,height:l?35:32,px:1.5,cursor:"pointer",flexShrink:0,borderBottom:l?"2px solid var(--ov-accent)":"2px solid transparent",bgcolor:l?"var(--ov-bg-base)":"transparent",color:l?"var(--ov-fg-base)":"var(--ov-fg-muted)","&:hover":{bgcolor:l?"var(--ov-bg-base)":"var(--ov-state-hover)","& .tab-close":{opacity:1}}},children:[n.icon&&e.jsx(x,{sx:{display:"flex",flexShrink:0,fontSize:14},children:n.icon}),e.jsx(S,{noWrap:!0,sx:{fontSize:"var(--ov-text-xs)",fontWeight:l?500:400,flex:1,minWidth:0},children:n.label}),n.closable!==!1&&a&&e.jsx(T,{className:"tab-close",size:"small",onClick:o=>{o.stopPropagation(),a(n.id)},sx:{p:"1px",opacity:l?.7:0,color:"inherit","&:hover":{opacity:1,bgcolor:"var(--ov-state-hover)"}},children:e.jsx(k.LuX,{size:12})})]},n.id)}),t&&e.jsx(T,{size:"small",onClick:t,sx:{mx:.5,p:"4px",color:"var(--ov-fg-muted)","&:hover":{bgcolor:"var(--ov-state-hover)"}},children:e.jsx(k.LuPlus,{size:14})})]})}B.displayName="DraggableTabs";function N({children:r,value:s,activeValue:d,sx:a}){const i=s===d;return e.jsx(x,{role:"tabpanel",hidden:!i,sx:{display:i?"block":"none",flex:1,overflow:"auto",...typeof a=="object"&&!Array.isArray(a)?a:{}},children:r})}N.displayName="PersistentTabPanel";exports.TabPanel=q.TabPanel;exports.Tabs=q.Tabs;exports.Breadcrumbs=I;exports.DraggableTabs=B;exports.Pagination=L;exports.PersistentTabPanel=N;exports.Stepper=A;exports.TreeView=M;
|