Implements collapsed select rendering, dropdown overlay with optgroup/disabled support, click interaction (open/close/select), form submission, and Escape-to-close. Code review fixed: layout invalidation on selection change, select_states threading through fast paths, Escape key handling, form reset for selects, and added integration tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
82 lines
2.9 KiB
Plaintext
82 lines
2.9 KiB
Plaintext
LayoutBox node=#1 tag=html box=block
|
|
content: (0, 0, 800, 39.2)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
LayoutBox node=#6 tag=body box=block
|
|
content: (8, 8, 784, 23.2)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 8 8 8 8
|
|
inline_context: 1 lines, height=23.2, max_width=112.029366
|
|
line[0]: rect=(8, 8, 112.029366, 23.2) fragments=3
|
|
frag[0]: rect=(8, 8, 27.847282, 23.2) text=(none) start=false end=false
|
|
frag[1]: rect=(38.901615, 8, 29.09251, 23.2) text=(none) start=false end=false
|
|
frag[2]: rect=(71.048454, 8, 45.92658, 23.2) text=(none) start=false end=false
|
|
LayoutBox node=#7 tag=anonymous box=anon
|
|
content: (0, 0, 3.0543318, 16)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
text: " "
|
|
LayoutBox node=#8 tag=select box=inline-block
|
|
content: (10, 10, 23.847282, 19.2)
|
|
padding: 1 1 1 1
|
|
border: 1 1 1 1
|
|
margin: 0 0 0 0
|
|
inline_context: 1 lines, height=19.2, max_width=23.847282
|
|
line[0]: rect=(10, 10, 23.847282, 19.2) fragments=1
|
|
frag[0]: rect=(10, 11.6, 23.847282, 16) text="First" start=false end=false
|
|
LayoutBox node=#8 tag=anonymous box=anon
|
|
content: (0, 0, 0, 0)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
text: "First"
|
|
LayoutBox node=#19 tag=anonymous box=anon
|
|
content: (0, 0, 3.0543318, 16)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
text: " "
|
|
LayoutBox node=#20 tag=select box=inline-block
|
|
content: (40.901615, 10, 25.09251, 19.2)
|
|
padding: 1 1 1 1
|
|
border: 1 1 1 1
|
|
margin: 0 0 0 0
|
|
inline_context: 1 lines, height=19.2, max_width=25.09251
|
|
line[0]: rect=(40.901615, 10, 25.09251, 19.2) fragments=1
|
|
frag[0]: rect=(40.901615, 11.6, 25.09251, 16) text="Beta" start=false end=false
|
|
LayoutBox node=#20 tag=anonymous box=anon
|
|
content: (30.901615, 0, 0, 0)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
text: "Beta"
|
|
LayoutBox node=#31 tag=anonymous box=anon
|
|
content: (0, 0, 3.0543318, 16)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
text: " "
|
|
LayoutBox node=#32 tag=select box=inline-block
|
|
content: (73.048454, 10, 41.92658, 19.2)
|
|
padding: 1 1 1 1
|
|
border: 1 1 1 1
|
|
margin: 0 0 0 0
|
|
inline_context: 1 lines, height=19.2, max_width=41.92658
|
|
line[0]: rect=(73.048454, 10, 41.92658, 19.2) fragments=1
|
|
frag[0]: rect=(73.048454, 11.6, 41.92658, 16) text="Banana" start=false end=false
|
|
LayoutBox node=#32 tag=anonymous box=anon
|
|
content: (63.048454, 0, 0, 0)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
text: "Banana"
|
|
LayoutBox node=#49 tag=anonymous box=anon
|
|
content: (0, 0, 3.0543318, 16)
|
|
padding: 0 0 0 0
|
|
border: 0 0 0 0
|
|
margin: 0 0 0 0
|
|
text: " "
|