@peasant-labs/fairtrade 0.0.25 → 0.0.28
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/lib/{GraphLegend-sgixmPER.js → GraphLegend-kO2WP4yM.js} +1248 -1162
- package/dist/lib/analytics.css +1 -1
- package/dist/lib/analytics.js +29 -21
- package/dist/lib/base.css +4 -2
- package/dist/lib/commons.js +827 -841
- package/dist/lib/components.css +1 -1
- package/dist/lib/fonts.css +19 -21
- package/dist/lib/graph.css +1 -1
- package/dist/lib/graph.js +418 -420
- package/dist/lib/tokens.css +7 -4
- package/dist/lib/tokens.json +20 -7
- package/dist/lib/types/BrandMark.d.ts +2 -2
- package/dist/lib/types/ConnectionState.d.ts +2 -2
- package/dist/lib/types/DataTable.d.ts +74 -10
- package/dist/lib/types/DiffView.d.ts +1 -1
- package/dist/lib/types/GroupedMultiSelect.d.ts +1 -1
- package/dist/lib/types/HelperGroup.d.ts +3 -3
- package/dist/lib/types/Publish.d.ts +10 -8
- package/dist/lib/types/Redaction.d.ts +12 -10
- package/dist/lib/types/Settings.d.ts +6 -0
- package/dist/lib/types/Timeline.d.ts +5 -5
- package/dist/lib/types/analytics/format.d.ts +5 -5
- package/dist/lib/types/format.d.ts +4 -0
- package/dist/lib/types/index.d.ts +2 -1
- package/dist/lib/types/redaction-categories.d.ts +2 -0
- package/dist/lib/types/transcript/TurnCard.d.ts +3 -1
- package/dist/lib/types/transcript/scroll-position.d.ts +10 -0
- package/dist/lib/types/transcript/state-capabilities.d.ts +1 -1
- package/dist/lib/types/transcript/title.d.ts +1 -1
- package/dist/lib/types/transcript/view-model.d.ts +2 -2
- package/dist/lib/ui-Cb4c1qQR.js +14087 -0
- package/dist/lib/ui.js +4 -4
- package/package.json +20 -12
- package/dist/lib/ui-C2WXsEFz.js +0 -23542
package/dist/lib/analytics.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer analytics{.gan-root{min-width:0;height:100%;min-height:0;font-family:var(--font-mono);--gan-pad-x:max(var(--sp-4), calc((100% - 1360px) / 2));flex-direction:column;max-width:none;margin-inline:0;display:flex}.gan-head{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--gan-pad-x);border-bottom:var(--bd);flex-direction:column;display:flex}.gan-head-titles{min-width:0}.gan-h2{font-family:var(--font-display);font-weight:700;font-size:var(--fs-
|
|
1
|
+
@layer analytics{.gan-root{min-width:0;height:100%;min-height:0;font-family:var(--font-mono);--gan-pad-x:max(var(--sp-4), calc((100% - 1360px) / 2));flex-direction:column;max-width:none;margin-inline:0;display:flex}.gan-head{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--gan-pad-x);border-bottom:var(--bd);flex-direction:column;display:flex}.gan-head-titles{min-width:0}.gan-h2{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);color:var(--ink-strong);text-transform:lowercase;line-height:var(--lh-body);overflow-wrap:anywhere;margin:0}.gan-sub{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-3);text-transform:lowercase;margin-top:var(--sp-1)}.gan-scroll{min-height:0;padding:var(--sp-4) var(--gan-pad-x);gap:var(--sp-4);flex-direction:column;flex:auto;display:flex;overflow:auto}.gan-toggle{align-items:center;gap:var(--sp-3);flex-wrap:wrap;min-width:0;display:flex}.gan-toggle-lab{align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:lowercase;color:var(--ink-3);display:inline-flex}.gan-toggle-lab .lucide{width:var(--ic-sm);height:var(--ic-sm)}.gan-toggle-lab b{color:var(--ink-2);font-variant-numeric:tabular-nums;font-weight:600}.gan-toggle-chips{gap:var(--sp-1);flex-wrap:wrap;display:flex}.gan-seg{box-sizing:border-box;height:var(--control-h-sm);padding:0 var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:lowercase;line-height:var(--lh-mono);color:var(--ink-4);background:var(--canvas);border:var(--bd-strong);cursor:pointer}@media (prefers-reduced-motion:no-preference){.gan-seg{transition:color var(--dur-1), border-color var(--dur-1), background var(--dur-1)}}.gan-seg:hover{color:var(--ink);border-color:var(--amber-dim)}.gan-seg:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.gan-seg.is-on{color:var(--amber-fill-ink);border-color:var(--amber-fill);background:var(--amber-fill);border-bottom-width:var(--stroke-emphasis);font-weight:700}.gan-kpis{gap:var(--sp-3);grid-template-columns:repeat(6,1fr);display:grid}.gan-tile{gap:var(--sp-1);background:var(--surface);border:var(--bd-strong);padding:var(--sp-3);flex-direction:column;min-width:0;display:flex}.gan-tile summary{cursor:pointer;gap:var(--sp-1);min-height:var(--target-min);flex-direction:column;display:flex}.gan-tile summary:after{content:"details";font-size:var(--fs-label);color:var(--ink-3)}.gan-tile details[open]>summary:after{content:"hide details"}.gan-tile-detail{margin-block:var(--sp-3) 0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);white-space:pre-wrap;overflow-wrap:anywhere}.gan-tile-lab{align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:lowercase;color:var(--ink-3);overflow-wrap:anywhere;display:inline-flex}.gan-tile-lab .lucide{width:var(--ic-sm);height:var(--ic-sm);color:var(--ink-4);flex:none}.gan-tile-val{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);color:var(--ink-strong);font-variant-numeric:tabular-nums;line-height:1}.gan-tile-hint{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-4);text-transform:lowercase;overflow-wrap:anywhere}.gan-grid{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gan-card{gap:var(--sp-3);background:var(--surface);border:var(--bd-strong);padding:var(--sp-3) var(--sp-4) var(--sp-4);flex-direction:column;min-width:0;display:flex}.gan-card-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.gan-card-titles{min-width:0}.gan-card-title{align-items:center;gap:var(--sp-2);font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);color:var(--ink-strong);text-transform:lowercase;line-height:var(--lh-body);overflow-wrap:anywhere;margin:0;display:inline-flex}.gan-card-title .lucide{width:var(--ic-sm);height:var(--ic-sm);color:var(--ink-3);flex:none}.gan-card-sub{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-3);text-transform:lowercase;margin-top:var(--sp-1);display:block}.gan-card-figure{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.gan-card-body{min-width:0}.gan-donut{gap:var(--sp-4);grid-template-columns:180px minmax(0,1fr);align-items:center;display:grid}.gan-donut-svg{width:100%;max-width:180px;height:auto;display:block}.gan-slice{cursor:pointer}@media (prefers-reduced-motion:no-preference){.gan-slice{transition:opacity var(--dur-1)}}.gan-slice:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring)}.gan-donut-num{font-family:var(--font-display);fill:var(--ink-strong);font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.gan-donut-lab{font-family:var(--font-mono);font-size:var(--fs-label);fill:var(--ink-3);text-transform:lowercase}.gan-donut-empty{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-3);text-transform:lowercase;padding:var(--sp-5) var(--sp-2);text-align:center}.gan-legend{flex-direction:column;gap:2px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.gan-legend-row{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);cursor:default;grid-template-columns:12px minmax(0,1fr) auto auto;display:grid}@media (prefers-reduced-motion:no-preference){.gan-legend-row{transition:background var(--dur-1)}}.gan-legend-row.is-hot{background:var(--surface-hover)}.gan-legend-sw{border:1px solid color-mix(in srgb, var(--canvas) 30%, transparent);flex:none;width:10px;height:10px}.gan-legend-nm{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-2);text-transform:lowercase;overflow-wrap:anywhere}.gan-legend-v{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink);font-variant-numeric:tabular-nums;text-align:right}.gan-legend-pct{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-4);font-variant-numeric:tabular-nums;text-align:right;min-width:var(--sp-6)}.gan-typical{flex-direction:column;display:flex}.gan-typrow{justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:var(--bd);display:flex}.gan-typrow:last-child{border-bottom:0}.gan-typlab{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-2);text-transform:lowercase}.gan-typvals{align-items:baseline;gap:var(--sp-2);display:inline-flex}.gan-typmed{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--ink-strong);font-variant-numeric:tabular-nums}.gan-typsep{color:var(--ink-5)}.gan-typp90{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-4);font-variant-numeric:tabular-nums}.gan-tablecard{gap:var(--sp-2);background:var(--surface);border:var(--bd-strong);padding:var(--sp-3) var(--sp-4) var(--sp-4);flex-direction:column;min-width:0;display:flex;overflow:hidden}.gan-tablecard .tbl-wrap{margin-top:var(--sp-2)}.gan-contrib{align-items:center;gap:var(--sp-2);color:var(--ink);display:inline-flex}.gan-table-foot{gap:var(--sp-4);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:var(--bd);flex-wrap:wrap;display:flex}.gan-foot{font-family:var(--font-body);font-size:var(--fs-body);color:var(--ink-3);line-height:var(--lh-body);max-width:var(--measure-prose);border-left:var(--stroke-emphasis) solid var(--rule-strong);padding-left:var(--sp-3)}@media (width<1024px){.gan-kpis{grid-template-columns:repeat(3,1fr)}.gan-grid{grid-template-columns:1fr}}@media (width<768px){.gan-card-head{flex-wrap:wrap}.gan-kpis{grid-template-columns:repeat(2,1fr)}.gan-donut{grid-template-columns:1fr;justify-items:center}.gan-legend{width:100%}.gan-head,.gan-scroll{padding:var(--sp-3)}.gan-tablecard{padding:var(--sp-2) var(--sp-3) var(--sp-3)}.gan-tablecard .tbl-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}}.gan-root section{max-width:none;margin:0;padding:0}.gan-root .gan-card,.gan-root .gan-tablecard{padding:var(--sp-3) var(--sp-4) var(--sp-4)}@media (width<768px){.gan-root .gan-tablecard{padding:var(--sp-2) var(--sp-3) var(--sp-3)}}
|
package/dist/lib/analytics.js
CHANGED
|
@@ -583,39 +583,44 @@ function pe({ payload: c, title: l, subtitle: u, sections: h, showSectionToggle:
|
|
|
583
583
|
children: [
|
|
584
584
|
/* @__PURE__ */ i(q, {
|
|
585
585
|
icon: o,
|
|
586
|
-
label: "sessions",
|
|
586
|
+
label: "new sessions",
|
|
587
587
|
value: b(F.totalSessions),
|
|
588
|
-
hint: "recorded"
|
|
588
|
+
hint: "recorded",
|
|
589
|
+
detail: F.sessionsPerWeek.map((e) => `${e.week}: ${b(e.count)} sessions`).join("\n") || "no recorded weeks"
|
|
589
590
|
}),
|
|
590
591
|
/* @__PURE__ */ i(q, {
|
|
591
592
|
icon: _,
|
|
592
593
|
label: "contributors",
|
|
593
594
|
value: b(F.totalContributors),
|
|
594
|
-
hint: ye(F.perContributorBreakdown)
|
|
595
|
+
hint: ye(F.perContributorBreakdown),
|
|
596
|
+
detail: F.perContributorBreakdown.map((e) => `${e.contributorId}: ${b(e.sessions)} sessions`).join("\n") || "no recorded contributors"
|
|
595
597
|
}),
|
|
596
598
|
/* @__PURE__ */ i(q, {
|
|
597
599
|
icon: ee,
|
|
598
|
-
label: "
|
|
600
|
+
label: "contributors in multiple weeks",
|
|
599
601
|
value: x(F.returningContributorRate.rate),
|
|
600
|
-
hint: `${b(F.returningContributorRate.returning)} of ${b(F.returningContributorRate.total)}
|
|
602
|
+
hint: `${b(F.returningContributorRate.returning)} of ${b(F.returningContributorRate.total)}`,
|
|
603
|
+
detail: `${b(F.returningContributorRate.returning)} returning contributors active in two or more weeks; ${b(F.returningContributorRate.total)} contributors with dated sessions.`
|
|
601
604
|
}),
|
|
602
605
|
/* @__PURE__ */ i(q, {
|
|
603
606
|
icon: f,
|
|
604
|
-
label: "
|
|
607
|
+
label: "sessions linked to commits",
|
|
605
608
|
value: x(F.sessionToCommitRate.rate),
|
|
606
|
-
hint: `${b(F.sessionToCommitRate.withCommit)} of ${b(F.sessionToCommitRate.total)}
|
|
609
|
+
hint: `${b(F.sessionToCommitRate.withCommit)} of ${b(F.sessionToCommitRate.total)}`,
|
|
610
|
+
detail: `${b(F.sessionToCommitRate.withCommit)} sessions linked to a commit; ${b(F.sessionToCommitRate.total - F.sessionToCommitRate.withCommit)} without a linked commit.`
|
|
607
611
|
}),
|
|
608
612
|
/* @__PURE__ */ i(q, {
|
|
609
613
|
icon: d,
|
|
610
|
-
label: "
|
|
611
|
-
|
|
612
|
-
|
|
614
|
+
label: "weeks with sessions",
|
|
615
|
+
detail: F.sessionsPerWeek.filter((e) => e.count > 0).map((e) => e.week).join("\n") || "no weeks with sessions",
|
|
616
|
+
value: `${b(F.sessionsPerWeek.filter((e) => e.count > 0).length)} wk`
|
|
613
617
|
}),
|
|
614
618
|
/* @__PURE__ */ i(q, {
|
|
615
619
|
icon: p,
|
|
616
620
|
label: "projects",
|
|
617
621
|
value: b(F.totalProjects),
|
|
618
|
-
hint: X(D, F.totalProjects)
|
|
622
|
+
hint: X(D, F.totalProjects),
|
|
623
|
+
detail: [...new Set(D.map((e) => e.project).filter(Boolean))].join("\n") || `${b(F.totalProjects)} projects in the supplied summary.`
|
|
619
624
|
})
|
|
620
625
|
]
|
|
621
626
|
}) : null,
|
|
@@ -642,7 +647,7 @@ function pe({ payload: c, title: l, subtitle: u, sections: h, showSectionToggle:
|
|
|
642
647
|
P.weeklyActiveContributors ? /* @__PURE__ */ i(v, {
|
|
643
648
|
icon: _,
|
|
644
649
|
title: "weekly active contributors",
|
|
645
|
-
subtitle: B === "new" ? `new contributors per week
|
|
650
|
+
subtitle: B === "new" ? `new contributors per week, ${b($(Q(F.newContributorVelocity, "newContributors")))} new` : `distinct contributors active each week, ${b($(Q(F.weeklyActiveContributors, "contributors")))} active`,
|
|
646
651
|
aside: /* @__PURE__ */ i(he, {
|
|
647
652
|
view: B,
|
|
648
653
|
canShowNew: !!P.newContributorVelocity,
|
|
@@ -675,7 +680,7 @@ function pe({ payload: c, title: l, subtitle: u, sections: h, showSectionToggle:
|
|
|
675
680
|
P.newContributorVelocity ? /* @__PURE__ */ i(v, {
|
|
676
681
|
icon: te,
|
|
677
682
|
title: "new contributors per week",
|
|
678
|
-
subtitle: "
|
|
683
|
+
subtitle: "first recorded session, by contributor",
|
|
679
684
|
aside: `${b($(Q(F.newContributorVelocity, "newContributors")))} new`,
|
|
680
685
|
children: /* @__PURE__ */ i(e, {
|
|
681
686
|
data: J(Q(F.newContributorVelocity, "newContributors")),
|
|
@@ -716,7 +721,7 @@ function pe({ payload: c, title: l, subtitle: u, sections: h, showSectionToggle:
|
|
|
716
721
|
P.sessionStats ? /* @__PURE__ */ i(v, {
|
|
717
722
|
icon: o,
|
|
718
723
|
title: "typical vs. tail",
|
|
719
|
-
subtitle: "median
|
|
724
|
+
subtitle: "median, p90",
|
|
720
725
|
aside: "per session",
|
|
721
726
|
children: /* @__PURE__ */ i(_e, { data: F.sessionStats })
|
|
722
727
|
}) : null
|
|
@@ -725,7 +730,7 @@ function pe({ payload: c, title: l, subtitle: u, sections: h, showSectionToggle:
|
|
|
725
730
|
P.contributorTable ? /* @__PURE__ */ a(v, {
|
|
726
731
|
icon: _,
|
|
727
732
|
title: "contributors",
|
|
728
|
-
subtitle: "rolled up
|
|
733
|
+
subtitle: "rolled up, sorted by session volume",
|
|
729
734
|
aside: `${b(F.perContributorBreakdown.length)} people`,
|
|
730
735
|
className: "gan-tablecard",
|
|
731
736
|
children: [/* @__PURE__ */ i(W, {
|
|
@@ -834,11 +839,11 @@ function he({ view: e, canShowNew: t, onChange: n }) {
|
|
|
834
839
|
})]
|
|
835
840
|
});
|
|
836
841
|
}
|
|
837
|
-
function q({ icon: e, label: t, value: n, hint: r }) {
|
|
838
|
-
return /* @__PURE__ */
|
|
842
|
+
function q({ icon: e, label: t, value: n, hint: r, detail: o }) {
|
|
843
|
+
return /* @__PURE__ */ i("div", {
|
|
839
844
|
className: "gan-tile",
|
|
840
845
|
role: "listitem",
|
|
841
|
-
children: [
|
|
846
|
+
children: /* @__PURE__ */ a("details", { children: [/* @__PURE__ */ a("summary", { children: [
|
|
842
847
|
/* @__PURE__ */ a("span", {
|
|
843
848
|
className: "gan-tile-lab",
|
|
844
849
|
children: [
|
|
@@ -858,7 +863,10 @@ function q({ icon: e, label: t, value: n, hint: r }) {
|
|
|
858
863
|
className: "gan-tile-hint",
|
|
859
864
|
children: r
|
|
860
865
|
})
|
|
861
|
-
]
|
|
866
|
+
] }), /* @__PURE__ */ i("p", {
|
|
867
|
+
className: "gan-tile-detail",
|
|
868
|
+
children: o
|
|
869
|
+
})] })
|
|
862
870
|
});
|
|
863
871
|
}
|
|
864
872
|
function J(e) {
|
|
@@ -1000,7 +1008,7 @@ function Y({ label: e, median: t, p90: n }) {
|
|
|
1000
1008
|
/* @__PURE__ */ i("span", {
|
|
1001
1009
|
className: "gan-typsep",
|
|
1002
1010
|
"aria-hidden": "true",
|
|
1003
|
-
children: "
|
|
1011
|
+
children: ","
|
|
1004
1012
|
}),
|
|
1005
1013
|
/* @__PURE__ */ i("span", {
|
|
1006
1014
|
className: "gan-typp90 tnum",
|
|
@@ -1015,7 +1023,7 @@ function ve(e, t) {
|
|
|
1015
1023
|
X(e, t.totalProjects),
|
|
1016
1024
|
`${b(t.totalContributors)} ${Z(t.totalContributors, "contributor", "contributors")}`,
|
|
1017
1025
|
`${b(t.totalSessions)} ${Z(t.totalSessions, "session", "sessions")} across ${b(t.sessionsPerWeek.length)} ${Z(t.sessionsPerWeek.length, "week", "weeks")}`
|
|
1018
|
-
].join("
|
|
1026
|
+
].join(", ");
|
|
1019
1027
|
}
|
|
1020
1028
|
function X(e, t) {
|
|
1021
1029
|
let n = [...new Set(e.map((e) => e.projectKey).filter(Boolean))].sort();
|
package/dist/lib/base.css
CHANGED
|
@@ -38,11 +38,10 @@ p, .turn .body, .empty p, .prose {
|
|
|
38
38
|
word-spacing: normal;
|
|
39
39
|
}
|
|
40
40
|
em, i { font-style: normal; font-weight: 600; }
|
|
41
|
-
:focus-visible { outline:
|
|
41
|
+
:focus-visible { outline: var(--focus-ring-width) solid var(--focus-ring); outline-offset: var(--focus-ring-offset); }
|
|
42
42
|
a { color: var(--amber); text-decoration: none; }
|
|
43
43
|
a.link, .prose a { text-decoration: underline dotted; text-underline-offset: 3px; }
|
|
44
44
|
a.link:hover, a.link:focus-visible, .prose a:hover { text-decoration-style: solid; }
|
|
45
|
-
section { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
|
|
46
45
|
@media (prefers-reduced-motion: reduce) {
|
|
47
46
|
html { scroll-behavior: auto; }
|
|
48
47
|
*, *::before, *::after {
|
|
@@ -51,4 +50,7 @@ section { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
|
|
|
51
50
|
transition-duration: .01ms !important;
|
|
52
51
|
}
|
|
53
52
|
}
|
|
53
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
54
|
+
*, *::before, *::after { backdrop-filter: none !important; }
|
|
55
|
+
}
|
|
54
56
|
}
|