@dnanpm/ui-components 0.6.0 → 0.8.0

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 (205) hide show
  1. package/dist/components/AccordionItem/AccordionItem.css +16 -16
  2. package/dist/components/AccordionItem/AccordionItem.module.css.cjs +11 -11
  3. package/dist/components/AccordionItem/AccordionItem.module.css.js +11 -11
  4. package/dist/components/Breadcrumb/Breadcrumb.css +9 -9
  5. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +6 -6
  6. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +6 -6
  7. package/dist/components/Button/Button.css +32 -30
  8. package/dist/components/Button/Button.module.css.cjs +11 -11
  9. package/dist/components/Button/Button.module.css.js +11 -11
  10. package/dist/components/ButtonCard/ButtonCard.cjs +105 -0
  11. package/dist/components/ButtonCard/ButtonCard.cjs.map +1 -0
  12. package/dist/components/ButtonCard/ButtonCard.css +167 -0
  13. package/dist/components/ButtonCard/ButtonCard.d.ts +3 -0
  14. package/dist/components/ButtonCard/ButtonCard.d.ts.map +1 -0
  15. package/dist/components/ButtonCard/ButtonCard.js +105 -0
  16. package/dist/components/ButtonCard/ButtonCard.js.map +1 -0
  17. package/dist/components/ButtonCard/ButtonCard.module.css.cjs +18 -0
  18. package/dist/components/ButtonCard/ButtonCard.module.css.cjs.map +1 -0
  19. package/dist/components/ButtonCard/ButtonCard.module.css.js +19 -0
  20. package/dist/components/ButtonCard/ButtonCard.module.css.js.map +1 -0
  21. package/dist/components/ButtonCard/ButtonCard.types.d.ts +103 -0
  22. package/dist/components/ButtonCard/ButtonCard.types.d.ts.map +1 -0
  23. package/dist/components/ButtonCard/index.d.ts +3 -0
  24. package/dist/components/ButtonCard/index.d.ts.map +1 -0
  25. package/dist/components/Drawer/Drawer.cjs +101 -0
  26. package/dist/components/Drawer/Drawer.cjs.map +1 -0
  27. package/dist/components/Drawer/Drawer.css +219 -0
  28. package/dist/components/Drawer/Drawer.d.ts +3 -0
  29. package/dist/components/Drawer/Drawer.d.ts.map +1 -0
  30. package/dist/components/Drawer/Drawer.js +101 -0
  31. package/dist/components/Drawer/Drawer.js.map +1 -0
  32. package/dist/components/Drawer/Drawer.module.css.cjs +37 -0
  33. package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -0
  34. package/dist/components/Drawer/Drawer.module.css.js +37 -0
  35. package/dist/components/Drawer/Drawer.module.css.js.map +1 -0
  36. package/dist/components/Drawer/Drawer.types.d.ts +63 -0
  37. package/dist/components/Drawer/Drawer.types.d.ts.map +1 -0
  38. package/dist/components/Drawer/index.d.ts +3 -0
  39. package/dist/components/Drawer/index.d.ts.map +1 -0
  40. package/dist/components/Footer/Footer.cjs +272 -0
  41. package/dist/components/Footer/Footer.cjs.map +1 -0
  42. package/dist/components/Footer/Footer.css +473 -0
  43. package/dist/components/Footer/Footer.d.ts +3 -0
  44. package/dist/components/Footer/Footer.d.ts.map +1 -0
  45. package/dist/components/Footer/Footer.js +272 -0
  46. package/dist/components/Footer/Footer.js.map +1 -0
  47. package/dist/components/Footer/Footer.module.css.cjs +80 -0
  48. package/dist/components/Footer/Footer.module.css.cjs.map +1 -0
  49. package/dist/components/Footer/Footer.module.css.js +80 -0
  50. package/dist/components/Footer/Footer.module.css.js.map +1 -0
  51. package/dist/components/Footer/Footer.types.d.ts +128 -0
  52. package/dist/components/Footer/Footer.types.d.ts.map +1 -0
  53. package/dist/components/Footer/Footer.utils.cjs +41 -0
  54. package/dist/components/Footer/Footer.utils.cjs.map +1 -0
  55. package/dist/components/Footer/Footer.utils.d.ts +13 -0
  56. package/dist/components/Footer/Footer.utils.d.ts.map +1 -0
  57. package/dist/components/Footer/Footer.utils.js +41 -0
  58. package/dist/components/Footer/Footer.utils.js.map +1 -0
  59. package/dist/components/Footer/assets/app-store-badge.svg.cjs +4 -0
  60. package/dist/components/Footer/assets/app-store-badge.svg.cjs.map +1 -0
  61. package/dist/components/Footer/assets/app-store-badge.svg.js +5 -0
  62. package/dist/components/Footer/assets/app-store-badge.svg.js.map +1 -0
  63. package/dist/components/Footer/assets/google-play-badge.svg.cjs +4 -0
  64. package/dist/components/Footer/assets/google-play-badge.svg.cjs.map +1 -0
  65. package/dist/components/Footer/assets/google-play-badge.svg.js +5 -0
  66. package/dist/components/Footer/assets/google-play-badge.svg.js.map +1 -0
  67. package/dist/components/Footer/index.d.ts +3 -0
  68. package/dist/components/Footer/index.d.ts.map +1 -0
  69. package/dist/components/FunctionButton/FunctionButton.cjs +34 -0
  70. package/dist/components/FunctionButton/FunctionButton.cjs.map +1 -0
  71. package/dist/components/FunctionButton/FunctionButton.css +125 -0
  72. package/dist/components/FunctionButton/FunctionButton.d.ts +3 -0
  73. package/dist/components/FunctionButton/FunctionButton.d.ts.map +1 -0
  74. package/dist/components/FunctionButton/FunctionButton.js +34 -0
  75. package/dist/components/FunctionButton/FunctionButton.js.map +1 -0
  76. package/dist/components/FunctionButton/FunctionButton.module.css.cjs +11 -0
  77. package/dist/components/FunctionButton/FunctionButton.module.css.cjs.map +1 -0
  78. package/dist/components/FunctionButton/FunctionButton.module.css.js +12 -0
  79. package/dist/components/FunctionButton/FunctionButton.module.css.js.map +1 -0
  80. package/dist/components/FunctionButton/FunctionButton.types.d.ts +21 -0
  81. package/dist/components/FunctionButton/FunctionButton.types.d.ts.map +1 -0
  82. package/dist/components/FunctionButton/index.d.ts +3 -0
  83. package/dist/components/FunctionButton/index.d.ts.map +1 -0
  84. package/dist/components/Hero/Hero.cjs +44 -30
  85. package/dist/components/Hero/Hero.cjs.map +1 -1
  86. package/dist/components/Hero/Hero.css +89 -100
  87. package/dist/components/Hero/Hero.d.ts +1 -1
  88. package/dist/components/Hero/Hero.d.ts.map +1 -1
  89. package/dist/components/Hero/Hero.js +45 -31
  90. package/dist/components/Hero/Hero.js.map +1 -1
  91. package/dist/components/Hero/Hero.module.css.cjs +17 -20
  92. package/dist/components/Hero/Hero.module.css.cjs.map +1 -1
  93. package/dist/components/Hero/Hero.module.css.js +17 -20
  94. package/dist/components/Hero/Hero.module.css.js.map +1 -1
  95. package/dist/components/Hero/Hero.types.d.ts +8 -3
  96. package/dist/components/Hero/Hero.types.d.ts.map +1 -1
  97. package/dist/components/Hero/Hero.utils.cjs +5 -8
  98. package/dist/components/Hero/Hero.utils.cjs.map +1 -1
  99. package/dist/components/Hero/Hero.utils.d.ts +2 -2
  100. package/dist/components/Hero/Hero.utils.d.ts.map +1 -1
  101. package/dist/components/Hero/Hero.utils.js +5 -8
  102. package/dist/components/Hero/Hero.utils.js.map +1 -1
  103. package/dist/components/IconButton/IconButton.css +31 -32
  104. package/dist/components/IconButton/IconButton.module.css.cjs +9 -9
  105. package/dist/components/IconButton/IconButton.module.css.js +9 -9
  106. package/dist/components/MainNavigation/MainNavigation.cjs +1094 -0
  107. package/dist/components/MainNavigation/MainNavigation.cjs.map +1 -0
  108. package/dist/components/MainNavigation/MainNavigation.css +948 -0
  109. package/dist/components/MainNavigation/MainNavigation.d.ts +3 -0
  110. package/dist/components/MainNavigation/MainNavigation.d.ts.map +1 -0
  111. package/dist/components/MainNavigation/MainNavigation.js +1094 -0
  112. package/dist/components/MainNavigation/MainNavigation.js.map +1 -0
  113. package/dist/components/MainNavigation/MainNavigation.module.css.cjs +74 -0
  114. package/dist/components/MainNavigation/MainNavigation.module.css.cjs.map +1 -0
  115. package/dist/components/MainNavigation/MainNavigation.module.css.js +75 -0
  116. package/dist/components/MainNavigation/MainNavigation.module.css.js.map +1 -0
  117. package/dist/components/MainNavigation/MainNavigation.types.d.ts +149 -0
  118. package/dist/components/MainNavigation/MainNavigation.types.d.ts.map +1 -0
  119. package/dist/components/MainNavigation/MainNavigation.utils.cjs +168 -0
  120. package/dist/components/MainNavigation/MainNavigation.utils.cjs.map +1 -0
  121. package/dist/components/MainNavigation/MainNavigation.utils.d.ts +29 -0
  122. package/dist/components/MainNavigation/MainNavigation.utils.d.ts.map +1 -0
  123. package/dist/components/MainNavigation/MainNavigation.utils.js +168 -0
  124. package/dist/components/MainNavigation/MainNavigation.utils.js.map +1 -0
  125. package/dist/components/MainNavigation/index.d.ts +3 -0
  126. package/dist/components/MainNavigation/index.d.ts.map +1 -0
  127. package/dist/components/Modal/Modal.cjs +101 -0
  128. package/dist/components/Modal/Modal.cjs.map +1 -0
  129. package/dist/components/Modal/Modal.css +205 -0
  130. package/dist/components/Modal/Modal.d.ts +3 -0
  131. package/dist/components/Modal/Modal.d.ts.map +1 -0
  132. package/dist/components/Modal/Modal.js +101 -0
  133. package/dist/components/Modal/Modal.js.map +1 -0
  134. package/dist/components/Modal/Modal.module.css.cjs +39 -0
  135. package/dist/components/Modal/Modal.module.css.cjs.map +1 -0
  136. package/dist/components/Modal/Modal.module.css.js +39 -0
  137. package/dist/components/Modal/Modal.module.css.js.map +1 -0
  138. package/dist/components/Modal/Modal.types.d.ts +62 -0
  139. package/dist/components/Modal/Modal.types.d.ts.map +1 -0
  140. package/dist/components/Modal/index.d.ts +3 -0
  141. package/dist/components/Modal/index.d.ts.map +1 -0
  142. package/dist/components/Modal/useDialogDismissal.cjs +41 -0
  143. package/dist/components/Modal/useDialogDismissal.cjs.map +1 -0
  144. package/dist/components/Modal/useDialogDismissal.d.ts +17 -0
  145. package/dist/components/Modal/useDialogDismissal.d.ts.map +1 -0
  146. package/dist/components/Modal/useDialogDismissal.js +41 -0
  147. package/dist/components/Modal/useDialogDismissal.js.map +1 -0
  148. package/dist/components/Modal/useNativeDialog.cjs +126 -0
  149. package/dist/components/Modal/useNativeDialog.cjs.map +1 -0
  150. package/dist/components/Modal/useNativeDialog.d.ts +14 -0
  151. package/dist/components/Modal/useNativeDialog.d.ts.map +1 -0
  152. package/dist/components/Modal/useNativeDialog.js +126 -0
  153. package/dist/components/Modal/useNativeDialog.js.map +1 -0
  154. package/dist/components/Pictograph/Pictograph.css +69 -57
  155. package/dist/components/Pictograph/Pictograph.module.css.cjs +11 -11
  156. package/dist/components/Pictograph/Pictograph.module.css.js +11 -11
  157. package/dist/components/Pictograph/Pictograph.types.d.ts +2 -2
  158. package/dist/components/Pictograph/PictographItem.cjs +15 -4
  159. package/dist/components/Pictograph/PictographItem.cjs.map +1 -1
  160. package/dist/components/Pictograph/PictographItem.css +26 -23
  161. package/dist/components/Pictograph/PictographItem.d.ts.map +1 -1
  162. package/dist/components/Pictograph/PictographItem.js +15 -4
  163. package/dist/components/Pictograph/PictographItem.js.map +1 -1
  164. package/dist/components/Pictograph/PictographItem.module.css.cjs +3 -3
  165. package/dist/components/Pictograph/PictographItem.module.css.js +3 -3
  166. package/dist/components/Quote/Quote.cjs +32 -0
  167. package/dist/components/Quote/Quote.cjs.map +1 -0
  168. package/dist/components/Quote/Quote.css +95 -0
  169. package/dist/components/Quote/Quote.d.ts +3 -0
  170. package/dist/components/Quote/Quote.d.ts.map +1 -0
  171. package/dist/components/Quote/Quote.js +32 -0
  172. package/dist/components/Quote/Quote.js.map +1 -0
  173. package/dist/components/Quote/Quote.module.css.cjs +22 -0
  174. package/dist/components/Quote/Quote.module.css.cjs.map +1 -0
  175. package/dist/components/Quote/Quote.module.css.js +22 -0
  176. package/dist/components/Quote/Quote.module.css.js.map +1 -0
  177. package/dist/components/Quote/Quote.types.d.ts +12 -0
  178. package/dist/components/Quote/Quote.types.d.ts.map +1 -0
  179. package/dist/components/Quote/index.d.ts +3 -0
  180. package/dist/components/Quote/index.d.ts.map +1 -0
  181. package/dist/index.cjs +14 -0
  182. package/dist/index.cjs.map +1 -1
  183. package/dist/index.d.ts +14 -0
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +14 -0
  186. package/dist/index.js.map +1 -1
  187. package/dist/styles/utils/elevation.module.css.cjs +3 -0
  188. package/dist/styles/utils/elevation.module.css.cjs.map +1 -1
  189. package/dist/styles/utils/elevation.module.css.js +4 -1
  190. package/dist/styles/utils/elevation.module.css.js.map +1 -1
  191. package/dist/styles/utils/focus.css +21 -13
  192. package/dist/styles/utils/focus.module.css.cjs +3 -3
  193. package/dist/styles/utils/focus.module.css.js +3 -3
  194. package/dist/styles/utils/overlay.css +37 -0
  195. package/dist/styles/utils/overlay.module.css.cjs +13 -0
  196. package/dist/styles/utils/overlay.module.css.cjs.map +1 -0
  197. package/dist/styles/utils/overlay.module.css.js +13 -0
  198. package/dist/styles/utils/overlay.module.css.js.map +1 -0
  199. package/dist/styles/utils/text-decoration.css +9 -1
  200. package/dist/styles/utils/text-decoration.module.css.cjs +5 -2
  201. package/dist/styles/utils/text-decoration.module.css.cjs.map +1 -1
  202. package/dist/styles/utils/text-decoration.module.css.js +6 -3
  203. package/dist/styles/utils/text-decoration.module.css.js.map +1 -1
  204. package/dist/styles.css +24 -7
  205. package/package.json +4 -3
@@ -0,0 +1,473 @@
1
+ @layer dds-components {/**
2
+ * The root carries data-color-scheme="dark" because the light-scheme focus
3
+ * ring puts focus-strong on the outer edge, which only reaches 2.42:1 against
4
+ * the plum surface and fails SC 1.4.11. The dark scope swaps the ring order
5
+ * so focus-soft sits outside at 10.49:1.
6
+ */
7
+
8
+ ._footer_1lum3_8 {
9
+ container-name: footer;
10
+ container-type: inline-size;
11
+ color: var(--color-semantic-foreground-inverse);
12
+ background: var(--color-semantic-surface-secondary-strong);
13
+ }
14
+
15
+ /* Zero specificity so modifier classes can still set their own colour. */
16
+ :where(._footer_1lum3_8 a) {
17
+ color: inherit;
18
+ }
19
+
20
+ /* Resets the base list styles from styles/typography.css (li carries margin). */
21
+ ._footer_1lum3_8 ul {
22
+ margin: 0;
23
+ padding: 0;
24
+ list-style: none;
25
+ }
26
+
27
+ ._footer_1lum3_8 li {
28
+ margin: 0;
29
+ }
30
+
31
+ ._footer__inner_1lum3_31 {
32
+ max-width: 1280px;
33
+ margin-inline: auto;
34
+ }
35
+
36
+ ._footer__top_1lum3_36,
37
+ ._footer__bottom_1lum3_37 {
38
+ padding: var(--spacing-space-32) var(--spacing-space-16);
39
+ }
40
+
41
+ @container footer (min-width: 768px) {
42
+ ._footer__top_1lum3_36,
43
+ ._footer__bottom_1lum3_37 {
44
+ padding: var(--spacing-space-40) var(--spacing-space-32);
45
+ }
46
+ }
47
+
48
+ @container footer (min-width: 1024px) {
49
+ ._footer__top_1lum3_36,
50
+ ._footer__bottom_1lum3_37 {
51
+ padding: var(--spacing-space-40) var(--spacing-space-40);
52
+ }
53
+ }
54
+
55
+ /* === Top section === */
56
+
57
+ ._footer__top_1lum3_36 {
58
+ background: var(--color-semantic-surface-secondary-mid);
59
+ }
60
+
61
+ ._footer__top-row_1lum3_61 {
62
+ display: flex;
63
+ flex-direction: column;
64
+ gap: var(--spacing-space-32);
65
+ }
66
+
67
+ @container footer (min-width: 768px) {
68
+ ._footer__top-row_1lum3_61 {
69
+ flex-direction: row;
70
+ align-items: flex-start;
71
+ justify-content: space-between;
72
+ gap: var(--spacing-space-32);
73
+ }
74
+ }
75
+
76
+ ._footer__top-column_1lum3_76 {
77
+ display: flex;
78
+ flex: 1 0 0;
79
+ flex-direction: column;
80
+ gap: var(--spacing-space-16);
81
+ min-width: 0;
82
+ }
83
+
84
+ ._footer__top-heading_1lum3_84 {
85
+ display: flex;
86
+ flex-direction: column;
87
+ gap: var(--spacing-space-20);
88
+ align-items: flex-start;
89
+ }
90
+
91
+ ._footer__top-icon_1lum3_91 {
92
+ width: 48px;
93
+ height: 48px;
94
+ fill: currentColor;
95
+ }
96
+
97
+ ._footer__top-title_1lum3_97 {
98
+ margin: 0;
99
+ font: var(--typography-heading-xs);
100
+ }
101
+
102
+ ._footer__top-links_1lum3_102 {
103
+ display: flex;
104
+ flex-direction: column;
105
+ gap: var(--spacing-space-8);
106
+ align-items: flex-start;
107
+ }
108
+
109
+ /* Removes the line box around the inline-flex child so the gap is exactly space/8. */
110
+ ._footer__top-links_1lum3_102 li,
111
+ ._footer__link-list_1lum3_111 li {
112
+ display: flex;
113
+ }
114
+
115
+ /* IconButton owns its own label typography and underline behaviour. */
116
+ ._footer__top-link_1lum3_102 {
117
+ max-width: 100%;
118
+ }
119
+
120
+ /* === Bottom section === */
121
+
122
+ ._footer__container_1lum3_122 {
123
+ display: flex;
124
+ flex-direction: column;
125
+ gap: var(--spacing-space-40);
126
+ }
127
+
128
+ /*
129
+ * The accordion and column layouts are separate DOM branches toggled with
130
+ * display:none. A single <details> cannot serve both: forcing it open at
131
+ * desktop would leave <summary> focusable and announced as a collapsible
132
+ * button, which is wrong when the content is permanently visible. display:none
133
+ * removes the inactive branch from both the tab order and the a11y tree.
134
+ */
135
+ ._footer__nav-accordions_1lum3_135 {
136
+ display: block;
137
+ }
138
+
139
+ ._footer__nav-columns_1lum3_139 {
140
+ display: none;
141
+ }
142
+
143
+ @container footer (min-width: 768px) {
144
+ ._footer__nav-accordions_1lum3_135 {
145
+ display: none;
146
+ }
147
+
148
+ ._footer__nav-columns_1lum3_139 {
149
+ display: flex;
150
+ align-items: flex-start;
151
+ justify-content: space-between;
152
+ gap: var(--spacing-space-32);
153
+ }
154
+ }
155
+
156
+ ._footer__column_1lum3_156 {
157
+ display: flex;
158
+ flex: 1 0 0;
159
+ flex-direction: column;
160
+ gap: var(--spacing-space-20);
161
+ min-width: 0;
162
+ }
163
+
164
+ ._footer__column-heading_1lum3_164 {
165
+ margin: 0;
166
+ font: var(--typography-heading-xs);
167
+ }
168
+
169
+ ._footer__link-list_1lum3_111 {
170
+ display: flex;
171
+ flex-direction: column;
172
+ gap: var(--spacing-space-8);
173
+ align-items: stretch;
174
+ }
175
+
176
+ /*
177
+ * Navigation links fill their column row. Visually identical (text stays
178
+ * left-aligned) but it stops narrow labels sitting between wider neighbours,
179
+ * which leaves overlapping target regions under SC 2.5.8.
180
+ */
181
+ ._footer__link-list_1lum3_111 a,
182
+ ._footer__link-list_1lum3_111 button {
183
+ flex: 1 1 auto;
184
+ }
185
+
186
+ /*
187
+ * Underline styling comes from the shared text-decoration utility; only its
188
+ * visibility is toggled here, matching how IconButton handles the same case.
189
+ */
190
+ ._footer__link_1lum3_111,
191
+ ._footer__action_1lum3_191 {
192
+ display: inline-block;
193
+ max-width: 100%;
194
+ /* Keeps short labels such as "5G" at the 24px minimum target size (SC 2.5.8). */
195
+ min-width: 24px;
196
+ font: var(--typography-body-md);
197
+ overflow-wrap: anywhere;
198
+ text-decoration-color: transparent;
199
+ }
200
+
201
+ ._footer__link_1lum3_111:hover,
202
+ ._footer__link_1lum3_111:focus-visible,
203
+ ._footer__action_1lum3_191:hover,
204
+ ._footer__action_1lum3_191:focus-visible {
205
+ color: var(--color-semantic-foreground-link-inverse-hover);
206
+ text-decoration-color: currentColor;
207
+ }
208
+
209
+ ._footer__action_1lum3_191 {
210
+ padding: 0;
211
+ color: inherit;
212
+ background: none;
213
+ border: 0;
214
+ font-family: inherit;
215
+ text-align: start;
216
+ cursor: pointer;
217
+ }
218
+
219
+ /*
220
+ * Accordion navigation reuses AccordionItem's panel variant; only the padding
221
+ * is adjusted so link text aligns with the footer gutter. The block-start
222
+ * padding also keeps the first link off the ::details-content clip edge.
223
+ */
224
+ ._footer__accordion_1lum3_224 > summary {
225
+ padding-inline: 0;
226
+ }
227
+
228
+ ._footer__accordion_1lum3_224 > summary + div {
229
+ padding-block: var(--spacing-space-8) var(--spacing-space-16);
230
+ padding-inline: 0;
231
+ }
232
+
233
+ /* === Divider === */
234
+
235
+ ._footer__divider_1lum3_235 {
236
+ height: 1px;
237
+ background: var(--color-semantic-border-neutral-mid);
238
+ }
239
+
240
+ /* The accordion branch already ends with a rule, so avoid doubling it. */
241
+ @container footer (max-width: 767px) {
242
+ ._footer__divider--after-nav_1lum3_242 {
243
+ display: none;
244
+ }
245
+ }
246
+
247
+ /* === Meta row === */
248
+
249
+ ._footer__meta_1lum3_249 {
250
+ display: flex;
251
+ flex-direction: column;
252
+ gap: var(--spacing-space-32);
253
+ align-items: center;
254
+ }
255
+
256
+ @container footer (min-width: 768px) {
257
+ ._footer__meta_1lum3_249 {
258
+ flex-direction: row;
259
+ align-items: flex-start;
260
+ justify-content: center;
261
+ gap: var(--spacing-space-24);
262
+ }
263
+ }
264
+
265
+ ._footer__meta-center_1lum3_265 {
266
+ display: flex;
267
+ flex-direction: column;
268
+ gap: var(--spacing-space-32);
269
+ align-items: center;
270
+ min-width: 0;
271
+ margin-inline: auto;
272
+ }
273
+
274
+ /* === Language selector === */
275
+
276
+ ._footer__language-list_1lum3_276 {
277
+ display: flex;
278
+ gap: var(--spacing-space-4);
279
+ align-items: center;
280
+ flex: 0 0 auto;
281
+ }
282
+
283
+ ._footer__language_1lum3_276 {
284
+ display: inline-flex;
285
+ align-items: center;
286
+ justify-content: center;
287
+ width: 32px;
288
+ height: 32px;
289
+ font: var(--typography-body-md-medium);
290
+ text-decoration: none;
291
+ border-radius: var(--radius-semantic-full);
292
+ }
293
+
294
+ ._footer__language_1lum3_276:hover,
295
+ ._footer__language_1lum3_276:focus-visible {
296
+ background: var(--color-semantic-surface-secondary-soft);
297
+ }
298
+
299
+ /*
300
+ * The active entry is marked with aria-current plus a filled pill, so selection
301
+ * is never conveyed by colour alone.
302
+ */
303
+ ._footer__language--current_1lum3_303 {
304
+ color: var(--color-semantic-foreground-default);
305
+ background: var(--color-semantic-surface-base);
306
+ }
307
+
308
+ ._footer__language--current_1lum3_303:hover,
309
+ ._footer__language--current_1lum3_303:focus-visible {
310
+ background: var(--color-semantic-surface-base);
311
+ }
312
+
313
+ /* === Social media === */
314
+
315
+ ._footer__social-list_1lum3_315 {
316
+ display: flex;
317
+ flex-wrap: wrap;
318
+ gap: var(--spacing-space-16);
319
+ align-items: center;
320
+ justify-content: center;
321
+ }
322
+
323
+ ._footer__social-link_1lum3_323 {
324
+ display: inline-flex;
325
+ align-items: center;
326
+ justify-content: center;
327
+ /* Icons are 24px in the design; padding lifts the target to 32px. */
328
+ width: 32px;
329
+ height: 32px;
330
+ border-radius: var(--radius-semantic-full);
331
+ }
332
+
333
+ ._footer__social-link_1lum3_323:hover,
334
+ ._footer__social-link_1lum3_323:focus-visible {
335
+ background: var(--color-semantic-surface-secondary-soft);
336
+ }
337
+
338
+ ._footer__social-icon_1lum3_338 {
339
+ width: 24px;
340
+ height: 24px;
341
+ fill: currentColor;
342
+ }
343
+
344
+ /* === Organization selector === */
345
+
346
+ ._footer__organization-list_1lum3_346 {
347
+ display: flex;
348
+ flex-wrap: wrap;
349
+ gap: var(--spacing-space-8);
350
+ align-items: center;
351
+ justify-content: center;
352
+ }
353
+
354
+ ._footer__organization_1lum3_346 {
355
+ display: inline-flex;
356
+ align-items: center;
357
+ justify-content: center;
358
+ min-height: 28px;
359
+ padding: var(--spacing-space-4) var(--spacing-space-8);
360
+ font: var(--typography-body-sm);
361
+ text-decoration: none;
362
+ border-radius: var(--radius-semantic-full);
363
+ }
364
+
365
+ ._footer__organization_1lum3_346:hover,
366
+ ._footer__organization_1lum3_346:focus-visible {
367
+ background: var(--color-semantic-surface-secondary-soft);
368
+ }
369
+
370
+ ._footer__organization--current_1lum3_370 {
371
+ font: var(--typography-body-sm-medium);
372
+ color: var(--color-semantic-foreground-default);
373
+ background: var(--color-semantic-surface-base);
374
+ }
375
+
376
+ ._footer__organization--current_1lum3_370:hover,
377
+ ._footer__organization--current_1lum3_370:focus-visible {
378
+ background: var(--color-semantic-surface-base);
379
+ }
380
+
381
+ /* === Legal links === */
382
+
383
+ ._footer__legal-list_1lum3_383 {
384
+ display: flex;
385
+ flex-wrap: wrap;
386
+ gap: var(--spacing-space-8) var(--spacing-space-16);
387
+ align-items: center;
388
+ justify-content: center;
389
+ }
390
+
391
+ ._footer__legal-list_1lum3_383 li {
392
+ display: flex;
393
+ gap: var(--spacing-space-16);
394
+ align-items: center;
395
+ }
396
+
397
+ /* Decorative; kept out of the accessibility tree by using ::before rather than a real element. */
398
+ ._footer__legal-list_1lum3_383 li + li::before {
399
+ content: '';
400
+ width: 1px;
401
+ height: 12px;
402
+ background: var(--color-semantic-foreground-inverse);
403
+ }
404
+
405
+ ._footer__legal-list_1lum3_383 ._footer__link_1lum3_111,
406
+ ._footer__legal-list_1lum3_383 ._footer__action_1lum3_191,
407
+ ._footer__copyright_1lum3_407 {
408
+ font: var(--typography-body-sm);
409
+ }
410
+
411
+ /* === App badges === */
412
+
413
+ ._footer__apps_1lum3_413 {
414
+ display: flex;
415
+ flex-direction: column;
416
+ gap: var(--spacing-space-8);
417
+ align-items: center;
418
+ flex: 0 0 auto;
419
+ }
420
+
421
+ @container footer (min-width: 768px) {
422
+ ._footer__apps_1lum3_413 {
423
+ align-items: flex-start;
424
+ }
425
+ }
426
+
427
+ ._footer__apps-title_1lum3_427 {
428
+ font: var(--typography-body-md-medium);
429
+ }
430
+
431
+ ._footer__badges_1lum3_431 {
432
+ display: flex;
433
+ flex-wrap: wrap;
434
+ gap: var(--spacing-space-8);
435
+ justify-content: center;
436
+ }
437
+
438
+ @container footer (min-width: 768px) {
439
+ ._footer__badges_1lum3_431 {
440
+ flex-direction: column;
441
+ align-items: flex-start;
442
+ }
443
+ }
444
+
445
+ ._footer__badge_1lum3_431 {
446
+ display: inline-flex;
447
+ border-radius: var(--radius-semantic-md);
448
+ }
449
+
450
+ ._footer__badge_1lum3_431 img {
451
+ display: block;
452
+ width: 140px;
453
+ height: 40px;
454
+ /*
455
+ * Store badges are brand artwork with mandated colours. Recolouring them in
456
+ * forced-colors mode would destroy the wordmark and Google's four-colour
457
+ * glyph. The badge is decorative (aria-hidden); the link keeps its
458
+ * accessible name and focus ring, so nothing is lost for these users.
459
+ */
460
+ forced-color-adjust: none;
461
+ }
462
+
463
+ @media (forced-colors: active) {
464
+ ._footer__divider_1lum3_235 {
465
+ background: CanvasText;
466
+ }
467
+
468
+ ._footer__language--current_1lum3_303,
469
+ ._footer__organization--current_1lum3_370 {
470
+ outline: 2px solid Highlight;
471
+ }
472
+ }
473
+ }
@@ -0,0 +1,3 @@
1
+ import { FooterProps } from './Footer.types';
2
+ export declare const Footer: ({ topSection, navigation, socialLinks, organizations, currentOrganizationId, languages, currentLanguageCode, appLinks, mandatoryLinks, copyrightLabel, renderLink, onChatOpen, onCookieSettingsClick, navigationLabel, socialLabel, organizationsLabel, languagesLabel, mandatoryLinksLabel, className, ref, ...props }: FooterProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=Footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../src/components/Footer/Footer.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAIR,WAAW,EAEd,MAAM,gBAAgB,CAAC;AAgCxB,eAAO,MAAM,MAAM,GAAI,yTAsBpB,WAAW,4CA2Sb,CAAC"}