@owlmeans/web-panel 0.1.18-rc.60 → 0.1.18-rc.62
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 +4 -4
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/web-panel/SKILL.md +21 -12
- package/build/auth/exports.d.ts +2 -2
- package/build/auth/exports.d.ts.map +1 -1
- package/build/auth/exports.js +1 -1
- package/build/auth/exports.js.map +1 -1
- package/build/components/login/screen.d.ts.map +1 -1
- package/build/components/login/screen.js +5 -3
- package/build/components/login/screen.js.map +1 -1
- package/build/components/login/terms.d.ts +10 -0
- package/build/components/login/terms.d.ts.map +1 -1
- package/build/components/login/terms.js +14 -34
- package/build/components/login/terms.js.map +1 -1
- package/build/consent/index.d.ts +2 -1
- package/build/consent/index.d.ts.map +1 -1
- package/build/consent/index.js +2 -1
- package/build/consent/index.js.map +1 -1
- package/build/consent/language.d.ts +22 -0
- package/build/consent/language.d.ts.map +1 -0
- package/build/consent/language.js +49 -0
- package/build/consent/language.js.map +1 -0
- package/build/entrypoints.d.ts +4 -2
- package/build/entrypoints.d.ts.map +1 -1
- package/build/exports.d.ts +2 -1
- package/build/exports.d.ts.map +1 -1
- package/build/exports.js +1 -1
- package/build/exports.js.map +1 -1
- package/package.json +27 -27
- package/src/auth/exports.ts +2 -2
- package/src/components/login/screen.tsx +7 -3
- package/src/components/login/terms.tsx +24 -50
- package/src/consent/index.ts +3 -1
- package/src/consent/language.ts +53 -0
- package/src/exports.ts +2 -1
- package/tests/consent-language.spec.ts +82 -0
- package/tests/consent.spec.ts +15 -0
- package/tests/harness/lazy-screen.tsx +9 -0
- package/tests/harness/mount.tsx +65 -2
- package/tests/lazy.spec.ts +104 -0
- package/tests/login.spec.ts +49 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ but never started.
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
13
|
```sh
|
|
14
|
-
bun add @owlmeans/web-panel@^0.1.18-rc.
|
|
14
|
+
bun add @owlmeans/web-panel@^0.1.18-rc.62
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
Peer requirements (the consuming app provides these): `react`, `react-dom`,
|
|
@@ -351,8 +351,8 @@ The dialog's strings are the lib-tier `socket` namespace (`reload.title`, `reloa
|
|
|
351
351
|
| `SocketReloadDialog` | component | Blocking reload prompt for `'lost'` sockets |
|
|
352
352
|
| `LoginScreen`, `LocalizedLoginScreen` | component | Identity-provider choice screen; the localized one binds `translate` to the app's resources |
|
|
353
353
|
| `appendLoginScreen(ctx, setup?)`, `LoginScreenSetup` | function, type | Register the screen on the login service, with `Logo` and other `LoginScreenProps` |
|
|
354
|
-
| `LoginTerms`, `LoginCredit`, `LoginMethodIcon` | component | The screen's terms
|
|
355
|
-
| `LoginTermsProps`, `LoginCreditProps` | type | Their props |
|
|
354
|
+
| `LoginTerms`, `LoginPrivacyNotice`, `LoginCredit`, `LoginMethodIcon` | component | The screen's terms confirmation, its privacy-only disclosure (rendered alone once `termsDeferred` moves the checkbox to a post-login step — see `@owlmeans/client-auth/login`), the credit line and method icons |
|
|
355
|
+
| `LoginTermsProps`, `LoginPrivacyNoticeProps`, `LoginCreditProps` | type | Their props |
|
|
356
356
|
| `scalingToStyles(horizontal?, vertical?)` | function | `BlockScaling` to Tailwind width/height classes |
|
|
357
357
|
| `useBreakPoint()` | hook | The current Tailwind breakpoint name |
|
|
358
358
|
| `useMapBreakpoint(map, def?, breakpoint?)` | hook | The map entry for the current breakpoint; throws `SyntaxError` when nothing matches and no `def` is given |
|
|
@@ -496,7 +496,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
496
496
|
your project's skill store (`.agents/skills/`):
|
|
497
497
|
|
|
498
498
|
```sh
|
|
499
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
499
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.39
|
|
500
500
|
```
|
|
501
501
|
|
|
502
502
|
The embedded files are version-matched to this package release. Do not edit them
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/web-panel",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-09-
|
|
4
|
+
"version": "0.1.18-rc.62",
|
|
5
|
+
"generatedAt": "2026-09-25T15:32:39.588Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -8,7 +8,7 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/web-panel
|
|
9
9
|
|
|
10
10
|
**Layer:** Web (React)
|
|
11
|
-
**Install:** `"@owlmeans/web-panel": "^0.1.18-rc.
|
|
11
|
+
**Install:** `"@owlmeans/web-panel": "^0.1.18-rc.62"` in `dependencies`
|
|
12
12
|
|
|
13
13
|
## Key Exports
|
|
14
14
|
|
|
@@ -33,7 +33,7 @@ user-invocable: false
|
|
|
33
33
|
| `useBreakPoint()` | The current Tailwind breakpoint name, tracked on `resize` (`lg` when there is no `window`) |
|
|
34
34
|
| `useMapBreakpoint(map, def?, breakpoint?)` | The `map` entry for the current breakpoint (or for the `breakpoint` passed), falling back to `def`. It **throws a `SyntaxError`** when neither yields a value, so give it a `def` or cover every breakpoint |
|
|
35
35
|
| Re-exports from `@owlmeans/client-panel` | Cross-platform panel primitives, incl. `usePanelNav` and the `PanelNav*` types |
|
|
36
|
-
| Re-exports from `@owlmeans/client` / `@owlmeans/client-entrypoint` / `@owlmeans/route` | `bind`, `bindAll`, `bindScreen`, `handler`, `provideRequest`, `stab`, `route`, `croute`, `frontend`, `useNavigate`, `useEntrypoint`, `useValue` |
|
|
36
|
+
| Re-exports from `@owlmeans/client` / `@owlmeans/client-entrypoint` / `@owlmeans/route` | `bind`, `bindAll`, `bindScreen`, `handler`, `lazyHandler` / `lazyComponent` (+ `LazyHandler` / `LazyComponent` / `LazyComponentOptions` types — see the `client` skill), `provideRequest`, `stab`, `route`, `croute`, `frontend`, `useNavigate`, `useEntrypoint`, `useValue` |
|
|
37
37
|
| Re-exports from the surrounding layers | `config`, `service`, `addWebService`, `AppType` / `HOME` / `ROOT` / `BASE` / `GUEST`, `DISPATCHER`, `CAUTHEN_FLOW_ENTER`, `DAUTH_GUARD`, `bindExternalAuthentication`, `Dispatcher`, `appendWebAuthService`, `flow` / `configureFlows` / `useFlow` / `FLOW_PARAM` / `SERVICE_PARAM`, `useI18n*` / `useLanguage` / `composePrefix`, `addI18nApp` / `addI18nLib` / `SUPPORTED_LNGS` |
|
|
38
38
|
|
|
39
39
|
## Subpath Exports
|
|
@@ -421,20 +421,28 @@ import { Form, TextInput, SubmitButton, Button } from '@owlmeans/web-panel'
|
|
|
421
421
|
`contained` and the rest `outlined`, calling `onSelect(option)`. `name` prefixes each option's
|
|
422
422
|
label key as `<name>.<option>`.
|
|
423
423
|
|
|
424
|
-
### The terms confirmation — `LoginTerms`
|
|
424
|
+
### The terms confirmation — `LoginTerms`, `LoginPrivacyNotice`
|
|
425
425
|
|
|
426
426
|
`components/login/terms.tsx` renders `LoginTermsModel` (`@owlmeans/client-panel/auth`) via
|
|
427
|
-
`termsSentence` (`@owlmeans/client-auth/login`) rather than re-deriving
|
|
428
|
-
**`[data-login-terms]` marks exactly one checkbox
|
|
429
|
-
|
|
427
|
+
`termsSentence` + `termsLabelResolver` (`@owlmeans/client-auth/login`) rather than re-deriving
|
|
428
|
+
link/label pairs itself. **`[data-login-terms]` marks exactly one checkbox — or NONE, once
|
|
429
|
+
`model.terms.deferred` is true** (`LoginScreen` renders `LoginTerms` when not deferred,
|
|
430
|
+
`LoginPrivacyNotice` when it is): an e2e suite elsewhere in the platform treats the checkbox as a
|
|
431
|
+
strict, at-most-one-match locator, so a change here must never add a second one, whatever
|
|
430
432
|
billing/product/custom documents a configuration adds. `[data-login-privacy]` is a SIBLING
|
|
431
433
|
paragraph of the checkbox's `<label>`, never nested inside it — a privacy disclosure is not
|
|
432
|
-
something the checkbox consents to
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
434
|
+
something the checkbox consents to — and it is exported ON ITS OWN as `LoginPrivacyNotice`: it
|
|
435
|
+
still renders while deferred, since the disclosure was never the checkbox's to remove. A linked
|
|
436
|
+
document/notice fragment carries `data-login-document="<key>"`. `[data-login-revised]` renders only
|
|
437
|
+
when NOT deferred and the resolved terms carry a `revisedAt` (i.e. the configuration set
|
|
438
|
+
`showRevision: true` and at least one document has its own revision date) — deferred, that date
|
|
439
|
+
belongs to the document the checkbox agreed to, and there is no checkbox on this screen to attach it
|
|
440
|
+
to. `LoginTerms`/`LoginPrivacyNotice` take `locale?: string` — from `LoginScreen`'s own `locale`
|
|
441
|
+
prop, never read from context directly — for `Intl.ListFormat` and a custom document's locale-keyed
|
|
442
|
+
`labelMap`. Method buttons carry `aria-disabled={model.blocked || undefined}`, never a literal
|
|
443
|
+
`"false"` — a deferred screen (which never sets `blocked`) then renders identically to an unblocked
|
|
444
|
+
ordinary one, with no special case. Pinned by `tests/login.spec.ts` → the "with billing, product and
|
|
445
|
+
custom documents configured" and "the Terms confirmation deferred to a step" blocks.
|
|
438
446
|
|
|
439
447
|
## Subpath: `./consent`
|
|
440
448
|
|
|
@@ -491,6 +499,7 @@ menu has already mounted) and because React 18 StrictMode double-invokes mount/c
|
|
|
491
499
|
| Job | Import from `@owlmeans/web-panel/consent` | Where it goes |
|
|
492
500
|
|---|---|---|
|
|
493
501
|
| The consent dialog (and its floating re-open button) | `PanelCookieConsent` | Beside the router — a `PanelApp` child — once |
|
|
502
|
+
| Remember the language only while the visitor granted `functional` cookies | `installConsentLanguage()` | Once, in the bootstrap, BEFORE `prepareI18n` — wires `client-i18n`'s persistence guard, and applies a language that arrived with a link from another OwlMeans domain once the grant is saved |
|
|
494
503
|
| The "Cookie settings" control in a footer or menu | `PanelConsentMenuWidget` (`label`, `className`, `onSelect?` — defaults to `openConsent('reopen')`) | Inside the host's own footer/menu |
|
|
495
504
|
| Hiding the floating button while that control is reachable | `useConsentMenuPresence()` | Called by the always-mounted component that renders the control |
|
|
496
505
|
| Registering the presence service | `appendConsentWidgetService(context)` | The app's `context.ts` |
|
package/build/auth/exports.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { handler, useEntrypoint, useValue, useNavigate } from '@owlmeans/client';
|
|
2
|
-
export type { Navigator } from '@owlmeans/client';
|
|
1
|
+
export { handler, lazyHandler, lazyComponent, useEntrypoint, useValue, useNavigate } from '@owlmeans/client';
|
|
2
|
+
export type { Navigator, LazyComponent, LazyComponentOptions, LazyHandler } from '@owlmeans/client';
|
|
3
3
|
export { config } from '@owlmeans/client-context';
|
|
4
4
|
export { service } from '@owlmeans/config';
|
|
5
5
|
export { EntrypointOutcome } from '@owlmeans/entrypoint';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/auth/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/auth/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC5G,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAC7F,YAAY,EAAE,gBAAgB,IAAI,MAAM,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACvG,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC9D,YAAY,EAAE,oBAAoB,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEpE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC/D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
|
package/build/auth/exports.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { handler, useEntrypoint, useValue, useNavigate } from '@owlmeans/client';
|
|
1
|
+
export { handler, lazyHandler, lazyComponent, useEntrypoint, useValue, useNavigate } from '@owlmeans/client';
|
|
2
2
|
export { config } from '@owlmeans/client-context';
|
|
3
3
|
export { service } from '@owlmeans/config';
|
|
4
4
|
export { EntrypointOutcome } from '@owlmeans/entrypoint';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/auth/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/auth/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE5G,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAE7F,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEpE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAG/D,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEnE,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../../src/components/login/screen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAQ/B,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAWhF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../../src/components/login/screen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAQ/B,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAWhF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAgG5C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,gBAAgB,CASrD,CAAA"}
|
|
@@ -8,7 +8,7 @@ import { useI18nLib, useLanguage } from '@owlmeans/client-i18n';
|
|
|
8
8
|
import { useLoginMethods } from '@owlmeans/client-panel/auth';
|
|
9
9
|
import { loginAttemptError } from '@owlmeans/client-auth/login';
|
|
10
10
|
import { LoginMethodIcon } from './icons.js';
|
|
11
|
-
import { LoginTerms } from './terms.js';
|
|
11
|
+
import { LoginPrivacyNotice, LoginTerms } from './terms.js';
|
|
12
12
|
import { LoginCredit } from './credit.js';
|
|
13
13
|
const VARIANT = {
|
|
14
14
|
primary: 'default',
|
|
@@ -50,13 +50,15 @@ export const LoginScreen = props => {
|
|
|
50
50
|
return _jsx("div", { "data-login-screen": true, style: { minHeight: '100dvh', ...props.style }, className: cn('flex w-full items-center justify-center p-4', props.className), children: _jsxs(Card, { className: cn('w-full max-w-sm', props.containerClassName), children: [_jsxs(CardHeader, { className: "items-center gap-2 text-center", children: [Logo != null && _jsx("div", { className: "flex justify-center pb-2", children: isValidElement(Logo) ? Logo : typeof Logo === 'function'
|
|
51
51
|
? _jsx(Logo, { className: "h-10 w-auto" }) : Logo }), _jsx(CardTitle, { className: "text-xl", children: props.title ?? t('login.title', 'Sign in') }), _jsx(CardDescription, { children: props.subtitle ?? t('login.subtitle', 'Choose how you would like to continue.') })] }), _jsxs(CardContent, { className: "flex flex-col gap-4", children: [model.methods.length < 1
|
|
52
52
|
? _jsx("p", { role: "status", className: "text-sm text-muted-foreground text-center", children: t('login.empty', 'No sign-in method is configured for this application.') })
|
|
53
|
-
: _jsx("div", { className: "flex flex-col gap-2", children: model.methods.map((method) => _jsxs(Button, { type: "button", "data-login-method": method.id, variant: VARIANT[method.emphasis ?? 'secondary'] ?? 'outline', "aria-disabled": model.blocked, "data-blocked": model.blocked ? 'true' : undefined,
|
|
53
|
+
: _jsx("div", { className: "flex flex-col gap-2", children: model.methods.map((method) => _jsxs(Button, { type: "button", "data-login-method": method.id, variant: VARIANT[method.emphasis ?? 'secondary'] ?? 'outline', "aria-disabled": model.blocked || undefined, "data-blocked": model.blocked ? 'true' : undefined,
|
|
54
54
|
// `cursor-pointer` explicitly: the package's private shadcn button stays compatible
|
|
55
55
|
// with the older primitive style too. Stating it here keeps the sign-in control
|
|
56
56
|
// visibly actionable independently of a consumer's shadcn setup.
|
|
57
57
|
className: cn('w-full justify-center gap-2 cursor-pointer', model.blocked && 'opacity-60'), autoFocus: method.id === model.primary?.id, onClick: () => model.select(method), children: [model.busy === method.id
|
|
58
58
|
? _jsx(Loader2, { className: "size-4 animate-spin" })
|
|
59
|
-
: _jsx(LoginMethodIcon, { name: method.icon, className: "size-4" }), method.label ?? t(`login.method.${method.i18nKey ?? method.id}`, method.id)] }, method.id)) }), model.terms.required &&
|
|
59
|
+
: _jsx(LoginMethodIcon, { name: method.icon, className: "size-4" }), method.label ?? t(`login.method.${method.i18nKey ?? method.id}`, method.id)] }, method.id)) }), model.terms.required && (model.terms.deferred
|
|
60
|
+
? _jsx(LoginPrivacyNotice, { model: model.terms, translate: t, locale: props.locale })
|
|
61
|
+
: _jsx(LoginTerms, { model: model.terms, translate: t, locale: props.locale })), (model.error ?? attemptError) != null
|
|
60
62
|
&& _jsx("p", { role: "alert", "data-login-error": true, className: "text-sm text-destructive text-center", children: model.error ?? t(attemptError, 'Sign-in did not complete. Please try again.') })] }), _jsx("div", { className: "px-6", children: props.footer ?? _jsx(LoginCredit, { model: model.credit, translate: t }) })] }) });
|
|
61
63
|
};
|
|
62
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/components/login/screen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACzG,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/components/login/screen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACzG,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,OAAO,GAAmD;IAC9D,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,MAAM;CACb,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB,KAAK,CAAC,EAAE;IACvD,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,IAAY,EAAE,YAAoB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;IACnF,MAAM,KAAK,GAAG,eAAe,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEjF,uDAAuD;IACvD,EAAE;IACF,4FAA4F;IAC5F,gGAAgG;IAChG,+FAA+F;IAC/F,+FAA+F;IAC/F,4FAA4F;IAC5F,gGAAgG;IAChG,4FAA4F;IAC5F,6FAA6F;IAC7F,EAAE;IACF,0EAA0E;IAC1E,OAAO,yCAEL,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAC9C,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,KAAK,CAAC,SAAS,CAAC,YAE7E,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,kBAAkB,CAAC,aAC9D,MAAC,UAAU,IAAC,SAAS,EAAC,gCAAgC,aACnD,IAAI,IAAI,IAAI,IAAI,cAAK,SAAS,EAAC,0BAA0B,YACvD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,UAAU;gCACvD,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,GACvC,EACN,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,YAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,GAAa,EACvF,KAAC,eAAe,cACb,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,gBAAgB,EAAE,wCAAwC,CAAC,GAChE,IACP,EAEb,MAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,aACzC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;4BACvB,CAAC,CAAC,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,2CAA2C,YACrE,CAAC,CAAC,aAAa,EAAE,uDAAuD,CAAC,GACxE;4BACJ,CAAC,CAAC,cAAK,SAAS,EAAC,qBAAqB,YACnC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAmB,EAAE,EAAE,CAAC,MAAC,MAAM,IAEjD,IAAI,EAAC,QAAQ,uBACM,MAAM,CAAC,EAAE,EAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,SAAS,mBAK9C,KAAK,CAAC,OAAO,IAAI,SAAS,kBAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oCAChD,oFAAoF;oCACpF,gFAAgF;oCAChF,iEAAiE;oCACjE,SAAS,EAAE,EAAE,CACX,4CAA4C,EAC5C,KAAK,CAAC,OAAO,IAAI,YAAY,CAC9B,EACD,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAElC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;4CACvB,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,qBAAqB,GAAG;4CAC7C,CAAC,CAAC,KAAC,eAAe,IAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAC,QAAQ,GAAG,EAC5D,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,gBAAgB,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,KAvBvE,MAAM,CAAC,EAAE,CAwBP,CAAC,GACN,EAIP,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ;4BAC5C,CAAC,CAAC,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI;4BAChF,CAAC,CAAC,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,CAAC,EAO1E,CAAC,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,IAAI;+BACjC,YAAG,IAAI,EAAC,OAAO,4BAAkB,SAAS,EAAC,sCAAsC,YACjF,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,YAAsB,EAAE,6CAA6C,CAAC,GACtF,IACM,EAEd,cAAK,SAAS,EAAC,MAAM,YAClB,KAAK,CAAC,MAAM,IAAI,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAAI,GAC/D,IACD,GACH,CAAA;AACR,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAyB,KAAK,CAAC,EAAE;IAChE,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,CAAA;IAE3B,OAAO,KAAC,WAAW,OACb,KAAK,EACT,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,EAC/E,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,GAC3B,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -7,6 +7,16 @@ export interface LoginTermsProps {
|
|
|
7
7
|
locale?: string;
|
|
8
8
|
className?: string;
|
|
9
9
|
}
|
|
10
|
+
export type LoginPrivacyNoticeProps = LoginTermsProps;
|
|
11
|
+
/**
|
|
12
|
+
* The privacy disclosure alone — `notices` (privacy, plus cookies per its own rule), never
|
|
13
|
+
* consented to and never nested inside a checkbox's `<label>`.
|
|
14
|
+
*
|
|
15
|
+
* Split out of {@link LoginTerms} so a sign-in screen whose Terms confirmation has moved to a
|
|
16
|
+
* post-login step (`termsDeferred`, `@owlmeans/client-auth/login`) can still show this line on its
|
|
17
|
+
* own — the disclosure does not move just because the confirmation did.
|
|
18
|
+
*/
|
|
19
|
+
export declare const LoginPrivacyNotice: FC<LoginPrivacyNoticeProps>;
|
|
10
20
|
/**
|
|
11
21
|
* The sign-in screen's terms confirmation: one consented checkbox for `documents` (terms, plus
|
|
12
22
|
* billing/product/custom when configured), and a SEPARATE, non-consented disclosure line for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terms.d.ts","sourceRoot":"","sources":["../../../src/components/login/terms.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAIlE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,eAAe,CAAA;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;IACxD,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"terms.d.ts","sourceRoot":"","sources":["../../../src/components/login/terms.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAIlE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,eAAe,CAAA;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;IACxD,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,uBAAuB,GAAG,eAAe,CAAA;AASrD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAS1D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA8C1C,CAAA"}
|
|
@@ -1,41 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from '../../@/lib/utils.js';
|
|
3
|
-
import { termsSentence } from '@owlmeans/client-auth/login';
|
|
3
|
+
import { termsLabelResolver, termsSentence } from '@owlmeans/client-auth/login';
|
|
4
|
+
const renderParts = (parts) => parts.map((part, index) => part.href != null
|
|
5
|
+
? _jsx("a", { href: part.href, target: "_blank", rel: "noreferrer noopener", "data-login-document": part.documentKey, className: "underline underline-offset-2 hover:text-foreground", children: part.text }, index)
|
|
6
|
+
: _jsx("span", { children: part.text }, index));
|
|
4
7
|
/**
|
|
5
|
-
*
|
|
8
|
+
* The privacy disclosure alone — `notices` (privacy, plus cookies per its own rule), never
|
|
9
|
+
* consented to and never nested inside a checkbox's `<label>`.
|
|
6
10
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
11
|
+
* Split out of {@link LoginTerms} so a sign-in screen whose Terms confirmation has moved to a
|
|
12
|
+
* post-login step (`termsDeferred`, `@owlmeans/client-auth/login`) can still show this line on its
|
|
13
|
+
* own — the disclosure does not move just because the confirmation did.
|
|
9
14
|
*/
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
privacy: '
|
|
13
|
-
cookies: 'Cookie Policy',
|
|
14
|
-
billing: 'Billing Terms',
|
|
15
|
-
product: '{{product}} Product Terms',
|
|
15
|
+
export const LoginPrivacyNotice = ({ model, translate, locale, className }) => {
|
|
16
|
+
const resolveLabel = termsLabelResolver(translate, locale);
|
|
17
|
+
return _jsx("p", { "data-login-privacy": true, className: cn('text-xs text-muted-foreground', className), children: renderParts(termsSentence(translate('login.terms.notice', 'How we handle your personal data: {{notices}}.'), model, locale, resolveLabel)) });
|
|
16
18
|
};
|
|
17
|
-
/**
|
|
18
|
-
* A document's own label: a caller's literal `label`, else its `labelMap` for the current locale,
|
|
19
|
-
* else its `i18nKey` translated — each with `params` (e.g. `{ product: 'Acme' }`) interpolated
|
|
20
|
-
* afterwards, since the `translate` contract this whole package shares is a plain
|
|
21
|
-
* `(key, defaultValue) => string` with no interpolation option of its own.
|
|
22
|
-
*/
|
|
23
|
-
const resolveLabelFor = (translate, locale) => (doc) => {
|
|
24
|
-
const fromMap = doc.labelMap != null
|
|
25
|
-
? (locale != null ? doc.labelMap[locale] : undefined) ?? Object.values(doc.labelMap)[0]
|
|
26
|
-
: undefined;
|
|
27
|
-
let label = doc.label ?? fromMap
|
|
28
|
-
?? (doc.i18nKey != null ? translate(doc.i18nKey, DEFAULT_LABEL[doc.key] ?? doc.key) : doc.key);
|
|
29
|
-
if (doc.params != null) {
|
|
30
|
-
for (const [key, value] of Object.entries(doc.params)) {
|
|
31
|
-
label = label.split(`{{${key}}}`).join(value);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return label;
|
|
35
|
-
};
|
|
36
|
-
const renderParts = (parts) => parts.map((part, index) => part.href != null
|
|
37
|
-
? _jsx("a", { href: part.href, target: "_blank", rel: "noreferrer noopener", "data-login-document": part.documentKey, className: "underline underline-offset-2 hover:text-foreground", children: part.text }, index)
|
|
38
|
-
: _jsx("span", { children: part.text }, index));
|
|
39
19
|
/**
|
|
40
20
|
* The sign-in screen's terms confirmation: one consented checkbox for `documents` (terms, plus
|
|
41
21
|
* billing/product/custom when configured), and a SEPARATE, non-consented disclosure line for
|
|
@@ -43,10 +23,10 @@ const renderParts = (parts) => parts.map((part, index) => part.href != null
|
|
|
43
23
|
* because nothing is being agreed to there.
|
|
44
24
|
*/
|
|
45
25
|
export const LoginTerms = ({ model, translate, locale, className }) => {
|
|
46
|
-
const resolveLabel =
|
|
26
|
+
const resolveLabel = termsLabelResolver(translate, locale);
|
|
47
27
|
// Centred, like every other row in the card. The checkbox stays at the start of the sentence
|
|
48
28
|
// rather than above it, so `justify-center` centres the pair and `text-center` centres the
|
|
49
29
|
// wrapped lines within it.
|
|
50
|
-
return _jsxs("div", { className: cn('flex flex-col items-center gap-1.5 text-center', className), children: [_jsxs("label", { className: "flex items-start justify-center gap-2 text-sm text-muted-foreground cursor-pointer", children: [_jsx("input", { type: "checkbox", "data-login-terms": true, className: "mt-0.5 size-4 shrink-0 accent-primary", checked: model.accepted, "aria-invalid": model.attempted && !model.accepted, onChange: event => model.accept(event.target.checked) }), _jsx("span", { children: renderParts(termsSentence(translate('login.terms.accept', 'I have read and agree to the {{documents}}.'), model, locale, resolveLabel)) })] }), model.revisedAt != null && _jsx("p", { "data-login-revised": true, className: "text-xs text-muted-foreground", children: translate('login.terms.revised', 'Last updated: {{date}}').split('{{date}}').join(model.revisedAt) }), _jsx(
|
|
30
|
+
return _jsxs("div", { className: cn('flex flex-col items-center gap-1.5 text-center', className), children: [_jsxs("label", { className: "flex items-start justify-center gap-2 text-sm text-muted-foreground cursor-pointer", children: [_jsx("input", { type: "checkbox", "data-login-terms": true, className: "mt-0.5 size-4 shrink-0 accent-primary", checked: model.accepted, "aria-invalid": model.attempted && !model.accepted, onChange: event => model.accept(event.target.checked) }), _jsx("span", { children: renderParts(termsSentence(translate('login.terms.accept', 'I have read and agree to the {{documents}}.'), model, locale, resolveLabel)) })] }), model.revisedAt != null && _jsx("p", { "data-login-revised": true, className: "text-xs text-muted-foreground", children: translate('login.terms.revised', 'Last updated: {{date}}').split('{{date}}').join(model.revisedAt) }), _jsx(LoginPrivacyNotice, { model: model, translate: translate, locale: locale }), model.attempted && !model.accepted && _jsx("p", { role: "alert", className: "text-sm text-destructive", children: renderParts(termsSentence(translate('login.terms.required', 'Please confirm the {{documents}} to continue.'), model, locale, resolveLabel)) })] });
|
|
51
31
|
};
|
|
52
32
|
//# sourceMappingURL=terms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terms.js","sourceRoot":"","sources":["../../../src/components/login/terms.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"terms.js","sourceRoot":"","sources":["../../../src/components/login/terms.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AAEzC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAa/E,MAAM,WAAW,GAAG,CAAC,KAA0B,EAAa,EAAE,CAC5D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI;IAC1C,CAAC,CAAC,YAAe,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,yBACpD,IAAI,CAAC,WAAW,EACrC,SAAS,EAAC,oDAAoD,YAAE,IAAI,CAAC,IAAI,IAFjE,KAAK,CAEiE;IAChF,CAAC,CAAC,yBAAmB,IAAI,CAAC,IAAI,IAAjB,KAAK,CAAoB,CAAC,CAAA;AAE3C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;IACzG,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE1D,OAAO,wCAAsB,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,YACnF,WAAW,CAAC,aAAa,CACxB,SAAS,CAAC,oBAAoB,EAAE,gDAAgD,CAAC,EACjF,KAAK,EAAE,MAAM,EAAE,YAAY,CAC5B,CAAC,GACA,CAAA;AACN,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;IACzF,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE1D,6FAA6F;IAC7F,2FAA2F;IAC3F,2BAA2B;IAC3B,OAAO,eAAK,SAAS,EAAE,EAAE,CAAC,gDAAgD,EAAE,SAAS,CAAC,aAKpF,iBAAO,SAAS,EAAC,oFAAoF,aAOnG,gBACE,IAAI,EAAC,UAAU,4BACf,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE,KAAK,CAAC,QAAQ,kBACT,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,EAChD,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GACrD,EACF,yBACG,WAAW,CAAC,aAAa,CACxB,SAAS,CAAC,oBAAoB,EAAE,6CAA6C,CAAC,EAC9E,KAAK,EAAE,MAAM,EAAE,YAAY,CAC5B,CAAC,GACG,IACD,EAEP,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,wCAAsB,SAAS,EAAC,+BAA+B,YACxF,SAAS,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GACjG,EAEJ,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAI,EAEzE,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAG,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,YACxF,WAAW,CAAC,aAAa,CACxB,SAAS,CAAC,sBAAsB,EAAE,+CAA+C,CAAC,EAClF,KAAK,EAAE,MAAM,EAAE,YAAY,CAC5B,CAAC,GACA,IACA,CAAA;AACR,CAAC,CAAA"}
|
package/build/consent/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from './component.js';
|
|
2
2
|
export * from './menu-widget.js';
|
|
3
3
|
export * from './presence.js';
|
|
4
|
+
export { installConsentLanguage } from './language.js';
|
|
4
5
|
export { createConsentWidgetService, appendConsentWidgetService, CONSENT_WIDGET_STATE } from './service.js';
|
|
5
6
|
export { CONSENT_WIDGET_SERVICE } from './consts.js';
|
|
6
7
|
export type { ConsentWidgetPresenceRecord, ConsentWidgetService, ConsentWidgetServiceAppend } from './types.js';
|
|
7
|
-
export { useConsent, useConsentCategory, consentStore, openConsent, isConsented, readConsent, writeConsent, clearConsent, DEFAULT_CONSENT_CATEGORIES, CONSENT_KEY, CONSENT_ESSENTIAL, CONSENT_ANALYTICS, CONSENT_MARKETING, consentBootstrapScript, } from '@owlmeans/web-consent';
|
|
8
|
+
export { useConsent, useConsentCategory, consentStore, openConsent, isConsented, readConsent, writeConsent, clearConsent, DEFAULT_CONSENT_CATEGORIES, CONSENT_KEY, CONSENT_ESSENTIAL, CONSENT_FUNCTIONAL, CONSENT_ANALYTICS, CONSENT_MARKETING, CONSENT_EVENT, CONSENT_LANGUAGE_EVENT, functionalGranted, consentBootstrapScript, } from '@owlmeans/web-consent';
|
|
8
9
|
export type { ConsentCategory, ConsentMenuWidgetProps, ConsentOptions, ConsentRecord, ConsentSignal, ConsentState, CookieConsentProps, CookiePolicyProps, } from '@owlmeans/web-consent';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC3G,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,YAAY,EACV,2BAA2B,EAAE,oBAAoB,EAAE,0BAA0B,EAC9E,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EACtE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,0BAA0B,EACnE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC3G,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,YAAY,EACV,2BAA2B,EAAE,oBAAoB,EAAE,0BAA0B,EAC9E,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EACtE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,0BAA0B,EACnE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EACxF,aAAa,EAAE,sBAAsB,EAAE,iBAAiB,EACxD,sBAAsB,GACvB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,eAAe,EAAE,sBAAsB,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EACrF,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,GACpD,MAAM,uBAAuB,CAAA"}
|
package/build/consent/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export * from './component.js';
|
|
2
2
|
export * from './menu-widget.js';
|
|
3
3
|
export * from './presence.js';
|
|
4
|
+
export { installConsentLanguage } from './language.js';
|
|
4
5
|
export { createConsentWidgetService, appendConsentWidgetService, CONSENT_WIDGET_STATE } from './service.js';
|
|
5
6
|
export { CONSENT_WIDGET_SERVICE } from './consts.js';
|
|
6
|
-
export { useConsent, useConsentCategory, consentStore, openConsent, isConsented, readConsent, writeConsent, clearConsent, DEFAULT_CONSENT_CATEGORIES, CONSENT_KEY, CONSENT_ESSENTIAL, CONSENT_ANALYTICS, CONSENT_MARKETING, consentBootstrapScript, } from '@owlmeans/web-consent';
|
|
7
|
+
export { useConsent, useConsentCategory, consentStore, openConsent, isConsented, readConsent, writeConsent, clearConsent, DEFAULT_CONSENT_CATEGORIES, CONSENT_KEY, CONSENT_ESSENTIAL, CONSENT_FUNCTIONAL, CONSENT_ANALYTICS, CONSENT_MARKETING, CONSENT_EVENT, CONSENT_LANGUAGE_EVENT, functionalGranted, consentBootstrapScript, } from '@owlmeans/web-consent';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC3G,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIpD,OAAO,EACL,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EACtE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,0BAA0B,EACnE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC3G,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIpD,OAAO,EACL,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EACtE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,0BAA0B,EACnE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EACxF,aAAa,EAAE,sBAAsB,EAAE,iBAAiB,EACxD,sBAAsB,GACvB,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ConsentOptions } from '@owlmeans/web-consent';
|
|
2
|
+
/**
|
|
3
|
+
* Bind the application's language to the visitor's cookie choice: a language is remembered on their
|
|
4
|
+
* device only while they have granted `functional` storage.
|
|
5
|
+
*
|
|
6
|
+
* It does three things, and the order they take effect in is the point:
|
|
7
|
+
*
|
|
8
|
+
* 1. Installs the persistence guard in `@owlmeans/client-i18n` — so the language switcher (which
|
|
9
|
+
* calls `setLanguage`) stops writing `owlmeans-lng` until functional is granted, and a stored
|
|
10
|
+
* language counts as absent while it is not. **Call it BEFORE `prepareI18n`**: the initial
|
|
11
|
+
* language is resolved from storage right there.
|
|
12
|
+
* 2. On every consent change (`CONSENT_EVENT`) writes the choice the visitor made while storage was
|
|
13
|
+
* refused, if it is allowed now — a person who picked a language, then answered the dialog with
|
|
14
|
+
* "accept all", keeps it.
|
|
15
|
+
* 3. On `CONSENT_LANGUAGE_EVENT` — a language that arrived with a link and was waiting for the grant —
|
|
16
|
+
* switches to it now, unless the person has already picked one in this page's life: what they
|
|
17
|
+
* chose outranks what a link carried, and that choice is re-written over the store's own write.
|
|
18
|
+
*
|
|
19
|
+
* Returns a function that undoes all three. Safe on the server (only the guard is installed).
|
|
20
|
+
*/
|
|
21
|
+
export declare const installConsentLanguage: (opts?: ConsentOptions) => (() => void);
|
|
22
|
+
//# sourceMappingURL=language.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/consent/language.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,sBAAsB,UAAW,cAAc,KAAG,CAAC,MAAM,IAAI,CA6BzE,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { getExplicitLanguage, persistLanguage, setLanguage, setLanguagePersistence } from '@owlmeans/client-i18n';
|
|
2
|
+
import { CONSENT_EVENT, CONSENT_LANGUAGE_EVENT, functionalGranted } from '@owlmeans/web-consent';
|
|
3
|
+
/**
|
|
4
|
+
* Bind the application's language to the visitor's cookie choice: a language is remembered on their
|
|
5
|
+
* device only while they have granted `functional` storage.
|
|
6
|
+
*
|
|
7
|
+
* It does three things, and the order they take effect in is the point:
|
|
8
|
+
*
|
|
9
|
+
* 1. Installs the persistence guard in `@owlmeans/client-i18n` — so the language switcher (which
|
|
10
|
+
* calls `setLanguage`) stops writing `owlmeans-lng` until functional is granted, and a stored
|
|
11
|
+
* language counts as absent while it is not. **Call it BEFORE `prepareI18n`**: the initial
|
|
12
|
+
* language is resolved from storage right there.
|
|
13
|
+
* 2. On every consent change (`CONSENT_EVENT`) writes the choice the visitor made while storage was
|
|
14
|
+
* refused, if it is allowed now — a person who picked a language, then answered the dialog with
|
|
15
|
+
* "accept all", keeps it.
|
|
16
|
+
* 3. On `CONSENT_LANGUAGE_EVENT` — a language that arrived with a link and was waiting for the grant —
|
|
17
|
+
* switches to it now, unless the person has already picked one in this page's life: what they
|
|
18
|
+
* chose outranks what a link carried, and that choice is re-written over the store's own write.
|
|
19
|
+
*
|
|
20
|
+
* Returns a function that undoes all three. Safe on the server (only the guard is installed).
|
|
21
|
+
*/
|
|
22
|
+
export const installConsentLanguage = (opts) => {
|
|
23
|
+
setLanguagePersistence(() => functionalGranted(opts));
|
|
24
|
+
if (typeof window === 'undefined') {
|
|
25
|
+
return () => setLanguagePersistence(null);
|
|
26
|
+
}
|
|
27
|
+
const onConsent = () => {
|
|
28
|
+
persistLanguage();
|
|
29
|
+
};
|
|
30
|
+
const onLanguage = (event) => {
|
|
31
|
+
const carried = event.detail?.language;
|
|
32
|
+
const chosen = getExplicitLanguage();
|
|
33
|
+
const language = chosen ?? carried;
|
|
34
|
+
if (typeof language !== 'string' || language === '') {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
setLanguage(language).catch((error) => {
|
|
38
|
+
console.error('[i18n] could not apply the language that was waiting for consent', error);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
window.addEventListener(CONSENT_EVENT, onConsent);
|
|
42
|
+
window.addEventListener(CONSENT_LANGUAGE_EVENT, onLanguage);
|
|
43
|
+
return () => {
|
|
44
|
+
window.removeEventListener(CONSENT_EVENT, onConsent);
|
|
45
|
+
window.removeEventListener(CONSENT_LANGUAGE_EVENT, onLanguage);
|
|
46
|
+
setLanguagePersistence(null);
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/consent/language.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACjH,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGhG;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAqB,EAAgB,EAAE;IAC5E,sBAAsB,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;IAErD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,eAAe,EAAE,CAAA;IACnB,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,CAAC,KAAY,EAAQ,EAAE;QACxC,MAAM,OAAO,GAAI,KAA4C,CAAC,MAAM,EAAE,QAAQ,CAAA;QAC9E,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAA;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAA;QAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACpD,OAAM;QACR,CAAC;QACD,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC7C,OAAO,CAAC,KAAK,CAAC,kEAAkE,EAAE,KAAK,CAAC,CAAA;QAC1F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IACjD,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAA;IAE3D,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QACpD,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAA;QAC9D,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC,CAAA;AACH,CAAC,CAAA"}
|
package/build/entrypoints.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export declare const entrypoints: (import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<
|
|
1
|
+
export declare const entrypoints: (import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<import("@owlmeans/entrypoint").EntrypointProtocol<import("@owlmeans/entrypoint").OpenRequest, import("@owlmeans/entrypoint").OpenValue>> | import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<import("@owlmeans/entrypoint").EntrypointProtocol<{
|
|
2
2
|
query: import("@owlmeans/auth").AuthToken;
|
|
3
3
|
}, undefined>> | import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<import("@owlmeans/entrypoint").EntrypointProtocol<{
|
|
4
4
|
query: import("@owlmeans/auth-common").SurrogateQuery;
|
|
5
|
-
}, undefined>>)
|
|
5
|
+
}, undefined>> | import("@owlmeans/client-entrypoint").ClientProtocolEntrypoint<import("@owlmeans/entrypoint").EntrypointProtocol<{
|
|
6
|
+
body: import("@owlmeans/auth").AuthToken;
|
|
7
|
+
}, import("@owlmeans/auth").AuthToken>>)[];
|
|
6
8
|
//# sourceMappingURL=entrypoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../src/entrypoints.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"entrypoints.d.ts","sourceRoot":"","sources":["../src/entrypoints.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;;;;0CAA4C,CAAA"}
|
package/build/exports.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { handler, useNavigate, useValue, useEntrypoint } from '@owlmeans/client';
|
|
1
|
+
export { handler, lazyHandler, lazyComponent, useNavigate, useValue, useEntrypoint } from '@owlmeans/client';
|
|
2
|
+
export type { LazyComponent, LazyComponentOptions, LazyHandler } from '@owlmeans/client';
|
|
2
3
|
export { config } from '@owlmeans/client-context';
|
|
3
4
|
export { service } from '@owlmeans/config';
|
|
4
5
|
export { addWebService } from '@owlmeans/client-config';
|
package/build/exports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC5G,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAC7F,YAAY,EAAE,gBAAgB,IAAI,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAEhG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC/D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/build/exports.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { handler, useNavigate, useValue, useEntrypoint } from '@owlmeans/client';
|
|
1
|
+
export { handler, lazyHandler, lazyComponent, useNavigate, useValue, useEntrypoint } from '@owlmeans/client';
|
|
2
2
|
export { config } from '@owlmeans/client-context';
|
|
3
3
|
export { service } from '@owlmeans/config';
|
|
4
4
|
export { addWebService } from '@owlmeans/client-config';
|
package/build/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE5G,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAE7F,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAEhG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAG/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/web-panel",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.62",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -51,33 +51,33 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@hookform/resolvers": "^5.2.2",
|
|
54
|
-
"@owlmeans/api-config-client": "^0.1.18-rc.
|
|
55
|
-
"@owlmeans/auth": "^0.1.18-rc.
|
|
56
|
-
"@owlmeans/auth-common": "^0.1.18-rc.
|
|
57
|
-
"@owlmeans/basic-envelope": "^0.1.18-rc.
|
|
58
|
-
"@owlmeans/client": "^0.1.18-rc.
|
|
59
|
-
"@owlmeans/client-auth": "^0.1.18-rc.
|
|
60
|
-
"@owlmeans/client-config": "^0.1.18-rc.
|
|
61
|
-
"@owlmeans/client-context": "^0.1.18-rc.
|
|
62
|
-
"@owlmeans/client-entrypoint": "^0.1.18-rc.
|
|
63
|
-
"@owlmeans/client-flow": "^0.1.18-rc.
|
|
64
|
-
"@owlmeans/client-i18n": "^0.1.18-rc.
|
|
65
|
-
"@owlmeans/client-panel": "^0.1.18-rc.
|
|
66
|
-
"@owlmeans/client-route": "^0.1.18-rc.
|
|
67
|
-
"@owlmeans/client-socket": "^0.1.18-rc.
|
|
68
|
-
"@owlmeans/config": "^0.1.18-rc.
|
|
54
|
+
"@owlmeans/api-config-client": "^0.1.18-rc.36",
|
|
55
|
+
"@owlmeans/auth": "^0.1.18-rc.36",
|
|
56
|
+
"@owlmeans/auth-common": "^0.1.18-rc.38",
|
|
57
|
+
"@owlmeans/basic-envelope": "^0.1.18-rc.37",
|
|
58
|
+
"@owlmeans/client": "^0.1.18-rc.42",
|
|
59
|
+
"@owlmeans/client-auth": "^0.1.18-rc.49",
|
|
60
|
+
"@owlmeans/client-config": "^0.1.18-rc.38",
|
|
61
|
+
"@owlmeans/client-context": "^0.1.18-rc.39",
|
|
62
|
+
"@owlmeans/client-entrypoint": "^0.1.18-rc.38",
|
|
63
|
+
"@owlmeans/client-flow": "^0.1.18-rc.45",
|
|
64
|
+
"@owlmeans/client-i18n": "^0.1.18-rc.41",
|
|
65
|
+
"@owlmeans/client-panel": "^0.1.18-rc.49",
|
|
66
|
+
"@owlmeans/client-route": "^0.1.18-rc.39",
|
|
67
|
+
"@owlmeans/client-socket": "^0.1.18-rc.40",
|
|
68
|
+
"@owlmeans/config": "^0.1.18-rc.38",
|
|
69
69
|
"@owlmeans/context": "^0.1.18-rc.32",
|
|
70
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
71
|
-
"@owlmeans/error": "^0.1.18-rc.
|
|
72
|
-
"@owlmeans/flow": "^0.1.18-rc.
|
|
73
|
-
"@owlmeans/i18n": "^0.1.18-rc.
|
|
70
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.37",
|
|
71
|
+
"@owlmeans/error": "^0.1.18-rc.36",
|
|
72
|
+
"@owlmeans/flow": "^0.1.18-rc.39",
|
|
73
|
+
"@owlmeans/i18n": "^0.1.18-rc.37",
|
|
74
74
|
"@owlmeans/route": "^0.1.18-rc.33",
|
|
75
|
-
"@owlmeans/state": "^0.1.18-rc.
|
|
76
|
-
"@owlmeans/web-client": "^0.1.18-rc.
|
|
77
|
-
"@owlmeans/web-consent": "^0.1.18-rc.
|
|
78
|
-
"@owlmeans/web-db": "^0.1.18-rc.
|
|
79
|
-
"@owlmeans/web-flow": "^0.1.18-rc.
|
|
80
|
-
"@owlmeans/web-router": "^0.1.18-rc.
|
|
75
|
+
"@owlmeans/state": "^0.1.18-rc.35",
|
|
76
|
+
"@owlmeans/web-client": "^0.1.18-rc.52",
|
|
77
|
+
"@owlmeans/web-consent": "^0.1.18-rc.33",
|
|
78
|
+
"@owlmeans/web-db": "^0.1.18-rc.39",
|
|
79
|
+
"@owlmeans/web-flow": "^0.1.18-rc.44",
|
|
80
|
+
"@owlmeans/web-router": "^0.1.18-rc.40",
|
|
81
81
|
"i18next-browser-languagedetector": "^8.0.0",
|
|
82
82
|
"qrcode.react": "^4.2.0",
|
|
83
83
|
"react-google-recaptcha": "^3.1.0",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
105
|
"@owlmeans/dep-config": "workspace:*",
|
|
106
|
-
"@owlmeans/test-ui": "^0.1.18-rc.
|
|
106
|
+
"@owlmeans/test-ui": "^0.1.18-rc.40",
|
|
107
107
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
108
108
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
109
109
|
"@radix-ui/react-label": "^2.1.0",
|
package/src/auth/exports.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
export { handler, useEntrypoint, useValue, useNavigate } from '@owlmeans/client'
|
|
3
|
-
export type { Navigator } from '@owlmeans/client'
|
|
2
|
+
export { handler, lazyHandler, lazyComponent, useEntrypoint, useValue, useNavigate } from '@owlmeans/client'
|
|
3
|
+
export type { Navigator, LazyComponent, LazyComponentOptions, LazyHandler } from '@owlmeans/client'
|
|
4
4
|
export { config } from '@owlmeans/client-context'
|
|
5
5
|
export { service } from '@owlmeans/config'
|
|
6
6
|
export { EntrypointOutcome } from '@owlmeans/entrypoint'
|