Skip to content

Commit

Permalink
docs(storybook): synced with-layer stories with redesign (#10354)
Browse files Browse the repository at this point in the history
* docs(storybook): synced with-layer stories with redesign

* fix(tile): set width to expandable story

* fix(with-layers): ensured single element needed

* fix(layers): updated comment

* fix(storybook): addressed comments

---------

Co-authored-by: kennylam <[email protected]>
  • Loading branch information
IgnacioBecerra and kennylam authored Apr 24, 2023
1 parent 16612d4 commit 8735972
Show file tree
Hide file tree
Showing 9 changed files with 177 additions and 212 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//
// Copyright IBM Corp. 2019, 2023
//
// This source code is licensed under the Apache-2.0 license found in the
// LICENSE file in the root directory of this source tree.
//

@use '@carbon/styles/scss/colors';
@use '@carbon/styles/scss/theme';
@use '@carbon/styles/scss/spacing';
@use '@carbon/styles/scss/type';
@use '@carbon/styles/scss/components/tag';

@use '@carbon/styles/scss/config' as *;

.#{$prefix}--with-layer__layer {
position: relative;
border: 1px dashed colors.$purple-50;
}

.#{$prefix}--with-layer__layer .#{$prefix}--with-layer__layer {
background-color: theme.$layer;
margin-block-start: spacing.$spacing-07;
}

.#{$prefix}--with-layer__label {
@include type.type-style('code-01');

display: inline-flex;
padding: spacing.$spacing-02;
background-color: tag.$tag-background-purple;
color: tag.$tag-color-purple;
column-gap: spacing.$spacing-02;
}

.#{$prefix}--with-layer__content {
padding: spacing.$spacing-05;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/**
* @license
*
* Copyright IBM Corp. 2019, 2023
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/

import { LitElement, html } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import Layers from '@carbon/icons/lib/layers/16';
import { prefix } from '../../src/globals/settings';

import styles from './with-layer.scss';

/**
* Storybook template layer component, strictly for presentation purposes
*
* @element sb-template-layers
* @slot The elements contained within the component.
*/
@customElement(`sb-template-layers`)
class CDSLayer extends LitElement {
@property()
content;

private _handleSlotChange({ target }: Event) {
if (!this.content) {
const content = (target as HTMLSlotElement)
.assignedNodes()
.filter(
(node) =>
node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()
);

this.content = content[0];
}
}

updated() {
if (this.content) {
const layer2 = this.content.cloneNode(true) as HTMLElement;
const layer3 = this.content.cloneNode(true) as HTMLElement;
layer2.setAttribute('slot', 'layer-2');
layer3.setAttribute('slot', 'layer-3');
this.appendChild(layer2);
this.appendChild(layer3);
}
}

render() {
return html`
<div class="${prefix}--with-layer">
<div class="${prefix}--with-layer__layer">
<div class="${prefix}--with-layer__label">${Layers()} Layer 1</div>
<div class="${prefix}--with-layer__content">
<cds-layer>
<slot @slotchange="${this._handleSlotChange}"></slot>
<div class="${prefix}--with-layer__layer">
<div class="${prefix}--with-layer__label">
${Layers()} Layer 2
</div>
<div class="${prefix}--with-layer__content">
<cds-layer>
<slot name="layer-2"></slot>
<div class="${prefix}--with-layer__layer">
<div class="${prefix}--with-layer__label">
${Layers()} Layer 3
</div>
<div class="${prefix}--with-layer__content">
<cds-layer>
<slot name="layer-3"></slot>
</cds-layer>
</div>
</div>
</cds-layer>
</div>
</div>
</cds-layer>
</div>
</div>
</div>
`;
}

static styles = styles;
}

export default CDSLayer;
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import './select-item';
import './select-skeleton';
import '../form/form-item';
import '../layer';
import '../../../.storybook/templates/with-layer';

import storyDocs from './select-story.mdx';

const sizes = {
Expand Down Expand Up @@ -85,8 +87,10 @@ skeleton.parameters = {

export const WithLayer = () => {
return html`
<cds-layer>
<cds-select helper-text="First layer" placeholder="Choose an option">
<sb-template-layers>
<cds-select
helper-text="Optional helper text"
placeholder="Choose an option">
<cds-select-item-group label="Category 1">
<cds-select-item value="all">Option 1</cds-select-item>
<cds-select-item value="cloudFoundry">Option 2</cds-select-item>
Expand All @@ -97,34 +101,7 @@ export const WithLayer = () => {
<cds-select-item value="router">Option 5</cds-select-item>
</cds-select-item-group>
</cds-select>
<cds-layer>
<cds-select helper-text="Second layer" placeholder="Choose an option">
<cds-select-item-group label="Category 1">
<cds-select-item value="all">Option 1</cds-select-item>
<cds-select-item value="cloudFoundry">Option 2</cds-select-item>
</cds-select-item-group>
<cds-select-item-group label="Category 2">
<cds-select-item value="staging">Option 3</cds-select-item>
<cds-select-item value="dea">Option 4</cds-select-item>
<cds-select-item value="router">Option 5</cds-select-item>
</cds-select-item-group>
</cds-select>
<cds-layer>
<cds-select helper-text="Third layer" placeholder="Choose an option">
<cds-select-item-group label="Category 1">
<cds-select-item value="all">Option 1</cds-select-item>
<cds-select-item value="cloudFoundry">Option 2</cds-select-item>
</cds-select-item-group>
<cds-select-item-group label="Category 2">
<cds-select-item value="staging">Option 3</cds-select-item>
<cds-select-item value="dea">Option 4</cds-select-item>
<cds-select-item value="router">Option 5</cds-select-item>
</cds-select-item-group>
</cds-select>
</cds-layer>
</cds-layer>
</cds-layer>
</sb-template-layers>
`;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import '../form/form-item';
import '../layer';
import storyDocs from './slider-story.mdx';
import { prefix } from '../../globals/settings';
import '../../../.storybook/templates/with-layer';

export const Default = () => {
return html`
Expand Down Expand Up @@ -79,17 +80,8 @@ export const ControlledSliderWithLayer = () => {
}

return html`
<cds-layer>
<button type="button" @click="${onClick}">randomize value</button>
<cds-form-item>
<cds-slider max="100" min="0" step="1" value="${ifDefined(value)}">
<cds-slider-input
aria-label="Slider value"
type="number"></cds-slider-input>
</cds-slider>
</cds-form-item>
<h1 class="slider-headers">${value}</h1>
<cds-layer>
<sb-template-layers>
<div>
<button type="button" @click="${onClick}">randomize value</button>
<cds-form-item>
<cds-slider max="100" min="0" step="1" value="${ifDefined(value)}">
Expand All @@ -99,28 +91,17 @@ export const ControlledSliderWithLayer = () => {
</cds-slider>
</cds-form-item>
<h1 class="slider-headers">${value}</h1>
<cds-layer>
<button type="button" @click="${onClick}">randomize value</button>
<cds-form-item>
<cds-slider max="100" min="0" step="1" value="${ifDefined(value)}">
<cds-slider-input
aria-label="Slider value"
type="number"></cds-slider-input>
</cds-slider>
</cds-form-item>
<h1 class="slider-headers">${value}</h1>
</cds-layer>
</cds-layer>
</cds-layer>
</div>
</sb-template-layers>
`;
};

export const WithLayer = () => {
return html`
<cds-layer>
<sb-template-layers>
<cds-form-item>
<cds-slider
label-text="First Layer"
label-text="Slider label"
max="100"
min="0"
step="1"
Expand All @@ -130,35 +111,7 @@ export const WithLayer = () => {
type="number"></cds-slider-input>
</cds-slider>
</cds-form-item>
<cds-layer>
<cds-form-item>
<cds-slider
label-text="Second Layer"
max="100"
min="0"
step="1"
value="50">
<cds-slider-input
aria-label="Slider value"
type="number"></cds-slider-input>
</cds-slider>
</cds-form-item>
<cds-layer>
<cds-form-item>
<cds-slider
label-text="Third Layer"
max="100"
min="0"
step="1"
value="50">
<cds-slider-input
aria-label="Slider value"
type="number"></cds-slider-input>
</cds-slider>
</cds-form-item>
</cds-layer>
</cds-layer>
</cds-layer>
</sb-template-layers>
`;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { prefix } from '../../globals/settings';
import './index';
import '../layer';
import '../form/form-item';
import '../../../.storybook/templates/with-layer';

import { action } from '@storybook/addon-actions';
import { INPUT_SIZE } from './text-input';
Expand Down Expand Up @@ -63,18 +64,10 @@ export const TogglePasswordVisibility = () => {

export const WithLayer = () => {
return html`
<cds-layer>
<cds-text-input label="First layer" helper-text="Optional help text">
<sb-template-layers>
<cds-text-input label="Text input label" helper-text="Optional help text">
</cds-text-input>
<cds-layer>
<cds-text-input label="Second layer" helper-text="Optional help text">
</cds-text-input>
<cds-layer>
<cds-text-input label="Third layer" helper-text="Optional help text">
</cds-text-input>
</cds-layer>
</cds-layer>
</cds-layer>
</sb-template-layers>
`;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import '../layer';
import createProps from './stories/helpers';
import storyDocs from './textarea-story.mdx';
import { prefix } from '../../globals/settings';
import '../../../.storybook/templates/with-layer';

export const Default = () => {
return html`
Expand All @@ -41,18 +42,10 @@ skeleton.parameters = {

export const WithLayer = () => {
return html`
<cds-layer>
<cds-textarea label="First layer" helper-text="Optional helper text">
<sb-template-layers>
<cds-textarea label="Text Area label" helper-text="Optional helper text">
</cds-textarea>
<cds-layer>
<cds-textarea label="Second layer" helper-text="Optional helper text">
</cds-textarea>
<cds-layer>
<cds-textarea label="Third layer" helper-text="Optional helper text">
</cds-textarea>
</cds-layer>
</cds-layer>
</cds-layer>
</sb-template-layers>
`;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ class BXExpandableTile extends HostListenerMixin(FocusMixin(LitElement)) {
(acc, item) => acc + ((item as HTMLElement).offsetHeight ?? 0),
0
);

if (!this._belowTheContentHeight) {
const element = getComputedStyle(
this.querySelector('cds-tile-below-the-fold-content') as any
);
this._belowTheContentHeight = parseInt(element.height, 10);
}
this.requestUpdate();
}

Expand Down
Loading

0 comments on commit 8735972

Please sign in to comment.