@empoweredvote/ev-ui 0.2.2 → 0.3.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.
package/dist/index.mjs CHANGED
@@ -4032,15 +4032,155 @@ var styles = {
4032
4032
  }
4033
4033
  };
4034
4034
 
4035
+ // src/TopicTierBadge.jsx
4036
+ import React18 from "react";
4037
+ function LandmarkIcon({ size = 14 }) {
4038
+ return /* @__PURE__ */ React18.createElement(
4039
+ "svg",
4040
+ {
4041
+ width: size,
4042
+ height: size,
4043
+ viewBox: "0 0 24 24",
4044
+ fill: "none",
4045
+ stroke: "currentColor",
4046
+ strokeWidth: "2",
4047
+ strokeLinecap: "round",
4048
+ strokeLinejoin: "round",
4049
+ xmlns: "http://www.w3.org/2000/svg",
4050
+ "aria-hidden": "true"
4051
+ },
4052
+ /* @__PURE__ */ React18.createElement("path", { d: "M10 18v-7" }),
4053
+ /* @__PURE__ */ React18.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" }),
4054
+ /* @__PURE__ */ React18.createElement("path", { d: "M14 18v-7" }),
4055
+ /* @__PURE__ */ React18.createElement("path", { d: "M18 18v-7" }),
4056
+ /* @__PURE__ */ React18.createElement("path", { d: "M3 22h18" }),
4057
+ /* @__PURE__ */ React18.createElement("path", { d: "M6 18v-7" })
4058
+ );
4059
+ }
4060
+ function Building2Icon({ size = 14 }) {
4061
+ return /* @__PURE__ */ React18.createElement(
4062
+ "svg",
4063
+ {
4064
+ width: size,
4065
+ height: size,
4066
+ viewBox: "0 0 24 24",
4067
+ fill: "none",
4068
+ stroke: "currentColor",
4069
+ strokeWidth: "2",
4070
+ strokeLinecap: "round",
4071
+ strokeLinejoin: "round",
4072
+ xmlns: "http://www.w3.org/2000/svg",
4073
+ "aria-hidden": "true"
4074
+ },
4075
+ /* @__PURE__ */ React18.createElement("path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z" }),
4076
+ /* @__PURE__ */ React18.createElement("path", { d: "M6 12H4a2 2 0 0 0-2 2v8h4" }),
4077
+ /* @__PURE__ */ React18.createElement("path", { d: "M18 9h2a2 2 0 0 1 2 2v11h-4" }),
4078
+ /* @__PURE__ */ React18.createElement("path", { d: "M10 6h4" }),
4079
+ /* @__PURE__ */ React18.createElement("path", { d: "M10 10h4" }),
4080
+ /* @__PURE__ */ React18.createElement("path", { d: "M10 14h4" }),
4081
+ /* @__PURE__ */ React18.createElement("path", { d: "M10 18h4" })
4082
+ );
4083
+ }
4084
+ function HomeIcon({ size = 14 }) {
4085
+ return /* @__PURE__ */ React18.createElement(
4086
+ "svg",
4087
+ {
4088
+ width: size,
4089
+ height: size,
4090
+ viewBox: "0 0 24 24",
4091
+ fill: "none",
4092
+ stroke: "currentColor",
4093
+ strokeWidth: "2",
4094
+ strokeLinecap: "round",
4095
+ strokeLinejoin: "round",
4096
+ xmlns: "http://www.w3.org/2000/svg",
4097
+ "aria-hidden": "true"
4098
+ },
4099
+ /* @__PURE__ */ React18.createElement("path", { d: "m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }),
4100
+ /* @__PURE__ */ React18.createElement("polyline", { points: "9 22 9 12 15 12 15 22" })
4101
+ );
4102
+ }
4103
+ var TIER_INFO = {
4104
+ federal: { label: "Federal", Icon: LandmarkIcon },
4105
+ state: { label: "State", Icon: Building2Icon },
4106
+ local: { label: "Local", Icon: HomeIcon }
4107
+ };
4108
+ var SIZE_STYLES = {
4109
+ xs: {
4110
+ iconSize: 12,
4111
+ fontSize: fontSizes.xs,
4112
+ pillPadding: `${spacing[1]} ${spacing[2]}`,
4113
+ gap: spacing[1],
4114
+ iconGap: "3px"
4115
+ },
4116
+ sm: {
4117
+ iconSize: 14,
4118
+ fontSize: fontSizes.xs,
4119
+ pillPadding: `${spacing[1]} ${spacing[2]}`,
4120
+ gap: spacing[2],
4121
+ iconGap: "4px"
4122
+ }
4123
+ };
4124
+ function TopicTierBadge({
4125
+ topic,
4126
+ tiers,
4127
+ size = "sm",
4128
+ iconOnly = false,
4129
+ variant = "tinted",
4130
+ style = {}
4131
+ }) {
4132
+ const effectiveTiers = tiers != null ? tiers : topic ? [
4133
+ topic.applies_federal ? "federal" : null,
4134
+ topic.applies_state ? "state" : null,
4135
+ topic.applies_local ? "local" : null
4136
+ ].filter(Boolean) : [];
4137
+ if (effectiveTiers.length === 0) return null;
4138
+ const sizeStyle = SIZE_STYLES[size] || SIZE_STYLES.sm;
4139
+ const containerStyle2 = {
4140
+ display: "inline-flex",
4141
+ alignItems: "center",
4142
+ gap: sizeStyle.gap,
4143
+ flexWrap: "wrap",
4144
+ ...style
4145
+ };
4146
+ const itemStyle = (tier) => {
4147
+ const color = variant === "muted" ? "#6B7280" : tierColors[tier].text;
4148
+ return {
4149
+ display: "inline-flex",
4150
+ alignItems: "center",
4151
+ gap: sizeStyle.iconGap,
4152
+ fontFamily: fonts.primary,
4153
+ fontWeight: fontWeights.medium,
4154
+ fontSize: sizeStyle.fontSize,
4155
+ color,
4156
+ lineHeight: 1,
4157
+ userSelect: "none"
4158
+ };
4159
+ };
4160
+ return /* @__PURE__ */ React18.createElement(
4161
+ "span",
4162
+ {
4163
+ className: "ev-topic-tier-badge",
4164
+ style: containerStyle2,
4165
+ role: "group",
4166
+ "aria-label": `Applies at: ${effectiveTiers.map((t) => TIER_INFO[t].label).join(", ")}`
4167
+ },
4168
+ effectiveTiers.map((tier) => {
4169
+ const { label, Icon } = TIER_INFO[tier];
4170
+ return /* @__PURE__ */ React18.createElement("span", { key: tier, style: itemStyle(tier) }, /* @__PURE__ */ React18.createElement(Icon, { size: sizeStyle.iconSize }), !iconOnly && /* @__PURE__ */ React18.createElement("span", null, label));
4171
+ })
4172
+ );
4173
+ }
4174
+
4035
4175
  // src/StanceAccordion.jsx
4036
- import React19, { useState as useState10, useRef as useRef3, useCallback, useEffect as useEffect6 } from "react";
4176
+ import React20, { useState as useState10, useRef as useRef3, useCallback, useEffect as useEffect6 } from "react";
4037
4177
 
4038
4178
  // src/Favicon.jsx
4039
- import React18 from "react";
4179
+ import React19 from "react";
4040
4180
  function Favicon({ url, size = 16 }) {
4041
4181
  try {
4042
4182
  const domain = new URL(url).hostname;
4043
- return /* @__PURE__ */ React18.createElement(
4183
+ return /* @__PURE__ */ React19.createElement(
4044
4184
  "img",
4045
4185
  {
4046
4186
  src: `https://www.google.com/s2/favicons?sz=${size}&domain=${domain}`,
@@ -4051,7 +4191,7 @@ function Favicon({ url, size = 16 }) {
4051
4191
  }
4052
4192
  );
4053
4193
  } catch {
4054
- return /* @__PURE__ */ React18.createElement(
4194
+ return /* @__PURE__ */ React19.createElement(
4055
4195
  "svg",
4056
4196
  {
4057
4197
  width: size,
@@ -4062,8 +4202,8 @@ function Favicon({ url, size = 16 }) {
4062
4202
  strokeWidth: "1.5",
4063
4203
  style: { verticalAlign: "middle", flexShrink: 0 }
4064
4204
  },
4065
- /* @__PURE__ */ React18.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4066
- /* @__PURE__ */ React18.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" })
4205
+ /* @__PURE__ */ React19.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4206
+ /* @__PURE__ */ React19.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" })
4067
4207
  );
4068
4208
  }
4069
4209
  }
@@ -4190,13 +4330,13 @@ function StanceAccordion({
4190
4330
  visibleTopics = [pinned, ...baseTopics.filter((t) => String(t.id) !== String(initialExpandedTopicId))];
4191
4331
  }
4192
4332
  }
4193
- return /* @__PURE__ */ React19.createElement(
4333
+ return /* @__PURE__ */ React20.createElement(
4194
4334
  "div",
4195
4335
  {
4196
4336
  className: "flex flex-col",
4197
4337
  style: { fontFamily: "'Manrope', sans-serif" }
4198
4338
  },
4199
- /* @__PURE__ */ React19.createElement(
4339
+ /* @__PURE__ */ React20.createElement(
4200
4340
  "h3",
4201
4341
  {
4202
4342
  className: "text-sm font-semibold text-neutral-400 uppercase tracking-wider mb-2",
@@ -4218,15 +4358,15 @@ function StanceAccordion({
4218
4358
  if (topic.topic_key) return q.issue === topic.topic_key;
4219
4359
  return topic.short_title && q.issue.toLowerCase() === topic.short_title.toLowerCase();
4220
4360
  }) : [];
4221
- return /* @__PURE__ */ React19.createElement("div", { key: topicId, className: "border-b border-neutral-100" }, /* @__PURE__ */ React19.createElement(
4361
+ return /* @__PURE__ */ React20.createElement("div", { key: topicId, className: "border-b border-neutral-100" }, /* @__PURE__ */ React20.createElement(
4222
4362
  "button",
4223
4363
  {
4224
4364
  type: "button",
4225
4365
  onClick: () => handleToggle(topicId),
4226
4366
  className: "w-full flex items-center justify-between py-3 px-2 text-left cursor-pointer hover:bg-neutral-50 transition-colors"
4227
4367
  },
4228
- /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React19.createElement("span", { className: "text-sm font-medium text-neutral-800 truncate" }, topic.short_title), questionText && /* @__PURE__ */ React19.createElement("span", { className: "text-xs text-neutral-400 mt-0.5" }, questionText), /* @__PURE__ */ React19.createElement("span", { className: "text-xs text-neutral-500 mt-0.5" }, label)),
4229
- /* @__PURE__ */ React19.createElement(
4368
+ /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React20.createElement("span", { className: "text-sm font-medium text-neutral-800 truncate" }, topic.short_title), questionText && /* @__PURE__ */ React20.createElement("span", { className: "text-xs text-neutral-400 mt-0.5" }, questionText), /* @__PURE__ */ React20.createElement("span", { className: "text-xs text-neutral-500 mt-0.5" }, label)),
4369
+ /* @__PURE__ */ React20.createElement(
4230
4370
  "svg",
4231
4371
  {
4232
4372
  width: "16",
@@ -4243,9 +4383,9 @@ function StanceAccordion({
4243
4383
  transition: "transform 0.2s ease"
4244
4384
  }
4245
4385
  },
4246
- /* @__PURE__ */ React19.createElement("polyline", { points: "9 18 15 12 9 6" })
4386
+ /* @__PURE__ */ React20.createElement("polyline", { points: "9 18 15 12 9 6" })
4247
4387
  )
4248
- ), /* @__PURE__ */ React19.createElement(
4388
+ ), /* @__PURE__ */ React20.createElement(
4249
4389
  "div",
4250
4390
  {
4251
4391
  style: {
@@ -4254,7 +4394,7 @@ function StanceAccordion({
4254
4394
  transition: "grid-template-rows 0.25s ease"
4255
4395
  }
4256
4396
  },
4257
- /* @__PURE__ */ React19.createElement("div", { style: { overflow: "hidden" } }, /* @__PURE__ */ React19.createElement("div", { className: "px-2 pb-4" }, isLoading && /* @__PURE__ */ React19.createElement("div", { className: "flex items-center py-3" }, /* @__PURE__ */ React19.createElement(
4397
+ /* @__PURE__ */ React20.createElement("div", { style: { overflow: "hidden" } }, /* @__PURE__ */ React20.createElement("div", { className: "px-2 pb-4" }, isLoading && /* @__PURE__ */ React20.createElement("div", { className: "flex items-center py-3" }, /* @__PURE__ */ React20.createElement(
4258
4398
  "div",
4259
4399
  {
4260
4400
  style: {
@@ -4266,14 +4406,14 @@ function StanceAccordion({
4266
4406
  animation: "ev-spin 0.8s linear infinite"
4267
4407
  }
4268
4408
  }
4269
- )), !isLoading && cached && /* @__PURE__ */ React19.createElement(React19.Fragment, null, cached.reasoning ? /* @__PURE__ */ React19.createElement(
4409
+ )), !isLoading && cached && /* @__PURE__ */ React20.createElement(React20.Fragment, null, cached.reasoning ? /* @__PURE__ */ React20.createElement(
4270
4410
  "p",
4271
4411
  {
4272
4412
  className: "text-sm text-neutral-700 mb-3",
4273
4413
  style: { whiteSpace: "pre-wrap", lineHeight: 1.6 }
4274
4414
  },
4275
4415
  cached.reasoning
4276
- ) : null, cached.sources && cached.sources.length > 0 && /* @__PURE__ */ React19.createElement("div", { className: "mt-2" }, /* @__PURE__ */ React19.createElement("p", { className: "text-xs font-semibold text-neutral-500 uppercase tracking-wider mb-1.5" }, "References"), /* @__PURE__ */ React19.createElement("ol", { className: "list-decimal list-inside space-y-1" }, cached.sources.map((src, i) => /* @__PURE__ */ React19.createElement("li", { key: i, className: "text-xs text-neutral-600" }, /* @__PURE__ */ React19.createElement(
4416
+ ) : null, cached.sources && cached.sources.length > 0 && /* @__PURE__ */ React20.createElement("div", { className: "mt-2" }, /* @__PURE__ */ React20.createElement("p", { className: "text-xs font-semibold text-neutral-500 uppercase tracking-wider mb-1.5" }, "References"), /* @__PURE__ */ React20.createElement("ol", { className: "list-decimal list-inside space-y-1" }, cached.sources.map((src, i) => /* @__PURE__ */ React20.createElement("li", { key: i, className: "text-xs text-neutral-600" }, /* @__PURE__ */ React20.createElement(
4277
4417
  "a",
4278
4418
  {
4279
4419
  href: src,
@@ -4281,9 +4421,9 @@ function StanceAccordion({
4281
4421
  rel: "noreferrer",
4282
4422
  className: "inline-flex items-center gap-1.5 hover:text-[#00657c] transition-colors"
4283
4423
  },
4284
- /* @__PURE__ */ React19.createElement(Favicon, { url: src }),
4285
- /* @__PURE__ */ React19.createElement("span", { className: "underline underline-offset-2" }, getDisplayUrl(src))
4286
- ))))), topicQuotes.length > 0 && /* @__PURE__ */ React19.createElement("div", { style: { marginTop: "12px" } }, /* @__PURE__ */ React19.createElement(
4424
+ /* @__PURE__ */ React20.createElement(Favicon, { url: src }),
4425
+ /* @__PURE__ */ React20.createElement("span", { className: "underline underline-offset-2" }, getDisplayUrl(src))
4426
+ ))))), topicQuotes.length > 0 && /* @__PURE__ */ React20.createElement("div", { style: { marginTop: "12px" } }, /* @__PURE__ */ React20.createElement(
4287
4427
  "p",
4288
4428
  {
4289
4429
  style: {
@@ -4300,7 +4440,7 @@ function StanceAccordion({
4300
4440
  const verdict = verdictsByQuote ? verdictsByQuote[quote.id] : void 0;
4301
4441
  const borderColor = verdict === "agreed" ? "#0e7490" : verdict === "disagreed" ? "#b45309" : "#e2e8f0";
4302
4442
  const sourceName = quote.source_name || quote.sourceName;
4303
- return /* @__PURE__ */ React19.createElement(
4443
+ return /* @__PURE__ */ React20.createElement(
4304
4444
  "div",
4305
4445
  {
4306
4446
  key: quote.id,
@@ -4312,7 +4452,7 @@ function StanceAccordion({
4312
4452
  marginBottom: "8px"
4313
4453
  }
4314
4454
  },
4315
- /* @__PURE__ */ React19.createElement(
4455
+ /* @__PURE__ */ React20.createElement(
4316
4456
  "p",
4317
4457
  {
4318
4458
  style: {
@@ -4325,7 +4465,7 @@ function StanceAccordion({
4325
4465
  },
4326
4466
  quote.text
4327
4467
  ),
4328
- verdict === "agreed" && /* @__PURE__ */ React19.createElement(
4468
+ verdict === "agreed" && /* @__PURE__ */ React20.createElement(
4329
4469
  "span",
4330
4470
  {
4331
4471
  style: {
@@ -4342,10 +4482,10 @@ function StanceAccordion({
4342
4482
  flexShrink: 0
4343
4483
  }
4344
4484
  },
4345
- /* @__PURE__ */ React19.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React19.createElement("path", { d: "M5 13l4 4L19 7" })),
4485
+ /* @__PURE__ */ React20.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React20.createElement("path", { d: "M5 13l4 4L19 7" })),
4346
4486
  "Agreed"
4347
4487
  ),
4348
- verdict === "disagreed" && /* @__PURE__ */ React19.createElement(
4488
+ verdict === "disagreed" && /* @__PURE__ */ React20.createElement(
4349
4489
  "span",
4350
4490
  {
4351
4491
  style: {
@@ -4362,10 +4502,10 @@ function StanceAccordion({
4362
4502
  flexShrink: 0
4363
4503
  }
4364
4504
  },
4365
- /* @__PURE__ */ React19.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React19.createElement("path", { d: "M6 18L18 6M6 6l12 12" })),
4505
+ /* @__PURE__ */ React20.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React20.createElement("path", { d: "M6 18L18 6M6 6l12 12" })),
4366
4506
  "Disagreed"
4367
4507
  ),
4368
- sourceName && /* @__PURE__ */ React19.createElement(
4508
+ sourceName && /* @__PURE__ */ React20.createElement(
4369
4509
  "a",
4370
4510
  {
4371
4511
  href: quote.source_url || quote.sourceUrl,
@@ -4382,10 +4522,10 @@ function StanceAccordion({
4382
4522
  sourceName
4383
4523
  )
4384
4524
  );
4385
- })), !cached.reasoning && (!cached.sources || cached.sources.length === 0) && topicQuotes.length === 0 && /* @__PURE__ */ React19.createElement("p", { className: "text-sm text-neutral-400 italic py-2" }, "No detailed reasoning available for this topic."))))
4525
+ })), !cached.reasoning && (!cached.sources || cached.sources.length === 0) && topicQuotes.length === 0 && /* @__PURE__ */ React20.createElement("p", { className: "text-sm text-neutral-400 italic py-2" }, "No detailed reasoning available for this topic."))))
4386
4526
  ));
4387
4527
  }),
4388
- hasToggle && /* @__PURE__ */ React19.createElement(
4528
+ hasToggle && /* @__PURE__ */ React20.createElement(
4389
4529
  "button",
4390
4530
  {
4391
4531
  type: "button",
@@ -4399,9 +4539,9 @@ function StanceAccordion({
4399
4539
  }
4400
4540
 
4401
4541
  // src/icons.js
4402
- import React20 from "react";
4542
+ import React21 from "react";
4403
4543
  function BallotIcon({ size = 16, color = "currentColor" }) {
4404
- return /* @__PURE__ */ React20.createElement(
4544
+ return /* @__PURE__ */ React21.createElement(
4405
4545
  "svg",
4406
4546
  {
4407
4547
  width: size,
@@ -4414,13 +4554,13 @@ function BallotIcon({ size = 16, color = "currentColor" }) {
4414
4554
  strokeLinejoin: "round",
4415
4555
  xmlns: "http://www.w3.org/2000/svg"
4416
4556
  },
4417
- /* @__PURE__ */ React20.createElement("path", { d: "m9 12 2 2 4-4" }),
4418
- /* @__PURE__ */ React20.createElement("path", { d: "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z" }),
4419
- /* @__PURE__ */ React20.createElement("path", { d: "M22 19H2" })
4557
+ /* @__PURE__ */ React21.createElement("path", { d: "m9 12 2 2 4-4" }),
4558
+ /* @__PURE__ */ React21.createElement("path", { d: "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z" }),
4559
+ /* @__PURE__ */ React21.createElement("path", { d: "M22 19H2" })
4420
4560
  );
4421
4561
  }
4422
4562
  function CompassIcon({ size = 16, color = "currentColor" }) {
4423
- return /* @__PURE__ */ React20.createElement(
4563
+ return /* @__PURE__ */ React21.createElement(
4424
4564
  "svg",
4425
4565
  {
4426
4566
  width: size,
@@ -4433,27 +4573,27 @@ function CompassIcon({ size = 16, color = "currentColor" }) {
4433
4573
  strokeLinejoin: "round",
4434
4574
  xmlns: "http://www.w3.org/2000/svg"
4435
4575
  },
4436
- /* @__PURE__ */ React20.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4437
- /* @__PURE__ */ React20.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" })
4576
+ /* @__PURE__ */ React21.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4577
+ /* @__PURE__ */ React21.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" })
4438
4578
  );
4439
4579
  }
4440
4580
  function BranchIcon({ size = 16, color = "currentColor", branch }) {
4441
4581
  let paths;
4442
4582
  switch (branch) {
4443
4583
  case "executive":
4444
- paths = /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement("path", { d: "M3 21h18" }), /* @__PURE__ */ React20.createElement("path", { d: "M5 21V7l8-4v18" }), /* @__PURE__ */ React20.createElement("path", { d: "M19 21V11l-6-4" }), /* @__PURE__ */ React20.createElement("path", { d: "M9 9v.01" }), /* @__PURE__ */ React20.createElement("path", { d: "M9 12v.01" }), /* @__PURE__ */ React20.createElement("path", { d: "M9 15v.01" }), /* @__PURE__ */ React20.createElement("path", { d: "M9 18v.01" }), /* @__PURE__ */ React20.createElement("path", { d: "M5 21h14" }), /* @__PURE__ */ React20.createElement("line", { x1: "13", y1: "5", x2: "13", y2: "3" }), /* @__PURE__ */ React20.createElement("line", { x1: "13", y1: "3", x2: "15", y2: "4" }));
4584
+ paths = /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement("path", { d: "M3 21h18" }), /* @__PURE__ */ React21.createElement("path", { d: "M5 21V7l8-4v18" }), /* @__PURE__ */ React21.createElement("path", { d: "M19 21V11l-6-4" }), /* @__PURE__ */ React21.createElement("path", { d: "M9 9v.01" }), /* @__PURE__ */ React21.createElement("path", { d: "M9 12v.01" }), /* @__PURE__ */ React21.createElement("path", { d: "M9 15v.01" }), /* @__PURE__ */ React21.createElement("path", { d: "M9 18v.01" }), /* @__PURE__ */ React21.createElement("path", { d: "M5 21h14" }), /* @__PURE__ */ React21.createElement("line", { x1: "13", y1: "5", x2: "13", y2: "3" }), /* @__PURE__ */ React21.createElement("line", { x1: "13", y1: "3", x2: "15", y2: "4" }));
4445
4585
  break;
4446
4586
  case "legislative":
4447
- paths = /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.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__ */ React20.createElement("path", { d: "M19 17V5a2 2 0 0 0-2-2H4" }), /* @__PURE__ */ React20.createElement("path", { d: "M15 8h-5" }), /* @__PURE__ */ React20.createElement("path", { d: "M15 12h-5" }));
4587
+ paths = /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.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__ */ React21.createElement("path", { d: "M19 17V5a2 2 0 0 0-2-2H4" }), /* @__PURE__ */ React21.createElement("path", { d: "M15 8h-5" }), /* @__PURE__ */ React21.createElement("path", { d: "M15 12h-5" }));
4448
4588
  break;
4449
4589
  case "judicial":
4450
- paths = /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement("path", { d: "M12 3v19" }), /* @__PURE__ */ React20.createElement("path", { d: "M5 8l7-5 7 5" }), /* @__PURE__ */ React20.createElement("path", { d: "M3 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ React20.createElement("path", { d: "M17 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ React20.createElement("path", { d: "M8 21h8" }));
4590
+ paths = /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement("path", { d: "M12 3v19" }), /* @__PURE__ */ React21.createElement("path", { d: "M5 8l7-5 7 5" }), /* @__PURE__ */ React21.createElement("path", { d: "M3 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ React21.createElement("path", { d: "M17 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ React21.createElement("path", { d: "M8 21h8" }));
4451
4591
  break;
4452
4592
  default:
4453
- paths = /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement("path", { d: "M10 18v-7" }), /* @__PURE__ */ React20.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__ */ React20.createElement("path", { d: "M14 18v-7" }), /* @__PURE__ */ React20.createElement("path", { d: "M18 18v-7" }), /* @__PURE__ */ React20.createElement("path", { d: "M3 22h18" }), /* @__PURE__ */ React20.createElement("path", { d: "M6 18v-7" }));
4593
+ paths = /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement("path", { d: "M10 18v-7" }), /* @__PURE__ */ React21.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__ */ React21.createElement("path", { d: "M14 18v-7" }), /* @__PURE__ */ React21.createElement("path", { d: "M18 18v-7" }), /* @__PURE__ */ React21.createElement("path", { d: "M3 22h18" }), /* @__PURE__ */ React21.createElement("path", { d: "M6 18v-7" }));
4454
4594
  break;
4455
4595
  }
4456
- return /* @__PURE__ */ React20.createElement(
4596
+ return /* @__PURE__ */ React21.createElement(
4457
4597
  "svg",
4458
4598
  {
4459
4599
  width: size,
@@ -4491,6 +4631,7 @@ export {
4491
4631
  SocialLinks,
4492
4632
  StanceAccordion,
4493
4633
  SubGroupSection,
4634
+ TopicTierBadge,
4494
4635
  accessibleText,
4495
4636
  borderRadius,
4496
4637
  breakpoints,