@g1cloud/open-bluesea-core 1.0.0-alpha.1
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/css/bluesea.css +95 -0
- package/dist/blueseaPlugin.d.ts +36 -0
- package/dist/component/basic/PageNavigation.model.d.ts +5 -0
- package/dist/contextmenu/contextMenuPlugin.d.ts +36 -0
- package/dist/directive/vClickOutside.d.ts +20 -0
- package/dist/directive/vFocusOnLoad.d.ts +3 -0
- package/dist/directive/vTooltip.d.ts +7 -0
- package/dist/index.d.ts +35 -0
- package/dist/model/CommonTypes.d.ts +29 -0
- package/dist/model/DefaultImpl.d.ts +7 -0
- package/dist/model/FieldContext.d.ts +14 -0
- package/dist/notification/notificationPlugin.d.ts +31 -0
- package/dist/open-bluesea-core.css +1 -0
- package/dist/open-bluesea-core.es.js +2371 -0
- package/dist/open-bluesea-core.umd.js +1 -0
- package/dist/savepoint/SavePoint.d.ts +46 -0
- package/dist/util/componentUtil.d.ts +11 -0
- package/dist/util/debounceUtil.d.ts +16 -0
- package/dist/util/formatUtil.d.ts +67 -0
- package/dist/util/typeUtil.d.ts +18 -0
- package/dist/util/waitUtil.d.ts +19 -0
- package/dist/validator/FieldValidator.d.ts +43 -0
- package/package.json +44 -0
package/css/bluesea.css
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
@import '../dist/open-bluesea-core.css';
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--white: #ffffff;
|
|
5
|
+
--black: #000000;
|
|
6
|
+
--gray-100: #FAFAFA;
|
|
7
|
+
--gray-200: #EAEAEA;
|
|
8
|
+
--gray-300: #CCCCCC;
|
|
9
|
+
--gray-400: #A9A9A9;
|
|
10
|
+
--gray-500: #666666;
|
|
11
|
+
--gray-600: #555555;
|
|
12
|
+
--gray-700: #444444;
|
|
13
|
+
--gray-800: #292929;
|
|
14
|
+
--primary-100: #EAF1FE;
|
|
15
|
+
--primary-200: #DDEEFF;
|
|
16
|
+
--primary-300: #B7D2FA;
|
|
17
|
+
--primary-400: #A4B4FF;
|
|
18
|
+
--primary-500: #5672EF;
|
|
19
|
+
--primary-600: #232E8F;
|
|
20
|
+
--blue: #5672EF;
|
|
21
|
+
--blue-bg: #DDEEFF;
|
|
22
|
+
--red: #EB0000;
|
|
23
|
+
--red-bg: #FFE3E2;
|
|
24
|
+
--orange: #F99341;
|
|
25
|
+
--orange-bg: #FFF8DE;
|
|
26
|
+
--green: #2FA04D;
|
|
27
|
+
--green-bg: #E9FEE7;
|
|
28
|
+
--purple: #945BD9;
|
|
29
|
+
--purple-bg: #EAD8FF;
|
|
30
|
+
--gray-bg: #EAEAEA;
|
|
31
|
+
--color-text: #555555;
|
|
32
|
+
--color-text-light: #A9A9A9;
|
|
33
|
+
--color-gray: #666666;
|
|
34
|
+
--color-gray-border: #CCCCCC;
|
|
35
|
+
--color-icon-light: #D5D5D5;
|
|
36
|
+
--border: #CCCCCC;
|
|
37
|
+
--border-light: #EAEAEA;
|
|
38
|
+
--color-hover: #E8EEFC;
|
|
39
|
+
--color-focus: #5672EF;
|
|
40
|
+
--color-error: #EB0000;
|
|
41
|
+
--primary: #5672EF;
|
|
42
|
+
--secondary: #F99341;
|
|
43
|
+
--success: #2FA04D;
|
|
44
|
+
--info: #5672EF;
|
|
45
|
+
--warning: #F99341;
|
|
46
|
+
--danger: #EB0000;
|
|
47
|
+
--light: #FAFAFA;
|
|
48
|
+
--dark: #444444;
|
|
49
|
+
--gray: #A9A9A9;
|
|
50
|
+
--border-width: 1px;
|
|
51
|
+
--border-radius: 0.25rem;
|
|
52
|
+
--border-radius-lg: 0.3rem;
|
|
53
|
+
--border-radius-sm: 0.2rem;
|
|
54
|
+
--rounded-pill: 50rem;
|
|
55
|
+
--rounded-circle: 50%;
|
|
56
|
+
--border-input: 0.8px solid #EAEAEA;
|
|
57
|
+
--icon-font-family: Material Symbols Outlined, monospace;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:root {
|
|
61
|
+
--header-bg: #5672EF;
|
|
62
|
+
--header-text: #ffffff;
|
|
63
|
+
--body-bg: #ffffff;
|
|
64
|
+
--body-text: #000000;
|
|
65
|
+
--button-default-bg: #ffffff;
|
|
66
|
+
--button-default-text: #555555;
|
|
67
|
+
--header-tab-bg: #A4B4FF;
|
|
68
|
+
--header-tab-selected: #ffffff;
|
|
69
|
+
--header-tab-text: #555555;
|
|
70
|
+
--border: #CCCCCC;
|
|
71
|
+
--border-light: #EAEAEA;
|
|
72
|
+
--border-hover: #000000;
|
|
73
|
+
--color-hover: #E8EEFC;
|
|
74
|
+
--colored-bg: #EAF1FE;
|
|
75
|
+
--radio-group: #A9A9A9;
|
|
76
|
+
--gray-100: #FAFAFA;
|
|
77
|
+
--gray-200: #EAEAEA;
|
|
78
|
+
--gray-400: #A9A9A9;
|
|
79
|
+
--gray-500: #666666;
|
|
80
|
+
--primary-100: #EAF1FE;
|
|
81
|
+
--primary-200: #DDEEFF;
|
|
82
|
+
--primary-300: #B7D2FA;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.font-icon {
|
|
86
|
+
font-family: var(--icon-font-family);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.bs-ml-4 {
|
|
90
|
+
margin-left: 4px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.bs-mr-4 {
|
|
94
|
+
margin-right: 4px;
|
|
95
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type InjectionKey, type Plugin } from "vue";
|
|
2
|
+
import type { DisplayDateResolution } from "./model/CommonTypes";
|
|
3
|
+
export type PopupComponentConfig = {
|
|
4
|
+
container?: string | HTMLElement;
|
|
5
|
+
hideOnScroll?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type ComponentConfig = {
|
|
8
|
+
popup?: PopupComponentConfig;
|
|
9
|
+
};
|
|
10
|
+
export declare class BlueseaConfig {
|
|
11
|
+
dateFormat: string;
|
|
12
|
+
dateFormatDay: string;
|
|
13
|
+
dateFormatMinute: string;
|
|
14
|
+
dateFormatSecond: string;
|
|
15
|
+
minDateValue: string;
|
|
16
|
+
maxDateValue: string;
|
|
17
|
+
componentConfig: ComponentConfig;
|
|
18
|
+
constructor(config?: BlueseaConfigRaw);
|
|
19
|
+
resolveDisplayDateFormat(format?: string | DisplayDateResolution): string;
|
|
20
|
+
}
|
|
21
|
+
export type BlueseaConfigRaw = {
|
|
22
|
+
dateFormat?: string;
|
|
23
|
+
dateFormatDay?: string;
|
|
24
|
+
dateFormatMinute?: string;
|
|
25
|
+
dateFormatSecond?: string;
|
|
26
|
+
minDateValue?: string;
|
|
27
|
+
maxDateValue?: string;
|
|
28
|
+
componentConfig?: ComponentConfig;
|
|
29
|
+
};
|
|
30
|
+
export declare const BlueseaConfigKey: InjectionKey<BlueseaConfig>;
|
|
31
|
+
/**
|
|
32
|
+
* App 에 provide 된 BlueseaConfig 를 리턴한다.
|
|
33
|
+
* @returns BlueseaConfig
|
|
34
|
+
*/
|
|
35
|
+
export declare const useBlueseaConfig: () => BlueseaConfig;
|
|
36
|
+
export declare const BlueseaPlugin: Plugin;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type Component } from "vue";
|
|
2
|
+
export declare const ContextMenuPluginKey: unique symbol;
|
|
3
|
+
export type MenuItem = {
|
|
4
|
+
type?: 'menu' | 'link' | 'route' | 'separator' | 'custom';
|
|
5
|
+
menuId?: string;
|
|
6
|
+
caption?: string;
|
|
7
|
+
component?: Component;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
handler?: () => void;
|
|
10
|
+
href?: string;
|
|
11
|
+
target?: string;
|
|
12
|
+
children?: MenuItem[];
|
|
13
|
+
};
|
|
14
|
+
export type MenuPosition = {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
};
|
|
18
|
+
export type ContextMenuOptions = {
|
|
19
|
+
zIndex?: number;
|
|
20
|
+
onHideContextMenu?: () => void;
|
|
21
|
+
};
|
|
22
|
+
export type MousePosition = {
|
|
23
|
+
clientX: number;
|
|
24
|
+
clientY: number;
|
|
25
|
+
};
|
|
26
|
+
export declare class BSContextMenuPlugin {
|
|
27
|
+
contextMenuItems: import("vue").Ref<MenuItem[] | undefined, MenuItem[] | undefined>;
|
|
28
|
+
position: import("vue").Ref<MenuPosition | undefined, MenuPosition | undefined>;
|
|
29
|
+
options: import("vue").Ref<ContextMenuOptions | undefined, ContextMenuOptions | undefined>;
|
|
30
|
+
showContextMenu(event: MousePosition, menus: MenuItem[], options?: ContextMenuOptions): void;
|
|
31
|
+
hideContextMenu(): void;
|
|
32
|
+
private markComponentRaw;
|
|
33
|
+
}
|
|
34
|
+
export declare const useContextMenu: () => BSContextMenuPlugin;
|
|
35
|
+
export declare const useContextMenuOptional: () => BSContextMenuPlugin | undefined;
|
|
36
|
+
export declare const createContextMenuPlugin: () => BSContextMenuPlugin;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ObjectDirective } from "vue";
|
|
2
|
+
type ClickOutsideContext = {
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
handler: () => void;
|
|
5
|
+
insideElements?: (HTMLElement | string | undefined)[];
|
|
6
|
+
};
|
|
7
|
+
declare global {
|
|
8
|
+
interface HTMLElement {
|
|
9
|
+
vClickOutsideListener?: (event: MouseEvent) => void;
|
|
10
|
+
vClickOutsideContext?: ClickOutsideContext;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ```
|
|
15
|
+
* v-click-outside="() => someFunction()"
|
|
16
|
+
* v-click-outside="{enabled: true, handler: () => someFunction()}"
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
declare const vClickOutside: ObjectDirective;
|
|
20
|
+
export default vClickOutside;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export { BlueseaPlugin } from '@/blueseaPlugin';
|
|
2
|
+
export type * from '@/blueseaPlugin';
|
|
3
|
+
export { default as BSButton } from '@/component/basic/BSButton.vue';
|
|
4
|
+
export { default as BSPageNavigation } from '@/component/basic/BSPageNavigation.vue';
|
|
5
|
+
export { default as BSLoadingIcon } from '@/component/basic/BSLoadingIcon.vue';
|
|
6
|
+
export { default as BSPopup } from '@/component/basic/BSPopup.vue';
|
|
7
|
+
export { default as BSTooltip } from '@/component/basic/BSTooltip.vue';
|
|
8
|
+
export { default as BSTextInput } from '@/component/input/BSTextInput.vue';
|
|
9
|
+
export { default as BSNumberInput } from '@/component/input/BSNumberInput.vue';
|
|
10
|
+
export { default as BSTextArea } from '@/component/input/BSTextArea.vue';
|
|
11
|
+
export { default as BSCheckbox } from '@/component/input/BSCheckbox.vue';
|
|
12
|
+
export { default as BSCheckboxGroup } from '@/component/input/BSCheckboxGroup.vue';
|
|
13
|
+
export { default as BSRadioButton } from '@/component/input/BSRadioButton.vue';
|
|
14
|
+
export { default as BSRadioButtonGroup } from '@/component/input/BSRadioButtonGroup.vue';
|
|
15
|
+
export { default as BSSelect } from '@/component/input/BSSelect.vue';
|
|
16
|
+
export { default as BSMultiSelect } from '@/component/input/BSMultiSelect.vue';
|
|
17
|
+
export { default as BSCardLayout } from '@/component/layout/BSCardLayout.vue';
|
|
18
|
+
export { default as BSNotificationContainer } from '@/notification/BSNotificationContainer.vue';
|
|
19
|
+
export { default as BSContextMenuContainer } from '@/contextmenu/BSContextMenuContainer.vue';
|
|
20
|
+
export { default as BSContextMenu } from '@/contextmenu/BSContextMenu.vue';
|
|
21
|
+
export * from '@/contextmenu/contextMenuPlugin';
|
|
22
|
+
export type * from '@/contextmenu/contextMenuPlugin';
|
|
23
|
+
export type { PageInfo } from '@/component/basic/PageNavigation.model';
|
|
24
|
+
export { default as vTooltip } from '@/directive/vTooltip';
|
|
25
|
+
export { default as vFocusOnLoad } from '@/directive/vFocusOnLoad';
|
|
26
|
+
export { default as vClickOutside } from '@/directive/vClickOutside';
|
|
27
|
+
export type * from '@/model/CommonTypes';
|
|
28
|
+
export type * from '@/model/FieldContext';
|
|
29
|
+
export * from '@/model/FieldContext';
|
|
30
|
+
export type * from '@/savepoint/SavePoint';
|
|
31
|
+
export * from '@/savepoint/SavePoint';
|
|
32
|
+
export * from '@/util/debounceUtil';
|
|
33
|
+
export * from '@/util/typeUtil';
|
|
34
|
+
export type * from '@/util/typeUtil';
|
|
35
|
+
export * from '@/util/waitUtil';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type LabelProvider<T> = (item: T) => string | undefined;
|
|
2
|
+
export type KeyProvider<T> = (item: T) => string | undefined;
|
|
3
|
+
export type EnabledItemProvider<T> = (item: T) => boolean;
|
|
4
|
+
export type IconProvider<T> = (item: T) => string | undefined;
|
|
5
|
+
export type TooltipProvider<T> = (item: T) => string | undefined;
|
|
6
|
+
export type LocaleName = string;
|
|
7
|
+
export type TimeZone = string;
|
|
8
|
+
export type DateResolution = 'DAY' | 'HOUR' | 'MINUTE_30' | 'MINUTE_10' | 'MINUTE' | 'SECOND';
|
|
9
|
+
export type DisplayDateResolution = 'DAY' | 'MINUTE' | 'SECOND';
|
|
10
|
+
/**
|
|
11
|
+
* BSTextInput 등의 prefix, suffix 타입
|
|
12
|
+
*/
|
|
13
|
+
export type PrefixSuffix = {
|
|
14
|
+
type: 'text' | 'font-icon' | 'image-url';
|
|
15
|
+
value: string;
|
|
16
|
+
};
|
|
17
|
+
export type StoredFile = {
|
|
18
|
+
fileUrl?: string;
|
|
19
|
+
mediaType?: 'Image' | 'Video' | 'Youtube' | 'Unknown';
|
|
20
|
+
thumbnailUrl?: string;
|
|
21
|
+
altText?: string;
|
|
22
|
+
width?: number;
|
|
23
|
+
height?: number;
|
|
24
|
+
imageNo?: number;
|
|
25
|
+
file?: File;
|
|
26
|
+
thumbnailFile?: File;
|
|
27
|
+
};
|
|
28
|
+
export declare class IllegalAccessError {
|
|
29
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { KeyProvider, LabelProvider } from "@/model/CommonTypes";
|
|
2
|
+
export declare const defaultLabelProvider: <T>(item: T) => string;
|
|
3
|
+
export declare const emptyLabelProvider: <T>(_item: T) => undefined;
|
|
4
|
+
export declare const executeLabelProviderOrDefault: <T>(item: T, labelProvider: LabelProvider<T> | undefined, defaultLabel: (item: T) => string) => string;
|
|
5
|
+
export declare const defaultKeyProvider: <T>(item: T) => string;
|
|
6
|
+
export declare const emptyKeyProvider: <T>(_item: T) => undefined;
|
|
7
|
+
export declare const executeKeyProviderOrDefault: <T>(item: T, keyProvider: KeyProvider<T> | undefined, defaultKey: (item: T) => string) => string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LocaleName } from "@/model/CommonTypes.ts";
|
|
2
|
+
export type IterationContext<T> = {
|
|
3
|
+
componentName: string;
|
|
4
|
+
record: T;
|
|
5
|
+
recordKey?: string;
|
|
6
|
+
recordIndex?: number;
|
|
7
|
+
data: T[];
|
|
8
|
+
};
|
|
9
|
+
export type FieldContext<T> = {
|
|
10
|
+
iteration?: IterationContext<T>;
|
|
11
|
+
locale?: LocaleName;
|
|
12
|
+
};
|
|
13
|
+
export declare const provideFieldContext: <T>(fieldContext: FieldContext<T>) => void;
|
|
14
|
+
export declare const useFieldContext: () => FieldContext<any> | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Component, Raw } from "vue";
|
|
2
|
+
export type NotificationStyle = 'error' | 'info';
|
|
3
|
+
export type NotificationEntry = {
|
|
4
|
+
entryId: number;
|
|
5
|
+
message: string;
|
|
6
|
+
style: NotificationStyle;
|
|
7
|
+
duration: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const notificationEntries: import("vue").Reactive<NotificationEntry[]>;
|
|
10
|
+
export declare const showNotification: (message: string, style?: NotificationStyle, durationInMilliSeconds?: number) => void;
|
|
11
|
+
export type AlarmEntry = {
|
|
12
|
+
entryId: number;
|
|
13
|
+
component: Raw<Component>;
|
|
14
|
+
duration: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const alarmEntries: import("vue").Reactive<AlarmEntry[]>;
|
|
17
|
+
export declare const showAlarm: (component: Component, durationInMilliSeconds?: number) => void;
|
|
18
|
+
export declare const closeAlarm: (entryId: number | AlarmEntry) => void;
|
|
19
|
+
export type TooltipEntry = {
|
|
20
|
+
content: string;
|
|
21
|
+
target: HTMLElement;
|
|
22
|
+
cursorInTooltip: boolean;
|
|
23
|
+
};
|
|
24
|
+
export declare const tooltipEntry: import("vue").Ref<TooltipEntry | undefined, TooltipEntry | undefined>;
|
|
25
|
+
export declare const showTooltip: (content: string, target: HTMLElement) => void;
|
|
26
|
+
export declare const hideTooltip: () => void;
|
|
27
|
+
export declare const isTooltipDisplayed: () => boolean;
|
|
28
|
+
export declare const showLoadingIcon: import("vue").Ref<boolean, boolean>;
|
|
29
|
+
export declare const showLoading: () => void;
|
|
30
|
+
export declare const hideLoading: () => void;
|
|
31
|
+
export declare const withLoading: <T>(func: () => Promise<T>) => Promise<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bs-button[data-v-26726ef5]{color:var(--color-text);border:none;border-radius:2px;padding:4px 8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;height:26px;vertical-align:middle;white-space:nowrap;text-decoration:none;margin-right:1px;font-weight:400}.bs-button.border-0>.font-icon.left[data-v-26726ef5]{margin-right:0}.bs-button.border-0>.font-icon.right[data-v-26726ef5]{margin-left:0}.bs-button.bg-transparent[data-v-26726ef5]:not(:disabled):hover{opacity:.8}.bs-button.bg-transparent[data-v-26726ef5]:not(:disabled):active{opacity:.8}.bs-button[data-v-26726ef5]:disabled{cursor:default;opacity:.6}.bs-button.default[data-v-26726ef5]{background-color:var(--button-default-bg);border:1px solid var(--border);color:var(--button-default-text)}.bs-button.default[data-v-26726ef5]:not(:disabled):hover{background-color:var(--gray-100)}.bs-button.default[data-v-26726ef5]:not(:disabled):active{background-color:var(--gray-200)}.bs-button.blue[data-v-26726ef5]{background-color:var(--blue);border:1px solid var(--blue);color:var(--white)}.bs-button.blue[data-v-26726ef5]:not(:disabled):hover{background-color:color-mix(in srgb,var(--blue) 90%,black 10%)}.bs-button.blue[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--blue) 80%,black 20%)}.bs-button.red[data-v-26726ef5]{background-color:var(--red);color:var(--white)}.bs-button.red[data-v-26726ef5]:not(:disabled):hover{background-color:color-mix(in srgb,var(--red) 90%,black 10%)}.bs-button.red[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--red) 80%,black 20%)}.bs-button.orange[data-v-26726ef5]{background-color:var(--orange);color:var(--white)}.bs-button.orange[data-v-26726ef5]:not(:disabled):hover{background-color:color-mix(in srgb,var(--orange) 90%,black 10%)}.bs-button.orange[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--orange) 80%,black 20%)}.bs-button.green[data-v-26726ef5]{background-color:var(--green);color:var(--white)}.bs-button.green[data-v-26726ef5]:not(:disabled):hover{background-color:color-mix(in srgb,var(--green) 90%,black 10%)}.bs-button.green[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--green) 80%,black 20%)}.bs-button.gray[data-v-26726ef5]{background-color:var(--gray);color:var(--white)}.bs-button.gray[data-v-26726ef5]:not(:disabled):hover{background-color:color-mix(in srgb,var(--gray) 90%,black 10%)}.bs-button.gray[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--gray) 80%,black 20%)}.bs-button.black[data-v-26726ef5]{background-color:var(--black);color:var(--white)}.bs-button.black[data-v-26726ef5]:not(:disabled):hover{background-color:color-mix(in srgb,var(--black) 90%,black 10%)}.bs-button.black[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--black) 80%,black 20%)}.bs-button.underline[data-v-26726ef5]{padding:0 8px;border:0 none;border-radius:0;text-decoration:underline;text-underline-offset:2px;background-color:var(--button-default-bg);color:var(--button-default-text)}.bs-button.underline.blue[data-v-26726ef5]:not(:disabled):hover{background-color:color-mix(in srgb,var(--blue) 95%,black 5%)}.bs-button.underline.blue[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--blue) 90%,black 10%)}.bs-button.underline.red[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--red) 90%,black 10%)}.bs-button.underline.orange[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--orange) 90%,black 10%)}.bs-button.underline.green[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--green) 90%,black 10%)}.bs-button.underline.gray[data-v-26726ef5]:not(:disabled):active{background-color:color-mix(in srgb,var(--gray) 90%,black 10%)}[data-theme=dark] .bs-button.default[data-v-26726ef5]:not(:disabled):hover{background-color:var(--gray-800)}[data-theme=dark] .bs-button.default[data-v-26726ef5]:not(:disabled):active{background-color:var(--gray-700)}.bs-clickable,.page-navigation>span{-webkit-user-select:none;user-select:none;cursor:pointer}.bs-clickable:hover,.page-navigation>span:hover{filter:opacity(75%)}.bs-clickable:active,.page-navigation>span:active{filter:opacity(50%)}.bs-clickable.disabled,.page-navigation>span.disabled{filter:opacity(40%)}.page-navigation{padding:8px;display:flex;gap:2px;align-items:center;justify-content:center;color:var(--body-text);line-height:1}.page-navigation>span{display:inline-flex;padding:4px 6px;align-items:center;justify-content:center}.page-navigation>span.on{background-color:var(--primary-300);border-radius:2px}.page-navigation>span:not(.page){padding:3px;font-size:1.4em}.page-navigation>span.disabled{color:var(--gray-400);cursor:initial}.page-navigation>span:not(.disabled):hover{border-radius:2px}.bs-loading-icon{display:flex;align-items:center;justify-content:center}.bs-loading-icon>.font-icon{animation:spin 1s linear infinite}.component-shadow-base,.bs-popup{box-shadow:2px 2px 8px #0000001a}[data-theme=dark] .component-shadow-base,[data-theme=dark] .bs-popup{box-shadow:2px 2px 8px #ffffff1a}.bs-popup{position:fixed;border:1px solid var(--border);border-radius:4px;background-color:var(--body-bg);color:var(--body-text);z-index:300;min-width:48px;min-height:24px}.bs-tooltip{position:fixed;z-index:10000;max-width:240px;padding:8px;border:1px solid var(--primary);background-color:var(--body-bg);color:var(--body-text);border-radius:4px;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.bs-tooltip:before{content:" ";position:absolute;width:12px;height:12px;left:calc(50% - 6px);top:-6px;border:1px solid var(--primary);border-radius:2px;background-color:var(--body-bg);transform:rotate(135deg);clip-path:polygon(0% 10%,0% 100%,90% 100%);z-index:-1}.bs-tooltip.center{transform:translate(-50%)}.bs-tooltip>div{overflow:auto}.bs-box-component-wrap,.bs-select-wrap,.bs-input-wrap,.bs-text-input{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:left}.bs-box-component-wrap .message,.bs-select-wrap .message,.bs-input-wrap .message,.bs-text-input .message{margin-top:4px;font-size:.9em}.bs-box-component-base,.bs-select-wrap>.selected,.bs-input-base,.bs-text-input>.input-area{height:26px;display:inline-flex;align-items:center;justify-content:left;background-color:var(--body-bg)}.bs-input-wrap .suffix,.bs-text-input .suffix,.bs-input-wrap .prefix,.bs-text-input .prefix{font-size:.9em;margin-right:4px;margin-left:4px;background-color:var(--gray-200);color:var(--body-text);padding:2px 4px;border-radius:2px;line-height:1;white-space:nowrap}.bs-input-wrap .suffix:first-child,.bs-text-input .suffix:first-child,.bs-input-wrap .prefix:first-child,.bs-text-input .prefix:first-child{margin-left:4px}.bs-input-wrap .suffix .font-icon,.bs-text-input .suffix .font-icon,.bs-input-wrap .prefix .font-icon,.bs-text-input .prefix .font-icon{font-size:.9em}.bs-input-wrap .suffix img,.bs-text-input .suffix img,.bs-input-wrap .prefix img,.bs-text-input .prefix img{width:.9em;height:.9em}[data-theme=dark] .bs-input-wrap .suffix img,[data-theme=dark] .bs-text-input .suffix img,[data-theme=dark] .bs-input-wrap .prefix img,[data-theme=dark] .bs-text-input .prefix img{filter:invert(1)}.bs-input-base,.bs-text-input>.input-area{border:1px solid var(--border);border-radius:2px;background-color:var(--body-bg)}.bs-input-base>input,.bs-text-input>.input-area>input{border:0;border-radius:0;outline:0;align-self:stretch;flex-grow:1;flex-basis:1em;padding:0 6px;background-color:transparent;width:100%;color:var(--body-text)}.bs-input-base>textarea,.bs-text-input>.input-area>textarea{border:0;border-radius:4px;outline:0;align-self:stretch;flex-grow:1;padding:6px;line-height:1.4;font-family:sans-serif;background-color:var(--body-bg);color:var(--body-text)}.bs-input-base:hover,.bs-text-input>.input-area:hover{border-color:var(--border-hover)}.bs-input-base:has(:focus),.bs-text-input>.input-area:has(:focus){border-color:var(--color-focus);border-width:1px}.bs-text-input>.input-area{width:100%}.bs-text-input.value-right input{text-align:right}.bs-text-input.value-center input{text-align:center}.bs-box-component-wrap,.bs-select-wrap,.bs-input-wrap,.bs-number-input{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:left}.bs-box-component-wrap .message,.bs-select-wrap .message,.bs-input-wrap .message,.bs-number-input .message{margin-top:4px;font-size:.9em}.bs-box-component-base,.bs-select-wrap>.selected,.bs-input-base,.bs-number-input .input-area{height:26px;display:inline-flex;align-items:center;justify-content:left;background-color:var(--body-bg)}.bs-input-wrap .suffix,.bs-number-input .suffix,.bs-input-wrap .prefix,.bs-number-input .prefix{font-size:.9em;margin-right:4px;margin-left:4px;background-color:var(--gray-200);color:var(--body-text);padding:2px 4px;border-radius:2px;line-height:1;white-space:nowrap}.bs-input-wrap .suffix:first-child,.bs-number-input .suffix:first-child,.bs-input-wrap .prefix:first-child,.bs-number-input .prefix:first-child{margin-left:4px}.bs-input-wrap .suffix .font-icon,.bs-number-input .suffix .font-icon,.bs-input-wrap .prefix .font-icon,.bs-number-input .prefix .font-icon{font-size:.9em}.bs-input-wrap .suffix img,.bs-number-input .suffix img,.bs-input-wrap .prefix img,.bs-number-input .prefix img{width:.9em;height:.9em}[data-theme=dark] .bs-input-wrap .suffix img,[data-theme=dark] .bs-number-input .suffix img,[data-theme=dark] .bs-input-wrap .prefix img,[data-theme=dark] .bs-number-input .prefix img{filter:invert(1)}.bs-input-base,.bs-number-input .input-area{border:1px solid var(--border);border-radius:2px;background-color:var(--body-bg)}.bs-input-base>input,.bs-number-input .input-area>input{border:0;border-radius:0;outline:0;align-self:stretch;flex-grow:1;flex-basis:1em;padding:0 6px;background-color:transparent;width:100%;color:var(--body-text)}.bs-input-base>textarea,.bs-number-input .input-area>textarea{border:0;border-radius:4px;outline:0;align-self:stretch;flex-grow:1;padding:6px;line-height:1.4;font-family:sans-serif;background-color:var(--body-bg);color:var(--body-text)}.bs-input-base:hover,.bs-number-input .input-area:hover{border-color:var(--border-hover)}.bs-input-base:has(:focus),.bs-number-input .input-area:has(:focus){border-color:var(--color-focus);border-width:1px}.bs-number-input .input-area{width:100%}.bs-number-input.value-right input{text-align:right}.bs-number-input.value-center input{text-align:center}.bs-box-component-wrap,.bs-select-wrap,.bs-input-wrap,.bs-text-area{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:left}.bs-box-component-wrap .message,.bs-select-wrap .message,.bs-input-wrap .message,.bs-text-area .message{margin-top:4px;font-size:.9em}.bs-box-component-base,.bs-select-wrap>.selected,.bs-input-base,.bs-text-area .input-area{height:26px;display:inline-flex;align-items:center;justify-content:left;background-color:var(--body-bg)}.bs-input-wrap .suffix,.bs-text-area .suffix,.bs-input-wrap .prefix,.bs-text-area .prefix{font-size:.9em;margin-right:4px;margin-left:4px;background-color:var(--gray-200);color:var(--body-text);padding:2px 4px;border-radius:2px;line-height:1;white-space:nowrap}.bs-input-wrap .suffix:first-child,.bs-text-area .suffix:first-child,.bs-input-wrap .prefix:first-child,.bs-text-area .prefix:first-child{margin-left:4px}.bs-input-wrap .suffix .font-icon,.bs-text-area .suffix .font-icon,.bs-input-wrap .prefix .font-icon,.bs-text-area .prefix .font-icon{font-size:.9em}.bs-input-wrap .suffix img,.bs-text-area .suffix img,.bs-input-wrap .prefix img,.bs-text-area .prefix img{width:.9em;height:.9em}[data-theme=dark] .bs-input-wrap .suffix img,[data-theme=dark] .bs-text-area .suffix img,[data-theme=dark] .bs-input-wrap .prefix img,[data-theme=dark] .bs-text-area .prefix img{filter:invert(1)}.bs-input-base,.bs-text-area .input-area{border:1px solid var(--border);border-radius:2px;background-color:var(--body-bg)}.bs-input-base>input,.bs-text-area .input-area>input{border:0;border-radius:0;outline:0;align-self:stretch;flex-grow:1;flex-basis:1em;padding:0 6px;background-color:transparent;width:100%;color:var(--body-text)}.bs-input-base>textarea,.bs-text-area .input-area>textarea{border:0;border-radius:4px;outline:0;align-self:stretch;flex-grow:1;padding:6px;line-height:1.4;font-family:sans-serif;background-color:var(--body-bg);color:var(--body-text)}.bs-input-base:hover,.bs-text-area .input-area:hover{border-color:var(--border-hover)}.bs-input-base:has(:focus),.bs-text-area .input-area:has(:focus){border-color:var(--color-focus);border-width:1px}.flex-row,.bs-layout-horizontal,.bs-layout-horizontal-wrap{display:flex;flex-direction:row}.flex-row-inline,.bs-layout-horizontal-inline{display:inline-flex;flex-direction:row}.flex-column,.bs-layout-vertical,.bs-layout-vertical-wrap{display:flex;flex-direction:column}.flex-column-inline,.bs-layout-vertical-inline{display:inline-flex;flex-direction:column}.flex-wrap,.bs-layout-vertical-wrap,.bs-layout-horizontal-wrap{flex-wrap:wrap}.flex-grow-0{flex-grow:0}.flex-shrink-0{flex-shrink:0}.flex-grow-1{flex-grow:1}.flex-shrink-1{flex-shrink:1}.flex-grow-2{flex-grow:2}.flex-shrink-2{flex-shrink:2}.flex-grow-3{flex-grow:3}.flex-shrink-3{flex-shrink:3}.flex-grow-4{flex-grow:4}.flex-shrink-4{flex-shrink:4}.flex-grow-5{flex-grow:5}.flex-shrink-5{flex-shrink:5}.flex-grow-6{flex-grow:6}.flex-shrink-6{flex-shrink:6}.flex-grow-7{flex-grow:7}.flex-shrink-7{flex-shrink:7}.flex-grow-8{flex-grow:8}.flex-shrink-8{flex-shrink:8}.grow{flex-grow:1}.shrink{flex-shrink:1}.flex-align-start{align-items:flex-start}.flex-align-center{align-items:center}.flex-align-end{align-items:flex-end}.flex-content-start{justify-content:flex-start}.flex-content-center{justify-content:center}.flex-content-end{justify-content:flex-end}.bs-text-area .input-area{width:100%;height:100%}.bs-text-area .input-area .prefix,.bs-text-area .input-area .suffix{margin-top:6px;white-space:nowrap}.bs-text-area .view-mode{white-space:pre;line-height:1.5em}.bs-checkbox-base,.bs-checkbox{display:inline-block;color:var(--body-text);white-space:nowrap}.bs-checkbox-base input,.bs-checkbox input{appearance:none;margin:0;outline:0}.bs-checkbox-base input:before,.bs-checkbox input:before{font-family:var(--icon-font-family);font-size:20px;vertical-align:middle;cursor:pointer;color:var(--body-text)}.bs-checkbox-base input:hover,.bs-checkbox input:hover{color:var(--gray-500)}.bs-checkbox-base input:hover~label,.bs-checkbox input:hover~label{color:var(--gray-500)}.bs-checkbox-base input:focus:before,.bs-checkbox input:focus:before{color:var(--color-focus)}.bs-checkbox-base input:focus~label,.bs-checkbox input:focus~label{color:var(--color-focus)}.bs-checkbox-base.modified input:before,.modified.bs-checkbox input:before{color:var(--purple)!important}.bs-checkbox-base.modified input~label,.modified.bs-checkbox input~label{color:var(--purple)!important}.bs-checkbox-base.error input:before,.error.bs-checkbox input:before{color:var(--danger)!important}.bs-checkbox-base.error input~label,.error.bs-checkbox input~label{color:var(--danger)!important}.bs-checkbox-base.disabled input:before,.disabled.bs-checkbox input:before{color:var(--gray-400)!important}.bs-checkbox-base.disabled input~label,.disabled.bs-checkbox input~label{color:var(--gray-400)!important}.bs-checkbox-base label,.bs-checkbox label{display:inline-block;vertical-align:middle;padding:4px 2px;cursor:pointer}.bs-checkbox input:before{content:"check_box_outline_blank"}.bs-checkbox.checked input:before{content:"check_box"}.bs-checkbox.reverted.checked input:before{font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 48}.bs-checkbox-group{display:inline-block}.bs-checkbox-group>.items{display:flex;flex-wrap:wrap;gap:4px 8px}.bs-checkbox-group.vertical>.items{display:flex;flex-direction:column;gap:0}.bs-checkbox-group.nowrap>.items{flex-wrap:nowrap}.bs-checkbox-base,.bs-radio-button{display:inline-block;color:var(--body-text);white-space:nowrap}.bs-checkbox-base input,.bs-radio-button input{appearance:none;margin:0;outline:0}.bs-checkbox-base input:before,.bs-radio-button input:before{font-family:var(--icon-font-family);font-size:20px;vertical-align:middle;cursor:pointer;color:var(--body-text)}.bs-checkbox-base input:hover,.bs-radio-button input:hover{color:var(--gray-500)}.bs-checkbox-base input:hover~label,.bs-radio-button input:hover~label{color:var(--gray-500)}.bs-checkbox-base input:focus:before,.bs-radio-button input:focus:before{color:var(--color-focus)}.bs-checkbox-base input:focus~label,.bs-radio-button input:focus~label{color:var(--color-focus)}.bs-checkbox-base.modified input:before,.modified.bs-radio-button input:before{color:var(--purple)!important}.bs-checkbox-base.modified input~label,.modified.bs-radio-button input~label{color:var(--purple)!important}.bs-checkbox-base.error input:before,.error.bs-radio-button input:before{color:var(--danger)!important}.bs-checkbox-base.error input~label,.error.bs-radio-button input~label{color:var(--danger)!important}.bs-checkbox-base.disabled input:before,.disabled.bs-radio-button input:before{color:var(--gray-400)!important}.bs-checkbox-base.disabled input~label,.disabled.bs-radio-button input~label{color:var(--gray-400)!important}.bs-checkbox-base label,.bs-radio-button label{display:inline-block;vertical-align:middle;padding:4px 2px;cursor:pointer}.bs-radio-button input:before{content:"radio_button_unchecked"}.bs-radio-button .font-icon,.bs-radio-button .text-label{vertical-align:middle}.bs-radio-button.checked input:before{content:"radio_button_checked"}.bs-radio-button-group{display:inline-block}.bs-radio-button-group>.radio-button-group{display:flex;flex-wrap:wrap;gap:4px 8px}.bs-radio-button-group.vertical>.radio-button-group{display:flex;flex-direction:column;gap:0}.bs-radio-button-group.switch-style .radio-button-group{overflow:hidden;gap:0;border-radius:4px;background-color:var(--body-bg)}.bs-radio-button-group.switch-style .bs-radio-button{position:relative}.bs-radio-button-group.switch-style .bs-radio-button input{display:none;position:absolute}.bs-radio-button-group.switch-style .bs-radio-button label{position:relative;padding:7px;color:#999;transition:color .4s}.bs-radio-button-group.switch-style .bs-radio-button label:after{content:"";position:absolute;top:0;transition:left .5s ease;height:100%;width:100%;border-radius:4px;background-color:#000;z-index:-1}.bs-radio-button-group.switch-style .bs-radio-button:nth-of-type(1) label:after{left:100%}.bs-radio-button-group.switch-style .bs-radio-button:nth-of-type(2) label:after{left:-100%}.bs-radio-button-group.switch-style .bs-radio-button.checked label{position:relative;color:var(--white);font-weight:500;z-index:1}.bs-radio-button-group.switch-style .bs-radio-button.checked label:after{left:0}.bs-radio-button-group.switch-style.disabled .bs-radio-button.checked label{color:var(--white)!important}.bs-radio-button-group.switch-style.disabled .bs-radio-button.checked label:after{background-color:var(--gray-400)}.bs-radio-button-group.button-style .radio-button-group,.bs-radio-button-group.button-group-style .radio-button-group{gap:4px}.bs-radio-button-group.button-style .bs-radio-button input,.bs-radio-button-group.button-group-style .bs-radio-button input{display:none;position:absolute}.bs-radio-button-group.button-style .bs-radio-button label,.bs-radio-button-group.button-group-style .bs-radio-button label{padding:0 8px;border-radius:2px;border:1px solid var(--border);color:var(--body-text);line-height:22.9px;white-space:nowrap}.bs-radio-button-group.button-style .bs-radio-button.checked label,.bs-radio-button-group.button-group-style .bs-radio-button.checked label{background-color:var(--radio-group);border-color:var(--radio-group)}.bs-radio-button-group.button-style .bs-radio-button.checked label span,.bs-radio-button-group.button-group-style .bs-radio-button.checked label span{color:var(--white)}.bs-radio-button-group.button-style.disabled .bs-radio-button.checked label,.bs-radio-button-group.disabled.button-group-style .bs-radio-button.checked label{color:var(--white)!important}.bs-radio-button-group.button-style.modified .bs-radio-button.checked label,.bs-radio-button-group.modified.button-group-style .bs-radio-button.checked label{background-color:var(--purple);border-color:var(--purple);color:var(--white)!important}.bs-radio-button-group.button-group-style .radio-button-group{gap:0}.bs-radio-button-group.button-group-style .bs-radio-button:not(:first-child){margin-left:-1px}.bs-radio-button-group.button-group-style .bs-radio-button.checked{z-index:1}.bs-radio-button-group.button-group-style .bs-radio-button>label{border-radius:0}.bs-radio-button-group.button-group-style .bs-radio-button:first-child>label{border-top-left-radius:2px;border-bottom-left-radius:2px}.bs-radio-button-group.button-group-style .bs-radio-button:last-child>label{border-top-right-radius:2px;border-bottom-right-radius:2px}.bs-radio-button-group.button-group-style.disabled .bs-radio-button.checked label{color:var(--white)!important}.bs-radio-button-group.button-group-style.modified .radio-button-group,.bs-radio-button-group.button-group-style.modified .bs-radio-button{border-color:var(--purple)}.bs-radio-button-group.button-group-style.modified .bs-radio-button.checked label{background-color:var(--purple);color:var(--white)!important}.bs-radio-button-group.nowrap>.radio-button-group{flex-wrap:nowrap}[data-theme=dark] .bs-select-popup>.popup-items>.popup-item.selected-item{color:var(--primary-400)}[data-theme=dark] .bs-select-popup>.popup-items>.popup-item.selected-item .checkbox:before{color:var(--primary-400)}.bs-select-popup{min-width:120px;max-height:300px;overflow:hidden;line-height:1}.bs-select-popup>.popup-search>input{border:1px solid var(--border);border-radius:2px;background-color:var(--body-bg);padding:2px 4px;width:100%;color:var(--body-text);outline:0}.bs-select-popup>.popup-search>input:focus{border-color:var(--color-focus);border-width:1px}.bs-select-popup>.popup-items>.popup-item{padding:6px 16px;height:28px;cursor:pointer;display:flex;align-items:center}.bs-select-popup>.popup-items>.popup-item .checkbox{display:inline-flex;width:20px;margin-left:-10px}.bs-select-popup>.popup-items>.popup-item .checkbox:before{font-family:var(--icon-font-family);content:"";font-size:16px;color:var(--color-text);margin-right:2px}.bs-select-popup>.popup-items>.popup-item .label{flex-grow:1;white-space:nowrap;cursor:pointer}.bs-select-popup>.popup-items>.popup-item .label.null-label{color:var(--color-text-light)}.bs-select-popup>.popup-items>.popup-item.hovered{background-color:var(--color-hover)}.bs-select-popup>.popup-items>.popup-item.selected-item{color:var(--primary);font-weight:700}.bs-select-popup>.popup-items>.popup-item.selected-item .checkbox:before{content:"check";color:var(--primary)}.bs-box-component-wrap,.bs-select-wrap,.bs-select,.bs-input-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:left}.bs-box-component-wrap .message,.bs-select-wrap .message,.bs-select .message,.bs-input-wrap .message{margin-top:4px;font-size:.9em}.bs-box-component-base,.bs-select-wrap>.selected,.bs-select>.selected,.bs-input-base{height:26px;display:inline-flex;align-items:center;justify-content:left;background-color:var(--body-bg)}.bs-select-wrap,.bs-select{position:relative;outline:0;background-color:var(--body-bg);color:var(--body-text);min-width:64px}.bs-select-wrap:hover>.selected,.bs-select:hover>.selected{border-color:var(--border-hover)}.bs-select-wrap:focus>.selected,.bs-select:focus>.selected{border-color:var(--color-focus)}.bs-select-wrap>.selected,.bs-select>.selected{border:1px solid var(--border);border-radius:2px;padding:0 6px;min-width:100%;cursor:pointer;display:flex}.bs-select-wrap>.selected .label,.bs-select>.selected .label{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bs-select-wrap>.selected .placeholder,.bs-select>.selected .placeholder{color:var(--gray-400);overflow:hidden;text-overflow:ellipsis}.bs-select-wrap>.selected .dropdown-btn,.bs-select>.selected .dropdown-btn{font-family:var(--icon-font-family);margin-right:-4px;margin-left:4px;-webkit-user-select:none;user-select:none;transition:transform .2s linear}.bs-select-wrap.popup-open .dropdown-btn,.popup-open.bs-select .dropdown-btn{transform:rotate(180deg)}.bs-select-wrap.modified>.selected,.modified.bs-select>.selected{border-color:var(--purple)!important}.bs-select-wrap.error>.selected,.error.bs-select>.selected{border-color:var(--danger)!important;color:var(--danger)!important}.bs-select-wrap.disabled>.selected,.disabled.bs-select>.selected{border-color:var(--border)!important;background-color:var(--gray-100)!important;color:var(--gray-500)!important}.bs-select-wrap.view-mode,.view-mode.bs-select{background-color:transparent}.bs-select-wrap .small-progress,.bs-select .small-progress{font-family:var(--icon-font-family);font-size:.9em;position:absolute;left:100%;top:0;padding:0 2px;color:var(--gray-400);animation:spin 1s linear infinite}.bs-box-component-wrap,.bs-select-wrap,.bs-multi-select,.bs-input-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:left}.bs-box-component-wrap .message,.bs-select-wrap .message,.bs-multi-select .message,.bs-input-wrap .message{margin-top:4px;font-size:.9em}.bs-box-component-base,.bs-select-wrap>.selected,.bs-multi-select>.selected,.bs-input-base{height:26px;display:inline-flex;align-items:center;justify-content:left;background-color:var(--body-bg)}.bs-input-wrap .suffix .font-icon,.bs-input-wrap .prefix .font-icon{font-size:.9em}.bs-select-wrap,.bs-multi-select{position:relative;outline:0;background-color:var(--body-bg);color:var(--body-text);min-width:64px}.bs-select-wrap:hover>.selected,.bs-multi-select:hover>.selected{border-color:var(--border-hover)}.bs-select-wrap:focus>.selected,.bs-multi-select:focus>.selected{border-color:var(--color-focus)}.bs-select-wrap>.selected,.bs-multi-select>.selected{border:1px solid var(--border);border-radius:2px;padding:0 6px;min-width:100%;cursor:pointer;display:flex}.bs-select-wrap>.selected .label,.bs-multi-select>.selected .label{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bs-select-wrap>.selected .placeholder,.bs-multi-select>.selected .placeholder{color:var(--gray-400);overflow:hidden;text-overflow:ellipsis}.bs-select-wrap>.selected .dropdown-btn,.bs-multi-select>.selected .dropdown-btn{font-family:var(--icon-font-family);margin-right:-4px;margin-left:4px;-webkit-user-select:none;user-select:none;transition:transform .2s linear}.bs-select-wrap.popup-open .dropdown-btn,.popup-open.bs-multi-select .dropdown-btn{transform:rotate(180deg)}.bs-select-wrap.modified>.selected,.modified.bs-multi-select>.selected{border-color:var(--purple)!important}.bs-select-wrap.error>.selected,.error.bs-multi-select>.selected{border-color:var(--danger)!important;color:var(--danger)!important}.bs-select-wrap.disabled>.selected,.disabled.bs-multi-select>.selected{border-color:var(--border)!important;background-color:var(--gray-100)!important;color:var(--gray-500)!important}.bs-select-wrap.view-mode,.view-mode.bs-multi-select{background-color:transparent}.bs-select-wrap .small-progress,.bs-multi-select .small-progress{font-family:var(--icon-font-family);font-size:.9em;position:absolute;left:100%;top:0;padding:0 2px;color:var(--gray-400);animation:spin 1s linear infinite}.font-icon{font-family:var(--icon-font-family);font-size:1rem;max-width:1em}.font-icon.filled{font-variation-settings:"FILL" 1,"wght" 300,"GRAD" 0,"opsz" 48}.bs-multi-select .label{margin-right:4px}.bs-multi-select .label:not(:last-child):after{content:","}.bs-card-layout{width:100%;border:1px solid var(--border);border-radius:4px;box-shadow:4px 4px 4px var(--gray-100)}.bs-card-layout>.card-layout-header{height:44px;padding:0 8px;background-color:var(--body-bg);border-radius:4px}.bs-card-layout.expanded>.card-layout-header{border-bottom:1px solid var(--border-light);border-bottom-left-radius:0;border-bottom-right-radius:0}.bs-card-layout .card-layout-title{font-size:1rem;margin-left:6px}.bs-card-layout .expand-btn{display:inline-block;transition:transform .2s linear;transform:rotate(0);font-size:1.4rem;font-variation-settings:"FILL" 1,"wght" 300,"GRAD" 0,"opsz" 48;color:var(--gray-500)}.bs-card-layout.expanded .expand-btn{transform:rotate(90deg)}.bs-card-layout .title-icon{color:var(--gray-700);font-size:1.4rem;font-variation-settings:"FILL" 1,"wght" 300,"GRAD" 0,"opsz" 48}.bs-card-layout .title-icon-box{background-color:var(--gray-700);width:1rem;height:1rem;border-radius:2px;margin:0 6px 0 4px}.bs-card-layout.blue>.card-layout-header{background-color:var(--blue-bg)}.bs-card-layout.red>.card-layout-header{background-color:var(--red-bg)}.bs-card-layout.orange>.card-layout-header{background-color:var(--orange-bg)}.bs-card-layout.green>.card-layout-header{background-color:var(--green-bg)}.bs-card-layout.gray>.card-layout-header{background-color:var(--gray-bg)}.bs-notification-container>.top-notification{position:fixed;z-index:250;top:50px;left:50%;transform:translate(-50%)}.bs-notification-container>.top-notification>div{position:relative;display:flex;align-items:center;justify-content:center;padding:11px 12px;border:1px solid var(--green);border-radius:4px;color:var(--green);background-color:var(--body-bg);box-shadow:0 4px 4px #0003;line-height:1.4}.bs-notification-container>.top-notification>div:before{content:"check_circle";display:inline-block;width:1.0769em;height:1.0769em;margin-right:6px;font-family:var(--icon-font-family);font-variation-settings:"FILL" 1,"wght" 700,"GRAD" 0,"opsz" 48}.bs-notification-container>.top-notification>div.error{border:1px solid var(--red);color:var(--red)}.bs-notification-container>.top-notification>div.error:before{content:"cancel"}.bs-notification-container>.bottom-notification{position:fixed;z-index:250;bottom:20px;right:20px}.bs-notification-container>.bs-loading-icon{position:fixed;inset:0;background-color:#000;opacity:.1;z-index:300}.bs-notification-container>.bs-loading-icon>.font-icon{font-size:52px;color:var(--white);opacity:1}[data-theme=dark] .bs-notification-container>.top-notification>div{box-shadow:0 4px 4px #ffffff1a}.bs-box-component-wrap,.bs-select-wrap,.bs-input-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:left}.bs-box-component-wrap .message,.bs-select-wrap .message,.bs-input-wrap .message{margin-top:4px;font-size:.9em}.bs-box-component-base,.bs-select-wrap>.selected,.bs-input-base{height:26px;display:inline-flex;align-items:center;justify-content:left;background-color:var(--body-bg)}.bs-input-wrap .suffix,.bs-input-wrap .prefix{font-size:.9em;margin-right:4px;margin-left:4px;background-color:var(--gray-200);color:var(--body-text);padding:2px 4px;border-radius:2px;line-height:1;white-space:nowrap}.bs-input-wrap .suffix:first-child,.bs-input-wrap .prefix:first-child{margin-left:4px}.bs-input-wrap .suffix .font-icon,.bs-input-wrap .suffix .bs-context-menu>.menu.has-submenu:after,.bs-input-wrap .prefix .font-icon,.bs-input-wrap .prefix .bs-context-menu>.menu.has-submenu:after{font-size:.9em}.bs-input-wrap .suffix img,.bs-input-wrap .prefix img{width:.9em;height:.9em}[data-theme=dark] .bs-input-wrap .suffix img,[data-theme=dark] .bs-input-wrap .prefix img{filter:invert(1)}.bs-input-base{border:1px solid var(--border);border-radius:2px;background-color:var(--body-bg)}.bs-input-base>input{border:0;border-radius:0;outline:0;align-self:stretch;flex-grow:1;flex-basis:1em;padding:0 6px;background-color:transparent;width:100%;color:var(--body-text)}.bs-input-base>textarea{border:0;border-radius:4px;outline:0;align-self:stretch;flex-grow:1;padding:6px;line-height:1.4;font-family:sans-serif;background-color:var(--body-bg);color:var(--body-text)}.bs-input-base:hover{border-color:var(--border-hover)}.bs-input-base:has(:focus){border-color:var(--color-focus);border-width:1px}.bs-text-input.modified>.input-area,.bs-number-input.modified>.input-area,.bs-price-input.modified>.input-area,.bs-date-input.modified>.input-area,.bs-date-range.modified>.input-area,.bs-multi-lang-text-input.modified>.input-area,.bs-multi-lang-text-area.modified>.input-area,.bs-multi-lang-rich-text.modified>.input-area,.bs-text-area.modified>.input-area,.bs-rich-text.modified>.input-area{border-color:var(--purple)!important}.bs-text-input.error>.input-area,.bs-number-input.error>.input-area,.bs-price-input.error>.input-area,.bs-date-input.error>.input-area,.bs-date-range.error>.input-area,.bs-multi-lang-text-input.error>.input-area,.bs-multi-lang-text-area.error>.input-area,.bs-multi-lang-rich-text.error>.input-area,.bs-text-area.error>.input-area,.bs-rich-text.error>.input-area{border-color:var(--danger)!important}.bs-text-input.error>.input-area>input,.bs-number-input.error>.input-area>input,.bs-price-input.error>.input-area>input,.bs-date-input.error>.input-area>input,.bs-date-range.error>.input-area>input,.bs-multi-lang-text-input.error>.input-area>input,.bs-multi-lang-text-area.error>.input-area>input,.bs-multi-lang-rich-text.error>.input-area>input,.bs-text-area.error>.input-area>input,.bs-rich-text.error>.input-area>input{color:var(--danger)!important}.bs-text-input.disabled>.input-area,.bs-number-input.disabled>.input-area,.bs-price-input.disabled>.input-area,.bs-date-input.disabled>.input-area,.bs-date-range.disabled>.input-area,.bs-multi-lang-text-input.disabled>.input-area,.bs-multi-lang-text-area.disabled>.input-area,.bs-multi-lang-rich-text.disabled>.input-area,.bs-text-area.disabled>.input-area,.bs-rich-text.disabled>.input-area{border-color:var(--border)!important;background-color:var(--gray-100)!important;color:var(--gray-400)!important}.bs-text-input.disabled>.input-area>input,.bs-number-input.disabled>.input-area>input,.bs-price-input.disabled>.input-area>input,.bs-date-input.disabled>.input-area>input,.bs-date-range.disabled>.input-area>input,.bs-multi-lang-text-input.disabled>.input-area>input,.bs-multi-lang-text-area.disabled>.input-area>input,.bs-multi-lang-rich-text.disabled>.input-area>input,.bs-text-area.disabled>.input-area>input,.bs-rich-text.disabled>.input-area>input{color:var(--gray-400)!important;background-color:var(--gray-100)!important}.bs-text-input.disabled>.input-area>textarea,.bs-number-input.disabled>.input-area>textarea,.bs-price-input.disabled>.input-area>textarea,.bs-date-input.disabled>.input-area>textarea,.bs-date-range.disabled>.input-area>textarea,.bs-multi-lang-text-input.disabled>.input-area>textarea,.bs-multi-lang-text-area.disabled>.input-area>textarea,.bs-multi-lang-rich-text.disabled>.input-area>textarea,.bs-text-area.disabled>.input-area>textarea,.bs-rich-text.disabled>.input-area>textarea{background-color:var(--gray-100)!important}.bs-date-input .view-mode,.bs-date-range .view-mode{white-space:nowrap;display:flex;align-items:center;gap:4px}.bs-date-input .view-mode:before,.bs-date-range .view-mode:before{content:"calendar_month";width:1em;font-family:var(--icon-font-family)}.bs-date-input .extra-dates,.bs-date-range .extra-dates,.bs-calendar .extra-dates,.bs-calendar-range .extra-dates{color:var(--body-text);margin-top:4px}.bs-date-input .extra-dates .extra-date,.bs-date-range .extra-dates .extra-date,.bs-calendar .extra-dates .extra-date,.bs-calendar-range .extra-dates .extra-date{white-space:nowrap;display:flex;align-items:center;gap:4px;font-size:.8125rem}.bs-date-input .extra-dates .extra-date:before,.bs-date-range .extra-dates .extra-date:before,.bs-calendar .extra-dates .extra-date:before,.bs-calendar-range .extra-dates .extra-date:before{content:"globe";width:1em;font-family:var(--icon-font-family)}.bs-calendar .extra-dates,.bs-calendar-range .extra-dates{padding-top:8px;border-top:1px solid var(--border)}.bs-checkbox-base{display:inline-block;color:var(--body-text);white-space:nowrap}.bs-checkbox-base input{appearance:none;margin:0;outline:0}.bs-checkbox-base input:before{font-family:var(--icon-font-family);font-size:20px;vertical-align:middle;cursor:pointer;color:var(--body-text)}.bs-checkbox-base input:hover{color:var(--gray-500)}.bs-checkbox-base input:hover~label{color:var(--gray-500)}.bs-checkbox-base input:focus:before{color:var(--color-focus)}.bs-checkbox-base input:focus~label{color:var(--color-focus)}.bs-checkbox-base.modified input:before{color:var(--purple)!important}.bs-checkbox-base.modified input~label{color:var(--purple)!important}.bs-checkbox-base.error input:before{color:var(--danger)!important}.bs-checkbox-base.error input~label{color:var(--danger)!important}.bs-checkbox-base.disabled input:before{color:var(--gray-400)!important}.bs-checkbox-base.disabled input~label{color:var(--gray-400)!important}.bs-checkbox-base label{display:inline-block;vertical-align:middle;padding:4px 2px;cursor:pointer}.bs-checkbox-group.modified .bs-checkbox:not(.disabled) input:before,.bs-checkbox-group.modified .bs-radio-button:not(.disabled) input:before,.bs-radio-button-group.modified .bs-checkbox:not(.disabled) input:before,.bs-radio-button-group.modified .bs-radio-button:not(.disabled) input:before{color:var(--purple)!important}.bs-checkbox-group.modified .bs-checkbox:not(.disabled) input~label,.bs-checkbox-group.modified .bs-radio-button:not(.disabled) input~label,.bs-radio-button-group.modified .bs-checkbox:not(.disabled) input~label,.bs-radio-button-group.modified .bs-radio-button:not(.disabled) input~label{color:var(--purple)!important}.bs-checkbox-group.error .bs-checkbox:not(.disabled) input:before,.bs-checkbox-group.error .bs-radio-button:not(.disabled) input:before,.bs-radio-button-group.error .bs-checkbox:not(.disabled) input:before,.bs-radio-button-group.error .bs-radio-button:not(.disabled) input:before{color:var(--danger)!important}.bs-checkbox-group.error .bs-checkbox:not(.disabled) input~label,.bs-checkbox-group.error .bs-radio-button:not(.disabled) input~label,.bs-radio-button-group.error .bs-checkbox:not(.disabled) input~label,.bs-radio-button-group.error .bs-radio-button:not(.disabled) input~label{color:var(--danger)!important}.bs-checkbox-group.disabled input:before,.bs-radio-button-group.disabled input:before{color:var(--gray-400)!important}.bs-checkbox-group.disabled input~label,.bs-radio-button-group.disabled input~label{color:var(--gray-400)!important}.bs-select-wrap{position:relative;outline:0;background-color:var(--body-bg);color:var(--body-text);min-width:64px}.bs-select-wrap:hover>.selected{border-color:var(--border-hover)}.bs-select-wrap:focus>.selected{border-color:var(--color-focus)}.bs-select-wrap>.selected{border:1px solid var(--border);border-radius:2px;padding:0 6px;min-width:100%;cursor:pointer;display:flex}.bs-select-wrap>.selected .label{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bs-select-wrap>.selected .placeholder{color:var(--gray-400);overflow:hidden;text-overflow:ellipsis}.bs-select-wrap>.selected .dropdown-btn{font-family:var(--icon-font-family);margin-right:-4px;margin-left:4px;-webkit-user-select:none;user-select:none;transition:transform .2s linear}.bs-select-wrap.popup-open .dropdown-btn{transform:rotate(180deg)}.bs-select-wrap.modified>.selected{border-color:var(--purple)!important}.bs-select-wrap.error>.selected{border-color:var(--danger)!important;color:var(--danger)!important}.bs-select-wrap.disabled>.selected{border-color:var(--border)!important;background-color:var(--gray-100)!important;color:var(--gray-500)!important}.bs-select-wrap.view-mode{background-color:transparent}.bs-select-wrap .small-progress{font-family:var(--icon-font-family);font-size:.9em;position:absolute;left:100%;top:0;padding:0 2px;color:var(--gray-400);animation:spin 1s linear infinite}.bs-field-error{color:var(--color-error);margin-top:4px}.bs-clickable{-webkit-user-select:none;user-select:none;cursor:pointer}.bs-clickable:hover{filter:opacity(75%)}.bs-clickable:active{filter:opacity(50%)}.bs-clickable.disabled{filter:opacity(40%)}.component-shadow-base{box-shadow:2px 2px 8px #0000001a}[data-theme=dark] .component-shadow-base{box-shadow:2px 2px 8px #ffffff1a}.font-icon,.bs-context-menu>.menu.has-submenu:after{font-family:var(--icon-font-family);font-size:1rem;max-width:1em}.font-icon.filled,.bs-context-menu>.filled.menu.has-submenu:after{font-variation-settings:"FILL" 1,"wght" 300,"GRAD" 0,"opsz" 48}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter,.fade-leave-to{opacity:0}.text-description{margin-top:2px;color:var(--gray-400);font-size:.923em}.bs-drop-position{position:absolute;border:1px solid var(--primary);border-radius:2px;background-color:var(--primary-400);opacity:.7;z-index:100}.bs-drop-position.vertical{left:0;width:100%;height:8px}.bs-drop-position.vertical.before{top:-4px}.bs-drop-position.vertical.after{bottom:-4px}.bs-drop-position.horizontal{left:0;width:8px;height:100%}.bs-drop-position.horizontal.before{left:-4px}.bs-drop-position.horizontal.after{right:-4px}.bs-droppable-horizontal{transition:transform .3s ease}.bs-droppable-horizontal.bs-dropping-before,.bs-droppable-horizontal.bs-dropping-after-following{transform:translate(12px);z-index:1}.bs-droppable-horizontal.bs-dropping-after,.bs-droppable-horizontal.bs-dropping-before-preceding{transform:translate(-12px);z-index:1}.bs-dragging-source{opacity:.5}.bs-context-menu{padding:4px 0;min-width:120px;min-height:auto;max-height:500px;overflow:auto;cursor:default}.bs-context-menu>.menu{padding:6px 12px;display:flex;align-items:flex-start;white-space:nowrap;cursor:pointer}.bs-context-menu>.menu.disabled{color:var(--gray-400)}.bs-context-menu>.menu:not(.disabled):hover{background-color:var(--color-hover)}.bs-context-menu>.menu.has-submenu:after{content:"chevron_right";position:absolute;right:2px}.bs-context-menu>.menu.separator{padding:0;margin:4px 0;border-bottom:1px solid var(--border)}.bs-context-menu>.menu.no-padding{padding:0}.bs-context-menu>.menu a{text-decoration:none;color:var(--body-text);width:100%;padding:6px 12px}.bs-context-menu-container .context-menu-curtain{position:fixed;inset:0;z-index:300}
|