Behive Tech Registry

Drawer

v0.4.0

A `Card` docked to one edge of the viewport as a slide-in panel, built on [Radix `Dialog`](https://www.radix-ui.com/primitives/docs/components/dialog) for focus trapping, Escape-to-close, and outside-click-to-close. It has no opinion on what goes inside the panel — an optional `title` renders a header with a close button, otherwise just the `children` are shown.

pnpm add @behivetech/atoms.drawer

Published to GitHub Packages

Set GITHUB_PACKAGES_TOKEN to list published versions. The repo is at v0.4.0.

Changelog

v0.4.0

Minor Changes

  • a7bf591: Restyle to Material Design 3. Colors, type, shape, elevation and motion now come from --md-sys-* tokens, and each one falls back to the pre-MD3 --color-* name. Hardcoded brand colors and filter: brightness() are gone, so components follow the theme in both light and dark.

    Interaction

    • Hover, focus and press show a translucent layer of the content color.
    • Interactive controls get a :focus-visible ring.
    • Small controls get a 48px touch target without changing their drawn size.

    Props and component sizes are unchanged.

    Visible changes

    • Buttons are pill-shaped.
    • Text fields are outlined with a transparent fill.
    • FormField labels use body-small type.
    • Tooltips and toasts use the inverse surface.
    • Modal has no outline and 28px corners.
    • The hero headline is display-medium at regular weight.
    • Sidebar and NavItem no longer read cms-admin's --admin-sidebar-* variables.

    Fixes: these never matched and now work:

    • The NavItem active state.
    • Spinner sizes.
    • Button icon-only widths.
    • Table row dividers.

    Specificity: modifier styles now use .BHT__X--mod.BHT__X (0-2-0). A single-class className override of a modifier-controlled property needs matching specificity to win.

  • a7bf591: Add a scrollableBody prop to Card, and fix selectors that never matched.

    • New prop: scrollableBody keeps the header fixed and scrolls only the body when the card has a bounded height.
    • Modal and Drawer now use scrollableBody instead of styling Card's internal classes.
    • Fix: Card's padding prop and its interactive-body styles now apply. Their selectors were missing the BHT__ prefix and matched nothing.
    • Fix: Modal bodies now scroll.
    • Fix: Drawer's left/right and top/bottom panel sizing now applies.

    If your app patched these bugs itself (for example with .BHT__Card--padding-md .BHT__Card__body-padding overrides), those patches are no longer needed after upgrading.

Patch Changes

  • Updated dependencies [a7bf591]
  • Updated dependencies [a7bf591]
  • Updated dependencies [a7bf591]
    • @behivetech/atoms.button@0.4.0
    • @behivetech/atoms.card@0.4.0
    • @behivetech/atoms.icon@0.3.0

v0.3.5

Patch Changes

  • 87efc37: Import the close glyph directly rather than through <Icon name>. The name-keyed Icon component is a runtime registry lookup, so no bundler can tell which glyphs are reachable — importing it pulled all 22 icons into every consumer of Modal or Drawer (and, downstream, ConfirmDialog) to render a single close button. CloseIcon is a static import that tree-shakes to one glyph. No visual or API change.

v0.3.4

Patch Changes

  • Updated dependencies [e092644]
    • @behivetech/atoms.icon@0.2.4

v0.3.3

Patch Changes

  • f8c57db: Generate TypeScript declarations once per build instead of once per format.

    dist/index.d.cts is no longer emitted. Nothing referenced it: each package's exports["."].types points at dist/index.d.ts, which is unchanged and still covers both the import and require conditions. There are no API, type, or runtime changes.

  • Updated dependencies [f8c57db]

    • @behivetech/atoms.button@0.3.1
    • @behivetech/atoms.card@0.3.1
    • @behivetech/atoms.icon@0.2.3

v0.3.2

Patch Changes

  • Updated dependencies [b98ff2a]
    • @behivetech/atoms.icon@0.2.2

v0.3.1

Patch Changes

  • Updated dependencies [0e22d45]
    • @behivetech/atoms.icon@0.2.1

v0.3.0

Minor Changes

  • 08d7dd6: class names are namespaced with a BHT__ prefix, and sizing moves to rem

Patch Changes

  • Updated dependencies [08d7dd6]
    • @behivetech/atoms.button@0.3.0
    • @behivetech/atoms.card@0.3.0
    • @behivetech/atoms.icon@0.2.0

v0.2.2

Patch Changes

  • d0111c4: transient layers (dropdown, toast, tooltip) now stack above surfaces

    --z-dropdown moves 100 to 450 so Select and DropdownMenu popups render above Modal (400) and sticky headers (200). Every overlay atom portals its content to document.body, so a popup is a sibling of the modal that spawned it rather than a descendant, and raw z-index is the only thing ordering them. Inline fallbacks are corrected too, for consumers importing an atom's CSS without base-styles' tokens.

v0.2.1

Patch Changes

  • e634291: Fixed modal component and updates to others
  • Updated dependencies [e634291]
    • @behivetech/atoms.card@0.2.2
    • @behivetech/atoms.icon@0.1.2

v0.2.0

Minor Changes

  • 775262e: 55-58: File manager, theme editor, component catalog, site settings

Patch Changes

  • Updated dependencies [775262e]
    • @behivetech/atoms.card@0.2.1
    • @behivetech/atoms.icon@0.1.1

v0.1.1

Patch Changes

  • Updated dependencies [86c5d3b]
    • @behivetech/atoms.button@0.2.1

v0.1.0

Minor Changes

  • 210f9a4: 36: Move editor, registry, and renderer into cms-admin

Patch Changes

  • cbe4e02: 36: MCP server, agents and other various fix
  • Updated dependencies [210f9a4]
  • Updated dependencies [cbe4e02]
    • @behivetech/atoms.button@0.2.0
    • @behivetech/atoms.card@0.2.0
    • @behivetech/atoms.icon@0.1.0
    • @behivetech/get-class-name@0.0.6