@termaxjs/web-ui-components 0.1.1
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 +201 -0
- package/dist/ai/AgentStatusPill.d.ts +13 -0
- package/dist/ai/AgentStatusPill.d.ts.map +1 -0
- package/dist/ai/AgentStatusPill.js +28 -0
- package/dist/ai/AgentStatusPill.js.map +1 -0
- package/dist/ai/AiToolApproval.d.ts +12 -0
- package/dist/ai/AiToolApproval.d.ts.map +1 -0
- package/dist/ai/AiToolApproval.js +63 -0
- package/dist/ai/AiToolApproval.js.map +1 -0
- package/dist/ai/Chip.d.ts +17 -0
- package/dist/ai/Chip.d.ts.map +1 -0
- package/dist/ai/Chip.js +39 -0
- package/dist/ai/Chip.js.map +1 -0
- package/dist/ai/ChipsRow.d.ts +35 -0
- package/dist/ai/ChipsRow.d.ts.map +1 -0
- package/dist/ai/ChipsRow.js +32 -0
- package/dist/ai/ChipsRow.js.map +1 -0
- package/dist/ai/TodoStrip.d.ts +11 -0
- package/dist/ai/TodoStrip.d.ts.map +1 -0
- package/dist/ai/TodoStrip.js +27 -0
- package/dist/ai/TodoStrip.js.map +1 -0
- package/dist/ai/index.d.ts +6 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +6 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/command-palette/CommandPaletteDialog.d.ts +19 -0
- package/dist/command-palette/CommandPaletteDialog.d.ts.map +1 -0
- package/dist/command-palette/CommandPaletteDialog.js +23 -0
- package/dist/command-palette/CommandPaletteDialog.js.map +1 -0
- package/dist/command-palette/index.d.ts +2 -0
- package/dist/command-palette/index.d.ts.map +1 -0
- package/dist/command-palette/index.js +2 -0
- package/dist/command-palette/index.js.map +1 -0
- package/dist/explorer/ExplorerSearch.d.ts +35 -0
- package/dist/explorer/ExplorerSearch.d.ts.map +1 -0
- package/dist/explorer/ExplorerSearch.js +153 -0
- package/dist/explorer/ExplorerSearch.js.map +1 -0
- package/dist/explorer/FileTree.d.ts +65 -0
- package/dist/explorer/FileTree.d.ts.map +1 -0
- package/dist/explorer/FileTree.js +205 -0
- package/dist/explorer/FileTree.js.map +1 -0
- package/dist/explorer/InlineInput.d.ts +14 -0
- package/dist/explorer/InlineInput.d.ts.map +1 -0
- package/dist/explorer/InlineInput.js +77 -0
- package/dist/explorer/InlineInput.js.map +1 -0
- package/dist/explorer/TreeRow.d.ts +64 -0
- package/dist/explorer/TreeRow.d.ts.map +1 -0
- package/dist/explorer/TreeRow.js +100 -0
- package/dist/explorer/TreeRow.js.map +1 -0
- package/dist/explorer/constants.d.ts +12 -0
- package/dist/explorer/constants.d.ts.map +1 -0
- package/dist/explorer/constants.js +72 -0
- package/dist/explorer/constants.js.map +1 -0
- package/dist/explorer/contextActions.d.ts +5 -0
- package/dist/explorer/contextActions.d.ts.map +1 -0
- package/dist/explorer/contextActions.js +38 -0
- package/dist/explorer/contextActions.js.map +1 -0
- package/dist/explorer/iconMap.json +1 -0
- package/dist/explorer/iconResolver.d.ts +3 -0
- package/dist/explorer/iconResolver.d.ts.map +1 -0
- package/dist/explorer/iconResolver.js +98 -0
- package/dist/explorer/iconResolver.js.map +1 -0
- package/dist/explorer/index.d.ts +8 -0
- package/dist/explorer/index.d.ts.map +1 -0
- package/dist/explorer/index.js +8 -0
- package/dist/explorer/index.js.map +1 -0
- package/dist/explorer/menuItemClass.d.ts +3 -0
- package/dist/explorer/menuItemClass.d.ts.map +1 -0
- package/dist/explorer/menuItemClass.js +6 -0
- package/dist/explorer/menuItemClass.js.map +1 -0
- package/dist/explorer/types.d.ts +2 -0
- package/dist/explorer/types.d.ts.map +1 -0
- package/dist/explorer/types.js +2 -0
- package/dist/explorer/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/PaneChip.d.ts +13 -0
- package/dist/layout/PaneChip.d.ts.map +1 -0
- package/dist/layout/PaneChip.js +19 -0
- package/dist/layout/PaneChip.js.map +1 -0
- package/dist/layout/TabBar.d.ts +36 -0
- package/dist/layout/TabBar.d.ts.map +1 -0
- package/dist/layout/TabBar.js +237 -0
- package/dist/layout/TabBar.js.map +1 -0
- package/dist/layout/TabItem.d.ts +19 -0
- package/dist/layout/TabItem.d.ts.map +1 -0
- package/dist/layout/TabItem.js +66 -0
- package/dist/layout/TabItem.js.map +1 -0
- package/dist/layout/index.d.ts +7 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +7 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/leafState.d.ts +15 -0
- package/dist/layout/leafState.d.ts.map +1 -0
- package/dist/layout/leafState.js +70 -0
- package/dist/layout/leafState.js.map +1 -0
- package/dist/layout/resizable.d.ts +31 -0
- package/dist/layout/resizable.d.ts.map +1 -0
- package/dist/layout/resizable.js +16 -0
- package/dist/layout/resizable.js.map +1 -0
- package/dist/layout/tabLabel.d.ts +9 -0
- package/dist/layout/tabLabel.d.ts.map +1 -0
- package/dist/layout/tabLabel.js +31 -0
- package/dist/layout/tabLabel.js.map +1 -0
- package/dist/primitives/alert-dialog.d.ts +19 -0
- package/dist/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/primitives/alert-dialog.js +42 -0
- package/dist/primitives/alert-dialog.js.map +1 -0
- package/dist/primitives/alert.d.ts +11 -0
- package/dist/primitives/alert.d.ts.map +1 -0
- package/dist/primitives/alert.js +28 -0
- package/dist/primitives/alert.js.map +1 -0
- package/dist/primitives/badge.d.ts +10 -0
- package/dist/primitives/badge.d.ts.map +1 -0
- package/dist/primitives/badge.js +25 -0
- package/dist/primitives/badge.js.map +1 -0
- package/dist/primitives/breadcrumb.d.ts +12 -0
- package/dist/primitives/breadcrumb.d.ts.map +1 -0
- package/dist/primitives/breadcrumb.js +29 -0
- package/dist/primitives/breadcrumb.js.map +1 -0
- package/dist/primitives/button-group.d.ts +12 -0
- package/dist/primitives/button-group.d.ts.map +1 -0
- package/dist/primitives/button-group.js +28 -0
- package/dist/primitives/button-group.js.map +1 -0
- package/dist/primitives/button.d.ts +11 -0
- package/dist/primitives/button.d.ts.map +1 -0
- package/dist/primitives/button.js +36 -0
- package/dist/primitives/button.js.map +1 -0
- package/dist/primitives/card.d.ts +12 -0
- package/dist/primitives/card.d.ts.map +1 -0
- package/dist/primitives/card.js +25 -0
- package/dist/primitives/card.js.map +1 -0
- package/dist/primitives/checkbox.d.ts +5 -0
- package/dist/primitives/checkbox.d.ts.map +1 -0
- package/dist/primitives/checkbox.js +10 -0
- package/dist/primitives/checkbox.js.map +1 -0
- package/dist/primitives/collapsible.d.ts +6 -0
- package/dist/primitives/collapsible.d.ts.map +1 -0
- package/dist/primitives/collapsible.js +13 -0
- package/dist/primitives/collapsible.js.map +1 -0
- package/dist/primitives/command.d.ts +36 -0
- package/dist/primitives/command.d.ts.map +1 -0
- package/dist/primitives/command.js +103 -0
- package/dist/primitives/command.js.map +1 -0
- package/dist/primitives/context-menu.d.ts +41 -0
- package/dist/primitives/context-menu.d.ts.map +1 -0
- package/dist/primitives/context-menu.js +83 -0
- package/dist/primitives/context-menu.js.map +1 -0
- package/dist/primitives/dialog.d.ts +18 -0
- package/dist/primitives/dialog.d.ts.map +1 -0
- package/dist/primitives/dialog.js +38 -0
- package/dist/primitives/dialog.js.map +1 -0
- package/dist/primitives/dropdown-menu.d.ts +30 -0
- package/dist/primitives/dropdown-menu.d.ts.map +1 -0
- package/dist/primitives/dropdown-menu.js +52 -0
- package/dist/primitives/dropdown-menu.js.map +1 -0
- package/dist/primitives/empty.d.ts +12 -0
- package/dist/primitives/empty.d.ts.map +1 -0
- package/dist/primitives/empty.js +34 -0
- package/dist/primitives/empty.js.map +1 -0
- package/dist/primitives/hover-card.d.ts +7 -0
- package/dist/primitives/hover-card.d.ts.map +1 -0
- package/dist/primitives/hover-card.js +14 -0
- package/dist/primitives/hover-card.js.map +1 -0
- package/dist/primitives/index.d.ts +40 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +40 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/input-group.d.ts +17 -0
- package/dist/primitives/input-group.d.ts.map +1 -0
- package/dist/primitives/input-group.js +59 -0
- package/dist/primitives/input-group.js.map +1 -0
- package/dist/primitives/input.d.ts +4 -0
- package/dist/primitives/input.d.ts.map +1 -0
- package/dist/primitives/input.js +7 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/item.d.ts +24 -0
- package/dist/primitives/item.d.ts.map +1 -0
- package/dist/primitives/item.js +68 -0
- package/dist/primitives/item.js.map +1 -0
- package/dist/primitives/kbd.d.ts +4 -0
- package/dist/primitives/kbd.d.ts.map +1 -0
- package/dist/primitives/kbd.js +10 -0
- package/dist/primitives/kbd.js.map +1 -0
- package/dist/primitives/label.d.ts +5 -0
- package/dist/primitives/label.d.ts.map +1 -0
- package/dist/primitives/label.js +8 -0
- package/dist/primitives/label.js.map +1 -0
- package/dist/primitives/menubar.d.ts +31 -0
- package/dist/primitives/menubar.d.ts.map +1 -0
- package/dist/primitives/menubar.js +55 -0
- package/dist/primitives/menubar.js.map +1 -0
- package/dist/primitives/popover.d.ts +11 -0
- package/dist/primitives/popover.d.ts.map +1 -0
- package/dist/primitives/popover.js +27 -0
- package/dist/primitives/popover.js.map +1 -0
- package/dist/primitives/progress.d.ts +5 -0
- package/dist/primitives/progress.d.ts.map +1 -0
- package/dist/primitives/progress.js +8 -0
- package/dist/primitives/progress.js.map +1 -0
- package/dist/primitives/radio-group.d.ts +6 -0
- package/dist/primitives/radio-group.d.ts.map +1 -0
- package/dist/primitives/radio-group.js +11 -0
- package/dist/primitives/radio-group.js.map +1 -0
- package/dist/primitives/resizable.d.ts +31 -0
- package/dist/primitives/resizable.d.ts.map +1 -0
- package/dist/primitives/resizable.js +16 -0
- package/dist/primitives/resizable.js.map +1 -0
- package/dist/primitives/scroll-area.d.ts +6 -0
- package/dist/primitives/scroll-area.d.ts.map +1 -0
- package/dist/primitives/scroll-area.js +11 -0
- package/dist/primitives/scroll-area.js.map +1 -0
- package/dist/primitives/select.d.ts +16 -0
- package/dist/primitives/select.d.ts.map +1 -0
- package/dist/primitives/select.js +37 -0
- package/dist/primitives/select.js.map +1 -0
- package/dist/primitives/separator.d.ts +5 -0
- package/dist/primitives/separator.d.ts.map +1 -0
- package/dist/primitives/separator.js +8 -0
- package/dist/primitives/separator.js.map +1 -0
- package/dist/primitives/sheet.d.ts +15 -0
- package/dist/primitives/sheet.d.ts.map +1 -0
- package/dist/primitives/sheet.js +38 -0
- package/dist/primitives/sheet.js.map +1 -0
- package/dist/primitives/skeleton.d.ts +3 -0
- package/dist/primitives/skeleton.d.ts.map +1 -0
- package/dist/primitives/skeleton.js +7 -0
- package/dist/primitives/skeleton.js.map +1 -0
- package/dist/primitives/slider.d.ts +5 -0
- package/dist/primitives/slider.d.ts.map +1 -0
- package/dist/primitives/slider.js +14 -0
- package/dist/primitives/slider.js.map +1 -0
- package/dist/primitives/sonner.d.ts +5 -0
- package/dist/primitives/sonner.d.ts.map +1 -0
- package/dist/primitives/sonner.js +12 -0
- package/dist/primitives/sonner.js.map +1 -0
- package/dist/primitives/spinner.d.ts +3 -0
- package/dist/primitives/spinner.d.ts.map +1 -0
- package/dist/primitives/spinner.js +11 -0
- package/dist/primitives/spinner.js.map +1 -0
- package/dist/primitives/switch.d.ts +7 -0
- package/dist/primitives/switch.d.ts.map +1 -0
- package/dist/primitives/switch.js +18 -0
- package/dist/primitives/switch.js.map +1 -0
- package/dist/primitives/tabs.d.ts +12 -0
- package/dist/primitives/tabs.d.ts.map +1 -0
- package/dist/primitives/tabs.js +29 -0
- package/dist/primitives/tabs.js.map +1 -0
- package/dist/primitives/textarea.d.ts +4 -0
- package/dist/primitives/textarea.d.ts.map +1 -0
- package/dist/primitives/textarea.js +7 -0
- package/dist/primitives/textarea.js.map +1 -0
- package/dist/primitives/toggle-group.d.ts +11 -0
- package/dist/primitives/toggle-group.d.ts.map +1 -0
- package/dist/primitives/toggle-group.js +24 -0
- package/dist/primitives/toggle-group.js.map +1 -0
- package/dist/primitives/toggle.d.ts +10 -0
- package/dist/primitives/toggle.d.ts.map +1 -0
- package/dist/primitives/toggle.js +26 -0
- package/dist/primitives/toggle.js.map +1 -0
- package/dist/primitives/tooltip.d.ts +8 -0
- package/dist/primitives/tooltip.d.ts.map +1 -0
- package/dist/primitives/tooltip.js +18 -0
- package/dist/primitives/tooltip.js.map +1 -0
- package/dist/settings/SettingGroup.d.ts +8 -0
- package/dist/settings/SettingGroup.d.ts.map +1 -0
- package/dist/settings/SettingGroup.js +7 -0
- package/dist/settings/SettingGroup.js.map +1 -0
- package/dist/settings/SettingRow.d.ts +58 -0
- package/dist/settings/SettingRow.d.ts.map +1 -0
- package/dist/settings/SettingRow.js +54 -0
- package/dist/settings/SettingRow.js.map +1 -0
- package/dist/settings/SettingsFormBuilder.d.ts +11 -0
- package/dist/settings/SettingsFormBuilder.d.ts.map +1 -0
- package/dist/settings/SettingsFormBuilder.js +43 -0
- package/dist/settings/SettingsFormBuilder.js.map +1 -0
- package/dist/settings/index.d.ts +4 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +4 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/shell/HeaderBar.d.ts +10 -0
- package/dist/shell/HeaderBar.d.ts.map +1 -0
- package/dist/shell/HeaderBar.js +6 -0
- package/dist/shell/HeaderBar.js.map +1 -0
- package/dist/shell/StatusBar.d.ts +9 -0
- package/dist/shell/StatusBar.d.ts.map +1 -0
- package/dist/shell/StatusBar.js +6 -0
- package/dist/shell/StatusBar.js.map +1 -0
- package/dist/shell/index.d.ts +3 -0
- package/dist/shell/index.d.ts.map +1 -0
- package/dist/shell/index.js +3 -0
- package/dist/shell/index.js.map +1 -0
- package/dist/source-control/BranchSwitcher.d.ts +14 -0
- package/dist/source-control/BranchSwitcher.d.ts.map +1 -0
- package/dist/source-control/BranchSwitcher.js +10 -0
- package/dist/source-control/BranchSwitcher.js.map +1 -0
- package/dist/source-control/CommitRow.d.ts +15 -0
- package/dist/source-control/CommitRow.d.ts.map +1 -0
- package/dist/source-control/CommitRow.js +20 -0
- package/dist/source-control/CommitRow.js.map +1 -0
- package/dist/source-control/EntryRow.d.ts +25 -0
- package/dist/source-control/EntryRow.d.ts.map +1 -0
- package/dist/source-control/EntryRow.js +67 -0
- package/dist/source-control/EntryRow.js.map +1 -0
- package/dist/source-control/GraphRail.d.ts +14 -0
- package/dist/source-control/GraphRail.d.ts.map +1 -0
- package/dist/source-control/GraphRail.js +49 -0
- package/dist/source-control/GraphRail.js.map +1 -0
- package/dist/source-control/InlineHunkView.d.ts +22 -0
- package/dist/source-control/InlineHunkView.d.ts.map +1 -0
- package/dist/source-control/InlineHunkView.js +95 -0
- package/dist/source-control/InlineHunkView.js.map +1 -0
- package/dist/source-control/SourceControlActions.d.ts +15 -0
- package/dist/source-control/SourceControlActions.d.ts.map +1 -0
- package/dist/source-control/SourceControlActions.js +38 -0
- package/dist/source-control/SourceControlActions.js.map +1 -0
- package/dist/source-control/SourceControlPanel.d.ts +21 -0
- package/dist/source-control/SourceControlPanel.d.ts.map +1 -0
- package/dist/source-control/SourceControlPanel.js +300 -0
- package/dist/source-control/SourceControlPanel.js.map +1 -0
- package/dist/source-control/SourceControlStatusViews.d.ts +20 -0
- package/dist/source-control/SourceControlStatusViews.d.ts.map +1 -0
- package/dist/source-control/SourceControlStatusViews.js +18 -0
- package/dist/source-control/SourceControlStatusViews.js.map +1 -0
- package/dist/source-control/StashSection.d.ts +13 -0
- package/dist/source-control/StashSection.d.ts.map +1 -0
- package/dist/source-control/StashSection.js +14 -0
- package/dist/source-control/StashSection.js.map +1 -0
- package/dist/source-control/highlight.d.ts +8 -0
- package/dist/source-control/highlight.d.ts.map +1 -0
- package/dist/source-control/highlight.js +15 -0
- package/dist/source-control/highlight.js.map +1 -0
- package/dist/source-control/index.d.ts +12 -0
- package/dist/source-control/index.d.ts.map +1 -0
- package/dist/source-control/index.js +12 -0
- package/dist/source-control/index.js.map +1 -0
- package/dist/source-control/sourceControlHelpers.d.ts +27 -0
- package/dist/source-control/sourceControlHelpers.d.ts.map +1 -0
- package/dist/source-control/sourceControlHelpers.js +51 -0
- package/dist/source-control/sourceControlHelpers.js.map +1 -0
- package/dist/utils/cn.d.ts +3 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cn.js +6 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/isTauri.d.ts +2 -0
- package/dist/utils/isTauri.d.ts.map +1 -0
- package/dist/utils/isTauri.js +2 -0
- package/dist/utils/isTauri.js.map +1 -0
- package/dist/utils/mockCore.d.ts +6 -0
- package/dist/utils/mockCore.d.ts.map +1 -0
- package/dist/utils/mockCore.js +3 -0
- package/dist/utils/mockCore.js.map +1 -0
- package/dist/utils/mockFs.d.ts +10 -0
- package/dist/utils/mockFs.d.ts.map +1 -0
- package/dist/utils/mockFs.js +10 -0
- package/dist/utils/mockFs.js.map +1 -0
- package/dist/utils/mockSettings.d.ts +3 -0
- package/dist/utils/mockSettings.d.ts.map +1 -0
- package/dist/utils/mockSettings.js +3 -0
- package/dist/utils/mockSettings.js.map +1 -0
- package/dist/utils/mockShortcuts.d.ts +2 -0
- package/dist/utils/mockShortcuts.d.ts.map +1 -0
- package/dist/utils/mockShortcuts.js +2 -0
- package/dist/utils/mockShortcuts.js.map +1 -0
- package/dist/utils/mockSpaces.d.ts +4 -0
- package/dist/utils/mockSpaces.d.ts.map +1 -0
- package/dist/utils/mockSpaces.js +2 -0
- package/dist/utils/mockSpaces.js.map +1 -0
- package/dist/utils/mockTauri.d.ts +5 -0
- package/dist/utils/mockTauri.d.ts.map +1 -0
- package/dist/utils/mockTauri.js +3 -0
- package/dist/utils/mockTauri.js.map +1 -0
- package/dist/utils/mockWorkspace.d.ts +2 -0
- package/dist/utils/mockWorkspace.d.ts.map +1 -0
- package/dist/utils/mockWorkspace.js +2 -0
- package/dist/utils/mockWorkspace.js.map +1 -0
- package/dist/utils/platform.d.ts +5 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +8 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/shellQuote.d.ts +2 -0
- package/dist/utils/shellQuote.d.ts.map +1 -0
- package/dist/utils/shellQuote.js +7 -0
- package/dist/utils/shellQuote.js.map +1 -0
- package/package.json +118 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
4
|
+
import { cn } from "../utils/cn.js";
|
|
5
|
+
function TooltipProvider({ delayDuration = 300, ...props }) {
|
|
6
|
+
return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delayDuration: delayDuration, ...props }));
|
|
7
|
+
}
|
|
8
|
+
function Tooltip({ ...props }) {
|
|
9
|
+
return _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
|
|
10
|
+
}
|
|
11
|
+
function TooltipTrigger({ ...props }) {
|
|
12
|
+
return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
13
|
+
}
|
|
14
|
+
function TooltipContent({ className, sideOffset = 0, children, ...props }) {
|
|
15
|
+
return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { "data-slot": "tooltip-content", sideOffset: sideOffset, className: cn("z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-xl bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-lg data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: children }) }));
|
|
16
|
+
}
|
|
17
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
18
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/primitives/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,SAAS,eAAe,CAAC,EACvB,aAAa,GAAG,GAAG,EACnB,GAAG,KAAK,EAC+C;IACvD,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,iBACd,kBAAkB,EAC5B,aAAa,EAAE,aAAa,KACxB,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,EACf,GAAG,KAAK,EAC2C;IACnD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAA;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EAC8C;IACtD,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAA;AAC5E,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAU,GAAG,CAAC,EACd,QAAQ,EACR,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,OAAO,iBACb,iBAAiB,EAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACX,4rBAA4rB,EAC5rB,SAAS,CACV,KACG,KAAK,YAER,QAAQ,GACgB,GACH,CAC3B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface SettingGroupProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
title?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function SettingGroup({ className, title, description, children, ...props }: SettingGroupProps): React.JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SettingGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingGroup.d.ts","sourceRoot":"","sources":["../../src/settings/SettingGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,qBA6BnB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
export function SettingGroup({ className, title, description, children, ...props }) {
|
|
5
|
+
return (_jsxs("div", { className: cn("flex flex-col gap-1.5", className), ...props, children: [(title || description) && (_jsxs("div", { className: "flex flex-col px-1", children: [title && (_jsx("h3", { className: "text-[11px] font-semibold uppercase tracking-wider text-[var(--tx-text-f)]", children: title })), description && (_jsx("p", { className: "text-[11px] text-[var(--tx-text-m)] mt-0.5", children: description }))] })), _jsx("div", { className: "flex flex-col rounded-md border border-[var(--tx-border)]/60 bg-[var(--tx-surface)]/60 overflow-hidden shadow-xs", children: React.Children.map(children, (child, i) => (_jsxs(React.Fragment, { children: [child, i < React.Children.count(children) - 1 && (_jsx("div", { className: "h-[1px] w-full bg-[var(--tx-border)]/40" }))] }, typeof child === "object" && child !== null && "key" in child && child.key != null ? child.key : i))) })] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=SettingGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingGroup.js","sourceRoot":"","sources":["../../src/settings/SettingGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,UAAU,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACU;IAClB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAAM,KAAK,aAC9D,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CACzB,eAAK,SAAS,EAAC,oBAAoB,aAChC,KAAK,IAAI,CACR,aAAI,SAAS,EAAC,4EAA4E,YACvF,KAAK,GACH,CACN,EACA,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,4CAA4C,YACtD,WAAW,GACV,CACL,IACG,CACP,EACD,cAAK,SAAS,EAAC,kHAAkH,YAC9H,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1C,MAAC,KAAK,CAAC,QAAQ,eACZ,KAAK,EACL,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CACzC,cAAK,SAAS,EAAC,yCAAyC,GAAG,CAC5D,KAJkB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAKtG,CAClB,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
interface ToggleProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
title: string;
|
|
4
|
+
description?: React.ReactNode;
|
|
5
|
+
checked: boolean;
|
|
6
|
+
onCheckedChange: (checked: boolean) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare function Toggle({ title, description, checked, onCheckedChange, disabled, className, ...props }: ToggleProps): React.JSX.Element;
|
|
10
|
+
interface SelectOption {
|
|
11
|
+
value: string;
|
|
12
|
+
label: string;
|
|
13
|
+
}
|
|
14
|
+
interface RowSelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
15
|
+
title: string;
|
|
16
|
+
description?: React.ReactNode;
|
|
17
|
+
value: string;
|
|
18
|
+
onChange: (value: string) => void;
|
|
19
|
+
options: SelectOption[];
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
}
|
|
23
|
+
declare function RowSelect({ title, description, value, onChange, options, disabled, placeholder, className, ...props }: RowSelectProps): React.JSX.Element;
|
|
24
|
+
interface TextProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
25
|
+
title: string;
|
|
26
|
+
description?: React.ReactNode;
|
|
27
|
+
value: string;
|
|
28
|
+
onChange: (value: string) => void;
|
|
29
|
+
disabled?: boolean;
|
|
30
|
+
placeholder?: string;
|
|
31
|
+
type?: string;
|
|
32
|
+
}
|
|
33
|
+
declare function Text({ title, description, value, onChange, disabled, placeholder, type, className, ...props }: TextProps): React.JSX.Element;
|
|
34
|
+
interface NumberProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
35
|
+
title: string;
|
|
36
|
+
description?: React.ReactNode;
|
|
37
|
+
value: number;
|
|
38
|
+
onChange: (value: number) => void;
|
|
39
|
+
min?: number;
|
|
40
|
+
max?: number;
|
|
41
|
+
step?: number;
|
|
42
|
+
unit?: string;
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
}
|
|
45
|
+
declare function NumberInputRow({ title, description, value, onChange, min, max, step, unit, disabled, className, ...props }: NumberProps): React.JSX.Element;
|
|
46
|
+
declare function Custom({ title, description, children, className, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
47
|
+
title: string;
|
|
48
|
+
description?: React.ReactNode;
|
|
49
|
+
}): React.JSX.Element;
|
|
50
|
+
export declare const SettingRow: {
|
|
51
|
+
Toggle: typeof Toggle;
|
|
52
|
+
Select: typeof RowSelect;
|
|
53
|
+
Text: typeof Text;
|
|
54
|
+
Number: typeof NumberInputRow;
|
|
55
|
+
Custom: typeof Custom;
|
|
56
|
+
};
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=SettingRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingRow.d.ts","sourceRoot":"","sources":["../../src/settings/SettingRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Input } from "../primitives/input.js";
|
|
3
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "../primitives/select.js";
|
|
4
|
+
import { Switch } from "../primitives/switch.js";
|
|
5
|
+
import { cn } from "../utils/cn.js";
|
|
6
|
+
function RowContainer({ className, children, ...props }) {
|
|
7
|
+
return (_jsx("div", { className: cn("flex min-h-[38px] items-center justify-between px-3 py-1.5 transition-colors hover:bg-[var(--tx-surface-2)]/60", className), ...props, children: children }));
|
|
8
|
+
}
|
|
9
|
+
function RowLabel({ title, description, }) {
|
|
10
|
+
return (_jsxs("div", { className: "flex flex-col pr-3", children: [_jsx("div", { className: "text-[12.5px] font-medium text-[var(--tx-text)] leading-tight", children: title }), description && (_jsx("div", { className: "text-[11px] text-[var(--tx-text-m)] leading-tight mt-0.5", children: description }))] }));
|
|
11
|
+
}
|
|
12
|
+
function Toggle({ title, description, checked, onCheckedChange, disabled, className, ...props }) {
|
|
13
|
+
return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx(Switch, { checked: checked, onCheckedChange: onCheckedChange, disabled: disabled, className: "shrink-0 scale-90" })] }));
|
|
14
|
+
}
|
|
15
|
+
function RowSelect({ title, description, value, onChange, options, disabled, placeholder, className, ...props }) {
|
|
16
|
+
return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx("div", { className: "shrink-0 w-[170px]", children: _jsxs(Select, { value: value, onValueChange: onChange, disabled: disabled, children: [_jsx(SelectTrigger, { className: "w-full h-7 text-xs focus:ring-[var(--tx-accent)] border-[var(--tx-border)]/60 bg-[var(--tx-surface)]", children: _jsx(SelectValue, { placeholder: placeholder }) }), _jsx(SelectContent, { className: "border-[var(--tx-border)]/80", children: options.map((opt) => (_jsx(SelectItem, { value: opt.value, className: "text-xs py-1", children: opt.label }, opt.value))) })] }) })] }));
|
|
17
|
+
}
|
|
18
|
+
function Text({ title, description, value, onChange, disabled, placeholder, type = "text", className, ...props }) {
|
|
19
|
+
return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx("div", { className: "shrink-0 w-[200px]", children: _jsx(Input, { type: type, value: value, onChange: (e) => onChange(e.target.value), disabled: disabled, placeholder: placeholder, className: "h-7 text-xs focus-visible:ring-[var(--tx-accent)] border-[var(--tx-border)]/60 bg-[var(--tx-surface)]" }) })] }));
|
|
20
|
+
}
|
|
21
|
+
function NumberInputRow({ title, description, value, onChange, min = 0, max = 100, step = 1, unit, disabled, className, ...props }) {
|
|
22
|
+
const clamp = (n) => {
|
|
23
|
+
let res = n;
|
|
24
|
+
if (min !== undefined && res < min)
|
|
25
|
+
res = min;
|
|
26
|
+
if (max !== undefined && res > max)
|
|
27
|
+
res = max;
|
|
28
|
+
return res;
|
|
29
|
+
};
|
|
30
|
+
const handleStep = (direction) => {
|
|
31
|
+
if (disabled)
|
|
32
|
+
return;
|
|
33
|
+
const current = typeof value === "number" && !Number.isNaN(value) ? value : min;
|
|
34
|
+
const next = clamp(Number((current + direction * step).toFixed(4)));
|
|
35
|
+
onChange(next);
|
|
36
|
+
};
|
|
37
|
+
return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsxs("div", { className: "shrink-0 flex items-center gap-1 w-[120px]", children: [_jsxs("div", { className: "relative flex-1 flex items-center", children: [_jsx(Input, { type: "number", value: Number.isNaN(value) ? "" : value, min: min, max: max, step: step, disabled: disabled, onChange: (e) => {
|
|
38
|
+
const val = parseFloat(e.target.value);
|
|
39
|
+
if (!Number.isNaN(val)) {
|
|
40
|
+
onChange(clamp(val));
|
|
41
|
+
}
|
|
42
|
+
}, className: cn("h-7 text-xs focus-visible:ring-[var(--tx-accent)] border-[var(--tx-border)]/60 bg-[var(--tx-surface)] font-mono tabular-nums text-right", unit ? "pr-6" : "pr-2") }), unit && (_jsx("span", { className: "pointer-events-none absolute right-1.5 text-[9.5px] text-[var(--tx-text-f)] font-medium", children: unit }))] }), _jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("button", { type: "button", disabled: disabled || (max !== undefined && value >= max), onClick: () => handleStep(1), "aria-label": "Increment", className: "flex h-[13px] w-[16px] items-center justify-center rounded-[2px] border border-[var(--tx-border)]/60 bg-[var(--tx-surface)] text-[8px] text-[var(--tx-text-m)] hover:bg-[var(--tx-surface-2)] hover:text-[var(--tx-text)] disabled:opacity-30 disabled:pointer-events-none transition-colors cursor-pointer", children: "\u25B2" }), _jsx("button", { type: "button", disabled: disabled || (min !== undefined && value <= min), onClick: () => handleStep(-1), "aria-label": "Decrement", className: "flex h-[13px] w-[16px] items-center justify-center rounded-[2px] border border-[var(--tx-border)]/60 bg-[var(--tx-surface)] text-[8px] text-[var(--tx-text-m)] hover:bg-[var(--tx-surface-2)] hover:text-[var(--tx-text)] disabled:opacity-30 disabled:pointer-events-none transition-colors cursor-pointer", children: "\u25BC" })] })] })] }));
|
|
43
|
+
}
|
|
44
|
+
function Custom({ title, description, children, className, ...props }) {
|
|
45
|
+
return (_jsxs(RowContainer, { className: className, ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx("div", { className: "shrink-0 flex items-center", children: children })] }));
|
|
46
|
+
}
|
|
47
|
+
export const SettingRow = {
|
|
48
|
+
Toggle,
|
|
49
|
+
Select: RowSelect,
|
|
50
|
+
Text,
|
|
51
|
+
Number: NumberInputRow,
|
|
52
|
+
Custom,
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=SettingRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingRow.js","sourceRoot":"","sources":["../../src/settings/SettingRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { SettingsPageSchema } from "@termaxjs/web-core/settings";
|
|
3
|
+
export interface SettingsFormBuilderProps<T = Record<string, any>> {
|
|
4
|
+
schema: SettingsPageSchema;
|
|
5
|
+
values: T;
|
|
6
|
+
getSettingValue?: (bind: string, state: T) => any;
|
|
7
|
+
setSettingValue: (bind: string, value: any) => void;
|
|
8
|
+
actions?: Record<string, () => void>;
|
|
9
|
+
}
|
|
10
|
+
export declare function SettingsFormBuilder<T = Record<string, any>>({ schema, values, getSettingValue, setSettingValue, actions, }: SettingsFormBuilderProps<T>): React.JSX.Element;
|
|
11
|
+
//# sourceMappingURL=SettingsFormBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsFormBuilder.d.ts","sourceRoot":"","sources":["../../src/settings/SettingsFormBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,6BAA6B,CAAC;AAEnF,MAAM,WAAW,wBAAwB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC;IAClD,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;CACtC;AAED,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC3D,MAAM,EACN,MAAM,EACN,eAAyD,EACzD,eAAe,EACf,OAAY,GACb,EAAE,wBAAwB,CAAC,CAAC,CAAC,qBA0G7B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { SettingRow } from "./SettingRow.js";
|
|
3
|
+
import { SettingGroup as GroupWrapper } from "./SettingGroup.js";
|
|
4
|
+
export function SettingsFormBuilder({ schema, values, getSettingValue = (bind, state) => state?.[bind], setSettingValue, actions = {}, }) {
|
|
5
|
+
const renderItem = (item) => {
|
|
6
|
+
// Check dependsOn
|
|
7
|
+
if (item.dependsOn) {
|
|
8
|
+
const depVal = getSettingValue(item.dependsOn, values);
|
|
9
|
+
if (item.dependsOnValue !== undefined && depVal !== item.dependsOnValue) {
|
|
10
|
+
return null; // hide
|
|
11
|
+
}
|
|
12
|
+
else if (item.dependsOnValue === undefined && !depVal) {
|
|
13
|
+
return null; // implicitly falsy hide
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const value = item.bind ? getSettingValue(item.bind, values) : undefined;
|
|
17
|
+
const onChange = (v) => {
|
|
18
|
+
if (item.bind) {
|
|
19
|
+
setSettingValue(item.bind, v);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
switch (item.type) {
|
|
23
|
+
case "toggle":
|
|
24
|
+
return (_jsx(SettingRow.Toggle, { title: item.title, description: item.description, checked: Boolean(value), onCheckedChange: onChange }, item.id));
|
|
25
|
+
case "select":
|
|
26
|
+
return (_jsx(SettingRow.Select, { title: item.title, description: item.description, value: value !== undefined ? String(value) : "", onChange: onChange, options: item.options || [] }, item.id));
|
|
27
|
+
case "text":
|
|
28
|
+
return (_jsx(SettingRow.Text, { title: item.title, description: item.description, value: value !== undefined ? String(value) : "", onChange: onChange, placeholder: item.placeholder }, item.id));
|
|
29
|
+
case "number":
|
|
30
|
+
return (_jsx(SettingRow.Number, { title: item.title, description: item.description, value: Number(value || 0), onChange: onChange, min: item.min, max: item.max, step: item.step, unit: item.unit }, item.id));
|
|
31
|
+
case "action":
|
|
32
|
+
return (_jsx(SettingRow.Custom, { title: item.title, description: item.description, children: _jsx("button", { type: "button", onClick: () => {
|
|
33
|
+
if (item.actionId && actions[item.actionId]) {
|
|
34
|
+
actions[item.actionId]();
|
|
35
|
+
}
|
|
36
|
+
}, className: "px-3 py-1 bg-[var(--tx-surface-2)] text-[var(--tx-text)] rounded border border-[var(--tx-border)] hover:bg-[var(--tx-surface-3)] text-sm", children: item.actionLabel || "Execute" }) }, item.id));
|
|
37
|
+
default:
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
return (_jsxs("div", { className: "flex flex-col gap-6 w-full max-w-2xl py-2", children: [schema.description && (_jsx("p", { className: "text-[12.5px] text-[var(--tx-text-m)] mb-1", children: schema.description })), schema.groups.map((group) => (_jsx(GroupWrapper, { title: group.title, children: group.items.map((item) => renderItem(item)) }, group.id)))] }));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=SettingsFormBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsFormBuilder.js","sourceRoot":"","sources":["../../src/settings/SettingsFormBuilder.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWjE,MAAM,UAAU,mBAAmB,CAA0B,EAC3D,MAAM,EACN,MAAM,EACN,eAAe,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAE,KAAa,EAAE,CAAC,IAAI,CAAC,EACzD,eAAe,EACf,OAAO,GAAG,EAAE,GACgB;IAC5B,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAE,EAAE;QACvC,kBAAkB;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxE,OAAO,IAAI,CAAC,CAAC,OAAO;YACtB,CAAC;iBAAM,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC,CAAC,wBAAwB;YACvC,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,eAAe,EAAE,QAAQ,IAJpB,IAAI,CAAC,EAAE,CAKZ,CACH,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAC/C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,IALtB,IAAI,CAAC,EAAE,CAMZ,CACH,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO,CACL,KAAC,UAAU,CAAC,IAAI,IAEd,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAC/C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,CAAC,WAAW,IALxB,IAAI,CAAC,EAAE,CAMZ,CACH,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EACzB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,IARV,IAAI,CAAC,EAAE,CASZ,CACH,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,YAE7B,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAE,EAAE,CAAC;4BAC5B,CAAC;wBACH,CAAC,EACD,SAAS,EAAC,0IAA0I,YAEnJ,IAAI,CAAC,WAAW,IAAI,SAAS,GACvB,IAdJ,IAAI,CAAC,EAAE,CAeM,CACrB,CAAC;YACJ;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,2CAA2C,aACvD,MAAM,CAAC,WAAW,IAAI,CACrB,YAAG,SAAS,EAAC,4CAA4C,YACtD,MAAM,CAAC,WAAW,GACjB,CACL,EAEA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,YAAY,IAAgB,KAAK,EAAE,KAAK,CAAC,KAAK,YAC5C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAD3B,KAAK,CAAC,EAAE,CAEZ,CAChB,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React, { type ReactNode } from "react";
|
|
2
|
+
export type HeaderBarProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
leading?: ReactNode;
|
|
5
|
+
center?: ReactNode;
|
|
6
|
+
trailing?: ReactNode;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
export declare function HeaderBar({ className, leading, center, trailing, children, }: HeaderBarProps): React.JSX.Element;
|
|
10
|
+
//# sourceMappingURL=HeaderBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderBar.d.ts","sourceRoot":"","sources":["../../src/shell/HeaderBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,GACT,EAAE,cAAc,qBAkBhB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
export function HeaderBar({ className, leading, center, trailing, children, }) {
|
|
4
|
+
return (_jsxs("header", { "data-tauri-drag-region": true, className: cn("flex h-9 w-full items-center justify-between border-b border-border/60 bg-background/95 px-2 select-none backdrop-blur-sm", className), children: [leading && _jsx("div", { className: "flex items-center gap-1.5 shrink-0", children: leading }), center ? (_jsx("div", { className: "flex flex-1 items-center justify-center px-2 min-w-0", children: center })) : (children), trailing && _jsx("div", { className: "flex items-center gap-1.5 shrink-0", children: trailing })] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=HeaderBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderBar.js","sourceRoot":"","sources":["../../src/shell/HeaderBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAWpC,MAAM,UAAU,SAAS,CAAC,EACxB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,GACO;IACf,OAAO,CACL,kDAEE,SAAS,EAAE,EAAE,CACX,2HAA2H,EAC3H,SAAS,CACV,aAEA,OAAO,IAAI,cAAK,SAAS,EAAC,oCAAoC,YAAE,OAAO,GAAO,EAC9E,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,SAAS,EAAC,sDAAsD,YAAE,MAAM,GAAO,CACrF,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,EACA,QAAQ,IAAI,cAAK,SAAS,EAAC,oCAAoC,YAAE,QAAQ,GAAO,IAC1E,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { type ReactNode } from "react";
|
|
2
|
+
export type StatusBarProps = {
|
|
3
|
+
className?: string;
|
|
4
|
+
left?: ReactNode;
|
|
5
|
+
center?: ReactNode;
|
|
6
|
+
right?: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export declare function StatusBar({ className, left, center, right, }: StatusBarProps): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=StatusBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../src/shell/StatusBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,GACN,EAAE,cAAc,qBAahB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
export function StatusBar({ className, left, center, right, }) {
|
|
4
|
+
return (_jsxs("footer", { className: cn("flex h-6 w-full items-center justify-between border-t border-border/40 bg-background/80 px-2 text-[10.5px] text-muted-foreground select-none", className), children: [_jsx("div", { className: "flex items-center gap-2 shrink-0 min-w-0", children: left }), center && _jsx("div", { className: "flex items-center justify-center min-w-0", children: center }), _jsx("div", { className: "flex items-center gap-2 shrink-0", children: right })] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=StatusBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/shell/StatusBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAUpC,MAAM,UAAU,SAAS,CAAC,EACxB,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,GACU;IACf,OAAO,CACL,kBACE,SAAS,EAAE,EAAE,CACX,8IAA8I,EAC9I,SAAS,CACV,aAED,cAAK,SAAS,EAAC,0CAA0C,YAAE,IAAI,GAAO,EACrE,MAAM,IAAI,cAAK,SAAS,EAAC,0CAA0C,YAAE,MAAM,GAAO,EACnF,cAAK,SAAS,EAAC,kCAAkC,YAAE,KAAK,GAAO,IACxD,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface GitBranch {
|
|
2
|
+
name: string;
|
|
3
|
+
isHead?: boolean;
|
|
4
|
+
isRemote?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export type BranchSwitcherProps = {
|
|
7
|
+
open: boolean;
|
|
8
|
+
onOpenChange: (open: boolean) => void;
|
|
9
|
+
branches?: GitBranch[];
|
|
10
|
+
loading?: boolean;
|
|
11
|
+
onSelectBranch: (branch: string) => void | Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
export declare function BranchSwitcher({ open, onOpenChange, branches, loading, onSelectBranch, }: BranchSwitcherProps): import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=BranchSwitcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BranchSwitcher.d.ts","sourceRoot":"","sources":["../../src/source-control/BranchSwitcher.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,YAAY,EACZ,QAAa,EACb,OAAe,EACf,cAAc,GACf,EAAE,mBAAmB,+BAuCrB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, } from "../primitives/command.js";
|
|
3
|
+
import { GitBranchIcon } from "@hugeicons/core-free-icons";
|
|
4
|
+
import { HugeiconsIcon } from "@hugeicons/react";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
export function BranchSwitcher({ open, onOpenChange, branches = [], loading = false, onSelectBranch, }) {
|
|
7
|
+
const [query, setQuery] = useState("");
|
|
8
|
+
return (_jsxs(CommandDialog, { open: open, onOpenChange: onOpenChange, children: [_jsx(CommandInput, { placeholder: "Search branches...", value: query, onValueChange: setQuery }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: loading ? "Loading branches..." : "No branches found." }), !loading && (_jsx(CommandGroup, { heading: "Branches", children: branches.map((b) => (_jsxs(CommandItem, { value: b.name, onSelect: () => onSelectBranch(b.name), className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(HugeiconsIcon, { icon: GitBranchIcon, size: 14 }), _jsx("span", { className: b.isHead ? "font-semibold" : undefined, children: b.name })] }), b.isHead && (_jsx("span", { className: "text-xs text-muted-foreground", children: "(current)" }))] }, b.name))) }))] })] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=BranchSwitcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BranchSwitcher.js","sourceRoot":"","sources":["../../src/source-control/BranchSwitcher.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAgBjC,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,YAAY,EACZ,QAAQ,GAAG,EAAE,EACb,OAAO,GAAG,KAAK,EACf,cAAc,GACM;IACpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO,CACL,MAAC,aAAa,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,aACnD,KAAC,YAAY,IACX,WAAW,EAAC,oBAAoB,EAChC,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,QAAQ,GACvB,EACF,MAAC,WAAW,eACV,KAAC,YAAY,cACV,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,GAC1C,EACd,CAAC,OAAO,IAAI,CACX,KAAC,YAAY,IAAC,OAAO,EAAC,UAAU,YAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,MAAC,WAAW,IAEV,KAAK,EAAE,CAAC,CAAC,IAAI,EACb,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EACtC,SAAS,EAAC,mCAAmC,aAE7C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,aAAa,IAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,GAAI,EAChD,eAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,YACpD,CAAC,CAAC,IAAI,GACF,IACH,EACL,CAAC,CAAC,MAAM,IAAI,CACX,eAAM,SAAS,EAAC,+BAA+B,0BAAiB,CACjE,KAbI,CAAC,CAAC,IAAI,CAcC,CACf,CAAC,GACW,CAChB,IACW,IACA,CACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GitLogEntry } from "@termaxjs/web-source-control/history";
|
|
2
|
+
import { type MouseEvent } from "react";
|
|
3
|
+
import type { GraphRow } from "@termaxjs/web-source-control/history";
|
|
4
|
+
type CommitRowProps = {
|
|
5
|
+
commit: GitLogEntry;
|
|
6
|
+
query: string;
|
|
7
|
+
active: boolean;
|
|
8
|
+
graphRow: GraphRow | null;
|
|
9
|
+
maxLaneCount: number;
|
|
10
|
+
gridTemplate: string;
|
|
11
|
+
onClick: (sha: string, event: MouseEvent<HTMLElement>) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare const CommitRow: import("react").NamedExoticComponent<CommitRowProps>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=CommitRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommitRow.d.ts","sourceRoot":"","sources":["../../src/source-control/CommitRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,OAAO,CAAC;AAI9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGrE,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,eAAO,MAAM,SAAS,sDA6GpB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { File02Icon } from "@hugeicons/core-free-icons";
|
|
4
|
+
import { HugeiconsIcon } from "@hugeicons/react";
|
|
5
|
+
import { memo } from "react";
|
|
6
|
+
import { GraphRail } from "./GraphRail.js";
|
|
7
|
+
import { ROW_HEIGHT } from "@termaxjs/web-source-control/history";
|
|
8
|
+
import { authorInitials, authorTint, compactDate } from "@termaxjs/web-source-control/history";
|
|
9
|
+
import { highlight } from "./highlight.js";
|
|
10
|
+
export const CommitRow = memo(function CommitRow({ commit, query, active, graphRow, maxLaneCount, gridTemplate, onClick, }) {
|
|
11
|
+
const date = compactDate(commit.timestampSecs || 0);
|
|
12
|
+
const initials = authorInitials(commit.author || "");
|
|
13
|
+
const totalStat = commit.insertions + commit.deletions;
|
|
14
|
+
return (_jsxs("button", { type: "button", onClick: (event) => onClick(commit.sha, event), className: cn("group relative grid h-full w-full cursor-pointer items-center gap-3 border-l-2 border-transparent pr-3 text-left transition-colors", active ? "border-l-primary/70 bg-accent/45" : "hover:bg-accent/25"), style: { gridTemplateColumns: gridTemplate }, children: [_jsx("div", { className: "flex items-center justify-start pl-1", children: graphRow ? (_jsx(GraphRail, { row: graphRow, rowHeight: ROW_HEIGHT, maxLaneCount: maxLaneCount, active: active })) : null }), _jsx("span", { className: "pl-px font-mono text-[10.5px] tabular-nums text-muted-foreground/80", children: commit.shortSha }), _jsx("span", { className: cn("min-w-0 truncate text-[var(--text-sm,12px)] leading-tight", active
|
|
15
|
+
? "font-semibold text-foreground"
|
|
16
|
+
: "font-medium text-foreground/95"), children: commit.subject ? (highlight(commit.subject, query)) : (_jsx("span", { className: "text-muted-foreground", children: "(no subject)" })) }), _jsx("span", { "aria-hidden": true }), _jsxs("span", { className: "ml-2 inline-flex h-[18px] max-w-full min-w-0 items-center gap-1.5 justify-self-start self-center overflow-hidden rounded-md bg-foreground/6 pl-1 pr-1.5 text-[10.5px] font-medium text-foreground/85", title: commit.authorEmail || commit.author, children: [_jsx("span", { className: "inline-flex size-3.5 shrink-0 items-center justify-center rounded-[3px] font-mono text-[8.5px] font-bold uppercase tabular-nums text-background", style: {
|
|
17
|
+
backgroundColor: authorTint(commit.authorEmail || commit.author || ""),
|
|
18
|
+
}, children: initials }), _jsx("span", { className: "min-w-0 truncate", children: commit.author ? highlight(commit.author, query) : "Unknown" })] }), _jsx("span", { className: "text-right font-mono text-[10.5px] tabular-nums text-muted-foreground/75", children: date }), _jsxs("span", { className: "flex min-w-0 items-center justify-end gap-1.5 font-mono text-[10px] tabular-nums", children: [commit.filesChanged > 0 ? (_jsxs("span", { className: "inline-flex items-center gap-1 text-muted-foreground/75", title: `${commit.filesChanged} ${commit.filesChanged === 1 ? "file" : "files"} changed`, children: [_jsx(HugeiconsIcon, { icon: File02Icon, size: 10.5, strokeWidth: 1.7, className: "opacity-70" }), _jsx("span", { className: "font-medium", children: commit.filesChanged })] })) : null, commit.filesChanged > 0 && totalStat > 0 ? (_jsx("span", { "aria-hidden": true, className: "size-[3px] shrink-0 rounded-full bg-muted-foreground/30" })) : null, totalStat > 0 ? (_jsxs("span", { className: "inline-flex items-center gap-1", children: [commit.insertions > 0 ? (_jsxs("span", { className: "font-semibold text-emerald-600/85 dark:text-emerald-400/85", children: ["+", commit.insertions] })) : null, commit.deletions > 0 ? (_jsxs("span", { className: "font-semibold text-rose-600/85 dark:text-rose-400/85", children: ["\u2212", commit.deletions] })) : null] })) : commit.filesChanged === 0 ? (_jsx("span", { className: "text-muted-foreground/40", children: "\u2014" })) : null] })] }));
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=CommitRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommitRow.js","sourceRoot":"","sources":["../../src/source-control/CommitRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAmB,IAAI,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAE/F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAY3C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,SAAS,CAAC,EAC/C,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,GACQ;IACf,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;IACvD,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAC9C,SAAS,EAAE,EAAE,CACX,oIAAoI,EACpI,MAAM,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,oBAAoB,CACnE,EACD,KAAK,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAE5C,cAAK,SAAS,EAAC,sCAAsC,YAClD,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,SAAS,IACR,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACd,CACH,CAAC,CAAC,CAAC,IAAI,GACJ,EACN,eAAM,SAAS,EAAC,qEAAqE,YAClF,MAAM,CAAC,QAAQ,GACX,EACP,eACE,SAAS,EAAE,EAAE,CACX,2DAA2D,EAC3D,MAAM;oBACJ,CAAC,CAAC,+BAA+B;oBACjC,CAAC,CAAC,gCAAgC,CACrC,YAEA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAChB,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CACjC,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,uBAAuB,6BAAoB,CAC5D,GACI,EACP,qCAAoB,EACpB,gBACE,SAAS,EAAC,sMAAsM,EAChN,KAAK,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,aAE1C,eACE,SAAS,EAAC,iJAAiJ,EAC3J,KAAK,EAAE;4BACL,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;yBACvE,YAEA,QAAQ,GACJ,EACP,eAAM,SAAS,EAAC,kBAAkB,YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GACvD,IACF,EACP,eAAM,SAAS,EAAC,0EAA0E,YACvF,IAAI,GACA,EACP,gBAAM,SAAS,EAAC,kFAAkF,aAC/F,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,gBACE,SAAS,EAAC,yDAAyD,EACnE,KAAK,EAAE,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,UAAU,aAEvF,KAAC,aAAa,IACZ,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,GAAG,EAChB,SAAS,EAAC,YAAY,GACtB,EACF,eAAM,SAAS,EAAC,aAAa,YAAE,MAAM,CAAC,YAAY,GAAQ,IACrD,CACR,CAAC,CAAC,CAAC,IAAI,EACP,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1C,oCAEE,SAAS,EAAC,yDAAyD,GACnE,CACH,CAAC,CAAC,CAAC,IAAI,EACP,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CACf,gBAAM,SAAS,EAAC,gCAAgC,aAC7C,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CACvB,gBAAM,SAAS,EAAC,4DAA4D,kBACxE,MAAM,CAAC,UAAU,IACd,CACR,CAAC,CAAC,CAAC,IAAI,EACP,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CACtB,gBAAM,SAAS,EAAC,sDAAsD,uBAClE,MAAM,CAAC,SAAS,IACb,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B,eAAM,SAAS,EAAC,0BAA0B,uBAAS,CACpD,CAAC,CAAC,CAAC,IAAI,IACH,IACA,CACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type CheckState, type RowDescriptor } from "./sourceControlHelpers.js";
|
|
2
|
+
import type { SourceControlFileEntry } from "@termaxjs/web-source-control";
|
|
3
|
+
export type RowRendererProps = {
|
|
4
|
+
row: RowDescriptor;
|
|
5
|
+
focused: boolean;
|
|
6
|
+
selectedPath: string | null;
|
|
7
|
+
actionBusy: string | null;
|
|
8
|
+
headerCheckState: CheckState;
|
|
9
|
+
repoRoot: string | null;
|
|
10
|
+
onFocusRow: (key: string | null) => void;
|
|
11
|
+
onToggleAll: () => Promise<void> | void;
|
|
12
|
+
onSelectFile: (entry: SourceControlFileEntry) => Promise<void>;
|
|
13
|
+
onToggleStageFile: (entry: SourceControlFileEntry) => Promise<void>;
|
|
14
|
+
onDiscardFile: (entry: SourceControlFileEntry) => void;
|
|
15
|
+
onStageHunk: (entry: SourceControlFileEntry, patch: string, reverse: boolean) => Promise<void>;
|
|
16
|
+
onDiscardHunk: (entry: SourceControlFileEntry, patch: string) => Promise<void>;
|
|
17
|
+
onOpenFile?: (absolutePath: string) => void;
|
|
18
|
+
};
|
|
19
|
+
export declare const EntryRow: import("react").NamedExoticComponent<RowRendererProps & {
|
|
20
|
+
row: Extract<RowDescriptor, {
|
|
21
|
+
kind: "entry";
|
|
22
|
+
}>;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const RowRenderer: import("react").NamedExoticComponent<RowRendererProps>;
|
|
25
|
+
//# sourceMappingURL=EntryRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntryRow.d.ts","sourceRoot":"","sources":["../../src/source-control/EntryRow.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAEL,KAAK,UAAU,EAGf,KAAK,aAAa,EAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAK3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,aAAa,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,CACX,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,EAAE,CACb,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,QAAQ;SAcd,OAAO,CAAC,aAAa,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;EA4N9C,CAAC;AAEH,eAAO,MAAM,WAAW,wDAUtB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Checkbox } from "../primitives/checkbox.js";
|
|
3
|
+
import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuTrigger, } from "../primitives/context-menu.js";
|
|
4
|
+
import { Spinner } from "../primitives/spinner.js";
|
|
5
|
+
import { IS_MAC } from "../utils/platform.js";
|
|
6
|
+
import { cn } from "../utils/cn.js";
|
|
7
|
+
import { COMPACT_CONTENT, COMPACT_ITEM } from "../explorer/menuItemClass.js";
|
|
8
|
+
import { copyToClipboard, revealInFinder } from "../explorer/contextActions.js";
|
|
9
|
+
import { joinPath } from "@termaxjs/web-core/explorer";
|
|
10
|
+
import { fileIconUrl } from "../explorer/iconResolver.js";
|
|
11
|
+
import { ArrowRight01Icon, RemoveSquareIcon } from "@hugeicons/core-free-icons";
|
|
12
|
+
import { HugeiconsIcon } from "@hugeicons/react";
|
|
13
|
+
import { memo, useState } from "react";
|
|
14
|
+
import { basename, checkboxValue, entryPathLabel, statusAccent, } from "./sourceControlHelpers.js";
|
|
15
|
+
import { InlineHunkView } from "./InlineHunkView.js";
|
|
16
|
+
import { IconActionButton } from "./SourceControlActions.js";
|
|
17
|
+
import { DivergedBanner, ListHeader } from "./SourceControlStatusViews.js";
|
|
18
|
+
export const EntryRow = memo(function EntryRow({ row, focused, selectedPath, actionBusy, repoRoot, onFocusRow, onSelectFile, onToggleStageFile, onDiscardFile, onStageHunk, onDiscardHunk, onOpenFile, }) {
|
|
19
|
+
const [expanded, setExpanded] = useState(false);
|
|
20
|
+
const entry = row.entry;
|
|
21
|
+
const isSelected = selectedPath === entry.path;
|
|
22
|
+
const fileName = basename(entry.path);
|
|
23
|
+
const iconUrl = fileIconUrl(fileName);
|
|
24
|
+
const pathLabel = entryPathLabel(entry);
|
|
25
|
+
const showDiscard = entry.unstaged;
|
|
26
|
+
const isStageBusy = actionBusy === `stage:${entry.path}` ||
|
|
27
|
+
actionBusy === `unstage:${entry.path}`;
|
|
28
|
+
const isDiscardBusy = actionBusy === `discard:${entry.path}`;
|
|
29
|
+
const disabled = actionBusy !== null;
|
|
30
|
+
const absolutePath = repoRoot
|
|
31
|
+
? joinPath(repoRoot.replace(/\\/g, "/"), entry.path.replace(/\\/g, "/"))
|
|
32
|
+
: null;
|
|
33
|
+
const isDeleted = entry.statusCode === "D";
|
|
34
|
+
const revealLabel = IS_MAC ? "Reveal in Finder" : "Reveal in File Manager";
|
|
35
|
+
return (_jsxs("div", { className: "flex flex-col", children: [_jsxs(ContextMenu, { children: [_jsx(ContextMenuTrigger, { asChild: true, children: _jsxs("div", { id: `scm-row-${row.key}`, "data-focused": focused || undefined, "data-selected": isSelected || undefined, role: "option", "aria-selected": isSelected, onMouseDown: () => onFocusRow(row.key), className: cn("group relative flex h-[30px] items-center gap-2 rounded-md pl-2 pr-2 transition-all duration-100", focused
|
|
36
|
+
? "bg-accent/60"
|
|
37
|
+
: isSelected
|
|
38
|
+
? "bg-accent/55 text-foreground"
|
|
39
|
+
: "hover:bg-accent/30"), children: [_jsx("span", { className: cn("pointer-events-none absolute inset-y-1 left-0 w-[2px] rounded-full transition-opacity", statusAccent(entry.statusCode), isSelected || focused
|
|
40
|
+
? "opacity-100"
|
|
41
|
+
: "opacity-55 group-hover:opacity-95"), "aria-hidden": true }), _jsxs("button", { type: "button", onClick: (e) => {
|
|
42
|
+
if (e.metaKey || e.ctrlKey) {
|
|
43
|
+
onFocusRow(row.key);
|
|
44
|
+
void onSelectFile(entry);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
setExpanded(!expanded);
|
|
48
|
+
}
|
|
49
|
+
}, className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 text-left", children: [_jsx("div", { className: cn("flex size-4 shrink-0 items-center justify-center transition-transform", expanded ? "rotate-90" : "rotate-0"), children: _jsx(HugeiconsIcon, { icon: ArrowRight01Icon, size: 12, strokeWidth: 2, className: "text-muted-foreground hover:text-foreground" }) }), iconUrl ? (_jsx("img", { src: iconUrl, alt: "", className: "size-4 shrink-0" })) : (_jsx("span", { className: "size-4 shrink-0" })), _jsxs("div", { className: "flex min-w-0 flex-1 items-baseline gap-1.5 leading-none", children: [_jsx("span", { className: cn("truncate text-[var(--text-sm,12px)] leading-tight", isSelected || focused
|
|
50
|
+
? "font-semibold text-foreground"
|
|
51
|
+
: "font-medium text-foreground/95", pathLabel ? "max-w-[58%] shrink-0" : "min-w-0 flex-1"), children: fileName }), pathLabel ? (_jsx("span", { className: "min-w-0 flex-1 truncate text-[10.5px] leading-tight text-muted-foreground/75", children: pathLabel })) : null] })] }), showDiscard ? (_jsx("div", { className: "flex shrink-0 items-center opacity-0 transition-opacity group-hover:opacity-100 data-[focused=true]:opacity-100 data-[selected=true]:opacity-100", children: _jsx(IconActionButton, { label: `Discard ${entry.path}`, disabled: disabled, side: "top", onClick: () => onDiscardFile(entry), children: isDiscardBusy ? (_jsx(Spinner, { className: "size-3" })) : (_jsx(HugeiconsIcon, { icon: RemoveSquareIcon, size: 11, strokeWidth: 1.9 })) }) })) : null, _jsx("span", { className: "flex size-5 shrink-0 items-center justify-center", children: isStageBusy ? (_jsx(Spinner, { className: "size-3" })) : (_jsx(Checkbox, { "aria-label": `Stage ${entry.path}`, checked: checkboxValue(entry.checkState), disabled: disabled, onCheckedChange: () => void onToggleStageFile(entry), className: "size-3.5" })) })] }) }), _jsxs(ContextMenuContent, { className: COMPACT_CONTENT, children: [_jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => {
|
|
52
|
+
onFocusRow(row.key);
|
|
53
|
+
void onSelectFile(entry);
|
|
54
|
+
}, children: "Open Diff" }), !isDeleted && onOpenFile && absolutePath ? (_jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => onOpenFile(absolutePath), children: "Open File" })) : null, _jsx(ContextMenuSeparator, {}), _jsx(ContextMenuItem, { className: COMPACT_ITEM, disabled: disabled, onSelect: () => void onToggleStageFile(entry), children: entry.checkState === "checked" ? "Unstage" : "Stage" }), entry.unstaged ? (_jsx(ContextMenuItem, { className: COMPACT_ITEM, variant: "destructive", disabled: disabled, onSelect: () => onDiscardFile(entry), children: "Discard Changes" })) : null, _jsx(ContextMenuSeparator, {}), _jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => void copyToClipboard(entry.path.replace(/\\/g, "/")), children: "Copy Relative Path" }), absolutePath ? (_jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => void copyToClipboard(absolutePath), children: "Copy Absolute Path" })) : null, !isDeleted && absolutePath ? (_jsxs(_Fragment, { children: [_jsx(ContextMenuSeparator, {}), _jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => void revealInFinder(absolutePath), children: revealLabel })] })) : null] })] }), expanded && (_jsx(InlineHunkView, { entry: entry, repoRoot: repoRoot, onStageHunk: onStageHunk, onDiscardHunk: onDiscardHunk }))] }));
|
|
55
|
+
});
|
|
56
|
+
export const RowRenderer = memo(function RowRenderer(props) {
|
|
57
|
+
const { row } = props;
|
|
58
|
+
switch (row.kind) {
|
|
59
|
+
case "banner-diverged":
|
|
60
|
+
return _jsx(DivergedBanner, {});
|
|
61
|
+
case "list-header":
|
|
62
|
+
return _jsx(ListHeader, { ...props, row: row });
|
|
63
|
+
case "entry":
|
|
64
|
+
return _jsx(EntryRow, { ...props, row: row });
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=EntryRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntryRow.js","sourceRoot":"","sources":["../../src/source-control/EntryRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { GraphRow } from "@termaxjs/web-source-control/history";
|
|
2
|
+
export declare const LANE_WIDTH = 14;
|
|
3
|
+
export declare const RAIL_PADDING_X = 8;
|
|
4
|
+
export declare const MAX_VISIBLE_LANES = 6;
|
|
5
|
+
export declare function railWidth(maxLane: number): number;
|
|
6
|
+
type Props = {
|
|
7
|
+
row: GraphRow;
|
|
8
|
+
rowHeight: number;
|
|
9
|
+
maxLaneCount: number;
|
|
10
|
+
active?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare const GraphRail: import("react").NamedExoticComponent<Props>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=GraphRail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphRail.d.ts","sourceRoot":"","sources":["../../src/source-control/GraphRail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhF,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AASnC,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA0EF,eAAO,MAAM,SAAS,6CAwDpB,CAAC"}
|