@campaign-buddy/panel-layout
TypeScript icon, indicating that this package has built-in type declarations

2.1.5 • Public • Published

panel-chrome

This package is responsible for the panel layout in campaign buddy. It renders components in a resizable grid layout where each cell in the grid is a tabbed panel that contains one or more panes and renders the active pane.

TODO

  • [ ] Drop zones
  • [ ] Tab overflow logic
  • [ ] Actual pane rendering (and URI format)
  • [ ] Blank tab logic
  • [ ] Closing tabs
  • [ ] Fixing default sizing logic for new panels

In scope for this component

  • Rendering a grid layout
  • Providing a model that represents a panel layout
  • Providing an API for manipulating a layout at arbitrary levels in the consumer's render tree (within our outside of the panel layout component e.g. a top level app toolbar)
  • Rendering a tabbed layout in each grid cell with default tab rendering that can be extended by consumers for more complex tab use cases (e.g. tabs with app specific hover behaviors)
  • Providing an API for pane components to update the text of the tab
  • Providing width/height to pane components
  • Providing a standard pattern/API for serializing pane state in saved layouts via URIs
  • Resizing and drag and drop logic

Out of scope for this component

  • Rendering specific panes
  • Campaign buddy or other consumer specific logic

Definitions

  • Panel layout: A grid of resizable panels
  • Panel: A cell within the panel layout grid which can be resized horizontally or vertically. It renders a tab bar at the top and the active pane (the component for which is defined by the consumer)
  • Pane: A consumer supplied component that can be rendered into the grid when it is active in a panel. Panes can be dragged into other panels by dragging they're associated tab.

Pane uris

  • Panes are identified via URIs that take the following

Readme

Keywords

none

Package Sidebar

Install

npm i @campaign-buddy/panel-layout

Weekly Downloads

2

Version

2.1.5

License

MIT

Unpacked Size

488 kB

Total Files

105

Last publish

Collaborators

  • josephdangerstewart