Skip to content

feat(map): a shelving unit sized by width, depth, height and shelves - #538

Merged
ibrahimroshdy merged 6 commits into
mainfrom
feat/shape-shelving-unit
Nov 13, 2026
Merged

ibrahimroshdy merged 6 commits into
mainfrom
feat/shape-shelving-unit

Conversation

@ibrahimroshdy

Copy link
Copy Markdown
Collaborator

A shelving unit sized by width, depth, height and number of shelves, from the request in #485.

Closes #485.

  • shelving_unit, a sized shape like cube storage and the tall bookcase: the numbers ride in the stored model (shelving_unit_120x60x200_4), so the layout format, API and database check are unchanged (the longest key fits the 40-character check).
  • Width 30 to 240 cm, depth 15 to 80, height 40 to 300; shelves from 2 up to one every 15 cm of height, 12 at most. It starts at 90 x 50 x 180 cm with 5 shelves.
  • Four steel posts and pine shelves, the bottom shelf 8 cm off the floor, the top level with the posts.
  • The shape card has Width, Depth, Height (inches in imperial) and Shelves.
  • Furniture whose shelf count matches gets one compartment per shelf.
  • Search words in every language: shelving unit, storage shelf, garage shelving, pantry shelf and the like. Plain "shelving" suggests this shape and the metal shelf without picking either. No brand names.

Not in this PR

The "Shelving unit" furniture template is still drawn as a bookcase: the map only knows a layout's kind, not which template made it. That needs a small server change; until then, pick "Shelving unit" on the card.

Definition of done

  • Tests: written first. Shared (sizes, keys, limits, rejected keys, words, search), sized.test.ts (posts, spacing, one space per shelf), compartments.test.ts, size.test.tsx, the server layout test (stores the key, refuses bad ones) and history (a resize).
  • Docs: map-shapes.mdx and location-map.mdx in every language, and the sized-shapes table in add-a-shape.md.
  • Catalogues: the name and the Shelves field in every language.
  • KEPT_* settings: n/a.
  • Security-relevant: no.
  • Roadmap: Shape: Storage shelving unit sized by width, depth, height and shelves (like IKEA IVAR) #485 on 1.14.8.

Merges before or after the water purifier; whichever goes second regenerates the sprite (node apps/web/scripts/render-map-thumbs.mjs).

@ibrahimroshdy
ibrahimroshdy requested a review from a team as a code owner November 12, 2026 13:42
@ibrahimroshdy ibrahimroshdy added this to the 1.14.8 milestone Nov 12, 2026
@ibrahimroshdy ibrahimroshdy added the area: map The 3D location map label Nov 12, 2026
@ibrahimroshdy
ibrahimroshdy force-pushed the feat/shape-shelving-unit branch from f9f2017 to 986f4de Compare November 12, 2026 18:00
…485)

A new sized shape beside the cube storage and the tall bookcase: four
steel posts and its shelves, open on every side, the bottom shelf 8 cm
off the floor and the top one level with the posts. Its card takes
Width, Depth and Height (30 to 240, 15 to 80 and 40 to 300 cm, inches
in imperial) and Shelves, two at least and one every 15 cm at most;
it starts at 90 x 50 x 180 cm with 5. The node's model carries the
numbers (shelving_unit_120x60x200_4), so the layout, API and database
check are unchanged.

Furniture whose shelves match is drawn with a compartment on each
shelf, the top one above it. It answers to shelving unit, storage
shelf, garage and pantry shelving and their words in each language;
plain "shelving" now suggests it beside the metal shelf.

Signed-off-by: Ibrahim Roshdy <22573766+ibrahimroshdy@users.noreply.github.com>
Signed-off-by: Ibrahim Roshdy <22573766+ibrahimroshdy@users.noreply.github.com>
…ery catalogue (#485)

Signed-off-by: Ibrahim Roshdy <22573766+ibrahimroshdy@users.noreply.github.com>
… its compartment tests can fail (#485)

Signed-off-by: Ibrahim Roshdy <22573766+ibrahimroshdy@users.noreply.github.com>
…es and inches in every language (#485)

Signed-off-by: Ibrahim Roshdy <22573766+ibrahimroshdy@users.noreply.github.com>
…namese (#485)

Signed-off-by: Ibrahim Roshdy <22573766+ibrahimroshdy@users.noreply.github.com>
@ibrahimroshdy
ibrahimroshdy force-pushed the feat/shape-shelving-unit branch from 986f4de to 4394d1d Compare November 13, 2026 00:42
@ibrahimroshdy
ibrahimroshdy merged commit b3916f4 into main Nov 13, 2026
21 checks passed
@ibrahimroshdy
ibrahimroshdy deleted the feat/shape-shelving-unit branch November 13, 2026 00:57
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area: map The 3D location map

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shape: Storage shelving unit sized by width, depth, height and shelves (like IKEA IVAR)

1 participant