@customviews-js/customviews 1.1.11 → 1.3.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.
Files changed (51) hide show
  1. package/dist/custom-views.core.cjs.js +1593 -208
  2. package/dist/custom-views.core.cjs.js.map +1 -1
  3. package/dist/custom-views.core.esm.js +1593 -208
  4. package/dist/custom-views.core.esm.js.map +1 -1
  5. package/dist/custom-views.esm.js +1593 -208
  6. package/dist/custom-views.esm.js.map +1 -1
  7. package/dist/custom-views.js +1593 -208
  8. package/dist/custom-views.js.map +1 -1
  9. package/dist/custom-views.min.js +2 -2
  10. package/dist/custom-views.min.js.map +1 -1
  11. package/dist/types/core/anchor-engine.d.ts +55 -0
  12. package/dist/types/core/anchor-engine.d.ts.map +1 -0
  13. package/dist/types/core/config.d.ts +3 -0
  14. package/dist/types/core/config.d.ts.map +1 -0
  15. package/dist/types/core/core.d.ts +27 -1
  16. package/dist/types/core/core.d.ts.map +1 -1
  17. package/dist/types/core/custom-elements.d.ts +2 -2
  18. package/dist/types/core/custom-elements.d.ts.map +1 -1
  19. package/dist/types/core/focus-manager.d.ts +38 -0
  20. package/dist/types/core/focus-manager.d.ts.map +1 -0
  21. package/dist/types/core/share-button.d.ts +13 -0
  22. package/dist/types/core/share-button.d.ts.map +1 -0
  23. package/dist/types/core/share-manager.d.ts +70 -0
  24. package/dist/types/core/share-manager.d.ts.map +1 -0
  25. package/dist/types/core/tab-manager.d.ts +6 -6
  26. package/dist/types/core/tab-manager.d.ts.map +1 -1
  27. package/dist/types/core/toast-manager.d.ts +12 -0
  28. package/dist/types/core/toast-manager.d.ts.map +1 -0
  29. package/dist/types/core/toggle-manager.d.ts +9 -4
  30. package/dist/types/core/toggle-manager.d.ts.map +1 -1
  31. package/dist/types/core/url-state-manager.d.ts +6 -2
  32. package/dist/types/core/url-state-manager.d.ts.map +1 -1
  33. package/dist/types/core/widget.d.ts +20 -11
  34. package/dist/types/core/widget.d.ts.map +1 -1
  35. package/dist/types/lib/custom-views.d.ts +1 -1
  36. package/dist/types/lib/custom-views.d.ts.map +1 -1
  37. package/dist/types/styles/focus-mode-styles.d.ts +8 -0
  38. package/dist/types/styles/focus-mode-styles.d.ts.map +1 -0
  39. package/dist/types/styles/share-button-styles.d.ts +3 -0
  40. package/dist/types/styles/share-button-styles.d.ts.map +1 -0
  41. package/dist/types/styles/share-mode-styles.d.ts +10 -0
  42. package/dist/types/styles/share-mode-styles.d.ts.map +1 -0
  43. package/dist/types/styles/toast-styles.d.ts +4 -0
  44. package/dist/types/styles/toast-styles.d.ts.map +1 -0
  45. package/dist/types/styles/widget-styles.d.ts +1 -1
  46. package/dist/types/styles/widget-styles.d.ts.map +1 -1
  47. package/dist/types/types/types.d.ts +22 -2
  48. package/dist/types/types/types.d.ts.map +1 -1
  49. package/dist/types/utils/icons.d.ts +2 -0
  50. package/dist/types/utils/icons.d.ts.map +1 -1
  51. package/package.json +2 -2
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Descriptor for an anchor that represents a DOM element.
3
+ */
4
+ interface AnchorDescriptor {
5
+ tag: string;
6
+ index: number;
7
+ parentId?: string;
8
+ textSnippet: string;
9
+ textHash: number;
10
+ }
11
+ /**
12
+ * Engine for generating and resolving robust anchors.
13
+ *
14
+ * It implements a simple anchor generation and resolution algorithm that uses a combination of
15
+ * structural, contextual, and content-based hints to generate a unique anchor for a given DOM element.
16
+ *
17
+ * The anchor is generated by first creating an AnchorDescriptor for the element, which contains
18
+ * information about the element's tag, index, parent ID, and text content. This descriptor is then
19
+ * serialized into a URL-safe string using a minification algorithm.
20
+ *
21
+ * The anchor is then resolved by searching for the element in the DOM using the serialized string.
22
+ *
23
+ */
24
+ export declare class AnchorEngine {
25
+ /**
26
+ * Generates a simple hash code for a string.
27
+ *
28
+ * It takes each character's Unicode code point and uses it to update the hash value.
29
+ */
30
+ private static hashCode;
31
+ /**
32
+ * Normalizes text content by removing excessive whitespace.
33
+ *
34
+ * It trims leading and trailing whitespace and replaces multiple spaces with a single space.
35
+ */
36
+ private static normalizeText;
37
+ /**
38
+ * Creates an AnchorDescriptor for a given DOM element.
39
+ */
40
+ static createDescriptor(el: HTMLElement): AnchorDescriptor;
41
+ /**
42
+ * Serializes a list of AnchorDescriptors into a URL-safe string.
43
+ */
44
+ static serialize(descriptors: AnchorDescriptor[]): string;
45
+ /**
46
+ * Deserializes a URL-safe string back into a list of AnchorDescriptors.
47
+ */
48
+ static deserialize(encoded: string): AnchorDescriptor[];
49
+ /**
50
+ * Finds the best DOM element match for a descriptor.
51
+ */
52
+ static resolve(root: HTMLElement, descriptor: AnchorDescriptor): HTMLElement | null;
53
+ }
54
+ export {};
55
+ //# sourceMappingURL=anchor-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-engine.d.ts","sourceRoot":"","sources":["../../../src/core/anchor-engine.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,UAAU,gBAAgB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IAErB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;IAWvB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB;IAoC1D;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM;IAczD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAiBvD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,GAAG,WAAW,GAAG,IAAI;CA0DtF"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_EXCLUDED_TAGS: string[];
2
+ export declare const DEFAULT_EXCLUDED_IDS: string[];
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,UAAiD,CAAC;AACpF,eAAO,MAAM,oBAAoB,UAAyE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { State, TabGroupConfig, Config } from "../types/types";
2
2
  import type { AssetsManager } from "./assets-manager";
3
+ import { ShareManager } from "./share-manager";
3
4
  export interface CustomViewsOptions {
4
5
  assetsManager: AssetsManager;
5
6
  config: Config;
@@ -11,11 +12,30 @@ export declare class CustomViewsCore {
11
12
  private assetsManager;
12
13
  private persistenceManager;
13
14
  private visibilityManager;
15
+ private observer;
16
+ private shareManager;
17
+ private shareButton;
18
+ private focusManager;
19
+ private componentRegistry;
14
20
  private config;
15
21
  private stateChangeListeners;
16
22
  private showUrlEnabled;
17
23
  private lastAppliedState;
18
24
  constructor(opt: CustomViewsOptions);
25
+ getShareManager(): ShareManager;
26
+ /**
27
+ * Toggles the share mode on or off.
28
+ */
29
+ toggleShareMode(): void;
30
+ /**
31
+ * Scan the given element for toggles and tab groups, register them
32
+ * Returns true if new components were found
33
+ */
34
+ private scan;
35
+ /**
36
+ * Unscan the given element for toggles and tab groups, de-register them from registry
37
+ */
38
+ private unscan;
19
39
  getConfig(): Config;
20
40
  /**
21
41
  * Get tab groups from config
@@ -36,6 +56,8 @@ export declare class CustomViewsCore {
36
56
  */
37
57
  setActiveTab(groupId: string, tabId: string, groupEl?: HTMLElement): void;
38
58
  init(): Promise<void>;
59
+ private initializeNewComponents;
60
+ private initObserver;
39
61
  private loadAndCallApplyState;
40
62
  /**
41
63
  * Apply a custom state, saves to localStorage and updates the URL
@@ -50,7 +72,11 @@ export declare class CustomViewsCore {
50
72
  top: number;
51
73
  };
52
74
  }): void;
53
- /** Render all toggles for the current state */
75
+ /**
76
+ * Renders state on components in ComponentRegistry
77
+ * Applies the given state.
78
+ * Disconnects the mutation observer during rendering to prevent loops
79
+ **/
54
80
  private renderState;
55
81
  /**
56
82
  * Reset to default state
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUtD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,GAAG,EAAE,kBAAkB;IAU5B,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACI,YAAY,IAAI,cAAc,EAAE,GAAG,SAAS;IAInD;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA+B/B;;OAEG;IACI,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAarD;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAmBnE,IAAI;YAkDH,qBAAqB;IAmBnC;;;;;MAKE;IACK,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE;YAAE,OAAO,EAAE,WAAW,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;SAAE,CAAC;KAAE;IA+BrH,+CAA+C;IAC/C,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACI,cAAc;IAiBrB;;OAEG;IACI,uBAAuB,IAAI,MAAM,EAAE;IAY1C;;OAEG;IACI,gBAAgB;IAWhB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAuBpD;;OAEG;IACI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIzD;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAO5D;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAUlC;;OAEG;IACI,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAItD;;OAEG;IACI,4BAA4B,IAAI,OAAO,GAAG,IAAI;IAIrD,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,uBAAuB;CAYhC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAStD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAa/C,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,iBAAiB,CAGvB;IAEF,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,GAAG,EAAE,kBAAkB;IAmB5B,eAAe,IAAI,YAAY;IAItC;;OAEG;IACI,eAAe,IAAI,IAAI;IAI9B;;;OAGG;IACH,OAAO,CAAC,IAAI;IA8BZ;;OAEG;IACH,OAAO,CAAC,MAAM;IAoBP,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACI,YAAY,IAAI,cAAc,EAAE,GAAG,SAAS;IAInD;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IA+B/B;;OAEG;IACI,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAarD;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAmBnE,IAAI;IAyBjB,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,YAAY;YA+CN,qBAAqB;IAmBnC;;;;;MAKE;IACK,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE;YAAE,OAAO,EAAE,WAAW,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;SAAE,CAAC;KAAE;IA+BrH;;;;QAII;IACJ,OAAO,CAAC,WAAW;IAgCnB;;OAEG;IACI,cAAc;IAiBrB;;OAEG;IACI,uBAAuB,IAAI,MAAM,EAAE;IAY1C;;OAEG;IACI,gBAAgB;IAWhB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAuBpD;;OAEG;IACI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIzD;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAO5D;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAUlC;;OAEG;IACI,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAItD;;OAEG;IACI,4BAA4B,IAAI,OAAO,GAAG,IAAI;IAIrD,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,uBAAuB;CAYhC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Custom Elements for Tab Groups and Tabs
2
+ * Defines the custom elements used by CustomViews.
3
3
  */
4
4
  /**
5
- * Register custom elements
5
+ * Registers all CustomViews custom elements with the CustomElementRegistry.
6
6
  */
7
7
  export declare function registerCustomElements(): void;
8
8
  //# sourceMappingURL=custom-elements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-elements.d.ts","sourceRoot":"","sources":["../../../src/core/custom-elements.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyDH;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAqB7C"}
1
+ {"version":3,"file":"custom-elements.d.ts","sourceRoot":"","sources":["../../../src/core/custom-elements.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0DH;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAqB7C"}
@@ -0,0 +1,38 @@
1
+ export interface FocusManagerOptions {
2
+ excludedTags: string[];
3
+ excludedIds: string[];
4
+ }
5
+ export declare class FocusManager {
6
+ private rootEl;
7
+ private hiddenElements;
8
+ private dividers;
9
+ private exitBanner;
10
+ private excludedTags;
11
+ private excludedIds;
12
+ constructor(rootEl: HTMLElement, options: FocusManagerOptions);
13
+ /**
14
+ * Initializes the Focus Manager. Checks URL for focus parameter.
15
+ */
16
+ init(): void;
17
+ handleUrlChange(): void;
18
+ /**
19
+ * Applies Focus Mode based on encoded descriptors.
20
+ */
21
+ applyFocusMode(encodedDescriptors: string): void;
22
+ private injectStyles;
23
+ /**
24
+ * Hides irrelevant content and adds dividers.
25
+ */
26
+ private renderFocusedView;
27
+ private hideElement;
28
+ private insertDividersForContainer;
29
+ private createDivider;
30
+ private expandContext;
31
+ private removeExitBanner;
32
+ /**
33
+ * Override of renderFocusedView with robust logic
34
+ */
35
+ private showExitBanner;
36
+ exitFocusMode(): void;
37
+ }
38
+ //# sourceMappingURL=focus-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-manager.d.ts","sourceRoot":"","sources":["../../../src/core/focus-manager.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,YAAY;IAQT,OAAO,CAAC,MAAM;IAN1B,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,WAAW,CAAc;gBAEb,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB;IAKrE;;OAEG;IACI,IAAI,IAAI,IAAI;IAIZ,eAAe,IAAI,IAAI;IAc9B;;OAEG;IACI,cAAc,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;IA4BvD,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyEzB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IAGH,OAAO,CAAC,cAAc;IAef,aAAa,IAAI,IAAI;CAyB/B"}
@@ -0,0 +1,13 @@
1
+ import { ShareManager } from './share-manager';
2
+ export declare class ShareButton {
3
+ private shareManager;
4
+ private button;
5
+ private boundHandleClick;
6
+ constructor(shareManager: ShareManager);
7
+ init(): void;
8
+ destroy(): void;
9
+ private createButton;
10
+ private injectStyles;
11
+ private setShareModeActive;
12
+ }
13
+ //# sourceMappingURL=share-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-button.d.ts","sourceRoot":"","sources":["../../../src/core/share-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,qBAAa,WAAW;IACpB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,gBAAgB,CAAa;gBAEzB,YAAY,EAAE,YAAY;IAK/B,IAAI,IAAI,IAAI;IAaZ,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,kBAAkB;CAS7B"}
@@ -0,0 +1,70 @@
1
+ export interface ShareManagerOptions {
2
+ excludedTags: string[];
3
+ excludedIds: string[];
4
+ }
5
+ /**
6
+ * Manages the "Share Mode" for creating custom focus links.
7
+ * Implementing Robust Granular Sharing with "Innermost Wins" and "Level Up" UI.
8
+ */
9
+ export declare class ShareManager {
10
+ private isActive;
11
+ private selectedElements;
12
+ private floatingBarEl;
13
+ private helperEl;
14
+ private currentHoverTarget;
15
+ private excludedTags;
16
+ private excludedIds;
17
+ private boundHandleHover;
18
+ private boundHandleClick;
19
+ private boundHandleKeydown;
20
+ constructor(options: ShareManagerOptions);
21
+ private listeners;
22
+ addStateChangeListener(listener: (isActive: boolean) => void): void;
23
+ removeStateChangeListener(listener: (isActive: boolean) => void): void;
24
+ private notifyListeners;
25
+ toggleShareMode(): void;
26
+ /**
27
+ * Activates the share mode.
28
+ * Injects styles, creates floating bar, and helper element.
29
+ * Adds event listeners for hover and click.
30
+ */
31
+ private activate;
32
+ private injectStyles;
33
+ /**
34
+ * Creates the hover helper element that shows up when hovering over a shareable element.
35
+ */
36
+ private createHelperPopover;
37
+ /**
38
+ * Handles mouse hover events.
39
+ *
40
+ * This function is called when the user hovers over an element.
41
+ * It checks if the element is shareable and highlights it.
42
+ * If a parent element is already selected, it highlights the parent instead,
43
+ * allowing the helper to remain visible for the selected parent.
44
+ *
45
+ * @param e The mouse event triggered by the hover.
46
+ */
47
+ private handleHover;
48
+ private setNewHoverTarget;
49
+ private positionHelper;
50
+ private handleSelectParent;
51
+ private handleClick;
52
+ private handleKeydown;
53
+ /**
54
+ * Toggles the selection state of a given HTML element.
55
+ * Implements selection logic:
56
+ * - If an ancestor of the element is already selected, the click is ignored.
57
+ * - If the element being selected is a parent of already selected elements, those children are deselected.
58
+ * @param el The HTMLElement to toggle selection for.
59
+ */
60
+ private toggleSelection;
61
+ private createFloatingBar;
62
+ private updateFloatingBarCount;
63
+ private clearAll;
64
+ private getShareUrl;
65
+ private generateLink;
66
+ private previewLink;
67
+ private clearHover;
68
+ cleanup(): void;
69
+ }
70
+ //# sourceMappingURL=share-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-manager.d.ts","sourceRoot":"","sources":["../../../src/core/share-manager.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,kBAAkB,CAA6B;gBAE3C,OAAO,EAAE,mBAAmB;IAQxC,OAAO,CAAC,SAAS,CAA0C;IAEpD,sBAAsB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAInE,yBAAyB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAI7E,OAAO,CAAC,eAAe;IAIhB,eAAe,IAAI,IAAI;IAU9B;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW;IAkEnB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAUrB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,WAAW;YAaL,YAAY;IAgB1B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,UAAU;IAUX,OAAO,IAAI,IAAI;CA4BvB"}
@@ -5,9 +5,9 @@ export declare class TabManager {
5
5
  */
6
6
  private static splitTabIds;
7
7
  /**
8
- * Apply tab selections to all tab groups in the DOM
8
+ * Apply tab selections to a given list of tab group elements
9
9
  */
10
- static applyTabSelections(rootEl: HTMLElement, tabs: Record<string, string>, cfgGroups?: TabGroupConfig[]): void;
10
+ static applyTabSelections(tabGroups: HTMLElement[], tabs: Record<string, string>, cfgGroups?: TabGroupConfig[]): void;
11
11
  /**
12
12
  * Resolve the active tab for a group based on state, config, and DOM
13
13
  *
@@ -29,7 +29,7 @@ export declare class TabManager {
29
29
  /**
30
30
  * Build navigation for tab groups (one-time setup)
31
31
  */
32
- static buildNavs(rootEl: HTMLElement, cfgGroups?: TabGroupConfig[], onTabClick?: (groupId: string, tabId: string, groupEl: HTMLElement) => void, onTabDoubleClick?: (groupId: string, tabId: string, groupEl: HTMLElement) => void): void;
32
+ static buildNavs(tabGroups: HTMLElement[], cfgGroups?: TabGroupConfig[], onTabClick?: (groupId: string, tabId: string, groupEl: HTMLElement) => void, onTabDoubleClick?: (groupId: string, tabId: string, groupEl: HTMLElement) => void): void;
33
33
  /**
34
34
  * Toggle nav visibility for all tab groups (viewer-controlled)
35
35
  */
@@ -49,7 +49,7 @@ export declare class TabManager {
49
49
  /**
50
50
  * Update active states for all tab groups based on current state
51
51
  */
52
- static updateAllNavActiveStates(rootEl: HTMLElement, tabs: Record<string, string>, cfgGroups?: TabGroupConfig[]): void;
52
+ static updateAllNavActiveStates(tabGroups: HTMLElement[], tabs: Record<string, string>, cfgGroups?: TabGroupConfig[]): void;
53
53
  /**
54
54
  * Apply tab selection to a specific tabgroup element only (not globally).
55
55
  * Used for single-click behavior to update only the clicked tabgroup.
@@ -67,7 +67,7 @@ export declare class TabManager {
67
67
  /**
68
68
  * Update pin icon visibility for all tab groups based on current state.
69
69
  * Shows pin icon for tabs that are in the persisted state (i.e., have been double-clicked).
70
- */
71
- static updatePinIcons(rootEl: HTMLElement, tabs: Record<string, string>): void;
70
+ */
71
+ static updatePinIcons(tabGroups: HTMLElement[], tabs: Record<string, string>): void;
72
72
  }
73
73
  //# sourceMappingURL=tab-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-manager.d.ts","sourceRoot":"","sources":["../../../src/core/tab-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAYrD,qBAAa,UAAU;IACrB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B;;OAEG;WACW,kBAAkB,CAC9B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,GAC3B,IAAI;IA2CP;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAqCvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwBhC;;OAEG;WACW,SAAS,CACrB,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,cAAc,EAAE,EAC5B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,EAC3E,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,GAChF,IAAI;IAsJP;;OAEG;WACW,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IA6B5E;;OAEG;WACW,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAc1B;;OAEG;WACW,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAmBnF;;OAEG;WACW,wBAAwB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,GAC3B,IAAI;IA+BP;;;OAGG;WACW,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAgBhF;;;OAGG;WACW,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAavE;;OAEG;WACW,kBAAkB,CAC9B,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE;IAchB;;;OAGG;WACW,cAAc,CAC1B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,IAAI;CA+BR"}
1
+ {"version":3,"file":"tab-manager.d.ts","sourceRoot":"","sources":["../../../src/core/tab-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAYrD,qBAAa,UAAU;IACrB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B;;OAEG;WACW,kBAAkB,CAC9B,SAAS,EAAE,WAAW,EAAE,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,GAC3B,IAAI;IAwCP;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAqCvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAUjC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwBhC;;OAEG;WACW,SAAS,CACrB,SAAS,EAAE,WAAW,EAAE,EACxB,SAAS,CAAC,EAAE,cAAc,EAAE,EAC5B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,EAC3E,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,GAChF,IAAI;IAiKP;;OAEG;WACW,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IA6B5E;;OAEG;WACW,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAI1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAc1B;;OAEG;WACW,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAmBnF;;OAEG;WACW,wBAAwB,CACpC,SAAS,EAAE,WAAW,EAAE,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,GAC3B,IAAI;IA6BP;;;OAGG;WACW,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAgBhF;;;OAGG;WACW,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAavE;;OAEG;WACW,kBAAkB,CAC9B,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE;IAchB;;;QAGI;WACU,cAAc,CACxB,SAAS,EAAE,WAAW,EAAE,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,IAAI;CA2BV"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Manages toast notifications for the application.
3
+ */
4
+ export declare class ToastManager {
5
+ private static isStyleInjected;
6
+ private static toastEl;
7
+ private static navTimeout;
8
+ private static fadeTimeout;
9
+ static show(message: string, duration?: number): void;
10
+ private static injectStyles;
11
+ }
12
+ //# sourceMappingURL=toast-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast-manager.d.ts","sourceRoot":"","sources":["../../../src/core/toast-manager.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAS;IACvC,OAAO,CAAC,MAAM,CAAC,OAAO,CAA4B;IAClD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAa;IACtC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAa;WAEzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa,GAAG,IAAI;IAkClE,OAAO,CAAC,MAAM,CAAC,YAAY;CAa9B"}
@@ -5,13 +5,13 @@ import { AssetsManager } from "./assets-manager";
5
5
  */
6
6
  export declare class ToggleManager {
7
7
  /**
8
- * Apply toggle visibility to all toggle elements in the DOM
8
+ * Apply toggle visibility to a given list of toggle elements
9
9
  */
10
- static applyToggles(rootEl: HTMLElement, activeToggles: ToggleId[]): void;
10
+ static applyToggles(elements: HTMLElement[], activeToggles: ToggleId[]): void;
11
11
  /**
12
- * Render assets into toggle elements that are currently visible
12
+ * Render assets into a given list of toggle elements that are currently visible
13
13
  */
14
- static renderAssets(rootEl: HTMLElement, activeToggles: ToggleId[], assetsManager: AssetsManager): void;
14
+ static renderAssets(elements: HTMLElement[], activeToggles: ToggleId[], assetsManager: AssetsManager): void;
15
15
  /**
16
16
  * Get toggle categories from an element (supports both data attributes and cv-toggle elements)
17
17
  */
@@ -24,5 +24,10 @@ export declare class ToggleManager {
24
24
  * Apply simple class-based visibility to a toggle element
25
25
  */
26
26
  private static applyToggleVisibility;
27
+ /**
28
+ * Scans a given DOM subtree for toggle elements and initializes them.
29
+ * This includes applying visibility and rendering assets.
30
+ */
31
+ static initializeToggles(root: HTMLElement, activeToggles: ToggleId[], assetsManager: AssetsManager): void;
27
32
  }
28
33
  //# sourceMappingURL=toggle-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-manager.d.ts","sourceRoot":"","sources":["../../../src/core/toggle-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQjD;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;WACW,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQhF;;OAEG;WACW,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI;IAU9G;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CASrC"}
1
+ {"version":3,"file":"toggle-manager.d.ts","sourceRoot":"","sources":["../../../src/core/toggle-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;WACW,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQpF;;OAEG;WACW,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI;IAalH;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC;;;OAGG;WACW,iBAAiB,CAC7B,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,QAAQ,EAAE,EACzB,aAAa,EAAE,aAAa,GAC3B,IAAI;CAYR"}
@@ -21,11 +21,15 @@ export declare class URLStateManager {
21
21
  */
22
22
  static generateShareableURL(state: State | null | undefined): string;
23
23
  /**
24
- * Encode state into URL-safe string (Toggles and Tabs only currently)
24
+ * Encode state into URL-safe string
25
+ *
26
+ * (Covers Toggles, Tabs and Focus currently)
25
27
  */
26
28
  private static encodeState;
27
29
  /**
28
- * Decode custom state from URL parameter (Toggles and Tabs only currently)
30
+ * Decode custom state from URL parameter
31
+ *
32
+ * (Covers Toggles, Tabs and Focus currently)
29
33
  */
30
34
  private static decodeState;
31
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"url-state-manager.d.ts","sourceRoot":"","sources":["../../../src/core/url-state-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,qBAAa,eAAe;IAC1B;;OAEG;WACW,QAAQ,IAAI,KAAK,GAAG,IAAI;IAiBtC;;OAEG;WACW,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAqB9D;;OAEG;WACW,QAAQ,IAAI,IAAI;IAI9B;;OAEG;WACW,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAiB3E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAmC1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;CAqD3B"}
1
+ {"version":3,"file":"url-state-manager.d.ts","sourceRoot":"","sources":["../../../src/core/url-state-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,qBAAa,eAAe;IAC1B;;OAEG;WACW,QAAQ,IAAI,KAAK,GAAG,IAAI;IAiBtC;;OAEG;WACW,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAqB9D;;OAEG;WACW,QAAQ,IAAI,IAAI;IAI9B;;OAEG;WACW,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAiB3E;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAwC1B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;CAwD3B"}
@@ -28,12 +28,17 @@ export declare class CustomViewsWidget {
28
28
  private container;
29
29
  private widgetIcon;
30
30
  private options;
31
- private modal;
31
+ private _hasVisibleConfig;
32
+ private pageToggleIds;
33
+ private pageTabIds;
34
+ private stateModal;
32
35
  constructor(options: WidgetOptions);
33
36
  /**
34
- * Render the widget
37
+ * Render the widget modal icon
38
+ *
39
+ * Does not render if there are no visible toggles or tab groups.
35
40
  */
36
- render(): HTMLElement;
41
+ renderModalIcon(): HTMLElement | undefined;
37
42
  /**
38
43
  * Create the simple widget icon
39
44
  */
@@ -52,13 +57,21 @@ export declare class CustomViewsWidget {
52
57
  */
53
58
  private openStateModal;
54
59
  /**
55
- * Create the custom state creator modal
60
+ * Create the custom state creator modal shell and attach listeners
56
61
  */
57
- private createCustomStateModal;
62
+ private _createStateModal;
58
63
  /**
59
- * Attach event listeners for custom state creator
64
+ * Update the content of the state modal
60
65
  */
61
- private attachStateModalEventListeners;
66
+ private _updateStateModalContent;
67
+ /**
68
+ * Attach event listeners for the modal frame (delegated events)
69
+ */
70
+ private _attachStateModalFrameEventListeners;
71
+ /**
72
+ * Attach event listeners for custom state creator's dynamic content
73
+ */
74
+ private _attachStateModalContentEventListeners;
62
75
  /**
63
76
  * Apply theme class to the modal overlay based on options
64
77
  */
@@ -75,10 +88,6 @@ export declare class CustomViewsWidget {
75
88
  * Load current state into form based on currently active toggles
76
89
  */
77
90
  private loadCurrentStateIntoForm;
78
- /**
79
- * Format toggle name for display
80
- */
81
- private formatToggleName;
82
91
  /**
83
92
  * Check if this is the first visit and show welcome modal
84
93
  */
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/core/widget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAO9C,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,IAAI,EAAE,eAAe,CAAC;IAEtB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;IAEtG,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB,mCAAmC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,OAAO,CAA0B;IAGzC,OAAO,CAAC,KAAK,CAA4B;gBAG7B,OAAO,EAAE,aAAa;IAsBlC;;OAEG;IACI,MAAM,IAAI,WAAW;IAe5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACI,OAAO,IAAI,IAAI;IAatB,OAAO,CAAC,oBAAoB;IAO5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8H9B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAqJtC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAgCtC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqDhC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA0BpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,gCAAgC;CA6BzC"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../../src/core/widget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAO9C,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,IAAI,EAAE,eAAe,CAAC;IAEtB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;IAEtG,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB,mCAAmC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,UAAU,CAA0B;IAG5C,OAAO,CAAC,UAAU,CAA4B;gBAGlC,OAAO,EAAE,aAAa;IAmDlC;;;;OAIG;IACI,eAAe,IAAI,WAAW,GAAG,SAAS;IAmBjD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACI,OAAO,IAAI,IAAI;IAatB,OAAO,CAAC,oBAAoB;IAO5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsIhC;;OAEG;IACH,OAAO,CAAC,oCAAoC;IAkE5C;;OAEG;IACH,OAAO,CAAC,sCAAsC;IA8D9C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAgCtC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoDhC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAmBpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;OAEG;IACH,OAAO,CAAC,gCAAgC;CA6BzC"}
@@ -8,7 +8,7 @@ export type initOptions = {
8
8
  assetsJsonPath?: string;
9
9
  /** Root element to apply custom views */
10
10
  rootEl?: HTMLElement;
11
- /** Config object with allToggles and defaultState */
11
+ /** Config object with toggles and defaultState */
12
12
  config?: Config;
13
13
  /** Base URL for all paths */
14
14
  baseURL?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"custom-views.d.ts","sourceRoot":"","sources":["../../../src/lib/custom-views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI9D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAA;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;WACU,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CA0CtE"}
1
+ {"version":3,"file":"custom-views.d.ts","sourceRoot":"","sources":["../../../src/lib/custom-views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAmB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI9D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAA;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;WACU,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CA0CtE"}
@@ -0,0 +1,8 @@
1
+ export declare const FOCUS_MODE_STYLE_ID = "cv-focus-mode-styles";
2
+ export declare const BODY_FOCUS_CLASS = "cv-focus-mode";
3
+ export declare const HIDDEN_CLASS = "cv-focus-hidden";
4
+ export declare const FOCUSED_CLASS = "cv-focused-element";
5
+ export declare const DIVIDER_CLASS = "cv-context-divider";
6
+ export declare const EXIT_BANNER_ID = "cv-exit-focus-banner";
7
+ export declare const FOCUS_MODE_STYLES = "\n body.cv-focus-mode {\n /* e.g. potentially hide scrollbars or adjust layout */\n }\n\n .cv-focus-hidden {\n display: none !important;\n }\n\n .cv-focused-element {\n /* No visual style for focused elements, just logic class for now. Can add borders for debugging*/\n }\n\n .cv-context-divider {\n padding: 12px;\n margin: 16px 0;\n background-color: #f8f8f8;\n border-top: 1px dashed #ccc;\n border-bottom: 1px dashed #ccc;\n color: #555;\n text-align: center;\n cursor: pointer;\n font-family: system-ui, sans-serif;\n font-size: 13px;\n transition: background-color 0.2s;\n }\n .cv-context-divider:hover {\n background-color: #e8e8e8;\n color: #333;\n }\n\n #cv-exit-focus-banner {\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n background-color: #0078D4;\n color: white;\n padding: 10px 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n z-index: 100000;\n font-family: system-ui, sans-serif;\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n }\n\n #cv-exit-focus-banner button {\n background: white;\n color: #0078D4;\n border: none;\n padding: 4px 12px;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 600;\n }\n #cv-exit-focus-banner button:hover {\n background: #f0f0f0;\n }\n";
8
+ //# sourceMappingURL=focus-mode-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-mode-styles.d.ts","sourceRoot":"","sources":["../../../src/styles/focus-mode-styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAC1D,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAClD,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAClD,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAgErD,eAAO,MAAM,iBAAiB,w1CAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const SHARE_BUTTON_ID = "cv-share-button";
2
+ export declare const SHARE_BUTTON_STYLES = "\n #cv-share-button {\n position: fixed;\n bottom: 20px;\n right: 100px;\n width: 50px;\n height: 50px;\n border-radius: 50%;\n background-color: #007bff; /* Primary Blue */\n color: white;\n border: none;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.08); /* Drop shadow */\n z-index: 9998; /* Below modals (9999) but above content */\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.2s;\n opacity: 1;\n transform: scale(1);\n padding: 0;\n margin: 0;\n }\n\n #cv-share-button:hover {\n background-color: #0056b3; /* Darker blue on hover */\n transform: scale(1.05);\n }\n\n #cv-share-button:active {\n transform: scale(0.95);\n }\n\n #cv-share-button.cv-hidden {\n opacity: 0;\n pointer-events: none;\n transform: scale(0.8);\n }\n\n @media print {\n #cv-share-button {\n display: none !important;\n }\n }\n\n #cv-share-button svg {\n width: 24px;\n height: 24px;\n fill: currentColor;\n }\n";
3
+ //# sourceMappingURL=share-button-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-button-styles.d.ts","sourceRoot":"","sources":["../../../src/styles/share-button-styles.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,eAAO,MAAM,mBAAmB,snCAkD/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const SHARE_MODE_STYLE_ID = "cv-share-mode-styles";
2
+ export declare const FLOATING_ACTION_BAR_ID = "cv-floating-action-bar";
3
+ export declare const HOVER_HELPER_ID = "cv-hover-helper";
4
+ export declare const HIGHLIGHT_TARGET_CLASS = "cv-highlight-target";
5
+ export declare const SELECTED_CLASS = "cv-share-selected";
6
+ /**
7
+ * CSS styles to be injected during Share Mode.
8
+ */
9
+ export declare const SHARE_MODE_STYLES = "\n body.cv-share-mode {\n cursor: default;\n }\n\n /* Highlight outlines */\n .cv-highlight-target {\n outline: 2px dashed #0078D4 !important;\n outline-offset: 2px;\n cursor: crosshair;\n }\n\n .cv-share-selected {\n outline: 3px solid #005a9e !important;\n outline-offset: 2px;\n background-color: rgba(0, 120, 212, 0.05);\n }\n\n /* Floating Action Bar */\n #cv-floating-action-bar {\n position: fixed;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n background-color: #2c2c2c;\n color: #f1f1f1;\n border-radius: 8px;\n padding: 12px 20px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n display: flex;\n align-items: center;\n gap: 16px;\n z-index: 99999;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 14px;\n border: 1px solid #4a4a4a;\n }\n\n #cv-floating-action-bar .cv-action-button {\n background-color: #0078D4;\n color: white;\n border: none;\n padding: 8px 14px;\n border-radius: 5px;\n cursor: pointer;\n font-weight: 500;\n transition: background-color 0.2s;\n }\n \n #cv-floating-action-bar .cv-action-button:hover {\n background-color: #005a9e;\n }\n\n #cv-floating-action-bar .cv-action-button.clear {\n background-color: #5a5a5a;\n }\n #cv-floating-action-bar .cv-action-button.clear:hover {\n background-color: #4a4a4a;\n }\n #cv-floating-action-bar .cv-action-button.clear:hover {\n background-color: #4a4a4a;\n }\n\n #cv-floating-action-bar .cv-action-button.preview {\n background-color: #106ebe;\n }\n #cv-floating-action-bar .cv-action-button.preview:hover {\n background-color: #005a9e;\n }\n #cv-floating-action-bar .cv-action-button.exit {\n background-color: #d13438;\n }\n #cv-floating-action-bar .cv-action-button.exit:hover {\n background-color: #a42628;\n }\n\n /* Hover Helper (Smart Label & Level Up) */\n #cv-hover-helper {\n position: fixed;\n z-index: 99999;\n background-color: #333;\n color: white;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 12px;\n font-family: monospace;\n display: none;\n pointer-events: auto; /* Allow clicking buttons inside */\n align-items: center;\n gap: 8px;\n box-shadow: 0 2px 5px rgba(0,0,0,0.2);\n }\n\n #cv-hover-helper button {\n background: #555;\n border: none;\n color: white;\n border-radius: 3px;\n cursor: pointer;\n padding: 2px 6px;\n font-size: 14px;\n line-height: 1;\n }\n #cv-hover-helper button:hover {\n background: #777;\n }\n\n";
10
+ //# sourceMappingURL=share-mode-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-mode-styles.d.ts","sourceRoot":"","sources":["../../../src/styles/share-mode-styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,iBAAiB,whFA2G7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const TOAST_STYLE_ID = "cv-toast-styles";
2
+ export declare const TOAST_CLASS = "cv-toast-notification";
3
+ export declare const TOAST_STYLES = "\n .cv-toast-notification {\n position: fixed;\n top: 20px;\n left: 50%;\n transform: translateX(-50%);\n background-color: #323232;\n color: white;\n padding: 12px 24px;\n border-radius: 4px;\n z-index: 100000;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none; /* Let clicks pass through if needed, though usually it blocks */\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 14px;\n }\n";
4
+ //# sourceMappingURL=toast-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast-styles.d.ts","sourceRoot":"","sources":["../../../src/styles/toast-styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAChD,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,eAAO,MAAM,YAAY,ygBAkBxB,CAAC"}