The dashboard component exists as a working prototype but is not production-ready. It lacks comprehensive tests, has no documentation, incomplete Storybook coverage, and missing accessibility considerations. This story brings the component up to the quality bar expected of a reusable library component, matching the standard set by declarative-table-card and other shipped components.
Acceptance Criteria:
Testing:
Storybook:
The dashboard component exists as a working prototype but is not production-ready. It lacks comprehensive tests, has no documentation, incomplete Storybook coverage, and missing accessibility considerations. This story brings the component up to the quality bar expected of a reusable library component, matching the standard set by
declarative-table-cardand other shipped components.Acceptance Criteria:
Testing:
configinputenterEditMode()→saveEdit()andenterEditMode()→cancelEdit()(snapshot restore)removeCard(id)removes the card from the modelremoveSection(id)removes the section AND cascades removal of all cards with matchingsectionIdonCardsAdded(cards)appends cards with generated IDslooseCards,sectionCards,addedComponentscard.componentis providedcomponentInputsas properties on the rendered elementeditModegrid-column,grid-row) fromcolSpan/rowSpanng-contentprojection when no component is specifiededitModeandsection.editableremoveSection,removeCardconfirmAdd()emits only newly selected cardsCUSTOM_ELEMENTS_SCHEMA)npm run testStorybook:
Defaultstory is reviewed and kept as the primary demoargTypescontrols for all inputs, allowing interactive property editing in Storybook