@fiddle-digital/string-tune 1.1.52 → 1.1.54

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/dist/index.d.mts CHANGED
@@ -524,6 +524,9 @@ declare class StringObject {
524
524
  * modules it is associated with.
525
525
  */
526
526
  remove(): void;
527
+ setInviewAutoBlocked(blocked: boolean): void;
528
+ isInviewAutoBlocked(): boolean;
529
+ syncInviewClass(): void;
527
530
  /**
528
531
  * Shows the object, applies visual class and notifies connected modules.
529
532
  */
@@ -1341,6 +1344,9 @@ declare class StringModule implements IStringModule {
1341
1344
  * 6. Sets the processed attributes as properties on the `StringObject` instance.
1342
1345
  */
1343
1346
  initializeObject(globalId: number, object: StringObject, element: HTMLElement, attributes: Record<string, any>): void;
1347
+ protected cacheLayoutSnapshot(object: StringObject, element: HTMLElement): void;
1348
+ private getOffsetSize;
1349
+ private getOffsetChainPosition;
1344
1350
  /**
1345
1351
  * Calculates object-specific positions or metrics based on the current layout or scroll state.
1346
1352
  * This method is intended to be overridden in subclasses if the module needs to precompute
@@ -1960,6 +1966,7 @@ declare class StringProgress extends StringModule {
1960
1966
  constructor(context: StringContext);
1961
1967
  initializeObject(globalId: number, object: StringObject, element: HTMLElement, attributes: Record<string, any>): void;
1962
1968
  private sanitizeRawProgress;
1969
+ private resolveRawProgress;
1963
1970
  private applyRawProgress;
1964
1971
  private recomputeProgress;
1965
1972
  private ensureBatchCapacity;
@@ -2029,6 +2036,7 @@ declare class StringScrollbar extends StringModule {
2029
2036
  */
2030
2037
  declare class StringSplit extends StringModule {
2031
2038
  constructor(context: StringContext);
2039
+ onInit(): void;
2032
2040
  onResizeWidth(): void;
2033
2041
  onObjectConnected(object: StringObject): void;
2034
2042
  split(element: HTMLElement, options: ISplitOptions): {
@@ -2670,6 +2678,138 @@ declare class ScrollController {
2670
2678
  scrollTo(position: number, immediate?: boolean): void;
2671
2679
  }
2672
2680
 
2681
+ /**
2682
+ * Discriminated union of all UI field descriptors.
2683
+ * Each devtool module returns an array of these to describe its settings panel.
2684
+ */
2685
+ type StringDevUIFieldDescriptor = StringDevUIFieldNumber | StringDevUIFieldRange | StringDevUIFieldColor | StringDevUIFieldSelect | StringDevUIFieldToggle | StringDevUIFieldDivider;
2686
+ interface StringDevUIFieldNumber {
2687
+ readonly type: "number";
2688
+ readonly key: string;
2689
+ readonly label: string;
2690
+ readonly default: number;
2691
+ readonly min?: number;
2692
+ readonly max?: number;
2693
+ readonly step?: number;
2694
+ }
2695
+ interface StringDevUIFieldRange {
2696
+ readonly type: "range";
2697
+ readonly key: string;
2698
+ readonly label: string;
2699
+ readonly default: number;
2700
+ readonly min: number;
2701
+ readonly max: number;
2702
+ readonly step?: number;
2703
+ /** When provided, a compact unit dropdown is shown next to the value input. */
2704
+ readonly units?: ReadonlyArray<{
2705
+ value: string;
2706
+ label: string;
2707
+ }>;
2708
+ /** Default unit value (used when no persisted unit exists). */
2709
+ readonly defaultUnit?: string;
2710
+ }
2711
+ interface StringDevUIFieldColor {
2712
+ readonly type: "color";
2713
+ readonly key: string;
2714
+ readonly label: string;
2715
+ readonly default: string;
2716
+ }
2717
+ interface StringDevUIFieldSelect {
2718
+ readonly type: "select";
2719
+ readonly key: string;
2720
+ readonly label: string;
2721
+ readonly default: string;
2722
+ readonly options: ReadonlyArray<{
2723
+ value: string;
2724
+ label: string;
2725
+ }>;
2726
+ }
2727
+ interface StringDevUIFieldToggle {
2728
+ readonly type: "toggle";
2729
+ readonly key: string;
2730
+ readonly label: string;
2731
+ readonly default: boolean;
2732
+ }
2733
+ interface StringDevUIFieldDivider {
2734
+ readonly type: "divider";
2735
+ readonly label?: string;
2736
+ }
2737
+
2738
+ /**
2739
+ * Abstract base class for all grid adapters.
2740
+ *
2741
+ * Each adapter is a self-contained unit that:
2742
+ * - Declares its own default settings
2743
+ * - Describes its UI schema for the settings panel
2744
+ * - Renders itself into an SVG overlay
2745
+ *
2746
+ * To create a new grid type, extend this class and implement
2747
+ * all abstract members. The system handles everything else.
2748
+ */
2749
+ declare abstract class GridAdapter {
2750
+ /** Unique type key used for serialization and registry lookup */
2751
+ abstract readonly type: string;
2752
+ /** Human-readable label shown in the HUD menu */
2753
+ abstract readonly label: string;
2754
+ /** SVG icon string (inline SVG markup) */
2755
+ abstract readonly icon: string;
2756
+ /**
2757
+ * Returns the default settings for this adapter.
2758
+ * These are used when a new grid instance is created.
2759
+ */
2760
+ abstract getDefaults(): Record<string, any>;
2761
+ /**
2762
+ * Returns the UI field descriptors that GridUIBuilder
2763
+ * uses to construct the settings panel.
2764
+ */
2765
+ abstract getUISchema(): StringDevUIFieldDescriptor[];
2766
+ /**
2767
+ * Renders the grid into the given SVG element.
2768
+ *
2769
+ * @param svg The SVG overlay element (same size as target)
2770
+ * @param width Element width in px
2771
+ * @param height Element height in px
2772
+ * @param settings Current settings for this instance
2773
+ */
2774
+ abstract render(svg: SVGSVGElement, width: number, height: number, settings: Record<string, any>): void;
2775
+ /**
2776
+ * Removes all elements previously rendered by this adapter.
2777
+ * Default implementation clears the adapter's group element.
2778
+ */
2779
+ clear(svg: SVGSVGElement, instanceId: string): void;
2780
+ /**
2781
+ * Creates or retrieves a <g> group element scoped to a grid instance.
2782
+ * All rendering should happen inside this group for clean cleanup.
2783
+ */
2784
+ protected getGroup(svg: SVGSVGElement, instanceId: string): SVGGElement;
2785
+ /**
2786
+ * Helper: creates an SVG line element.
2787
+ */
2788
+ protected createLine(x1: number, y1: number, x2: number, y2: number, color: string, opacity: number, strokeWidth?: number): SVGLineElement;
2789
+ /**
2790
+ * Helper: creates an SVG rect element.
2791
+ */
2792
+ protected createRect(x: number, y: number, width: number, height: number, fill: string, opacity: number): SVGRectElement;
2793
+ /**
2794
+ * Converts a value from the given unit to pixels.
2795
+ *
2796
+ * @param value Raw numeric value
2797
+ * @param unit "px" | "%" | "vw" | "vh" | "em" | "rem"
2798
+ * @param dimension Reference dimension (element width or height) for "%" mode
2799
+ */
2800
+ protected resolveUnit(value: number, unit: string, dimension: number, referenceElement?: Element | null): number;
2801
+ /**
2802
+ * Helper: creates an SVG path element.
2803
+ */
2804
+ protected createPath(d: string, stroke: string, opacity: number, strokeWidth?: number, fill?: string): SVGPathElement;
2805
+ }
2806
+
2807
+ declare function resolveDevtoolsIcon(iconOrId: string): string;
2808
+
2809
+ type StringDevStyleTokens = Record<string, string>;
2810
+ declare function buildDevtoolsThemeBlock(selectors: string | string[], overrides?: StringDevStyleTokens): string;
2811
+ declare function ensureStringDevtoolsSharedStyles(): HTMLStyleElement | null;
2812
+
2673
2813
  /**
2674
2814
  * What the trigger does when activated.
2675
2815
  * Defaults to "toggle" when not specified.
@@ -2771,6 +2911,22 @@ interface RowsLayoutGrid {
2771
2911
  }
2772
2912
  type RulersLayoutGrid = ColumnsLayoutGrid | RowsLayoutGrid;
2773
2913
 
2914
+ interface StringDevtoolState {
2915
+ active: boolean;
2916
+ }
2917
+ interface StringDevtoolDefinition {
2918
+ id: string;
2919
+ label: string;
2920
+ icon: string;
2921
+ order?: number;
2922
+ getState: () => StringDevtoolState;
2923
+ setActive: (active: boolean) => void;
2924
+ subscribe?: (listener: (state: StringDevtoolState) => void) => () => void;
2925
+ }
2926
+ interface StringDevtoolProvider {
2927
+ getDevtoolDefinition(): StringDevtoolDefinition | null;
2928
+ }
2929
+
2774
2930
  interface ModuleBatchContext {
2775
2931
  module: StringModule;
2776
2932
  object: StringObject;
@@ -2859,6 +3015,9 @@ declare class StringTune {
2859
3015
  private centers;
2860
3016
  /** Tracks hover states of string objects. */
2861
3017
  private hoverManager;
3018
+ private devtools;
3019
+ private devtoolsFpsLastSampleTime;
3020
+ private devtoolsFpsFrameCount;
2862
3021
  private observerContainerResize;
2863
3022
  canRebuild: boolean;
2864
3023
  /**
@@ -3056,6 +3215,7 @@ declare class StringTune {
3056
3215
  * Triggers scroll engine, modules, and global `update` event.
3057
3216
  */
3058
3217
  private onUpdateEvent;
3218
+ private updateDevtoolsFPS;
3059
3219
  /**
3060
3220
  * Handles resize events from scroll container or window.
3061
3221
  * Ignores height-only changes on mobile to prevent layout jumps.
@@ -3063,11 +3223,25 @@ declare class StringTune {
3063
3223
  */
3064
3224
  onResize(force?: boolean): void;
3065
3225
  invalidateCenter(id: string): void;
3066
- scrollTo(value: number | {
3226
+ scrollTo(position: number): void;
3227
+ scrollTo(selector: string): void;
3228
+ scrollTo(element: HTMLElement): void;
3229
+ scrollTo(options: {
3067
3230
  position: number;
3068
3231
  immediate?: boolean;
3232
+ offset?: number;
3233
+ } | {
3234
+ selector: string;
3235
+ immediate?: boolean;
3236
+ offset?: number;
3237
+ } | {
3238
+ element: HTMLElement;
3239
+ immediate?: boolean;
3240
+ offset?: number;
3069
3241
  }): void;
3242
+ private resolveScrollToValue;
3243
+ private resolveElementScrollPosition;
3070
3244
  destroy(): void;
3071
3245
  }
3072
3246
 
3073
- export { CursorReactiveModule, DOMBatcher, type RulersLayoutGrid, type RulersTriggerAction, ScrollController, type ScrollMarkRule as ScrollTriggerRule, StringAnchor, type StringContext, StringCursor, StringData, StringDelayLerpTracker, StringFPSTracker, StringForm, StringGlide, StringImpulse, StringLazy, StringLerp, StringLerpTracker, StringLoading, StringMagnetic, StringMasonry, StringModule, StringObject, StringParallax, StringPositionTracker, StringProgress, StringProgressPart, StringRandom, StringResponsive, type StringRulersTrigger, StringScrollContainer, StringScrollbar, StringScroller, StringSequence, StringSplit, StringSpotlight, StringTune, StringVideoAutoplay, StringTune as default, frameDOM, styleTxn };
3247
+ export { CursorReactiveModule, DOMBatcher, GridAdapter, type RulersLayoutGrid, type RulersTriggerAction, ScrollController, type ScrollMarkRule as ScrollTriggerRule, StringAnchor, type StringContext, StringCursor, StringData, StringDelayLerpTracker, type StringDevStyleTokens, type StringDevtoolDefinition, type StringDevtoolProvider, type StringDevtoolState, StringFPSTracker, StringForm, StringGlide, StringImpulse, StringLazy, StringLerp, StringLerpTracker, StringLoading, StringMagnetic, StringMasonry, StringModule, StringObject, StringParallax, StringPositionTracker, StringProgress, StringProgressPart, StringRandom, StringResponsive, type StringRulersTrigger, StringScrollContainer, StringScrollbar, StringScroller, StringSequence, StringSplit, StringSpotlight, StringTune, StringVideoAutoplay, buildDevtoolsThemeBlock, StringTune as default, ensureStringDevtoolsSharedStyles, frameDOM, resolveDevtoolsIcon, styleTxn };
package/dist/index.d.ts CHANGED
@@ -524,6 +524,9 @@ declare class StringObject {
524
524
  * modules it is associated with.
525
525
  */
526
526
  remove(): void;
527
+ setInviewAutoBlocked(blocked: boolean): void;
528
+ isInviewAutoBlocked(): boolean;
529
+ syncInviewClass(): void;
527
530
  /**
528
531
  * Shows the object, applies visual class and notifies connected modules.
529
532
  */
@@ -1341,6 +1344,9 @@ declare class StringModule implements IStringModule {
1341
1344
  * 6. Sets the processed attributes as properties on the `StringObject` instance.
1342
1345
  */
1343
1346
  initializeObject(globalId: number, object: StringObject, element: HTMLElement, attributes: Record<string, any>): void;
1347
+ protected cacheLayoutSnapshot(object: StringObject, element: HTMLElement): void;
1348
+ private getOffsetSize;
1349
+ private getOffsetChainPosition;
1344
1350
  /**
1345
1351
  * Calculates object-specific positions or metrics based on the current layout or scroll state.
1346
1352
  * This method is intended to be overridden in subclasses if the module needs to precompute
@@ -1960,6 +1966,7 @@ declare class StringProgress extends StringModule {
1960
1966
  constructor(context: StringContext);
1961
1967
  initializeObject(globalId: number, object: StringObject, element: HTMLElement, attributes: Record<string, any>): void;
1962
1968
  private sanitizeRawProgress;
1969
+ private resolveRawProgress;
1963
1970
  private applyRawProgress;
1964
1971
  private recomputeProgress;
1965
1972
  private ensureBatchCapacity;
@@ -2029,6 +2036,7 @@ declare class StringScrollbar extends StringModule {
2029
2036
  */
2030
2037
  declare class StringSplit extends StringModule {
2031
2038
  constructor(context: StringContext);
2039
+ onInit(): void;
2032
2040
  onResizeWidth(): void;
2033
2041
  onObjectConnected(object: StringObject): void;
2034
2042
  split(element: HTMLElement, options: ISplitOptions): {
@@ -2670,6 +2678,138 @@ declare class ScrollController {
2670
2678
  scrollTo(position: number, immediate?: boolean): void;
2671
2679
  }
2672
2680
 
2681
+ /**
2682
+ * Discriminated union of all UI field descriptors.
2683
+ * Each devtool module returns an array of these to describe its settings panel.
2684
+ */
2685
+ type StringDevUIFieldDescriptor = StringDevUIFieldNumber | StringDevUIFieldRange | StringDevUIFieldColor | StringDevUIFieldSelect | StringDevUIFieldToggle | StringDevUIFieldDivider;
2686
+ interface StringDevUIFieldNumber {
2687
+ readonly type: "number";
2688
+ readonly key: string;
2689
+ readonly label: string;
2690
+ readonly default: number;
2691
+ readonly min?: number;
2692
+ readonly max?: number;
2693
+ readonly step?: number;
2694
+ }
2695
+ interface StringDevUIFieldRange {
2696
+ readonly type: "range";
2697
+ readonly key: string;
2698
+ readonly label: string;
2699
+ readonly default: number;
2700
+ readonly min: number;
2701
+ readonly max: number;
2702
+ readonly step?: number;
2703
+ /** When provided, a compact unit dropdown is shown next to the value input. */
2704
+ readonly units?: ReadonlyArray<{
2705
+ value: string;
2706
+ label: string;
2707
+ }>;
2708
+ /** Default unit value (used when no persisted unit exists). */
2709
+ readonly defaultUnit?: string;
2710
+ }
2711
+ interface StringDevUIFieldColor {
2712
+ readonly type: "color";
2713
+ readonly key: string;
2714
+ readonly label: string;
2715
+ readonly default: string;
2716
+ }
2717
+ interface StringDevUIFieldSelect {
2718
+ readonly type: "select";
2719
+ readonly key: string;
2720
+ readonly label: string;
2721
+ readonly default: string;
2722
+ readonly options: ReadonlyArray<{
2723
+ value: string;
2724
+ label: string;
2725
+ }>;
2726
+ }
2727
+ interface StringDevUIFieldToggle {
2728
+ readonly type: "toggle";
2729
+ readonly key: string;
2730
+ readonly label: string;
2731
+ readonly default: boolean;
2732
+ }
2733
+ interface StringDevUIFieldDivider {
2734
+ readonly type: "divider";
2735
+ readonly label?: string;
2736
+ }
2737
+
2738
+ /**
2739
+ * Abstract base class for all grid adapters.
2740
+ *
2741
+ * Each adapter is a self-contained unit that:
2742
+ * - Declares its own default settings
2743
+ * - Describes its UI schema for the settings panel
2744
+ * - Renders itself into an SVG overlay
2745
+ *
2746
+ * To create a new grid type, extend this class and implement
2747
+ * all abstract members. The system handles everything else.
2748
+ */
2749
+ declare abstract class GridAdapter {
2750
+ /** Unique type key used for serialization and registry lookup */
2751
+ abstract readonly type: string;
2752
+ /** Human-readable label shown in the HUD menu */
2753
+ abstract readonly label: string;
2754
+ /** SVG icon string (inline SVG markup) */
2755
+ abstract readonly icon: string;
2756
+ /**
2757
+ * Returns the default settings for this adapter.
2758
+ * These are used when a new grid instance is created.
2759
+ */
2760
+ abstract getDefaults(): Record<string, any>;
2761
+ /**
2762
+ * Returns the UI field descriptors that GridUIBuilder
2763
+ * uses to construct the settings panel.
2764
+ */
2765
+ abstract getUISchema(): StringDevUIFieldDescriptor[];
2766
+ /**
2767
+ * Renders the grid into the given SVG element.
2768
+ *
2769
+ * @param svg The SVG overlay element (same size as target)
2770
+ * @param width Element width in px
2771
+ * @param height Element height in px
2772
+ * @param settings Current settings for this instance
2773
+ */
2774
+ abstract render(svg: SVGSVGElement, width: number, height: number, settings: Record<string, any>): void;
2775
+ /**
2776
+ * Removes all elements previously rendered by this adapter.
2777
+ * Default implementation clears the adapter's group element.
2778
+ */
2779
+ clear(svg: SVGSVGElement, instanceId: string): void;
2780
+ /**
2781
+ * Creates or retrieves a <g> group element scoped to a grid instance.
2782
+ * All rendering should happen inside this group for clean cleanup.
2783
+ */
2784
+ protected getGroup(svg: SVGSVGElement, instanceId: string): SVGGElement;
2785
+ /**
2786
+ * Helper: creates an SVG line element.
2787
+ */
2788
+ protected createLine(x1: number, y1: number, x2: number, y2: number, color: string, opacity: number, strokeWidth?: number): SVGLineElement;
2789
+ /**
2790
+ * Helper: creates an SVG rect element.
2791
+ */
2792
+ protected createRect(x: number, y: number, width: number, height: number, fill: string, opacity: number): SVGRectElement;
2793
+ /**
2794
+ * Converts a value from the given unit to pixels.
2795
+ *
2796
+ * @param value Raw numeric value
2797
+ * @param unit "px" | "%" | "vw" | "vh" | "em" | "rem"
2798
+ * @param dimension Reference dimension (element width or height) for "%" mode
2799
+ */
2800
+ protected resolveUnit(value: number, unit: string, dimension: number, referenceElement?: Element | null): number;
2801
+ /**
2802
+ * Helper: creates an SVG path element.
2803
+ */
2804
+ protected createPath(d: string, stroke: string, opacity: number, strokeWidth?: number, fill?: string): SVGPathElement;
2805
+ }
2806
+
2807
+ declare function resolveDevtoolsIcon(iconOrId: string): string;
2808
+
2809
+ type StringDevStyleTokens = Record<string, string>;
2810
+ declare function buildDevtoolsThemeBlock(selectors: string | string[], overrides?: StringDevStyleTokens): string;
2811
+ declare function ensureStringDevtoolsSharedStyles(): HTMLStyleElement | null;
2812
+
2673
2813
  /**
2674
2814
  * What the trigger does when activated.
2675
2815
  * Defaults to "toggle" when not specified.
@@ -2771,6 +2911,22 @@ interface RowsLayoutGrid {
2771
2911
  }
2772
2912
  type RulersLayoutGrid = ColumnsLayoutGrid | RowsLayoutGrid;
2773
2913
 
2914
+ interface StringDevtoolState {
2915
+ active: boolean;
2916
+ }
2917
+ interface StringDevtoolDefinition {
2918
+ id: string;
2919
+ label: string;
2920
+ icon: string;
2921
+ order?: number;
2922
+ getState: () => StringDevtoolState;
2923
+ setActive: (active: boolean) => void;
2924
+ subscribe?: (listener: (state: StringDevtoolState) => void) => () => void;
2925
+ }
2926
+ interface StringDevtoolProvider {
2927
+ getDevtoolDefinition(): StringDevtoolDefinition | null;
2928
+ }
2929
+
2774
2930
  interface ModuleBatchContext {
2775
2931
  module: StringModule;
2776
2932
  object: StringObject;
@@ -2859,6 +3015,9 @@ declare class StringTune {
2859
3015
  private centers;
2860
3016
  /** Tracks hover states of string objects. */
2861
3017
  private hoverManager;
3018
+ private devtools;
3019
+ private devtoolsFpsLastSampleTime;
3020
+ private devtoolsFpsFrameCount;
2862
3021
  private observerContainerResize;
2863
3022
  canRebuild: boolean;
2864
3023
  /**
@@ -3056,6 +3215,7 @@ declare class StringTune {
3056
3215
  * Triggers scroll engine, modules, and global `update` event.
3057
3216
  */
3058
3217
  private onUpdateEvent;
3218
+ private updateDevtoolsFPS;
3059
3219
  /**
3060
3220
  * Handles resize events from scroll container or window.
3061
3221
  * Ignores height-only changes on mobile to prevent layout jumps.
@@ -3063,11 +3223,25 @@ declare class StringTune {
3063
3223
  */
3064
3224
  onResize(force?: boolean): void;
3065
3225
  invalidateCenter(id: string): void;
3066
- scrollTo(value: number | {
3226
+ scrollTo(position: number): void;
3227
+ scrollTo(selector: string): void;
3228
+ scrollTo(element: HTMLElement): void;
3229
+ scrollTo(options: {
3067
3230
  position: number;
3068
3231
  immediate?: boolean;
3232
+ offset?: number;
3233
+ } | {
3234
+ selector: string;
3235
+ immediate?: boolean;
3236
+ offset?: number;
3237
+ } | {
3238
+ element: HTMLElement;
3239
+ immediate?: boolean;
3240
+ offset?: number;
3069
3241
  }): void;
3242
+ private resolveScrollToValue;
3243
+ private resolveElementScrollPosition;
3070
3244
  destroy(): void;
3071
3245
  }
3072
3246
 
3073
- export { CursorReactiveModule, DOMBatcher, type RulersLayoutGrid, type RulersTriggerAction, ScrollController, type ScrollMarkRule as ScrollTriggerRule, StringAnchor, type StringContext, StringCursor, StringData, StringDelayLerpTracker, StringFPSTracker, StringForm, StringGlide, StringImpulse, StringLazy, StringLerp, StringLerpTracker, StringLoading, StringMagnetic, StringMasonry, StringModule, StringObject, StringParallax, StringPositionTracker, StringProgress, StringProgressPart, StringRandom, StringResponsive, type StringRulersTrigger, StringScrollContainer, StringScrollbar, StringScroller, StringSequence, StringSplit, StringSpotlight, StringTune, StringVideoAutoplay, StringTune as default, frameDOM, styleTxn };
3247
+ export { CursorReactiveModule, DOMBatcher, GridAdapter, type RulersLayoutGrid, type RulersTriggerAction, ScrollController, type ScrollMarkRule as ScrollTriggerRule, StringAnchor, type StringContext, StringCursor, StringData, StringDelayLerpTracker, type StringDevStyleTokens, type StringDevtoolDefinition, type StringDevtoolProvider, type StringDevtoolState, StringFPSTracker, StringForm, StringGlide, StringImpulse, StringLazy, StringLerp, StringLerpTracker, StringLoading, StringMagnetic, StringMasonry, StringModule, StringObject, StringParallax, StringPositionTracker, StringProgress, StringProgressPart, StringRandom, StringResponsive, type StringRulersTrigger, StringScrollContainer, StringScrollbar, StringScroller, StringSequence, StringSplit, StringSpotlight, StringTune, StringVideoAutoplay, buildDevtoolsThemeBlock, StringTune as default, ensureStringDevtoolsSharedStyles, frameDOM, resolveDevtoolsIcon, styleTxn };