@teamimpact/veda-ui-blocks 0.1.0-beta.8 → 0.1.0-beta.9
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 +4 -0
- package/dist/default.css +9906 -9692
- package/dist/default.css.map +1 -1
- package/dist/disasters.css +10156 -9947
- package/dist/disasters.css.map +1 -1
- package/dist/index.d.ts +61 -30
- package/dist/index.js +310 -179
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -102,40 +102,8 @@ var DEFAULT_EXPANDED_CONTENT_JSX = /* @__PURE__ */ jsxs("div", { className: "blo
|
|
|
102
102
|
] })
|
|
103
103
|
] });
|
|
104
104
|
|
|
105
|
-
// src/components/Button/Button.tsx
|
|
106
|
-
import { Button as USWDSButton } from "@trussworks/react-uswds";
|
|
107
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
108
|
-
function Button({
|
|
109
|
-
type = "button",
|
|
110
|
-
secondary = false,
|
|
111
|
-
base = false,
|
|
112
|
-
accentStyle,
|
|
113
|
-
outline = false,
|
|
114
|
-
inverse = false,
|
|
115
|
-
size,
|
|
116
|
-
unstyled = false,
|
|
117
|
-
children,
|
|
118
|
-
className,
|
|
119
|
-
...rest
|
|
120
|
-
}) {
|
|
121
|
-
const uswdsButtonProps = {
|
|
122
|
-
secondary,
|
|
123
|
-
base,
|
|
124
|
-
outline,
|
|
125
|
-
inverse,
|
|
126
|
-
unstyled,
|
|
127
|
-
className,
|
|
128
|
-
type,
|
|
129
|
-
// Only add accentStyle and size if defined, to avoid passing undefined
|
|
130
|
-
...accentStyle ? { accentStyle } : {},
|
|
131
|
-
...size ? { size } : {},
|
|
132
|
-
children
|
|
133
|
-
};
|
|
134
|
-
return /* @__PURE__ */ jsx2(USWDSButton, { ...rest, ...uswdsButtonProps });
|
|
135
|
-
}
|
|
136
|
-
|
|
137
105
|
// src/components/Cards/Card/Card.tsx
|
|
138
|
-
import { jsx as
|
|
106
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
139
107
|
function Card({
|
|
140
108
|
tag,
|
|
141
109
|
title,
|
|
@@ -158,26 +126,52 @@ function Card({
|
|
|
158
126
|
]);
|
|
159
127
|
const hasContent = tag || title || subtitle || description || callToAction || callToActionSecondary;
|
|
160
128
|
return /* @__PURE__ */ jsxs2("div", { className: rootClassName, children: [
|
|
161
|
-
imagePosition === "cover" && /* @__PURE__ */
|
|
129
|
+
imagePosition === "cover" && /* @__PURE__ */ jsx2("div", { className: "blocks-card__media", children: image }),
|
|
162
130
|
/* @__PURE__ */ jsxs2("div", { className: "blocks-card__content-container", children: [
|
|
163
|
-
imagePosition !== "cover" && /* @__PURE__ */
|
|
131
|
+
imagePosition !== "cover" && /* @__PURE__ */ jsx2("div", { className: "blocks-card__media", children: image }),
|
|
164
132
|
hasContent && /* @__PURE__ */ jsxs2("div", { className: "blocks-card__content", children: [
|
|
165
|
-
tag && /* @__PURE__ */
|
|
166
|
-
title && (typeof title === "string" ? /* @__PURE__ */
|
|
167
|
-
subtitle && /* @__PURE__ */
|
|
168
|
-
description && /* @__PURE__ */
|
|
133
|
+
tag && /* @__PURE__ */ jsx2("div", { className: "blocks-card__tag", children: tag }),
|
|
134
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsx2("h2", { className: "blocks-card__title", children: title }) : title),
|
|
135
|
+
subtitle && /* @__PURE__ */ jsx2("div", { className: "blocks-card__subtitle", children: subtitle }),
|
|
136
|
+
description && /* @__PURE__ */ jsx2("p", { className: "blocks-card__description", children: description }),
|
|
169
137
|
(callToAction || callToActionSecondary) && /* @__PURE__ */ jsxs2("div", { className: "blocks-card__actions", children: [
|
|
170
|
-
callToAction && /* @__PURE__ */
|
|
171
|
-
callToActionSecondary && /* @__PURE__ */
|
|
138
|
+
callToAction && /* @__PURE__ */ jsx2("a", { href: callToAction.href, className: "usa-button", children: callToAction.label }),
|
|
139
|
+
callToActionSecondary && /* @__PURE__ */ jsx2("a", { href: callToActionSecondary.href, className: "usa-button usa-button--outline", children: callToActionSecondary.label })
|
|
172
140
|
] })
|
|
173
141
|
] })
|
|
174
142
|
] }),
|
|
175
|
-
children && /* @__PURE__ */
|
|
143
|
+
children && /* @__PURE__ */ jsx2("div", { className: "blocks-card__children", children })
|
|
176
144
|
] });
|
|
177
145
|
}
|
|
178
146
|
|
|
147
|
+
// src/components/icons/ArrowIcon.tsx
|
|
148
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
149
|
+
var ArrowIcon = () => /* @__PURE__ */ jsxs3(
|
|
150
|
+
"svg",
|
|
151
|
+
{
|
|
152
|
+
width: "20",
|
|
153
|
+
height: "20",
|
|
154
|
+
viewBox: "0 0 20 20",
|
|
155
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
156
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
157
|
+
"aria-hidden": "true",
|
|
158
|
+
children: [
|
|
159
|
+
/* @__PURE__ */ jsx3("circle", { cx: "10", cy: "10", r: "10", fill: "currentColor" }),
|
|
160
|
+
/* @__PURE__ */ jsx3("g", { transform: "translate(5.333, 5.333)", children: /* @__PURE__ */ jsx3(
|
|
161
|
+
"path",
|
|
162
|
+
{
|
|
163
|
+
fillRule: "evenodd",
|
|
164
|
+
clipRule: "evenodd",
|
|
165
|
+
d: "M4.66667 0L3.84417 0.8225L7.09917 4.08333H0V5.25H7.09917L3.84417 8.51083L4.66667 9.33333L9.33333 4.66667L4.66667 0Z",
|
|
166
|
+
fill: "white"
|
|
167
|
+
}
|
|
168
|
+
) })
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
|
|
179
173
|
// src/components/Cards/CardCTA/CardCTA.tsx
|
|
180
|
-
import { jsx as jsx4, jsxs as
|
|
174
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
181
175
|
function CardCTA({
|
|
182
176
|
title,
|
|
183
177
|
url,
|
|
@@ -194,39 +188,17 @@ function CardCTA({
|
|
|
194
188
|
className
|
|
195
189
|
]);
|
|
196
190
|
const accentColorStyle = accentColor ? { "--blocks-card-cta-custom-accent-color": accentColor } : void 0;
|
|
197
|
-
return /* @__PURE__ */ jsx4("a", { href: url, className: rootClassName, style: { ...accentColorStyle, ...style }, ...rest, children: /* @__PURE__ */
|
|
198
|
-
/* @__PURE__ */
|
|
191
|
+
return /* @__PURE__ */ jsx4("a", { href: url, className: rootClassName, style: { ...accentColorStyle, ...style }, ...rest, children: /* @__PURE__ */ jsxs4("div", { className: "blocks-card-cta__body", children: [
|
|
192
|
+
/* @__PURE__ */ jsxs4(TitleTag, { className: "blocks-card-cta__title", title, children: [
|
|
199
193
|
title,
|
|
200
|
-
/* @__PURE__ */ jsx4("span", { className: "blocks-card-cta__icon", "aria-hidden": "true", children: /* @__PURE__ */
|
|
201
|
-
"svg",
|
|
202
|
-
{
|
|
203
|
-
width: "20",
|
|
204
|
-
height: "20",
|
|
205
|
-
viewBox: "0 0 20 20",
|
|
206
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
207
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
208
|
-
"aria-hidden": "true",
|
|
209
|
-
children: [
|
|
210
|
-
/* @__PURE__ */ jsx4("circle", { cx: "10", cy: "10", r: "10", fill: "currentColor" }),
|
|
211
|
-
/* @__PURE__ */ jsx4("g", { transform: "translate(5.333, 5.333)", children: /* @__PURE__ */ jsx4(
|
|
212
|
-
"path",
|
|
213
|
-
{
|
|
214
|
-
fillRule: "evenodd",
|
|
215
|
-
clipRule: "evenodd",
|
|
216
|
-
d: "M4.66667 0L3.84417 0.8225L7.09917 4.08333H0V5.25H7.09917L3.84417 8.51083L4.66667 9.33333L9.33333 4.66667L4.66667 0Z",
|
|
217
|
-
fill: "white"
|
|
218
|
-
}
|
|
219
|
-
) })
|
|
220
|
-
]
|
|
221
|
-
}
|
|
222
|
-
) })
|
|
194
|
+
/* @__PURE__ */ jsx4("span", { className: "blocks-card-cta__icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx4(ArrowIcon, {}) })
|
|
223
195
|
] }),
|
|
224
196
|
description && /* @__PURE__ */ jsx4("p", { className: "blocks-card-cta__description", children: description })
|
|
225
197
|
] }) });
|
|
226
198
|
}
|
|
227
199
|
|
|
228
200
|
// src/components/Cards/CardDetailed/CardDetailed.tsx
|
|
229
|
-
import { jsx as jsx5, jsxs as
|
|
201
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
230
202
|
function CardDetailed({
|
|
231
203
|
intro,
|
|
232
204
|
title,
|
|
@@ -244,17 +216,17 @@ function CardDetailed({
|
|
|
244
216
|
className
|
|
245
217
|
]);
|
|
246
218
|
const hasContent = intro || title || description || tags.length || callToAction || callToActionSecondary;
|
|
247
|
-
return /* @__PURE__ */
|
|
248
|
-
/* @__PURE__ */
|
|
219
|
+
return /* @__PURE__ */ jsxs5("div", { className: rootClassName, children: [
|
|
220
|
+
/* @__PURE__ */ jsxs5("div", { className: "blocks-card-detailed__media", children: [
|
|
249
221
|
image,
|
|
250
222
|
tagPrimary && /* @__PURE__ */ jsx5("div", { className: "blocks-card-detailed__tag-primary", children: tagPrimary })
|
|
251
223
|
] }),
|
|
252
|
-
hasContent && /* @__PURE__ */
|
|
224
|
+
hasContent && /* @__PURE__ */ jsxs5("div", { className: "blocks-card-detailed__content-container", children: [
|
|
253
225
|
intro && /* @__PURE__ */ jsx5("div", { className: "blocks-card-detailed__intro", title: intro, children: intro }),
|
|
254
226
|
title && (typeof title === "string" ? /* @__PURE__ */ jsx5("h2", { className: "blocks-card-detailed__title", title, children: title }) : title),
|
|
255
227
|
isNonEmptyArray(tags) && /* @__PURE__ */ jsx5("div", { className: "blocks-card-detailed__tags", children: tags }),
|
|
256
228
|
description && /* @__PURE__ */ jsx5("p", { className: "blocks-card-detailed__description", children: description }),
|
|
257
|
-
(callToAction || callToActionSecondary) && /* @__PURE__ */
|
|
229
|
+
(callToAction || callToActionSecondary) && /* @__PURE__ */ jsxs5("div", { className: "blocks-card-detailed__actions", children: [
|
|
258
230
|
callToAction && /* @__PURE__ */ jsx5("a", { href: callToAction.href, className: "usa-button", children: callToAction.label }),
|
|
259
231
|
callToActionSecondary && /* @__PURE__ */ jsx5("a", { href: callToActionSecondary.href, className: "usa-button usa-button--outline", children: callToActionSecondary.label })
|
|
260
232
|
] })
|
|
@@ -263,7 +235,7 @@ function CardDetailed({
|
|
|
263
235
|
}
|
|
264
236
|
|
|
265
237
|
// src/components/Cards/CardMini/CardMini.tsx
|
|
266
|
-
import { jsx as jsx6, jsxs as
|
|
238
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
267
239
|
function CardMini({ image, title, url, tag, titleAs = "h2", className }) {
|
|
268
240
|
const TitleTag = titleAs;
|
|
269
241
|
const hasTag = Boolean(tag);
|
|
@@ -271,9 +243,9 @@ function CardMini({ image, title, url, tag, titleAs = "h2", className }) {
|
|
|
271
243
|
hasTag ? "blocks-card-mini--with-tag" : void 0,
|
|
272
244
|
className
|
|
273
245
|
]);
|
|
274
|
-
return /* @__PURE__ */
|
|
246
|
+
return /* @__PURE__ */ jsxs6("a", { href: url, className: rootClassName, children: [
|
|
275
247
|
/* @__PURE__ */ jsx6("div", { className: "blocks-card-mini__image", children: image }),
|
|
276
|
-
/* @__PURE__ */
|
|
248
|
+
/* @__PURE__ */ jsxs6("div", { className: "blocks-card-mini__body", children: [
|
|
277
249
|
/* @__PURE__ */ jsx6(TitleTag, { className: "blocks-card-mini__title", title, children: title }),
|
|
278
250
|
tag && /* @__PURE__ */ jsx6("div", { className: "blocks-card-mini__tag", children: tag })
|
|
279
251
|
] })
|
|
@@ -281,7 +253,7 @@ function CardMini({ image, title, url, tag, titleAs = "h2", className }) {
|
|
|
281
253
|
}
|
|
282
254
|
|
|
283
255
|
// src/components/Cards/CardSimple/CardSimple.tsx
|
|
284
|
-
import { jsx as jsx7, jsxs as
|
|
256
|
+
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
285
257
|
function CardSimple({
|
|
286
258
|
title,
|
|
287
259
|
image,
|
|
@@ -296,12 +268,12 @@ function CardSimple({
|
|
|
296
268
|
size === "compact" ? "blocks-card-simple--compact" : void 0,
|
|
297
269
|
className
|
|
298
270
|
]);
|
|
299
|
-
return /* @__PURE__ */
|
|
300
|
-
/* @__PURE__ */
|
|
271
|
+
return /* @__PURE__ */ jsxs7("a", { href: url, className: rootClassName, children: [
|
|
272
|
+
/* @__PURE__ */ jsxs7("div", { className: "blocks-card-simple__media", children: [
|
|
301
273
|
image,
|
|
302
274
|
/* @__PURE__ */ jsx7("div", { className: "blocks-card-simple__overlay", "aria-hidden": "true" })
|
|
303
275
|
] }),
|
|
304
|
-
/* @__PURE__ */
|
|
276
|
+
/* @__PURE__ */ jsxs7("div", { className: "blocks-card-simple__body", children: [
|
|
305
277
|
tag && /* @__PURE__ */ jsx7("div", { className: "blocks-card-simple__tag", children: tag }),
|
|
306
278
|
/* @__PURE__ */ jsx7(TitleTag, { className: "blocks-card-simple__title", children: title })
|
|
307
279
|
] })
|
|
@@ -310,7 +282,7 @@ function CardSimple({
|
|
|
310
282
|
|
|
311
283
|
// src/components/Footer/Footer.tsx
|
|
312
284
|
import { GridContainer, Icon as Icon2, Link, Footer as USWDSFooter } from "@trussworks/react-uswds";
|
|
313
|
-
import { Fragment, jsx as jsx8, jsxs as
|
|
285
|
+
import { Fragment, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
314
286
|
function Footer({
|
|
315
287
|
portalDetails,
|
|
316
288
|
primaryNavItems,
|
|
@@ -324,10 +296,10 @@ function Footer({
|
|
|
324
296
|
{
|
|
325
297
|
className: footerClassName,
|
|
326
298
|
size: "slim",
|
|
327
|
-
primary: /* @__PURE__ */ jsx8(GridContainer, { children: /* @__PURE__ */
|
|
328
|
-
/* @__PURE__ */
|
|
299
|
+
primary: /* @__PURE__ */ jsx8(GridContainer, { children: /* @__PURE__ */ jsxs8("section", { className: "blocks-footer__primary-section", children: [
|
|
300
|
+
/* @__PURE__ */ jsxs8("div", { className: "blocks-footer__title", children: [
|
|
329
301
|
portalDetails.logo ? /* @__PURE__ */ jsx8("div", { className: "blocks-footer__logo", children: portalDetails.logo }) : null,
|
|
330
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ jsxs8("div", { className: "blocks-footer__title-text", children: [
|
|
331
303
|
/* @__PURE__ */ jsx8("span", { children: portalDetails.title }),
|
|
332
304
|
portalDetails.tagline ? /* @__PURE__ */ jsx8("p", { children: portalDetails.tagline }) : null
|
|
333
305
|
] })
|
|
@@ -342,7 +314,7 @@ function Footer({
|
|
|
342
314
|
}
|
|
343
315
|
) }, href)) }) }) : null
|
|
344
316
|
] }) }),
|
|
345
|
-
secondary: /* @__PURE__ */
|
|
317
|
+
secondary: /* @__PURE__ */ jsxs8(Fragment, { children: [
|
|
346
318
|
secondaryNavItems.length > 0 ? /* @__PURE__ */ jsx8("section", { className: "blocks-footer__secondary-section-upper", children: /* @__PURE__ */ jsx8(
|
|
347
319
|
"nav",
|
|
348
320
|
{
|
|
@@ -351,20 +323,20 @@ function Footer({
|
|
|
351
323
|
children: /* @__PURE__ */ jsx8("ul", { children: secondaryNavItems.map(({ label, href, isExternal }) => /* @__PURE__ */ jsx8("li", { className: "usa-footer__secondary-link", children: /* @__PURE__ */ jsx8(Link, { href, ...get_external_anchor_props(isExternal), children: label }) }, href)) })
|
|
352
324
|
}
|
|
353
325
|
) }) : null,
|
|
354
|
-
utilityNavItems?.length || portalDetails.updatedDate || portalDetails.contacts?.length ? /* @__PURE__ */
|
|
355
|
-
utilityNavItems?.length ? /* @__PURE__ */ jsx8("nav", { className: "blocks-footer__utility-nav", "aria-label": "Site utilities", children: /* @__PURE__ */ jsx8("ul", { children: utilityNavItems.length ? utilityNavItems.map(({ text, label, href, isExternal }) => /* @__PURE__ */
|
|
326
|
+
utilityNavItems?.length || portalDetails.updatedDate || portalDetails.contacts?.length ? /* @__PURE__ */ jsxs8("section", { className: "blocks-footer__secondary-section-lower", children: [
|
|
327
|
+
utilityNavItems?.length ? /* @__PURE__ */ jsx8("nav", { className: "blocks-footer__utility-nav", "aria-label": "Site utilities", children: /* @__PURE__ */ jsx8("ul", { children: utilityNavItems.length ? utilityNavItems.map(({ text, label, href, isExternal }) => /* @__PURE__ */ jsxs8("li", { children: [
|
|
356
328
|
text,
|
|
357
329
|
" ",
|
|
358
330
|
/* @__PURE__ */ jsx8(Link, { href, ...get_external_anchor_props(isExternal), children: label })
|
|
359
331
|
] }, href)) : null }) }) : null,
|
|
360
|
-
portalDetails.updatedDate || portalDetails.contacts?.length ? /* @__PURE__ */
|
|
361
|
-
portalDetails.updatedDate ? /* @__PURE__ */
|
|
332
|
+
portalDetails.updatedDate || portalDetails.contacts?.length ? /* @__PURE__ */ jsxs8("div", { className: "blocks-footer__secondary-meta", children: [
|
|
333
|
+
portalDetails.updatedDate ? /* @__PURE__ */ jsxs8("p", { children: [
|
|
362
334
|
"Site last updated: ",
|
|
363
335
|
portalDetails.updatedDate
|
|
364
336
|
] }) : null,
|
|
365
|
-
portalDetails.contacts?.length ? /* @__PURE__ */ jsx8("nav", { className: "blocks-footer__contacts-nav", "aria-label": "Site contacts", children: /* @__PURE__ */ jsx8("ul", { children: portalDetails.contacts.map(({ label, name, email }) => /* @__PURE__ */
|
|
337
|
+
portalDetails.contacts?.length ? /* @__PURE__ */ jsx8("nav", { className: "blocks-footer__contacts-nav", "aria-label": "Site contacts", children: /* @__PURE__ */ jsx8("ul", { children: portalDetails.contacts.map(({ label, name, email }) => /* @__PURE__ */ jsxs8("li", { children: [
|
|
366
338
|
/* @__PURE__ */ jsx8("span", { children: label }),
|
|
367
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ jsxs8(Link, { href: `mailto:${email}`, ...get_external_anchor_props(), children: [
|
|
368
340
|
/* @__PURE__ */ jsx8(Icon2.Mail, { "aria-hidden": "true", focusable: false }),
|
|
369
341
|
/* @__PURE__ */ jsx8("span", { children: name })
|
|
370
342
|
] })
|
|
@@ -424,7 +396,7 @@ function useWindowResize(handleResize) {
|
|
|
424
396
|
|
|
425
397
|
// src/components/Header/Header.helpers.tsx
|
|
426
398
|
import { Link as Link2, Menu, NavDropDownButton } from "@trussworks/react-uswds";
|
|
427
|
-
import { Fragment as Fragment2, jsx as jsx9, jsxs as
|
|
399
|
+
import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
428
400
|
var make_nav_items_initial_state = (navItems) => {
|
|
429
401
|
const initialState = {};
|
|
430
402
|
const initialProps = navItems.map((item) => {
|
|
@@ -471,7 +443,7 @@ var make_menu_link_jsx = ({ label, href, isExternal, isPrimary }, options) => {
|
|
|
471
443
|
var make_menu_link_with_dropdown_jsx = ({ label, menuId, subItems }, options) => {
|
|
472
444
|
const { navDropDownOpenState, handleToggleDropdown, currentPath } = options;
|
|
473
445
|
const sublinks = subItems.map((item) => make_menu_link_jsx(item, { currentPath }));
|
|
474
|
-
return /* @__PURE__ */
|
|
446
|
+
return /* @__PURE__ */ jsxs9(Fragment2, { children: [
|
|
475
447
|
/* @__PURE__ */ jsx9(
|
|
476
448
|
NavDropDownButton,
|
|
477
449
|
{
|
|
@@ -497,7 +469,7 @@ var make_custom_nav_item_jsx = (customNavItem) => isNavItem(customNavItem) ? /*
|
|
|
497
469
|
) : customNavItem;
|
|
498
470
|
|
|
499
471
|
// src/components/Header/Header.tsx
|
|
500
|
-
import { jsx as jsx10, jsxs as
|
|
472
|
+
import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
501
473
|
function Header(props) {
|
|
502
474
|
const {
|
|
503
475
|
portalDetails: { logo, title, url },
|
|
@@ -565,9 +537,9 @@ function Header(props) {
|
|
|
565
537
|
currentPath
|
|
566
538
|
}) : make_menu_link_jsx(item, { currentPath })
|
|
567
539
|
);
|
|
568
|
-
return /* @__PURE__ */ jsx10(USWDSHeader, { className: headerClassName, basic: true, showMobileOverlay: isMobileNavExpanded, children: /* @__PURE__ */
|
|
569
|
-
/* @__PURE__ */
|
|
570
|
-
/* @__PURE__ */
|
|
540
|
+
return /* @__PURE__ */ jsx10(USWDSHeader, { className: headerClassName, basic: true, showMobileOverlay: isMobileNavExpanded, children: /* @__PURE__ */ jsxs10("div", { className: "usa-nav-container", children: [
|
|
541
|
+
/* @__PURE__ */ jsxs10("div", { className: "usa-navbar", children: [
|
|
542
|
+
/* @__PURE__ */ jsxs10("div", { className: "blocks-header__portal-details", children: [
|
|
571
543
|
/* @__PURE__ */ jsx10("a", { className: "blocks-header__portal-logo", href: url ?? "/", children: logo }),
|
|
572
544
|
title ? /* @__PURE__ */ jsx10(Title, { children: /* @__PURE__ */ jsx10("a", { href: url ?? "/", children: title }) }) : null
|
|
573
545
|
] }),
|
|
@@ -586,12 +558,145 @@ function Header(props) {
|
|
|
586
558
|
] }) });
|
|
587
559
|
}
|
|
588
560
|
|
|
561
|
+
// src/components/Link/Link.tsx
|
|
562
|
+
import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
563
|
+
function Link3({
|
|
564
|
+
variant = "text",
|
|
565
|
+
size = "md",
|
|
566
|
+
isExternal,
|
|
567
|
+
className,
|
|
568
|
+
as,
|
|
569
|
+
children,
|
|
570
|
+
...rest
|
|
571
|
+
}) {
|
|
572
|
+
const Component = isExternal ? "a" : as ?? "a";
|
|
573
|
+
const rootClassName = make_class_name("blocks-link", [
|
|
574
|
+
`blocks-link--${variant}`,
|
|
575
|
+
variant === "button" || variant === "button-outline" ? "usa-button" : void 0,
|
|
576
|
+
variant === "button-outline" ? "usa-button--outline" : void 0,
|
|
577
|
+
variant === "text" ? "usa-button--unstyled" : void 0,
|
|
578
|
+
`blocks-link--${size}`,
|
|
579
|
+
isExternal ? "blocks-link--external usa-link--external" : void 0,
|
|
580
|
+
className
|
|
581
|
+
]);
|
|
582
|
+
return /* @__PURE__ */ jsxs11(Component, { className: rootClassName, ...get_external_anchor_props(isExternal), ...rest, children: [
|
|
583
|
+
children,
|
|
584
|
+
variant === "arrow" && /* @__PURE__ */ jsx11(ArrowIcon, {})
|
|
585
|
+
] });
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
// src/foundations/theme-token-bridge.helpers.ts
|
|
589
|
+
var BASE_COLOR_TOKENS = [
|
|
590
|
+
"base-lightest",
|
|
591
|
+
"base-lighter",
|
|
592
|
+
"base-light",
|
|
593
|
+
"base",
|
|
594
|
+
"base-dark",
|
|
595
|
+
"base-darker",
|
|
596
|
+
"base-darkest",
|
|
597
|
+
"ink"
|
|
598
|
+
];
|
|
599
|
+
var PRIMARY_COLOR_TOKENS = [
|
|
600
|
+
"primary-lightest",
|
|
601
|
+
"primary-lighter",
|
|
602
|
+
"primary-light",
|
|
603
|
+
"primary",
|
|
604
|
+
"primary-vivid",
|
|
605
|
+
"primary-dark",
|
|
606
|
+
"primary-darker",
|
|
607
|
+
"primary-darkest"
|
|
608
|
+
];
|
|
609
|
+
var SECONDARY_COLOR_TOKENS = [
|
|
610
|
+
"secondary-lightest",
|
|
611
|
+
"secondary-lighter",
|
|
612
|
+
"secondary-light",
|
|
613
|
+
"secondary",
|
|
614
|
+
"secondary-vivid",
|
|
615
|
+
"secondary-dark",
|
|
616
|
+
"secondary-darker",
|
|
617
|
+
"secondary-darkest"
|
|
618
|
+
];
|
|
619
|
+
var ACCENT_COOL_COLOR_TOKENS = [
|
|
620
|
+
"accent-cool-lightest",
|
|
621
|
+
"accent-cool-lighter",
|
|
622
|
+
"accent-cool-light",
|
|
623
|
+
"accent-cool",
|
|
624
|
+
"accent-cool-dark",
|
|
625
|
+
"accent-cool-darker",
|
|
626
|
+
"accent-cool-darkest"
|
|
627
|
+
];
|
|
628
|
+
var ACCENT_WARM_COLOR_TOKENS = [
|
|
629
|
+
"accent-warm-lightest",
|
|
630
|
+
"accent-warm-lighter",
|
|
631
|
+
"accent-warm-light",
|
|
632
|
+
"accent-warm",
|
|
633
|
+
"accent-warm-dark",
|
|
634
|
+
"accent-warm-darker",
|
|
635
|
+
"accent-warm-darkest"
|
|
636
|
+
];
|
|
637
|
+
var INFO_COLOR_TOKENS = [
|
|
638
|
+
"info-lighter",
|
|
639
|
+
"info-light",
|
|
640
|
+
"info",
|
|
641
|
+
"info-dark",
|
|
642
|
+
"info-darker"
|
|
643
|
+
];
|
|
644
|
+
var WARNING_COLOR_TOKENS = [
|
|
645
|
+
"warning-lighter",
|
|
646
|
+
"warning-light",
|
|
647
|
+
"warning",
|
|
648
|
+
"warning-dark",
|
|
649
|
+
"warning-darker"
|
|
650
|
+
];
|
|
651
|
+
var ERROR_COLOR_TOKENS = [
|
|
652
|
+
"error-lighter",
|
|
653
|
+
"error-light",
|
|
654
|
+
"error",
|
|
655
|
+
"error-dark",
|
|
656
|
+
"error-darker"
|
|
657
|
+
];
|
|
658
|
+
var SUCCESS_COLOR_TOKENS = [
|
|
659
|
+
"success-lighter",
|
|
660
|
+
"success-light",
|
|
661
|
+
"success",
|
|
662
|
+
"success-dark",
|
|
663
|
+
"success-darker"
|
|
664
|
+
];
|
|
665
|
+
var DISABLED_COLOR_TOKENS = [
|
|
666
|
+
"disabled-lighter",
|
|
667
|
+
"disabled-light",
|
|
668
|
+
"disabled",
|
|
669
|
+
"disabled-dark",
|
|
670
|
+
"disabled-darker"
|
|
671
|
+
];
|
|
672
|
+
var EMERGENCY_COLOR_TOKENS = ["emergency", "emergency-dark"];
|
|
673
|
+
var COLOR_TOKENS = [
|
|
674
|
+
...BASE_COLOR_TOKENS,
|
|
675
|
+
...PRIMARY_COLOR_TOKENS,
|
|
676
|
+
...SECONDARY_COLOR_TOKENS,
|
|
677
|
+
...ACCENT_COOL_COLOR_TOKENS,
|
|
678
|
+
...ACCENT_WARM_COLOR_TOKENS,
|
|
679
|
+
...INFO_COLOR_TOKENS,
|
|
680
|
+
...WARNING_COLOR_TOKENS,
|
|
681
|
+
...ERROR_COLOR_TOKENS,
|
|
682
|
+
...SUCCESS_COLOR_TOKENS,
|
|
683
|
+
...EMERGENCY_COLOR_TOKENS,
|
|
684
|
+
...DISABLED_COLOR_TOKENS
|
|
685
|
+
];
|
|
686
|
+
var resolveColorToken = (color) => COLOR_TOKENS.includes(color) ? `var(--color-${color})` : color;
|
|
687
|
+
|
|
688
|
+
// src/components/icons/CloseIcon.tsx
|
|
689
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
690
|
+
var CloseIcon = () => /* @__PURE__ */ jsx12("svg", { height: "24", width: "24", viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", children: /* @__PURE__ */ jsx12("path", { d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) });
|
|
691
|
+
|
|
589
692
|
// src/components/Tag/Tag.tsx
|
|
590
|
-
import { jsx as
|
|
693
|
+
import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
591
694
|
function Tag({
|
|
592
695
|
variant = "solid",
|
|
593
696
|
size = "default",
|
|
594
697
|
color,
|
|
698
|
+
bgColor,
|
|
699
|
+
borderColor,
|
|
595
700
|
textColor,
|
|
596
701
|
icon,
|
|
597
702
|
onClose,
|
|
@@ -605,14 +710,16 @@ function Tag({
|
|
|
605
710
|
onClose ? "blocks-tag--x-close" : void 0,
|
|
606
711
|
className
|
|
607
712
|
]);
|
|
608
|
-
const customStyle = color || textColor ? {
|
|
609
|
-
...color ? { "--blocks-tag-custom-color": color } : void 0,
|
|
610
|
-
...textColor ? { "--blocks-tag-custom-text-color": textColor } : void 0
|
|
713
|
+
const customStyle = color || textColor || bgColor || borderColor ? {
|
|
714
|
+
...color ? { "--blocks-tag-custom-color": resolveColorToken(color) } : void 0,
|
|
715
|
+
...textColor ? { "--blocks-tag-custom-text-color": resolveColorToken(textColor) } : void 0,
|
|
716
|
+
...bgColor ? { "--blocks-tag-custom-bg-color": resolveColorToken(bgColor) } : void 0,
|
|
717
|
+
...borderColor ? { "--blocks-tag-custom-border-color": resolveColorToken(borderColor) } : void 0
|
|
611
718
|
} : void 0;
|
|
612
|
-
return /* @__PURE__ */
|
|
613
|
-
icon && /* @__PURE__ */
|
|
719
|
+
return /* @__PURE__ */ jsxs12("span", { className: rootClassName, style: customStyle, children: [
|
|
720
|
+
icon && /* @__PURE__ */ jsx13("span", { className: "blocks-tag__icon", children: icon }),
|
|
614
721
|
children,
|
|
615
|
-
onClose && /* @__PURE__ */
|
|
722
|
+
onClose && /* @__PURE__ */ jsx13(
|
|
616
723
|
"button",
|
|
617
724
|
{
|
|
618
725
|
type: "button",
|
|
@@ -620,27 +727,81 @@ function Tag({
|
|
|
620
727
|
"aria-label": "Remove tag",
|
|
621
728
|
tabIndex: 0,
|
|
622
729
|
onClick: onClose,
|
|
623
|
-
children: /* @__PURE__ */
|
|
730
|
+
children: /* @__PURE__ */ jsx13(CloseIcon, {})
|
|
624
731
|
}
|
|
625
732
|
)
|
|
626
733
|
] });
|
|
627
734
|
}
|
|
628
735
|
|
|
736
|
+
// src/geo/GeoConfigProvider.tsx
|
|
737
|
+
import { StacApiProvider } from "@developmentseed/stac-react";
|
|
738
|
+
import { createContext, useContext } from "react";
|
|
739
|
+
|
|
740
|
+
// src/geo/constants.ts
|
|
741
|
+
var NASA_BLUE_MARBLE_BASEMAP_STYLE = {
|
|
742
|
+
version: 8,
|
|
743
|
+
sources: {
|
|
744
|
+
"nasa-blue-marble": {
|
|
745
|
+
type: "raster",
|
|
746
|
+
tiles: [
|
|
747
|
+
"https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/BlueMarble_NextGeneration/default/GoogleMapsCompatible_Level8/{z}/{y}/{x}.jpeg"
|
|
748
|
+
],
|
|
749
|
+
tileSize: 256,
|
|
750
|
+
maxzoom: 8,
|
|
751
|
+
attribution: "Imagery courtesy NASA EOSDIS/GIBS"
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
layers: [
|
|
755
|
+
{
|
|
756
|
+
id: "nasa-blue-marble",
|
|
757
|
+
type: "raster",
|
|
758
|
+
source: "nasa-blue-marble"
|
|
759
|
+
}
|
|
760
|
+
]
|
|
761
|
+
};
|
|
762
|
+
var STAC_API_URL = "https://openveda.cloud/api/stac";
|
|
763
|
+
var TITILER_BASE_URL = "https://openveda.cloud/api/raster";
|
|
764
|
+
var DEFAULT_RENDER_PARAMS = {
|
|
765
|
+
assets: ["cog_default"],
|
|
766
|
+
rescale: "0,0.0001",
|
|
767
|
+
resampling: "bilinear",
|
|
768
|
+
colormap_name: "viridis",
|
|
769
|
+
bidx: [1]
|
|
770
|
+
};
|
|
771
|
+
var DEFAULT_TILE_MATRIX_SET = "WebMercatorQuad";
|
|
772
|
+
var STAC_COLORSTOP_RGBA_ARG_COUNT = 4;
|
|
773
|
+
|
|
774
|
+
// src/geo/GeoConfigProvider.tsx
|
|
775
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
776
|
+
var GeoConfigContext = createContext(null);
|
|
777
|
+
function useGeoConfig() {
|
|
778
|
+
const ctx = useContext(GeoConfigContext);
|
|
779
|
+
if (!ctx) throw new Error("Geo components require a GeoConfigProvider ancestor");
|
|
780
|
+
return ctx;
|
|
781
|
+
}
|
|
782
|
+
function GeoConfigProvider({
|
|
783
|
+
stacApiUrl = STAC_API_URL,
|
|
784
|
+
titilerBaseUrl = TITILER_BASE_URL,
|
|
785
|
+
children
|
|
786
|
+
}) {
|
|
787
|
+
return /* @__PURE__ */ jsx14(GeoConfigContext.Provider, { value: { titilerBaseUrl }, children: /* @__PURE__ */ jsx14(StacApiProvider, { apiUrl: stacApiUrl, children }) });
|
|
788
|
+
}
|
|
789
|
+
|
|
629
790
|
// src/geo/Legend/Legend.tsx
|
|
630
791
|
import { Icon as Icon3 } from "@trussworks/react-uswds";
|
|
631
792
|
import { useState as useState3 } from "react";
|
|
632
|
-
import { jsx as
|
|
793
|
+
import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
633
794
|
function Legend({ initialExpanded = false, ...props }) {
|
|
634
795
|
const { title, description, unit, min, max, colorStops, provider, spatialExtent, timeDensity } = props;
|
|
635
796
|
const [isExpanded, setIsExpanded] = useState3(initialExpanded);
|
|
636
797
|
const subtitle = [provider, spatialExtent, timeDensity].some(isDefined) ? [provider, spatialExtent, timeDensity].filter(isDefined).join(" \xB7 ") : void 0;
|
|
637
|
-
return /* @__PURE__ */
|
|
638
|
-
/* @__PURE__ */
|
|
639
|
-
/* @__PURE__ */
|
|
640
|
-
title && /* @__PURE__ */
|
|
641
|
-
subtitle && /* @__PURE__ */
|
|
798
|
+
return /* @__PURE__ */ jsxs13("div", { className: "blocks-legend", children: [
|
|
799
|
+
/* @__PURE__ */ jsxs13("div", { className: "blocks-legend__header", children: [
|
|
800
|
+
/* @__PURE__ */ jsxs13("div", { className: "blocks-legend__header-text", children: [
|
|
801
|
+
title && /* @__PURE__ */ jsx15("h3", { className: "blocks-legend__title", title, children: title }),
|
|
802
|
+
subtitle && /* @__PURE__ */ jsx15("p", { className: "blocks-legend__subtitle", title: subtitle, children: subtitle })
|
|
642
803
|
] }),
|
|
643
|
-
description && /* @__PURE__ */
|
|
804
|
+
description && /* @__PURE__ */ jsx15(
|
|
644
805
|
"button",
|
|
645
806
|
{
|
|
646
807
|
type: "button",
|
|
@@ -648,11 +809,11 @@ function Legend({ initialExpanded = false, ...props }) {
|
|
|
648
809
|
"aria-expanded": isExpanded,
|
|
649
810
|
"aria-label": "Toggle layer description",
|
|
650
811
|
onClick: () => setIsExpanded((v) => !v),
|
|
651
|
-
children: /* @__PURE__ */
|
|
812
|
+
children: /* @__PURE__ */ jsx15(Icon3.InfoOutline, { "aria-hidden": true, focusable: false, size: 3 })
|
|
652
813
|
}
|
|
653
814
|
)
|
|
654
815
|
] }),
|
|
655
|
-
/* @__PURE__ */
|
|
816
|
+
/* @__PURE__ */ jsx15("div", { className: "blocks-legend__gradient-bar", children: /* @__PURE__ */ jsx15(
|
|
656
817
|
"div",
|
|
657
818
|
{
|
|
658
819
|
className: "blocks-legend__gradient",
|
|
@@ -661,12 +822,12 @@ function Legend({ initialExpanded = false, ...props }) {
|
|
|
661
822
|
}
|
|
662
823
|
}
|
|
663
824
|
) }),
|
|
664
|
-
/* @__PURE__ */
|
|
665
|
-
/* @__PURE__ */
|
|
666
|
-
/* @__PURE__ */
|
|
667
|
-
/* @__PURE__ */
|
|
825
|
+
/* @__PURE__ */ jsxs13("div", { className: "blocks-legend__labels", children: [
|
|
826
|
+
/* @__PURE__ */ jsx15("span", { className: "blocks-legend__min", children: min }),
|
|
827
|
+
/* @__PURE__ */ jsx15("span", { className: "blocks-legend__unit", children: unit }),
|
|
828
|
+
/* @__PURE__ */ jsx15("span", { className: "blocks-legend__max", children: max })
|
|
668
829
|
] }),
|
|
669
|
-
isExpanded && description && /* @__PURE__ */
|
|
830
|
+
isExpanded && description && /* @__PURE__ */ jsx15("div", { className: "blocks-legend__description", children: /* @__PURE__ */ jsx15("div", { className: "blocks-legend__description-inner", children: description }) })
|
|
670
831
|
] });
|
|
671
832
|
}
|
|
672
833
|
|
|
@@ -714,10 +875,10 @@ function formatDateRange(dateRange) {
|
|
|
714
875
|
}
|
|
715
876
|
|
|
716
877
|
// src/geo/DateChip/DateChip.tsx
|
|
717
|
-
import { jsx as
|
|
878
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
718
879
|
function DateChip({ left, right }) {
|
|
719
880
|
const label = right === void 0 || left.from === right.from && left.to === right.to ? formatDateRange(left) : `${formatDateRange(left)} vs ${formatDateRange(right)}`;
|
|
720
|
-
return /* @__PURE__ */
|
|
881
|
+
return /* @__PURE__ */ jsx16("div", { className: "blocks-date-chip", children: label });
|
|
721
882
|
}
|
|
722
883
|
|
|
723
884
|
// src/geo/hooks/useStacRasterLayer.ts
|
|
@@ -806,45 +967,13 @@ async function fetchMosaicTileUrl(request) {
|
|
|
806
967
|
return fetchTilejson(tilejsonUrl, queryString);
|
|
807
968
|
}
|
|
808
969
|
|
|
809
|
-
// src/geo/constants.ts
|
|
810
|
-
var NASA_BLUE_MARBLE_BASEMAP_STYLE = {
|
|
811
|
-
version: 8,
|
|
812
|
-
sources: {
|
|
813
|
-
"nasa-blue-marble": {
|
|
814
|
-
type: "raster",
|
|
815
|
-
tiles: [
|
|
816
|
-
"https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/BlueMarble_NextGeneration/default/GoogleMapsCompatible_Level8/{z}/{y}/{x}.jpeg"
|
|
817
|
-
],
|
|
818
|
-
tileSize: 256,
|
|
819
|
-
maxzoom: 8,
|
|
820
|
-
attribution: "Imagery courtesy NASA EOSDIS/GIBS"
|
|
821
|
-
}
|
|
822
|
-
},
|
|
823
|
-
layers: [
|
|
824
|
-
{
|
|
825
|
-
id: "nasa-blue-marble",
|
|
826
|
-
type: "raster",
|
|
827
|
-
source: "nasa-blue-marble"
|
|
828
|
-
}
|
|
829
|
-
]
|
|
830
|
-
};
|
|
831
|
-
var TITILER_BASE_URL = "https://openveda.cloud/api/raster";
|
|
832
|
-
var DEFAULT_RENDER_PARAMS = {
|
|
833
|
-
assets: ["cog_default"],
|
|
834
|
-
rescale: "0,0.0001",
|
|
835
|
-
resampling: "bilinear",
|
|
836
|
-
colormap_name: "viridis",
|
|
837
|
-
bidx: [1]
|
|
838
|
-
};
|
|
839
|
-
var DEFAULT_TILE_MATRIX_SET = "WebMercatorQuad";
|
|
840
|
-
var STAC_COLORSTOP_RGBA_ARG_COUNT = 4;
|
|
841
|
-
|
|
842
970
|
// src/geo/hooks/useMosaicTiles.ts
|
|
843
971
|
function useMosaicTiles(rasterLayerConfig) {
|
|
972
|
+
const { titilerBaseUrl } = useGeoConfig();
|
|
844
973
|
const { collectionId, dateRange, tileMatrixSet = DEFAULT_TILE_MATRIX_SET } = rasterLayerConfig;
|
|
845
974
|
const datetime = dateRange.from === dateRange.to ? dateRange.from : `${dateRange.from}/${dateRange.to}`;
|
|
846
975
|
const request = {
|
|
847
|
-
rasterApiUrl:
|
|
976
|
+
rasterApiUrl: titilerBaseUrl,
|
|
848
977
|
collectionId,
|
|
849
978
|
datetime,
|
|
850
979
|
sourceParams: {
|
|
@@ -855,7 +984,7 @@ function useMosaicTiles(rasterLayerConfig) {
|
|
|
855
984
|
tileMatrixSet
|
|
856
985
|
};
|
|
857
986
|
return useQuery({
|
|
858
|
-
queryKey: [collectionId, dateRange],
|
|
987
|
+
queryKey: [collectionId, dateRange, titilerBaseUrl],
|
|
859
988
|
queryFn: () => fetchMosaicTileUrl(request),
|
|
860
989
|
staleTime: 30 * 60 * 1e3,
|
|
861
990
|
gcTime: 60 * 60 * 1e3,
|
|
@@ -909,13 +1038,14 @@ function extractLegendProps(collection, colorStopMap) {
|
|
|
909
1038
|
|
|
910
1039
|
// src/geo/hooks/useStacRasterLegend.ts
|
|
911
1040
|
function useStacRasterLegend(collection) {
|
|
1041
|
+
const { titilerBaseUrl } = useGeoConfig();
|
|
912
1042
|
const query = useQuery2({
|
|
913
|
-
queryKey: ["legend", collection],
|
|
1043
|
+
queryKey: ["legend", collection, titilerBaseUrl],
|
|
914
1044
|
queryFn: async () => {
|
|
915
1045
|
if (!collection) return null;
|
|
916
1046
|
const colormapName = collection?.renders?.dashboard?.colormap_name;
|
|
917
1047
|
if (!colormapName) return null;
|
|
918
|
-
const response = await fetch(`${
|
|
1048
|
+
const response = await fetch(`${titilerBaseUrl}/colorMaps/${colormapName}`);
|
|
919
1049
|
if (!response.ok) {
|
|
920
1050
|
const error = {
|
|
921
1051
|
detail: `Colormap "${colormapName}" not found (HTTP ${response.status})`,
|
|
@@ -964,7 +1094,7 @@ function useStacRasterLayer(rasterLayerConfig) {
|
|
|
964
1094
|
}
|
|
965
1095
|
|
|
966
1096
|
// src/geo/StacCompareMap/StacCompareMap.tsx
|
|
967
|
-
import { jsx as
|
|
1097
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
968
1098
|
var MAP_PANEL_STYLE = {
|
|
969
1099
|
position: "absolute",
|
|
970
1100
|
top: 0,
|
|
@@ -1023,8 +1153,8 @@ function StacCompareMap({
|
|
|
1023
1153
|
...initialViewState && { initialViewState },
|
|
1024
1154
|
style: MAP_PANEL_STYLE
|
|
1025
1155
|
};
|
|
1026
|
-
return /* @__PURE__ */
|
|
1027
|
-
/* @__PURE__ */
|
|
1156
|
+
return /* @__PURE__ */ jsxs14("div", { ref: containerRef, className: containerClassName, children: [
|
|
1157
|
+
/* @__PURE__ */ jsxs14(
|
|
1028
1158
|
MapLibreMap,
|
|
1029
1159
|
{
|
|
1030
1160
|
ref: leftMapRef,
|
|
@@ -1032,13 +1162,13 @@ function StacCompareMap({
|
|
|
1032
1162
|
attributionControl: false,
|
|
1033
1163
|
onLoad: () => setLeftMapLoaded(true),
|
|
1034
1164
|
children: [
|
|
1035
|
-
/* @__PURE__ */
|
|
1036
|
-
/* @__PURE__ */
|
|
1037
|
-
left.mapSource.tiles && /* @__PURE__ */
|
|
1165
|
+
/* @__PURE__ */ jsx17(AttributionMapControl, {}),
|
|
1166
|
+
/* @__PURE__ */ jsx17(NavigationControl, { position: "top-left", showCompass: false }),
|
|
1167
|
+
left.mapSource.tiles && /* @__PURE__ */ jsx17(Source, { id: leftSourceId, type: "raster", tiles: [left.mapSource.tiles], children: /* @__PURE__ */ jsx17(Layer, { id: leftLayerId, type: "raster" }) })
|
|
1038
1168
|
]
|
|
1039
1169
|
}
|
|
1040
1170
|
),
|
|
1041
|
-
/* @__PURE__ */
|
|
1171
|
+
/* @__PURE__ */ jsxs14(
|
|
1042
1172
|
MapLibreMap,
|
|
1043
1173
|
{
|
|
1044
1174
|
ref: rightMapRef,
|
|
@@ -1046,14 +1176,14 @@ function StacCompareMap({
|
|
|
1046
1176
|
attributionControl: false,
|
|
1047
1177
|
onLoad: () => setRightMapLoaded(true),
|
|
1048
1178
|
children: [
|
|
1049
|
-
/* @__PURE__ */
|
|
1050
|
-
right.mapSource.tiles && /* @__PURE__ */
|
|
1179
|
+
/* @__PURE__ */ jsx17(AttributionMapControl, {}),
|
|
1180
|
+
right.mapSource.tiles && /* @__PURE__ */ jsx17(Source, { id: rightSourceId, type: "raster", tiles: [right.mapSource.tiles], children: /* @__PURE__ */ jsx17(Layer, { id: rightLayerId, type: "raster" }) })
|
|
1051
1181
|
]
|
|
1052
1182
|
}
|
|
1053
1183
|
),
|
|
1054
|
-
/* @__PURE__ */
|
|
1055
|
-
!isSameCollection && left.legend && /* @__PURE__ */
|
|
1056
|
-
right.legend && /* @__PURE__ */
|
|
1184
|
+
/* @__PURE__ */ jsx17("div", { className: "blocks-stacmap-compare__date-chip", children: /* @__PURE__ */ jsx17(DateChip, { left: leftLayerConfig.dateRange, right: rightLayerConfig.dateRange }) }),
|
|
1185
|
+
!isSameCollection && left.legend && /* @__PURE__ */ jsx17("div", { className: "blocks-stacmap-compare__legend-left", children: /* @__PURE__ */ jsx17(Legend, { ...left.legend }) }),
|
|
1186
|
+
right.legend && /* @__PURE__ */ jsx17("div", { className: "blocks-stacmap-compare__legend-right", children: /* @__PURE__ */ jsx17(Legend, { ...right.legend }) })
|
|
1057
1187
|
] });
|
|
1058
1188
|
}
|
|
1059
1189
|
|
|
@@ -1065,7 +1195,7 @@ import {
|
|
|
1065
1195
|
NavigationControl as NavigationControl2,
|
|
1066
1196
|
Source as Source2
|
|
1067
1197
|
} from "react-map-gl/maplibre";
|
|
1068
|
-
import { jsx as
|
|
1198
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1069
1199
|
function StacSingleLayerMap({
|
|
1070
1200
|
baseMapStyle = NASA_BLUE_MARBLE_BASEMAP_STYLE,
|
|
1071
1201
|
initialViewState,
|
|
@@ -1075,8 +1205,8 @@ function StacSingleLayerMap({
|
|
|
1075
1205
|
const sourceId = `${layerConfig.collectionId}-raster-source-${instanceId}`;
|
|
1076
1206
|
const layerId = `${layerConfig.collectionId}-raster-layer-${instanceId}`;
|
|
1077
1207
|
const { mapSource, legend } = useStacRasterLayer(layerConfig);
|
|
1078
|
-
return /* @__PURE__ */
|
|
1079
|
-
/* @__PURE__ */
|
|
1208
|
+
return /* @__PURE__ */ jsxs15("div", { className: "blocks-stacmap-singlelayer", children: [
|
|
1209
|
+
/* @__PURE__ */ jsxs15(
|
|
1080
1210
|
MapLibreMap2,
|
|
1081
1211
|
{
|
|
1082
1212
|
mapStyle: baseMapStyle,
|
|
@@ -1084,27 +1214,28 @@ function StacSingleLayerMap({
|
|
|
1084
1214
|
style: { position: "absolute", inset: 0 },
|
|
1085
1215
|
attributionControl: false,
|
|
1086
1216
|
children: [
|
|
1087
|
-
/* @__PURE__ */
|
|
1088
|
-
/* @__PURE__ */
|
|
1089
|
-
mapSource.tiles && /* @__PURE__ */
|
|
1217
|
+
/* @__PURE__ */ jsx18(AttributionMapControl, {}),
|
|
1218
|
+
/* @__PURE__ */ jsx18(NavigationControl2, { position: "top-left", showCompass: false }),
|
|
1219
|
+
mapSource.tiles && /* @__PURE__ */ jsx18(Source2, { id: sourceId, type: "raster", tiles: [mapSource.tiles], children: /* @__PURE__ */ jsx18(Layer2, { id: layerId, type: "raster" }) })
|
|
1090
1220
|
]
|
|
1091
1221
|
}
|
|
1092
1222
|
),
|
|
1093
|
-
/* @__PURE__ */
|
|
1094
|
-
/* @__PURE__ */
|
|
1223
|
+
/* @__PURE__ */ jsx18("div", { className: "blocks-stacmap-singlelayer__legend", children: legend && /* @__PURE__ */ jsx18(Legend, { ...legend }) }),
|
|
1224
|
+
/* @__PURE__ */ jsx18("div", { className: "blocks-stacmap-singlelayer__date-chip", children: /* @__PURE__ */ jsx18(DateChip, { left: layerConfig.dateRange }) })
|
|
1095
1225
|
] });
|
|
1096
1226
|
}
|
|
1097
1227
|
export {
|
|
1098
1228
|
Banner,
|
|
1099
|
-
Button,
|
|
1100
1229
|
Card,
|
|
1101
1230
|
CardCTA,
|
|
1102
1231
|
CardDetailed,
|
|
1103
1232
|
CardMini,
|
|
1104
1233
|
CardSimple,
|
|
1105
1234
|
Footer,
|
|
1235
|
+
GeoConfigProvider,
|
|
1106
1236
|
Header,
|
|
1107
1237
|
Legend,
|
|
1238
|
+
Link3 as Link,
|
|
1108
1239
|
StacCompareMap,
|
|
1109
1240
|
StacSingleLayerMap,
|
|
1110
1241
|
Tag
|