@grantcodes/ui 2.10.0 → 2.10.2

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +1 -1
  3. package/src/components/accordion/accordion.component.js +3 -1
  4. package/src/components/accordion/accordion.css +47 -42
  5. package/src/components/accordion/accordion.react.js +4 -4
  6. package/src/components/app-bar/app-bar.component.js +15 -9
  7. package/src/components/app-bar/app-bar.css +256 -250
  8. package/src/components/app-bar/app-bar.react.js +4 -4
  9. package/src/components/app-bar/app-bar.test.js +1 -3
  10. package/src/components/app-bar/nav-link.component.js +3 -1
  11. package/src/components/app-bar/nav-link.css +50 -45
  12. package/src/components/app-bar/nav-link.react.js +4 -4
  13. package/src/components/avatar/avatar.css +19 -21
  14. package/src/components/avatar/avatar.react.js +4 -4
  15. package/src/components/badge/badge.css +51 -51
  16. package/src/components/badge/badge.react.js +4 -4
  17. package/src/components/breadcrumb/breadcrumb.component.js +3 -1
  18. package/src/components/breadcrumb/breadcrumb.css +73 -73
  19. package/src/components/breadcrumb/breadcrumb.react.js +8 -5
  20. package/src/components/button/button.component.js +3 -1
  21. package/src/components/button/button.css +38 -38
  22. package/src/components/button/button.react.js +4 -4
  23. package/src/components/button-group/button-group.css +33 -33
  24. package/src/components/button-group/button-group.react.js +4 -4
  25. package/src/components/card/card.css +150 -150
  26. package/src/components/card/card.react.js +4 -4
  27. package/src/components/code-preview/code-preview.css +11 -12
  28. package/src/components/code-preview/code-preview.react.js +4 -4
  29. package/src/components/container/container.css +37 -37
  30. package/src/components/container/container.react.js +4 -4
  31. package/src/components/countdown/countdown.component.js +5 -3
  32. package/src/components/countdown/countdown.stories.js +1 -2
  33. package/src/components/cta/cta.css +55 -55
  34. package/src/components/cta/cta.react.js +4 -4
  35. package/src/components/dialog/dialog.css +48 -49
  36. package/src/components/dialog/dialog.react.js +4 -4
  37. package/src/components/dropdown/dropdown.css +123 -121
  38. package/src/components/dropdown/dropdown.react.js +5 -5
  39. package/src/components/dropzone/dropzone.css +5 -3
  40. package/src/components/dropzone/dropzone.react.js +4 -4
  41. package/src/components/feature-list/feature-list.css +71 -71
  42. package/src/components/feature-list/feature-list.react.js +4 -4
  43. package/src/components/footer/footer-column.css +39 -39
  44. package/src/components/footer/footer.css +68 -69
  45. package/src/components/footer/footer.react.js +5 -5
  46. package/src/components/form-field/form-field.css +40 -40
  47. package/src/components/form-field/form-field.react.js +4 -4
  48. package/src/components/gallery/gallery-image.react.js +4 -4
  49. package/src/components/gallery/gallery.css +72 -72
  50. package/src/components/gallery/gallery.react.js +4 -4
  51. package/src/components/gallery/gallery.test.js +5 -1
  52. package/src/components/hero/hero.css +61 -57
  53. package/src/components/hero/hero.react.js +4 -4
  54. package/src/components/icon/icon.css +27 -27
  55. package/src/components/icon/icon.react.js +4 -4
  56. package/src/components/loading/loading.css +30 -31
  57. package/src/components/loading/loading.react.js +4 -4
  58. package/src/components/logo-cloud/logo-cloud.css +60 -60
  59. package/src/components/logo-cloud/logo-cloud.react.js +4 -4
  60. package/src/components/map/map.component.js +3 -4
  61. package/src/components/map/map.css +36 -36
  62. package/src/components/media-text/media-text.css +58 -58
  63. package/src/components/media-text/media-text.react.js +4 -4
  64. package/src/components/newsletter/newsletter.css +78 -78
  65. package/src/components/newsletter/newsletter.react.js +4 -4
  66. package/src/components/notice/notice.css +38 -38
  67. package/src/components/notice/notice.react.js +4 -4
  68. package/src/components/pagination/pagination.css +6 -7
  69. package/src/components/pagination/pagination.react.js +4 -4
  70. package/src/components/pricing/pricing.css +137 -137
  71. package/src/components/pricing/pricing.react.js +4 -4
  72. package/src/components/sidebar/sidebar.component.js +3 -1
  73. package/src/components/sidebar/sidebar.css +180 -180
  74. package/src/components/sidebar/sidebar.react.js +4 -4
  75. package/src/components/stats/stats.css +58 -58
  76. package/src/components/stats/stats.react.js +4 -4
  77. package/src/components/tabs/internal/tabs-button.component.js +3 -1
  78. package/src/components/tabs/internal/tabs-button.react.js +4 -4
  79. package/src/components/tabs/tab.component.js +3 -1
  80. package/src/components/tabs/tab.react.js +4 -4
  81. package/src/components/tabs/tabs.component.js +3 -1
  82. package/src/components/tabs/tabs.css +82 -82
  83. package/src/components/tabs/tabs.react.js +4 -4
  84. package/src/components/testimonials/testimonials.css +72 -72
  85. package/src/components/testimonials/testimonials.react.js +4 -4
  86. package/src/components/toast/toast.component.js +3 -1
  87. package/src/components/toast/toast.css +198 -198
  88. package/src/components/toast/toast.react.js +5 -5
  89. package/src/components/tooltip/tooltip.css +52 -51
  90. package/src/components/tooltip/tooltip.react.js +4 -4
  91. package/src/css/elements/forms/input.css +1 -1
  92. package/src/css/reset.css +102 -102
  93. package/src/css/typography.css +13 -11
  94. package/src/exports.test.js +101 -95
  95. package/src/lib/styles/all.css +37 -37
  96. package/src/lib/styles/focus-ring.css +20 -20
  97. package/src/react.js +45 -39
  98. package/vite-plugin-css-import-attributes.js +5 -2
@@ -1,9 +1,9 @@
1
- import React from "react"
2
- import { createComponent } from "@lit/react"
3
- import { GrantCodesMediaText } from "./media-text.js"
1
+ import React from "react";
2
+ import { createComponent } from "@lit/react";
3
+ import { GrantCodesMediaText } from "./media-text.js";
4
4
 
5
5
  export const MediaText = createComponent({
6
6
  tagName: "grantcodes-media-text",
7
7
  elementClass: GrantCodesMediaText,
8
8
  react: React,
9
- })
9
+ });
@@ -1,91 +1,91 @@
1
- *,
2
- *::before,
3
- *::after {
4
- box-sizing: border-box;
5
- }
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ box-sizing: border-box;
5
+ }
6
6
 
7
- :host {
8
- display: block;
9
- }
7
+ :host {
8
+ display: block;
9
+ }
10
10
 
11
- .newsletter {
12
- padding-block: var(--g-theme-spacing-3xl);
13
- padding-inline: var(--g-theme-spacing-md);
14
- background: var(--g-theme-color-background-primary-knockout, #7c3aed);
15
- text-align: center;
16
- }
11
+ .newsletter {
12
+ padding-block: var(--g-theme-spacing-3xl);
13
+ padding-inline: var(--g-theme-spacing-md);
14
+ background: var(--g-theme-color-background-primary-knockout, #7c3aed);
15
+ text-align: center;
16
+ }
17
17
 
18
- .newsletter__container {
19
- max-width: 55ch;
20
- margin: 0 auto;
21
- }
18
+ .newsletter__container {
19
+ max-width: 55ch;
20
+ margin: 0 auto;
21
+ }
22
22
 
23
- .newsletter__title {
24
- margin: 0 0 var(--g-theme-spacing-sm);
25
- font: var(--g-typography-h4-font);
26
- color: var(--g-theme-color-content-primary-knockout, #ffffff);
27
- }
23
+ .newsletter__title {
24
+ margin: 0 0 var(--g-theme-spacing-sm);
25
+ font: var(--g-typography-h4-font);
26
+ color: var(--g-theme-color-content-primary-knockout, #ffffff);
27
+ }
28
28
 
29
- .newsletter__text {
30
- margin: 0 0 var(--g-theme-spacing-xl);
31
- font: var(--g-theme-typography-body-lg);
32
- color: var(--g-theme-color-content-primary-knockout, #ffffff);
33
- opacity: 0.9;
34
- }
29
+ .newsletter__text {
30
+ margin: 0 0 var(--g-theme-spacing-xl);
31
+ font: var(--g-theme-typography-body-lg);
32
+ color: var(--g-theme-color-content-primary-knockout, #ffffff);
33
+ opacity: 0.9;
34
+ }
35
35
 
36
- .newsletter__form {
37
- width: 100%;
38
- }
36
+ .newsletter__form {
37
+ width: 100%;
38
+ }
39
39
 
40
- .newsletter__label {
41
- position: absolute;
42
- width: 1px;
43
- height: 1px;
44
- padding: 0;
45
- margin: -1px;
46
- overflow: hidden;
47
- clip: rect(0, 0, 0, 0);
48
- white-space: nowrap;
49
- border: 0;
50
- }
40
+ .newsletter__label {
41
+ position: absolute;
42
+ width: 1px;
43
+ height: 1px;
44
+ padding: 0;
45
+ margin: -1px;
46
+ overflow: hidden;
47
+ clip: rect(0, 0, 0, 0);
48
+ white-space: nowrap;
49
+ border: 0;
50
+ }
51
51
 
52
- .newsletter__field {
53
- display: flex;
54
- flex-direction: column;
55
- gap: var(--g-theme-spacing-sm);
56
- }
52
+ .newsletter__field {
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: var(--g-theme-spacing-sm);
56
+ }
57
57
 
58
- .newsletter__input-wrap {
59
- display: flex;
60
- gap: var(--g-theme-spacing-sm);
61
- }
58
+ .newsletter__input-wrap {
59
+ display: flex;
60
+ gap: var(--g-theme-spacing-sm);
61
+ }
62
62
 
63
- .newsletter__input {
64
- flex: 1;
65
- min-width: 0;
66
- padding-block: var(--g-theme-spacing-sm);
67
- padding-inline: var(--g-theme-spacing-md);
68
- font-size: var(--g-theme-typography-body-default-font-size);
69
- border: 2px solid transparent;
70
- border-radius: var(--g-theme-border-radius-md, 0.5rem);
71
- background: var(--g-theme-color-background-default);
72
- color: var(--g-theme-color-content-default);
73
- outline: none;
74
- }
63
+ .newsletter__input {
64
+ flex: 1;
65
+ min-width: 0;
66
+ padding-block: var(--g-theme-spacing-sm);
67
+ padding-inline: var(--g-theme-spacing-md);
68
+ font-size: var(--g-theme-typography-body-default-font-size);
69
+ border: 2px solid transparent;
70
+ border-radius: var(--g-theme-border-radius-md, 0.5rem);
71
+ background: var(--g-theme-color-background-default);
72
+ color: var(--g-theme-color-content-default);
73
+ outline: none;
74
+ }
75
75
 
76
- .newsletter__input:focus {
77
- border-color: var(--g-theme-color-border-default);
78
- }
76
+ .newsletter__input:focus {
77
+ border-color: var(--g-theme-color-border-default);
78
+ }
79
79
 
80
- .newsletter__disclaimer {
81
- margin: var(--g-theme-spacing-md) 0 0;
82
- font: var(--g-theme-typography-body-sm);
83
- color: var(--g-theme-color-content-primary-knockout, #ffffff);
84
- opacity: 0.75;
85
- }
80
+ .newsletter__disclaimer {
81
+ margin: var(--g-theme-spacing-md) 0 0;
82
+ font: var(--g-theme-typography-body-sm);
83
+ color: var(--g-theme-color-content-primary-knockout, #ffffff);
84
+ opacity: 0.75;
85
+ }
86
86
 
87
- @media (max-width: 480px) {
88
- .newsletter__input-wrap {
89
- flex-direction: column;
90
- }
91
- }
87
+ @media (max-width: 480px) {
88
+ .newsletter__input-wrap {
89
+ flex-direction: column;
90
+ }
91
+ }
@@ -1,9 +1,9 @@
1
- import React from "react"
2
- import { createComponent } from "@lit/react"
3
- import { GrantCodesNewsletter } from "./newsletter.js"
1
+ import React from "react";
2
+ import { createComponent } from "@lit/react";
3
+ import { GrantCodesNewsletter } from "./newsletter.js";
4
4
 
5
5
  export const Newsletter = createComponent({
6
6
  tagName: "grantcodes-newsletter",
7
7
  elementClass: GrantCodesNewsletter,
8
8
  react: React,
9
- })
9
+ });
@@ -1,73 +1,73 @@
1
1
  *,
2
2
  *::before,
3
3
  *::after {
4
- box-sizing: border-box;
4
+ box-sizing: border-box;
5
5
  }
6
6
 
7
7
  .notice {
8
- display: flex;
9
- flex-direction: row;
10
- align-items: flex-start;
11
- gap: var(--g-theme-spacing-md);
12
- padding: var(--g-theme-spacing-md);
13
- border-radius: var(--g-theme-border-radius-sm, 0.25rem);
14
- view-transition-name: notice;
15
- transition: opacity 0.5s;
8
+ display: flex;
9
+ flex-direction: row;
10
+ align-items: flex-start;
11
+ gap: var(--g-theme-spacing-md);
12
+ padding: var(--g-theme-spacing-md);
13
+ border-radius: var(--g-theme-border-radius-sm, 0.25rem);
14
+ view-transition-name: notice;
15
+ transition: opacity 0.5s;
16
16
  }
17
17
 
18
18
  .notice--info {
19
- color: var(--g-color-utility-blue-900);
20
- background-color: var(--g-color-utility-blue-100);
19
+ color: var(--g-color-utility-blue-900);
20
+ background-color: var(--g-color-utility-blue-100);
21
21
  }
22
22
 
23
23
  .notice--success {
24
- color: var(--g-color-utility-green-900);
25
- background-color: var(--g-color-utility-green-100);
24
+ color: var(--g-color-utility-green-900);
25
+ background-color: var(--g-color-utility-green-100);
26
26
  }
27
27
 
28
28
  .notice--warning {
29
- color: var(--g-color-utility-yellow-900);
30
- background-color: var(--g-color-utility-yellow-100);
29
+ color: var(--g-color-utility-yellow-900);
30
+ background-color: var(--g-color-utility-yellow-100);
31
31
  }
32
32
 
33
33
  .notice--error {
34
- color: var(--g-color-utility-red-900);
35
- background-color: var(--g-color-utility-red-100);
34
+ color: var(--g-color-utility-red-900);
35
+ background-color: var(--g-color-utility-red-100);
36
36
  }
37
37
 
38
38
  .notice__title {
39
- font-size: var(--g-theme-typography-body-default-font-size);
40
- margin: 0;
39
+ font-size: var(--g-theme-typography-body-default-font-size);
40
+ margin: 0;
41
41
  }
42
42
 
43
43
  .notice__icon {
44
- font-size: calc(var(--g-theme-typography-body-default-line-height) * 1em);
44
+ font-size: calc(var(--g-theme-typography-body-default-line-height) * 1em);
45
45
  }
46
46
 
47
47
  .notice__content {
48
- flex-grow: 1;
48
+ flex-grow: 1;
49
49
  }
50
50
 
51
51
  .notice__close {
52
- background: none;
53
- color: inherit;
54
- opacity: 0.5;
55
- transition: 0.2s;
56
- font-size: calc(var(--g-theme-typography-body-default-line-height) * 1em);
57
- line-height: 1;
58
- padding: var(--g-theme-spacing-sm);
59
- margin: calc(-1 * var(--g-theme-spacing-sm)) calc(-1 * var(--g-theme-spacing-sm)) 0 0;
60
- border: 0;
52
+ background: none;
53
+ color: inherit;
54
+ opacity: 0.5;
55
+ transition: 0.2s;
56
+ font-size: calc(var(--g-theme-typography-body-default-line-height) * 1em);
57
+ line-height: 1;
58
+ padding: var(--g-theme-spacing-sm);
59
+ margin: calc(-1 * var(--g-theme-spacing-sm))
60
+ calc(-1 * var(--g-theme-spacing-sm)) 0 0;
61
+ border: 0;
61
62
 
62
- &:hover,
63
- &:focus-visible {
64
- background: none;
65
- color: inherit;
66
- opacity: 1;
67
- }
63
+ &:hover,
64
+ &:focus-visible {
65
+ background: none;
66
+ color: inherit;
67
+ opacity: 1;
68
+ }
68
69
  }
69
70
 
70
71
  .notice p {
71
- margin: 0;
72
+ margin: 0;
72
73
  }
73
-
@@ -1,9 +1,9 @@
1
- import React from "react"
2
- import { createComponent } from "@lit/react"
3
- import { GrantCodesNotice } from "./notice.js"
1
+ import React from "react";
2
+ import { createComponent } from "@lit/react";
3
+ import { GrantCodesNotice } from "./notice.js";
4
4
 
5
5
  export const Notice = createComponent({
6
6
  tagName: "grantcodes-notice",
7
7
  elementClass: GrantCodesNotice,
8
8
  react: React,
9
- })
9
+ });
@@ -1,20 +1,19 @@
1
1
  *,
2
2
  *::before,
3
3
  *::after {
4
- box-sizing: border-box;
4
+ box-sizing: border-box;
5
5
  }
6
6
 
7
7
  .pagination {
8
- display: flex;
9
- flex-direction: row;
10
- align-items: center;
8
+ display: flex;
9
+ flex-direction: row;
10
+ align-items: center;
11
11
  }
12
12
 
13
13
  .pagination__next {
14
- margin-inline-start: auto;
14
+ margin-inline-start: auto;
15
15
  }
16
16
 
17
17
  .pagination__previous {
18
- margin-inline-end: auto;
18
+ margin-inline-end: auto;
19
19
  }
20
-
@@ -1,9 +1,9 @@
1
- import React from "react"
2
- import { createComponent } from "@lit/react"
3
- import { GrantCodesPagination } from "./pagination.js"
1
+ import React from "react";
2
+ import { createComponent } from "@lit/react";
3
+ import { GrantCodesPagination } from "./pagination.js";
4
4
 
5
5
  export const Pagination = createComponent({
6
6
  tagName: "grantcodes-pagination",
7
7
  elementClass: GrantCodesPagination,
8
8
  react: React,
9
- })
9
+ });
@@ -1,137 +1,137 @@
1
- *,
2
- *::before,
3
- *::after {
4
- box-sizing: border-box;
5
- }
6
-
7
- :host {
8
- display: block;
9
- }
10
-
11
- .pricing {
12
- padding-block: var(--g-theme-spacing-3xl);
13
- padding-inline: var(--g-theme-spacing-md);
14
- }
15
-
16
- .pricing__container {
17
- max-width: 1200px;
18
- margin: 0 auto;
19
- }
20
-
21
- .pricing__title {
22
- margin: 0 0 var(--g-theme-spacing-sm);
23
- font-size: var(--g-theme-typography-h4-font-size);
24
- font-weight: var(--g-theme-typography-h4-font-weight);
25
- text-align: center;
26
- color: var(--g-theme-color-content-default);
27
- }
28
-
29
- .pricing__subtitle {
30
- margin: 0 auto var(--g-theme-spacing-2xl);
31
- font-size: var(--g-theme-typography-body-lg-font-size);
32
- text-align: center;
33
- color: var(--g-theme-color-content-subtle);
34
- max-width: 55ch;
35
- }
36
-
37
- .pricing__grid {
38
- display: grid;
39
- grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
40
- gap: var(--g-theme-spacing-lg);
41
- align-items: start;
42
- padding: 0;
43
- margin: 0;
44
- list-style: none;
45
- }
46
-
47
- .pricing__tier {
48
- display: flex;
49
- flex-direction: column;
50
- gap: var(--g-theme-spacing-lg);
51
- padding: var(--g-theme-spacing-xl);
52
- border: 1px solid var(--g-theme-color-border-default);
53
- border-radius: var(--g-theme-border-radius-md, 0.5rem);
54
- background: var(--g-theme-color-background-default);
55
- }
56
-
57
- .pricing__tier--highlighted {
58
- border-color: var(--g-theme-color-border-primary, #7c3aed);
59
- background: var(--g-theme-color-background-subtle);
60
- box-shadow: var(--g-theme-shadow-lg);
61
- }
62
-
63
- .pricing__tier-header {
64
- display: flex;
65
- flex-direction: column;
66
- gap: var(--g-theme-spacing-sm);
67
- }
68
-
69
- .pricing__tier-name {
70
- margin: 0;
71
- font-size: var(--g-theme-typography-body-lg-font-size);
72
- font-weight: var(--g-theme-typography-label-lg-font-weight);
73
- color: var(--g-theme-color-content-default);
74
- }
75
-
76
- .pricing__price-wrap {
77
- display: flex;
78
- align-items: baseline;
79
- gap: var(--g-theme-spacing-xs);
80
- }
81
-
82
- .pricing__price {
83
- font: var(--g-typography-h2-font);
84
- color: var(--g-theme-color-content-default);
85
- }
86
-
87
- .pricing__period {
88
- font-size: var(--g-theme-typography-body-default-font-size);
89
- color: var(--g-theme-color-content-subtle);
90
- }
91
-
92
- .pricing__tier-desc {
93
- margin: 0;
94
- font: var(--g-theme-typography-body-sm);
95
- color: var(--g-theme-color-content-subtle);
96
- }
97
-
98
- .pricing__features {
99
- display: flex;
100
- flex-direction: column;
101
- gap: var(--g-theme-spacing-sm);
102
- padding: 0;
103
- margin: 0;
104
- list-style: none;
105
- flex: 1;
106
- }
107
-
108
- .pricing__feature {
109
- display: flex;
110
- align-items: center;
111
- gap: var(--g-theme-spacing-sm);
112
- font-size: var(--g-theme-typography-body-default-font-size);
113
- color: var(--g-theme-color-content-default);
114
- }
115
-
116
- .pricing__feature--excluded {
117
- color: var(--g-theme-color-content-subtle);
118
- text-decoration: line-through;
119
- }
120
-
121
- .pricing__feature-icon {
122
- font: var(--g-theme-typography-body-sm);
123
- color: var(--g-theme-color-content-primary, #7c3aed);
124
- flex-shrink: 0;
125
- }
126
-
127
- .pricing__feature--excluded .pricing__feature-icon {
128
- color: var(--g-theme-color-content-subtle);
129
- }
130
-
131
- .pricing__cta {
132
- margin-top: auto;
133
- }
134
-
135
- .pricing__cta grantcodes-button {
136
- width: 100%;
137
- }
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ :host {
8
+ display: block;
9
+ }
10
+
11
+ .pricing {
12
+ padding-block: var(--g-theme-spacing-3xl);
13
+ padding-inline: var(--g-theme-spacing-md);
14
+ }
15
+
16
+ .pricing__container {
17
+ max-width: 1200px;
18
+ margin: 0 auto;
19
+ }
20
+
21
+ .pricing__title {
22
+ margin: 0 0 var(--g-theme-spacing-sm);
23
+ font-size: var(--g-theme-typography-h4-font-size);
24
+ font-weight: var(--g-theme-typography-h4-font-weight);
25
+ text-align: center;
26
+ color: var(--g-theme-color-content-default);
27
+ }
28
+
29
+ .pricing__subtitle {
30
+ margin: 0 auto var(--g-theme-spacing-2xl);
31
+ font-size: var(--g-theme-typography-body-lg-font-size);
32
+ text-align: center;
33
+ color: var(--g-theme-color-content-subtle);
34
+ max-width: 55ch;
35
+ }
36
+
37
+ .pricing__grid {
38
+ display: grid;
39
+ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
40
+ gap: var(--g-theme-spacing-lg);
41
+ align-items: start;
42
+ padding: 0;
43
+ margin: 0;
44
+ list-style: none;
45
+ }
46
+
47
+ .pricing__tier {
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: var(--g-theme-spacing-lg);
51
+ padding: var(--g-theme-spacing-xl);
52
+ border: 1px solid var(--g-theme-color-border-default);
53
+ border-radius: var(--g-theme-border-radius-md, 0.5rem);
54
+ background: var(--g-theme-color-background-default);
55
+ }
56
+
57
+ .pricing__tier--highlighted {
58
+ border-color: var(--g-theme-color-border-primary, #7c3aed);
59
+ background: var(--g-theme-color-background-subtle);
60
+ box-shadow: var(--g-theme-shadow-lg);
61
+ }
62
+
63
+ .pricing__tier-header {
64
+ display: flex;
65
+ flex-direction: column;
66
+ gap: var(--g-theme-spacing-sm);
67
+ }
68
+
69
+ .pricing__tier-name {
70
+ margin: 0;
71
+ font-size: var(--g-theme-typography-body-lg-font-size);
72
+ font-weight: var(--g-theme-typography-label-lg-font-weight);
73
+ color: var(--g-theme-color-content-default);
74
+ }
75
+
76
+ .pricing__price-wrap {
77
+ display: flex;
78
+ align-items: baseline;
79
+ gap: var(--g-theme-spacing-xs);
80
+ }
81
+
82
+ .pricing__price {
83
+ font: var(--g-typography-h2-font);
84
+ color: var(--g-theme-color-content-default);
85
+ }
86
+
87
+ .pricing__period {
88
+ font-size: var(--g-theme-typography-body-default-font-size);
89
+ color: var(--g-theme-color-content-subtle);
90
+ }
91
+
92
+ .pricing__tier-desc {
93
+ margin: 0;
94
+ font: var(--g-theme-typography-body-sm);
95
+ color: var(--g-theme-color-content-subtle);
96
+ }
97
+
98
+ .pricing__features {
99
+ display: flex;
100
+ flex-direction: column;
101
+ gap: var(--g-theme-spacing-sm);
102
+ padding: 0;
103
+ margin: 0;
104
+ list-style: none;
105
+ flex: 1;
106
+ }
107
+
108
+ .pricing__feature {
109
+ display: flex;
110
+ align-items: center;
111
+ gap: var(--g-theme-spacing-sm);
112
+ font-size: var(--g-theme-typography-body-default-font-size);
113
+ color: var(--g-theme-color-content-default);
114
+ }
115
+
116
+ .pricing__feature--excluded {
117
+ color: var(--g-theme-color-content-subtle);
118
+ text-decoration: line-through;
119
+ }
120
+
121
+ .pricing__feature-icon {
122
+ font: var(--g-theme-typography-body-sm);
123
+ color: var(--g-theme-color-content-primary, #7c3aed);
124
+ flex-shrink: 0;
125
+ }
126
+
127
+ .pricing__feature--excluded .pricing__feature-icon {
128
+ color: var(--g-theme-color-content-subtle);
129
+ }
130
+
131
+ .pricing__cta {
132
+ margin-top: auto;
133
+ }
134
+
135
+ .pricing__cta grantcodes-button {
136
+ width: 100%;
137
+ }
@@ -1,9 +1,9 @@
1
- import React from "react"
2
- import { createComponent } from "@lit/react"
3
- import { GrantCodesPricing } from "./pricing.js"
1
+ import React from "react";
2
+ import { createComponent } from "@lit/react";
3
+ import { GrantCodesPricing } from "./pricing.js";
4
4
 
5
5
  export const Pricing = createComponent({
6
6
  tagName: "grantcodes-pricing",
7
7
  elementClass: GrantCodesPricing,
8
8
  react: React,
9
- })
9
+ });
@@ -1,6 +1,8 @@
1
1
  import { html, LitElement } from "lit";
2
2
  import { classMap } from "lit/directives/class-map.js";
3
- import focusRingStyles from "../../lib/styles/focus-ring.css" with { type: "css" };
3
+ import focusRingStyles from "../../lib/styles/focus-ring.css" with {
4
+ type: "css",
5
+ };
4
6
  import sidebarStyles from "./sidebar.css" with { type: "css" };
5
7
 
6
8
  export class GrantCodesSidebar extends LitElement {