@growth-labs/cms 0.8.20 → 0.8.24

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 (182) hide show
  1. package/dist/cli/foundry-emit.d.ts +14 -0
  2. package/dist/cli/foundry-emit.d.ts.map +1 -0
  3. package/dist/cli/foundry-emit.js +69 -0
  4. package/dist/cli/foundry-emit.js.map +1 -0
  5. package/dist/engine/foundry-dispatch.d.ts +1 -0
  6. package/dist/engine/foundry-dispatch.d.ts.map +1 -1
  7. package/dist/engine/foundry-dispatch.js +1 -1
  8. package/dist/engine/foundry-dispatch.js.map +1 -1
  9. package/dist/engine/fronts-publish-intent.d.ts +1 -1
  10. package/dist/engine/fronts-publish-intent.d.ts.map +1 -1
  11. package/dist/engine/fronts-publish-intent.js +12 -1
  12. package/dist/engine/fronts-publish-intent.js.map +1 -1
  13. package/dist/engine/index.d.ts +1 -0
  14. package/dist/engine/index.d.ts.map +1 -1
  15. package/dist/engine/index.js +2 -0
  16. package/dist/engine/index.js.map +1 -1
  17. package/dist/engine/publication-receipt/receipt.d.ts +20 -20
  18. package/dist/engine/publisher.d.ts +16 -1
  19. package/dist/engine/publisher.d.ts.map +1 -1
  20. package/dist/engine/publisher.js +55 -4
  21. package/dist/engine/publisher.js.map +1 -1
  22. package/dist/engine/tags.d.ts.map +1 -1
  23. package/dist/engine/tags.js +18 -1
  24. package/dist/engine/tags.js.map +1 -1
  25. package/dist/engine/topics.d.ts.map +1 -1
  26. package/dist/engine/topics.js +4 -1
  27. package/dist/engine/topics.js.map +1 -1
  28. package/dist/engine/video-source.d.ts +21 -0
  29. package/dist/engine/video-source.d.ts.map +1 -1
  30. package/dist/engine/video-source.js +40 -0
  31. package/dist/engine/video-source.js.map +1 -1
  32. package/dist/foundry-emit.d.ts +146 -0
  33. package/dist/foundry-emit.d.ts.map +1 -0
  34. package/dist/foundry-emit.js +189 -0
  35. package/dist/foundry-emit.js.map +1 -0
  36. package/dist/integration/index.d.ts.map +1 -1
  37. package/dist/integration/index.js +9 -0
  38. package/dist/integration/index.js.map +1 -1
  39. package/dist/integration/options.d.ts +24 -0
  40. package/dist/integration/options.d.ts.map +1 -1
  41. package/dist/integration/options.js +22 -0
  42. package/dist/integration/options.js.map +1 -1
  43. package/dist/providers/null.d.ts.map +1 -1
  44. package/dist/providers/null.js +6 -0
  45. package/dist/providers/null.js.map +1 -1
  46. package/dist/providers/types.d.ts +56 -0
  47. package/dist/providers/types.d.ts.map +1 -1
  48. package/dist/providers/types.js.map +1 -1
  49. package/dist/routes/ai.d.ts.map +1 -1
  50. package/dist/routes/ai.js +21 -13
  51. package/dist/routes/ai.js.map +1 -1
  52. package/dist/routes/analytics.d.ts +1 -0
  53. package/dist/routes/analytics.d.ts.map +1 -1
  54. package/dist/routes/analytics.js +20 -0
  55. package/dist/routes/analytics.js.map +1 -1
  56. package/dist/routes/content.d.ts +27 -0
  57. package/dist/routes/content.d.ts.map +1 -1
  58. package/dist/routes/content.js +58 -12
  59. package/dist/routes/content.js.map +1 -1
  60. package/dist/routes/foundry-publish.d.ts +50 -0
  61. package/dist/routes/foundry-publish.d.ts.map +1 -1
  62. package/dist/routes/foundry-publish.js +540 -27
  63. package/dist/routes/foundry-publish.js.map +1 -1
  64. package/dist/routes/machine-context.d.ts +6 -0
  65. package/dist/routes/machine-context.d.ts.map +1 -0
  66. package/dist/routes/machine-context.js +20 -0
  67. package/dist/routes/machine-context.js.map +1 -0
  68. package/dist/routes/surveys.d.ts +14 -1
  69. package/dist/routes/surveys.d.ts.map +1 -1
  70. package/dist/routes/surveys.js +515 -10
  71. package/dist/routes/surveys.js.map +1 -1
  72. package/dist/schema/insights-ingest.d.ts +8 -8
  73. package/dist/schema/migrations.d.ts.map +1 -1
  74. package/dist/schema/migrations.js +15 -0
  75. package/dist/schema/migrations.js.map +1 -1
  76. package/dist/schema/tables.d.ts +1 -1
  77. package/dist/schema/tables.d.ts.map +1 -1
  78. package/dist/schema/tables.js +2 -0
  79. package/dist/schema/tables.js.map +1 -1
  80. package/dist/surveys/access.d.ts +1 -0
  81. package/dist/surveys/access.d.ts.map +1 -1
  82. package/dist/surveys/access.js +13 -4
  83. package/dist/surveys/access.js.map +1 -1
  84. package/dist/surveys/auto-label.d.ts +100 -0
  85. package/dist/surveys/auto-label.d.ts.map +1 -0
  86. package/dist/surveys/auto-label.js +325 -0
  87. package/dist/surveys/auto-label.js.map +1 -0
  88. package/dist/surveys/schema.d.ts +38 -12
  89. package/dist/surveys/schema.d.ts.map +1 -1
  90. package/dist/surveys/schema.js +18 -1
  91. package/dist/surveys/schema.js.map +1 -1
  92. package/dist/ui/api/_content-config.d.ts.map +1 -1
  93. package/dist/ui/api/_content-config.js +4 -0
  94. package/dist/ui/api/_content-config.js.map +1 -1
  95. package/dist/ui/api/analytics.d.ts.map +1 -1
  96. package/dist/ui/api/analytics.js +5 -2
  97. package/dist/ui/api/analytics.js.map +1 -1
  98. package/dist/ui/api/foundry/articles/[external_id]/publish.d.ts +3 -0
  99. package/dist/ui/api/foundry/articles/[external_id]/publish.d.ts.map +1 -0
  100. package/dist/ui/api/foundry/articles/[external_id]/publish.js +14 -0
  101. package/dist/ui/api/foundry/articles/[external_id]/publish.js.map +1 -0
  102. package/dist/ui/api/surveys/[surveyId]/answers/label.d.ts +3 -0
  103. package/dist/ui/api/surveys/[surveyId]/answers/label.d.ts.map +1 -0
  104. package/dist/ui/api/surveys/[surveyId]/answers/label.js +17 -0
  105. package/dist/ui/api/surveys/[surveyId]/answers/label.js.map +1 -0
  106. package/dist/ui/api/surveys/[surveyId].d.ts.map +1 -1
  107. package/dist/ui/api/surveys/[surveyId].js +28 -1
  108. package/dist/ui/api/surveys/[surveyId].js.map +1 -1
  109. package/dist/ui/commands.d.ts.map +1 -1
  110. package/dist/ui/commands.js +2 -0
  111. package/dist/ui/commands.js.map +1 -1
  112. package/dist/ui/hash-router.d.ts +1 -1
  113. package/dist/ui/hash-router.d.ts.map +1 -1
  114. package/dist/ui/hash-router.js +1 -0
  115. package/dist/ui/hash-router.js.map +1 -1
  116. package/dist/ui/nav.d.ts.map +1 -1
  117. package/dist/ui/nav.js +1 -0
  118. package/dist/ui/nav.js.map +1 -1
  119. package/dist/ui/screens/AnalyticsScreen.d.ts +6 -1
  120. package/dist/ui/screens/AnalyticsScreen.d.ts.map +1 -1
  121. package/dist/ui/screens/AnalyticsScreen.js +13 -8
  122. package/dist/ui/screens/AnalyticsScreen.js.map +1 -1
  123. package/dist/ui/screens/PodcastListeningScreen.d.ts +6 -0
  124. package/dist/ui/screens/PodcastListeningScreen.d.ts.map +1 -0
  125. package/dist/ui/screens/PodcastListeningScreen.js +244 -0
  126. package/dist/ui/screens/PodcastListeningScreen.js.map +1 -0
  127. package/dist/ui/screens/SurveyResponsesScreen.d.ts +4 -2
  128. package/dist/ui/screens/SurveyResponsesScreen.d.ts.map +1 -1
  129. package/dist/ui/screens/SurveyResponsesScreen.js +71 -12
  130. package/dist/ui/screens/SurveyResponsesScreen.js.map +1 -1
  131. package/dist/ui/screens/analytics-data.d.ts +14 -0
  132. package/dist/ui/screens/analytics-data.d.ts.map +1 -1
  133. package/dist/ui/screens/analytics-data.js +16 -0
  134. package/dist/ui/screens/analytics-data.js.map +1 -1
  135. package/dist/ui/screens/podcast-listening-data.d.ts +19 -0
  136. package/dist/ui/screens/podcast-listening-data.d.ts.map +1 -0
  137. package/dist/ui/screens/podcast-listening-data.js +98 -0
  138. package/dist/ui/screens/podcast-listening-data.js.map +1 -0
  139. package/dist/ui/screens/registry.d.ts.map +1 -1
  140. package/dist/ui/screens/registry.js +2 -0
  141. package/dist/ui/screens/registry.js.map +1 -1
  142. package/docs/foundry-publish.md +208 -0
  143. package/migrations/0033_survey_answer_labels.sql +15 -0
  144. package/package.json +9 -3
  145. package/src/cli/foundry-emit.ts +85 -0
  146. package/src/engine/foundry-dispatch.ts +1 -1
  147. package/src/engine/fronts-publish-intent.ts +23 -1
  148. package/src/engine/index.ts +5 -0
  149. package/src/engine/publisher.ts +80 -4
  150. package/src/engine/tags.ts +21 -1
  151. package/src/engine/topics.ts +4 -1
  152. package/src/engine/video-source.ts +44 -0
  153. package/src/foundry-emit.ts +255 -0
  154. package/src/integration/index.ts +9 -0
  155. package/src/integration/options.ts +23 -0
  156. package/src/providers/null.ts +6 -0
  157. package/src/providers/types.ts +52 -0
  158. package/src/routes/ai.ts +29 -17
  159. package/src/routes/analytics.ts +21 -0
  160. package/src/routes/content.ts +81 -15
  161. package/src/routes/foundry-publish.ts +746 -29
  162. package/src/routes/machine-context.ts +24 -0
  163. package/src/routes/surveys.ts +587 -12
  164. package/src/schema/migrations.ts +15 -0
  165. package/src/schema/tables.ts +2 -0
  166. package/src/surveys/access.ts +14 -4
  167. package/src/surveys/auto-label.ts +420 -0
  168. package/src/surveys/schema.ts +25 -1
  169. package/src/ui/api/_content-config.ts +6 -0
  170. package/src/ui/api/analytics.ts +5 -2
  171. package/src/ui/api/foundry/articles/[external_id]/publish.ts +18 -0
  172. package/src/ui/api/surveys/[surveyId]/answers/label.ts +23 -0
  173. package/src/ui/api/surveys/[surveyId].ts +37 -3
  174. package/src/ui/commands.ts +2 -0
  175. package/src/ui/hash-router.ts +1 -0
  176. package/src/ui/nav.ts +1 -0
  177. package/src/ui/screens/AnalyticsScreen.tsx +34 -6
  178. package/src/ui/screens/PodcastListeningScreen.tsx +529 -0
  179. package/src/ui/screens/SurveyResponsesScreen.tsx +179 -13
  180. package/src/ui/screens/analytics-data.ts +18 -0
  181. package/src/ui/screens/podcast-listening-data.ts +114 -0
  182. package/src/ui/screens/registry.tsx +2 -0
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useState } from 'react';
3
- import { canViewSurveyVerbatims } from '../../surveys/access.js';
3
+ import { canLabelSurveyAnswers, canViewSurveyVerbatims } from '../../surveys/access.js';
4
4
  import { isSurveyErrorCode, SURVEY_ERROR_CODE_HEADER, SURVEY_ERROR_DEFINITIONS, } from '../../surveys/errors.js';
5
5
  import { SurveyResultsSchema, } from '../../surveys/schema.js';
6
6
  import { useWorkspace } from '../workspace-context.js';
@@ -35,6 +35,7 @@ const PAGE_SIZE = 100;
35
35
  export function SurveyResponsesScreen({ surveyId }) {
36
36
  const [state, setState] = useState({ kind: 'loading' });
37
37
  const [offset, setOffset] = useState(0);
38
+ const [labelSaveFailed, setLabelSaveFailed] = useState(false);
38
39
  const load = useCallback(async (nextOffset) => {
39
40
  setState({ kind: 'loading' });
40
41
  try {
@@ -45,14 +46,51 @@ export function SurveyResponsesScreen({ surveyId }) {
45
46
  setState({ kind: 'retryable' });
46
47
  }
47
48
  }, [surveyId]);
49
+ // Owner-only classification toggle: on success the label is applied to the
50
+ // already-loaded page (no refetch); on failure the toggle stays honest on
51
+ // its old value and a note says the save did not land.
52
+ const setLabel = useCallback(async (responseId, questionId, label) => {
53
+ setLabelSaveFailed(false);
54
+ try {
55
+ const response = await fetch(`/admin/api/surveys/${encodeURIComponent(surveyId)}/answers/label`, {
56
+ method: 'POST',
57
+ headers: { 'Content-Type': 'application/json' },
58
+ body: JSON.stringify({ responseId, questionId, label }),
59
+ });
60
+ if (!response.ok) {
61
+ setLabelSaveFailed(true);
62
+ return;
63
+ }
64
+ setState((previous) => previous.kind === 'ready'
65
+ ? {
66
+ kind: 'ready',
67
+ data: withAnswerLabel(previous.data, responseId, questionId, label),
68
+ }
69
+ : previous);
70
+ }
71
+ catch {
72
+ setLabelSaveFailed(true);
73
+ }
74
+ }, [surveyId]);
48
75
  useEffect(() => {
49
76
  void load(offset);
50
77
  }, [load, offset]);
51
78
  const { state: workspace } = useWorkspace();
52
- return (_jsx(SurveyResponsesBody, { surveyId: surveyId, state: state, offset: offset, role: workspace.user?.role ?? null, onRetry: () => void load(offset), onOffsetChange: setOffset }));
79
+ return (_jsx(SurveyResponsesBody, { surveyId: surveyId, state: state, offset: offset, role: workspace.user?.role ?? null, onRetry: () => void load(offset), onOffsetChange: setOffset, onSetLabel: setLabel, labelSaveFailed: labelSaveFailed }));
80
+ }
81
+ function withAnswerLabel(data, responseId, questionId, label) {
82
+ return {
83
+ ...data,
84
+ freeText: data.freeText.map((entry) => entry.responseId === responseId && entry.questionId === questionId
85
+ ? // A successful owner save stores source 'owner' server-side; the
86
+ // optimistic copy reflects that instead of a stale 'auto' badge.
87
+ { ...entry, label, labelSource: 'owner' }
88
+ : entry),
89
+ };
53
90
  }
54
- export function SurveyResponsesBody({ surveyId, state, offset = 0, role = null, onRetry, onOffsetChange, }) {
91
+ export function SurveyResponsesBody({ surveyId, state, offset = 0, role = null, onRetry, onOffsetChange, onSetLabel, labelSaveFailed = false, }) {
55
92
  const canSeeVerbatims = canViewSurveyVerbatims(role);
93
+ const canLabel = canLabelSurveyAnswers(role);
56
94
  if (state.kind === 'loading')
57
95
  return _jsx(StatusPage, { title: "Loading survey responses\u2026" });
58
96
  if (state.kind === 'forbidden')
@@ -75,13 +113,13 @@ export function SurveyResponsesBody({ surveyId, state, offset = 0, role = null,
75
113
  const hasMore = rangeEnd < total;
76
114
  return (_jsxs("div", { className: "page page-wide fade-in", style: { maxWidth: 1340 }, children: [_jsxs("div", { className: "page-head", children: [_jsxs("div", { children: [_jsx("h1", { className: "page-title", children: data.survey.title }), _jsxs("div", { className: "page-sub", children: [total === 0
77
115
  ? 'No responses yet'
78
- : `Showing ${rangeStart}–${rangeEnd} of ${total} ${total === 1 ? 'response' : 'responses'}`, ' ', "\u00B7 ", data.survey.status] })] }), _jsx("a", { className: "btn", href: `/admin/api/surveys/${encodeURIComponent(surveyId)}/responses.csv`, children: "Export CSV" })] }), total === 0 ? (_jsxs("div", { className: "card", role: "status", children: [_jsx("h2", { className: "card-title", children: "No responses yet" }), _jsx("p", { className: "page-sub", children: "Aggregates and answers will appear after submission." })] })) : (_jsxs(_Fragment, { children: [_jsx(HeadlineScale, { questions: data.questions }), canSeeVerbatims ? (_jsx(VerbatimFeed, { data: data })) : (_jsxs("div", { className: "card", role: "status", style: { marginTop: 24 }, children: [_jsx("h2", { className: "card-title", children: "Individual answers are restricted" }), _jsx("p", { className: "page-sub", children: "Aggregates below are available to your role. Verbatim answers and respondent attribution require owner or senior editor." })] })), _jsx(Aggregates, { data: data }), (offset > 0 || hasMore) && onOffsetChange ? (_jsxs("div", { className: "page-head", style: { marginTop: 24 }, children: [_jsx("button", { className: "btn", type: "button", disabled: offset === 0, onClick: () => onOffsetChange(Math.max(offset - PAGE_SIZE, 0)), children: "Previous" }), _jsx("button", { className: "btn", type: "button", disabled: !hasMore, onClick: () => onOffsetChange(offset + PAGE_SIZE), children: "Next" })] })) : null] }))] }));
116
+ : `Showing ${rangeStart}–${rangeEnd} of ${total} ${total === 1 ? 'response' : 'responses'}`, ' ', "\u00B7 ", data.survey.status] })] }), _jsx("a", { className: "btn", href: `/admin/api/surveys/${encodeURIComponent(surveyId)}/responses.csv`, children: "Export CSV" })] }), total === 0 ? (_jsxs("div", { className: "card", role: "status", children: [_jsx("h2", { className: "card-title", children: "No responses yet" }), _jsx("p", { className: "page-sub", children: "Aggregates and answers will appear after submission." })] })) : (_jsxs(_Fragment, { children: [_jsx(HeadlineScale, { questions: data.questions }), canSeeVerbatims ? (_jsxs(_Fragment, { children: [canLabel && (data.unlabeledCount ?? 0) > 0 ? (_jsx("p", { className: "page-sub", role: "status", style: { marginTop: 24 }, children: unlabeledAnswersNotice(data.unlabeledCount ?? 0) })) : null, canLabel && (data.personalDetailsCount ?? 0) > 0 ? (_jsx("p", { className: "page-sub", role: "status", style: { marginTop: 24 }, children: personalDetailsNotice(data.personalDetailsCount ?? 0) })) : null, labelSaveFailed && canLabel ? (_jsx("p", { className: "page-sub", role: "alert", style: { marginTop: 24 }, children: "The last label change could not be saved. Try again." })) : null, _jsx(VerbatimFeed, { data: data, canLabel: canLabel, onSetLabel: onSetLabel })] })) : (_jsxs("div", { className: "card", role: "status", style: { marginTop: 24 }, children: [_jsx("h2", { className: "card-title", children: "Individual answers are restricted" }), _jsx("p", { className: "page-sub", children: "Aggregates below are available to your role. Verbatim answers and respondent attribution require owner or senior editor." })] })), _jsx(Aggregates, { data: data }), (offset > 0 || hasMore) && onOffsetChange ? (_jsxs("div", { className: "page-head", style: { marginTop: 24 }, children: [_jsx("button", { className: "btn", type: "button", disabled: offset === 0, onClick: () => onOffsetChange(Math.max(offset - PAGE_SIZE, 0)), children: "Previous" }), _jsx("button", { className: "btn", type: "button", disabled: !hasMore, onClick: () => onOffsetChange(offset + PAGE_SIZE), children: "Next" })] })) : null] }))] }));
79
117
  }
80
118
  // The first scale question is the survey's headline number. Leading with the
81
119
  // distribution keeps one harsh verbatim from setting the tone of a readout.
82
120
  function HeadlineScale({ questions }) {
83
121
  const scale = questions.find((question) => question.kind === 'scale');
84
- if (!scale || scale.kind !== 'scale' || scale.answerCount === 0)
122
+ if (scale?.kind !== 'scale' || scale.answerCount === 0)
85
123
  return null;
86
124
  const midpoint = (scale.options.min + scale.options.max) / 2;
87
125
  const favourable = Object.entries(scale.distribution)
@@ -90,21 +128,42 @@ function HeadlineScale({ questions }) {
90
128
  const share = Math.round((favourable / scale.answerCount) * 100);
91
129
  return (_jsxs("section", { className: "card", "aria-labelledby": "survey-headline", style: { marginTop: 24 }, children: [_jsx("div", { className: "kicker", children: scale.prompt }), _jsxs("h2", { className: "card-title", id: "survey-headline", children: [share, "% rate ", midpoint.toFixed(1), " or better \u00B7 average", ' ', scale.average === null ? '—' : scale.average.toFixed(2)] }), _jsx(CountTable, { values: scale.distribution })] }));
92
130
  }
93
- function VerbatimFeed({ data }) {
131
+ // The owner's loud surface for answers auto-labeling has not placed yet
132
+ // (publishing #24): everything unlabeled is hidden from the team, so he sees
133
+ // the backlog instead of a silent one-warn in the logs.
134
+ function unlabeledAnswersNotice(count) {
135
+ return `${count === 1
136
+ ? '1 written answer on this page isn’t labeled yet.'
137
+ : `${count} written answers on this page aren’t labeled yet.`} They’re hidden from the team until labeled. Automatic labeling runs in the background; reload in a minute, or label them yourself.`;
138
+ }
139
+ // The subset the personal-details pre-filter will never dispatch: only the
140
+ // owner can label these, so he is told directly rather than left a backlog.
141
+ function personalDetailsNotice(count) {
142
+ return count === 1
143
+ ? '1 answer contains personal details and needs your label.'
144
+ : `${count} answers contain personal details and need your label.`;
145
+ }
146
+ function VerbatimFeed({ data, canLabel, onSetLabel, }) {
147
+ const [labelFilter, setLabelFilter] = useState('all');
94
148
  const textQuestionIds = new Set(data.questions.filter((question) => question.kind === 'text').map((question) => question.id));
95
149
  const promptById = new Map(data.questions.map((question) => [question.id, question.prompt]));
150
+ // Non-owners never receive technical or unlabeled entries (the route filters
151
+ // server-side), so for them this feed is already the general thread.
152
+ const visibleFreeText = labelFilter === 'all' ? data.freeText : data.freeText.filter((e) => e.label === labelFilter);
96
153
  const freeTextByResponse = new Map();
97
- for (const entry of data.freeText) {
154
+ for (const entry of visibleFreeText) {
98
155
  const entries = freeTextByResponse.get(entry.responseId) ?? [];
99
- entries.push(entry.value);
156
+ entries.push(entry);
100
157
  freeTextByResponse.set(entry.responseId, entries);
101
158
  }
102
- return (_jsxs("section", { "aria-labelledby": "survey-verbatims", style: { marginTop: 24 }, children: [_jsx("h2", { className: "page-title", id: "survey-verbatims", style: { fontSize: 22 }, children: "Responses" }), _jsx("div", { style: { marginTop: 12 }, children: data.responses.map((response) => {
159
+ return (_jsxs("section", { "aria-labelledby": "survey-verbatims", style: { marginTop: 24 }, children: [_jsxs("div", { className: "page-head", children: [_jsx("h2", { className: "page-title", id: "survey-verbatims", style: { fontSize: 22 }, children: "Responses" }), canLabel ? (
160
+ // biome-ignore lint/a11y/useSemanticElements: chip-row is a flex div throughout the admin UI; a fieldset would import UA border/padding with no reset in the publication CSS, while role="group" + aria-label keeps the grouping semantics
161
+ _jsx("div", { className: "chip-row", role: "group", "aria-label": "Filter written answers", children: ['all', 'general', 'technical'].map((option) => (_jsx("button", { className: "chip", type: "button", "aria-pressed": labelFilter === option, onClick: () => setLabelFilter(option), children: option === 'all' ? 'All' : option === 'general' ? 'General' : 'Technical' }, option))) })) : null] }), _jsx("div", { style: { marginTop: 12 }, children: data.responses.map((response) => {
103
162
  const written = freeTextByResponse.get(response.id) ?? [];
104
163
  const choices = (response.answers ?? []).filter((answer) => !textQuestionIds.has(answer.questionId));
105
- return (_jsxs("article", { className: "card", style: { marginTop: 12 }, children: [_jsxs("div", { className: "kicker", children: [_jsx("time", { dateTime: response.submittedAt, children: formatTime(response.submittedAt) }), " \u00B7", ' ', segmentLabel(response.respondentSegment), " \u00B7 ", respondentLabel(response)] }), written.length === 0 ? (_jsx("p", { className: "page-sub", children: "No written answer." })) : (written.map((value, index) => (
106
- // biome-ignore lint/suspicious/noArrayIndexKey: values are free text with no stable id
107
- _jsx("blockquote", { children: value }, `${response.id}:${index}`)))), _jsx("div", { className: "chip-row", children: choices.map((answer) => (_jsx("span", { className: "chip", title: promptById.get(answer.questionId) ?? answer.questionId, children: formatAnswerValue(answer.value) }, `${response.id}:${answer.questionId}`))) })] }, response.id));
164
+ return (_jsxs("article", { className: "card", style: { marginTop: 12 }, children: [_jsxs("div", { className: "kicker", children: [_jsx("time", { dateTime: response.submittedAt, children: formatTime(response.submittedAt) }), " \u00B7", ' ', segmentLabel(response.respondentSegment), " \u00B7 ", respondentLabel(response)] }), written.length === 0 ? (_jsx("p", { className: "page-sub", children: "No written answer." })) : (written.map((entry) => (_jsxs("div", { children: [_jsx("blockquote", { children: entry.value }), canLabel && onSetLabel ? (
165
+ // biome-ignore lint/a11y/useSemanticElements: chip-row is a flex div throughout the admin UI; a fieldset would import UA border/padding with no reset in the publication CSS, while role="group" + aria-label keeps the grouping semantics
166
+ _jsxs("div", { className: "chip-row", role: "group", "aria-label": `Classify the written answer from ${response.id}`, children: [_jsx("button", { className: "chip", type: "button", "aria-pressed": entry.label === 'technical', onClick: () => onSetLabel(entry.responseId, entry.questionId, 'technical'), children: "Technical" }), _jsx("button", { className: "chip", type: "button", "aria-pressed": entry.label === 'general', onClick: () => onSetLabel(entry.responseId, entry.questionId, 'general'), children: "General" }), entry.labelSource === 'auto' ? (_jsx("span", { className: "chip", title: "Labeled automatically \u2014 your choice overrides it", children: "auto" })) : null] })) : null] }, `${response.id}:${entry.questionId}`)))), _jsx("div", { className: "chip-row", children: choices.map((answer) => (_jsx("span", { className: "chip", title: promptById.get(answer.questionId) ?? answer.questionId, children: formatAnswerValue(answer.value) }, `${response.id}:${answer.questionId}`))) })] }, response.id));
108
167
  }) })] }));
109
168
  }
110
169
  function Aggregates({ data }) {
@@ -1 +1 @@
1
- {"version":3,"file":"SurveyResponsesScreen.js","sourceRoot":"","sources":["../../../src/ui/screens/SurveyResponsesScreen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SurveyResponsesScreen.js","sourceRoot":"","sources":["../../../src/ui/screens/SurveyResponsesScreen.tsx"],"names":[],"mappings":"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"}
@@ -14,6 +14,20 @@ export interface AnalyticsData {
14
14
  topContent: ProviderResult<TopContentProvider[]>;
15
15
  trafficSources: ProviderResult<TrafficSource[]>;
16
16
  }
17
+ /**
18
+ * Caption for the traffic-sources panel: the metric is sessions summed from
19
+ * fact_content_source_daily, which only covers content pages — not the whole
20
+ * site (report P0-1).
21
+ */
22
+ export declare const TRAFFIC_SOURCES_CAPTION = "sessions by source \u2014 content pages only";
23
+ /**
24
+ * Label for the unique-visitors KPI tile (report P0-2). Ranges inside the
25
+ * ~90-day WAE retention window report true range uniques ("Unique
26
+ * visitors"); longer ranges report sum ÷ days, which the screen must never
27
+ * present as uniques. The 90 here mirrors the provider's
28
+ * RANGE_UNIQUES_MAX_DAYS.
29
+ */
30
+ export declare function uniqueVisitorsKpiLabel(rangeDays: number): string;
17
31
  export declare function normalizeArticleAnalyticsDetail(result: unknown): ProviderResult<ArticleAnalyticsDetail | null>;
18
32
  export declare function normalizeAnalyticsData(input: unknown): AnalyticsData;
19
33
  //# sourceMappingURL=analytics-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-data.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/analytics-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;IACnD,eAAe,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7C,UAAU,EAAE,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAChD,cAAc,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC,CAAA;CAC/C;AAyCD,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,OAAO,GACb,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAU/C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAQpE"}
1
+ {"version":3,"file":"analytics-data.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/analytics-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;IACnD,eAAe,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7C,UAAU,EAAE,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAChD,cAAc,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC,CAAA;CAC/C;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,iDAA4C,CAAA;AAEhF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAyCD,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,OAAO,GACb,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAU/C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAQpE"}
@@ -1,3 +1,19 @@
1
+ /**
2
+ * Caption for the traffic-sources panel: the metric is sessions summed from
3
+ * fact_content_source_daily, which only covers content pages — not the whole
4
+ * site (report P0-1).
5
+ */
6
+ export const TRAFFIC_SOURCES_CAPTION = 'sessions by source — content pages only';
7
+ /**
8
+ * Label for the unique-visitors KPI tile (report P0-2). Ranges inside the
9
+ * ~90-day WAE retention window report true range uniques ("Unique
10
+ * visitors"); longer ranges report sum ÷ days, which the screen must never
11
+ * present as uniques. The 90 here mirrors the provider's
12
+ * RANGE_UNIQUES_MAX_DAYS.
13
+ */
14
+ export function uniqueVisitorsKpiLabel(rangeDays) {
15
+ return Number.isFinite(rangeDays) && rangeDays > 90 ? 'Avg daily visitors' : 'Unique visitors';
16
+ }
1
17
  function providerStatus(value) {
2
18
  return value === 'live' || value === 'partial' || value === 'empty' ? value : 'empty';
3
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-data.js","sourceRoot":"","sources":["../../../src/ui/screens/analytics-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics-data.js","sourceRoot":"","sources":["../../../src/ui/screens/analytics-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { PodcastListening, PodcastListeningEpisode } from '../../providers/types.js';
2
+ export type PodcastSortKey = 'episode' | 'plays' | 'listeners' | 'reached10' | 'reached25' | 'reached50' | 'reached75' | 'reached90' | 'completes' | 'completionRate' | 'totalListeningSeconds';
3
+ /**
4
+ * Normalize the GET /admin/api/analytics?type=podcastListening body. The route
5
+ * returns the provider's PodcastListening verbatim; this keeps a malformed
6
+ * host payload from crashing the screen — broken rows drop, broken numbers
7
+ * read as 0, and a body that is not a PodcastListening at all yields null
8
+ * (rendered as the explicit unavailable state, never silent zeros).
9
+ */
10
+ export declare function normalizePodcastListening(input: unknown): PodcastListening | null;
11
+ /**
12
+ * Sort episodes for the table. `episode` sorts by display title then slug;
13
+ * every metric sorts descending-first (the interesting end), then ascending on
14
+ * the second click.
15
+ */
16
+ export declare function sortEpisodes(episodes: readonly PodcastListeningEpisode[], key: PodcastSortKey, dir: 'asc' | 'desc'): PodcastListeningEpisode[];
17
+ /** The table's display name: the D1 title, the slug, or the unattributed label. */
18
+ export declare function episodeLabel(episode: Pick<PodcastListeningEpisode, 'slug' | 'title'>): string;
19
+ //# sourceMappingURL=podcast-listening-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"podcast-listening-data.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/podcast-listening-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAEzF,MAAM,MAAM,cAAc,GACvB,SAAS,GACT,OAAO,GACP,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,uBAAuB,CAAA;AAiC1B;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CA0BjF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,SAAS,uBAAuB,EAAE,EAC5C,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,KAAK,GAAG,MAAM,GACjB,uBAAuB,EAAE,CAiB3B;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CAG7F"}
@@ -0,0 +1,98 @@
1
+ /** Defensive read of one metric: a non-finite value renders as 0, not NaN. */
2
+ function num(value) {
3
+ const n = typeof value === 'number' ? value : Number(value);
4
+ return Number.isFinite(n) ? n : 0;
5
+ }
6
+ function normalizeEpisode(input) {
7
+ if (!input || typeof input !== 'object')
8
+ return null;
9
+ const row = input;
10
+ const slug = typeof row.slug === 'string' ? row.slug : '';
11
+ const hasListening = typeof row.totalListeningSeconds === 'number';
12
+ const listening = hasListening ? num(row.totalListeningSeconds) : null;
13
+ const listeners = num(row.listeners);
14
+ return {
15
+ slug,
16
+ ...(typeof row.title === 'string' && row.title.length > 0 ? { title: row.title } : {}),
17
+ plays: num(row.plays),
18
+ listeners,
19
+ reached10: num(row.reached10),
20
+ reached25: num(row.reached25),
21
+ reached50: num(row.reached50),
22
+ reached75: num(row.reached75),
23
+ reached90: num(row.reached90),
24
+ completes: num(row.completes),
25
+ completionRate: num(row.completionRate),
26
+ totalListeningSeconds: listening,
27
+ avgListeningSecondsPerListener: listening !== null && listeners > 0 ? listening / listeners : null,
28
+ };
29
+ }
30
+ /**
31
+ * Normalize the GET /admin/api/analytics?type=podcastListening body. The route
32
+ * returns the provider's PodcastListening verbatim; this keeps a malformed
33
+ * host payload from crashing the screen — broken rows drop, broken numbers
34
+ * read as 0, and a body that is not a PodcastListening at all yields null
35
+ * (rendered as the explicit unavailable state, never silent zeros).
36
+ */
37
+ export function normalizePodcastListening(input) {
38
+ if (!input || typeof input !== 'object')
39
+ return null;
40
+ const body = input;
41
+ if (!Array.isArray(body.episodes))
42
+ return null;
43
+ const episodes = body.episodes
44
+ .map(normalizeEpisode)
45
+ .filter((e) => e !== null);
46
+ const totalsRow = body.totals;
47
+ const totals = totalsRow ?? {};
48
+ const rangeRow = body.range;
49
+ return {
50
+ episodes,
51
+ totals: {
52
+ episodes: num(totals.episodes),
53
+ plays: num(totals.plays),
54
+ listeners: num(totals.listeners),
55
+ completes: num(totals.completes),
56
+ completionRate: num(totals.completionRate),
57
+ totalListeningSeconds: typeof totals.totalListeningSeconds === 'number' ? num(totals.totalListeningSeconds) : null,
58
+ },
59
+ range: {
60
+ from: typeof rangeRow?.from === 'string' ? rangeRow.from : '',
61
+ to: typeof rangeRow?.to === 'string' ? rangeRow.to : '',
62
+ },
63
+ };
64
+ }
65
+ /**
66
+ * Sort episodes for the table. `episode` sorts by display title then slug;
67
+ * every metric sorts descending-first (the interesting end), then ascending on
68
+ * the second click.
69
+ */
70
+ export function sortEpisodes(episodes, key, dir) {
71
+ const factor = dir === 'asc' ? 1 : -1;
72
+ return [...episodes].sort((a, b) => {
73
+ if (key === 'episode') {
74
+ const cmp = episodeLabel(a).localeCompare(episodeLabel(b));
75
+ return factor * cmp;
76
+ }
77
+ const av = a[key];
78
+ const bv = b[key];
79
+ // Unmeasured listening time always sinks to the bottom regardless of
80
+ // direction — it is an unknown, not a small number.
81
+ if (av === null && bv === null)
82
+ return episodeLabel(a).localeCompare(episodeLabel(b));
83
+ if (av === null)
84
+ return 1;
85
+ if (bv === null)
86
+ return -1;
87
+ if (av === bv)
88
+ return episodeLabel(a).localeCompare(episodeLabel(b));
89
+ return factor * (av - bv);
90
+ });
91
+ }
92
+ /** The table's display name: the D1 title, the slug, or the unattributed label. */
93
+ export function episodeLabel(episode) {
94
+ if (episode.slug === 'unattributed')
95
+ return '(unattributed episodes)';
96
+ return episode.title && episode.title.length > 0 ? episode.title : episode.slug;
97
+ }
98
+ //# sourceMappingURL=podcast-listening-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"podcast-listening-data.js","sourceRoot":"","sources":["../../../src/ui/screens/podcast-listening-data.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AA4B7D,wBAAgB,gBAAgB,CAAC,EAChC,yBAAgC,EAChC,iBAAsB,EACtB,YAAY,EACZ,sBAA2B,EAC3B,QAAQ,GACR,GAAE;IACF,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,iBAAiB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAClC,sBAAsB,CAAC,EAAE,0BAA0B,EAAE,CAAA;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,cAAc,CA0BtB;AAED,eAAO,MAAM,UAAU,EAAE,cAAmC,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AA6B7D,wBAAgB,gBAAgB,CAAC,EAChC,yBAAgC,EAChC,iBAAsB,EACtB,YAAY,EACZ,sBAA2B,EAC3B,QAAQ,GACR,GAAE;IACF,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,iBAAiB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAClC,sBAAsB,CAAC,EAAE,0BAA0B,EAAE,CAAA;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,cAAc,CA2BtB;AAED,eAAO,MAAM,UAAU,EAAE,cAAmC,CAAA"}
@@ -7,6 +7,7 @@ import { ContentInsightsScreen } from './ContentInsightsScreen.js';
7
7
  import { ContentRoute } from './ContentRoute.js';
8
8
  import { DashboardScreen } from './DashboardScreen.js';
9
9
  import { MediaScreen } from './MediaScreen.js';
10
+ import { PodcastListeningScreen } from './PodcastListeningScreen.js';
10
11
  import { SettingsScreen } from './SettingsScreen.js';
11
12
  import { SocialShareScreen } from './SocialShareScreen.js';
12
13
  import { SubscriptionsScreen } from './SubscriptionsScreen.js';
@@ -31,6 +32,7 @@ export function createCmsScreens({ allowInlineAuthorCreation = true, primaryCate
31
32
  calendar: () => _jsx(CalendarRoute, {}),
32
33
  media: () => _jsx(MediaScreen, {}),
33
34
  analytics: () => _jsx(AnalyticsScreen, {}),
35
+ podcasts: () => _jsx(PodcastListeningScreen, {}),
34
36
  authors: () => _jsx(AuthorsScreen, {}),
35
37
  topics: () => _jsx(TopicsScreen, {}),
36
38
  subscriptions: () => _jsx(SubscriptionsScreen, {}),
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,uEAAuE;AACvE,2EAA2E;AAC3E,+EAA+E;AAC/E,SAAS,cAAc;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC/D,CAAC;AAED,SAAS,aAAa;IACrB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,cAAc,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAChC,yBAAyB,GAAG,IAAI,EAChC,iBAAiB,GAAG,EAAE,EACtB,YAAY,EACZ,sBAAsB,GAAG,EAAE,EAC3B,QAAQ,MAOL,EAAE;IACL,OAAO;QACN,OAAO,EAAE,GAAG,EAAE,CAAC,CACd,KAAC,YAAY,IACZ,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,GAC7C,CACF;QACD,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAC,qBAAqB,KAAG;QACnD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,KAAG;QACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,aAAa,KAAG;QACjC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAC,WAAW,KAAG;QAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,eAAe,KAAG;QACpC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAC,aAAa,KAAG;QAChC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,YAAY,KAAG;QAC9B,aAAa,EAAE,GAAG,EAAE,CAAC,KAAC,mBAAmB,KAAG;QAC5C,GAAG,CAAC,QAAQ;YACX,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAC,qBAAqB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;QACN,cAAc,EAAE,GAAG,EAAE,CAAC,CACrB,KAAC,iBAAiB,IAAC,yBAAyB,EAAE,yBAAyB,GAAI,CAC3E;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,KAAG;KAClC,CAAA;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAmB,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,uEAAuE;AACvE,2EAA2E;AAC3E,+EAA+E;AAC/E,SAAS,cAAc;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC/D,CAAC;AAED,SAAS,aAAa;IACrB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,cAAc,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAChC,yBAAyB,GAAG,IAAI,EAChC,iBAAiB,GAAG,EAAE,EACtB,YAAY,EACZ,sBAAsB,GAAG,EAAE,EAC3B,QAAQ,MAOL,EAAE;IACL,OAAO;QACN,OAAO,EAAE,GAAG,EAAE,CAAC,CACd,KAAC,YAAY,IACZ,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,GAC7C,CACF;QACD,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAC,qBAAqB,KAAG;QACnD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,KAAG;QACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,aAAa,KAAG;QACjC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAC,WAAW,KAAG;QAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,eAAe,KAAG;QACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,sBAAsB,KAAG;QAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAC,aAAa,KAAG;QAChC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,YAAY,KAAG;QAC9B,aAAa,EAAE,GAAG,EAAE,CAAC,KAAC,mBAAmB,KAAG;QAC5C,GAAG,CAAC,QAAQ;YACX,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAC,qBAAqB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;QACN,cAAc,EAAE,GAAG,EAAE,CAAC,CACrB,KAAC,iBAAiB,IAAC,yBAAyB,EAAE,yBAAyB,GAAI,CAC3E;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,KAAG;KAClC,CAAA;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAmB,gBAAgB,EAAE,CAAA"}