Collapsible
Bootstrap 2.3.2 Collapsible: Root, Trigger, Content and inherited Base disclosure semantics.
Bootstrap 2.3.2 Collapsible contains three real Proto UI prototypes: Root, Trigger and Content. Each consumes its matching Base Collapsible hook. Root remains the sole expansion owner; this family changes presentation only. This is a draft, independently maintained design projection.
Use the preview toolbar’s real family Select to choose WC, React, Vue or Vue 2. The page header preference remains available and synchronizes the selected runtime.
Try the protocol
Section titled “Try the protocol”The demo uses the library prototypes in all four Web adapters. The first disclosure starts closed and detaches its content view. The second starts open and retains a hidden view after closing. The third is disabled while open. The fourth stays closed after a request until you activate Accept. That acceptance button is a separate application action, never a second interaction owner inside Trigger.
Three parts, one state owner
Section titled “Three parts, one state owner”- Root:
open?,defaultOpen?,disabled?; exposesopen, request methodsopenCollapsible,close,toggle, andopenChangewith{ open, reason }. - Trigger:
disabled?; inherits expanded, effective disabled, hover, press, focused and focus-visible states, button accessibility, natural Tab order, Enter/Space activation and guardedfocusSelf. - Content:
keepMounted?; inherits derivedopen/hidden, role-neutral content and L1 view presence. Closing does not dispose the logical instance. Detached native child/view state is not promised.
Supply exactly one Trigger and one Content in the Root’s own anatomy domain. Nested and adjacent disclosures retain independent ownership. Controlled requests never change canonical expansion until the owner supplies a new open; ignored requests stay ignored. Disabled suppresses requests without closing already open content. There is no heading prerequisite, Accordion selection, arrow-key navigation, region landmark, automatic focus movement or Overlay.
Presentation and small screens
Section titled “Presentation and small screens”The primitives use bounded width, shrinkable layout, wrapping long words, scalable padding and no fixed content height. Focus and disabled appearance consume Base states. Keep enough surrounding room for the focus ring and, in Neobrutalist, its hard shadow and translated pointer envelope. The demo includes a long label and unbroken content word; browser acceptance checks 320px width, 200% root text size and both light and dark themes. Source/simulated-DOM passes do not establish these paint or native-input results.
The visual reference is specifically Bootstrap 2.3.2: 4px group corners, 8px/15px trigger spacing and 9px/15px content spacing with a top border. This projection has independent Base disclosure semantics; it imports neither the jQuery Collapse plugin nor Accordion group ownership, and does not reproduce its height animation. The 15px/9px reference values are expressed as 0.9375rem/0.5625rem at a 16px root size, so padding scales with text. The Apache 2.0 notice and license stay with the source.
Consume
Section titled “Consume”This package remains private, unpublished workspace source. Import its source prototypes into a workspace and use the desired adapter. Internal facade generation requires explicit workspace source mode; the public installed-consumer CLI refuses this entry. No registry publication is implied.
import { collapsibleRoot, collapsibleTrigger, collapsibleContent,} from '@proto.ui/prototypes-bootstrap-2-3-2/collapsible';Keep the same three-part composition when adapting the exported prototypes. The Base protocol describes the shared request and lifecycle guarantees.
Evidence and references
Section titled “Evidence and references”Four-adapter synthetic-DOM and compiler mappings are separate from registered browser journeys, screenshots, native GPUI execution and independent stable admission. Unexecuted host evidence remains an acceptance gap.