@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.
@@ -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,5 @@
1
+ export type PageInfo = {
2
+ offset?: number;
3
+ limit?: number;
4
+ totalCount?: number;
5
+ };
@@ -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;
@@ -0,0 +1,3 @@
1
+ import type { ObjectDirective } from "vue";
2
+ declare const vFocusOnLoad: ObjectDirective;
3
+ export default vFocusOnLoad;
@@ -0,0 +1,7 @@
1
+ import type { ObjectDirective } from "vue";
2
+ export type TooltipParam = {
3
+ content?: string;
4
+ delay?: number;
5
+ };
6
+ declare const vTooltip: ObjectDirective;
7
+ export default vTooltip;
@@ -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}