Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
316dd12
Show chevron on hover in VerticalSubViewsContainer Header
kube Mar 10, 2026
fb9b06a
Add FilterableListSubView and refactor subviews to use it
kube Mar 10, 2026
a96f9df
Style list items to match Figma design and replace delete with ellips…
kube Mar 10, 2026
11bb7f1
Update InfoIconTooltip
kube Mar 10, 2026
fc31fab
Update tooltip border-radius
kube Mar 10, 2026
5d97cbf
Move row menu to FilterableListSubView and add filter/sort/search but…
kube Mar 10, 2026
19f862d
Tweak colors and paddings
kube Mar 10, 2026
7f2abf1
Fix row interaction: stopPropagation on menu trigger, highlight row w…
kube Mar 10, 2026
f66ee30
Improve header hover behavior, item layout, and icon handling
kube Mar 11, 2026
82802b0
Add icon support and styled main headers to PropertiesPanel SubViews
kube Mar 11, 2026
11dd9c9
Centralize entity icons and standardize list item icon rendering
kube Mar 11, 2026
d412e88
Move listItemNameStyle into FilterableListSubView and reorder sidebar…
kube Mar 11, 2026
040f097
Make SubView icon size controlled by VerticalSubViewsContainer
kube Mar 11, 2026
42fba8d
Clear selection when clicking empty area in filterable list and updat…
kube Mar 11, 2026
5d2b5c7
Fix bottom border + top padding on content in VerticalSubViewsContainer
kube Mar 11, 2026
7487b6a
Update shadow on ScrollableContent
kube Mar 11, 2026
91dfb8d
Adjust content padding: px:4 default, px:3 for filterable lists
kube Mar 11, 2026
fd4008b
Add keyboard navigation, range selection, and focus highlights to fil…
kube Mar 11, 2026
d22d3e4
Hide header bottom border when sub-view is collapsed
kube Mar 12, 2026
3fc423b
Use token-based height for sub-view header rows
kube Mar 12, 2026
742f241
Reset focused/anchor state when filterable list loses focus
kube Mar 12, 2026
9ac2cc0
Make TopBar title input fill available space
kube Mar 12, 2026
95a34eb
Add search panel to LeftSideBar with Ctrl/Cmd+F shortcut
kube Mar 12, 2026
6ee55ac
Add fuzzy search with match highlighting using fuzzysort
kube Mar 12, 2026
73c36e3
Add keyboard navigation to search results and fix fuzzysort highlight…
kube Mar 12, 2026
b4e163a
Remove filter/sort buttons and drop manual useCallback/useMemo
kube Mar 13, 2026
1f4fa9b
Update ui-subviews
kube Mar 13, 2026
e2322e2
Fix lint errors: rename getMenuItems to useMenuItems and add keyboard…
kube Mar 14, 2026
53ed48e
Address AI review feedback across multiple components
kube Mar 14, 2026
ed8d835
Extract row menu into proper components to fix React Compiler error
kube Mar 14, 2026
981a51a
Clip overflow on editor root to hide menus when collapsed
kube Mar 14, 2026
956fe86
Fix duplicate context call and hidden layer keyboard focus
kube Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions libs/@hashintel/petrinaut/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
"d3-array": "3.2.4",
"d3-scale": "4.0.2",
"elkjs": "0.11.0",
"fuzzysort": "3.1.0",
"monaco-editor": "0.55.1",
"react-icons": "5.5.0",
"react-resizable-panels": "4.6.5",
Expand Down
11 changes: 10 additions & 1 deletion libs/@hashintel/petrinaut/src/components/menu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,12 +97,18 @@ const itemStyle = cva({
_hover: {
backgroundColor: "neutral.s10",
},
_highlighted: {
backgroundColor: "neutral.bg.subtle.hover",
},
_disabled: {
opacity: "[0.4]",
cursor: "not-allowed",
_hover: {
backgroundColor: "[transparent]",
},
_highlighted: {
backgroundColor: "[transparent]",
},
},
},
variants: {
Expand All @@ -117,7 +123,7 @@ const itemStyle = cva({
},
destructive: {
true: {
color: "red.s60",
color: "red.s100",
},
},
},
Expand Down Expand Up @@ -174,6 +180,9 @@ const triggerItemStyle = css({
_hover: {
backgroundColor: "neutral.s10",
},
_highlighted: {
backgroundColor: "neutral.bg.subtle.hover",
},
});

const triggerItemArrowStyle = css({
Expand Down
4 changes: 3 additions & 1 deletion libs/@hashintel/petrinaut/src/components/section.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ const sectionListStyle = css({
flex: "[1]",
minHeight: "[0]",
"& > *:not(:last-child)": {
borderBottom: "[1px solid rgba(0, 0, 0, 0.06)]",
borderBottomWidth: "[1px]",
borderBottomStyle: "solid",
borderBottomColor: "neutral.a20",
},
});

Expand Down
12 changes: 12 additions & 0 deletions libs/@hashintel/petrinaut/src/components/sub-view/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ export interface SubView {
title: string;
/** Optional tooltip shown when hovering over the title/tab */
tooltip?: string;
/** Optional icon component displayed before the title in the header. Size is controlled by the container. */
icon?: ComponentType<{ size: number }>;
/** The component to render for this subview */
component: ComponentType;
/**
Expand All @@ -50,6 +52,11 @@ export interface SubView {
* and the content should not include its own title/actions.
*/
main?: boolean;
/**
* Optional custom render for the title area of a main subview header.
* When provided, replaces the static title text. Only used when `main` is true.
*/
renderTitle?: () => ReactNode;
/**
* Whether the section can be collapsed by clicking the header.
* Defaults to true. Forced to false when `main` is true.
Expand All @@ -60,6 +67,11 @@ export interface SubView {
* Defaults to false (expanded). Ignored when `main` is true.
*/
defaultCollapsed?: boolean;
/**
* When true, the header action is always visible instead of only on hover/focus.
* Defaults to false.
*/
alwaysShowHeaderAction?: boolean;
/**
* Configuration for making the subview resizable when expanded.
* Only affects vertical layout. When set, the section can be resized by dragging its bottom edge.
Expand Down
Loading
Loading