@unisim/sdk 0.157.0 → 0.159.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -6
- package/dist/UserCountBreakdown.d.ts +4 -1
- package/dist/UserCountBreakdown.d.ts.map +1 -1
- package/dist/UserCountBreakdown.js +165 -21
- package/dist/UserCountBreakdown.js.map +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +116 -16
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/presence.d.ts +120 -9
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +359 -47
- package/dist/presence.js.map +1 -1
- package/dist/provider.d.ts +8 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +8 -2
- package/dist/provider.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -314,12 +314,26 @@ the last line of the navbar's profile menu. **Nothing to wire up:** the provider
|
|
|
314
314
|
reports the app as in use (guests included) and the menu reads the figure.
|
|
315
315
|
|
|
316
316
|
- **Counting** (migration 0175): the provider calls `app_presence_beat(product,
|
|
317
|
-
install_id)` on
|
|
317
|
+
install_id, platform)` on sign-in/out and every 45 s while the page is visible.
|
|
318
318
|
The install id is a random UUID in localStorage (`unisim:install-id`). An
|
|
319
319
|
account is one person across all its devices and platforms; a guest install is
|
|
320
320
|
one person unless somebody signed in on it. "Live" = a beat in the last 2 min.
|
|
321
|
-
|
|
322
|
-
|
|
321
|
+
⚠️ **The FIRST beat waits for an interaction on the web** (since 0.158.0) —
|
|
322
|
+
a pointer, key, touch, wheel or scroll event. A page load on its own is not
|
|
323
|
+
somebody using the app, and until this it counted as one. An **installed** app
|
|
324
|
+
(Capacitor, Electron) beats the moment it opens: choosing the icon and waiting
|
|
325
|
+
for it to launch is a good deal more deliberate than arriving at a URL. For a
|
|
326
|
+
surface that is watched rather than touched — a wall display, a kiosk — pass
|
|
327
|
+
`presence: { requireInteraction: false }`.
|
|
328
|
+
⚠️ **PostgREST resolves an RPC by its argument NAMES**, so sending
|
|
329
|
+
`p_platform` to a database without migration 0187 is "function not found",
|
|
330
|
+
not an ignored argument. A beat refused for that reason retries without it and
|
|
331
|
+
drops the argument for the rest of the page — publishing this SDK ahead of the
|
|
332
|
+
migration costs the platform column, not the count.
|
|
333
|
+
- **Reading**: `app_user_counts(product)` → `{ total, live, web, native }`, only
|
|
334
|
+
while the menu is open. The line hides until a real number arrives. A database
|
|
335
|
+
without 0187 answers two columns; `web`/`native` come back `null` and no split
|
|
336
|
+
is drawn.
|
|
323
337
|
- **It opens on the WHOLE SUITE** since 0.150.0 — `suite_user_counts()`, "There
|
|
324
338
|
are a total of 1,234 users across all UNI·SIM apps (12 live)" (migration
|
|
325
339
|
0177) — and a tap switches to this app's own figure and back. An account is
|
|
@@ -342,13 +356,35 @@ reports the app as in use (guests included) and the menu reads the figure.
|
|
|
342
356
|
dropped, because the database enum gains values without the SDK being
|
|
343
357
|
rebuilt. A database without 0184 shows "not available" and nothing else
|
|
344
358
|
breaks. Turn it off with `<UserCountLine breakdown={false} />`.
|
|
359
|
+
- **web / native on every figure** (since 0.158.0, migration 0187): each row
|
|
360
|
+
reads "1,234 users · 900 web · 334 native · 5 live", and the suite figure
|
|
361
|
+
carries the split under it. The four phrases wrap onto a second line where a
|
|
362
|
+
row is too narrow for them, so nothing is ever cut off.
|
|
363
|
+
⚠️ **`web + native` can be LESS than `total`.** Each *person* is put in one
|
|
364
|
+
bucket — the platform of their most recent beat, so a phone-and-laptop person
|
|
365
|
+
is counted once — and anyone whose last beat predates 0187 is in neither. It
|
|
366
|
+
heals one visitor at a time; `live` is complete within two minutes. `web` and
|
|
367
|
+
`native` are `null`, and the split is drawn nowhere, for an app whose total is
|
|
368
|
+
its own account counter (0185, the Bipolar apps): a Firestore counter has no
|
|
369
|
+
platform in it.
|
|
370
|
+
⚠️ **The native figure lags by an app RELEASE, not a deploy** — `cap sync`,
|
|
371
|
+
a rebuild and a store review each. A low native figure is far more likely to
|
|
372
|
+
be an unshipped build than a bug.
|
|
373
|
+
- **"How we count a user"** — a collapsed fold at the bottom of the popup
|
|
374
|
+
stating, in the reader's language, all of the above that a user can see: who
|
|
375
|
+
counts as one person, that the web counts from an interaction, that opening an
|
|
376
|
+
installed app is that interaction, what "live" means, and why web + native can
|
|
377
|
+
come to less than the total.
|
|
345
378
|
- **Off switches**: `presence: false` in `UniversalConfig`; `showUserCount={false}`
|
|
346
379
|
on `<UserProfile>`. The hubs (`product: 'central'`) never beat or show it.
|
|
347
380
|
- **Elsewhere**: `<UserCountLine />` / `useUserCounts()` for a home screen, and
|
|
348
381
|
`<UserCountBreakdown />` / `useUserCountsByProduct()` for the per-app list.
|
|
349
|
-
Apps without `<UniversalProvider>` use `startPresence(supabase, product)`,
|
|
350
|
-
`fetchUserCounts`, `fetchUserCountsByProduct
|
|
351
|
-
`formatUserCounts(language, counts)`
|
|
382
|
+
Apps without `<UniversalProvider>` use `startPresence(supabase, product, opts)`,
|
|
383
|
+
`fetchUserCounts`, `fetchUserCountsByProduct`,
|
|
384
|
+
`formatUserCounts(language, counts)` and — for the four wrapping phrases of a
|
|
385
|
+
row — `userCountParts(language, counts)` directly. `devicePlatform()`,
|
|
386
|
+
`isInstalledApp()`, `onFirstInteraction()` and `hasInteracted()` are exported
|
|
387
|
+
for an app that wants to hold something else of its own back on the same rule.
|
|
352
388
|
|
|
353
389
|
### Languages
|
|
354
390
|
- `SUPPORTED_LANGUAGES`: `en`, `en-gb`, `fr`, `es`, `it`, `de`, **`pt-BR`**, **`pt-PT`**, `tr`.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MenuTheme } from './menuTheme.js';
|
|
2
|
-
import { type ProductCounts, type UserCounts } from './presence.js';
|
|
2
|
+
import { type ProductCounts, type UniversalIdCounts, type UserCounts } from './presence.js';
|
|
3
3
|
/**
|
|
4
4
|
* `{ product, total, live }` per app, refreshed on the presence beat while
|
|
5
5
|
* `active`. Starts from the last breakdown this origin read so the popup has
|
|
@@ -11,6 +11,9 @@ import { type ProductCounts, type UserCounts } from './presence.js';
|
|
|
11
11
|
* numbers does not need to.
|
|
12
12
|
*/
|
|
13
13
|
export declare function useUserCountsByProduct(active?: boolean): ProductCounts[] | null;
|
|
14
|
+
/** `{ created, live }` for Universal IDs, refreshed on the presence beat while
|
|
15
|
+
* `active`, starting from the last read this origin made. */
|
|
16
|
+
export declare function useUniversalIdCounts(active?: boolean): UniversalIdCounts | null;
|
|
14
17
|
export interface UserCountBreakdownProps {
|
|
15
18
|
open: boolean;
|
|
16
19
|
onClose: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserCountBreakdown.d.ts","sourceRoot":"","sources":["../src/UserCountBreakdown.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGrD,OAAO,
|
|
1
|
+
{"version":3,"file":"UserCountBreakdown.d.ts","sourceRoot":"","sources":["../src/UserCountBreakdown.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGrD,OAAO,EASL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAChB,MAAM,eAAe,CAAA;AA8DtB;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,UAAO,GAAG,aAAa,EAAE,GAAG,IAAI,CAmB5E;AAED;8DAC8D;AAC9D,wBAAgB,oBAAoB,CAAC,MAAM,UAAO,GAAG,iBAAiB,GAAG,IAAI,CAmB5E;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACzB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE,uBAAuB,sCA8HpG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
5
|
import { NAV_OVERLAY_Z_INDEX } from './DropdownSurface.js';
|
|
@@ -7,7 +7,7 @@ import { t } from './i18n.js';
|
|
|
7
7
|
import { MENU } from './menuTheme.js';
|
|
8
8
|
import { productDisplayName } from './productNames.js';
|
|
9
9
|
import { useLanguage, useUniversal } from './provider.js';
|
|
10
|
-
import { PRESENCE_BEAT_MS, cachedUserCountsByProduct, fetchUserCountsByProduct, formatUserCounts, } from './presence.js';
|
|
10
|
+
import { PRESENCE_BEAT_MS, cachedUniversalIdCounts, cachedUserCountsByProduct, fetchUniversalIdCounts, fetchUserCountsByProduct, formatUserCounts, universalIdParts, userCountParts, } from './presence.js';
|
|
11
11
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
12
12
|
// <UserCountBreakdown /> — "…and which apps are those people in?"
|
|
13
13
|
//
|
|
@@ -17,7 +17,17 @@ import { PRESENCE_BEAT_MS, cachedUserCountsByProduct, fetchUserCountsByProduct,
|
|
|
17
17
|
// it opens on, this app's figure on a tap (2026-09-17), and this list on a press
|
|
18
18
|
// and hold.
|
|
19
19
|
//
|
|
20
|
-
//
|
|
20
|
+
// James, 2026-09-21 added two more things to it: the web / native split on
|
|
21
|
+
// every figure ("perhaps on the long press of unisim users it can show
|
|
22
|
+
// web | native | live if there's enough space"), and the collapsed "How we
|
|
23
|
+
// count a user" fold at the bottom.
|
|
24
|
+
//
|
|
25
|
+
// James, 2026-09-27: "Add a line at top of apps list for 'Universal IDs' to
|
|
26
|
+
// show how many have been created - just X created, X live". It is the first
|
|
27
|
+
// row of the list, styled like an app row, and left out when the database has
|
|
28
|
+
// no migration 0188. Guests are not IDs; see the migration.
|
|
29
|
+
//
|
|
30
|
+
// Five things worth knowing before changing it:
|
|
21
31
|
//
|
|
22
32
|
// 1. **The rows do not add up to the suite total, and the note says so.** An
|
|
23
33
|
// account that uses four apps is four rows here and one person in the suite
|
|
@@ -39,6 +49,21 @@ import { PRESENCE_BEAT_MS, cachedUserCountsByProduct, fetchUserCountsByProduct,
|
|
|
39
49
|
// portal is not, so without the capture-phase guard below the first click in
|
|
40
50
|
// here would close the menu and take this popup down with it.
|
|
41
51
|
//
|
|
52
|
+
// 4. **"If there's enough space" is CSS, not a measurement.** The figures are
|
|
53
|
+
// four separate phrases in a wrapping flex row, so "1,234 users · 900 web ·
|
|
54
|
+
// 334 native · 5 live" sits beside the app name where it fits and drops to
|
|
55
|
+
// its own line where it does not — at any width, in any language, with no
|
|
56
|
+
// ResizeObserver and nothing to get wrong at 320px. Never join them into one
|
|
57
|
+
// string: a string can only wrap where its language puts spaces, and German
|
|
58
|
+
// ("gerade aktiv") and Turkish do not put them where English does.
|
|
59
|
+
//
|
|
60
|
+
// 5. **A row can have no split, and that is not an empty one.** `web`/`native`
|
|
61
|
+
// come back null for an app whose total is its own account counter
|
|
62
|
+
// (migration 0185 — the Bipolar apps, counted in Firestore). The split is
|
|
63
|
+
// left OUT of such a row rather than drawn as "0 web · 0 native", which
|
|
64
|
+
// would be a claim, and a false one. `userCountParts` does that filtering;
|
|
65
|
+
// this file just renders what it gets.
|
|
66
|
+
//
|
|
42
67
|
// ⚠️ Inline styles, not Tailwind — this ships inside node_modules and the apps'
|
|
43
68
|
// Tailwind builds do not scan it. Same as AboutAppDialog and PrivacyNote.
|
|
44
69
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
@@ -73,10 +98,34 @@ export function useUserCountsByProduct(active = true) {
|
|
|
73
98
|
}, [active, supabase]);
|
|
74
99
|
return rows;
|
|
75
100
|
}
|
|
101
|
+
/** `{ created, live }` for Universal IDs, refreshed on the presence beat while
|
|
102
|
+
* `active`, starting from the last read this origin made. */
|
|
103
|
+
export function useUniversalIdCounts(active = true) {
|
|
104
|
+
const { supabase } = useUniversal();
|
|
105
|
+
const [counts, setCounts] = useState(() => cachedUniversalIdCounts());
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
if (!active)
|
|
108
|
+
return;
|
|
109
|
+
let cancelled = false;
|
|
110
|
+
const load = () => {
|
|
111
|
+
if (typeof document !== 'undefined' && document.visibilityState === 'hidden')
|
|
112
|
+
return;
|
|
113
|
+
void fetchUniversalIdCounts(supabase).then((r) => {
|
|
114
|
+
if (!cancelled && r)
|
|
115
|
+
setCounts(r);
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
load();
|
|
119
|
+
const timer = setInterval(load, PRESENCE_BEAT_MS);
|
|
120
|
+
return () => { cancelled = true; clearInterval(timer); };
|
|
121
|
+
}, [active, supabase]);
|
|
122
|
+
return counts;
|
|
123
|
+
}
|
|
76
124
|
export function UserCountBreakdown({ open, onClose, suite, theme = 'light' }) {
|
|
77
125
|
const { language } = useLanguage();
|
|
78
126
|
const p = MENU[theme];
|
|
79
127
|
const rows = useUserCountsByProduct(open);
|
|
128
|
+
const ids = useUniversalIdCounts(open);
|
|
80
129
|
const cardRef = useRef(null);
|
|
81
130
|
// Only ever true on a FIRST open on this origin — every later open paints the
|
|
82
131
|
// cached rows immediately and swaps them when the fresh read lands.
|
|
@@ -130,21 +179,48 @@ export function UserCountBreakdown({ open, onClose, suite, theme = 'light' }) {
|
|
|
130
179
|
// backdrop. An onClick here would close the popup in the same gesture
|
|
131
180
|
// that opened it. A fresh press on the backdrop sends its own
|
|
132
181
|
// pointerdown, which is the dismissal we actually want.
|
|
133
|
-
onPointerDown: onClose, children: _jsxs("div", { role: "dialog", "aria-modal": "true", "aria-label": t(language, 'users.breakdown_title'), ref: cardRef, style: cardStyle(p), onPointerDown: (e) => e.stopPropagation(), children: [_jsxs("div", { style: headerRowStyle, children: [_jsx("h2", { style: titleStyle(p), children: t(language, 'users.breakdown_title') }), _jsx("button", { type: "button", onClick: onClose, "aria-label": t(language, 'nav.menu_close'), style: closeButtonStyle(p), children: _jsx(IconClose, {}) })] }), suite && _jsx("p", { style: suiteLineStyle(p), children: formatUserCounts(language, suite, 'suite') }), loading && _jsx("p", { style: quietStyle(p), children: t(language, 'users.breakdown_loading') }), !loading && !rows && _jsx("p", { style: quietStyle(p), children: t(language, 'users.breakdown_empty') }), rows && (
|
|
182
|
+
onPointerDown: onClose, children: _jsxs("div", { role: "dialog", "aria-modal": "true", "aria-label": t(language, 'users.breakdown_title'), ref: cardRef, style: cardStyle(p), onPointerDown: (e) => e.stopPropagation(), children: [_jsxs("div", { style: headerRowStyle, children: [_jsx("h2", { style: titleStyle(p), children: t(language, 'users.breakdown_title') }), _jsx("button", { type: "button", onClick: onClose, "aria-label": t(language, 'nav.menu_close'), style: closeButtonStyle(p), children: _jsx(IconClose, {}) })] }), suite && (_jsxs(_Fragment, { children: [_jsx("p", { style: suiteLineStyle(p), children: formatUserCounts(language, suite, 'suite') }), _jsx(SuiteSplit, { counts: suite, language: language, palette: p })] })), loading && _jsx("p", { style: quietStyle(p), children: t(language, 'users.breakdown_loading') }), !loading && !rows && _jsx("p", { style: quietStyle(p), children: t(language, 'users.breakdown_empty') }), (rows || ids) && (_jsxs("ul", { style: listStyle, children: [ids && (_jsxs("li", { style: rowStyle(p), children: [_jsx("span", { style: idsNameStyle(p), children: "Universal IDs" }), _jsxs("span", { style: figureStyle(p), children: [ids.live > 0 && _jsx("span", { style: liveDotStyle, "aria-hidden": true }), _jsx(Phrases, { parts: universalIdParts(language, ids), palette: p })] })] })), rows?.map((row) => (_jsxs("li", { style: rowStyle(p), children: [_jsx("span", { style: nameStyle(p), children: productDisplayName(row.product) }), _jsxs("span", { style: figureStyle(p), children: [row.live > 0 && _jsx("span", { style: liveDotStyle, "aria-hidden": true }), _jsx(Figures, { counts: row, language: language, palette: p })] })] }, row.product)))] })), rows && _jsx("p", { style: noteStyle(p), children: t(language, 'users.breakdown_note') }), _jsx(HowWeCount, { language: language, palette: p })] }) }), document.body);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* "1,234 users · 900 web · 334 native · 5 live" — as four spans that can wrap
|
|
186
|
+
* between one another, never mid-phrase, with the separators marked
|
|
187
|
+
* `aria-hidden` so a screen reader reads four facts rather than a row of dots.
|
|
188
|
+
*
|
|
189
|
+
* ⚠️ The whole point is that this is NOT one string. See note 4 in the header.
|
|
190
|
+
*/
|
|
191
|
+
function Figures({ counts, language, palette }) {
|
|
192
|
+
return _jsx(Phrases, { parts: userCountParts(language, counts), palette: palette });
|
|
134
193
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
194
|
+
function Phrases({ parts, palette }) {
|
|
195
|
+
return (_jsx(_Fragment, { children: parts.map((part, i) => (_jsxs("span", { style: figurePartStyle, children: [i > 0 && _jsx("span", { "aria-hidden": true, style: separatorStyle(palette), children: "\u00B7" }), part] }, part))) }));
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* The suite figure's own split, on the line under it. Drawn only when there is
|
|
199
|
+
* one: a database without migration 0187 answers null, and "0 web · 0 native"
|
|
200
|
+
* beneath a four-figure total would read as a broken count rather than a
|
|
201
|
+
* missing one.
|
|
202
|
+
*/
|
|
203
|
+
function SuiteSplit({ counts, language, palette }) {
|
|
204
|
+
if (typeof counts.web !== 'number' || typeof counts.native !== 'number')
|
|
205
|
+
return null;
|
|
206
|
+
const parts = userCountParts(language, counts).slice(1, 3);
|
|
207
|
+
return (_jsx("p", { style: suiteSplitStyle(palette), children: parts.map((part, i) => (_jsxs("span", { style: figurePartStyle, children: [i > 0 && _jsx("span", { "aria-hidden": true, style: separatorStyle(palette), children: "\u00B7" }), part] }, part))) }));
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* "How we count a user", collapsed (James, 2026-09-21). Every figure in this
|
|
211
|
+
* popup is a judgement call about who a person is, and the popup is the only
|
|
212
|
+
* place anybody meets those calls — so the answer belongs in it rather than in
|
|
213
|
+
* a migration header nobody outside this repo can read.
|
|
214
|
+
*
|
|
215
|
+
* ⚠️ A real `<details>`, not a state-driven fold: it is the suite's house
|
|
216
|
+
* pattern, it opens with no JavaScript, and `installRevealOnExpand` (on by
|
|
217
|
+
* default in every app) already scrolls an opened fold into view — here that
|
|
218
|
+
* means the card scrolls, because the card is the nearest thing with
|
|
219
|
+
* `overflow-y: auto` and `scrollChain` finds the innermost scroller first.
|
|
220
|
+
*/
|
|
221
|
+
function HowWeCount({ language, palette }) {
|
|
222
|
+
const lines = ['users.how_ids', 'users.how_person', 'users.how_web', 'users.how_native', 'users.how_live', 'users.how_split'];
|
|
223
|
+
return (_jsxs("details", { style: detailsStyle(palette), children: [_jsx("summary", { style: summaryStyle(palette), children: t(language, 'users.how_title') }), _jsx("ul", { style: howListStyle, children: lines.map((key) => (_jsx("li", { style: howItemStyle(palette), children: t(language, key) }, key))) })] }));
|
|
148
224
|
}
|
|
149
225
|
function IconClose() {
|
|
150
226
|
return (_jsx("svg", { viewBox: "0 0 24 24", width: "15", height: "15", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", "aria-hidden": "true", children: _jsx("path", { d: "M6 6 18 18M18 6 6 18" }) }));
|
|
@@ -215,6 +291,15 @@ const suiteLineStyle = (p) => ({
|
|
|
215
291
|
lineHeight: 1.4,
|
|
216
292
|
color: p.muted,
|
|
217
293
|
});
|
|
294
|
+
const suiteSplitStyle = (p) => ({
|
|
295
|
+
margin: '2px 0 0',
|
|
296
|
+
display: 'flex',
|
|
297
|
+
flexWrap: 'wrap',
|
|
298
|
+
gap: '0 5px',
|
|
299
|
+
fontSize: 11,
|
|
300
|
+
lineHeight: 1.4,
|
|
301
|
+
color: p.faint,
|
|
302
|
+
});
|
|
218
303
|
const quietStyle = (p) => ({
|
|
219
304
|
margin: '14px 0 0',
|
|
220
305
|
fontSize: 12,
|
|
@@ -231,7 +316,13 @@ const rowStyle = (p) => ({
|
|
|
231
316
|
display: 'flex',
|
|
232
317
|
alignItems: 'baseline',
|
|
233
318
|
justifyContent: 'space-between',
|
|
234
|
-
|
|
319
|
+
// ⚠️ The row WRAPS now that a figure can be four phrases long (0.158.0).
|
|
320
|
+
// `gap: '2px 12px'` keeps the old 12px between the name and the figures and
|
|
321
|
+
// adds a hair of leading when they end up stacked — which is what "if
|
|
322
|
+
// there's enough space" amounts to: a row too narrow for both puts the
|
|
323
|
+
// figures under the app name instead of squeezing or clipping them.
|
|
324
|
+
flexWrap: 'wrap',
|
|
325
|
+
gap: '2px 12px',
|
|
235
326
|
padding: '5px 0',
|
|
236
327
|
borderBottom: `1px solid ${p.divider}`,
|
|
237
328
|
});
|
|
@@ -240,15 +331,32 @@ const nameStyle = (p) => ({
|
|
|
240
331
|
color: p.body,
|
|
241
332
|
minWidth: 0,
|
|
242
333
|
});
|
|
334
|
+
// "Universal IDs" is a product name, never translated, and heads the list, so
|
|
335
|
+
// it is set a little heavier than the app names under it.
|
|
336
|
+
const idsNameStyle = (p) => ({
|
|
337
|
+
...nameStyle(p),
|
|
338
|
+
fontWeight: 600,
|
|
339
|
+
color: p.text,
|
|
340
|
+
});
|
|
243
341
|
const figureStyle = (p) => ({
|
|
244
342
|
display: 'inline-flex',
|
|
245
343
|
alignItems: 'baseline',
|
|
246
|
-
|
|
247
|
-
|
|
344
|
+
// The phrases wrap between themselves; each one is nowrap on its own, so a
|
|
345
|
+
// grouped figure is never broken away from the word it belongs to.
|
|
346
|
+
flexWrap: 'wrap',
|
|
347
|
+
justifyContent: 'flex-end',
|
|
348
|
+
gap: '0 5px',
|
|
248
349
|
fontSize: 12,
|
|
249
350
|
color: p.muted,
|
|
250
|
-
|
|
351
|
+
});
|
|
352
|
+
const figurePartStyle = {
|
|
251
353
|
whiteSpace: 'nowrap',
|
|
354
|
+
};
|
|
355
|
+
const separatorStyle = (p) => ({
|
|
356
|
+
// The dot belongs to the phrase after it, so a wrap never leaves one
|
|
357
|
+
// stranded at the end of a line.
|
|
358
|
+
marginRight: 5,
|
|
359
|
+
color: p.faint,
|
|
252
360
|
});
|
|
253
361
|
const liveDotStyle = {
|
|
254
362
|
display: 'inline-block',
|
|
@@ -265,4 +373,40 @@ const noteStyle = (p) => ({
|
|
|
265
373
|
lineHeight: 1.45,
|
|
266
374
|
color: p.faint,
|
|
267
375
|
});
|
|
376
|
+
// ── "How we count a user" ────────────────────────────────────────────────────
|
|
377
|
+
const detailsStyle = (p) => ({
|
|
378
|
+
marginTop: 12,
|
|
379
|
+
paddingTop: 10,
|
|
380
|
+
borderTop: `1px solid ${p.divider}`,
|
|
381
|
+
});
|
|
382
|
+
const summaryStyle = (p) => ({
|
|
383
|
+
// A summary is a button to everyone who can see it; these two make it one to
|
|
384
|
+
// a pointer and to a reader who presses and holds on a phone, where the
|
|
385
|
+
// browser would otherwise offer to select the words instead of opening it.
|
|
386
|
+
cursor: 'pointer',
|
|
387
|
+
WebkitUserSelect: 'none',
|
|
388
|
+
userSelect: 'none',
|
|
389
|
+
fontSize: 12,
|
|
390
|
+
fontWeight: 600,
|
|
391
|
+
color: p.muted,
|
|
392
|
+
// The disclosure triangle is left in place on purpose: it is the one thing on
|
|
393
|
+
// screen that says the fold opens, and it is drawn by the browser in the
|
|
394
|
+
// reader's own conventions.
|
|
395
|
+
listStyle: 'revert',
|
|
396
|
+
});
|
|
397
|
+
const howListStyle = {
|
|
398
|
+
listStyle: 'none',
|
|
399
|
+
margin: '8px 0 0',
|
|
400
|
+
padding: 0,
|
|
401
|
+
display: 'grid',
|
|
402
|
+
gap: 6,
|
|
403
|
+
};
|
|
404
|
+
const howItemStyle = (p) => ({
|
|
405
|
+
fontSize: 11,
|
|
406
|
+
lineHeight: 1.45,
|
|
407
|
+
color: p.faint,
|
|
408
|
+
// No marker and no indent: the card is 380px at its widest and a <ul>'s
|
|
409
|
+
// default 40px of padding costs one of these sentences a whole line on a
|
|
410
|
+
// phone. The gap between items is what separates them.
|
|
411
|
+
});
|
|
268
412
|
//# sourceMappingURL=UserCountBreakdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserCountBreakdown.js","sourceRoot":"","sources":["../src/UserCountBreakdown.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserCountBreakdown.js","sourceRoot":"","sources":["../src/UserCountBreakdown.tsx"],"names":[],"mappings":"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"}
|
package/dist/i18n.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,mBAAmB,0EAA2E,CAAA;AAE3G,MAAM,MAAM,QAAQ,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAEzD,eAAO,MAAM,gBAAgB,EAAE,QAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,mBAAmB,0EAA2E,CAAA;AAE3G,MAAM,MAAM,QAAQ,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAEzD,eAAO,MAAM,gBAAgB,EAAE,QAAe,CAAA;AAwxD9C,wBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,CAGrF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAUhF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAS3E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,EAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,CAAC,GAAG,SAAS,CAUf"}
|