@empoweredvote/ev-ui 0.2.2 → 0.2.3

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 CHANGED
@@ -50,6 +50,7 @@ __export(index_exports, {
50
50
  SocialLinks: () => SocialLinks,
51
51
  StanceAccordion: () => StanceAccordion,
52
52
  SubGroupSection: () => SubGroupSection,
53
+ TopicTierBadge: () => TopicTierBadge,
53
54
  accessibleText: () => accessibleText,
54
55
  borderRadius: () => borderRadius,
55
56
  breakpoints: () => breakpoints,
@@ -4112,15 +4113,81 @@ var styles = {
4112
4113
  }
4113
4114
  };
4114
4115
 
4116
+ // src/TopicTierBadge.jsx
4117
+ var import_react20 = __toESM(require("react"));
4118
+ var TIER_LABELS = {
4119
+ federal: { full: "Federal", compact: "F" },
4120
+ state: { full: "State", compact: "S" },
4121
+ local: { full: "Local", compact: "L" }
4122
+ };
4123
+ var SIZE_STYLES = {
4124
+ xs: {
4125
+ fontSize: fontSizes.xs,
4126
+ padding: `${spacing[1]} ${spacing[2]}`,
4127
+ gap: spacing[1]
4128
+ },
4129
+ sm: {
4130
+ fontSize: fontSizes.xs,
4131
+ padding: `${spacing[1]} ${spacing[2]}`,
4132
+ gap: spacing[1]
4133
+ }
4134
+ };
4135
+ function TopicTierBadge({
4136
+ topic,
4137
+ tiers,
4138
+ size = "sm",
4139
+ layout = "full",
4140
+ style = {}
4141
+ }) {
4142
+ const effectiveTiers = tiers != null ? tiers : topic ? [
4143
+ topic.applies_federal ? "federal" : null,
4144
+ topic.applies_state ? "state" : null,
4145
+ topic.applies_local ? "local" : null
4146
+ ].filter(Boolean) : [];
4147
+ if (effectiveTiers.length === 0) return null;
4148
+ const sizeStyle = SIZE_STYLES[size] || SIZE_STYLES.sm;
4149
+ const containerStyle2 = {
4150
+ display: "inline-flex",
4151
+ alignItems: "center",
4152
+ gap: sizeStyle.gap,
4153
+ flexWrap: "wrap",
4154
+ ...style
4155
+ };
4156
+ const pillStyle = (tier) => ({
4157
+ display: "inline-flex",
4158
+ alignItems: "center",
4159
+ padding: sizeStyle.padding,
4160
+ borderRadius: borderRadius.full,
4161
+ fontFamily: fonts.primary,
4162
+ fontWeight: fontWeights.medium,
4163
+ fontSize: sizeStyle.fontSize,
4164
+ backgroundColor: tierColors[tier].bg,
4165
+ color: tierColors[tier].text,
4166
+ border: `1px solid ${tierColors[tier].text}`,
4167
+ lineHeight: 1,
4168
+ userSelect: "none"
4169
+ });
4170
+ return /* @__PURE__ */ import_react20.default.createElement(
4171
+ "span",
4172
+ {
4173
+ className: "ev-topic-tier-badge",
4174
+ style: containerStyle2,
4175
+ role: "group",
4176
+ "aria-label": `Applies at: ${effectiveTiers.map((t) => TIER_LABELS[t].full).join(", ")}`
4177
+ },
4178
+ effectiveTiers.map((tier) => /* @__PURE__ */ import_react20.default.createElement("span", { key: tier, style: pillStyle(tier) }, TIER_LABELS[tier][layout]))
4179
+ );
4180
+ }
4181
+
4115
4182
  // src/StanceAccordion.jsx
4116
- var import_react21 = __toESM(require("react"));
4183
+ var import_react22 = __toESM(require("react"));
4117
4184
 
4118
4185
  // src/Favicon.jsx
4119
- var import_react20 = __toESM(require("react"));
4186
+ var import_react21 = __toESM(require("react"));
4120
4187
  function Favicon({ url, size = 16 }) {
4121
4188
  try {
4122
4189
  const domain = new URL(url).hostname;
4123
- return /* @__PURE__ */ import_react20.default.createElement(
4190
+ return /* @__PURE__ */ import_react21.default.createElement(
4124
4191
  "img",
4125
4192
  {
4126
4193
  src: `https://www.google.com/s2/favicons?sz=${size}&domain=${domain}`,
@@ -4131,7 +4198,7 @@ function Favicon({ url, size = 16 }) {
4131
4198
  }
4132
4199
  );
4133
4200
  } catch {
4134
- return /* @__PURE__ */ import_react20.default.createElement(
4201
+ return /* @__PURE__ */ import_react21.default.createElement(
4135
4202
  "svg",
4136
4203
  {
4137
4204
  width: size,
@@ -4142,8 +4209,8 @@ function Favicon({ url, size = 16 }) {
4142
4209
  strokeWidth: "1.5",
4143
4210
  style: { verticalAlign: "middle", flexShrink: 0 }
4144
4211
  },
4145
- /* @__PURE__ */ import_react20.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4146
- /* @__PURE__ */ import_react20.default.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" })
4212
+ /* @__PURE__ */ import_react21.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4213
+ /* @__PURE__ */ import_react21.default.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" })
4147
4214
  );
4148
4215
  }
4149
4216
  }
@@ -4174,11 +4241,11 @@ function StanceAccordion({
4174
4241
  apiUrl = "https://api.empowered.vote"
4175
4242
  }) {
4176
4243
  var _a;
4177
- const [expandedTopicId, setExpandedTopicId] = (0, import_react21.useState)(null);
4178
- const [loadingId, setLoadingId] = (0, import_react21.useState)(null);
4179
- const [showAll, setShowAll] = (0, import_react21.useState)(false);
4180
- const contextCache = (0, import_react21.useRef)(/* @__PURE__ */ new Map());
4181
- const quotesCache = (0, import_react21.useRef)(null);
4244
+ const [expandedTopicId, setExpandedTopicId] = (0, import_react22.useState)(null);
4245
+ const [loadingId, setLoadingId] = (0, import_react22.useState)(null);
4246
+ const [showAll, setShowAll] = (0, import_react22.useState)(false);
4247
+ const contextCache = (0, import_react22.useRef)(/* @__PURE__ */ new Map());
4248
+ const quotesCache = (0, import_react22.useRef)(null);
4182
4249
  const polAnswerMap = {};
4183
4250
  if (polAnswers) {
4184
4251
  polAnswers.forEach((a) => {
@@ -4237,7 +4304,7 @@ function StanceAccordion({
4237
4304
  quotesCache.current = [];
4238
4305
  }
4239
4306
  }
4240
- const handleToggle = (0, import_react21.useCallback)(
4307
+ const handleToggle = (0, import_react22.useCallback)(
4241
4308
  async (topicId) => {
4242
4309
  if (expandedTopicId === topicId) {
4243
4310
  setExpandedTopicId(null);
@@ -4254,7 +4321,7 @@ function StanceAccordion({
4254
4321
  },
4255
4322
  [expandedTopicId, politicianId, apiUrl]
4256
4323
  );
4257
- (0, import_react21.useEffect)(() => {
4324
+ (0, import_react22.useEffect)(() => {
4258
4325
  if (initialExpandedTopicId && topics && topics.length > 0) {
4259
4326
  handleToggle(String(initialExpandedTopicId));
4260
4327
  }
@@ -4270,13 +4337,13 @@ function StanceAccordion({
4270
4337
  visibleTopics = [pinned, ...baseTopics.filter((t) => String(t.id) !== String(initialExpandedTopicId))];
4271
4338
  }
4272
4339
  }
4273
- return /* @__PURE__ */ import_react21.default.createElement(
4340
+ return /* @__PURE__ */ import_react22.default.createElement(
4274
4341
  "div",
4275
4342
  {
4276
4343
  className: "flex flex-col",
4277
4344
  style: { fontFamily: "'Manrope', sans-serif" }
4278
4345
  },
4279
- /* @__PURE__ */ import_react21.default.createElement(
4346
+ /* @__PURE__ */ import_react22.default.createElement(
4280
4347
  "h3",
4281
4348
  {
4282
4349
  className: "text-sm font-semibold text-neutral-400 uppercase tracking-wider mb-2",
@@ -4298,15 +4365,15 @@ function StanceAccordion({
4298
4365
  if (topic.topic_key) return q.issue === topic.topic_key;
4299
4366
  return topic.short_title && q.issue.toLowerCase() === topic.short_title.toLowerCase();
4300
4367
  }) : [];
4301
- return /* @__PURE__ */ import_react21.default.createElement("div", { key: topicId, className: "border-b border-neutral-100" }, /* @__PURE__ */ import_react21.default.createElement(
4368
+ return /* @__PURE__ */ import_react22.default.createElement("div", { key: topicId, className: "border-b border-neutral-100" }, /* @__PURE__ */ import_react22.default.createElement(
4302
4369
  "button",
4303
4370
  {
4304
4371
  type: "button",
4305
4372
  onClick: () => handleToggle(topicId),
4306
4373
  className: "w-full flex items-center justify-between py-3 px-2 text-left cursor-pointer hover:bg-neutral-50 transition-colors"
4307
4374
  },
4308
- /* @__PURE__ */ import_react21.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react21.default.createElement("span", { className: "text-sm font-medium text-neutral-800 truncate" }, topic.short_title), questionText && /* @__PURE__ */ import_react21.default.createElement("span", { className: "text-xs text-neutral-400 mt-0.5" }, questionText), /* @__PURE__ */ import_react21.default.createElement("span", { className: "text-xs text-neutral-500 mt-0.5" }, label)),
4309
- /* @__PURE__ */ import_react21.default.createElement(
4375
+ /* @__PURE__ */ import_react22.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react22.default.createElement("span", { className: "text-sm font-medium text-neutral-800 truncate" }, topic.short_title), questionText && /* @__PURE__ */ import_react22.default.createElement("span", { className: "text-xs text-neutral-400 mt-0.5" }, questionText), /* @__PURE__ */ import_react22.default.createElement("span", { className: "text-xs text-neutral-500 mt-0.5" }, label)),
4376
+ /* @__PURE__ */ import_react22.default.createElement(
4310
4377
  "svg",
4311
4378
  {
4312
4379
  width: "16",
@@ -4323,9 +4390,9 @@ function StanceAccordion({
4323
4390
  transition: "transform 0.2s ease"
4324
4391
  }
4325
4392
  },
4326
- /* @__PURE__ */ import_react21.default.createElement("polyline", { points: "9 18 15 12 9 6" })
4393
+ /* @__PURE__ */ import_react22.default.createElement("polyline", { points: "9 18 15 12 9 6" })
4327
4394
  )
4328
- ), /* @__PURE__ */ import_react21.default.createElement(
4395
+ ), /* @__PURE__ */ import_react22.default.createElement(
4329
4396
  "div",
4330
4397
  {
4331
4398
  style: {
@@ -4334,7 +4401,7 @@ function StanceAccordion({
4334
4401
  transition: "grid-template-rows 0.25s ease"
4335
4402
  }
4336
4403
  },
4337
- /* @__PURE__ */ import_react21.default.createElement("div", { style: { overflow: "hidden" } }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "px-2 pb-4" }, isLoading && /* @__PURE__ */ import_react21.default.createElement("div", { className: "flex items-center py-3" }, /* @__PURE__ */ import_react21.default.createElement(
4404
+ /* @__PURE__ */ import_react22.default.createElement("div", { style: { overflow: "hidden" } }, /* @__PURE__ */ import_react22.default.createElement("div", { className: "px-2 pb-4" }, isLoading && /* @__PURE__ */ import_react22.default.createElement("div", { className: "flex items-center py-3" }, /* @__PURE__ */ import_react22.default.createElement(
4338
4405
  "div",
4339
4406
  {
4340
4407
  style: {
@@ -4346,14 +4413,14 @@ function StanceAccordion({
4346
4413
  animation: "ev-spin 0.8s linear infinite"
4347
4414
  }
4348
4415
  }
4349
- )), !isLoading && cached && /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, cached.reasoning ? /* @__PURE__ */ import_react21.default.createElement(
4416
+ )), !isLoading && cached && /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, cached.reasoning ? /* @__PURE__ */ import_react22.default.createElement(
4350
4417
  "p",
4351
4418
  {
4352
4419
  className: "text-sm text-neutral-700 mb-3",
4353
4420
  style: { whiteSpace: "pre-wrap", lineHeight: 1.6 }
4354
4421
  },
4355
4422
  cached.reasoning
4356
- ) : null, cached.sources && cached.sources.length > 0 && /* @__PURE__ */ import_react21.default.createElement("div", { className: "mt-2" }, /* @__PURE__ */ import_react21.default.createElement("p", { className: "text-xs font-semibold text-neutral-500 uppercase tracking-wider mb-1.5" }, "References"), /* @__PURE__ */ import_react21.default.createElement("ol", { className: "list-decimal list-inside space-y-1" }, cached.sources.map((src, i) => /* @__PURE__ */ import_react21.default.createElement("li", { key: i, className: "text-xs text-neutral-600" }, /* @__PURE__ */ import_react21.default.createElement(
4423
+ ) : null, cached.sources && cached.sources.length > 0 && /* @__PURE__ */ import_react22.default.createElement("div", { className: "mt-2" }, /* @__PURE__ */ import_react22.default.createElement("p", { className: "text-xs font-semibold text-neutral-500 uppercase tracking-wider mb-1.5" }, "References"), /* @__PURE__ */ import_react22.default.createElement("ol", { className: "list-decimal list-inside space-y-1" }, cached.sources.map((src, i) => /* @__PURE__ */ import_react22.default.createElement("li", { key: i, className: "text-xs text-neutral-600" }, /* @__PURE__ */ import_react22.default.createElement(
4357
4424
  "a",
4358
4425
  {
4359
4426
  href: src,
@@ -4361,9 +4428,9 @@ function StanceAccordion({
4361
4428
  rel: "noreferrer",
4362
4429
  className: "inline-flex items-center gap-1.5 hover:text-[#00657c] transition-colors"
4363
4430
  },
4364
- /* @__PURE__ */ import_react21.default.createElement(Favicon, { url: src }),
4365
- /* @__PURE__ */ import_react21.default.createElement("span", { className: "underline underline-offset-2" }, getDisplayUrl(src))
4366
- ))))), topicQuotes.length > 0 && /* @__PURE__ */ import_react21.default.createElement("div", { style: { marginTop: "12px" } }, /* @__PURE__ */ import_react21.default.createElement(
4431
+ /* @__PURE__ */ import_react22.default.createElement(Favicon, { url: src }),
4432
+ /* @__PURE__ */ import_react22.default.createElement("span", { className: "underline underline-offset-2" }, getDisplayUrl(src))
4433
+ ))))), topicQuotes.length > 0 && /* @__PURE__ */ import_react22.default.createElement("div", { style: { marginTop: "12px" } }, /* @__PURE__ */ import_react22.default.createElement(
4367
4434
  "p",
4368
4435
  {
4369
4436
  style: {
@@ -4380,7 +4447,7 @@ function StanceAccordion({
4380
4447
  const verdict = verdictsByQuote ? verdictsByQuote[quote.id] : void 0;
4381
4448
  const borderColor = verdict === "agreed" ? "#0e7490" : verdict === "disagreed" ? "#b45309" : "#e2e8f0";
4382
4449
  const sourceName = quote.source_name || quote.sourceName;
4383
- return /* @__PURE__ */ import_react21.default.createElement(
4450
+ return /* @__PURE__ */ import_react22.default.createElement(
4384
4451
  "div",
4385
4452
  {
4386
4453
  key: quote.id,
@@ -4392,7 +4459,7 @@ function StanceAccordion({
4392
4459
  marginBottom: "8px"
4393
4460
  }
4394
4461
  },
4395
- /* @__PURE__ */ import_react21.default.createElement(
4462
+ /* @__PURE__ */ import_react22.default.createElement(
4396
4463
  "p",
4397
4464
  {
4398
4465
  style: {
@@ -4405,7 +4472,7 @@ function StanceAccordion({
4405
4472
  },
4406
4473
  quote.text
4407
4474
  ),
4408
- verdict === "agreed" && /* @__PURE__ */ import_react21.default.createElement(
4475
+ verdict === "agreed" && /* @__PURE__ */ import_react22.default.createElement(
4409
4476
  "span",
4410
4477
  {
4411
4478
  style: {
@@ -4422,10 +4489,10 @@ function StanceAccordion({
4422
4489
  flexShrink: 0
4423
4490
  }
4424
4491
  },
4425
- /* @__PURE__ */ import_react21.default.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react21.default.createElement("path", { d: "M5 13l4 4L19 7" })),
4492
+ /* @__PURE__ */ import_react22.default.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react22.default.createElement("path", { d: "M5 13l4 4L19 7" })),
4426
4493
  "Agreed"
4427
4494
  ),
4428
- verdict === "disagreed" && /* @__PURE__ */ import_react21.default.createElement(
4495
+ verdict === "disagreed" && /* @__PURE__ */ import_react22.default.createElement(
4429
4496
  "span",
4430
4497
  {
4431
4498
  style: {
@@ -4442,10 +4509,10 @@ function StanceAccordion({
4442
4509
  flexShrink: 0
4443
4510
  }
4444
4511
  },
4445
- /* @__PURE__ */ import_react21.default.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react21.default.createElement("path", { d: "M6 18L18 6M6 6l12 12" })),
4512
+ /* @__PURE__ */ import_react22.default.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react22.default.createElement("path", { d: "M6 18L18 6M6 6l12 12" })),
4446
4513
  "Disagreed"
4447
4514
  ),
4448
- sourceName && /* @__PURE__ */ import_react21.default.createElement(
4515
+ sourceName && /* @__PURE__ */ import_react22.default.createElement(
4449
4516
  "a",
4450
4517
  {
4451
4518
  href: quote.source_url || quote.sourceUrl,
@@ -4462,10 +4529,10 @@ function StanceAccordion({
4462
4529
  sourceName
4463
4530
  )
4464
4531
  );
4465
- })), !cached.reasoning && (!cached.sources || cached.sources.length === 0) && topicQuotes.length === 0 && /* @__PURE__ */ import_react21.default.createElement("p", { className: "text-sm text-neutral-400 italic py-2" }, "No detailed reasoning available for this topic."))))
4532
+ })), !cached.reasoning && (!cached.sources || cached.sources.length === 0) && topicQuotes.length === 0 && /* @__PURE__ */ import_react22.default.createElement("p", { className: "text-sm text-neutral-400 italic py-2" }, "No detailed reasoning available for this topic."))))
4466
4533
  ));
4467
4534
  }),
4468
- hasToggle && /* @__PURE__ */ import_react21.default.createElement(
4535
+ hasToggle && /* @__PURE__ */ import_react22.default.createElement(
4469
4536
  "button",
4470
4537
  {
4471
4538
  type: "button",
@@ -4479,9 +4546,9 @@ function StanceAccordion({
4479
4546
  }
4480
4547
 
4481
4548
  // src/icons.js
4482
- var import_react22 = __toESM(require("react"));
4549
+ var import_react23 = __toESM(require("react"));
4483
4550
  function BallotIcon({ size = 16, color = "currentColor" }) {
4484
- return /* @__PURE__ */ import_react22.default.createElement(
4551
+ return /* @__PURE__ */ import_react23.default.createElement(
4485
4552
  "svg",
4486
4553
  {
4487
4554
  width: size,
@@ -4494,13 +4561,13 @@ function BallotIcon({ size = 16, color = "currentColor" }) {
4494
4561
  strokeLinejoin: "round",
4495
4562
  xmlns: "http://www.w3.org/2000/svg"
4496
4563
  },
4497
- /* @__PURE__ */ import_react22.default.createElement("path", { d: "m9 12 2 2 4-4" }),
4498
- /* @__PURE__ */ import_react22.default.createElement("path", { d: "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z" }),
4499
- /* @__PURE__ */ import_react22.default.createElement("path", { d: "M22 19H2" })
4564
+ /* @__PURE__ */ import_react23.default.createElement("path", { d: "m9 12 2 2 4-4" }),
4565
+ /* @__PURE__ */ import_react23.default.createElement("path", { d: "M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z" }),
4566
+ /* @__PURE__ */ import_react23.default.createElement("path", { d: "M22 19H2" })
4500
4567
  );
4501
4568
  }
4502
4569
  function CompassIcon({ size = 16, color = "currentColor" }) {
4503
- return /* @__PURE__ */ import_react22.default.createElement(
4570
+ return /* @__PURE__ */ import_react23.default.createElement(
4504
4571
  "svg",
4505
4572
  {
4506
4573
  width: size,
@@ -4513,27 +4580,27 @@ function CompassIcon({ size = 16, color = "currentColor" }) {
4513
4580
  strokeLinejoin: "round",
4514
4581
  xmlns: "http://www.w3.org/2000/svg"
4515
4582
  },
4516
- /* @__PURE__ */ import_react22.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4517
- /* @__PURE__ */ import_react22.default.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" })
4583
+ /* @__PURE__ */ import_react23.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
4584
+ /* @__PURE__ */ import_react23.default.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" })
4518
4585
  );
4519
4586
  }
4520
4587
  function BranchIcon({ size = 16, color = "currentColor", branch }) {
4521
4588
  let paths;
4522
4589
  switch (branch) {
4523
4590
  case "executive":
4524
- paths = /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement("path", { d: "M3 21h18" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M5 21V7l8-4v18" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M19 21V11l-6-4" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M9 9v.01" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M9 12v.01" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M9 15v.01" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M9 18v.01" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M5 21h14" }), /* @__PURE__ */ import_react22.default.createElement("line", { x1: "13", y1: "5", x2: "13", y2: "3" }), /* @__PURE__ */ import_react22.default.createElement("line", { x1: "13", y1: "3", x2: "15", y2: "4" }));
4591
+ paths = /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement("path", { d: "M3 21h18" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M5 21V7l8-4v18" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M19 21V11l-6-4" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M9 9v.01" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M9 12v.01" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M9 15v.01" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M9 18v.01" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M5 21h14" }), /* @__PURE__ */ import_react23.default.createElement("line", { x1: "13", y1: "5", x2: "13", y2: "3" }), /* @__PURE__ */ import_react23.default.createElement("line", { x1: "13", y1: "3", x2: "15", y2: "4" }));
4525
4592
  break;
4526
4593
  case "legislative":
4527
- paths = /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.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__ */ import_react22.default.createElement("path", { d: "M19 17V5a2 2 0 0 0-2-2H4" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M15 8h-5" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M15 12h-5" }));
4594
+ paths = /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.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__ */ import_react23.default.createElement("path", { d: "M19 17V5a2 2 0 0 0-2-2H4" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M15 8h-5" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M15 12h-5" }));
4528
4595
  break;
4529
4596
  case "judicial":
4530
- paths = /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement("path", { d: "M12 3v19" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M5 8l7-5 7 5" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M3 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M17 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M8 21h8" }));
4597
+ paths = /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement("path", { d: "M12 3v19" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M5 8l7-5 7 5" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M3 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M17 13l2-5 2 5a3 3 0 0 1-4 0z" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M8 21h8" }));
4531
4598
  break;
4532
4599
  default:
4533
- paths = /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement("path", { d: "M10 18v-7" }), /* @__PURE__ */ import_react22.default.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__ */ import_react22.default.createElement("path", { d: "M14 18v-7" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M18 18v-7" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M3 22h18" }), /* @__PURE__ */ import_react22.default.createElement("path", { d: "M6 18v-7" }));
4600
+ paths = /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement("path", { d: "M10 18v-7" }), /* @__PURE__ */ import_react23.default.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__ */ import_react23.default.createElement("path", { d: "M14 18v-7" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M18 18v-7" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M3 22h18" }), /* @__PURE__ */ import_react23.default.createElement("path", { d: "M6 18v-7" }));
4534
4601
  break;
4535
4602
  }
4536
- return /* @__PURE__ */ import_react22.default.createElement(
4603
+ return /* @__PURE__ */ import_react23.default.createElement(
4537
4604
  "svg",
4538
4605
  {
4539
4606
  width: size,
@@ -4572,6 +4639,7 @@ function BranchIcon({ size = 16, color = "currentColor", branch }) {
4572
4639
  SocialLinks,
4573
4640
  StanceAccordion,
4574
4641
  SubGroupSection,
4642
+ TopicTierBadge,
4575
4643
  accessibleText,
4576
4644
  borderRadius,
4577
4645
  breakpoints,