@kywi-software/js 0.6.5 → 0.6.7

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.
@@ -19,6 +19,13 @@ export interface AudienceBootConfig {
19
19
  * use, so it matches the reference app's mount out of the box.
20
20
  */
21
21
  apiBase?: string;
22
+ /**
23
+ * `personalization.transparencyNotice.enabled`. When false, the global
24
+ * transparency surface never appears on its own — the visitor can still open
25
+ * it deliberately through a `personalizationBadge` module. Defaults to true;
26
+ * the host page passes the resolved config value through.
27
+ */
28
+ transparencyNotice?: boolean;
22
29
  }
23
30
  export declare function bootAudienceEngine(config: AudienceBootConfig): Promise<void>;
24
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audience/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AASnF,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGhF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC,CAAA;IAC9J,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAUD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DlF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audience/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AASnF,OAAO,EAA0C,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGpG,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC,CAAA;IAC9J,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAUD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FlF"}
@@ -1,4 +1,20 @@
1
1
  import type { Audience } from '@kywi-software/core/audiences/types';
2
+ /**
3
+ * Host mount contract for `inline` mode (#106): when the page contains an
4
+ * element matching this selector, the widget renders INTO it instead of into
5
+ * the runtime's own `#kywi-selfid-container` (which is appended to the end of
6
+ * `<body>`, i.e. after the footer). Hosts opt in by putting
7
+ * `<div data-kywi-selfid-mount></div>` wherever the card belongs.
8
+ */
9
+ export declare const SELFID_MOUNT_SELECTOR = "[data-kywi-selfid-mount]";
10
+ /** Body class + custom property published while a top hello bar is on screen. */
11
+ export declare const HELLO_BAR_TOP_CLASS = "kywi-selfid-hello-bar-top-open";
12
+ /**
13
+ * The host slot for `inline` mode, when one exists. Returns null for every
14
+ * other display mode — modal/drawer/hello-bar/slide-in position themselves
15
+ * against the viewport, so a content slot would be meaningless for them.
16
+ */
17
+ export declare function resolveSelfIdMount(displayMode?: SelfIdWidgetConfig['displayMode']): HTMLElement | null;
2
18
  /** A picklist option: the value submitted, and the label shown to the visitor. */
3
19
  export interface SelfIdFieldOption {
4
20
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"selfid-widget.d.ts","sourceRoot":"","sources":["../../src/audience/selfid-widget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAQnE,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAOD,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEtB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,iBAAiB,EAAE,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,QAAQ,CAAA;IAC/F,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnD,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,IAAI,OAAO,CAAA;IACrB,SAAS,IAAI,IAAI,CAAA;IACjB,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CACtD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAyJ3E"}
1
+ {"version":3,"file":"selfid-widget.d.ts","sourceRoot":"","sources":["../../src/audience/selfid-widget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAgBnE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,6BAA6B,CAAA;AAE/D,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,mCAAmC,CAAA;AAKnE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAAG,WAAW,GAAG,IAAI,CAItG;AAED,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAOD,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEtB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,iBAAiB,EAAE,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,QAAQ,CAAA;IAC/F,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnD,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,IAAI,OAAO,CAAA;IACrB,SAAS,IAAI,IAAI,CAAA;IACjB,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CACtD;AA6BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAwO3E"}
@@ -1,12 +1,60 @@
1
- export declare function isDismissed(): boolean;
2
- export declare function dismiss(): void;
3
- export declare function optOut(): void;
4
- export declare function optIn(): void;
5
- interface TransparencyState {
1
+ /** An audience the visitor can be shown as, or switch to. */
2
+ export interface TransparencyAudience {
3
+ id: string;
4
+ name: string;
5
+ }
6
+ export interface TransparencyState {
7
+ /** The page is currently rendering an audience's variant content. */
6
8
  isPersonalized: boolean;
7
9
  isOptedOut: boolean;
10
+ /** At least one audience matched — i.e. personalization is available here. */
8
11
  hasMatchAvailable: boolean;
12
+ /** The audience the page was personalized for (resolves the displayed name). */
13
+ audienceId?: string | null;
14
+ /** Active audiences, by name — powers the name lookup and the switcher. */
15
+ audiences?: TransparencyAudience[];
16
+ /** Mounted CMS API base (e.g. `/api/v1`); the switcher posts to `{apiBase}/kywi/audience`. */
17
+ apiBase?: string;
18
+ csrfToken?: string | null;
19
+ /**
20
+ * `personalization.transparencyNotice.enabled`. When false the surface never
21
+ * appears on its own; `openTransparencyPanel()` (e.g. a personalizationBadge
22
+ * click) can still open it deliberately.
23
+ */
24
+ enabled?: boolean;
9
25
  }
10
- export declare function renderTransparencyBar(state: TransparencyState): void;
11
- export {};
26
+ /** True when the surface should render as the pill. Defaults to collapsed. */
27
+ export declare function isCollapsed(): boolean;
28
+ export declare function optOut(): void;
29
+ export declare function optIn(): void;
30
+ /** Clears the manual audience pin so resolution goes back to signals. */
31
+ export declare function resetToAutomatic(): void;
32
+ /**
33
+ * Pins the visitor to `audienceId` via the public runtime route — the same
34
+ * endpoint and payload the boot path already uses to persist a client-resolved
35
+ * audience. The server re-validates the id against the active audiences.
36
+ */
37
+ export declare function pinAudience(audienceId: string, opts?: {
38
+ apiBase?: string | undefined;
39
+ csrfToken?: string | null | undefined;
40
+ }): Promise<void>;
41
+ /**
42
+ * Renders (or removes) the transparency surface for `state`. Safe to call on
43
+ * every boot; it replaces whatever is currently mounted.
44
+ */
45
+ export declare function renderTransparencyPanel(state: TransparencyState): void;
46
+ /** Expands the panel and remembers the choice. */
47
+ export declare function expandPanel(): void;
48
+ /** Collapses back to the pill and remembers the choice — never full suppression. */
49
+ export declare function collapsePanel(): void;
50
+ /**
51
+ * Opens the transparency panel from anywhere — the programmatic entry point the
52
+ * personalizationBadge module's status pill calls (#107), so opt-out and
53
+ * audience switching live in exactly one surface. Renders the panel even when
54
+ * the automatic gate (or `transparencyNotice.enabled: false`) would hide it,
55
+ * because opening it is an explicit visitor action.
56
+ */
57
+ export declare function openTransparencyPanel(): void;
58
+ /** Test seam: forget the cached boot state and any forced-open flag. */
59
+ export declare function resetTransparencyState(): void;
12
60
  //# sourceMappingURL=transparency.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transparency.d.ts","sourceRoot":"","sources":["../../src/audience/transparency.ts"],"names":[],"mappings":"AAMA,wBAAgB,WAAW,IAAI,OAAO,CAAuD;AAC7F,wBAAgB,OAAO,IAAI,IAAI,CAA0D;AAIzF,wBAAgB,MAAM,IAAI,IAAI,CAA8F;AAC5H,wBAAgB,KAAK,IAAI,IAAI,CAAsC;AAEnE,UAAU,iBAAiB;IAAG,cAAc,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAE;AAWxG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAmCpE"}
1
+ {"version":3,"file":"transparency.d.ts","sourceRoot":"","sources":["../../src/audience/transparency.ts"],"names":[],"mappings":"AAiCA,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,8EAA8E;IAC9E,iBAAiB,EAAE,OAAO,CAAA;IAC1B,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAA;IAClC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAoBD,8EAA8E;AAC9E,wBAAgB,WAAW,IAAI,OAAO,CASrC;AAQD,wBAAgB,MAAM,IAAI,IAAI,CAG7B;AAED,wBAAgB,KAAK,IAAI,IAAI,CAE5B;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAMD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAO,GACjF,OAAO,CAAC,IAAI,CAAC,CASf;AAiCD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CA6HtE;AAwBD,kDAAkD;AAClD,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,oFAAoF;AACpF,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAU5C;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C"}
package/dist/index.d.ts CHANGED
@@ -20,5 +20,6 @@ export declare const Kywi: {
20
20
  boot(): void;
21
21
  };
22
22
  export { bootAudienceEngine } from './audience/index.js';
23
+ export { openTransparencyPanel, renderTransparencyPanel, type TransparencyState, type TransparencyAudience, } from './audience/transparency.js';
23
24
  export { bootExperiments, type ExperimentRuntime, type ConversionSignal } from './experiments/index.js';
24
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AASnE,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,IAAI,CAAA;AAIlD,eAAO,MAAM,IAAI;;aAEa,WAAW;YACzB,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;gBACtC,eAAe,GAAG,IAAI;;2BAIb,oBAAoB,GAAG,oBAAoB;;;;oBAM9C,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;4BAC7C,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI;;;eAK5C,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG;aACvB,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG;gBAClB,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI;YAC7C,IAAI;CAeb,CAAA;AAWD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AASnE,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,IAAI,CAAA;AAIlD,eAAO,MAAM,IAAI;;aAEa,WAAW;YACzB,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;gBACtC,eAAe,GAAG,IAAI;;2BAIb,oBAAoB,GAAG,oBAAoB;;;;oBAM9C,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;4BAC7C,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI;;;eAK5C,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG;aACvB,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG;gBAClB,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI;YAC7C,IAAI;CAeb,CAAA;AAWD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA"}