spec.md 3.4 KB

ADDED Requirements

Requirement: Provide a configurable bins container component

The system SHALL provide a binsContainerComponent that renders a drawer shell and its internal bins in the current Vue 3 + TresJS component service.

Scenario: Render the component with default settings

  • WHEN the component is loaded from src/dcsConfig.ts with default props
  • THEN it MUST render a visible drawer shell and at least one internal bin

Scenario: Keep the component within the default preview camera range

  • WHEN drawer and bin values use millimeter-style defaults from the reference project
  • THEN the component MUST still remain visible in the existing preview scene without modifying the shared preview views

Requirement: Preserve reference drawer settings behavior

The component MUST preserve the functional meaning of the reference project's box settings.

Scenario: Update drawer dimensions

  • WHEN a developer changes width, height, or depth
  • THEN the drawer shell size and available bin layout area MUST update accordingly

Requirement: Preserve reference bin settings behavior

The component MUST preserve the functional meaning of the reference project's bin settings.

Scenario: Update bin geometry settings

  • WHEN a developer changes radius or thickness
  • THEN each rendered bin MUST update its corner rounding and wall thickness representation

Scenario: Update layout spacing settings

  • WHEN a developer changes divideWidth, divideDepth, outerGap, or innerGap
  • THEN bin layout dimensions and spacing MUST update without breaking rendering

Requirement: Preserve recursive and grid generation settings

The component MUST support both generation modes from the reference project.

Scenario: Use recursive generation

  • WHEN generationType is set to Recursive
  • THEN the component MUST generate bins using recursive subdivision controlled by iterations, divideWidth, and divideDepth

Scenario: Use grid generation

  • WHEN generationType is set to Grid
  • THEN the component MUST generate bins using row/column subdivision controlled by rows and cols

Requirement: Support measurement visibility toggling

The component MUST support the reference project's measurement visibility behavior.

Scenario: Show measurements

  • WHEN showMeasurements is true
  • THEN the component MUST display width, height, and depth measurement labels around the drawer

Scenario: Hide measurements

  • WHEN showMeasurements is false
  • THEN the component MUST not render the measurement labels

Requirement: Support index number visibility toggling

The component MUST support the reference project's index-number visibility behavior.

Scenario: Show index numbers

  • WHEN showIndexNumbers is true
  • THEN each rendered bin MUST display its layout index number

Scenario: Hide index numbers

  • WHEN showIndexNumbers is false
  • THEN no bin index labels MUST be rendered

Requirement: Integrate through the shared component registration format

The component MUST follow the repository's unified dynamic-component configuration contract.

Scenario: Register without preview-entry customization

  • WHEN the component is added to the service
  • THEN it MUST be registered through src/dcsConfig.ts and MUST NOT require changes to src/views/previewEntry.vue or src/views/templateComponet.vue