@farthershore/farthershore-js 0.28.0 → 0.29.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/CHANGELOG.md +28 -0
- package/README.md +1 -1
- package/dist/component-policy.d.ts.map +1 -1
- package/dist/component-policy.js +1 -0
- package/dist/component-policy.js.map +1 -1
- package/dist/components/environment-banner.d.ts +4 -0
- package/dist/components/environment-banner.d.ts.map +1 -0
- package/dist/components/environment-banner.js +37 -0
- package/dist/components/environment-banner.js.map +1 -0
- package/dist/components/index.d.ts +6 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/legal-consent-gate.d.ts.map +1 -1
- package/dist/components/legal-consent-gate.js +11 -2
- package/dist/components/legal-consent-gate.js.map +1 -1
- package/dist/components/legal-index.d.ts +14 -0
- package/dist/components/legal-index.d.ts.map +1 -0
- package/dist/components/legal-index.js +19 -0
- package/dist/components/legal-index.js.map +1 -0
- package/dist/components/plans-table.d.ts +13 -1
- package/dist/components/plans-table.d.ts.map +1 -1
- package/dist/components/plans-table.js +16 -6
- package/dist/components/plans-table.js.map +1 -1
- package/dist/components/subscriber-status.d.ts +11 -0
- package/dist/components/subscriber-status.d.ts.map +1 -0
- package/dist/components/subscriber-status.js +39 -0
- package/dist/components/subscriber-status.js.map +1 -0
- package/dist/components/upgrade-prompt.d.ts +23 -4
- package/dist/components/upgrade-prompt.d.ts.map +1 -1
- package/dist/components/upgrade-prompt.js +30 -16
- package/dist/components/upgrade-prompt.js.map +1 -1
- package/dist/components/usage-surfaces.d.ts +22 -4
- package/dist/components/usage-surfaces.d.ts.map +1 -1
- package/dist/components/usage-surfaces.js +49 -11
- package/dist/components/usage-surfaces.js.map +1 -1
- package/dist/format/index.d.ts +1 -0
- package/dist/format/index.d.ts.map +1 -1
- package/dist/format/index.js +1 -0
- package/dist/format/index.js.map +1 -1
- package/dist/format/subscriber-lifecycle.d.ts +35 -0
- package/dist/format/subscriber-lifecycle.d.ts.map +1 -0
- package/dist/format/subscriber-lifecycle.js +139 -0
- package/dist/format/subscriber-lifecycle.js.map +1 -0
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.js +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/react/hooks.d.ts +13 -0
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +19 -0
- package/dist/react/hooks.js.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/resources/usage.d.ts +1 -0
- package/dist/resources/usage.d.ts.map +1 -1
- package/dist/resources/usage.js +23 -6
- package/dist/resources/usage.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,34 @@ This project adheres to Semantic Versioning (pre-1.0: minors may break).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.29.0] - 2026-09-09
|
|
9
|
+
|
|
10
|
+
### Added — read the usage summary without the recent-activity feed
|
|
11
|
+
|
|
12
|
+
`GET /portal/.../me/usage` returns the quota summary (a Postgres aggregate)
|
|
13
|
+
and the recent-activity feed (an R2 SQL scan of the event archive) together,
|
|
14
|
+
so the fast number could not render until the slow scan finished. A surface
|
|
15
|
+
that only shows the counter can now skip the scan:
|
|
16
|
+
|
|
17
|
+
- `usage.summary()` sends `events=false` and no longer pays for the feed.
|
|
18
|
+
- `usage.snapshot(range, { includeEvents: false })` does the same while
|
|
19
|
+
keeping the snapshot shape.
|
|
20
|
+
- New `useUsageSummary()` hook — `useUsage()` is unchanged and still returns
|
|
21
|
+
both in one request, which is right for a surface that renders the events.
|
|
22
|
+
- The two variants use DISTINCT read-cache keys; the responses differ (one
|
|
23
|
+
carries `items`), so a shared key would hand an events table a body that
|
|
24
|
+
never had any.
|
|
25
|
+
|
|
26
|
+
### Added — `FsUsageSummary` accepts `pending`
|
|
27
|
+
|
|
28
|
+
An empty `summary` used to render as a confident `0 / 10,000` at `0% used`
|
|
29
|
+
while the read was in flight — a wrong number rather than a loading state.
|
|
30
|
+
Pass `pending` to show a loading line instead. Defaults to `false`, so
|
|
31
|
+
existing callers are unaffected.
|
|
32
|
+
|
|
33
|
+
Requires a Core that understands `?events=false`. Against an older Core the
|
|
34
|
+
parameter is ignored and the feed comes back as before: slower, never wrong.
|
|
35
|
+
|
|
8
36
|
## [0.28.0] - 2026-09-03
|
|
9
37
|
|
|
10
38
|
### Changed — `FsUsageLimits` is now render-gated on `usage_limit:read` (BREAKING)
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
The **Farther Shore Frontend SDK** — the browser + React integration layer for
|
|
4
4
|
your product's subscriber portal.
|
|
5
5
|
|
|
6
|
-
> **Status: `0.
|
|
6
|
+
> **Status: `0.29.0` (pre-1.0).** A MINOR bump may include breaking changes;
|
|
7
7
|
> patches are additive. Pin the version you build against and read
|
|
8
8
|
> [`CHANGELOG.md`](./CHANGELOG.md) before upgrading.
|
|
9
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-policy.d.ts","sourceRoot":"","sources":["../src/component-policy.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;oEACoE;AACpE,eAAO,MAAM,oBAAoB,oDAKvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAE3E;AAED;0CAC0C;AAC1C,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,IAAI,CAAC;CACvB;AAED;;wCAEwC;AACxC,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"component-policy.d.ts","sourceRoot":"","sources":["../src/component-policy.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;oEACoE;AACpE,eAAO,MAAM,oBAAoB,oDAKvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAE3E;AAED;0CAC0C;AAC1C,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,IAAI,CAAC;CACvB;AAED;;wCAEwC;AACxC,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAwC3C,CAAC;AAEF;;;2DAG2D;AAC3D,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAAqB,CAAC;AAE7E;;+BAE+B;AAC/B,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzE;AAED;gFACgF;AAChF,eAAO,MAAM,wBAAwB,wDAI3B,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAEzE;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE3D;AAaD;;oCAEoC;AACpC,eAAO,MAAM,4BAA4B,QAAmC,CAAC;AAE7E,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,MAAM,WAAW,qBAAqB;IACpC;wCACoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX;sBACkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAgB3E;AAED,qDAAqD;AACrD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,4CAA4C;AAC5C,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAMD,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;4EACwE;IACxE,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;;;2EAGuE;IACvE,cAAc,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;IACvD,4CAA4C;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB;yDACqD;IACrD,OAAO,EAAE,OAAO,CAAC;CAClB;AAiBD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,SAAS,wBAAwB,EAAE,GAAG,IAAI,GACpD,uBAAuB,CAoGzB"}
|
package/dist/component-policy.js
CHANGED
|
@@ -79,6 +79,7 @@ export const MANAGED_COMPONENT_DEFAULTS = {
|
|
|
79
79
|
permission: "notification:read",
|
|
80
80
|
writePermission: "notification:read",
|
|
81
81
|
},
|
|
82
|
+
subscriber_status: { permission: "subscription:read" },
|
|
82
83
|
};
|
|
83
84
|
/** FAITHFUL COPY of contracts `DATA_FLOOR_COMPONENT_KEYS` (parity-tested):
|
|
84
85
|
* the managed default permission is a DATA floor — the panel's fetch is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-policy.js","sourceRoot":"","sources":["../src/component-policy.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,mEAAmE;AACnE,EAAE;AACF,gEAAgE;AAChE,+DAA+D;AAC/D,2EAA2E;AAC3E,6DAA6D;AAC7D,6EAA6E;AAC7E,qCAAqC;AACrC,gEAAgE;AAChE,wDAAwD;AACxD,EAAE;AACF,mEAAmE;AACnE,wEAAwE;AACxE,mEAAmE;AACnE,8CAA8C;AAC9C,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,iEAAiE;AACjE,EAAE;AACF,4EAA4E;AAC5E,4BAA4B;AAC5B,8EAA8E;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAGhE;oEACoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM;IACN,SAAS;IACT,UAAU;IACV,QAAQ;CACA,CAAC;AAIX,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAQ,oBAA0C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAUD;;wCAEwC;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAEnC;IACF,WAAW,EAAE;QACX,UAAU,EAAE,mBAAmB;QAC/B,uEAAuE;QACvE,oEAAoE;QACpE,sDAAsD;QACtD,eAAe,EAAE,0BAA0B;KAC5C;IACD,UAAU,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE;IACxC,cAAc,EAAE;QACd,UAAU,EAAE,aAAa;QACzB,uEAAuE;QACvE,qEAAqE;QACrE,eAAe,EAAE,eAAe;KACjC;IACD,eAAe,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE;IAC/C,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IACzD,SAAS,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IAC3C,UAAU,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE;IAC5E,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IACpD,YAAY,EAAE;QACZ,UAAU,EAAE,kBAAkB;QAC9B,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,eAAe,EAAE,oBAAoB;KACtC;IACD,wBAAwB,EAAE;QACxB,mEAAmE;QACnE,wEAAwE;QACxE,oEAAoE;QACpE,wBAAwB;QACxB,UAAU,EAAE,mBAAmB;QAC/B,eAAe,EAAE,mBAAmB;KACrC;
|
|
1
|
+
{"version":3,"file":"component-policy.js","sourceRoot":"","sources":["../src/component-policy.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,mEAAmE;AACnE,EAAE;AACF,gEAAgE;AAChE,+DAA+D;AAC/D,2EAA2E;AAC3E,6DAA6D;AAC7D,6EAA6E;AAC7E,qCAAqC;AACrC,gEAAgE;AAChE,wDAAwD;AACxD,EAAE;AACF,mEAAmE;AACnE,wEAAwE;AACxE,mEAAmE;AACnE,8CAA8C;AAC9C,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,iEAAiE;AACjE,EAAE;AACF,4EAA4E;AAC5E,4BAA4B;AAC5B,8EAA8E;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAGhE;oEACoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM;IACN,SAAS;IACT,UAAU;IACV,QAAQ;CACA,CAAC;AAIX,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAQ,oBAA0C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAUD;;wCAEwC;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAEnC;IACF,WAAW,EAAE;QACX,UAAU,EAAE,mBAAmB;QAC/B,uEAAuE;QACvE,oEAAoE;QACpE,sDAAsD;QACtD,eAAe,EAAE,0BAA0B;KAC5C;IACD,UAAU,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE;IACxC,cAAc,EAAE;QACd,UAAU,EAAE,aAAa;QACzB,uEAAuE;QACvE,qEAAqE;QACrE,eAAe,EAAE,eAAe;KACjC;IACD,eAAe,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE;IAC/C,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;IACjC,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IACzD,SAAS,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IAC3C,UAAU,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE;IAC5E,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IACpD,YAAY,EAAE;QACZ,UAAU,EAAE,kBAAkB;QAC9B,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,eAAe,EAAE,oBAAoB;KACtC;IACD,wBAAwB,EAAE;QACxB,mEAAmE;QACnE,wEAAwE;QACxE,oEAAoE;QACpE,wBAAwB;QACxB,UAAU,EAAE,mBAAmB;QAC/B,eAAe,EAAE,mBAAmB;KACrC;IACD,iBAAiB,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE;CACvD,CAAC;AAEF;;;2DAG2D;AAC3D,MAAM,CAAC,MAAM,yBAAyB,GAAsB,CAAC,cAAc,CAAC,CAAC;AAE7E;;+BAE+B;AAC/B,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,0BAA0B,CAAC,WAAW,CAAC,EAAE,UAAU,IAAI,IAAI,CAAC;AACrE,CAAC;AAED;gFACgF;AAChF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,gBAAgB;IAChB,YAAY;CACJ,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CAAC,EAAU;IAChD,OAAQ,wBAA8C,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,cAAc,CACrB,WAAmB;IAEnB,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACzC,0BAA0B,EAC1B,WAAW,CACZ;QACC,CAAC,CAAC,0BAA0B,CAAC,WAAW,CAAC;QACzC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;oCAEoC;AACpC,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,CAAC;AAE7E,mEAAmE;AACnE,MAAM,UAAU,oBAAoB,CAAC,EAAU;IAC7C,OAAO,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/C,CAAC;AAqBD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAmC;IACnE,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC;IAC5B,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;QAClE,MAAM,IAAI,uBAAuB,CAC/B,uBAAuB,EAAE,uEAAuE,CACjG,CAAC;IACJ,CAAC;IACD,IACE,YAAY,CAAC,QAAQ,KAAK,SAAS;QACnC,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC3C,CAAC;QACD,MAAM,IAAI,uBAAuB,CAC/B,sBAAsB,EAAE,yBAAyB,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CACnF,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AACjC,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,wBAAwB;IACtC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAgCD;mCACmC;AACnC,SAAS,cAAc,CAAC,WAAmB;IACzC,IAAI,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,EAAE,UAAU,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,QAAqD;IAErD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QAC5C,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpE,uEAAuE;QACvE,OAAO;YACL,WAAW;YACX,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,EAAE;YACvB,eAAe,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC,QAAQ;YACvD,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,SAAS;YACzB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE5C,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,cAAc,GAClB,CAAC,SAAS;QACV,OAAO,EAAE,kBAAkB,IAAI,IAAI;QACnC,OAAO,CAAC,YAAY,EAAE,cAAc,IAAI,OAAO,EAAE,cAAc,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,cAAc;QAC/B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU;YACzB,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE,UAAU;YACnB,GAAG,OAAO,OAAO,CAAC,CAAC;IAEvB,MAAM,eAAe,GACnB,OAAO,EAAE,QAAQ,IAAI,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChE,CAAC,CAAC,OAAO,CAAC,QAAQ;QAClB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,iBAAiB,GACrB,YAAY,EAAE,QAAQ;QACtB,eAAe;QACf,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,cAAc,GAClB,YAAY,EAAE,QAAQ,KAAK,SAAS;QAClC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,eAAe,KAAK,SAAS;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC;IAClB,0EAA0E;IAC1E,wEAAwE;IACxE,kDAAkD;IAClD,MAAM,QAAQ,GACZ,SAAS;QACT,CAAC,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,UAAU,CAAC;QACnE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,iBAAiB,CAAC;IACxB,MAAM,oBAAoB,GAAG,cAAc;QACzC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE,GAAG,CAAC,CAAC,SAAS,IAAI,yBAAyB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClE,OAAO,EAAE,UAAU,IAAI,IAAI;gBACzB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC;IACN,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,IAAI,CACpD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAChD,CAAC;IACF,MAAM,mBAAmB,GAAG,oBAAoB;SAC7C,MAAM,CAAC,4BAA4B,CAAC;SACpC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;IACrE,4DAA4D;IAC5D,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,aAAa,GACjB,CAAC,cAAc;QACf,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAE7D,OAAO;QACL,WAAW;QACX,UAAU;QACV,mBAAmB;QACnB,eAAe,EACb,YAAY,EAAE,eAAe;YAC7B,OAAO,EAAE,eAAe;YACxB,GAAG,OAAO,QAAQ;QACpB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAC7C,uEAAuE;QACvE,wEAAwE;QACxE,0DAA0D;QAC1D,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;QAC1D,cAAc;QACd,SAAS;QACT,OAAO,EAAE,aAAa;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-banner.d.ts","sourceRoot":"","sources":["../../src/components/environment-banner.tsx"],"names":[],"mappings":"AAuBA,iBAAS,uBAAuB,uCAmD/B;AAED,eAAO,MAAM,mBAAmB,gCAG/B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { useBoot } from "../react/index.js";
|
|
5
|
+
import { makeSafe } from "./safe.js";
|
|
6
|
+
const DISMISS_KEY = "env-banner-dismissed";
|
|
7
|
+
function Icon({ className, path }) {
|
|
8
|
+
return (_jsx("svg", { className: className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.8, "aria-hidden": true, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: path }) }));
|
|
9
|
+
}
|
|
10
|
+
function FsEnvironmentBannerImpl() {
|
|
11
|
+
const boot = useBoot();
|
|
12
|
+
const [dismissed, setDismissed] = useState(() => {
|
|
13
|
+
if (typeof window === "undefined")
|
|
14
|
+
return false;
|
|
15
|
+
try {
|
|
16
|
+
return window.sessionStorage.getItem(DISMISS_KEY) === "true";
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const environment = boot.environment;
|
|
23
|
+
if (!environment || dismissed)
|
|
24
|
+
return null;
|
|
25
|
+
const dismiss = () => {
|
|
26
|
+
setDismissed(true);
|
|
27
|
+
try {
|
|
28
|
+
window.sessionStorage.setItem(DISMISS_KEY, "true");
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// The in-memory dismissal still applies for this render.
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
return (_jsxs("div", { className: "fs-environment-banner", role: "status", children: [_jsxs("div", { className: "fs-environment-banner__inner", children: [_jsx(Icon, { className: "fs-environment-banner__icon", path: "M9.75 3.75h4.5m-3.75 0v5.1l-5.1 8.83A1.75 1.75 0 0 0 6.92 20.25h10.16a1.75 1.75 0 0 0 1.52-2.57l-5.1-8.83v-5.1" }), _jsx("span", { children: environment.name }), environment.branch && (_jsxs("span", { className: "fs-environment-banner__branch", children: [_jsx(Icon, { className: "fs-environment-banner__branch-icon", path: "M6 3v12m0-8h7.5a3 3 0 0 1 3 3v11m-3-3 3 3 3-3" }), environment.branch] }))] }), _jsx("button", { type: "button", onClick: dismiss, className: "fs-environment-banner__dismiss", "aria-label": "Dismiss environment banner", children: _jsx(Icon, { path: "M6 6l12 12M18 6 6 18" }) })] }));
|
|
35
|
+
}
|
|
36
|
+
export const FsEnvironmentBanner = makeSafe("Environment banner", FsEnvironmentBannerImpl);
|
|
37
|
+
//# sourceMappingURL=environment-banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-banner.js","sourceRoot":"","sources":["../../src/components/environment-banner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAE3C,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAwC;IACrE,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,GAAG,iCAGhB,eAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAE,IAAI,GAAI,GAC1D,CACP,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC9C,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,IAAI,CAAC,WAAW,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,QAAQ,aAClD,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,IAAI,IACH,SAAS,EAAC,6BAA6B,EACvC,IAAI,EAAC,gHAAgH,GACrH,EACF,yBAAO,WAAW,CAAC,IAAI,GAAQ,EAC9B,WAAW,CAAC,MAAM,IAAI,CACrB,gBAAM,SAAS,EAAC,+BAA+B,aAC7C,KAAC,IAAI,IACH,SAAS,EAAC,oCAAoC,EAC9C,IAAI,EAAC,+CAA+C,GACpD,EACD,WAAW,CAAC,MAAM,IACd,CACR,IACG,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,gCAAgC,gBAC/B,4BAA4B,YAEvC,KAAC,IAAI,IAAC,IAAI,EAAC,sBAAsB,GAAG,GAC7B,IACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CACzC,oBAAoB,EACpB,uBAAuB,CACxB,CAAC"}
|
|
@@ -22,16 +22,20 @@ export { FsOnboardingPlanRail } from "./onboarding-plan-rail.js";
|
|
|
22
22
|
export type { FsOnboardingPlanRailProps } from "./onboarding-plan-rail.js";
|
|
23
23
|
export { UsageCard } from "./usage.js";
|
|
24
24
|
export { FsUsageEvents, FsUsageSummary, MeterUsageRows, } from "./usage-surfaces.js";
|
|
25
|
-
export type { FsUsageEventsProps, FsUsageSummaryProps, } from "./usage-surfaces.js";
|
|
25
|
+
export type { FsUsageEventsProps, FsUsageSummaryProps, UsageTimeRange, } from "./usage-surfaces.js";
|
|
26
26
|
export type { UsageCardProps } from "./usage.js";
|
|
27
27
|
export { BillingSummary } from "./billing.js";
|
|
28
28
|
export type { BillingSummaryProps } from "./billing.js";
|
|
29
|
+
export { FsSubscriberStatus } from "./subscriber-status.js";
|
|
30
|
+
export type { FsSubscriberStatusProps } from "./subscriber-status.js";
|
|
29
31
|
export { RoutePanel } from "./route-panel.js";
|
|
30
32
|
export type { RoutePanelProps } from "./route-panel.js";
|
|
31
33
|
export { DocsLegal } from "./docs.js";
|
|
32
34
|
export type { DocsLegalProps } from "./docs.js";
|
|
33
35
|
export { LegalDocument, useLegalDocument, useLegalDocuments, } from "./legal-document.js";
|
|
34
36
|
export type { LegalDocumentProps, PublishedLegalDocument, UseLegalDocumentResult, } from "./legal-document.js";
|
|
37
|
+
export { LegalIndex } from "./legal-index.js";
|
|
38
|
+
export type { LegalIndexProps } from "./legal-index.js";
|
|
35
39
|
export { LEGAL_ROUTE_PREFIX, legalDocHref, legalIndexHref, parseLegalRoute, } from "./legal-route.js";
|
|
36
40
|
export type { LegalRoute } from "./legal-route.js";
|
|
37
41
|
export { LegalConsentGate, useLegalConsent, useLegalConsentWizard, } from "./legal-consent-gate.js";
|
|
@@ -83,6 +87,7 @@ export type { RateLimitDisplayProps } from "./rate-limit-display.js";
|
|
|
83
87
|
export { BillPreviewCard, BillPreviewView } from "./bill-preview-card.js";
|
|
84
88
|
export { FsIcon, FsLogo, FsFooter } from "./chrome.js";
|
|
85
89
|
export type { FsIconProps, FsLogoProps, FsFooterProps } from "./chrome.js";
|
|
90
|
+
export { FsEnvironmentBanner } from "./environment-banner.js";
|
|
86
91
|
export { FartherShoreApp, FsPricing } from "./app.js";
|
|
87
92
|
export { BusinessDocs, BusinessDocsEmptyState, BusinessDocsLoading, useBusinessDocs, useBusinessDocsPage, BusinessDocsPageBody, } from "./product-docs/product-docs.js";
|
|
88
93
|
export { BusinessApiReference, collectBusinessApiOperations, groupBusinessApiOperations, } from "./product-docs/api-reference.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAKvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -48,9 +48,11 @@ export { FsOnboardingPlanRail } from "./onboarding-plan-rail.js";
|
|
|
48
48
|
export { UsageCard } from "./usage.js";
|
|
49
49
|
export { FsUsageEvents, FsUsageSummary, MeterUsageRows, } from "./usage-surfaces.js";
|
|
50
50
|
export { BillingSummary } from "./billing.js";
|
|
51
|
+
export { FsSubscriberStatus } from "./subscriber-status.js";
|
|
51
52
|
export { RoutePanel } from "./route-panel.js";
|
|
52
53
|
export { DocsLegal } from "./docs.js";
|
|
53
54
|
export { LegalDocument, useLegalDocument, useLegalDocuments, } from "./legal-document.js";
|
|
55
|
+
export { LegalIndex } from "./legal-index.js";
|
|
54
56
|
// Uniform legal routing — every kind lives at /legal/<kind>; `/legal` indexes.
|
|
55
57
|
export { LEGAL_ROUTE_PREFIX, legalDocHref, legalIndexHref, parseLegalRoute, } from "./legal-route.js";
|
|
56
58
|
export { LegalConsentGate, useLegalConsent, useLegalConsentWizard, } from "./legal-consent-gate.js";
|
|
@@ -103,6 +105,7 @@ export { RateLimitDisplay } from "./rate-limit-display.js";
|
|
|
103
105
|
export { BillPreviewCard, BillPreviewView } from "./bill-preview-card.js";
|
|
104
106
|
/* ── Chrome ────────────────────────────────────────────────────── */
|
|
105
107
|
export { FsIcon, FsLogo, FsFooter } from "./chrome.js";
|
|
108
|
+
export { FsEnvironmentBanner } from "./environment-banner.js";
|
|
106
109
|
/* ── Composite (optional one-tag portal) ───────────────────────── */
|
|
107
110
|
export { FartherShoreApp, FsPricing } from "./app.js";
|
|
108
111
|
/* ── Business docs (opt-in) ─────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,+CAA+C;AAC/C,6EAA6E;AAC7E,sEAAsE;AACtE,+DAA+D;AAC/D,gFAAgF;AAChF,8EAA8E;AAC9E,iDAAiD;AACjD,uEAAuE;AACvE,4EAA4E;AAC5E,2DAA2D;AAC3D,2EAA2E;AAC3E,2EAA2E;AAC3E,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAE7E,sEAAsE;AACtE,+EAA+E;AAC/E,0EAA0E;AAC1E,6EAA6E;AAC7E,yEAAyE;AACzE,6EAA6E;AAC7E,yEAAyE;AACzE,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGzD,sEAAsE;AACtE,+EAA+E;AAC/E,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,sEAAsE;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,sEAAsE;AACtE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,sEAAsE;AACtE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AASzB,qEAAqE;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legal-consent-gate.d.ts","sourceRoot":"","sources":["../../src/components/legal-consent-gate.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAmB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKxE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,eAAe,IAAI,qBAAqB,CAmCvD;AAED,MAAM,WAAW,2BAA2B;IAC1C;;+DAE2D;IAC3D,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpC;oFACgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,IAAI,IAAI,IAAI,CAAC;IACb,uEAAuE;IACvE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;yBAGqB;IACrB,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC;0DACsD;IACtD,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,2BAA2B,CA4FnE;AAED,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"legal-consent-gate.d.ts","sourceRoot":"","sources":["../../src/components/legal-consent-gate.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAmB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKxE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,eAAe,IAAI,qBAAqB,CAmCvD;AAED,MAAM,WAAW,2BAA2B;IAC1C;;+DAE2D;IAC3D,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpC;oFACgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,IAAI,IAAI,IAAI,CAAC;IACb,uEAAuE;IACvE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;yBAGqB;IACrB,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC;0DACsD;IACtD,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,2BAA2B,CA4FnE;AAED,wBAAgB,gBAAgB,uCAoJ/B"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
|
4
4
|
import { useFartherShore, useMe } from "../react/index.js";
|
|
5
5
|
import { cx } from "./_internal.js";
|
|
6
|
-
import { LegalDocument } from "./legal-document.js";
|
|
6
|
+
import { LegalDocument, useLegalDocument } from "./legal-document.js";
|
|
7
7
|
import { useBoot } from "./root.js";
|
|
8
8
|
export function useLegalConsent() {
|
|
9
9
|
const fs = useFartherShore();
|
|
@@ -134,6 +134,15 @@ export function LegalConsentGate() {
|
|
|
134
134
|
const wizard = useLegalConsentWizard();
|
|
135
135
|
const dialogRef = useRef(null);
|
|
136
136
|
const requiredDocs = wizard.steps;
|
|
137
|
+
// Gate the consent controls on the current step's document being on screen:
|
|
138
|
+
// the reader can only agree to (or acknowledge) a document they can actually
|
|
139
|
+
// see. This also closes a race — a checkbox tick that lands while the document
|
|
140
|
+
// is still fetching can be dropped by the concurrent load re-render, leaving
|
|
141
|
+
// the wizard stuck with "Next" disabled — by making the control inert until
|
|
142
|
+
// the document has settled (loaded or unpublished), after which no competing
|
|
143
|
+
// re-render remains to swallow the update.
|
|
144
|
+
const currentDoc = useLegalDocument(wizard.current?.kind ?? "");
|
|
145
|
+
const docLoading = wizard.current != null && currentDoc.loading;
|
|
137
146
|
useEffect(() => {
|
|
138
147
|
if (!consent.required || requiredDocs.length === 0)
|
|
139
148
|
return;
|
|
@@ -178,7 +187,7 @@ export function LegalConsentGate() {
|
|
|
178
187
|
: wizard.primaryAction === "acknowledge"
|
|
179
188
|
? "I acknowledge"
|
|
180
189
|
: "Next";
|
|
181
|
-
return (_jsx("div", { className: "fs-legal-overlay", children: _jsx("div", { ref: dialogRef, className: "fs-legal-overlay__dialog", role: "dialog", "aria-modal": "true", "aria-labelledby": "fs-legal-consent-title", tabIndex: -1, children: _jsxs("form", { className: "fs-legal-consent", onSubmit: onSubmit, "data-fs-legal-step": wizard.index + 1, "data-fs-legal-steps": wizard.steps.length, "data-fs-legal-action": wizard.primaryAction, children: [_jsxs("header", { className: "fs-legal-consent__header", children: [_jsx("h2", { id: "fs-legal-consent-title", children: "Review updated terms" }), _jsxs("p", { className: "fs-legal-consent__progress", children: ["Step ", wizard.index + 1, " of ", wizard.steps.length] })] }), wizard.error ? (_jsx("p", { className: "fs-legal-consent__error", role: "alert", children: wizard.error })) : null, _jsx("div", { className: "fs-legal-consent__documents", "data-fs-legal-direction": wizard.direction ?? undefined, children: _jsxs("section", { className: "fs-legal-consent__document", children: [_jsx(LegalDocument, { kind: doc.kind }), doc.changeNote ? (_jsx("p", { className: "fs-legal-consent__change-note", children: doc.changeNote })) : null, doc.acceptanceMode === "agree" ? (_jsxs("label", { className: "fs-legal-consent__control", children: [_jsx("input", { type: "checkbox", checked: wizard.agreed[doc.kind] === true, onChange: (event) => wizard.setAgreed(doc.kind, event.target.checked) }), _jsx("span", { children: doc.consentLabel ?? defaultConsentLabel(doc) })] })) : null] }, doc.kind) }), _jsxs("div", { className: "fs-legal-consent__actions", children: [wizard.index > 0 ? (_jsx("button", { type: "button", className: "fs-btn fs-legal-consent__back", onClick: wizard.back, disabled: wizard.submitting, children: "Back" })) : null, _jsx("button", { type: "submit", className: cx("fs-btn fs-btn--cta fs-legal-consent__submit", wizard.submitting ? "fs-btn--loading" : undefined), disabled: !wizard.canAdvance || wizard.submitting, children: wizard.submitting ? "Saving..." : primaryLabel })] })] }) }) }));
|
|
190
|
+
return (_jsx("div", { className: "fs-legal-overlay", children: _jsx("div", { ref: dialogRef, className: "fs-legal-overlay__dialog", role: "dialog", "aria-modal": "true", "aria-labelledby": "fs-legal-consent-title", tabIndex: -1, children: _jsxs("form", { className: "fs-legal-consent", onSubmit: onSubmit, "data-fs-legal-step": wizard.index + 1, "data-fs-legal-steps": wizard.steps.length, "data-fs-legal-action": wizard.primaryAction, children: [_jsxs("header", { className: "fs-legal-consent__header", children: [_jsx("h2", { id: "fs-legal-consent-title", children: "Review updated terms" }), _jsxs("p", { className: "fs-legal-consent__progress", children: ["Step ", wizard.index + 1, " of ", wizard.steps.length] })] }), wizard.error ? (_jsx("p", { className: "fs-legal-consent__error", role: "alert", children: wizard.error })) : null, _jsx("div", { className: "fs-legal-consent__documents", "data-fs-legal-direction": wizard.direction ?? undefined, children: _jsxs("section", { className: "fs-legal-consent__document", children: [_jsx(LegalDocument, { kind: doc.kind }), doc.changeNote ? (_jsx("p", { className: "fs-legal-consent__change-note", children: doc.changeNote })) : null, doc.acceptanceMode === "agree" ? (_jsxs("label", { className: "fs-legal-consent__control", children: [_jsx("input", { type: "checkbox", checked: wizard.agreed[doc.kind] === true, disabled: docLoading, onChange: (event) => wizard.setAgreed(doc.kind, event.target.checked) }), _jsx("span", { children: doc.consentLabel ?? defaultConsentLabel(doc) })] })) : null] }, doc.kind) }), _jsxs("div", { className: "fs-legal-consent__actions", children: [wizard.index > 0 ? (_jsx("button", { type: "button", className: "fs-btn fs-legal-consent__back", onClick: wizard.back, disabled: wizard.submitting, children: "Back" })) : null, _jsx("button", { type: "submit", className: cx("fs-btn fs-btn--cta fs-legal-consent__submit", wizard.submitting ? "fs-btn--loading" : undefined), disabled: !wizard.canAdvance || wizard.submitting || docLoading, children: wizard.submitting ? "Saving..." : primaryLabel })] })] }) }) }));
|
|
182
191
|
}
|
|
183
192
|
function defaultConsentLabel(doc) {
|
|
184
193
|
const verb = doc.acceptanceMode === "acknowledge" ? "I acknowledge" : "I agree to";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legal-consent-gate.js","sourceRoot":"","sources":["../../src/components/legal-consent-gate.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"legal-consent-gate.js","sourceRoot":"","sources":["../../src/components/legal-consent-gate.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type PublishedLegalDocument } from "./legal-document.js";
|
|
3
|
+
export interface LegalIndexProps {
|
|
4
|
+
/** Appended to the default list root. */
|
|
5
|
+
className?: string;
|
|
6
|
+
/** Host-owned chrome slot. Document discovery remains SDK-owned. */
|
|
7
|
+
renderItem?: (document: PublishedLegalDocument, index: number) => ReactNode;
|
|
8
|
+
/** Defaults to a plain not-published message. Pass `null` for no output. */
|
|
9
|
+
emptyState?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
declare function LegalIndexImpl({ className, renderItem, emptyState, }?: LegalIndexProps): import("react").JSX.Element;
|
|
12
|
+
export declare const LegalIndex: typeof LegalIndexImpl;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=legal-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legal-index.d.ts","sourceRoot":"","sources":["../../src/components/legal-index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAK7B,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAC5E,4EAA4E;IAC5E,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAU,EACV,UAAU,GACX,GAAE,eAAoB,+BAyCtB;AAED,eAAO,MAAM,UAAU,uBAA8C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Fragment } from "react";
|
|
4
|
+
import { useLegalDocuments, } from "./legal-document.js";
|
|
5
|
+
import { legalDocHref } from "./legal-route.js";
|
|
6
|
+
import { cx } from "./_internal.js";
|
|
7
|
+
import { makeSafe } from "./safe.js";
|
|
8
|
+
function LegalIndexImpl({ className, renderItem, emptyState, } = {}) {
|
|
9
|
+
const documents = useLegalDocuments();
|
|
10
|
+
if (documents.length === 0) {
|
|
11
|
+
return (_jsx(_Fragment, { children: emptyState !== undefined ? (emptyState) : (_jsx("p", { className: "fs-legal-index__empty", children: "This product has not published any legal documents." })) }));
|
|
12
|
+
}
|
|
13
|
+
if (renderItem) {
|
|
14
|
+
return (_jsx(_Fragment, { children: documents.map((document, index) => (_jsx(Fragment, { children: renderItem(document, index) }, document.kind))) }));
|
|
15
|
+
}
|
|
16
|
+
return (_jsx("ul", { className: cx("fs-legal-index", className), children: documents.map((document) => (_jsxs("li", { className: "fs-legal-index__item", children: [_jsx("a", { href: legalDocHref(document.kind), children: document.title }), document.effectiveDate && (_jsxs("span", { className: "fs-legal-index__date", children: ["Effective ", document.effectiveDate] }))] }, document.kind))) }));
|
|
17
|
+
}
|
|
18
|
+
export const LegalIndex = makeSafe("Legal documents", LegalIndexImpl);
|
|
19
|
+
//# sourceMappingURL=legal-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legal-index.js","sourceRoot":"","sources":["../../src/components/legal-index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EACL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAWrC,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAU,EACV,UAAU,MACS,EAAE;IACrB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CACL,4BACG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAC1B,UAAU,CACX,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,uBAAuB,oEAEhC,CACL,GACA,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CACL,4BACG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAClC,KAAC,QAAQ,cAAsB,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAA3C,QAAQ,CAAC,IAAI,CAA0C,CACvE,CAAC,GACD,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,CACL,aAAI,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,YAC3C,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3B,cAAwB,SAAS,EAAC,sBAAsB,aACtD,YAAG,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAG,QAAQ,CAAC,KAAK,GAAK,EACzD,QAAQ,CAAC,aAAa,IAAI,CACzB,gBAAM,SAAS,EAAC,sBAAsB,2BACzB,QAAQ,CAAC,aAAa,IAC5B,CACR,KANM,QAAQ,CAAC,IAAI,CAOjB,CACN,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
import type { Plan } from "../types.js";
|
|
3
3
|
export interface PlansTableProps {
|
|
4
|
+
/** Eligibility-scoped plan catalog, for example `/me.availablePlans`.
|
|
5
|
+
* When omitted, the public product catalog from `usePlans()` is used. */
|
|
6
|
+
availablePlans?: Plan[];
|
|
7
|
+
/** Current plan used to reduce `availablePlans` to upgrade-only choices.
|
|
8
|
+
* Omit to retain the ordinary public-catalog behavior. */
|
|
9
|
+
currentPlan?: Plan | null;
|
|
4
10
|
/** Override the featured ("Most Popular") plan; defaults to the product's
|
|
5
11
|
* configured featured plan. */
|
|
6
12
|
featuredPlanId?: string | null;
|
|
@@ -14,8 +20,14 @@ export interface PlansTableProps {
|
|
|
14
20
|
onSubscribe: () => void;
|
|
15
21
|
index: number;
|
|
16
22
|
}) => ReactNode;
|
|
23
|
+
/** Optional host-owned heading/chrome rendered only when rows exist. */
|
|
24
|
+
renderHeader?: (ctx: {
|
|
25
|
+
count: number;
|
|
26
|
+
}) => ReactNode;
|
|
27
|
+
/** Override the default no-plans message. Pass `null` to render nothing. */
|
|
28
|
+
emptyState?: ReactNode;
|
|
17
29
|
}
|
|
18
|
-
declare function PlansTableImpl({ featuredPlanId, className, renderRow, }?: PlansTableProps): import("react").JSX.Element;
|
|
30
|
+
declare function PlansTableImpl({ availablePlans, currentPlan, featuredPlanId, className, renderRow, renderHeader, emptyState, }?: PlansTableProps): import("react").JSX.Element;
|
|
19
31
|
/**
|
|
20
32
|
* Exported with its own error boundary: a render throw here shows a contained
|
|
21
33
|
* "couldn't be displayed" box instead of unmounting the host's page. Wrapped in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans-table.d.ts","sourceRoot":"","sources":["../../src/components/plans-table.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"plans-table.d.ts","sourceRoot":"","sources":["../../src/components/plans-table.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAaxC,MAAM,WAAW,eAAe;IAC9B;8EAC0E;IAC1E,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;IACxB;+DAC2D;IAC3D,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B;oCACgC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,IAAI,EACV,GAAG,EAAE;QACH,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,KACE,SAAS,CAAC;IACf,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IACrD,4EAA4E;IAC5E,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,iBAAS,cAAc,CAAC,EACtB,cAAc,EACd,WAAW,EACX,cAAc,EACd,SAAS,EACT,SAAS,EACT,YAAY,EACZ,UAAU,GACX,GAAE,eAAoB,+BAwGtB;AAoED;;;;;GAKG;AAGH,eAAO,MAAM,UAAU,uBAGtB,CAAC"}
|
|
@@ -4,12 +4,12 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
4
4
|
// plans and the featured-plan choice come from the resolved product; every
|
|
5
5
|
// prop is an optional override. Drop it anywhere under <FartherShoreRoot>.
|
|
6
6
|
import { Fragment, useMemo, useState } from "react";
|
|
7
|
-
import { describePlanKind, formatPlanPrice, formatMinimumSpend, synthesizePlanFeatures, } from "../format/catalog-display.js";
|
|
7
|
+
import { describePlanKind, filterUpgradePlans, formatPlanPrice, formatMinimumSpend, synthesizePlanFeatures, } from "../format/catalog-display.js";
|
|
8
8
|
import { useBootstrap, usePlans } from "../react/index.js";
|
|
9
9
|
import { cx, CheckIcon } from "./_internal.js";
|
|
10
10
|
import { makeSafe } from "./safe.js";
|
|
11
11
|
import { usePermissionAction, withGate } from "./permission-gate.js";
|
|
12
|
-
function PlansTableImpl({ featuredPlanId, className, renderRow, } = {}) {
|
|
12
|
+
function PlansTableImpl({ availablePlans, currentPlan, featuredPlanId, className, renderRow, renderHeader, emptyState, } = {}) {
|
|
13
13
|
const { data: allPlans, isLoading, error, subscribe } = usePlans();
|
|
14
14
|
const boot = useBootstrap();
|
|
15
15
|
// The free tier is a FLOOR, not an option. New accounts are auto-enrolled on
|
|
@@ -17,7 +17,15 @@ function PlansTableImpl({ featuredPlanId, className, renderRow, } = {}) {
|
|
|
17
17
|
// offers a choice that has already been made — and invites a subscriber to
|
|
18
18
|
// "select" the plan they are on. Filtered on the DECLARED kind: a $0
|
|
19
19
|
// `usage` plan is a real purchase decision and stays visible.
|
|
20
|
-
const
|
|
20
|
+
const sourcePlans = availablePlans ?? allPlans;
|
|
21
|
+
const plans = useMemo(() => {
|
|
22
|
+
if (!sourcePlans)
|
|
23
|
+
return undefined;
|
|
24
|
+
if (currentPlan !== undefined) {
|
|
25
|
+
return filterUpgradePlans(sourcePlans, currentPlan);
|
|
26
|
+
}
|
|
27
|
+
return sourcePlans.filter((plan) => plan.kind !== "free");
|
|
28
|
+
}, [currentPlan, sourcePlans]);
|
|
21
29
|
const [pendingId, setPendingId] = useState(null);
|
|
22
30
|
const [subError, setSubError] = useState(null);
|
|
23
31
|
// Self-managed default: the product's configured featured plan.
|
|
@@ -45,20 +53,22 @@ function PlansTableImpl({ featuredPlanId, className, renderRow, } = {}) {
|
|
|
45
53
|
setPendingId(null);
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
|
-
if (isLoading)
|
|
56
|
+
if (availablePlans === undefined && isLoading)
|
|
49
57
|
return _jsx("p", { className: "fs-muted fs-empty-note", children: "Loading plans\u2026" });
|
|
50
58
|
if (error)
|
|
51
59
|
return _jsx("p", { className: "fs-error fs-empty-note", children: error.message });
|
|
52
60
|
if (!plans || plans.length === 0) {
|
|
61
|
+
if (emptyState !== undefined)
|
|
62
|
+
return _jsx(_Fragment, { children: emptyState });
|
|
53
63
|
// Distinguish "nothing published yet" from "the only plan is the free tier
|
|
54
64
|
// you are already on" — the second is a healthy business with no upgrade,
|
|
55
65
|
// and reporting it as "no plans offered" reads like a broken catalog.
|
|
56
|
-
const onlyFreeTier = (
|
|
66
|
+
const onlyFreeTier = (sourcePlans?.length ?? 0) > 0;
|
|
57
67
|
return (_jsx("p", { className: "fs-muted fs-empty-note", children: onlyFreeTier
|
|
58
68
|
? "You're on the free plan. No paid plans are offered yet."
|
|
59
69
|
: "No plans are currently offered." }));
|
|
60
70
|
}
|
|
61
|
-
return (_jsxs(_Fragment, { children: [subError && _jsx("p", { className: "fs-error fs-inline-alert", children: subError }), _jsx("div", { className: cx("fs-plan-grid", className), children: plans.map((plan, i) => {
|
|
71
|
+
return (_jsxs(_Fragment, { children: [renderHeader?.({ count: plans.length }), subError && _jsx("p", { className: "fs-error fs-inline-alert", children: subError }), _jsx("div", { className: cx("fs-plan-grid", className), "data-count": Math.min(plans.length, 4), children: plans.map((plan, i) => {
|
|
62
72
|
const featured = featuredId
|
|
63
73
|
? plan.id === featuredId
|
|
64
74
|
: plans.length > 1 && i === 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans-table.js","sourceRoot":"","sources":["../../src/components/plans-table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAE3E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEpE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"plans-table.js","sourceRoot":"","sources":["../../src/components/plans-table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface FsSubscriberStatusProps {
|
|
2
|
+
/** Summary for compact headers, details for account cards, notices for
|
|
3
|
+
* scheduled transitions / pending cancellation / active promos. */
|
|
4
|
+
variant?: "summary" | "details" | "notices";
|
|
5
|
+
/** Appended to the component root. */
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
declare function FsSubscriberStatusImpl({ variant, className, }?: FsSubscriberStatusProps): import("react").JSX.Element | null;
|
|
9
|
+
export declare const FsSubscriberStatus: typeof FsSubscriberStatusImpl;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=subscriber-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriber-status.d.ts","sourceRoot":"","sources":["../../src/components/subscriber-status.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,uBAAuB;IACtC;wEACoE;IACpE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC5C,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,sBAAsB,CAAC,EAC9B,OAAmB,EACnB,SAAS,GACV,GAAE,uBAA4B,sCA8F9B;AAED,eAAO,MAAM,kBAAkB,+BAG9B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMe, usePinnedPlan } from "../react/index.js";
|
|
4
|
+
import { getSubscriberStatusPresentation } from "../format/subscriber-lifecycle.js";
|
|
5
|
+
import { cx } from "./_internal.js";
|
|
6
|
+
import { withGate } from "./permission-gate.js";
|
|
7
|
+
import { makeSafe } from "./safe.js";
|
|
8
|
+
function FsSubscriberStatusImpl({ variant = "summary", className, } = {}) {
|
|
9
|
+
const me = useMe();
|
|
10
|
+
const pinnedPlan = usePinnedPlan();
|
|
11
|
+
if (me.isLoading) {
|
|
12
|
+
return variant === "notices" ? null : (_jsx("span", { className: "fs-muted", children: "Loading subscription\u2026" }));
|
|
13
|
+
}
|
|
14
|
+
if (me.error) {
|
|
15
|
+
return variant === "notices" ? null : (_jsx("span", { className: "fs-error", children: me.error.message }));
|
|
16
|
+
}
|
|
17
|
+
const subscriber = me.data?.subscriber;
|
|
18
|
+
if (!subscriber)
|
|
19
|
+
return null;
|
|
20
|
+
const presentation = getSubscriberStatusPresentation(subscriber, pinnedPlan.plan?.name);
|
|
21
|
+
const statusTone = presentation.pendingCancellation
|
|
22
|
+
? "fs-tag--warn"
|
|
23
|
+
: presentation.statusLabel.toLowerCase().includes("active")
|
|
24
|
+
? "fs-tag--ok"
|
|
25
|
+
: presentation.statusLabel.toLowerCase().includes("trial")
|
|
26
|
+
? "fs-tag--info"
|
|
27
|
+
: "fs-tag--muted";
|
|
28
|
+
if (variant === "notices") {
|
|
29
|
+
if (!presentation.statusSubtext && !presentation.promo)
|
|
30
|
+
return null;
|
|
31
|
+
return (_jsxs("div", { className: cx("fs-subscriber-notices", className), children: [presentation.statusSubtext && (_jsxs("section", { className: "fs-subscriber-notices__transition", children: [_jsx("p", { className: "fs-subscriber-notices__title", children: presentation.statusLabel }), _jsx("p", { className: "fs-subscriber-notices__detail", children: presentation.statusSubtext })] })), presentation.promo && (_jsxs("section", { className: "fs-subscriber-notices__promo", children: [_jsx("p", { className: "fs-subscriber-notices__title", children: presentation.promo.title }), _jsx("p", { className: "fs-subscriber-notices__detail", children: presentation.promo.detail })] }))] }));
|
|
32
|
+
}
|
|
33
|
+
if (variant === "details") {
|
|
34
|
+
return (_jsxs("div", { className: cx("fs-subscriber-status", className), children: [_jsxs("div", { className: "fs-subscriber-status__field", children: [_jsx("span", { className: "fs-muted", children: "Plan" }), _jsx("strong", { children: presentation.planName })] }), _jsxs("div", { className: "fs-subscriber-status__field", children: [_jsx("span", { className: "fs-muted", children: "Status" }), _jsx("span", { className: cx("fs-tag", statusTone), children: presentation.statusLabel })] }), presentation.statusSubtext && (_jsx("p", { className: "fs-muted fs-subscriber-status__detail", children: presentation.statusSubtext }))] }));
|
|
35
|
+
}
|
|
36
|
+
return (_jsxs("div", { className: cx("fs-subscriber-status fs-subscriber-status--summary", className), children: [_jsxs("span", { className: "fs-subscriber-status__plan", children: [presentation.planName, " plan"] }), _jsx("span", { className: cx("fs-tag", statusTone), children: presentation.statusLabel })] }));
|
|
37
|
+
}
|
|
38
|
+
export const FsSubscriberStatus = makeSafe("Subscriber status", withGate(FsSubscriberStatusImpl, "subscriber_status"));
|
|
39
|
+
//# sourceMappingURL=subscriber-status.js.map
|