@empoweredvote/ev-ui 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +210 -54
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +203 -50
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1221,7 +1221,6 @@ function Header({
|
|
|
1221
1221
|
// src/SiteHeader.jsx
|
|
1222
1222
|
import React3 from "react";
|
|
1223
1223
|
var defaultNavItems = [
|
|
1224
|
-
{ label: "About Us", href: "https://empowered.vote/about" },
|
|
1225
1224
|
{
|
|
1226
1225
|
label: "Features",
|
|
1227
1226
|
href: "#",
|
|
@@ -1229,12 +1228,10 @@ var defaultNavItems = [
|
|
|
1229
1228
|
{ label: "Political Compass", href: "https://compass.empowered.vote" },
|
|
1230
1229
|
{ label: "Find Representatives", href: "https://essentials.empowered.vote" },
|
|
1231
1230
|
{ label: "Read & Rank", href: "https://readrank.empowered.vote" },
|
|
1232
|
-
{ label: "Treasury Tracker", href: "https://
|
|
1233
|
-
{ label: "Empowered Badges", href: "https://
|
|
1231
|
+
{ label: "Treasury Tracker", href: "https://treasurytracker.empowered.vote" },
|
|
1232
|
+
{ label: "Empowered Badges", href: "https://badges.empowered.vote" }
|
|
1234
1233
|
]
|
|
1235
|
-
}
|
|
1236
|
-
{ label: "Volunteer", href: "https://empowered.vote/volunteer" },
|
|
1237
|
-
{ label: "FAQ", href: "https://empowered.vote/faq" }
|
|
1234
|
+
}
|
|
1238
1235
|
];
|
|
1239
1236
|
var defaultCtaButton = {
|
|
1240
1237
|
label: "Donate",
|
|
@@ -4172,15 +4169,168 @@ function TopicTierBadge({
|
|
|
4172
4169
|
);
|
|
4173
4170
|
}
|
|
4174
4171
|
|
|
4172
|
+
// src/CompassCoverageCallout.jsx
|
|
4173
|
+
import React19, { useState as useState10 } from "react";
|
|
4174
|
+
var TIER_LABELS = {
|
|
4175
|
+
federal: "federal",
|
|
4176
|
+
state: "state",
|
|
4177
|
+
local: "local"
|
|
4178
|
+
};
|
|
4179
|
+
function CompassCoverageCallout({
|
|
4180
|
+
tier,
|
|
4181
|
+
count,
|
|
4182
|
+
totalSelected,
|
|
4183
|
+
compassUrl,
|
|
4184
|
+
onDismiss
|
|
4185
|
+
}) {
|
|
4186
|
+
const [dismissed, setDismissed] = useState10(false);
|
|
4187
|
+
if (dismissed) return null;
|
|
4188
|
+
const tierLabel = TIER_LABELS[tier] || tier;
|
|
4189
|
+
const tierStyle = tierColors[tier] || tierColors.federal;
|
|
4190
|
+
const containerStyle2 = {
|
|
4191
|
+
display: "flex",
|
|
4192
|
+
alignItems: "flex-start",
|
|
4193
|
+
gap: spacing[3],
|
|
4194
|
+
padding: `${spacing[3]} ${spacing[4]}`,
|
|
4195
|
+
borderLeft: `4px solid ${tierStyle.text}`,
|
|
4196
|
+
backgroundColor: tierStyle.bg,
|
|
4197
|
+
borderRadius: `0 ${borderRadius.md} ${borderRadius.md} 0`,
|
|
4198
|
+
fontFamily: fonts.primary,
|
|
4199
|
+
margin: `${spacing[3]} 0`
|
|
4200
|
+
};
|
|
4201
|
+
const textStyle = {
|
|
4202
|
+
flex: 1,
|
|
4203
|
+
fontSize: fontSizes.sm,
|
|
4204
|
+
color: "#2d3748",
|
|
4205
|
+
lineHeight: 1.5
|
|
4206
|
+
};
|
|
4207
|
+
const headlineStyle = {
|
|
4208
|
+
fontWeight: fontWeights.semibold,
|
|
4209
|
+
marginBottom: spacing[1],
|
|
4210
|
+
color: tierStyle.text
|
|
4211
|
+
};
|
|
4212
|
+
const ctaStyle = {
|
|
4213
|
+
display: "inline-block",
|
|
4214
|
+
marginTop: spacing[2],
|
|
4215
|
+
padding: `${spacing[2]} ${spacing[4]}`,
|
|
4216
|
+
backgroundColor: tierStyle.text,
|
|
4217
|
+
color: "#ffffff",
|
|
4218
|
+
borderRadius: borderRadius.full,
|
|
4219
|
+
fontSize: fontSizes.sm,
|
|
4220
|
+
fontWeight: fontWeights.semibold,
|
|
4221
|
+
textDecoration: "none",
|
|
4222
|
+
cursor: "pointer"
|
|
4223
|
+
};
|
|
4224
|
+
const closeStyle = {
|
|
4225
|
+
background: "none",
|
|
4226
|
+
border: "none",
|
|
4227
|
+
padding: spacing[1],
|
|
4228
|
+
cursor: "pointer",
|
|
4229
|
+
color: "#718096",
|
|
4230
|
+
fontSize: fontSizes.lg,
|
|
4231
|
+
lineHeight: 1
|
|
4232
|
+
};
|
|
4233
|
+
const handleDismiss = () => {
|
|
4234
|
+
setDismissed(true);
|
|
4235
|
+
if (onDismiss) onDismiss();
|
|
4236
|
+
};
|
|
4237
|
+
return /* @__PURE__ */ React19.createElement(
|
|
4238
|
+
"div",
|
|
4239
|
+
{
|
|
4240
|
+
className: "ev-compass-coverage-callout",
|
|
4241
|
+
role: "status",
|
|
4242
|
+
style: containerStyle2
|
|
4243
|
+
},
|
|
4244
|
+
/* @__PURE__ */ React19.createElement("div", { style: textStyle }, /* @__PURE__ */ React19.createElement("div", { style: headlineStyle }, "Your compass covers ", tierLabel, " issues lightly"), /* @__PURE__ */ React19.createElement("div", null, count === 0 ? `None of your ${totalSelected != null ? totalSelected : "selected"} compass topics apply at the ${tierLabel} level. ` : `Only ${count} of your ${totalSelected != null ? totalSelected : "selected"} compass topics apply at the ${tierLabel} level. `, "Add more ", tierLabel, "-applicable topics to get better comparisons with ", tierLabel, " officials."), /* @__PURE__ */ React19.createElement("a", { href: compassUrl, style: ctaStyle }, "Add ", tierLabel, " topics \u2192")),
|
|
4245
|
+
onDismiss !== void 0 && /* @__PURE__ */ React19.createElement(
|
|
4246
|
+
"button",
|
|
4247
|
+
{
|
|
4248
|
+
onClick: handleDismiss,
|
|
4249
|
+
style: closeStyle,
|
|
4250
|
+
"aria-label": "Dismiss coverage callout"
|
|
4251
|
+
},
|
|
4252
|
+
"\xD7"
|
|
4253
|
+
)
|
|
4254
|
+
);
|
|
4255
|
+
}
|
|
4256
|
+
|
|
4257
|
+
// src/ExpandCompassNudge.jsx
|
|
4258
|
+
import React20 from "react";
|
|
4259
|
+
function ExpandCompassNudge({
|
|
4260
|
+
politicianName,
|
|
4261
|
+
missingCount,
|
|
4262
|
+
compassUrl,
|
|
4263
|
+
style = {}
|
|
4264
|
+
}) {
|
|
4265
|
+
if (!missingCount || missingCount <= 0) return null;
|
|
4266
|
+
const containerStyle2 = {
|
|
4267
|
+
display: "flex",
|
|
4268
|
+
flexDirection: "column",
|
|
4269
|
+
alignItems: "flex-start",
|
|
4270
|
+
gap: spacing[2],
|
|
4271
|
+
padding: spacing[4],
|
|
4272
|
+
marginTop: spacing[4],
|
|
4273
|
+
backgroundColor: "#F5F9FA",
|
|
4274
|
+
borderRadius: borderRadius.lg,
|
|
4275
|
+
border: "1px solid #e0e6eb",
|
|
4276
|
+
fontFamily: fonts.primary,
|
|
4277
|
+
...style
|
|
4278
|
+
};
|
|
4279
|
+
const headlineStyle = {
|
|
4280
|
+
fontSize: fontSizes.base,
|
|
4281
|
+
fontWeight: fontWeights.semibold,
|
|
4282
|
+
color: "#2d3748",
|
|
4283
|
+
margin: 0
|
|
4284
|
+
};
|
|
4285
|
+
const bodyStyle = {
|
|
4286
|
+
fontSize: fontSizes.sm,
|
|
4287
|
+
color: "#4a5568",
|
|
4288
|
+
lineHeight: 1.5,
|
|
4289
|
+
margin: 0
|
|
4290
|
+
};
|
|
4291
|
+
const ctaStyle = {
|
|
4292
|
+
display: "inline-block",
|
|
4293
|
+
marginTop: spacing[2],
|
|
4294
|
+
padding: `${spacing[2]} ${spacing[4]}`,
|
|
4295
|
+
backgroundColor: "#00657c",
|
|
4296
|
+
color: "#ffffff",
|
|
4297
|
+
borderRadius: borderRadius.full,
|
|
4298
|
+
fontSize: fontSizes.sm,
|
|
4299
|
+
fontWeight: fontWeights.semibold,
|
|
4300
|
+
textDecoration: "none",
|
|
4301
|
+
cursor: "pointer"
|
|
4302
|
+
};
|
|
4303
|
+
const topicsLabel = missingCount === 1 ? "topic" : "topics";
|
|
4304
|
+
const speakerName = politicianName || "This politician";
|
|
4305
|
+
return /* @__PURE__ */ React20.createElement("div", { className: "ev-expand-compass-nudge", style: containerStyle2, role: "region" }, /* @__PURE__ */ React20.createElement("p", { style: headlineStyle }, "Want a richer comparison?"), /* @__PURE__ */ React20.createElement("p", { style: bodyStyle }, speakerName, " has stances on ", missingCount, " more ", topicsLabel, " you haven't answered yet. Expand your compass to see where you stand on all of them."), /* @__PURE__ */ React20.createElement("a", { href: compassUrl, style: ctaStyle }, "Expand my compass \u2192"));
|
|
4306
|
+
}
|
|
4307
|
+
|
|
4308
|
+
// src/computeTierCoverage.js
|
|
4309
|
+
function computeTierCoverage(topics) {
|
|
4310
|
+
const counts = { federal: 0, state: 0, local: 0 };
|
|
4311
|
+
if (!Array.isArray(topics)) return counts;
|
|
4312
|
+
for (const t of topics) {
|
|
4313
|
+
if (!t) continue;
|
|
4314
|
+
const hasFlags = "applies_federal" in t || "applies_state" in t || "applies_local" in t;
|
|
4315
|
+
const f = hasFlags ? Boolean(t.applies_federal) : true;
|
|
4316
|
+
const s = hasFlags ? Boolean(t.applies_state) : true;
|
|
4317
|
+
const l = hasFlags ? Boolean(t.applies_local) : true;
|
|
4318
|
+
if (f) counts.federal++;
|
|
4319
|
+
if (s) counts.state++;
|
|
4320
|
+
if (l) counts.local++;
|
|
4321
|
+
}
|
|
4322
|
+
return counts;
|
|
4323
|
+
}
|
|
4324
|
+
|
|
4175
4325
|
// src/StanceAccordion.jsx
|
|
4176
|
-
import
|
|
4326
|
+
import React22, { useState as useState11, useRef as useRef3, useCallback, useEffect as useEffect6 } from "react";
|
|
4177
4327
|
|
|
4178
4328
|
// src/Favicon.jsx
|
|
4179
|
-
import
|
|
4329
|
+
import React21 from "react";
|
|
4180
4330
|
function Favicon({ url, size = 16 }) {
|
|
4181
4331
|
try {
|
|
4182
4332
|
const domain = new URL(url).hostname;
|
|
4183
|
-
return /* @__PURE__ */
|
|
4333
|
+
return /* @__PURE__ */ React21.createElement(
|
|
4184
4334
|
"img",
|
|
4185
4335
|
{
|
|
4186
4336
|
src: `https://www.google.com/s2/favicons?sz=${size}&domain=${domain}`,
|
|
@@ -4191,7 +4341,7 @@ function Favicon({ url, size = 16 }) {
|
|
|
4191
4341
|
}
|
|
4192
4342
|
);
|
|
4193
4343
|
} catch {
|
|
4194
|
-
return /* @__PURE__ */
|
|
4344
|
+
return /* @__PURE__ */ React21.createElement(
|
|
4195
4345
|
"svg",
|
|
4196
4346
|
{
|
|
4197
4347
|
width: size,
|
|
@@ -4202,8 +4352,8 @@ function Favicon({ url, size = 16 }) {
|
|
|
4202
4352
|
strokeWidth: "1.5",
|
|
4203
4353
|
style: { verticalAlign: "middle", flexShrink: 0 }
|
|
4204
4354
|
},
|
|
4205
|
-
/* @__PURE__ */
|
|
4206
|
-
/* @__PURE__ */
|
|
4355
|
+
/* @__PURE__ */ React21.createElement("circle", { cx: "12", cy: "12", r: "10" }),
|
|
4356
|
+
/* @__PURE__ */ React21.createElement("path", { d: "M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })
|
|
4207
4357
|
);
|
|
4208
4358
|
}
|
|
4209
4359
|
}
|
|
@@ -4234,9 +4384,9 @@ function StanceAccordion({
|
|
|
4234
4384
|
apiUrl = "https://api.empowered.vote"
|
|
4235
4385
|
}) {
|
|
4236
4386
|
var _a;
|
|
4237
|
-
const [expandedTopicId, setExpandedTopicId] =
|
|
4238
|
-
const [loadingId, setLoadingId] =
|
|
4239
|
-
const [showAll, setShowAll] =
|
|
4387
|
+
const [expandedTopicId, setExpandedTopicId] = useState11(null);
|
|
4388
|
+
const [loadingId, setLoadingId] = useState11(null);
|
|
4389
|
+
const [showAll, setShowAll] = useState11(false);
|
|
4240
4390
|
const contextCache = useRef3(/* @__PURE__ */ new Map());
|
|
4241
4391
|
const quotesCache = useRef3(null);
|
|
4242
4392
|
const polAnswerMap = {};
|
|
@@ -4330,13 +4480,13 @@ function StanceAccordion({
|
|
|
4330
4480
|
visibleTopics = [pinned, ...baseTopics.filter((t) => String(t.id) !== String(initialExpandedTopicId))];
|
|
4331
4481
|
}
|
|
4332
4482
|
}
|
|
4333
|
-
return /* @__PURE__ */
|
|
4483
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4334
4484
|
"div",
|
|
4335
4485
|
{
|
|
4336
4486
|
className: "flex flex-col",
|
|
4337
4487
|
style: { fontFamily: "'Manrope', sans-serif" }
|
|
4338
4488
|
},
|
|
4339
|
-
/* @__PURE__ */
|
|
4489
|
+
/* @__PURE__ */ React22.createElement(
|
|
4340
4490
|
"h3",
|
|
4341
4491
|
{
|
|
4342
4492
|
className: "text-sm font-semibold text-neutral-400 uppercase tracking-wider mb-2",
|
|
@@ -4358,15 +4508,15 @@ function StanceAccordion({
|
|
|
4358
4508
|
if (topic.topic_key) return q.issue === topic.topic_key;
|
|
4359
4509
|
return topic.short_title && q.issue.toLowerCase() === topic.short_title.toLowerCase();
|
|
4360
4510
|
}) : [];
|
|
4361
|
-
return /* @__PURE__ */
|
|
4511
|
+
return /* @__PURE__ */ React22.createElement("div", { key: topicId, className: "border-b border-neutral-100" }, /* @__PURE__ */ React22.createElement(
|
|
4362
4512
|
"button",
|
|
4363
4513
|
{
|
|
4364
4514
|
type: "button",
|
|
4365
4515
|
onClick: () => handleToggle(topicId),
|
|
4366
4516
|
className: "w-full flex items-center justify-between py-3 px-2 text-left cursor-pointer hover:bg-neutral-50 transition-colors"
|
|
4367
4517
|
},
|
|
4368
|
-
/* @__PURE__ */
|
|
4369
|
-
/* @__PURE__ */
|
|
4518
|
+
/* @__PURE__ */ React22.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React22.createElement("span", { className: "text-sm font-medium text-neutral-800 truncate" }, topic.short_title), questionText && /* @__PURE__ */ React22.createElement("span", { className: "text-xs text-neutral-400 mt-0.5" }, questionText), /* @__PURE__ */ React22.createElement("span", { className: "text-xs text-neutral-500 mt-0.5" }, label)),
|
|
4519
|
+
/* @__PURE__ */ React22.createElement(
|
|
4370
4520
|
"svg",
|
|
4371
4521
|
{
|
|
4372
4522
|
width: "16",
|
|
@@ -4383,9 +4533,9 @@ function StanceAccordion({
|
|
|
4383
4533
|
transition: "transform 0.2s ease"
|
|
4384
4534
|
}
|
|
4385
4535
|
},
|
|
4386
|
-
/* @__PURE__ */
|
|
4536
|
+
/* @__PURE__ */ React22.createElement("polyline", { points: "9 18 15 12 9 6" })
|
|
4387
4537
|
)
|
|
4388
|
-
), /* @__PURE__ */
|
|
4538
|
+
), /* @__PURE__ */ React22.createElement(
|
|
4389
4539
|
"div",
|
|
4390
4540
|
{
|
|
4391
4541
|
style: {
|
|
@@ -4394,7 +4544,7 @@ function StanceAccordion({
|
|
|
4394
4544
|
transition: "grid-template-rows 0.25s ease"
|
|
4395
4545
|
}
|
|
4396
4546
|
},
|
|
4397
|
-
/* @__PURE__ */
|
|
4547
|
+
/* @__PURE__ */ React22.createElement("div", { style: { overflow: "hidden" } }, /* @__PURE__ */ React22.createElement("div", { className: "px-2 pb-4" }, isLoading && /* @__PURE__ */ React22.createElement("div", { className: "flex items-center py-3" }, /* @__PURE__ */ React22.createElement(
|
|
4398
4548
|
"div",
|
|
4399
4549
|
{
|
|
4400
4550
|
style: {
|
|
@@ -4406,14 +4556,14 @@ function StanceAccordion({
|
|
|
4406
4556
|
animation: "ev-spin 0.8s linear infinite"
|
|
4407
4557
|
}
|
|
4408
4558
|
}
|
|
4409
|
-
)), !isLoading && cached && /* @__PURE__ */
|
|
4559
|
+
)), !isLoading && cached && /* @__PURE__ */ React22.createElement(React22.Fragment, null, cached.reasoning ? /* @__PURE__ */ React22.createElement(
|
|
4410
4560
|
"p",
|
|
4411
4561
|
{
|
|
4412
4562
|
className: "text-sm text-neutral-700 mb-3",
|
|
4413
4563
|
style: { whiteSpace: "pre-wrap", lineHeight: 1.6 }
|
|
4414
4564
|
},
|
|
4415
4565
|
cached.reasoning
|
|
4416
|
-
) : null, cached.sources && cached.sources.length > 0 && /* @__PURE__ */
|
|
4566
|
+
) : null, cached.sources && cached.sources.length > 0 && /* @__PURE__ */ React22.createElement("div", { className: "mt-2" }, /* @__PURE__ */ React22.createElement("p", { className: "text-xs font-semibold text-neutral-500 uppercase tracking-wider mb-1.5" }, "References"), /* @__PURE__ */ React22.createElement("ol", { className: "list-decimal list-inside space-y-1" }, cached.sources.map((src, i) => /* @__PURE__ */ React22.createElement("li", { key: i, className: "text-xs text-neutral-600" }, /* @__PURE__ */ React22.createElement(
|
|
4417
4567
|
"a",
|
|
4418
4568
|
{
|
|
4419
4569
|
href: src,
|
|
@@ -4421,9 +4571,9 @@ function StanceAccordion({
|
|
|
4421
4571
|
rel: "noreferrer",
|
|
4422
4572
|
className: "inline-flex items-center gap-1.5 hover:text-[#00657c] transition-colors"
|
|
4423
4573
|
},
|
|
4424
|
-
/* @__PURE__ */
|
|
4425
|
-
/* @__PURE__ */
|
|
4426
|
-
))))), topicQuotes.length > 0 && /* @__PURE__ */
|
|
4574
|
+
/* @__PURE__ */ React22.createElement(Favicon, { url: src }),
|
|
4575
|
+
/* @__PURE__ */ React22.createElement("span", { className: "underline underline-offset-2" }, getDisplayUrl(src))
|
|
4576
|
+
))))), topicQuotes.length > 0 && /* @__PURE__ */ React22.createElement("div", { style: { marginTop: "12px" } }, /* @__PURE__ */ React22.createElement(
|
|
4427
4577
|
"p",
|
|
4428
4578
|
{
|
|
4429
4579
|
style: {
|
|
@@ -4440,7 +4590,7 @@ function StanceAccordion({
|
|
|
4440
4590
|
const verdict = verdictsByQuote ? verdictsByQuote[quote.id] : void 0;
|
|
4441
4591
|
const borderColor = verdict === "agreed" ? "#0e7490" : verdict === "disagreed" ? "#b45309" : "#e2e8f0";
|
|
4442
4592
|
const sourceName = quote.source_name || quote.sourceName;
|
|
4443
|
-
return /* @__PURE__ */
|
|
4593
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4444
4594
|
"div",
|
|
4445
4595
|
{
|
|
4446
4596
|
key: quote.id,
|
|
@@ -4452,7 +4602,7 @@ function StanceAccordion({
|
|
|
4452
4602
|
marginBottom: "8px"
|
|
4453
4603
|
}
|
|
4454
4604
|
},
|
|
4455
|
-
/* @__PURE__ */
|
|
4605
|
+
/* @__PURE__ */ React22.createElement(
|
|
4456
4606
|
"p",
|
|
4457
4607
|
{
|
|
4458
4608
|
style: {
|
|
@@ -4465,7 +4615,7 @@ function StanceAccordion({
|
|
|
4465
4615
|
},
|
|
4466
4616
|
quote.text
|
|
4467
4617
|
),
|
|
4468
|
-
verdict === "agreed" && /* @__PURE__ */
|
|
4618
|
+
verdict === "agreed" && /* @__PURE__ */ React22.createElement(
|
|
4469
4619
|
"span",
|
|
4470
4620
|
{
|
|
4471
4621
|
style: {
|
|
@@ -4482,10 +4632,10 @@ function StanceAccordion({
|
|
|
4482
4632
|
flexShrink: 0
|
|
4483
4633
|
}
|
|
4484
4634
|
},
|
|
4485
|
-
/* @__PURE__ */
|
|
4635
|
+
/* @__PURE__ */ React22.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React22.createElement("path", { d: "M5 13l4 4L19 7" })),
|
|
4486
4636
|
"Agreed"
|
|
4487
4637
|
),
|
|
4488
|
-
verdict === "disagreed" && /* @__PURE__ */
|
|
4638
|
+
verdict === "disagreed" && /* @__PURE__ */ React22.createElement(
|
|
4489
4639
|
"span",
|
|
4490
4640
|
{
|
|
4491
4641
|
style: {
|
|
@@ -4502,10 +4652,10 @@ function StanceAccordion({
|
|
|
4502
4652
|
flexShrink: 0
|
|
4503
4653
|
}
|
|
4504
4654
|
},
|
|
4505
|
-
/* @__PURE__ */
|
|
4655
|
+
/* @__PURE__ */ React22.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React22.createElement("path", { d: "M6 18L18 6M6 6l12 12" })),
|
|
4506
4656
|
"Disagreed"
|
|
4507
4657
|
),
|
|
4508
|
-
sourceName && /* @__PURE__ */
|
|
4658
|
+
sourceName && /* @__PURE__ */ React22.createElement(
|
|
4509
4659
|
"a",
|
|
4510
4660
|
{
|
|
4511
4661
|
href: quote.source_url || quote.sourceUrl,
|
|
@@ -4522,10 +4672,10 @@ function StanceAccordion({
|
|
|
4522
4672
|
sourceName
|
|
4523
4673
|
)
|
|
4524
4674
|
);
|
|
4525
|
-
})), !cached.reasoning && (!cached.sources || cached.sources.length === 0) && topicQuotes.length === 0 && /* @__PURE__ */
|
|
4675
|
+
})), !cached.reasoning && (!cached.sources || cached.sources.length === 0) && topicQuotes.length === 0 && /* @__PURE__ */ React22.createElement("p", { className: "text-sm text-neutral-400 italic py-2" }, "No detailed reasoning available for this topic."))))
|
|
4526
4676
|
));
|
|
4527
4677
|
}),
|
|
4528
|
-
hasToggle && /* @__PURE__ */
|
|
4678
|
+
hasToggle && /* @__PURE__ */ React22.createElement(
|
|
4529
4679
|
"button",
|
|
4530
4680
|
{
|
|
4531
4681
|
type: "button",
|
|
@@ -4539,9 +4689,9 @@ function StanceAccordion({
|
|
|
4539
4689
|
}
|
|
4540
4690
|
|
|
4541
4691
|
// src/icons.js
|
|
4542
|
-
import
|
|
4692
|
+
import React23 from "react";
|
|
4543
4693
|
function BallotIcon({ size = 16, color = "currentColor" }) {
|
|
4544
|
-
return /* @__PURE__ */
|
|
4694
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4545
4695
|
"svg",
|
|
4546
4696
|
{
|
|
4547
4697
|
width: size,
|
|
@@ -4554,13 +4704,13 @@ function BallotIcon({ size = 16, color = "currentColor" }) {
|
|
|
4554
4704
|
strokeLinejoin: "round",
|
|
4555
4705
|
xmlns: "http://www.w3.org/2000/svg"
|
|
4556
4706
|
},
|
|
4557
|
-
/* @__PURE__ */
|
|
4558
|
-
/* @__PURE__ */
|
|
4559
|
-
/* @__PURE__ */
|
|
4707
|
+
/* @__PURE__ */ React23.createElement("path", { d: "m9 12 2 2 4-4" }),
|
|
4708
|
+
/* @__PURE__ */ React23.createElement("path", { d: "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z" }),
|
|
4709
|
+
/* @__PURE__ */ React23.createElement("path", { d: "M22 19H2" })
|
|
4560
4710
|
);
|
|
4561
4711
|
}
|
|
4562
4712
|
function CompassIcon({ size = 16, color = "currentColor" }) {
|
|
4563
|
-
return /* @__PURE__ */
|
|
4713
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4564
4714
|
"svg",
|
|
4565
4715
|
{
|
|
4566
4716
|
width: size,
|
|
@@ -4573,27 +4723,27 @@ function CompassIcon({ size = 16, color = "currentColor" }) {
|
|
|
4573
4723
|
strokeLinejoin: "round",
|
|
4574
4724
|
xmlns: "http://www.w3.org/2000/svg"
|
|
4575
4725
|
},
|
|
4576
|
-
/* @__PURE__ */
|
|
4577
|
-
/* @__PURE__ */
|
|
4726
|
+
/* @__PURE__ */ React23.createElement("circle", { cx: "12", cy: "12", r: "10" }),
|
|
4727
|
+
/* @__PURE__ */ React23.createElement("path", { d: "m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z" })
|
|
4578
4728
|
);
|
|
4579
4729
|
}
|
|
4580
4730
|
function BranchIcon({ size = 16, color = "currentColor", branch }) {
|
|
4581
4731
|
let paths;
|
|
4582
4732
|
switch (branch) {
|
|
4583
4733
|
case "executive":
|
|
4584
|
-
paths = /* @__PURE__ */
|
|
4734
|
+
paths = /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement("path", { d: "M3 21h18" }), /* @__PURE__ */ React23.createElement("path", { d: "M5 21V7l8-4v18" }), /* @__PURE__ */ React23.createElement("path", { d: "M19 21V11l-6-4" }), /* @__PURE__ */ React23.createElement("path", { d: "M9 9v.01" }), /* @__PURE__ */ React23.createElement("path", { d: "M9 12v.01" }), /* @__PURE__ */ React23.createElement("path", { d: "M9 15v.01" }), /* @__PURE__ */ React23.createElement("path", { d: "M9 18v.01" }), /* @__PURE__ */ React23.createElement("path", { d: "M5 21h14" }), /* @__PURE__ */ React23.createElement("line", { x1: "13", y1: "5", x2: "13", y2: "3" }), /* @__PURE__ */ React23.createElement("line", { x1: "13", y1: "3", x2: "15", y2: "4" }));
|
|
4585
4735
|
break;
|
|
4586
4736
|
case "legislative":
|
|
4587
|
-
paths = /* @__PURE__ */
|
|
4737
|
+
paths = /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement("path", { d: "M8 21h12a2 2 0 0 0 2-2v-2H10v2a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v3h4" }), /* @__PURE__ */ React23.createElement("path", { d: "M19 17V5a2 2 0 0 0-2-2H4" }), /* @__PURE__ */ React23.createElement("path", { d: "M15 8h-5" }), /* @__PURE__ */ React23.createElement("path", { d: "M15 12h-5" }));
|
|
4588
4738
|
break;
|
|
4589
4739
|
case "judicial":
|
|
4590
|
-
paths = /* @__PURE__ */
|
|
4740
|
+
paths = /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement("path", { d: "M12 3v19" }), /* @__PURE__ */ React23.createElement("path", { d: "M5 8l7-5 7 5" }), /* @__PURE__ */ React23.createElement("path", { d: "M3 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ React23.createElement("path", { d: "M17 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ React23.createElement("path", { d: "M8 21h8" }));
|
|
4591
4741
|
break;
|
|
4592
4742
|
default:
|
|
4593
|
-
paths = /* @__PURE__ */
|
|
4743
|
+
paths = /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement("path", { d: "M10 18v-7" }), /* @__PURE__ */ React23.createElement("path", { d: "M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z" }), /* @__PURE__ */ React23.createElement("path", { d: "M14 18v-7" }), /* @__PURE__ */ React23.createElement("path", { d: "M18 18v-7" }), /* @__PURE__ */ React23.createElement("path", { d: "M3 22h18" }), /* @__PURE__ */ React23.createElement("path", { d: "M6 18v-7" }));
|
|
4594
4744
|
break;
|
|
4595
4745
|
}
|
|
4596
|
-
return /* @__PURE__ */
|
|
4746
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4597
4747
|
"svg",
|
|
4598
4748
|
{
|
|
4599
4749
|
width: size,
|
|
@@ -4615,7 +4765,9 @@ export {
|
|
|
4615
4765
|
BranchIcon,
|
|
4616
4766
|
CategorySection,
|
|
4617
4767
|
CommitteeTable,
|
|
4768
|
+
CompassCoverageCallout,
|
|
4618
4769
|
CompassIcon,
|
|
4770
|
+
ExpandCompassNudge,
|
|
4619
4771
|
FilterSidebar,
|
|
4620
4772
|
GovernmentBodySection,
|
|
4621
4773
|
Header,
|
|
@@ -4637,6 +4789,7 @@ export {
|
|
|
4637
4789
|
breakpoints,
|
|
4638
4790
|
colorScales,
|
|
4639
4791
|
colors,
|
|
4792
|
+
computeTierCoverage,
|
|
4640
4793
|
dataVizPalette,
|
|
4641
4794
|
defaultCtaButton,
|
|
4642
4795
|
defaultNavItems,
|