Skip to content

Commit 79bafd6

Browse files
hover has issues
1 parent 18a13e3 commit 79bafd6

32 files changed

+812
-208
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ license = "MIT"
9292
name = "boxmux"
9393
readme = "README.md"
9494
repository = "https://github.com/jowharshamshiri/boxmux"
95-
version = "0.235.291695"
95+
version = "0.236.296107"
9696

9797
[package.metadata.deb]
9898
assets = [["target/release/boxmux", "usr/bin/", "755"], ["README.md", "usr/share/doc/boxmux/README", "644"], ["examples/*", "usr/share/doc/boxmux/examples/", "644"]]

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ boxmux my-interface.yaml
231231
- **Content Boxes**: Display static or dynamic text with multi-line support
232232
- **Interactive Menus**: Navigate and select options with keyboard controls and mouse clicks
233233
- **Chart Boxes**: Unicode-based visualizations (bar, line, histogram) with responsive layout
234-
- **Table Boxes**: Structured data with CSV/JSON parsing, sorting, filtering, pagination, clickable headers
234+
- **Table Boxes**: Structured data with CSV/JSON parsing, sorting, filtering, pagination, sensitive headers
235235
- **PTY Boxes**: Interactive terminal applications (vim, htop, ssh) with keyboard input routing
236236
- **Plugin Boxes**: Dynamic components with security validation and manifest loading
237237
- **Variable Boxes**: Template-driven content with hierarchical variable substitution
@@ -495,7 +495,7 @@ app:
495495
3,8
496496
4,20
497497
498-
# Table with sorting and filtering (clickable headers)
498+
# Table with sorting and filtering (sensitive headers)
499499
- id: 'data_table'
500500
title: 'System Data (Click headers to sort)'
501501
table_config:

docs/src/content/advanced-features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ app:
3838
layouts:
3939
- id: 'interactive'
4040
children:
41-
- id: 'clickable_menu'
41+
- id: 'sensitive_menu'
4242
title: 'Actions (Click to Execute)'
4343
choices:
4444
- id: 'deploy'

docs/src/content/configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ app:
345345
layouts:
346346
- id: 'main'
347347
children:
348-
- id: 'clickable_menu'
348+
- id: 'sensitive_menu'
349349
title: 'Click to Execute'
350350
choices:
351351
- id: 'action1'

docs/src/content/interactive-ui.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ BoxMux provides comprehensive mouse-driven interface manipulation, allowing user
2121
**Interactive Features:**
2222
- **Box resizing** by dragging corners
2323
- **Box movement** by dragging title bars
24-
- **Scrolling** with clickable scrollbars and drag-to-scroll
24+
- **Scrolling** with sensitive scrollbars and drag-to-scroll
2525
- **Dynamic cursor styles** that change based on interaction zones
2626
- **Real-time YAML synchronization** for persistent changes
2727
- **Performance optimizations** for smooth interactions
@@ -86,7 +86,7 @@ Move boxes by clicking and dragging the **title bar** or **top border**:
8686

8787
## Scrolling Interactions
8888

89-
### Clickable Scrollbars
89+
### Sensitive Scrollbars
9090
Click scrollbar areas to jump to specific positions:
9191

9292
```yaml
@@ -128,7 +128,7 @@ The cursor automatically changes based on the mouse position to indicate availab
128128
|--------------|------------------|---------|
129129
| **■ (BlinkingBlock)** | Bottom-right corner | Box resizing |
130130
| **_ (BlinkingUnderScore)** | Title bar/top border | Box movement |
131-
| **\| (BlinkingBar)** | Clickable choices/buttons | Interactive elements |
131+
| **\| (BlinkingBar)** | Sensitive choices/buttons | Interactive elements |
132132
| **→ (DefaultUserShape)** | Default areas | No special interaction |
133133

134134
### Edge Case Handling

layouts/mouse_click_demo.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ app:
7373
border_color: 'cyan'
7474
selected_border_color: 'bright_cyan'
7575

76-
# Menu box with clickable choices
77-
- id: "clickable_menu"
78-
title: "Clickable Menu - Click on Choices"
76+
# Menu box with sensitive choices
77+
- id: "sensitive_menu"
78+
title: "Sensitive Menu - Click on Choices"
7979
position:
8080
x1: "0"
8181
y1: "50"

layouts/test_100_width.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ app:
1313
content: |
1414
This panel extends to 100% width.
1515
Try clicking and dragging at the bottom-right corner to resize.
16-
The resize corner should be clickable at the rightmost edge.
16+
The resize corner should be sensitive at the rightmost edge.
1717
1818
If the resize doesn't work, the issue is in the mouse event handling,
1919
not the coordinate detection (which tests confirm works correctly).

schemas/app_schema.json

Lines changed: 121 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,18 @@
141141
{
142142
"type": "array",
143143
"items": {
144-
"type": "string"
144+
"oneOf": [
145+
{
146+
"type": "string",
147+
"description": "Script command as string"
148+
},
149+
{
150+
"type": "object",
151+
"description": "Script command as key-value pairs for structured commands"
152+
}
153+
]
145154
},
146-
"description": "Array of script commands"
155+
"description": "Array of script commands (strings or objects)"
147156
}
148157
],
149158
"description": "Script to execute when choice is selected"
@@ -369,6 +378,39 @@
369378
"$ref": "#/definitions/color_name",
370379
"description": "Selected menu background color"
371380
},
381+
"highlighted_menu_fg_color": {
382+
"$ref": "#/definitions/color_name",
383+
"description": "Menu text color when highlighted/hovered"
384+
},
385+
"highlighted_menu_bg_color": {
386+
"$ref": "#/definitions/color_name",
387+
"description": "Menu background color when highlighted/hovered"
388+
},
389+
"highlighted_border_color": {
390+
"$ref": "#/definitions/color_name",
391+
"description": "Border color when highlighted/hovered"
392+
},
393+
"highlighted_bg_color": {
394+
"$ref": "#/definitions/color_name",
395+
"description": "Background color when highlighted/hovered"
396+
},
397+
"highlighted_fg_color": {
398+
"$ref": "#/definitions/color_name",
399+
"description": "Foreground color when highlighted/hovered"
400+
},
401+
"highlighted_title_bg_color": {
402+
"$ref": "#/definitions/color_name",
403+
"description": "Title background color when highlighted/hovered"
404+
},
405+
"highlighted_title_fg_color": {
406+
"$ref": "#/definitions/color_name",
407+
"description": "Title text color when highlighted/hovered"
408+
},
409+
"highlighted_fill_char": {
410+
"type": "string",
411+
"maxLength": 1,
412+
"description": "Fill character when highlighted/hovered"
413+
},
372414
"redirect_output": {
373415
"type": "string",
374416
"description": "ID of box to redirect script output to"
@@ -386,9 +428,18 @@
386428
{
387429
"type": "array",
388430
"items": {
389-
"type": "string"
431+
"oneOf": [
432+
{
433+
"type": "string",
434+
"description": "Script command as string"
435+
},
436+
{
437+
"type": "object",
438+
"description": "Script command as key-value pairs for structured commands"
439+
}
440+
]
390441
},
391-
"description": "Array of script commands to execute"
442+
"description": "Array of script commands (strings or objects)"
392443
}
393444
],
394445
"description": "Script commands to execute for box content"
@@ -593,6 +644,39 @@
593644
"$ref": "#/definitions/color_name",
594645
"description": "Selected menu background color"
595646
},
647+
"highlighted_menu_fg_color": {
648+
"$ref": "#/definitions/color_name",
649+
"description": "Menu text color when highlighted/hovered"
650+
},
651+
"highlighted_menu_bg_color": {
652+
"$ref": "#/definitions/color_name",
653+
"description": "Menu background color when highlighted/hovered"
654+
},
655+
"highlighted_border_color": {
656+
"$ref": "#/definitions/color_name",
657+
"description": "Border color when highlighted/hovered"
658+
},
659+
"highlighted_bg_color": {
660+
"$ref": "#/definitions/color_name",
661+
"description": "Background color when highlighted/hovered"
662+
},
663+
"highlighted_fg_color": {
664+
"$ref": "#/definitions/color_name",
665+
"description": "Foreground color when highlighted/hovered"
666+
},
667+
"highlighted_title_bg_color": {
668+
"$ref": "#/definitions/color_name",
669+
"description": "Title background color when highlighted/hovered"
670+
},
671+
"highlighted_title_fg_color": {
672+
"$ref": "#/definitions/color_name",
673+
"description": "Title text color when highlighted/hovered"
674+
},
675+
"highlighted_fill_char": {
676+
"type": "string",
677+
"maxLength": 1,
678+
"description": "Fill character when highlighted/hovered"
679+
},
596680
"error_border_color": {
597681
"$ref": "#/definitions/color_name",
598682
"description": "Border color in error state"
@@ -747,6 +831,39 @@
747831
"$ref": "#/definitions/color_name",
748832
"description": "Selected menu background color"
749833
},
834+
"highlighted_menu_fg_color": {
835+
"$ref": "#/definitions/color_name",
836+
"description": "Menu text color when highlighted/hovered"
837+
},
838+
"highlighted_menu_bg_color": {
839+
"$ref": "#/definitions/color_name",
840+
"description": "Menu background color when highlighted/hovered"
841+
},
842+
"highlighted_border_color": {
843+
"$ref": "#/definitions/color_name",
844+
"description": "Border color when highlighted/hovered"
845+
},
846+
"highlighted_bg_color": {
847+
"$ref": "#/definitions/color_name",
848+
"description": "Background color when highlighted/hovered"
849+
},
850+
"highlighted_fg_color": {
851+
"$ref": "#/definitions/color_name",
852+
"description": "Foreground color when highlighted/hovered"
853+
},
854+
"highlighted_title_bg_color": {
855+
"$ref": "#/definitions/color_name",
856+
"description": "Title background color when highlighted/hovered"
857+
},
858+
"highlighted_title_fg_color": {
859+
"$ref": "#/definitions/color_name",
860+
"description": "Title text color when highlighted/hovered"
861+
},
862+
"highlighted_fill_char": {
863+
"type": "string",
864+
"maxLength": 1,
865+
"description": "Fill character when highlighted/hovered"
866+
},
750867
"border": {
751868
"type": "boolean",
752869
"description": "Whether to draw border around layout"

0 commit comments

Comments
 (0)