"""FT spec for the Bud btn sprint — post.html bottom-left handshake button.
Written red BEFORE implementation as a TDD handoff so the post-compaction
agent (or future Disco) can land the feature without losing intent. Run:
python src/manage.py test functional_tests.test_bud_btn
All tests should be RED initially. Implementation lands when they go green.
────────────────────────────────────────────────────────────────────────────
SPEC SUMMARY
────────────────────────────────────────────────────────────────────────────
• A new #id_bud_btn () sits bottom-left
of the viewport — mirror of #id_kit_btn (bottom-right). Shares the same
fixed/circular/secUser-bordered look + .active-state styling.
• Lives in a partial template, e.g. apps/billboard/_partials/_bud_panel.html,
included only by post.html (NOT the global base.html — bud is post-only).
• Replaces the inline share form on post.html: typing the recipient now
happens in a slide-out under the bud btn.
• Click #id_bud_btn → recipient field grows L→R under it, spanning
`100vw - 3rem` (1.5rem padding each side). The field is vertically
centred on the bud btn's centre, w. healthy left padding so the typed
text + placeholder don't overlap the btn glyph.
• An OK btn (.btn.btn-confirm) is tacked on the trailing edge of the
field (replaces the legacy big SHARE .btn-primary).
• While the recipient field is open: html.bud-open is set; #id_kit_btn
quickly eases to opacity 0. Symmetric: when html.kit-open is set,
#id_bud_btn eases to opacity 0.
• Click OK → POST share-post async (existing C3.b endpoint), clears the
field, closes the slide-out, slide-down Brief banner appears.
• Click outside the field/btn → closes the slide-out, clears the field
(no Brief). Reopening shows the placeholder, not the prior typed value.
• Escape key closes the slide-out (same as kit btn pattern).
• post.html + my_posts.html should be aperture-styled (body.page-billboard
or new body.page-post if needed; the user noted post.html isn't
currently in the base/applet scss aperture group).
────────────────────────────────────────────────────────────────────────────
IMPLEMENTATION CHECKLIST (post-compaction)
────────────────────────────────────────────────────────────────────────────
1. Create templates/apps/billboard/_partials/_bud_panel.html w. the btn
+ slide-out form + inline JS.
2. Edit templates/apps/billboard/post.html:
- Drop the inline `