@grantcodes/ui 2.0.2 → 2.1.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/CHANGELOG.md +15 -0
- package/custom-elements.json +1926 -191
- package/package.json +22 -21
- package/src/components/accordion/accordion.component.js +33 -0
- package/src/components/accordion/accordion.js +6 -0
- package/src/components/accordion/accordion.stories.js +88 -0
- package/src/components/accordion/accordion.styles.js +66 -0
- package/src/components/accordion/index.js +6 -0
- package/src/components/app-bar/app-bar.component.js +1 -3
- package/src/components/app-bar/app-bar.js +0 -2
- package/src/components/app-bar/app-bar.styles.js +222 -221
- package/src/components/app-bar/app-bar.test.js +58 -17
- package/src/components/app-bar/index.js +0 -2
- package/src/components/avatar/avatar.js +0 -12
- package/src/components/avatar/avatar.stories.js +0 -12
- package/src/components/avatar/avatar.styles.js +19 -19
- package/src/components/avatar/avatar.test.js +4 -4
- package/src/components/avatar/index.js +1 -13
- package/src/components/badge/badge.js +0 -2
- package/src/components/badge/badge.styles.js +78 -81
- package/src/components/badge/badge.test.js +18 -5
- package/src/components/badge/index.js +0 -2
- package/src/components/breadcrumb/breadcrumb.component.js +9 -10
- package/src/components/breadcrumb/breadcrumb.js +6 -4
- package/src/components/breadcrumb/breadcrumb.styles.js +86 -90
- package/src/components/breadcrumb/breadcrumb.test.js +15 -5
- package/src/components/breadcrumb/index.js +0 -2
- package/src/components/button/button.component.js +2 -2
- package/src/components/button/button.styles.js +58 -86
- package/src/components/button/button.test.js +8 -4
- package/src/components/button/index.js +1 -1
- package/src/components/button-group/button-group.test.js +0 -2
- package/src/components/button-group/index.js +1 -1
- package/src/components/card/card.component.js +40 -9
- package/src/components/card/card.js +3 -1
- package/src/components/card/card.stories.js +18 -5
- package/src/components/card/card.styles.js +46 -20
- package/src/components/card/card.test.js +0 -2
- package/src/components/card/index.js +1 -1
- package/src/components/code-preview/code-preview.component.js +9 -9
- package/src/components/code-preview/code-preview.js +0 -1
- package/src/components/code-preview/code-preview.styles.js +3 -3
- package/src/components/code-preview/code-preview.test.js +29 -8
- package/src/components/code-preview/index.js +1 -1
- package/src/components/container/container.component.js +1 -0
- package/src/components/container/container.js +0 -1
- package/src/components/container/container.stories.js +12 -4
- package/src/components/container/container.styles.js +37 -35
- package/src/components/container/container.test.js +0 -2
- package/src/components/container/index.js +1 -1
- package/src/components/cta/cta.component.js +108 -0
- package/src/components/cta/cta.js +6 -0
- package/src/components/cta/cta.stories.js +56 -0
- package/src/components/cta/cta.styles.js +64 -0
- package/src/components/cta/index.js +1 -0
- package/src/components/dialog/dialog.js +0 -1
- package/src/components/dialog/dialog.styles.js +8 -8
- package/src/components/dialog/dialog.test.js +11 -5
- package/src/components/dialog/index.js +1 -1
- package/src/components/dropdown/dropdown.component.js +5 -3
- package/src/components/dropdown/dropdown.js +6 -4
- package/src/components/dropdown/dropdown.styles.js +5 -5
- package/src/components/dropdown/dropdown.test.js +20 -4
- package/src/components/dropdown/index.js +0 -2
- package/src/components/dropzone/dropzone.component.js +7 -6
- package/src/components/dropzone/dropzone.styles.js +4 -4
- package/src/components/dropzone/dropzone.test.js +6 -4
- package/src/components/dropzone/index.js +1 -1
- package/src/components/feature-list/feature-list.component.js +130 -0
- package/src/components/feature-list/feature-list.js +6 -0
- package/src/components/feature-list/feature-list.stories.js +117 -0
- package/src/components/feature-list/feature-list.styles.js +82 -0
- package/src/components/feature-list/index.js +1 -0
- package/src/components/footer/footer-column.styles.js +46 -47
- package/src/components/footer/footer.js +6 -2
- package/src/components/footer/footer.styles.js +6 -6
- package/src/components/footer/footer.test.js +9 -4
- package/src/components/footer/index.js +1 -1
- package/src/components/form-field/form-field.component.js +1 -3
- package/src/components/form-field/form-field.js +0 -1
- package/src/components/form-field/form-field.styles.js +35 -37
- package/src/components/form-field/form-field.test.js +9 -4
- package/src/components/form-field/index.js +1 -1
- package/src/components/gallery/gallery-image.js +0 -1
- package/src/components/gallery/gallery.js +0 -1
- package/src/components/gallery/gallery.styles.js +1 -1
- package/src/components/gallery/gallery.test.js +5 -3
- package/src/components/gallery/index.js +2 -2
- package/src/components/hero/hero.component.js +66 -0
- package/src/components/hero/hero.js +6 -0
- package/src/components/hero/hero.stories.js +53 -0
- package/src/components/hero/hero.styles.js +46 -0
- package/src/components/hero/index.js +1 -0
- package/src/components/icon/icon.js +3 -2
- package/src/components/icon/icon.stories.js +2 -1
- package/src/components/icon/icon.styles.js +23 -21
- package/src/components/icon/icon.test.js +2 -3
- package/src/components/icon/index.js +1 -1
- package/src/components/loading/index.js +1 -1
- package/src/components/loading/loading.js +3 -2
- package/src/components/loading/loading.styles.js +1 -1
- package/src/components/loading/loading.test.js +0 -2
- package/src/components/logo-cloud/index.js +1 -0
- package/src/components/logo-cloud/logo-cloud.component.js +81 -0
- package/src/components/logo-cloud/logo-cloud.js +6 -0
- package/src/components/logo-cloud/logo-cloud.stories.js +107 -0
- package/src/components/logo-cloud/logo-cloud.styles.js +68 -0
- package/src/components/media-text/index.js +1 -0
- package/src/components/media-text/media-text.component.js +100 -0
- package/src/components/media-text/media-text.js +6 -0
- package/src/components/media-text/media-text.stories.js +69 -0
- package/src/components/media-text/media-text.styles.js +66 -0
- package/src/components/newsletter/index.js +1 -0
- package/src/components/newsletter/newsletter.component.js +101 -0
- package/src/components/newsletter/newsletter.js +6 -0
- package/src/components/newsletter/newsletter.stories.js +59 -0
- package/src/components/newsletter/newsletter.styles.js +89 -0
- package/src/components/notice/index.js +1 -1
- package/src/components/notice/notice.js +0 -1
- package/src/components/notice/notice.styles.js +7 -7
- package/src/components/notice/notice.test.js +15 -5
- package/src/components/pagination/index.js +1 -1
- package/src/components/pagination/pagination.stories.js +1 -3
- package/src/components/pagination/pagination.styles.js +1 -1
- package/src/components/pagination/pagination.test.js +9 -4
- package/src/components/pricing/index.js +1 -0
- package/src/components/pricing/pricing.component.js +119 -0
- package/src/components/pricing/pricing.js +6 -0
- package/src/components/pricing/pricing.stories.js +123 -0
- package/src/components/pricing/pricing.styles.js +135 -0
- package/src/components/sidebar/index.js +0 -2
- package/src/components/sidebar/sidebar.component.js +12 -10
- package/src/components/sidebar/sidebar.js +3 -3
- package/src/components/sidebar/sidebar.stories.js +0 -2
- package/src/components/sidebar/sidebar.styles.js +181 -186
- package/src/components/sidebar/sidebar.test.js +48 -13
- package/src/components/stats/index.js +1 -0
- package/src/components/stats/stats.component.js +73 -0
- package/src/components/stats/stats.js +6 -0
- package/src/components/stats/stats.stories.js +64 -0
- package/src/components/stats/stats.styles.js +66 -0
- package/src/components/tabs/index.js +2 -2
- package/src/components/tabs/internal/tabs-button.component.js +1 -1
- package/src/components/tabs/internal/tabs-button.js +0 -1
- package/src/components/tabs/tab.js +0 -1
- package/src/components/tabs/tabs.js +3 -2
- package/src/components/tabs/tabs.styles.js +84 -74
- package/src/components/testimonials/index.js +1 -0
- package/src/components/testimonials/testimonials.component.js +97 -0
- package/src/components/testimonials/testimonials.js +6 -0
- package/src/components/testimonials/testimonials.stories.js +78 -0
- package/src/components/testimonials/testimonials.styles.js +82 -0
- package/src/components/toast/index.js +0 -2
- package/src/components/toast/toast.component.js +1 -3
- package/src/components/toast/toast.js +10 -5
- package/src/components/toast/toast.stories.js +9 -5
- package/src/components/toast/toast.styles.js +199 -201
- package/src/components/toast/toast.test.js +38 -10
- package/src/components/tooltip/index.js +1 -1
- package/src/components/tooltip/tooltip.js +3 -2
- package/src/components/tooltip/tooltip.styles.js +3 -3
- package/src/components/tooltip/tooltip.test.js +10 -4
- package/src/css/base.css +8 -5
- package/src/css/colors.stories.js +27 -28
- package/src/css/elements/forms/input.css +9 -41
- package/src/css/elements/media/image.css +1 -1
- package/src/css/themes/todomap.css +1 -0
- package/src/css/tokens.stories.js +26 -21
- package/src/css/typography.css +1 -3
- package/src/css/util/focus-ring.css +30 -0
- package/src/css/util/index.css +1 -2
- package/src/lib/styles/focus-ring.styles.js +34 -0
- package/src/main.js +10 -1
- package/src/pages/agency.stories.js +164 -0
- package/src/pages/blog-post.stories.js +381 -0
- package/src/pages/saas-landing.stories.js +307 -0
- package/src/test-utils/assert-helpers.js +10 -8
- package/src/css/util/functions.css +0 -16
- package/src/css/util/mixins.css +0 -63
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grantcodes/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "A personal component system built with Lit web components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/main.js",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"import": "./src/css/base.css",
|
|
21
21
|
"require": "./src/css/base.css"
|
|
22
22
|
},
|
|
23
|
-
"./styles/themes
|
|
24
|
-
"import": "./src/css/themes
|
|
25
|
-
"require": "./src/css/themes
|
|
23
|
+
"./styles/themes/*": {
|
|
24
|
+
"import": "./src/css/themes/*",
|
|
25
|
+
"require": "./src/css/themes/*"
|
|
26
26
|
},
|
|
27
27
|
"./components/*": {
|
|
28
28
|
"import": "./src/components/*",
|
|
@@ -30,25 +30,12 @@
|
|
|
30
30
|
},
|
|
31
31
|
"./fonts/*": "./src/fonts/*"
|
|
32
32
|
},
|
|
33
|
-
"scripts": {
|
|
34
|
-
"dev": "storybook dev -p 6006",
|
|
35
|
-
"storybook": "storybook dev -p 6006",
|
|
36
|
-
"build-storybook": "storybook build",
|
|
37
|
-
"build": "npm run build-storybook",
|
|
38
|
-
"generate": "plop",
|
|
39
|
-
"cem": "cem analyze --config custom-elements-manifest.config.js --litelement",
|
|
40
|
-
"fix": "run-s fix:lint",
|
|
41
|
-
"fix:lint": "npx @biomejs/biome format --write src",
|
|
42
|
-
"test": "run-s lint test:unit",
|
|
43
|
-
"lint": "npx @biomejs/biome lint src",
|
|
44
|
-
"test:unit": "NODE_ENV=test node --test --test-concurrency=1 src/**/*.test.js"
|
|
45
|
-
},
|
|
46
33
|
"license": "MIT",
|
|
47
34
|
"dependencies": {
|
|
48
|
-
"@grantcodes/style-dictionary": "^1.2.0",
|
|
49
35
|
"lit": "^3.3.1",
|
|
50
36
|
"sanitize.css": "^13.0.0",
|
|
51
|
-
"shiki": "^3.17.1"
|
|
37
|
+
"shiki": "^3.17.1",
|
|
38
|
+
"@grantcodes/style-dictionary": "^1.3.0"
|
|
52
39
|
},
|
|
53
40
|
"devDependencies": {
|
|
54
41
|
"@biomejs/biome": "2.3.8",
|
|
@@ -77,5 +64,19 @@
|
|
|
77
64
|
"README.md",
|
|
78
65
|
"LICENCE"
|
|
79
66
|
],
|
|
80
|
-
"customElements": "custom-elements.json"
|
|
81
|
-
|
|
67
|
+
"customElements": "custom-elements.json",
|
|
68
|
+
"scripts": {
|
|
69
|
+
"dev": "storybook dev -p 6006",
|
|
70
|
+
"watch": "vite build --watch",
|
|
71
|
+
"storybook": "storybook dev -p 6006",
|
|
72
|
+
"build-storybook": "storybook build",
|
|
73
|
+
"build": "npm run build-storybook",
|
|
74
|
+
"generate": "plop",
|
|
75
|
+
"cem": "cem analyze --config custom-elements-manifest.config.js --litelement",
|
|
76
|
+
"fix": "run-s fix:lint",
|
|
77
|
+
"fix:lint": "npx @biomejs/biome format --write src",
|
|
78
|
+
"test": "run-s lint test:unit",
|
|
79
|
+
"lint": "npx @biomejs/biome lint src",
|
|
80
|
+
"test:unit": "NODE_ENV=test node --test --test-concurrency=1 src/**/*.test.js"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import { html } from "lit/static-html.js";
|
|
3
|
+
import { accordionStyles } from "./accordion.styles.js";
|
|
4
|
+
|
|
5
|
+
export class GrantCodesAccordion extends LitElement {
|
|
6
|
+
static styles = [accordionStyles];
|
|
7
|
+
|
|
8
|
+
static properties = {
|
|
9
|
+
items: { type: Array },
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.items = [];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
render() {
|
|
18
|
+
return html`
|
|
19
|
+
<div class="accordion">
|
|
20
|
+
${this.items.map(
|
|
21
|
+
(item, index) => html`
|
|
22
|
+
<details class="accordion__item">
|
|
23
|
+
<summary class="accordion__summary focus-ring">
|
|
24
|
+
${item.title}
|
|
25
|
+
</summary>
|
|
26
|
+
<div class="accordion__content">${item.content}</div>
|
|
27
|
+
</details>
|
|
28
|
+
`,
|
|
29
|
+
)}
|
|
30
|
+
</div>
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { getStorybookHelpers } from "@wc-toolkit/storybook-helpers";
|
|
2
|
+
import { html } from "lit/static-html.js";
|
|
3
|
+
import "./accordion.js";
|
|
4
|
+
const { events, args, argTypes, template } = getStorybookHelpers(
|
|
5
|
+
"grantcodes-accordion",
|
|
6
|
+
);
|
|
7
|
+
|
|
8
|
+
const meta = {
|
|
9
|
+
title: "Components/Accordion",
|
|
10
|
+
component: "grantcodes-accordion",
|
|
11
|
+
args,
|
|
12
|
+
argTypes,
|
|
13
|
+
parameters: {
|
|
14
|
+
actions: {
|
|
15
|
+
handles: events,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default meta;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Default accordion with multiple items.
|
|
24
|
+
*/
|
|
25
|
+
export const Accordion = {
|
|
26
|
+
args: {
|
|
27
|
+
items: [
|
|
28
|
+
{
|
|
29
|
+
title: "What is this?",
|
|
30
|
+
content:
|
|
31
|
+
"This is an accordion component that allows you to collapse and expand content sections.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: "How do I use it?",
|
|
35
|
+
content:
|
|
36
|
+
"Pass an array of items with title and content properties to the items property.",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
title: "Can I customize it?",
|
|
40
|
+
content:
|
|
41
|
+
"Yes, you can style the accordion using CSS custom properties and theme variables.",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Single item accordion.
|
|
49
|
+
*/
|
|
50
|
+
export const SingleItem = {
|
|
51
|
+
args: {
|
|
52
|
+
items: [
|
|
53
|
+
{
|
|
54
|
+
title: "Click to expand",
|
|
55
|
+
content:
|
|
56
|
+
"This is the content that appears when you expand this accordion item.",
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Accordion with multiple items expanded by default.
|
|
64
|
+
* Note: Native HTML details/summary doesn't support open by default,
|
|
65
|
+
* but you can control this with CSS or JavaScript if needed.
|
|
66
|
+
*/
|
|
67
|
+
export const MultipleItems = {
|
|
68
|
+
args: {
|
|
69
|
+
items: [
|
|
70
|
+
{
|
|
71
|
+
title: "First Section",
|
|
72
|
+
content: "Content for the first section.",
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
title: "Second Section",
|
|
76
|
+
content: "Content for the second section.",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
title: "Third Section",
|
|
80
|
+
content: "Content for the third section.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
title: "Fourth Section",
|
|
84
|
+
content: "Content for the fourth section.",
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
import { focusRingStyles } from "../../lib/styles/focus-ring.styles.js";
|
|
3
|
+
|
|
4
|
+
export const accordionStyles = css`
|
|
5
|
+
${focusRingStyles}
|
|
6
|
+
|
|
7
|
+
:host {
|
|
8
|
+
display: block;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.accordion {
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
gap: var(--g-theme-spacing-sm);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.accordion__item {
|
|
18
|
+
border: 1px solid var(--g-theme-color-border-default);
|
|
19
|
+
border-radius: var(--g-theme-border-radius-md, 0.5rem);
|
|
20
|
+
height: 3.5rem;
|
|
21
|
+
transition: height 0.25s;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.accordion__item[open] {
|
|
25
|
+
height: auto;
|
|
26
|
+
overflow: clip;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.accordion__summary {
|
|
30
|
+
padding: var(--g-theme-spacing-md);
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
background: var(--g-theme-color-background-subtle);
|
|
33
|
+
border: var(--g-theme-border-width-md) solid
|
|
34
|
+
var(--g-theme-color-border-subtle);
|
|
35
|
+
border-radius: var(--g-theme-border-radius-md);
|
|
36
|
+
font-weight: var(--g-typography-font-weight-500);
|
|
37
|
+
list-style: none;
|
|
38
|
+
display: flex;
|
|
39
|
+
justify-content: space-between;
|
|
40
|
+
align-items: center;
|
|
41
|
+
transition-property: background-color, outline-width, outline-color;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.accordion__summary:hover {
|
|
45
|
+
background: var(--g-theme-color-background-subtle-hover);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.accordion__summary::-webkit-details-marker {
|
|
49
|
+
display: none;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.accordion__summary::after {
|
|
53
|
+
content: "+";
|
|
54
|
+
font: var(--g-theme-typography-title-default);
|
|
55
|
+
line-height: 1;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.accordion__item[open] .accordion__summary::after {
|
|
59
|
+
content: "-";
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.accordion__content {
|
|
63
|
+
padding: var(--g-theme-spacing-md);
|
|
64
|
+
background: var(--g-theme-color-background-default);
|
|
65
|
+
}
|
|
66
|
+
`;
|
|
@@ -66,7 +66,7 @@ export class GrantCodesAppBar extends LitElement {
|
|
|
66
66
|
<!-- Mobile Menu Button -->
|
|
67
67
|
<button
|
|
68
68
|
type="button"
|
|
69
|
-
class="app-bar__menu-button"
|
|
69
|
+
class="app-bar__menu-button focus-ring"
|
|
70
70
|
aria-label="${this._mobileMenuOpen ? "Close menu" : "Open menu"}"
|
|
71
71
|
aria-expanded="${this._mobileMenuOpen}"
|
|
72
72
|
@click=${this._toggleMobileMenu}
|
|
@@ -86,5 +86,3 @@ export class GrantCodesAppBar extends LitElement {
|
|
|
86
86
|
`;
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
|