builder-settings-types 0.0.57 → 0.0.59
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/builder-settings-types.cjs.js +84 -36
- package/dist/builder-settings-types.es.js +548 -284
- package/dist/index.css +1 -1
- package/dist/index.d.ts +113 -5
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";.setting-group{padding:16px;display:flex;flex-direction:column;gap:8px;border-bottom:solid 1px var(--color-border);border-radius:8px;background-color:var(--color-bg)}.setting-group .setting-group{background-color:var(--color-white)!important;padding:12px;border-bottom:unset;border:1px solid var(--color-border-secondary);box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808}.setting-group-title{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.setting-group-title h3{font-size:14px;font-weight:700;line-height:24px}.setting-group-arrow{display:flex;transition:transform .3s ease-in-out}.setting-group-arrow.rotated{transform:rotate(180deg)}.setting-group-content{flex-direction:column;gap:8px;max-height:fit-content;display:flex;transition:max-height .3s ease-in-out,display .2s ease-in-out}.setting-group-content.collapsed{max-height:0;display:none}.icon-container{display:flex;align-items:center;gap:4px}.input-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text)}.input-label{color:var(--color-text)}.input-container{display:inline-flex;align-items:center;position:relative}.with-suffix{flex:1;padding-right:36px}.input-suffix{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#666;pointer-events:none;font-size:.9em}.string-setting-wrapper{display:flex;justify-content:space-between;align-items:center}.string-setting-input{max-width:120px;padding:8px;font-size:14px;border-radius:8px;color:var(--color-input-text);border:1px solid var(--color-border);background:var(--color-bg)}.color-setting-wrapper{display:flex;align-items:center;justify-content:space-between;gap:2px}.color-input-wrapper{position:relative;padding:8px 8px 8px 4px;width:120px;height:33px;display:flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg)}.color-text-input{border:none;outline:none;width:65px;color:var(--color-input-text);font-size:14px;text-align:center;background:transparent}.color-picker{position:absolute;left:0;top:0;width:25px;height:25px;opacity:0;cursor:pointer}.color-preview{width:25px;height:25px;border-radius:4px}.number-setting-wrapper{display:flex;align-items:center;justify-content:space-between}.number-setting-input{width:120px;padding:8px;font-size:14px;border-radius:8px;color:var(--color-input-text);border:1px solid var(--color-border);background:var(--color-bg);box-sizing:border-box}.suffix-wrapper{position:relative;display:inline-flex;align-items:center}.suffix-label{position:absolute;right:8px;padding-left:8px;top:50%;transform:translateY(-50%);border-left:1px solid var(--color-divider);font-size:12px;color:var(--color-text)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.select-container{display:flex;align-items:center;gap:4px;justify-content:space-between}.select{width:120px;padding:8px;font-size:14px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg);cursor:pointer}.select:focus{outline:none}.align-setting-wrapper{display:flex;align-items:center;justify-content:space-between}.align-setting-label{font-size:12px;color:var(--color-text)}.align-options-container{width:120px;color:#0006;background-color:#f5f6f7;border-radius:9999px;padding:4px 13px;display:flex;gap:8px}.align-option-button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:none;cursor:pointer;border-radius:50%;transition:background-color .2s,color .2s}.align-option-button:hover{background-color:#fff}.align-option-button.selected{background-color:var(--color-white);color:var(--color-black)}.button-setting-wrapper{display:flex;justify-content:center}.button-setting{padding:8px 16px;background-color:var(--button-bg, #007bff);color:var(--button-color, #fff);border:none;border-radius:4px;cursor:pointer;font-size:14px}.button-setting:hover{background-color:var(--button-bg-hover, #0056b3)}.dimension-setting-container{display:flex;flex-direction:column;gap:8px;position:relative}.dimension-bracket{width:18px;height:42px;position:absolute;top:16px;right:122px;display:flex;align-items:center;justify-content:center}.dimension-bracket:before{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 1H5C2.79086 1 1 2.79086 1 5V15' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;top:0;right:1px}.dimension-bracket:after{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 14H5C2.79086 14 1 12.2091 1 10V4.76837e-07' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;bottom:0;right:1px}.dimension-lock-icon{width:24px;height:24px;background:none;cursor:pointer;display:inline-flex;align-items:center;color:#667085;z-index:1}.dimension-lock-icon:hover{color:#000}.upload-setting-wrapper{display:flex;align-items:center;justify-content:space-between}.upload-preview{width:91px;height:71px;object-fit:cover;border-radius:4px}.upload-button{display:inline-flex;align-items:center;gap:4px;padding:5px 4px;background-color:var(--color-white);border:1px solid var(--color-border-secondary);border-radius:8px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.upload-icon{padding:7px 8px 8px 7px;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-icon);border-radius:28px}.upload-label{display:inline-block;font-size:12px;font-weight:600;color:var(--color-btn-text);transition:transform .15s ease}.upload-button:hover{transform:scale(1.02);box-shadow:0 2px 6px #0000001a}:root{--color-border: #d0d5dd;--color-bg: #f8f8f8;--color-border-secondary: #eaecf0;--color-text: #667085;--color-title: #344054;--color-input-text: #292b2e;--color-white: #fff;--color-black: #000;--color-divider: #dcdcdc;--color-btn-text: #4b4b4b;--color-bg-icon: #f2f4f7}*{padding:0;margin:0;border:none}*,*:before,*:after{box-sizing:border-box}a,a:link,a:visited,a:hover{text-decoration:none}body{font-family:Inter,serif;font-weight:400;font-size:12px;line-height:18px}aside,nav,footer,header,section,main{display:block}h1,h2,h3,h4,h5,h6,p{font-size:inherit;font-weight:inherit}ul,ul li{list-style:none}img{vertical-align:top}img,svg{max-width:100%;height:auto}address{font-style:normal}input,textarea,button,select{font-family:inherit;font-size:inherit;color:inherit;background-color:transparent}input::-ms-clear{display:none}button,input[type=submit]{display:inline-block;box-shadow:none;background-color:transparent;background:none;cursor:pointer}input:focus,input:active,button:focus,button:active{outline:none}button::-moz-focus-inner{padding:0;border:0}label{cursor:pointer}legend{display:block}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";.setting-group{padding:16px;display:flex;flex-direction:column;gap:8px;border-bottom:solid 1px var(--color-border);border-radius:8px;background-color:var(--color-bg)}.setting-group .setting-group{background-color:var(--color-white)!important;padding:12px;border-bottom:unset;border:1px solid var(--color-border-secondary);box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808}.setting-group-title{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.setting-group-title h3{font-size:14px;font-weight:700;line-height:24px}.setting-group-arrow{display:flex;transition:transform .3s ease-in-out}.setting-group-arrow.rotated{transform:rotate(180deg)}.setting-group-content{flex-direction:column;gap:8px;max-height:fit-content;display:flex;transition:max-height .3s ease-in-out,display .2s ease-in-out}.setting-group-content.collapsed{max-height:0;display:none}.icon-container{display:flex;align-items:center;gap:4px}.input-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text)}.input-label{color:var(--color-text)}.input-container{display:inline-flex;align-items:center;position:relative}.with-suffix{flex:1;padding-right:36px}.input-suffix{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#666;pointer-events:none;font-size:.9em}.string-setting-wrapper{display:flex;justify-content:space-between;align-items:center}.string-setting-input{max-width:120px;padding:8px;font-size:14px;border-radius:8px;color:var(--color-input-text);border:1px solid var(--color-border);background:var(--color-bg)}.color-setting-wrapper{display:flex;align-items:center;justify-content:space-between;gap:2px}.color-input-wrapper{position:relative;padding:8px 8px 8px 4px;width:120px;height:33px;display:flex;align-items:center;gap:4px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg)}.color-text-input{border:none;outline:none;width:65px;color:var(--color-input-text);font-size:14px;text-align:center;background:transparent}.color-picker{position:absolute;left:0;top:0;width:25px;height:25px;opacity:0;cursor:pointer}.color-preview{width:25px;height:25px;border-radius:4px}.number-setting-wrapper{display:flex;align-items:center;justify-content:space-between}.number-setting-input{width:120px;padding:8px;font-size:14px;border-radius:8px;color:var(--color-input-text);border:1px solid var(--color-border);background:var(--color-bg);box-sizing:border-box}.suffix-wrapper{position:relative;display:inline-flex;align-items:center}.suffix-label{position:absolute;right:8px;padding-left:8px;top:50%;transform:translateY(-50%);border-left:1px solid var(--color-divider);font-size:12px;color:var(--color-text)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.select-container{display:flex;align-items:center;gap:4px;justify-content:space-between}.select{width:120px;padding:8px;font-size:14px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg);cursor:pointer}.select:focus{outline:none}.align-setting-wrapper{display:flex;align-items:center;justify-content:space-between}.align-setting-label{font-size:12px;color:var(--color-text)}.align-options-container{width:120px;color:#0006;background-color:#f5f6f7;border-radius:9999px;padding:4px 13px;display:flex;gap:8px}.align-option-button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:none;cursor:pointer;border-radius:50%;transition:background-color .2s,color .2s}.align-option-button:hover{background-color:#fff}.align-option-button.selected{background-color:var(--color-white);color:var(--color-black)}.button-setting-wrapper{display:flex;justify-content:center}.button-setting{padding:8px 16px;background-color:var(--button-bg, #007bff);color:var(--button-color, #fff);border:none;border-radius:4px;cursor:pointer;font-size:14px}.button-setting:hover{background-color:var(--button-bg-hover, #0056b3)}.dimension-setting-container{display:flex;flex-direction:column;gap:8px;position:relative}.dimension-bracket{width:18px;height:42px;position:absolute;top:16px;right:122px;display:flex;align-items:center;justify-content:center}.dimension-bracket:before{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 1H5C2.79086 1 1 2.79086 1 5V15' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;top:0;right:1px}.dimension-bracket:after{content:"";position:absolute;width:13px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='15' viewBox='0 0 14 15' fill='none'><path d='M14 14H5C2.79086 14 1 12.2091 1 10V4.76837e-07' stroke='%23667085'/></svg>") no-repeat center center;background-size:contain;bottom:0;right:1px}.dimension-lock-icon{width:24px;height:24px;background:none;cursor:pointer;display:inline-flex;align-items:center;color:#667085;z-index:1}.dimension-lock-icon:hover{color:#000}.upload-setting-wrapper{display:flex;align-items:center;justify-content:space-between}.upload-preview{width:91px;height:71px;object-fit:cover;border-radius:4px}.upload-button{display:inline-flex;align-items:center;gap:4px;padding:5px 4px;background-color:var(--color-white);border:1px solid var(--color-border-secondary);border-radius:8px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.upload-icon{padding:7px 8px 8px 7px;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-icon);border-radius:28px}.upload-label{display:inline-block;font-size:12px;font-weight:600;color:var(--color-btn-text);transition:transform .15s ease}.upload-button:hover{transform:scale(1.02);box-shadow:0 2px 6px #0000001a}.tab-delete-button{background:transparent;border:none;cursor:pointer;padding:2px 4px}.tab-delete-button svg{width:16px;height:16px}.tabs-add-btn-container{display:flex;justify-content:flex-end}.tabs-add-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:14px;color:#667085;transition:transform .15s ease,box-shadow .3s ease}.tabs-add-button:hover{transform:scale(1);box-shadow:0 2px 6px #0000001a}.add-icon{display:flex;align-items:center;width:18px}.add-label{display:inline-block}.bgset-or-label{margin:8px 0;text-align:center;font-weight:500;color:#667085}:root{--color-border: #d0d5dd;--color-bg: #f8f8f8;--color-border-secondary: #eaecf0;--color-text: #667085;--color-title: #344054;--color-input-text: #292b2e;--color-white: #fff;--color-black: #000;--color-divider: #dcdcdc;--color-btn-text: #4b4b4b;--color-bg-icon: #f2f4f7}*{padding:0;margin:0;border:none}*,*:before,*:after{box-sizing:border-box}a,a:link,a:visited,a:hover{text-decoration:none}body{font-family:Inter,serif;font-weight:400;font-size:12px;line-height:18px}aside,nav,footer,header,section,main{display:block}h1,h2,h3,h4,h5,h6,p{font-size:inherit;font-weight:inherit}ul,ul li{list-style:none}img{vertical-align:top}img,svg{max-width:100%;height:auto}address{font-style:normal}input,textarea,button,select{font-family:inherit;font-size:inherit;color:inherit;background-color:transparent}input::-ms-clear{display:none}button,input[type=submit]{display:inline-block;box-shadow:none;background-color:transparent;background:none;cursor:pointer}input:focus,input:active,button:focus,button:active{outline:none}button::-moz-focus-inner{padding:0;border:0}label{cursor:pointer}legend{display:block}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,53 @@ export declare interface AlignSettingProps extends SettingProps<AlignValue> {
|
|
|
10
10
|
|
|
11
11
|
export declare type AlignValue = 'left' | 'center' | 'right';
|
|
12
12
|
|
|
13
|
+
export declare class BackgroundSettingSet extends SettingGroup<{
|
|
14
|
+
backgroundImage: UploadSetting;
|
|
15
|
+
opacity: OpacitySetting;
|
|
16
|
+
backgroundColor: ColorSetting;
|
|
17
|
+
opacityBG: OpacitySetting;
|
|
18
|
+
}> {
|
|
19
|
+
/**
|
|
20
|
+
* Constructs a new BackgroundSettingSet.
|
|
21
|
+
*
|
|
22
|
+
* @param props An object that may include default values for each setting and additional
|
|
23
|
+
* properties for the UploadSetting via `uploadProps`.
|
|
24
|
+
*
|
|
25
|
+
* Example:
|
|
26
|
+
* {
|
|
27
|
+
* backgroundImage: 'https://example.com/myimage.png',
|
|
28
|
+
* opacity: 80,
|
|
29
|
+
* backgroundColor: '#00141E',
|
|
30
|
+
* opacityBG: 90,
|
|
31
|
+
* uploadProps: {
|
|
32
|
+
* uploadUrl: 'https://st-admapi.onaim.io/api/File/UploadImage',
|
|
33
|
+
* requestMethod: 'POST',
|
|
34
|
+
* requestHeaders: {
|
|
35
|
+
* accept: 'text/plain',
|
|
36
|
+
* Authorization: 'bearer <your-token-here>',
|
|
37
|
+
* },
|
|
38
|
+
* formFieldName: 'File',
|
|
39
|
+
* parseResponse: (data) => data.data.url,
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
*/
|
|
43
|
+
constructor(props?: {
|
|
44
|
+
backgroundImage?: string;
|
|
45
|
+
opacity?: number;
|
|
46
|
+
backgroundColor?: string;
|
|
47
|
+
opacityBG?: number;
|
|
48
|
+
uploadProps?: UploadSettingProps;
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* Override draw() to reorder the child settings and insert an "OR" label between the two sections.
|
|
52
|
+
*/
|
|
53
|
+
draw(): HTMLElement;
|
|
54
|
+
/**
|
|
55
|
+
* Helper method to generate CSS based on the current settings.
|
|
56
|
+
*/
|
|
57
|
+
getCssCode(): string;
|
|
58
|
+
}
|
|
59
|
+
|
|
13
60
|
/**
|
|
14
61
|
* A SettingGroup for configuring "Border" settings.
|
|
15
62
|
* It includes child settings for color, opacity, radius, and size.
|
|
@@ -17,7 +64,7 @@ export declare type AlignValue = 'left' | 'center' | 'right';
|
|
|
17
64
|
*/
|
|
18
65
|
export declare class BorderSettingSet extends SettingGroup<{
|
|
19
66
|
color: ColorSetting;
|
|
20
|
-
opacity:
|
|
67
|
+
opacity: OpacitySetting;
|
|
21
68
|
radius: NumberSetting;
|
|
22
69
|
size: NumberSetting;
|
|
23
70
|
}> {
|
|
@@ -113,6 +160,33 @@ export declare interface DimensionValue {
|
|
|
113
160
|
height: number;
|
|
114
161
|
}
|
|
115
162
|
|
|
163
|
+
declare interface HeaderTypographySettings {
|
|
164
|
+
colorDefault?: string;
|
|
165
|
+
colorOpacityDefault?: number;
|
|
166
|
+
fontFamilyDefault?: string;
|
|
167
|
+
fontFamilyOptions?: SelectOption[];
|
|
168
|
+
fontFamilyGetOptions?: () => SelectOption[];
|
|
169
|
+
fontFamilyGetOptionsAsync?: () => Promise<SelectOption[]>;
|
|
170
|
+
fontWeightDefault?: string;
|
|
171
|
+
fontWeightOptions?: SelectOption[];
|
|
172
|
+
fontWeightGetOptions?: () => SelectOption[];
|
|
173
|
+
fontWeightGetOptionsAsync?: () => Promise<SelectOption[]>;
|
|
174
|
+
fontSizeDefault?: number;
|
|
175
|
+
alignDefault?: AlignValue;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export declare class HeaderTypographySettingSet extends SettingGroup<{
|
|
179
|
+
color: ColorSetting;
|
|
180
|
+
opacity: OpacitySetting;
|
|
181
|
+
fontFamily: SelectSetting<string>;
|
|
182
|
+
fontWeight: SelectSetting<string>;
|
|
183
|
+
fontSize: NumberSetting;
|
|
184
|
+
align: AlignSetting_2;
|
|
185
|
+
}> {
|
|
186
|
+
constructor(props?: HeaderTypographySettings);
|
|
187
|
+
getCssCode(): string;
|
|
188
|
+
}
|
|
189
|
+
|
|
116
190
|
export declare interface IChangable<T> {
|
|
117
191
|
setOnChange(onChange: (value: T) => void): void;
|
|
118
192
|
}
|
|
@@ -277,10 +351,39 @@ export declare interface StringSettingsProps extends SettingProps<string> {
|
|
|
277
351
|
wrapperClassName?: string;
|
|
278
352
|
}
|
|
279
353
|
|
|
354
|
+
export declare class TabsContainerGroup extends SettingGroup<Record<string, TabSettingGroup>> {
|
|
355
|
+
private tabs;
|
|
356
|
+
private _el;
|
|
357
|
+
constructor();
|
|
358
|
+
/** Adds a new tab. */
|
|
359
|
+
addTab(): void;
|
|
360
|
+
/** Removes a specific tab. */
|
|
361
|
+
removeTab(tab: TabSettingGroup): void;
|
|
362
|
+
/** Relabels tabs sequentially after removal. */
|
|
363
|
+
private relabelTabs;
|
|
364
|
+
/**
|
|
365
|
+
* Override draw() so we can store the created DOM element
|
|
366
|
+
* and add the "Add Tab" button in a container positioned at the bottom-right.
|
|
367
|
+
*/
|
|
368
|
+
draw(): HTMLElement;
|
|
369
|
+
/**
|
|
370
|
+
* Re-renders the inner settings content based on the current tabs.
|
|
371
|
+
*/
|
|
372
|
+
rerender(): void;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
declare class TabSettingGroup extends SettingGroup<{
|
|
376
|
+
name: StringSetting;
|
|
377
|
+
content: StringSetting;
|
|
378
|
+
}> {
|
|
379
|
+
private onDeleteCallback?;
|
|
380
|
+
constructor(index: number, onDelete: () => void);
|
|
381
|
+
draw(): HTMLElement;
|
|
382
|
+
}
|
|
383
|
+
|
|
280
384
|
/**
|
|
281
|
-
* A Setting subclass that
|
|
282
|
-
*
|
|
283
|
-
* which updates this.value with a data URL of the image.
|
|
385
|
+
* A Setting subclass that uploads the selected image file to a remote endpoint,
|
|
386
|
+
* using fully configurable request properties (URL, headers, etc.).
|
|
284
387
|
*/
|
|
285
388
|
export declare class UploadSetting extends Setting<string, UploadSettingProps> {
|
|
286
389
|
inputType: InputTypes;
|
|
@@ -289,8 +392,13 @@ export declare class UploadSetting extends Setting<string, UploadSettingProps> {
|
|
|
289
392
|
}
|
|
290
393
|
|
|
291
394
|
export declare interface UploadSettingProps extends SettingProps<string> {
|
|
292
|
-
/**
|
|
395
|
+
/** Placeholder or initial URL to display in preview if no file is uploaded yet. */
|
|
293
396
|
defaultUrl?: string;
|
|
397
|
+
uploadUrl?: string;
|
|
398
|
+
requestMethod?: string;
|
|
399
|
+
requestHeaders?: Record<string, string>;
|
|
400
|
+
formFieldName?: string;
|
|
401
|
+
parseResponse?: (responseData: any) => string;
|
|
294
402
|
}
|
|
295
403
|
|
|
296
404
|
export { }
|
package/package.json
CHANGED