Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
176f5b4
Show chevron on hover in VerticalSubViewsContainer Header
kube Mar 10, 2026
53f78ca
Add FilterableListSubView and refactor subviews to use it
kube Mar 10, 2026
1d19cf0
Style list items to match Figma design and replace delete with ellips…
kube Mar 10, 2026
6bb23a3
Update InfoIconTooltip
kube Mar 10, 2026
6a3873a
Update tooltip border-radius
kube Mar 10, 2026
68be0c8
Move row menu to FilterableListSubView and add filter/sort/search but…
kube Mar 10, 2026
110ba5f
Tweak colors and paddings
kube Mar 10, 2026
24d2604
Fix row interaction: stopPropagation on menu trigger, highlight row w…
kube Mar 10, 2026
1f9d3aa
Improve header hover behavior, item layout, and icon handling
kube Mar 11, 2026
b8c62f1
Add icon support and styled main headers to PropertiesPanel SubViews
kube Mar 11, 2026
4816581
Centralize entity icons and standardize list item icon rendering
kube Mar 11, 2026
4cfa0c8
Move listItemNameStyle into FilterableListSubView and reorder sidebar…
kube Mar 11, 2026
4390ad2
Make SubView icon size controlled by VerticalSubViewsContainer
kube Mar 11, 2026
839caa5
Clear selection when clicking empty area in filterable list and updat…
kube Mar 11, 2026
afa7689
Fix bottom border + top padding on content in VerticalSubViewsContainer
kube Mar 11, 2026
6704d9e
Update shadow on ScrollableContent
kube Mar 11, 2026
099effc
Adjust content padding: px:4 default, px:3 for filterable lists
kube Mar 11, 2026
e770c2c
Add keyboard navigation, range selection, and focus highlights to fil…
kube Mar 11, 2026
bda92e3
Hide header bottom border when sub-view is collapsed
kube Mar 12, 2026
5c24420
Use token-based height for sub-view header rows
kube Mar 12, 2026
b871ce9
Reset focused/anchor state when filterable list loses focus
kube Mar 12, 2026
9fb8744
Make TopBar title input fill available space
kube Mar 12, 2026
1ff1842
Add search panel to LeftSideBar with Ctrl/Cmd+F shortcut
kube Mar 12, 2026
fe8f33c
Add fuzzy search with match highlighting using fuzzysort
kube Mar 12, 2026
99cc2a6
Add keyboard navigation to search results and fix fuzzysort highlight…
kube Mar 12, 2026
57b8e62
Remove filter/sort buttons and drop manual useCallback/useMemo
kube Mar 13, 2026
f67b281
Update ui-subviews
kube Mar 13, 2026
6e366e4
Fix lint errors: rename getMenuItems to useMenuItems and add keyboard…
kube Mar 14, 2026
40e758c
Address AI review feedback across multiple components
kube Mar 14, 2026
3c52812
Extract row menu into proper components to fix React Compiler error
kube Mar 14, 2026
d216d1e
Clip overflow on editor root to hide menus when collapsed
kube Mar 14, 2026
6615a9c
Fix duplicate context call and hidden layer keyboard focus
kube Mar 15, 2026
dc9d848
Address AI review feedback: fix search focus, stale refs, and sidebar…
kube Mar 16, 2026
2209dd1
Add entities tree view setting and empty SubView placeholder
kube Mar 16, 2026
9aaa154
Add collapsible tree support to FilterableListSubView and entities tree
kube Mar 16, 2026
10a1f07
Add empty group messages and selectable variant to list rows
kube Mar 16, 2026
0f8c341
Add Experimental badge to entities tree view setting
kube Mar 16, 2026
d6c30e2
Add row menus to entities tree matching dedicated SubView menus
kube Mar 16, 2026
668de51
Find anything
kube Mar 16, 2026
d1dceed
All SubViews in LeftSidePanel expanded by default
kube Mar 16, 2026
9dc679a
Add group action buttons and renderGroupAction to tree items
kube Mar 16, 2026
f70eb49
Clean and update resizable dimensions
kube Mar 16, 2026
ac4670b
Animate subtree collapse/expand with CSS interpolate-size
kube Mar 16, 2026
e1ee5df
Tweak minHeights
kube Mar 16, 2026
90c92c9
Tweak Menu highlight color
kube Mar 17, 2026
c772ab6
Merge branch 'main' into cf/fe-512-create-filterablelistsubview-compo…
kube Mar 17, 2026
ca42c7e
Remove unused `fitContent` property from SubView type
kube Mar 17, 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 @@ -44,6 +44,7 @@
"@xyflow/react": "12.10.1",
"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
15 changes: 12 additions & 3 deletions libs/@hashintel/petrinaut/src/components/menu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,20 @@ const itemStyle = cva({
color: "neutral.s120",
cursor: "pointer",
_hover: {
backgroundColor: "neutral.s10",
backgroundColor: "neutral.s25",
},
_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 @@ -172,7 +178,10 @@ const triggerItemStyle = css({
cursor: "pointer",
justifyContent: "space-between",
_hover: {
backgroundColor: "neutral.s10",
backgroundColor: "neutral.s25",
},
_highlighted: {
backgroundColor: "neutral.bg.subtle.hover",
},
});

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
17 changes: 12 additions & 5 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 @@ -38,18 +40,18 @@ export interface SubView {
* Only affects vertical layout. Defaults to false.
*/
flexGrow?: boolean;
/**
* Minimum height for this section in the proportional layout (in pixels).
* Defaults to 100px.
*/
minHeight?: number;
/**
* Whether this is the main (primary) subview.
* When true, shows a non-collapsible header with a larger title style.
* The title and `renderHeaderAction` are displayed in the fixed header,
* 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 +62,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