@noctuatech/uswds 0.1.4 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -0
- package/package.json +4 -4
- package/src/lib/button/button.element.ts +11 -3
- package/src/lib/combo-box/combo-box.element.ts +20 -0
- package/src/lib/combo-box/combo-box.test.ts +18 -31
- package/src/lib/define.ts +5 -0
- package/src/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.ts +80 -0
- package/src/lib/in-page-nav/in-page-nav.element.ts +58 -0
- package/src/lib/in-page-nav/in-page-nav.stories.ts +67 -0
- package/src/lib/in-page-nav/in-page-nav.test.ts +15 -0
- package/src/lib/input/input.element.ts +9 -1
- package/src/lib/process-list/process-list-item/process-list-item.element.ts +80 -0
- package/src/lib/process-list/process-list.element.ts +27 -0
- package/src/lib/process-list/process-list.stories.ts +61 -0
- package/src/lib/process-list/process-list.test.ts +41 -0
- package/src/lib/search/search.element.ts +94 -0
- package/src/lib/search/search.event.ts +15 -0
- package/src/lib/search/search.stories.ts +31 -0
- package/src/lib/search/search.test.ts +81 -0
- package/src/lib.ts +5 -0
- package/target/lib/button/button.element.js +1 -1
- package/target/lib/button/button.element.js.map +1 -1
- package/target/lib/checkbox/checkbox.element.js +1 -1
- package/target/lib/combo-box/combo-box.element.d.ts +3 -0
- package/target/lib/combo-box/combo-box.element.js +23 -2
- package/target/lib/combo-box/combo-box.element.js.map +1 -1
- package/target/lib/combo-box/combo-box.test.js +7 -25
- package/target/lib/combo-box/combo-box.test.js.map +1 -1
- package/target/lib/define.d.ts +5 -0
- package/target/lib/define.js +5 -0
- package/target/lib/define.js.map +1 -1
- package/target/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.d.ts +15 -0
- package/target/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.js +78 -0
- package/target/lib/in-page-nav/in-page-nav-item/in-page-nav-item.element.js.map +1 -0
- package/target/lib/in-page-nav/in-page-nav.element.d.ts +10 -0
- package/target/lib/in-page-nav/in-page-nav.element.js +50 -0
- package/target/lib/in-page-nav/in-page-nav.element.js.map +1 -0
- package/target/lib/in-page-nav/in-page-nav.stories.d.ts +12 -0
- package/target/lib/in-page-nav/in-page-nav.stories.js +17 -0
- package/target/lib/in-page-nav/in-page-nav.stories.js.map +1 -0
- package/target/lib/in-page-nav/in-page-nav.test.d.ts +1 -0
- package/target/lib/in-page-nav/in-page-nav.test.js +9 -0
- package/target/lib/in-page-nav/in-page-nav.test.js.map +1 -0
- package/target/lib/input/input.element.d.ts +3 -1
- package/target/lib/input/input.element.js +14 -2
- package/target/lib/input/input.element.js.map +1 -1
- package/target/lib/process-list/process-list-item/process-list-item.element.d.ts +8 -0
- package/target/lib/process-list/process-list-item/process-list-item.element.js +40 -0
- package/target/lib/process-list/process-list-item/process-list-item.element.js.map +1 -0
- package/target/lib/process-list/process-list.element.d.ts +8 -0
- package/target/lib/process-list/process-list.element.js +40 -0
- package/target/lib/process-list/process-list.element.js.map +1 -0
- package/target/lib/process-list/process-list.stories.d.ts +12 -0
- package/target/lib/process-list/process-list.stories.js +17 -0
- package/target/lib/process-list/process-list.stories.js.map +1 -0
- package/target/lib/process-list/process-list.test.d.ts +2 -0
- package/target/lib/process-list/process-list.test.js +10 -0
- package/target/lib/process-list/process-list.test.js.map +1 -0
- package/target/lib/radio/radio.element.js +1 -1
- package/target/lib/search/search.element.d.ts +16 -0
- package/target/lib/search/search.element.js +99 -0
- package/target/lib/search/search.element.js.map +1 -0
- package/target/lib/search/search.event.d.ts +9 -0
- package/target/lib/search/search.event.js +8 -0
- package/target/lib/search/search.event.js.map +1 -0
- package/target/lib/search/search.stories.d.ts +12 -0
- package/target/lib/search/search.stories.js +21 -0
- package/target/lib/search/search.stories.js.map +1 -0
- package/target/lib/search/search.test.d.ts +3 -0
- package/target/lib/search/search.test.js +52 -0
- package/target/lib/search/search.test.js.map +1 -0
- package/target/lib.d.ts +5 -0
- package/target/lib.js +5 -0
- package/target/lib.js.map +1 -1
package/README.md
CHANGED
|
@@ -67,3 +67,51 @@ npm run storybook
|
|
|
67
67
|
```sh
|
|
68
68
|
npm run gen element
|
|
69
69
|
```
|
|
70
|
+
|
|
71
|
+
## USWDS Components Checklist
|
|
72
|
+
|
|
73
|
+
### Form Components
|
|
74
|
+
- [x] Button
|
|
75
|
+
- [ ] Button group
|
|
76
|
+
- [x] Checkbox
|
|
77
|
+
- [x] Combo box
|
|
78
|
+
- [ ] Date picker
|
|
79
|
+
- [ ] Date range picker
|
|
80
|
+
- [x] File input
|
|
81
|
+
- [x] Input mask
|
|
82
|
+
- [x] Input prefix or suffix
|
|
83
|
+
- [ ] Memorable date
|
|
84
|
+
- [x] Radio buttons
|
|
85
|
+
- [x] Range slider
|
|
86
|
+
- [x] Search
|
|
87
|
+
- [x] Select
|
|
88
|
+
- [x] Text input
|
|
89
|
+
- [ ] Time picker
|
|
90
|
+
|
|
91
|
+
### Navigation Components
|
|
92
|
+
- [x] Accordion
|
|
93
|
+
- [ ] Breadcrumb
|
|
94
|
+
- [ ] In-page navigation
|
|
95
|
+
- [x] Link
|
|
96
|
+
- [ ] Pagination
|
|
97
|
+
- [x] Side navigation
|
|
98
|
+
- [x] Step indicator
|
|
99
|
+
|
|
100
|
+
### Content Components
|
|
101
|
+
- [x] Alert
|
|
102
|
+
- [ ] Banner
|
|
103
|
+
- [x] Card
|
|
104
|
+
- [x] Collection
|
|
105
|
+
- [ ] Footer
|
|
106
|
+
- [ ] Header
|
|
107
|
+
- [x] Icon
|
|
108
|
+
- [ ] Identifier
|
|
109
|
+
- [ ] List
|
|
110
|
+
- [x] Modal
|
|
111
|
+
- [ ] Process list
|
|
112
|
+
- [ ] Prose
|
|
113
|
+
- [x] Site alert
|
|
114
|
+
- [x] Summary box
|
|
115
|
+
- [ ] Table
|
|
116
|
+
- [x] Tag
|
|
117
|
+
- [ ] Tooltip
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noctuatech/uswds",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"workspaces": ["packages/**"],
|
|
6
6
|
"main": "./target/lib.js",
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"license": "ISC",
|
|
71
71
|
"description": "",
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@joist/di": "^4.2.
|
|
74
|
-
"@joist/element": "^4.2.
|
|
75
|
-
"@joist/observable": "^4.2.
|
|
73
|
+
"@joist/di": "^4.2.2",
|
|
74
|
+
"@joist/element": "^4.2.2",
|
|
75
|
+
"@joist/observable": "^4.2.2",
|
|
76
76
|
"tslib": "2.8.1"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
@@ -25,7 +25,11 @@ export type ButtonVariant = (typeof BUTTON_VARIANTS)[number];
|
|
|
25
25
|
shadowDom: [
|
|
26
26
|
css`
|
|
27
27
|
:host {
|
|
28
|
-
display:
|
|
28
|
+
display: inline-block;
|
|
29
|
+
border-top-right-radius: 0.25rem;
|
|
30
|
+
border-bottom-right-radius: 0.25rem;
|
|
31
|
+
border-top-left-radius: 0.25rem;
|
|
32
|
+
border-bottom-left-radius: 0.25rem;
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
button {
|
|
@@ -39,7 +43,10 @@ export type ButtonVariant = (typeof BUTTON_VARIANTS)[number];
|
|
|
39
43
|
appearance: none;
|
|
40
44
|
align-items: center;
|
|
41
45
|
border: 0;
|
|
42
|
-
border-radius:
|
|
46
|
+
border-top-right-radius: inherit;
|
|
47
|
+
border-bottom-right-radius: inherit;
|
|
48
|
+
border-top-left-radius: inherit;
|
|
49
|
+
border-bottom-left-radius: inherit;
|
|
43
50
|
cursor: pointer;
|
|
44
51
|
-moz-column-gap: 0.5rem;
|
|
45
52
|
column-gap: 0.5rem;
|
|
@@ -50,11 +57,12 @@ export type ButtonVariant = (typeof BUTTON_VARIANTS)[number];
|
|
|
50
57
|
text-align: center;
|
|
51
58
|
text-decoration: none;
|
|
52
59
|
width: 100%;
|
|
60
|
+
height: 100%;
|
|
53
61
|
cursor: pointer;
|
|
54
62
|
}
|
|
55
63
|
|
|
56
64
|
@media all and (min-width: 30em) {
|
|
57
|
-
|
|
65
|
+
:host {
|
|
58
66
|
width: auto;
|
|
59
67
|
}
|
|
60
68
|
}
|
|
@@ -151,6 +151,9 @@ export class USAComboBoxElement
|
|
|
151
151
|
@attr()
|
|
152
152
|
accessor placeholder = "";
|
|
153
153
|
|
|
154
|
+
@attr()
|
|
155
|
+
accessor disabled = false;
|
|
156
|
+
|
|
154
157
|
list = query("ul");
|
|
155
158
|
input = query("input");
|
|
156
159
|
currentItemEl: Element | null = null;
|
|
@@ -163,6 +166,7 @@ export class USAComboBoxElement
|
|
|
163
166
|
name: this.name,
|
|
164
167
|
placeholder: this.placeholder,
|
|
165
168
|
required: this.required,
|
|
169
|
+
disabled: this.disabled,
|
|
166
170
|
});
|
|
167
171
|
}
|
|
168
172
|
|
|
@@ -189,6 +193,10 @@ export class USAComboBoxElement
|
|
|
189
193
|
|
|
190
194
|
@listen("focus", (host) => host.input())
|
|
191
195
|
onFocusIn() {
|
|
196
|
+
if (this.disabled) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
|
|
192
200
|
this.currentItemEl = null;
|
|
193
201
|
|
|
194
202
|
const list = this.list();
|
|
@@ -204,8 +212,20 @@ export class USAComboBoxElement
|
|
|
204
212
|
list.replaceChildren(fragment);
|
|
205
213
|
}
|
|
206
214
|
|
|
215
|
+
focus(options?: FocusOptions): void {
|
|
216
|
+
this.input().focus(options);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
blur(): void {
|
|
220
|
+
this.input().blur();
|
|
221
|
+
}
|
|
222
|
+
|
|
207
223
|
@listen("input")
|
|
208
224
|
async onInput() {
|
|
225
|
+
if (this.disabled) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
|
|
209
229
|
const input = this.input();
|
|
210
230
|
const list = this.list();
|
|
211
231
|
|
|
@@ -3,7 +3,6 @@ import "./combo-box-option/combo-box-option.element.js";
|
|
|
3
3
|
import "../input/input.element.js";
|
|
4
4
|
|
|
5
5
|
import { assert, fixture, html } from "@open-wc/testing";
|
|
6
|
-
import { userEvent } from "@testing-library/user-event";
|
|
7
6
|
|
|
8
7
|
import type { USAComboBoxElement } from "./combo-box.element.js";
|
|
9
8
|
|
|
@@ -225,34 +224,22 @@ describe("usa-combo-box", () => {
|
|
|
225
224
|
assert.equal(form.checkValidity(), false);
|
|
226
225
|
});
|
|
227
226
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
// if (comboBox) {
|
|
247
|
-
// // Change the value
|
|
248
|
-
// comboBox.value = "Banana";
|
|
249
|
-
// comboBox.dispatchEvent(new Event("input", { bubbles: true }));
|
|
250
|
-
|
|
251
|
-
// // Reset the form
|
|
252
|
-
// form.reset();
|
|
253
|
-
|
|
254
|
-
// // Check that the value was reset
|
|
255
|
-
// assert.equal(comboBox.value, "Apple");
|
|
256
|
-
// }
|
|
257
|
-
// });
|
|
227
|
+
it("should not show suggestions when disabled", async () => {
|
|
228
|
+
const disabledComboBox = await fixture<USAComboBoxElement>(html`
|
|
229
|
+
<usa-combo-box name="search" disabled placeholder="Select a fruit">
|
|
230
|
+
<span slot="label">Fruits</span>
|
|
231
|
+
|
|
232
|
+
<usa-combo-box-option value="Apple">Apple</usa-combo-box-option>
|
|
233
|
+
<usa-combo-box-option value="Banana">Banana</usa-combo-box-option>
|
|
234
|
+
<usa-combo-box-option value="Blueberry">Blueberry</usa-combo-box-option>
|
|
235
|
+
<usa-combo-box-option value="Cherry">Cherry</usa-combo-box-option>
|
|
236
|
+
</usa-combo-box>
|
|
237
|
+
`);
|
|
238
|
+
|
|
239
|
+
const input = disabledComboBox.input();
|
|
240
|
+
input.focus();
|
|
241
|
+
|
|
242
|
+
const suggestions = disabledComboBox.listItems();
|
|
243
|
+
assert.equal(suggestions.length, 0);
|
|
244
|
+
});
|
|
258
245
|
});
|
package/src/lib/define.ts
CHANGED
|
@@ -36,3 +36,8 @@ import "./checkbox/checkbox-group/checkbox-group.element.js";
|
|
|
36
36
|
import "./range-slider/range-slider.element.js";
|
|
37
37
|
import "./combo-box/combo-box.element.js";
|
|
38
38
|
import "./combo-box/combo-box-option/combo-box-option.element.js";
|
|
39
|
+
import "./search/search.element.js";
|
|
40
|
+
import "./process-list/process-list.element.js";
|
|
41
|
+
import "./process-list/process-list-item/process-list-item.element.js";
|
|
42
|
+
import "./in-page-nav/in-page-nav.element.js";
|
|
43
|
+
import "./in-page-nav/in-page-nav-item/in-page-nav-item.element.js";
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { attr, css, element, html, listen, query } from "@joist/element";
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
interface HTMLElementTagNameMap {
|
|
5
|
+
"usa-in-page-nav-item": USAInPageNavItemElement;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@element({
|
|
10
|
+
tagName: "usa-in-page-nav-item",
|
|
11
|
+
shadowDom: [
|
|
12
|
+
css`
|
|
13
|
+
:host {
|
|
14
|
+
border-left: solid .25rem transparent;
|
|
15
|
+
display: flex;
|
|
16
|
+
font-size: .93rem;
|
|
17
|
+
line-height: 1.1;
|
|
18
|
+
position: relative;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
a {
|
|
22
|
+
color: #005ea2;
|
|
23
|
+
padding: .5rem 1rem;
|
|
24
|
+
text-decoration: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:host([primary]) a {
|
|
28
|
+
font-weight: bold;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:host([active]) a {
|
|
32
|
+
color: #1b1b1b;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:host([active]) {
|
|
36
|
+
border-color: #1b1b1b;
|
|
37
|
+
color: #1b1b1b;
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
html`
|
|
41
|
+
<a>
|
|
42
|
+
<slot></slot>
|
|
43
|
+
</a>
|
|
44
|
+
`,
|
|
45
|
+
],
|
|
46
|
+
})
|
|
47
|
+
export class USAInPageNavItemElement extends HTMLElement {
|
|
48
|
+
@attr()
|
|
49
|
+
accessor role = "listitem";
|
|
50
|
+
|
|
51
|
+
@attr()
|
|
52
|
+
accessor primary = false;
|
|
53
|
+
|
|
54
|
+
@attr()
|
|
55
|
+
accessor target = "";
|
|
56
|
+
|
|
57
|
+
@attr()
|
|
58
|
+
accessor active = false;
|
|
59
|
+
|
|
60
|
+
get targetElement() {
|
|
61
|
+
return document.getElementById(this.target);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
#a = query("a");
|
|
65
|
+
|
|
66
|
+
attributeChangedCallback() {
|
|
67
|
+
this.#a({ href: `#${this.target}` });
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@listen("click")
|
|
71
|
+
async onClick(e: Event) {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
|
|
74
|
+
if (this.targetElement) {
|
|
75
|
+
this.targetElement.scrollIntoView({ behavior: "smooth" });
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
history.pushState(null, "", `#${this.target}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { css, element, html, queryAll } from "@joist/element";
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
interface HTMLElementTagNameMap {
|
|
5
|
+
"usa-in-page-nav": USAInPageNavElement;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@element({
|
|
10
|
+
tagName: "usa-in-page-nav",
|
|
11
|
+
shadowDom: [
|
|
12
|
+
css`
|
|
13
|
+
:host {
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
margin-bottom: 0;
|
|
17
|
+
margin-top: 0;
|
|
18
|
+
padding: 0;
|
|
19
|
+
max-width: 15rem;
|
|
20
|
+
}
|
|
21
|
+
`,
|
|
22
|
+
html`
|
|
23
|
+
<slot></slot>
|
|
24
|
+
`,
|
|
25
|
+
],
|
|
26
|
+
})
|
|
27
|
+
export class USAInPageNavElement extends HTMLElement {
|
|
28
|
+
#items = queryAll("usa-in-page-nav-item", this);
|
|
29
|
+
|
|
30
|
+
#observer = new IntersectionObserver(
|
|
31
|
+
(entries) => {
|
|
32
|
+
for (const entry of entries) {
|
|
33
|
+
if (entry.isIntersecting) {
|
|
34
|
+
for (const item of this.#items()) {
|
|
35
|
+
item.active = entry.target === item.targetElement;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
{ rootMargin: "0px 0px -60% 0px" },
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
connectedCallback() {
|
|
46
|
+
const items = this.#items();
|
|
47
|
+
|
|
48
|
+
for (const item of items) {
|
|
49
|
+
if (item.targetElement) {
|
|
50
|
+
this.#observer.observe(item.targetElement);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
disconnectedCallback() {
|
|
56
|
+
this.#observer.disconnect();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/web-components";
|
|
2
|
+
import { html } from "lit";
|
|
3
|
+
|
|
4
|
+
import type { USAInPageNavElement } from "./in-page-nav.element.js";
|
|
5
|
+
|
|
6
|
+
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
7
|
+
const meta = {
|
|
8
|
+
title: "usa-in-page-nav",
|
|
9
|
+
tags: ["autodocs"],
|
|
10
|
+
render() {
|
|
11
|
+
return html`
|
|
12
|
+
<div class="usa-in-page-nav-container">
|
|
13
|
+
<aside style="position: fixed; right: 1rem; top: 2rem;">
|
|
14
|
+
<usa-in-page-nav>
|
|
15
|
+
<usa-in-page-nav-item target="lorem-ipsum-dolor" primary>Lorem ipsum dolor</usa-in-page-nav-item>
|
|
16
|
+
<usa-in-page-nav-item target="consectetuer-adipiscing-elit" primary>Consectetuer adipiscing elit</usa-in-page-nav-item>
|
|
17
|
+
<usa-in-page-nav-item target="nullam-sit-amet-enim">Nullam sit amet enim</usa-in-page-nav-item>
|
|
18
|
+
<usa-in-page-nav-item target="vivamus-pharetra-posuere-sapien">Vivamus pharetra posuere sapien</usa-in-page-nav-item>
|
|
19
|
+
<usa-in-page-nav-item target="suspendisse-id-velit">Suspendisse id velit</usa-in-page-nav-item>
|
|
20
|
+
<usa-in-page-nav-item target="orci-magna-rhoncus-neque">Orci magna rhoncus neque</usa-in-page-nav-item>
|
|
21
|
+
<usa-in-page-nav-item target="aliquam-erat-volutpat-velit-vitae-ligula-volutpat" primary>Aliquam erat volutpat: velit vitae ligula volutpat</usa-in-page-nav-item>
|
|
22
|
+
<usa-in-page-nav-item target="vitae-ligula">Vitae ligula</usa-in-page-nav-item>
|
|
23
|
+
</usa-in-page-nav>
|
|
24
|
+
</aside>
|
|
25
|
+
|
|
26
|
+
<main style="padding-right: 16rem; max-width: 68ex;">
|
|
27
|
+
<h1>Sample in-page navigation page</h1>
|
|
28
|
+
|
|
29
|
+
<h2 id="lorem-ipsum-dolor">Lorem ipsum dolor</h2>
|
|
30
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
31
|
+
|
|
32
|
+
<h2 id="consectetuer-adipiscing-elit">Consectetuer adipiscing elit</h2>
|
|
33
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
34
|
+
|
|
35
|
+
<h3 id="nullam-sit-amet-enim">Nullam sit amet enim</h3>
|
|
36
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
37
|
+
|
|
38
|
+
<h3 id="vivamus-pharetra-posuere-sapien">Vivamus pharetra posuere sapien</h3>
|
|
39
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
40
|
+
|
|
41
|
+
<h3 id="suspendisse-id-velit">Suspendisse id velit</h3>
|
|
42
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
43
|
+
|
|
44
|
+
<h3 id="orci-magna-rhoncus-neque">Orci magna rhoncus neque</h3>
|
|
45
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
46
|
+
|
|
47
|
+
<h2 id="aliquam-erat-volutpat-velit-vitae-ligula-volutpat">Aliquam erat volutpat: velit vitae ligula volutpat</h2>
|
|
48
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
49
|
+
|
|
50
|
+
<h3 id="vitae-ligula">Vitae ligula</h3>
|
|
51
|
+
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien.</p>
|
|
52
|
+
</main>
|
|
53
|
+
</div>
|
|
54
|
+
`;
|
|
55
|
+
},
|
|
56
|
+
argTypes: {},
|
|
57
|
+
args: {},
|
|
58
|
+
} satisfies Meta<USAInPageNavElement>;
|
|
59
|
+
|
|
60
|
+
export default meta;
|
|
61
|
+
|
|
62
|
+
type Story = StoryObj<USAInPageNavElement>;
|
|
63
|
+
|
|
64
|
+
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
|
|
65
|
+
export const Primary: Story = {
|
|
66
|
+
args: {},
|
|
67
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "./in-page-nav.element.js";
|
|
2
|
+
|
|
3
|
+
import { assert, fixture, html } from "@open-wc/testing";
|
|
4
|
+
|
|
5
|
+
import type { USAInPageNavElement } from "./in-page-nav.element.js";
|
|
6
|
+
|
|
7
|
+
describe("usa-in-page-nav", () => {
|
|
8
|
+
it("should be accessible", async () => {
|
|
9
|
+
const inPageNav = await fixture<USAInPageNavElement>(html`
|
|
10
|
+
<usa-in-page-nav>Hello World</usa-in-page-nav>
|
|
11
|
+
`);
|
|
12
|
+
|
|
13
|
+
return assert.isAccessible(inPageNav);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
@@ -117,6 +117,9 @@ export class USATextInputElement
|
|
|
117
117
|
@attr()
|
|
118
118
|
accessor required = false;
|
|
119
119
|
|
|
120
|
+
@attr()
|
|
121
|
+
accessor disabled = false;
|
|
122
|
+
|
|
120
123
|
@attr()
|
|
121
124
|
accessor type: "text" | "password" | "number" = "text";
|
|
122
125
|
|
|
@@ -137,6 +140,10 @@ export class USATextInputElement
|
|
|
137
140
|
@observe()
|
|
138
141
|
accessor selectionEnd: number | null = null;
|
|
139
142
|
|
|
143
|
+
get validationMessage() {
|
|
144
|
+
return this.#input().validationMessage;
|
|
145
|
+
}
|
|
146
|
+
|
|
140
147
|
#internals = this.attachInternals();
|
|
141
148
|
#input = query("input");
|
|
142
149
|
|
|
@@ -145,7 +152,7 @@ export class USATextInputElement
|
|
|
145
152
|
this.#input({ autofocus: this.autofocus });
|
|
146
153
|
}
|
|
147
154
|
|
|
148
|
-
attributeChangedCallback() {
|
|
155
|
+
attributeChangedCallback(attr: string) {
|
|
149
156
|
this.#input({
|
|
150
157
|
autocomplete: this.autocomplete,
|
|
151
158
|
placeholder: this.placeholder,
|
|
@@ -156,6 +163,7 @@ export class USATextInputElement
|
|
|
156
163
|
max: this.max,
|
|
157
164
|
minLength: this.minLength,
|
|
158
165
|
maxLength: this.maxLength,
|
|
166
|
+
disabled: this.disabled,
|
|
159
167
|
});
|
|
160
168
|
}
|
|
161
169
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { attr, css, element, html } from "@joist/element";
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
interface HTMLElementTagNameMap {
|
|
5
|
+
"usa-process-list-item": USAProcessListItemElement;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@element({
|
|
10
|
+
tagName: "usa-process-list-item",
|
|
11
|
+
shadowDom: [
|
|
12
|
+
css`
|
|
13
|
+
* {
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
:host {
|
|
18
|
+
display: flex;
|
|
19
|
+
gap: .5rem;
|
|
20
|
+
flex-direction: column;
|
|
21
|
+
position: relative;
|
|
22
|
+
padding-left: 3rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.number {
|
|
26
|
+
background: #fff;
|
|
27
|
+
box-shadow: 0 0 0 .25rem #fff;
|
|
28
|
+
border: .25rem solid #1b1b1b;
|
|
29
|
+
position: absolute;
|
|
30
|
+
height: 2.5rem;
|
|
31
|
+
width: 2.5rem;
|
|
32
|
+
border-radius: 50%;
|
|
33
|
+
left: 0;
|
|
34
|
+
top: -11px;
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
justify-content: center;
|
|
38
|
+
font-weight: bold;
|
|
39
|
+
z-index: 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.line {
|
|
43
|
+
background: #d9e8f6;
|
|
44
|
+
width: 0.5rem;
|
|
45
|
+
position: absolute;
|
|
46
|
+
top: 0;
|
|
47
|
+
bottom: -2rem;
|
|
48
|
+
left: calc(2.5rem / 2 - .25rem);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
#title::slotted(*) {
|
|
52
|
+
margin-top: 0;
|
|
53
|
+
margin-bottom: 0;
|
|
54
|
+
padding-top: 0;
|
|
55
|
+
padding-bottom: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:host(:last-child) .line {
|
|
59
|
+
display: none;
|
|
60
|
+
}
|
|
61
|
+
`,
|
|
62
|
+
html`
|
|
63
|
+
<div class="number">
|
|
64
|
+
<slot name="count">1</slot>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<div class="line"></div>
|
|
68
|
+
|
|
69
|
+
<slot id="title" name="title"></slot>
|
|
70
|
+
|
|
71
|
+
<div class="content">
|
|
72
|
+
<slot></slot>
|
|
73
|
+
</div>
|
|
74
|
+
`,
|
|
75
|
+
],
|
|
76
|
+
})
|
|
77
|
+
export class USAProcessListItemElement extends HTMLElement {
|
|
78
|
+
@attr()
|
|
79
|
+
accessor role = "listitem";
|
|
80
|
+
}
|