builder-settings-types 0.0.224 → 0.0.229

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 (40) hide show
  1. package/dist/base/drawable.d.ts +6 -0
  2. package/dist/base/settings-base.d.ts +7 -0
  3. package/dist/base/settings-group/settingsGroup.d.ts +100 -0
  4. package/dist/base/settings.d.ts +49 -0
  5. package/dist/builder-settings-types.cjs.js +44 -54
  6. package/dist/builder-settings-types.es.js +506 -616
  7. package/dist/groups/background-setting-set/backgroundSettingsSet.d.ts +19 -0
  8. package/dist/groups/borderSettingsSet.d.ts +24 -0
  9. package/dist/groups/headerTypographySettingsSet.d.ts +34 -0
  10. package/dist/groups/margin-setting-group/marginSettingGroup.d.ts +17 -0
  11. package/dist/groups/margin-setting-group/marginSettings.d.ts +16 -0
  12. package/dist/index.d.ts +30 -811
  13. package/dist/main.d.ts +1 -0
  14. package/dist/settings/align-settings/alignSettings.d.ts +9 -0
  15. package/dist/settings/animation-settings/animationSettings.d.ts +12 -0
  16. package/dist/settings/button-settings/buttonSettings.d.ts +16 -0
  17. package/dist/settings/color-settings/colorSettings.d.ts +23 -0
  18. package/dist/settings/color-with-opacity-settings/colorWithOpacitySettings.d.ts +33 -0
  19. package/dist/settings/gap-settings/gapSettings.d.ts +26 -0
  20. package/dist/settings/height-setting/heightSettings.d.ts +12 -0
  21. package/dist/settings/html-settings/htmlSettings.d.ts +18 -0
  22. package/dist/settings/html-settings/index.d.ts +1 -0
  23. package/dist/settings/margin-bottom-settings/marginBottomSettings.d.ts +8 -0
  24. package/dist/settings/margin-top-settings/marginTopSettings.d.ts +8 -0
  25. package/dist/settings/multi-language-settings/multiLanguageSettings.d.ts +32 -0
  26. package/dist/settings/number-settings/numberSettings.d.ts +25 -0
  27. package/dist/settings/opacity-settings/opacitySettings.d.ts +12 -0
  28. package/dist/settings/select-api/select-api.d.ts +37 -0
  29. package/dist/settings/select-settings/selectSettings.d.ts +41 -0
  30. package/dist/settings/size-setting/dimensionSettings.d.ts +38 -0
  31. package/dist/settings/string-settings/stringSettings.d.ts +14 -0
  32. package/dist/settings/toggle-settings/index.d.ts +1 -0
  33. package/dist/settings/toggle-settings/toggleSettings.d.ts +21 -0
  34. package/dist/settings/upload-image-settings/uploadImageSettings.d.ts +31 -0
  35. package/dist/settings/width-setting/widthSettings.d.ts +12 -0
  36. package/dist/types/index.d.ts +34 -0
  37. package/dist/utils/deepClone.d.ts +1 -0
  38. package/dist/utils/nestingCalculator.d.ts +96 -0
  39. package/dist/utils/settingsTypes.d.ts +13 -0
  40. package/package.json +1 -1
package/dist/main.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { Setting, SettingProps, InputTypes } from '../../base/settings';
2
+ export type AlignValue = "left" | "center" | "right";
3
+ export interface AlignSettingProps extends SettingProps<AlignValue> {
4
+ }
5
+ export declare class AlignSetting extends Setting<AlignValue, AlignSettingProps> {
6
+ inputType: InputTypes;
7
+ constructor(props?: AlignSettingProps);
8
+ draw(): HTMLElement;
9
+ }
@@ -0,0 +1,12 @@
1
+ import { Setting, SettingProps, InputTypes } from '../../base/settings';
2
+ export type AnimationValue = "fade" | "slide" | "zoom" | "bounce" | "pulse" | "none";
3
+ export interface AnimationSettingProps extends SettingProps<AnimationValue> {
4
+ title?: string;
5
+ }
6
+ export declare class AnimationSetting extends Setting<AnimationValue, AnimationSettingProps> {
7
+ inputType: InputTypes;
8
+ private selectSetting;
9
+ constructor(props?: AnimationSettingProps);
10
+ draw(): HTMLElement;
11
+ destroy(): void;
12
+ }
@@ -0,0 +1,16 @@
1
+ import { InputTypes, Setting, SettingProps } from '../../base/settings';
2
+ export interface ButtonSettingProps extends SettingProps<void> {
3
+ label: string;
4
+ onClick?: () => void;
5
+ className?: string;
6
+ wrapperClassName?: string;
7
+ backgroundColor?: string;
8
+ textColor?: string;
9
+ borderColor?: string;
10
+ }
11
+ export declare class ButtonSetting extends Setting<void, ButtonSettingProps> {
12
+ inputType: InputTypes;
13
+ constructor(props: ButtonSettingProps);
14
+ bgWithAlpha: string;
15
+ draw(): HTMLElement;
16
+ }
@@ -0,0 +1,23 @@
1
+ import { InputTypes } from '../../base/settings';
2
+ import { StringSetting, StringSettingsProps } from '../string-settings/stringSettings';
3
+ export interface ColorSettingProps extends StringSettingsProps {
4
+ detectChange?: (value: string | undefined) => void;
5
+ }
6
+ export declare class ColorSetting extends StringSetting {
7
+ inputType: InputTypes;
8
+ detectChange?: (value: string | undefined) => void;
9
+ private element;
10
+ private colorInputEl;
11
+ private textInputEl;
12
+ constructor(props: ColorSettingProps);
13
+ private static normalizeColorValue;
14
+ private static normalizeHexValue;
15
+ private static rgbToHexStatic;
16
+ setValue(newValue: string | undefined): void;
17
+ private hexToRgb;
18
+ draw(): HTMLElement;
19
+ getElement(): HTMLElement | null;
20
+ getNormalizedValue(): string;
21
+ isValidHex(): boolean;
22
+ toRgb(): string;
23
+ }
@@ -0,0 +1,33 @@
1
+ import { InputTypes, Setting, SettingProps } from '../../base/settings';
2
+ export interface ColorWithOpacitySettingProps extends SettingProps<string> {
3
+ detectChange?: (value: string | undefined) => void;
4
+ wrapperClassName?: string;
5
+ }
6
+ export declare class ColorWithOpacitySetting extends Setting<string, ColorWithOpacitySettingProps> {
7
+ inputType: InputTypes;
8
+ detectChange?: (value: string | undefined) => void;
9
+ private element;
10
+ private colorInputEl;
11
+ private textInputEl;
12
+ private opacityInputEl;
13
+ private colorPreviewEl;
14
+ constructor(props?: ColorWithOpacitySettingProps);
15
+ private static normalizeHexWithOpacity;
16
+ private getRgbColor;
17
+ private getOpacityPercent;
18
+ private static combineColorOpacity;
19
+ setValue(newValue: string | undefined): void;
20
+ private updateInputElements;
21
+ private updateColorPreview;
22
+ private handleColorChange;
23
+ private handleTextInput;
24
+ private handleOpacityChange;
25
+ draw(): HTMLElement;
26
+ getElement(): HTMLElement | null;
27
+ getValue(): string | undefined;
28
+ getRgbaValue(): string;
29
+ getColorAndOpacity(): {
30
+ color: string;
31
+ opacity: number;
32
+ };
33
+ }
@@ -0,0 +1,26 @@
1
+ import { InputTypes, Setting, SettingProps } from '../../base/settings';
2
+ export type GapSuffix = "px" | "em" | "rem" | "%" | "vh" | "vw" | "pt" | "none";
3
+ export interface GapSettingsProps extends SettingProps<number> {
4
+ minValue?: number;
5
+ maxValue?: number;
6
+ step?: number;
7
+ suffix?: GapSuffix;
8
+ className?: string;
9
+ inputClassName?: string;
10
+ wrapperClassName?: string;
11
+ rowGap?: boolean;
12
+ columnGap?: boolean;
13
+ onBlur?: () => void;
14
+ mobile?: number;
15
+ }
16
+ export declare class GapSetting extends Setting<number, GapSettingsProps> {
17
+ inputType: InputTypes;
18
+ private inputValues;
19
+ mobileValue?: number;
20
+ constructor(props?: GapSettingsProps);
21
+ draw(): HTMLElement;
22
+ private createGapInput;
23
+ private validateValue;
24
+ getMobileValue(): number | undefined;
25
+ setMobileValue(value: number | undefined): void;
26
+ }
@@ -0,0 +1,12 @@
1
+ import { InputTypes } from '../../base/settings';
2
+ import { NumberSetting, NumberSettingsProps } from '../number-settings/numberSettings';
3
+ export type HeightSettingProps = NumberSettingsProps & {
4
+ mobile?: number;
5
+ };
6
+ export declare class HeightSetting extends NumberSetting {
7
+ inputType: InputTypes;
8
+ mobileValue?: number;
9
+ constructor(props?: HeightSettingProps);
10
+ getMobileValue(): number | undefined;
11
+ setMobileValue(value: number | undefined): void;
12
+ }
@@ -0,0 +1,18 @@
1
+ import { InputTypes, Setting, SettingProps } from '../../base/settings';
2
+ export interface HtmlSettingsProps extends SettingProps<string> {
3
+ maxLength?: number;
4
+ value?: string;
5
+ className?: string;
6
+ textareaClassName?: string;
7
+ wrapperClassName?: string;
8
+ rows?: number;
9
+ placeholder?: string;
10
+ onChange?: (value: string) => void;
11
+ }
12
+ export declare class HtmlSetting extends Setting<string, HtmlSettingsProps> {
13
+ inputType: InputTypes;
14
+ private textareaEl?;
15
+ constructor(props?: HtmlSettingsProps);
16
+ setValue(newValue: string): void;
17
+ draw(): HTMLElement;
18
+ }
@@ -0,0 +1 @@
1
+ export { HtmlSetting, type HtmlSettingsProps } from './htmlSettings';
@@ -0,0 +1,8 @@
1
+ import { InputTypes } from '../../base/settings';
2
+ import { NumberSetting, NumberSettingsProps } from '../number-settings/numberSettings';
3
+ export interface MarginBottomSettingsProps extends NumberSettingsProps {
4
+ }
5
+ export declare class MarginBottomSetting extends NumberSetting {
6
+ inputType: InputTypes;
7
+ constructor(props?: MarginBottomSettingsProps);
8
+ }
@@ -0,0 +1,8 @@
1
+ import { InputTypes } from '../../base/settings';
2
+ import { NumberSetting, NumberSettingsProps } from '../number-settings/numberSettings';
3
+ export interface MarginTopSettingsProps extends NumberSettingsProps {
4
+ }
5
+ export declare class MarginTopSetting extends NumberSetting {
6
+ inputType: InputTypes;
7
+ constructor(props?: MarginTopSettingsProps);
8
+ }
@@ -0,0 +1,32 @@
1
+ import { Setting, SettingProps } from '../../base/settings';
2
+ export interface MultiLanguageValue {
3
+ [languageCode: string]: string;
4
+ }
5
+ export interface MultiLanguageSettingsProps extends SettingProps<MultiLanguageValue> {
6
+ availableLanguages?: Array<{
7
+ code: string;
8
+ name: string;
9
+ }>;
10
+ maxLanguages?: number;
11
+ placeholder?: string;
12
+ }
13
+ export declare class MultiLanguageSetting extends Setting<MultiLanguageValue, MultiLanguageSettingsProps> {
14
+ inputType: Record<keyof MultiLanguageValue, "text">;
15
+ private container;
16
+ private languagesContainer;
17
+ private addLanguageSelect;
18
+ private addButton;
19
+ private defaultLanguages;
20
+ constructor(props?: MultiLanguageSettingsProps);
21
+ private get availableLanguages();
22
+ private get usedLanguageCodes();
23
+ private get availableLanguageOptions();
24
+ private updateAddLanguageSelect;
25
+ private createLanguageRow;
26
+ private updateLanguageValue;
27
+ private removeLanguage;
28
+ private addLanguage;
29
+ private createAddLanguageSection;
30
+ draw(): HTMLElement;
31
+ setValue(value: MultiLanguageValue): void;
32
+ }
@@ -0,0 +1,25 @@
1
+ import { InputTypes, Setting, SettingProps } from '../../base/settings';
2
+ export type NumberSuffix = "px" | "em" | "rem" | "%" | "vh" | "vw" | "pt" | "none";
3
+ export interface NumberSettingsProps extends SettingProps<number> {
4
+ minValue?: number;
5
+ maxValue?: number;
6
+ step?: number;
7
+ className?: string;
8
+ inputClassName?: string;
9
+ wrapperClassName?: string;
10
+ suffix?: NumberSuffix;
11
+ mobile?: number;
12
+ onBlur?: () => void;
13
+ }
14
+ export declare class NumberSetting extends Setting<number, NumberSettingsProps> {
15
+ inputType: InputTypes;
16
+ private inputElement;
17
+ mobileValue?: number;
18
+ constructor(props: NumberSettingsProps);
19
+ draw(): HTMLElement;
20
+ setValue(value: number | undefined): void;
21
+ private validateValue;
22
+ getMobileValue(): number | undefined;
23
+ setMobileValue(value: number | undefined): void;
24
+ private validateProps;
25
+ }
@@ -0,0 +1,12 @@
1
+ import { InputTypes } from '../../base/settings';
2
+ import { NumberSetting, NumberSettingsProps as NumberSettingProps } from '../number-settings/numberSettings';
3
+ export type OpacitySettingProps = NumberSettingProps & {
4
+ mobile?: number;
5
+ };
6
+ export declare class OpacitySetting extends NumberSetting {
7
+ inputType: InputTypes;
8
+ mobileValue?: number;
9
+ constructor(props?: OpacitySettingProps);
10
+ getMobileValue(): number | undefined;
11
+ setMobileValue(value: number | undefined): void;
12
+ }
@@ -0,0 +1,37 @@
1
+ import { Setting, SettingProps, InputTypes, Primitive } from '../../base/settings';
2
+ export interface SelectApiOption {
3
+ name: string;
4
+ value: string | object;
5
+ }
6
+ export interface SelectApiSettingProps<T = any> extends SettingProps<T> {
7
+ options?: SelectApiOption[];
8
+ getOptions?: () => SelectApiOption[];
9
+ getOptionsAsync?: () => Promise<SelectApiOption[]>;
10
+ loadingText?: string;
11
+ errorText?: string;
12
+ onChange?: (value: T) => void;
13
+ detectChange?: (value: T | undefined) => void;
14
+ }
15
+ export declare class SelectApiSettings<T = any> extends Setting<T, SelectApiSettingProps<T>> {
16
+ inputType: T extends Primitive ? InputTypes : Record<keyof T, InputTypes>;
17
+ private _options;
18
+ private isOpen;
19
+ private selectedOptionIndex;
20
+ private optionsListEl;
21
+ private svgContainer;
22
+ private buttonEl;
23
+ private isLoading;
24
+ private container;
25
+ private hasInitializedOptions;
26
+ private detectChangeCallback?;
27
+ constructor(props?: SelectApiSettingProps<T>);
28
+ private initializeOptions;
29
+ private createOption;
30
+ draw(): HTMLElement;
31
+ getJson(excludeSelectSettings?: boolean): string;
32
+ private selectApiOption;
33
+ private updateOptionsList;
34
+ private updateButtonText;
35
+ setDetectChange(callback: (value: T | undefined) => void): void;
36
+ setValue(value: T): void;
37
+ }
@@ -0,0 +1,41 @@
1
+ import { Setting, SettingProps, InputTypes, Primitive } from '../../base/settings';
2
+ export interface SelectOption {
3
+ name: string;
4
+ value: string | object;
5
+ }
6
+ export interface SelectSettingProps<T = any> extends SettingProps<T> {
7
+ options?: SelectOption[];
8
+ getOptions?: () => SelectOption[];
9
+ getOptionsAsync?: () => Promise<SelectOption[]>;
10
+ loadingText?: string;
11
+ placeholder?: string;
12
+ }
13
+ export declare class SelectSetting<T = any> extends Setting<T, SelectSettingProps<T>> {
14
+ inputType: T extends Primitive ? InputTypes : Record<keyof T, InputTypes>;
15
+ private _options;
16
+ private isOpen;
17
+ private selectedOptionIndex;
18
+ private optionsListEl;
19
+ private svgContainer;
20
+ private buttonEl;
21
+ private isLoading;
22
+ private container;
23
+ private clickOutsideListener;
24
+ private resizeListener;
25
+ constructor(props?: SelectSettingProps<T>);
26
+ setValue(newValue: T): void;
27
+ private createOption;
28
+ draw(): HTMLElement;
29
+ /**
30
+ * Check if dropdown should be positioned above the button
31
+ */
32
+ private checkDropdownPosition;
33
+ private selectOption;
34
+ /**
35
+ * Clean up dropdown positioning when closed
36
+ */
37
+ private cleanupDropdownPosition;
38
+ private updateOptionsList;
39
+ private updateButtonText;
40
+ destroy(): void;
41
+ }
@@ -0,0 +1,38 @@
1
+ import { Setting, SettingProps } from '../../base/settings';
2
+ export interface DimensionValue {
3
+ width: number;
4
+ height: number;
5
+ }
6
+ export interface DimensionSettingProps extends SettingProps<DimensionValue> {
7
+ locked?: boolean;
8
+ minWidth?: number;
9
+ maxWidth?: number;
10
+ minHeight?: number;
11
+ maxHeight?: number;
12
+ width?: number;
13
+ height?: number;
14
+ }
15
+ export declare class DimensionSetting extends Setting<DimensionValue, DimensionSettingProps> {
16
+ inputType: {
17
+ readonly width: "number";
18
+ readonly height: "number";
19
+ };
20
+ private widthSetting;
21
+ private heightSetting;
22
+ private minWidth;
23
+ private maxWidth?;
24
+ private minHeight;
25
+ private maxHeight?;
26
+ private locked;
27
+ private aspectRatio;
28
+ private isUpdating;
29
+ constructor(props?: DimensionSettingProps);
30
+ private handleWidthChange;
31
+ private handleHeightChange;
32
+ private toggleLock;
33
+ private getLockSVG;
34
+ setValue(newValue: DimensionValue): void;
35
+ draw(): HTMLElement;
36
+ isLocked(): boolean;
37
+ setLocked(locked: boolean): void;
38
+ }
@@ -0,0 +1,14 @@
1
+ import { InputTypes, Setting, SettingProps } from '../../base/settings';
2
+ export interface StringSettingsProps extends SettingProps<string> {
3
+ maxLength?: number;
4
+ value?: string;
5
+ className?: string;
6
+ inputClassName?: string;
7
+ wrapperClassName?: string;
8
+ onChange?: (value: string) => void;
9
+ }
10
+ export declare class StringSetting extends Setting<string, StringSettingsProps> {
11
+ inputType: InputTypes;
12
+ constructor(props?: StringSettingsProps);
13
+ draw(): HTMLElement;
14
+ }
@@ -0,0 +1 @@
1
+ export * from './toggleSettings';
@@ -0,0 +1,21 @@
1
+ import { InputTypes, Setting, SettingProps } from '../../base/settings';
2
+ export interface ToggleValue {
3
+ value: string;
4
+ status: boolean;
5
+ }
6
+ export interface ToggleSettingProps extends SettingProps<string> {
7
+ title?: string;
8
+ icon?: string;
9
+ default?: string;
10
+ options?: ToggleValue[];
11
+ activeColor?: string;
12
+ inactiveColor?: string;
13
+ detectChange?: (value: string | undefined) => void;
14
+ }
15
+ export declare class Toggle extends Setting<string, ToggleSettingProps> {
16
+ inputType: InputTypes;
17
+ private detectChangeCallback?;
18
+ constructor(props: ToggleSettingProps);
19
+ draw(): HTMLElement;
20
+ setDetectChange(callback: (value: string | undefined) => void): void;
21
+ }
@@ -0,0 +1,31 @@
1
+ import { Setting, SettingProps, InputTypes } from '../../base/settings';
2
+ export interface UploadSettingProps extends SettingProps<string> {
3
+ defaultUrl?: string;
4
+ delete?: boolean;
5
+ uploadUrl?: string;
6
+ requestMethod?: string;
7
+ requestHeaders?: Record<string, string>;
8
+ formFieldName?: string;
9
+ parseResponse?: (responseData: unknown) => string;
10
+ maxFileSizeMB?: number;
11
+ }
12
+ export declare class UploadSetting extends Setting<string, UploadSettingProps> {
13
+ inputType: InputTypes;
14
+ private previewWrapper;
15
+ private previewEl;
16
+ private emptyStateEl;
17
+ private errorContainer;
18
+ private messageListener;
19
+ private loadingSpinner;
20
+ constructor(props?: UploadSettingProps);
21
+ private setupMessageListener;
22
+ private cleanupMessageListener;
23
+ destroy(): void;
24
+ private showError;
25
+ private hideError;
26
+ private showLoading;
27
+ private hideLoading;
28
+ private validateFileSize;
29
+ private updatePreviewState;
30
+ draw(): HTMLElement;
31
+ }
@@ -0,0 +1,12 @@
1
+ import { InputTypes } from '../../base/settings';
2
+ import { NumberSetting, NumberSettingsProps } from '../number-settings/numberSettings';
3
+ export type WidthSettingProps = NumberSettingsProps & {
4
+ mobile?: number;
5
+ };
6
+ export declare class WidthSetting extends NumberSetting {
7
+ inputType: InputTypes;
8
+ mobileValue?: number;
9
+ constructor(props?: WidthSettingProps);
10
+ getMobileValue(): number | undefined;
11
+ setMobileValue(value: number | undefined): void;
12
+ }
@@ -0,0 +1,34 @@
1
+ import { Setting, SettingProps } from '../base/settings';
2
+ import { SettingGroup } from '../base/settings-group/settingsGroup';
3
+ export type SettingValue = string | number | boolean | null | undefined;
4
+ export type ComplexSettingValue = SettingValue | Record<string, SettingValue> | Array<SettingValue> | Date;
5
+ export type AnySettingValue = SettingValue | ComplexSettingValue;
6
+ export type SettingInstance<T extends AnySettingValue = AnySettingValue> = Setting<T, SettingProps<T>>;
7
+ export type SettingChild<T extends AnySettingValue = AnySettingValue> = SettingInstance<T> | SettingGroup<any>;
8
+ export type SettingsMap = Record<string, Setting<any, any> | SettingGroup<any>>;
9
+ export type SettingGroupInstance<TSettings extends SettingsMap = SettingsMap> = SettingGroup<TSettings>;
10
+ export type ExtractSettingValue<T> = T extends Setting<infer V, any> ? V : never;
11
+ export type ExtractSettingValues<TSettings extends SettingsMap> = {
12
+ readonly [K in keyof TSettings]: TSettings[K] extends Setting<infer V, any> ? V : TSettings[K] extends SettingGroup<infer S> ? ExtractSettingValues<S> : unknown;
13
+ };
14
+ export type ExtractSettingValuesOptional<TSettings extends SettingsMap> = {
15
+ [K in keyof TSettings]?: TSettings[K] extends Setting<infer V, any> ? V : TSettings[K] extends SettingGroup<infer S> ? ExtractSettingValuesOptional<S> : unknown;
16
+ };
17
+ export type DeepPartial<T> = {
18
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
19
+ };
20
+ export type SettingChangeCallback<T> = (value: T) => void;
21
+ export type SettingBlurCallback = () => void;
22
+ export type SerializedSettingValues = Record<string, unknown>;
23
+ export type MobileSettingValues<TSettings extends SettingsMap> = {
24
+ [K in keyof TSettings]?: TSettings[K] extends Setting<infer V, any> ? V : TSettings[K] extends SettingGroup<infer S> ? MobileSettingValues<S> : unknown;
25
+ };
26
+ export type SettingChanges<TSettings extends SettingsMap> = ExtractSettingValuesOptional<TSettings>;
27
+ export declare function isSetting(value: unknown): value is SettingInstance;
28
+ export declare function isSettingGroup(value: unknown): value is SettingGroupInstance;
29
+ export declare function isSettingChild(value: unknown): value is SettingChild;
30
+ export type SettingIteratorCallback<TSettings extends SettingsMap> = (key: keyof TSettings, setting: TSettings[typeof key]) => void;
31
+ export type SettingsToProps<T> = T extends SettingGroup<infer S> ? ExtractSettingValues<S> : T extends {
32
+ getValues(): infer R;
33
+ } ? R : never;
34
+ export type { Setting, SettingGroup };
@@ -0,0 +1 @@
1
+ export declare function deepClone<T>(obj: T): T;
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Nesting Calculator Utility
3
+ *
4
+ * This module provides functions to automatically calculate and apply
5
+ * nesting levels to setting groups based on their DOM hierarchy or
6
+ * programmatic structure.
7
+ */
8
+ /**
9
+ * Calculate nesting level from DOM hierarchy
10
+ */
11
+ export declare function calculateDOMNestingLevel(element: HTMLElement): number;
12
+ /**
13
+ * Apply nesting styles to an element based on level
14
+ */
15
+ export declare function applyNestingStyles(element: HTMLElement, level: number): void;
16
+ /**
17
+ * Recursively apply nesting levels to all child setting groups
18
+ */
19
+ export declare function applyNestingToChildren(container: HTMLElement, parentLevel?: number): void;
20
+ /**
21
+ * Auto-detect and apply nesting for all setting groups in a container
22
+ */
23
+ export declare function autoDetectAndApplyNesting(container?: HTMLElement): void;
24
+ /**
25
+ * Calculate nesting level from object structure
26
+ */
27
+ export declare function calculateStructuralNestingLevel(settingPath: string[]): number;
28
+ /**
29
+ * Nesting level configuration
30
+ */
31
+ export interface NestingConfig {
32
+ maxLevel: number;
33
+ spacingMultiplier: number;
34
+ visualIndentMultiplier: number;
35
+ enableAutoDetection: boolean;
36
+ }
37
+ export declare const DEFAULT_NESTING_CONFIG: NestingConfig;
38
+ /**
39
+ * Nesting Calculator class for more advanced usage
40
+ */
41
+ export declare class NestingCalculator {
42
+ private config;
43
+ private observedElements;
44
+ private observer?;
45
+ constructor(config?: Partial<NestingConfig>);
46
+ /**
47
+ * Setup automatic detection using MutationObserver
48
+ */
49
+ private setupAutoDetection;
50
+ /**
51
+ * Add element to be tracked for nesting updates
52
+ */
53
+ trackElement(element: HTMLElement): void;
54
+ /**
55
+ * Remove element from tracking
56
+ */
57
+ untrackElement(element: HTMLElement): void;
58
+ /**
59
+ * Update nesting for a specific element
60
+ */
61
+ updateElementNesting(element: HTMLElement): void;
62
+ /**
63
+ * Update nesting for all tracked elements
64
+ */
65
+ updateAllNesting(): void;
66
+ /**
67
+ * Apply nesting with configuration
68
+ */
69
+ private applyNestingWithConfig;
70
+ /**
71
+ * Force recalculate all nesting in a container
72
+ */
73
+ recalculateNesting(container?: HTMLElement): void;
74
+ /**
75
+ * Get nesting statistics for debugging
76
+ */
77
+ getNestingStats(): {
78
+ [level: number]: number;
79
+ };
80
+ /**
81
+ * Cleanup observer and tracked elements
82
+ */
83
+ destroy(): void;
84
+ }
85
+ /**
86
+ * Global nesting calculator instance
87
+ */
88
+ export declare const globalNestingCalculator: NestingCalculator;
89
+ /**
90
+ * Convenience function to enable automatic nesting detection
91
+ */
92
+ export declare function enableAutoNesting(config?: Partial<NestingConfig>): void;
93
+ /**
94
+ * Convenience function to disable automatic nesting detection
95
+ */
96
+ export declare function disableAutoNesting(): void;
@@ -0,0 +1,13 @@
1
+ import { ExtractSettingValues as NewExtractSettingValues, DeepPartial as NewDeepPartial, SettingsMap, SettingChild } from '../types/index';
2
+ export * from '../types/index';
3
+ export type SettingsToProps<T> = T extends {
4
+ getValues(): infer R;
5
+ } ? R : never;
6
+ export type InferSettingsProps<T> = T extends {
7
+ getValues(): infer R;
8
+ } ? R : never;
9
+ /** @deprecated Use DeepPartial from "../../types" instead */
10
+ export type SettingsToPropsOptional<T> = NewDeepPartial<NewExtractSettingValues<T extends SettingsMap ? T : never>>;
11
+ export declare function isSettingGroup(value: unknown): value is SettingChild;
12
+ /** @deprecated Use isSetting from "../../types" instead */
13
+ export declare function isSetting(value: unknown): value is SettingChild;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "builder-settings-types",
3
3
  "description": "builder settings",
4
- "version": "0.0.224",
4
+ "version": "0.0.229",
5
5
  "type": "module",
6
6
  "main": "dist/builder-settings-types.cjs.js",
7
7
  "module": "dist/builder-settings-types.es.js",