@peasant-labs/fairtrade 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/lib/commons.js +1 -1
  2. package/dist/lib/components.css +1 -1
  3. package/dist/lib/types/Accordion.d.ts +1 -1
  4. package/dist/lib/types/Avatar.d.ts +5 -5
  5. package/dist/lib/types/Button.d.ts +3 -3
  6. package/dist/lib/types/Card.d.ts +4 -4
  7. package/dist/lib/types/ChartBar.d.ts +1 -1
  8. package/dist/lib/types/ChartLine.d.ts +1 -1
  9. package/dist/lib/types/Checkbox.d.ts +9 -9
  10. package/dist/lib/types/Chip.d.ts +4 -4
  11. package/dist/lib/types/CliOnboard.d.ts +3 -3
  12. package/dist/lib/types/CommandPalette.d.ts +1 -1
  13. package/dist/lib/types/CommitGraph.d.ts +1 -1
  14. package/dist/lib/types/ConnectionState.d.ts +9 -9
  15. package/dist/lib/types/ConsentDialog.d.ts +2 -2
  16. package/dist/lib/types/DataTable.d.ts +1 -1
  17. package/dist/lib/types/DateRange.d.ts +2 -2
  18. package/dist/lib/types/Dialog.d.ts +1 -1
  19. package/dist/lib/types/DiffView.d.ts +1 -1
  20. package/dist/lib/types/EmptyState.d.ts +5 -2
  21. package/dist/lib/types/EvidenceCaption.d.ts +2 -2
  22. package/dist/lib/types/Explainer.d.ts +2 -2
  23. package/dist/lib/types/FacetRail.d.ts +1 -1
  24. package/dist/lib/types/Feedback.d.ts +5 -5
  25. package/dist/lib/types/GroupedMultiSelect.d.ts +4 -4
  26. package/dist/lib/types/Intensity.d.ts +5 -5
  27. package/dist/lib/types/MapCanvas.d.ts +1 -1
  28. package/dist/lib/types/Menu.d.ts +1 -1
  29. package/dist/lib/types/ModerationQueue.d.ts +2 -2
  30. package/dist/lib/types/Pager.d.ts +1 -1
  31. package/dist/lib/types/Pagination.d.ts +1 -1
  32. package/dist/lib/types/PolicySelect.d.ts +5 -5
  33. package/dist/lib/types/RailShell.d.ts +3 -3
  34. package/dist/lib/types/Redaction.d.ts +10 -5
  35. package/dist/lib/types/RoleRoster.d.ts +3 -3
  36. package/dist/lib/types/Sparkline.d.ts +1 -1
  37. package/dist/lib/types/StatTiles.d.ts +4 -4
  38. package/dist/lib/types/StepWizard.d.ts +2 -2
  39. package/dist/lib/types/StepsWaterfall.d.ts +1 -1
  40. package/dist/lib/types/Switch.d.ts +1 -1
  41. package/dist/lib/types/Tabs.d.ts +1 -1
  42. package/dist/lib/types/TimeStrip.d.ts +1 -1
  43. package/dist/lib/types/Timeline.d.ts +4 -4
  44. package/dist/lib/types/ToastHost.d.ts +1 -1
  45. package/dist/lib/types/ToolRenderers.d.ts +1 -1
  46. package/dist/lib/types/Tooltip.d.ts +3 -3
  47. package/dist/lib/types/TranscriptMarkers.d.ts +5 -5
  48. package/dist/lib/types/Treemap.d.ts +1 -1
  49. package/dist/lib/types/VisibilityControl.d.ts +4 -4
  50. package/dist/lib/types/analytics/ChartCard.d.ts +8 -5
  51. package/dist/lib/types/analytics/ContributorTable.d.ts +2 -2
  52. package/dist/lib/types/analytics/ProjectOverview.d.ts +4 -4
  53. package/dist/lib/types/chart-shared.d.ts +2 -2
  54. package/dist/lib/types/commons/Explore.d.ts +1 -1
  55. package/dist/lib/types/commons/Manage.d.ts +1 -1
  56. package/dist/lib/types/graph/ChangeDetail.d.ts +1 -1
  57. package/dist/lib/types/graph/Changes.d.ts +1 -1
  58. package/dist/lib/types/graph/CodeMap.d.ts +1 -1
  59. package/dist/lib/types/graph/CodeMapComposition.d.ts +2 -2
  60. package/dist/lib/types/graph/CodeMapNavigator.d.ts +1 -1
  61. package/dist/lib/types/graph/GhostCommitNode.d.ts +1 -1
  62. package/dist/lib/types/graph/GhostGroup.d.ts +1 -1
  63. package/dist/lib/types/graph/HighlightEdge.d.ts +1 -1
  64. package/dist/lib/types/graph/InsightPanel.d.ts +1 -1
  65. package/dist/lib/types/graph/RankModeControl.d.ts +1 -1
  66. package/dist/lib/types/graph/RankedRow.d.ts +1 -1
  67. package/dist/lib/types/graph/ScentTag.d.ts +1 -1
  68. package/dist/lib/types/graph/SessionLane.d.ts +1 -1
  69. package/dist/lib/types/graph/SessionOverflowDisclosure.d.ts +1 -1
  70. package/dist/lib/types/graph/TouchedFileCluster.d.ts +1 -1
  71. package/dist/lib/types/inuse/InUseShell.d.ts +5 -5
  72. package/dist/lib/types/transcript/CheckRow.d.ts +1 -1
  73. package/dist/lib/types/transcript/DiffEntryCard.d.ts +2 -2
  74. package/dist/lib/types/transcript/FilterSection.d.ts +1 -1
  75. package/dist/lib/types/transcript/FiltersRail.d.ts +1 -1
  76. package/dist/lib/types/transcript/LabelPopover.d.ts +1 -1
  77. package/dist/lib/types/transcript/Markdown.d.ts +10 -2
  78. package/dist/lib/types/transcript/OutlineRail.d.ts +1 -1
  79. package/dist/lib/types/transcript/Scorecard.d.ts +1 -1
  80. package/dist/lib/types/transcript/Scrubber.d.ts +1 -1
  81. package/dist/lib/types/transcript/TaskBody.d.ts +1 -1
  82. package/dist/lib/types/transcript/Thinking.d.ts +1 -1
  83. package/dist/lib/types/transcript/ToolBody.d.ts +1 -1
  84. package/dist/lib/types/transcript/ToolCall.d.ts +1 -1
  85. package/dist/lib/types/transcript/TranscriptViewer.d.ts +29 -1
  86. package/dist/lib/types/transcript/TurnCard.d.ts +1 -1
  87. package/dist/lib/types/transcript/ViewSwitch.d.ts +1 -1
  88. package/dist/lib/types/transcript/adapter.d.ts +8 -1
  89. package/dist/lib/types/transcript/state-capabilities.d.ts +1 -1
  90. package/dist/lib/types/transcript/view-model.d.ts +8 -0
  91. package/dist/lib/ui-B1R1d4x1.js +21024 -0
  92. package/dist/lib/ui.js +1 -1
  93. package/package.json +16 -5
  94. package/dist/lib/ui-CBAC_ipm.js +0 -11000
package/dist/lib/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as e, $t as t, A as n, An as r, At as i, B as a, Bn as o, Bt as s, C as c, Cn as l, Ct as u, D as d, Dn as f, Dt as p, E as m, En as h, Et as g, F as _, Fn as v, Ft as y, G as b, Gt as x, H as S, Ht as C, I as w, In as T, It as E, J as D, Jt as O, K as k, Kt as A, L as j, Ln as M, Lt as N, M as P, Mn as F, Mt as I, N as L, Nn as R, Nt as z, O as B, On as V, Ot as H, P as U, Pn as W, Pt as G, Q as K, Qt as q, R as J, Rn as Y, Rt as X, S as Z, Sn as Q, St as $, T as ee, Tn as te, Tt as ne, U as re, Ut as ie, V as ae, Vt as oe, W as se, Wt as ce, X as le, Xt as ue, Y as de, Yt as fe, Z as pe, Zt as me, _ as he, _n as ge, _t as _e, a as ve, an as ye, at as be, b as xe, bn as Se, bt as Ce, c as we, cn as Te, ct as Ee, d as De, dn as Oe, dt as ke, en as Ae, et as je, f as Me, fn as Ne, ft as Pe, g as Fe, gn as Ie, gt as Le, h as Re, hn as ze, ht as Be, i as Ve, in as He, it as Ue, j as We, jn as Ge, jt as Ke, k as qe, kn as Je, kt as Ye, l as Xe, ln as Ze, lt as Qe, m as $e, mn as et, mt as tt, n as nt, nn as rt, nt as it, o as at, on as ot, ot as st, p as ct, pn as lt, pt as ut, q as dt, qt as ft, r as pt, rn as mt, rt as ht, s as gt, sn as _t, st as vt, t as yt, tn as bt, tt as xt, u as St, un as Ct, ut as wt, v as Tt, vn as Et, vt as Dt, w as Ot, wn as kt, wt as At, x as jt, xn as Mt, xt as Nt, y as Pt, yn as Ft, yt as It, z as Lt, zn as Rt, zt } from "./ui-CBAC_ipm.js";
1
+ import { $ as e, $t as t, A as n, An as r, At as i, B as a, Bn as o, Bt as s, C as c, Cn as l, Ct as u, D as d, Dn as f, Dt as p, E as m, En as h, Et as g, F as _, Fn as v, Ft as y, G as b, Gt as x, H as S, Ht as C, I as w, In as T, It as E, J as D, Jt as O, K as k, Kt as A, L as j, Ln as M, Lt as N, M as P, Mn as F, Mt as I, N as L, Nn as R, Nt as z, O as B, On as V, Ot as H, P as U, Pn as W, Pt as G, Q as K, Qt as q, R as J, Rn as Y, Rt as X, S as Z, Sn as Q, St as $, T as ee, Tn as te, Tt as ne, U as re, Ut as ie, V as ae, Vt as oe, W as se, Wt as ce, X as le, Xt as ue, Y as de, Yt as fe, Z as pe, Zt as me, _ as he, _n as ge, _t as _e, a as ve, an as ye, at as be, b as xe, bn as Se, bt as Ce, c as we, cn as Te, ct as Ee, d as De, dn as Oe, dt as ke, en as Ae, et as je, f as Me, fn as Ne, ft as Pe, g as Fe, gn as Ie, gt as Le, h as Re, hn as ze, ht as Be, i as Ve, in as He, it as Ue, j as We, jn as Ge, jt as Ke, k as qe, kn as Je, kt as Ye, l as Xe, ln as Ze, lt as Qe, m as $e, mn as et, mt as tt, n as nt, nn as rt, nt as it, o as at, on as ot, ot as st, p as ct, pn as lt, pt as ut, q as dt, qt as ft, r as pt, rn as mt, rt as ht, s as gt, sn as _t, st as vt, t as yt, tn as bt, tt as xt, u as St, un as Ct, ut as wt, v as Tt, vn as Et, vt as Dt, w as Ot, wn as kt, wt as At, x as jt, xn as Mt, xt as Nt, y as Pt, yn as Ft, yt as It, z as Lt, zn as Rt, zt } from "./ui-B1R1d4x1.js";
2
2
  import { J as Bt, Y as Vt, _t as Ht, a as Ut, at as Wt, c as Gt, ct as Kt, dt as qt, ft as Jt, gt as Yt, ht as Xt, i as Zt, it as Qt, l as $t, lt as en, mt as tn, n as nn, nt as rn, o as an, ot as on, pt as sn, r as cn, rt as ln, s as un, st as dn, t as fn, ut as pn, vt as mn } from "./InUseShell-CY5Acw6t.js";
3
3
  import { n as hn, t as gn } from "./ChartLine-Cycmpjep.js";
4
4
  export { rn as AccentLegend, Ae as Accordion, H as ApprovalBar, Ze as Avatar, Ct as AvatarGroup, Ht as BrandMark, Ft as Breadcrumb, Y as Button, Rt as ButtonGroup, Q as Card, l as CardImg, hn as ChartBar, gn as ChartLine, Ge as Checkbox, Le as CheckpointMarker, h as Chip, be as CliSteps, st as CommandBlock, C as CommandPalette, Vt as CommitGraph, ne as ConfirmInline, ke as ConnectionPill, Ke as ConsentDialog, I as ConsentSummary, f as CountBadge, ce as DATE_PRESETS, g as DangerZone, Pe as DataState, rt as DataTable, x as DateRange, A as DateRangeCalendar, ie as Dialog, Bt as DiffView, se as ENTRY_TYPES, Te as EmptyState, Nt as EvidenceCaption, $ as EvidenceTarget, y as Explainer, Ue as FacetRail, mt as FeedbackPanel, W as Field, V as FilterChip, le as FocusedModeToggle, fn as GRAPH_APP_SECTIONS, yt as GRAPH_LEGEND_ITEMS, vt as GettingStarted, je as GovTile, nn as GraphAppShell, nt as GraphLegend, cn as GraphSectionNav, pt as GraphSubagentBranch, Ve as GraphToolNode, ve as GraphTurnNode, u as GroupedMultiSelect, b as HARNESSES, Ee as HandleClaim, dn as Heatmap, Zt as IN_USE_APPS, Ut as InUseShell, v as Input, Kt as IntensityScope, en as IntensitySwatch, Oe as Kbd, Ne as KbdChord, $t as MapCanvas, pn as MapNode, Ie as Menu, kt as MetaItem, Ye as ModerationQueue, Qe as OnboardingCard, ln as PROVIDER_ACCENT, Et as Pager, ge as Pagination, _e as Phase, Dt as PhaseDivider, i as PolicySelect, et as Popover, He as Progress, xt as ProviderBars, Qt as ProviderIcon, Wt as ProviderName, on as ProviderTag, k as ROLES, F as Radio, R as RadioGroup, an as RailSection, un as RailShell, qt as RampLegend, z as RedactionReview, p as RoleRoster, te as Row, dt as SESSION_OUTCOMES, D as STOP_REASONS, pe as ScopeChip, o as Segmented, T as Select, wt as SignInProviders, ye as Skeleton, bt as Sparkline, ot as Spinner, Gt as SplitRail, it as StatGrid, ht as StatTile, Je as StatusDot, X as StepIndicator, zt as StepWizard, Se as Steps, At as StepsWaterfall, r as Switch, de as TOOL_CALL_KINDS, re as TOOL_GROUPS, Mt as Tabs, lt as Tag, It as TaskBoundary, ut as TeachingEmptyState, E as Term, M as Textarea, ue as ThinkingBlock, N as TimeStrip, me as Timeline, q as TimelineItem, _t as Toast, O as ToastProvider, t as ToolCall, Be as ToolCallRenderer, ze as Tooltip, tt as Tour, Pt as TranscriptCheckRow, m as TranscriptDiffEntryCard, d as TranscriptDiffHunks, xe as TranscriptFilterSection, he as TranscriptFiltersRail, $e as TranscriptLabelPopover, qe as TranscriptMarkdown, jt as TranscriptOutlineRail, Re as TranscriptScorecard, Fe as TranscriptScrubber, ee as TranscriptTaskBody, B as TranscriptThinking, Ot as TranscriptToolBody, c as TranscriptToolCall, Z as TranscriptTurnCard, Tt as TranscriptViewSwitch, at as TranscriptViewer, s as Treemap, Ce as TurnContextBar, K as VisibilityEye, e as VisibilitySegmented, G as WhereDoesThisGo, n as adaptTranscript, we as advanceTranscriptInitialPositionConsumption, L as annotateTranscript, U as assessScorecard, _ as buildTaskWaterfall, w as computeAnalytics, j as computePersonalMedians, J as computeTaskGroups, Lt as computeTasks, a as computeTurnLabels, Jt as coverageLevel, ae as detectPhases, We as diffLines, sn as effortLevel, ft as formatRange, tn as locSize, Xe as normalizeTranscriptInitialPosition, S as phaseLabel, P as prefilterTurns, Xt as providerAccent, Yt as providerDisplayName, mn as resolveBrand, St as resolveTranscriptInitialPosition, De as shouldApplyTranscriptInitialPosition, oe as squarify, Me as transcriptInitialPositionReadiness, ct as transcriptInitialPositionToken, fe as useToast, gt as useTranscriptInitialPosition };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@peasant-labs/fairtrade",
3
3
  "private": false,
4
- "version": "0.0.11",
4
+ "version": "0.0.13",
5
5
  "description": "Fairtrade design-system library: canonical tokens, base styles, component CSS, and React UI exports.",
6
6
  "type": "module",
7
7
  "license": "Apache-2.0",
@@ -70,6 +70,8 @@
70
70
  "contrast": "node scripts/contrast.mjs",
71
71
  "llm": "node scripts/gen-llm-artifacts.mjs",
72
72
  "test:package-provenance": "node scripts/assert-package-provenance.mjs && node scripts/package-provenance.test.mjs",
73
+ "test:release-guard": "node --test scripts/release-guard.test.mjs",
74
+ "prebuild:lib": "pnpm test:release-guard",
73
75
  "gen:check": "node scripts/gen-llm-artifacts.mjs && git diff --exit-code public/tokens.json public/components.json packages/tokens/tokens.css packages/tokens/tokens.json packages/tokens/base.css packages/tokens/fonts.css",
74
76
  "build:app": "node scripts/gen-llm-artifacts.mjs && node scripts/contrast.mjs && vite build",
75
77
  "test:contract": "tsc -p tsconfig.contract.json",
@@ -95,13 +97,18 @@
95
97
  "test:transcript-initial-position:mutations": "node scripts/transcript-initial-position.mutations.mjs",
96
98
  "test:transcript-schema-adapter": "node scripts/transcript-schema-adapter.test.mjs",
97
99
  "test:transcript-schema-adapter:mutations": "node scripts/transcript-schema-adapter.mutations.mjs",
100
+ "test:transcript-turn-model": "node scripts/transcript-turn-model.test.mjs",
101
+ "test:transcript-turn-model:mutations": "node scripts/transcript-turn-model.mutations.mjs",
98
102
  "test:provider-harnesses": "node scripts/provider-harnesses.test.mjs",
99
103
  "test:provider-harnesses:mutations": "node scripts/provider-harnesses.mutations.mjs",
100
104
  "test:graph-contract-enums": "node scripts/graph-contract-enums.test.mjs",
101
- "test:gates": "node scripts/gates.test.mjs",
105
+ "test:structured-shiki": "node scripts/assert-structured-shiki.mjs",
106
+ "test:gates": "pnpm test:structured-shiki && node scripts/gates.test.mjs",
102
107
  "test:analytics": "node src/ui/analytics/metrics.test.mjs",
103
108
  "test:mobile-layout": "node scripts/mobile-layout.test.mjs",
104
109
  "test:transcript-composite-width": "node scripts/transcript-composite-width.test.mjs",
110
+ "test:transcript-markdown": "node scripts/transcript-markdown.test.mjs",
111
+ "test:transcript-markdown:mutations": "node scripts/transcript-markdown.mutations.mjs",
105
112
  "lint:css": "node scripts/css-token-lint.mjs",
106
113
  "smoke:transcript": "node scripts/smoke-transcript.mjs",
107
114
  "smoke:transcript-ui": "node scripts/smoke-transcript-ui.mjs",
@@ -109,7 +116,7 @@
109
116
  "smoke:changes": "node scripts/smoke-changes.mjs",
110
117
  "test:changes-overflow": "node scripts/changes-overflow.test.mjs",
111
118
  "shoot:manage": "node scripts/shootmanage.mjs",
112
- "build:lib": "pnpm test:package-provenance && pnpm test:contract && pnpm test:runtime-floor && pnpm test:code-map-state && pnpm test:code-map-ranking && pnpm test:code-map-ranking:mutations && pnpm test:code-map-ranking:bench && pnpm test:timeline-encoding-channels && pnpm test:timeline-highlight && pnpm test:code-map-interactions && pnpm test:code-map-drag-smoothness && pnpm test:code-map-wheel-zoom && pnpm test:code-map-descent-feedback && pnpm test:timeline-navigation && pnpm test:transcript-initial-position && pnpm test:transcript-initial-position:render && pnpm test:transcript-initial-position:mutations && node scripts/gates.test.mjs && node src/ui/analytics/metrics.test.mjs && node scripts/mobile-layout.test.mjs && node scripts/transcript-composite-width.test.mjs && node scripts/css-token-lint.mjs && node scripts/gen-llm-artifacts.mjs && node scripts/contrast.mjs && vite build --config vite.lib.config.js && vite build --config vite.lib-css.config.js && node scripts/finalize-lib-build.mjs && tsc -p tsconfig.lib.json && node scripts/smoke-lib.mjs && node scripts/smoke-transcript.mjs && node scripts/smoke-transcript-ui.mjs && pnpm test:graph-contract-enums && pnpm test:transcript-schema-adapter && pnpm test:transcript-schema-adapter:mutations && pnpm test:provider-harnesses && pnpm test:provider-harnesses:mutations && node scripts/smoke-map.mjs && node scripts/smoke-changes.mjs && pnpm test:changes-overflow && pnpm test:timeline-a11y && pnpm test:timeline-ghosts && pnpm test:insight-panel && node scripts/contrast.mjs --css dist/lib/tokens.css && node scripts/assert-pack-contents.mjs",
119
+ "build:lib": "pnpm test:package-provenance && pnpm test:contract && pnpm test:runtime-floor && pnpm test:code-map-state && pnpm test:code-map-ranking && pnpm test:code-map-ranking:mutations && pnpm test:code-map-ranking:bench && pnpm test:timeline-encoding-channels && pnpm test:timeline-highlight && pnpm test:code-map-interactions && pnpm test:code-map-drag-smoothness && pnpm test:code-map-wheel-zoom && pnpm test:code-map-descent-feedback && pnpm test:timeline-navigation && pnpm test:transcript-initial-position && pnpm test:transcript-initial-position:render && pnpm test:transcript-initial-position:mutations && pnpm test:gates && node src/ui/analytics/metrics.test.mjs && node scripts/mobile-layout.test.mjs && node scripts/transcript-composite-width.test.mjs && node scripts/css-token-lint.mjs && node scripts/gen-llm-artifacts.mjs && node scripts/contrast.mjs && vite build --config vite.lib.config.js && vite build --config vite.lib-css.config.js && node scripts/finalize-lib-build.mjs && tsc -p tsconfig.lib.json && node scripts/smoke-lib.mjs && node scripts/smoke-transcript.mjs && node scripts/smoke-transcript-ui.mjs && pnpm test:transcript-markdown && pnpm test:transcript-markdown:mutations && pnpm test:graph-contract-enums && pnpm test:transcript-schema-adapter && pnpm test:transcript-schema-adapter:mutations && pnpm test:transcript-turn-model && pnpm test:transcript-turn-model:mutations && pnpm test:provider-harnesses && pnpm test:provider-harnesses:mutations && node scripts/smoke-map.mjs && node scripts/smoke-changes.mjs && pnpm test:changes-overflow && pnpm test:timeline-a11y && pnpm test:timeline-ghosts && pnpm test:insight-panel && node scripts/contrast.mjs --css dist/lib/tokens.css && node scripts/assert-pack-contents.mjs",
113
120
  "pack:check": "node scripts/assert-pack-contents.mjs",
114
121
  "smoke:tarball": "node scripts/smoke-tarball.mjs",
115
122
  "oracle:graph": "node scripts/graph-oracle.mjs",
@@ -123,11 +130,14 @@
123
130
  "start": "http-server dist -p ${PORT:-3000} -a 0.0.0.0 --silent"
124
131
  },
125
132
  "dependencies": {
126
- "@peasant-labs/schema": "0.1.0",
133
+ "@peasant-labs/schema": "0.1.1-rc1",
127
134
  "@tanstack/react-table": "^8.21.3",
128
135
  "lucide": "^1.20.0",
129
136
  "lucide-react": "^1.18.0",
130
- "recharts": "^3.8.1"
137
+ "react-markdown": "10.1.0",
138
+ "recharts": "^3.8.1",
139
+ "remark-breaks": "4.0.0",
140
+ "remark-gfm": "4.0.1"
131
141
  },
132
142
  "peerDependencies": {
133
143
  "react": ">=19.0.0 <20",
@@ -138,6 +148,7 @@
138
148
  "@storybook/addon-themes": "^10.4.6",
139
149
  "@storybook/react-vite": "^10.4.6",
140
150
  "@tailwindcss/vite": "^4.3.1",
151
+ "@types/react": "19.2.18",
141
152
  "@vitejs/plugin-react": "^6.0.2",
142
153
  "http-server": "^14.1.1",
143
154
  "jsdom": "^29.1.1",