Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(breadcrumb): add the breadcrumb component #1260

Merged
merged 30 commits into from
May 8, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
289dc68
Add breadcrumb from vivid-3
YonatanKra Mar 18, 2022
e6842c1
Snapshots for breadcrumb
YonatanKra Mar 18, 2022
81277aa
Update breadcrumb docs
YonatanKra Mar 18, 2022
8d5d335
Update example
YonatanKra Mar 18, 2022
0b71dcc
Remove unneeded deps
YonatanKra Mar 19, 2022
1a31561
Update components/breadcrumb/package.json
YonatanKra Mar 19, 2022
3d0443e
add required imports
yinonov Mar 19, 2022
9b6598b
Fix the expansion panel build
YonatanKra Mar 31, 2022
2771fb8
Merge remote-tracking branch 'upstream/master' into breadcrumb-component
YonatanKra Mar 31, 2022
a2b3907
Proxy icon
YonatanKra Apr 2, 2022
003f571
Tests now complete fully
YonatanKra Apr 2, 2022
aa181fd
Update snapshots
YonatanKra Apr 2, 2022
faa1c52
Update versions
YonatanKra May 2, 2022
a825bdd
Merge remote-tracking branch 'upstream/master' into breadcrumb-component
YonatanKra May 2, 2022
b597cf2
Fix the style
YonatanKra May 2, 2022
1d9e0e7
Update badge template
YonatanKra May 2, 2022
a821e5c
Update storybook
YonatanKra May 2, 2022
992ddaa
Fix linting
YonatanKra May 2, 2022
ca451c3
Revert icon related changes
YonatanKra May 2, 2022
b1e09c6
Update components/breadcrumb/package.json
YonatanKra May 2, 2022
71381db
Revert vonage/vivid version
YonatanKra May 2, 2022
ea3c2c1
Update breadcrumb
YonatanKra May 6, 2022
b3e6f02
Update version
YonatanKra May 6, 2022
c89aacd
Remove dep
YonatanKra May 6, 2022
ef392fb
Remove another dep
YonatanKra May 6, 2022
1799f96
Merge branch 'master' into breadcrumb-component
YonatanKra May 6, 2022
b89950d
hard code breadcrumbs
YonatanKra May 8, 2022
fdbc95a
Stylelint
YonatanKra May 8, 2022
db80c21
linting
YonatanKra May 8, 2022
cb6df73
Design feedback
YonatanKra May 8, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions __snapshots__/Breadcrumb-item.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# `Breadcrumb-item`

#### `should internal contents`

```html
<div
class="breadcrumb-item control"
part="listitem"
roll="listitem"
>
<vwc-icon type="chevron-right-line">
</vwc-icon>
</div>

```

16 changes: 16 additions & 0 deletions __snapshots__/Breadcrumb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# `Breadcrumb`

#### `should internal contents`

```html
<div
class="list"
part="list"
role="list"
>
<slot>
</slot>
</div>

```

36 changes: 36 additions & 0 deletions components/breadcrumb-item/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"name": "@vonage/vwc-breadcrumb-item",
"version": "2.26.0",
"description": "breadcrumb-item component",
"homepage": "https://github.com/Vonage/vivid/tree/master/components/breadcrumb-item#readme",
"license": "ISC",
"main": "vwc-breadcrumb-item.js",
"module": "vwc-breadcrumb-item.js",
"files": [
"*.js",
"*.ts",
"*.map"
],
"repository": {
"type": "git",
"url": "https://github.com/vonage/vivid.git",
"directory": "components/breadcrumb-item"
},
"scripts": {
"build:typescript": "tsc -b",
"build:styles": "umbrella-style-modules",
"build": "yarn run build:styles && yarn run build:typescript"
},
"bugs": {
"url": "https://github.com/Vonage/vivid/issues"
},
"dependencies": {
"@vonage/vvd-foundation": "^2.26.0",
"lit-element": "^2.4.0",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing core

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vvd-core?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it should be imported in all vivid < 3 components

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually - it doesn't use any of these...
I've removed v-2 deps. Left only umbrella for build time dep.

"tslib": "^2.3.0"
},
"devDependencies": {
"@vonage/vvd-umbrella": "2.26.0",
"typescript": "^4.3.2"
}
}
15 changes: 15 additions & 0 deletions components/breadcrumb-item/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# vwc-breadcrumb-item

Add a description of vwc-breadcrumb-item.

## Properties

| Property | Type |
|---------------------------|-------------------------------------------|
| `prop ` | `propType` |

## Methods

| Method | Type |
|---------|------------|
| `method`| `(): void` |
1 change: 1 addition & 0 deletions components/breadcrumb-item/src/vwc-breadcrumb-item.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import '@vonage/vivid/breadcrumb-item/index.js';
30 changes: 30 additions & 0 deletions components/breadcrumb-item/test/breadcrumb-item.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import '../vwc-breadcrumb-item.js';
import {
waitNextTask,
textToDomToParent,
isolatedElementsCreation
} from '../../../test/test-helpers.js';
import { chaiDomDiff } from '@open-wc/semantic-dom-diff';

chai.use(chaiDomDiff);

const COMPONENT_NAME = 'vwc-breadcrumb-item';

describe('Breadcrumb-item', () => {
let addElement = isolatedElementsCreation();

it(`${COMPONENT_NAME} is defined as a custom element`, async () => {
assert.exists(
customElements.get(COMPONENT_NAME)
);
});

it('should internal contents', async () => {
const addedElements = addElement(
textToDomToParent(`<${COMPONENT_NAME}>Button Text</${COMPONENT_NAME}>`)
);
const actualElement = addedElements[0];
await waitNextTask();
expect(actualElement.shadowRoot.innerHTML).to.equalSnapshot();
});
});
16 changes: 16 additions & 0 deletions components/breadcrumb-item/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"extends": "@vonage/vvd-umbrella/configs/tsconfig.json",
"compilerOptions": {
"module": "ESNext",
"composite": true,
"rootDir": "src",
"outDir": ".",
"tsBuildInfoFile": ".tsbuildinfo"
},
"include": [
"src/*.ts"
],
"exclude": [
"src/test/*.ts"
]
}
37 changes: 37 additions & 0 deletions components/breadcrumb/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"name": "@vonage/vwc-breadcrumb",
"version": "2.26.0",
"description": "breadcrumb component",
"homepage": "https://github.com/Vonage/vivid/tree/master/components/breadcrumb#readme",
"license": "ISC",
"main": "vwc-breadcrumb.js",
"module": "vwc-breadcrumb.js",
"files": [
"*.js",
"*.ts",
"*.map"
],
"repository": {
"type": "git",
"url": "https://github.com/vonage/vivid.git",
"directory": "components/breadcrumb"
},
"scripts": {
"build:typescript": "tsc -b",
"build:styles": "umbrella-style-modules",
"build": "yarn run build:styles && yarn run build:typescript"
},
"bugs": {
"url": "https://github.com/Vonage/vivid/issues"
},
"dependencies": {
"@vonage/vivid": "^3.0.0-next.2",
YonatanKra marked this conversation as resolved.
Show resolved Hide resolved
YonatanKra marked this conversation as resolved.
Show resolved Hide resolved
"@vonage/vvd-foundation": "^2.26.0",
"lit-element": "^2.4.0",
"tslib": "^2.3.0"
},
"devDependencies": {
"@vonage/vvd-umbrella": "2.26.0",
"typescript": "^4.3.2"
}
}
39 changes: 39 additions & 0 deletions components/breadcrumb/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# breadcrumb

In order to use `breadcrumb` you'll need to import both `breadcrumb` and `breadcrumb-item`:
```js
import '@vonage/vwc-breadcrumb-item/vwc-breadcrumb-item.js';
import '@vonage/vwc-breadcrumb/vwc-breadcrumb.js';
```

## Common Usage
### Code
```html
<vwc-breadcrumb>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb"></vwc-breadcrumb-item>
</vwc-breadcrumb>
```
<vwc-breadcrumb>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb"></vwc-breadcrumb-item>
</vwc-breadcrumb>

## Multiple hidden crumbs
### Code
```html
<vwc-breadcrumb>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="..."></vwc-breadcrumb-item>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
</vwc-breadcrumb>
```
<vwc-breadcrumb>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="..."></vwc-breadcrumb-item>
<vwc-breadcrumb-item href="#" text="breadcrumb"></vwc-breadcrumb-item>
</vwc-breadcrumb>
1 change: 1 addition & 0 deletions components/breadcrumb/src/vwc-breadcrumb.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import '@vonage/vivid/breadcrumb/index.js';
15 changes: 15 additions & 0 deletions components/breadcrumb/stories/arg-types.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
export const argTypes = {
connotation: {
control: {
type: 'select',
options: ['primary', 'cta', 'success', 'error', 'info', 'announcement'],
}
},
disabled: {
control: {
type: 'inline-radio',
options: { 'true': '', 'false': undefined }
}
},
YonatanKra marked this conversation as resolved.
Show resolved Hide resolved
styles: { table: { disable: true } },
}
14 changes: 14 additions & 0 deletions components/breadcrumb/stories/breadcrumb-introduction.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export default {
sourcePath: '../readme.md',
outputName: 'breadcrumb-introduction',
story: {
title: 'Alpha/Components/Breadcrumb',
name: 'Introduction',
parameters: {
options: {
showPanel: false,
isToolshown: false
}
}
}
};
21 changes: 21 additions & 0 deletions components/breadcrumb/stories/breadcrumb.stories.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import '@vonage/vwc-breadcrumb-item/vwc-breadcrumb-item.js';
import '@vonage/vwc-breadcrumb/vwc-breadcrumb.js';
import { html } from 'lit-element';
import { spread } from '@open-wc/lit-helpers';
import { argTypes } from './arg-types.js';

export default {
title: 'Alpha/Components/Breadcrumb',
component: 'vwc-breadcrumb',
argTypes
};

const Template = args => html`<vwc-breadcrumb ...=${spread(args)}>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb"></vwc-breadcrumb-item>
</vwc-breadcrumb>`;

export const Basic = Template.bind({});
Basic.args = { label: 'Basic', disabled: 'false' };
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's no use of either of them in the code - I think you better remove them, less confusion to our users :)

30 changes: 30 additions & 0 deletions components/breadcrumb/test/breadcrumb.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import '../vwc-breadcrumb.js';
import {
waitNextTask,
textToDomToParent,
isolatedElementsCreation
} from '../../../test/test-helpers.js';
import { chaiDomDiff } from '@open-wc/semantic-dom-diff';

chai.use(chaiDomDiff);

const COMPONENT_NAME = 'vwc-breadcrumb';

describe('Breadcrumb', () => {
let addElement = isolatedElementsCreation();

it(`${COMPONENT_NAME} is defined as a custom element`, async () => {
assert.exists(
customElements.get(COMPONENT_NAME)
);
});

it('should internal contents', async () => {
const addedElements = addElement(
textToDomToParent(`<${COMPONENT_NAME}>Button Text</${COMPONENT_NAME}>`)
);
const actualElement = addedElements[0];
await waitNextTask();
expect(actualElement.shadowRoot.innerHTML).to.equalSnapshot();
});
});
16 changes: 16 additions & 0 deletions components/breadcrumb/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"extends": "@vonage/vvd-umbrella/configs/tsconfig.json",
"compilerOptions": {
"module": "ESNext",
"composite": true,
"rootDir": "src",
"outDir": ".",
"tsBuildInfoFile": ".tsbuildinfo"
},
"include": [
"src/*.ts"
],
"exclude": [
"src/test/*.ts"
]
}
Binary file added ui-tests/snapshots/vwc-breadcrumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions ui-tests/tests/vwc-breadcrumb/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import '@vonage/vwc-breadcrumb';
import '@vonage/vwc-breadcrumb-item';

export async function createElementVariations(wrapper) {
const elementWrapper = document.createElement('div');
elementWrapper.innerHTML =
`
<vwc-breadcrumb>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb"></vwc-breadcrumb-item>
</vwc-breadcrumb>

<vwc-breadcrumb>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="..."></vwc-breadcrumb-item>
<vwc-breadcrumb-item text="breadcrumb" href="#"></vwc-breadcrumb-item>
</vwc-breadcrumb>
`;
wrapper.appendChild(elementWrapper);
}


Loading