From 74e18a36c590a64b073953036c715308d970ee43 Mon Sep 17 00:00:00 2001 From: "Caraveo Cabrera, Luis Humberto" Date: Fri, 27 Mar 2026 15:03:45 -0600 Subject: [PATCH 1/2] feat(storybook): updated stories to csf3 matching from knapsack --- .../src/side-sheet/side-sheet.stories.js | 152 +++++---- .../src/skeleton/skeleton.stories.js | 102 ++++-- libs/components/src/slider/slider.stories.js | 72 ++-- .../src/snackbar/snackbar.stories.js | 26 +- .../status-dialog/status-dialog.stories.js | 165 ++++++--- .../status-header/status-header.stories.js | 108 +++--- libs/components/src/switch/switch.stories.js | 61 +++- libs/components/src/tab/tab.stories.js | 104 +++++- .../src/text-lockup/text-lockup.stories.js | 54 +-- .../src/textarea/textarea.stories.js | 127 +++++-- .../src/textfield/textfield.stories.js | 208 +++++++++--- .../components/src/toolbar/toolbar.stories.js | 30 +- .../components/src/tooltip/tooltip.stories.js | 92 ++--- .../src/top-app-bar/top-app-bar.stories.js | 19 +- .../src/tree-list/tree-list.stories.js | 313 +++++++++++------- .../src/typography/typography.stories.js | 15 +- .../stories/demos/top-app-bar.component.js | 6 +- 17 files changed, 1127 insertions(+), 527 deletions(-) diff --git a/libs/components/src/side-sheet/side-sheet.stories.js b/libs/components/src/side-sheet/side-sheet.stories.js index 5a2d7b45f0..ccdcfe0d35 100644 --- a/libs/components/src/side-sheet/side-sheet.stories.js +++ b/libs/components/src/side-sheet/side-sheet.stories.js @@ -4,57 +4,31 @@ import { Active as ActiveStatusHeader } from '../status-header/status-header.sto import tableRowSelectionContent from '../../stories/demos/table-row-selection.content.html?raw'; import '../data-table/data-table.stories.scss'; -export default { - title: 'Components/Side sheet', - argTypes: { - onClick: { action: 'clicked' }, - width: { control: { type: 'number' } }, - }, - args: { - width: 800, - }, - parameters: { - actions: { - handles: ['click cv-button'], - }, - }, - tags: ['autodocs'], -}; - -export const Basic = ({ width }) => { +const attachSideSheetToggle = ({ + triggerSelector, + sideSheetSelector, + childTriggerSelector, + childSideSheetSelector, +}) => { document.addEventListener( 'DOMContentLoaded', () => { - const sideSheet = document.querySelector('cv-side-sheet'); + const sideSheet = document.querySelector(sideSheetSelector); + document - .querySelector('cv-button') + .querySelector(triggerSelector) ?.addEventListener('click', () => sideSheet?.open ? sideSheet.close() : sideSheet?.show(), ); - }, - { once: true }, - ); - return ` - Open side sheet - - - `; -}; -export const Multiple = ({ width }) => { - document.addEventListener( - 'DOMContentLoaded', - () => { - const sideSheet = document.querySelector('#parentSideSheet'); - const childSideSheet = document.querySelector('#childSideSheet'); + if (!childTriggerSelector || !childSideSheetSelector) { + return; + } + + const childSideSheet = document.querySelector(childSideSheetSelector); document - .querySelector('#parentTarget') - ?.addEventListener('click', () => - sideSheet?.open ? sideSheet.close() : sideSheet?.show(), - ); - document - .querySelector('#childTarget') + .querySelector(childTriggerSelector) ?.addEventListener('click', () => childSideSheet?.open ? childSideSheet.close() @@ -63,38 +37,84 @@ export const Multiple = ({ width }) => { }, { once: true }, ); +}; + +const renderSingleSideSheet = ({ + heading = 'Sample side sheet', + open = false, + pushed = false, + noPadding = false, + width, + content = '', +}) => { + attachSideSheetToggle({ + triggerSelector: 'cv-button', + sideSheetSelector: 'cv-side-sheet', + }); + + return ` + ${ + width + ? `` + : '' + } + Open side sheet + + ${content} + + `; +}; + +const renderMultipleSideSheets = () => { + attachSideSheetToggle({ + triggerSelector: '#parentTarget', + sideSheetSelector: '#parentSideSheet', + childTriggerSelector: '#childTarget', + childSideSheetSelector: '#childSideSheet', + }); + return ` Open side sheet - + Open child - + `; }; -export const StatusHeader = ({ width }) => { - document.addEventListener( - 'DOMContentLoaded', - () => { - const sideSheet = document.querySelector('cv-side-sheet'); - console.log(sideSheet); - document - .querySelector('cv-button') - ?.addEventListener('click', () => - sideSheet?.open ? sideSheet.close() : sideSheet?.show(), - ); +export default { + title: 'Components/Side sheet', + argTypes: { onClick: { action: 'clicked' } }, + parameters: { + actions: { + handles: ['click cv-button'], }, - { once: true }, - ); - return ` - Open side sheet - - ${ActiveStatusHeader({ - state: 'active', - title: 'Example status from a side sheet', - })} - ${tableRowSelectionContent} - - `; + }, + tags: ['autodocs'], +}; + +export const Basic = { + render: renderSingleSideSheet, +}; + +export const Multiple = { + render: renderMultipleSideSheets, +}; + +export const StatusHeader = { + render: renderSingleSideSheet, + args: { + noPadding: true, + width: '800px', + content: `${ActiveStatusHeader({ + state: 'active', + title: 'Example status from a side sheet', + })} + ${tableRowSelectionContent}`, + }, }; diff --git a/libs/components/src/skeleton/skeleton.stories.js b/libs/components/src/skeleton/skeleton.stories.js index 4a5cfbbc95..2621f935bc 100644 --- a/libs/components/src/skeleton/skeleton.stories.js +++ b/libs/components/src/skeleton/skeleton.stories.js @@ -7,47 +7,47 @@ import tableProgressContent from '../../stories/demos/table-progress-indicator.c import 'skeleton-elements/css'; -export default { - title: 'Components/Skeleton', - tags: ['autodocs'], +const applySkeletonClasses = (elements) => { + Array.from(elements).forEach((element) => { + element.classList.add(skeletonClsName); + element.classList.add(skeletonEffect); + }); }; -const skeletonClsName = 'skeleton-text'; -const skeletonEffect = 'skeleton-effect-fade'; - -export const DataTable = () => { +const createSkeletonContainer = (content, applySkeleton) => { const container = document.createElement('div'); - container.innerHTML = tableProgressContent; - const tableCell = container.getElementsByClassName('mdc-data-table__cell'); - Array.from(tableCell).forEach((cell) => { - cell.classList.add(skeletonClsName); - cell.classList.add(skeletonEffect); - }); + container.innerHTML = content; + applySkeleton?.(container); return container; }; -export const Typography = () => { - const container = document.createElement('div'); - container.classList.add(skeletonClsName); - container.classList.add(skeletonEffect); - container.innerHTML = `${Basic()}`; +const renderSkeletonContent = (content) => { + return createSkeletonContainer(content, (container) => { + container.classList.add(skeletonClsName); + container.classList.add(skeletonEffect); + }); +}; - return container; +const renderDataTable = () => { + return createSkeletonContainer(tableProgressContent, (container) => { + applySkeletonClasses( + container.getElementsByClassName('mdc-data-table__cell'), + ); + }); }; -export const Content = () => { - const container = document.createElement('div'); - container.classList.add(skeletonClsName); - container.classList.add(skeletonEffect); - container.innerHTML = loremIpsumContent; +const renderTypography = () => { + return renderSkeletonContent(`${Basic()}`); +}; - return container; +const renderContent = () => { + return renderSkeletonContent(loremIpsumContent); }; -export const Checkbox = ({ label = 'Bananas', indeterminate }) => { - const container = document.createElement('div'); - container.innerHTML = ` +const renderCheckbox = ({ label = 'Bananas', indeterminate }) => { + const container = createSkeletonContainer( + `