@mochabug/adapt-web 1.0.1-rc.11 → 1.0.1-rc.13
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/README.md +104 -137
- package/dist/README.md +119 -152
- package/dist/esm/AdaptAutomationElement.js +1 -1
- package/dist/esm/cap-adapter.js +1 -1
- package/dist/esm/core.js +1 -1
- package/dist/esm/css-panel.js +198 -166
- package/dist/esm/index.js +1 -1
- package/dist/esm/theme.js +1 -0
- package/dist/styles.css +198 -166
- package/dist/types/AdaptAutomationElement.d.ts +4 -0
- package/dist/types/core.d.ts +2 -1
- package/dist/types/css-panel.d.ts +1 -1
- package/dist/types/index.d.ts +12 -1
- package/dist/types/theme.d.ts +42 -0
- package/dist/types/types.d.ts +25 -0
- package/dist/umd/adapt-web.cap.js +1 -1
- package/dist/umd/adapt-web.cap.js.br +0 -0
- package/dist/umd/adapt-web.cap.min.js +1 -1
- package/dist/umd/adapt-web.cap.min.js.br +0 -0
- package/dist/umd/adapt-web.core.js +314 -167
- package/dist/umd/adapt-web.core.js.br +0 -0
- package/dist/umd/adapt-web.core.min.js +201 -169
- package/dist/umd/adapt-web.core.min.js.br +0 -0
- package/dist/umd/adapt-web.js +313 -167
- package/dist/umd/adapt-web.js.br +0 -0
- package/dist/umd/adapt-web.min.js +204 -172
- package/dist/umd/adapt-web.min.js.br +0 -0
- package/dist/umd/styles.css +198 -166
- package/dist/umd/styles.css.br +0 -0
- package/package.json +1 -1
|
@@ -32,7 +32,8 @@ var MbAdapt = (() => {
|
|
|
32
32
|
clearPersistedState: () => clearPersistedState,
|
|
33
33
|
configure: () => configure,
|
|
34
34
|
createConnectClient: () => createConnectClient,
|
|
35
|
-
resetConfig: () => resetConfig
|
|
35
|
+
resetConfig: () => resetConfig,
|
|
36
|
+
resolveTheme: () => resolveTheme
|
|
36
37
|
});
|
|
37
38
|
|
|
38
39
|
// ../node_modules/@bufbuild/protobuf/dist/esm/is-message.js
|
|
@@ -6715,89 +6716,116 @@ var MbAdapt = (() => {
|
|
|
6715
6716
|
min-height: inherit;
|
|
6716
6717
|
display: flex;
|
|
6717
6718
|
flex-direction: column;
|
|
6718
|
-
|
|
6719
|
-
--mb-adapt-
|
|
6720
|
-
--mb-adapt-
|
|
6721
|
-
--mb-adapt-
|
|
6722
|
-
--mb-adapt-
|
|
6723
|
-
--mb-adapt-
|
|
6724
|
-
--mb-adapt-floating-
|
|
6725
|
-
--mb-adapt-floating-
|
|
6726
|
-
--mb-adapt-floating-
|
|
6727
|
-
--mb-adapt-
|
|
6728
|
-
--mb-adapt-
|
|
6729
|
-
--mb-adapt-border
|
|
6719
|
+
|
|
6720
|
+
/* Two-layer CSS variables: --_X reads user-set --mb-adapt-X first, falls back to light default */
|
|
6721
|
+
--_bg: var(--mb-adapt-bg, transparent);
|
|
6722
|
+
--_font: var(--mb-adapt-font, system-ui, -apple-system, sans-serif);
|
|
6723
|
+
--_button-hover-bg: var(--mb-adapt-button-hover-bg, rgba(128, 128, 128, 0.2));
|
|
6724
|
+
--_separator-active: var(--mb-adapt-separator-active, rgba(59, 130, 246, 0.5));
|
|
6725
|
+
--_floating-shadow: var(--mb-adapt-floating-shadow, 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 12px 24px -8px rgba(0, 0, 0, 0.15));
|
|
6726
|
+
--_floating-border: var(--mb-adapt-floating-border, none);
|
|
6727
|
+
--_floating-backdrop: var(--mb-adapt-floating-backdrop, none);
|
|
6728
|
+
--_floating-radius: var(--mb-adapt-floating-radius, 8px);
|
|
6729
|
+
--_status-card-bg: var(--mb-adapt-status-card-bg, #ffffff);
|
|
6730
|
+
--_status-card-border: var(--mb-adapt-status-card-border, #e5e7eb);
|
|
6731
|
+
--_status-card-shadow: var(--mb-adapt-status-card-shadow, 0 4px 24px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04));
|
|
6732
|
+
--_status-icon-bg: var(--mb-adapt-status-icon-bg, #fef2f2);
|
|
6733
|
+
--_status-icon-stopped-bg: var(--mb-adapt-status-icon-stopped-bg, var(--mb-adapt-status-icon-bg, #f3f4f6));
|
|
6734
|
+
--_status-text: var(--mb-adapt-status-text, #374151);
|
|
6735
|
+
--_drag-ghost-shadow: var(--mb-adapt-drag-ghost-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));
|
|
6736
|
+
--_border-radius: var(--mb-adapt-border-radius, 8px);
|
|
6730
6737
|
--mb-adapt-responsive-breakpoint: 768;
|
|
6731
6738
|
--mb-adapt-responsive-hysteresis: 40;
|
|
6732
6739
|
|
|
6733
|
-
/* Cap.js widget
|
|
6734
|
-
--mb-adapt-cap-background
|
|
6735
|
-
--mb-adapt-cap-border-color
|
|
6736
|
-
--mb-adapt-cap-border-radius
|
|
6737
|
-
--mb-adapt-cap-height
|
|
6738
|
-
--mb-adapt-cap-width
|
|
6739
|
-
--mb-adapt-cap-padding
|
|
6740
|
-
--mb-adapt-cap-gap
|
|
6741
|
-
--mb-adapt-cap-color
|
|
6742
|
-
--mb-adapt-cap-checkbox-size
|
|
6743
|
-
--mb-adapt-cap-checkbox-border
|
|
6744
|
-
--mb-adapt-cap-checkbox-radius
|
|
6745
|
-
--mb-adapt-cap-checkbox-background
|
|
6746
|
-
--mb-adapt-cap-spinner-color
|
|
6747
|
-
--mb-adapt-cap-spinner-bg
|
|
6748
|
-
--mb-adapt-cap-font
|
|
6749
|
-
--mb-adapt-cap-spinner-thickness
|
|
6750
|
-
--mb-adapt-cap-shadow
|
|
6751
|
-
--mb-adapt-cap-shadow-hover
|
|
6752
|
-
|
|
6753
|
-
/* Fork panel theming
|
|
6754
|
-
--mb-adapt-fork-bg
|
|
6755
|
-
--mb-adapt-fork-tab-bg
|
|
6756
|
-
--mb-adapt-fork-tab-active-bg
|
|
6757
|
-
--mb-adapt-fork-tab-color
|
|
6758
|
-
--mb-adapt-fork-tab-inactive-color
|
|
6759
|
-
--mb-adapt-fork-separator
|
|
6740
|
+
/* Cap.js widget variables */
|
|
6741
|
+
--_cap-background: var(--mb-adapt-cap-background, #ffffff);
|
|
6742
|
+
--_cap-border-color: var(--mb-adapt-cap-border-color, #e2e8f0);
|
|
6743
|
+
--_cap-border-radius: var(--mb-adapt-cap-border-radius, 16px);
|
|
6744
|
+
--_cap-height: var(--mb-adapt-cap-height, 72px);
|
|
6745
|
+
--_cap-width: var(--mb-adapt-cap-width, 380px);
|
|
6746
|
+
--_cap-padding: var(--mb-adapt-cap-padding, 20px 28px);
|
|
6747
|
+
--_cap-gap: var(--mb-adapt-cap-gap, 20px);
|
|
6748
|
+
--_cap-color: var(--mb-adapt-cap-color, #1e293b);
|
|
6749
|
+
--_cap-checkbox-size: var(--mb-adapt-cap-checkbox-size, 36px);
|
|
6750
|
+
--_cap-checkbox-border: var(--mb-adapt-cap-checkbox-border, 2px solid #cbd5e1);
|
|
6751
|
+
--_cap-checkbox-radius: var(--mb-adapt-cap-checkbox-radius, 10px);
|
|
6752
|
+
--_cap-checkbox-background: var(--mb-adapt-cap-checkbox-background, #f8fafc);
|
|
6753
|
+
--_cap-spinner-color: var(--mb-adapt-cap-spinner-color, #6366f1);
|
|
6754
|
+
--_cap-spinner-bg: var(--mb-adapt-cap-spinner-bg, #e2e8f0);
|
|
6755
|
+
--_cap-font: var(--mb-adapt-cap-font, inherit);
|
|
6756
|
+
--_cap-spinner-thickness: var(--mb-adapt-cap-spinner-thickness, 3px);
|
|
6757
|
+
--_cap-shadow: var(--mb-adapt-cap-shadow, 0 4px 20px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04));
|
|
6758
|
+
--_cap-shadow-hover: var(--mb-adapt-cap-shadow-hover, 0 8px 30px rgba(0, 0, 0, 0.12), 0 4px 12px rgba(0, 0, 0, 0.06));
|
|
6759
|
+
|
|
6760
|
+
/* Fork panel theming */
|
|
6761
|
+
--_fork-bg: var(--mb-adapt-fork-bg, #ffffff);
|
|
6762
|
+
--_fork-tab-bg: var(--mb-adapt-fork-tab-bg, #f3f3f3);
|
|
6763
|
+
--_fork-tab-active-bg: var(--mb-adapt-fork-tab-active-bg, #ffffff);
|
|
6764
|
+
--_fork-tab-color: var(--mb-adapt-fork-tab-color, rgb(51, 51, 51));
|
|
6765
|
+
--_fork-tab-inactive-color: var(--mb-adapt-fork-tab-inactive-color, rgba(51, 51, 51, 0.7));
|
|
6766
|
+
--_fork-separator: var(--mb-adapt-fork-separator, rgba(128, 128, 128, 0.35));
|
|
6767
|
+
|
|
6768
|
+
/* Tab shape */
|
|
6769
|
+
--_tab-radius: var(--mb-adapt-tab-radius, 0);
|
|
6770
|
+
--_tab-shadow: var(--mb-adapt-tab-shadow, none);
|
|
6771
|
+
--_tab-active-shadow: var(--mb-adapt-tab-active-shadow, none);
|
|
6772
|
+
--_tab-gap: var(--mb-adapt-tab-gap, 0px);
|
|
6773
|
+
--_tab-padding: var(--mb-adapt-tab-padding, 0 14px);
|
|
6774
|
+
--_tab-font-size: var(--mb-adapt-tab-font-size, 13px);
|
|
6775
|
+
--_tab-min-width: var(--mb-adapt-tab-min-width, 100px);
|
|
6776
|
+
--_tab-spacing: var(--mb-adapt-tab-spacing, 6px);
|
|
6777
|
+
--_toolbar-height: var(--mb-adapt-toolbar-height, 40px);
|
|
6778
|
+
--_toolbar-padding: var(--mb-adapt-toolbar-padding, 0);
|
|
6779
|
+
|
|
6780
|
+
/* Drop targets \u2014 light defaults */
|
|
6781
|
+
--_drop-header-bg: var(--mb-adapt-drop-header-bg, rgba(99, 102, 241, 0.18));
|
|
6782
|
+
--_drop-center-bg: var(--mb-adapt-drop-center-bg, rgba(99, 102, 241, 0.12));
|
|
6783
|
+
--_drop-split-bg: var(--mb-adapt-drop-split-bg, rgba(99, 102, 241, 0.14));
|
|
6784
|
+
--_drop-border: var(--mb-adapt-drop-border, rgba(99, 102, 241, 0.55));
|
|
6785
|
+
|
|
6786
|
+
background: var(--_bg);
|
|
6760
6787
|
}
|
|
6761
6788
|
|
|
6762
6789
|
.mb-adapt--dark {
|
|
6763
6790
|
/* Cap.js widget dark mode */
|
|
6764
|
-
--mb-adapt-cap-background
|
|
6765
|
-
--mb-adapt-cap-border-color
|
|
6766
|
-
--mb-adapt-cap-color
|
|
6767
|
-
--mb-adapt-cap-checkbox-border
|
|
6768
|
-
--mb-adapt-cap-checkbox-background
|
|
6769
|
-
--mb-adapt-cap-spinner-color
|
|
6770
|
-
--mb-adapt-cap-spinner-bg
|
|
6771
|
-
--mb-adapt-cap-shadow
|
|
6772
|
-
--mb-adapt-cap-shadow-hover
|
|
6791
|
+
--_cap-background: var(--mb-adapt-cap-background, #1e293b);
|
|
6792
|
+
--_cap-border-color: var(--mb-adapt-cap-border-color, #334155);
|
|
6793
|
+
--_cap-color: var(--mb-adapt-cap-color, #f1f5f9);
|
|
6794
|
+
--_cap-checkbox-border: var(--mb-adapt-cap-checkbox-border, 2px solid #475569);
|
|
6795
|
+
--_cap-checkbox-background: var(--mb-adapt-cap-checkbox-background, #0f172a);
|
|
6796
|
+
--_cap-spinner-color: var(--mb-adapt-cap-spinner-color, #818cf8);
|
|
6797
|
+
--_cap-spinner-bg: var(--mb-adapt-cap-spinner-bg, #334155);
|
|
6798
|
+
--_cap-shadow: var(--mb-adapt-cap-shadow, 0 4px 20px rgba(0, 0, 0, 0.25), 0 2px 8px rgba(0, 0, 0, 0.15));
|
|
6799
|
+
--_cap-shadow-hover: var(--mb-adapt-cap-shadow-hover, 0 8px 30px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.2));
|
|
6773
6800
|
|
|
6774
6801
|
/* Status card dark mode */
|
|
6775
|
-
--mb-adapt-status-card-bg
|
|
6776
|
-
--mb-adapt-status-card-border
|
|
6777
|
-
--mb-adapt-status-icon-bg
|
|
6778
|
-
--mb-adapt-status-
|
|
6802
|
+
--_status-card-bg: var(--mb-adapt-status-card-bg, #1e293b);
|
|
6803
|
+
--_status-card-border: var(--mb-adapt-status-card-border, #334155);
|
|
6804
|
+
--_status-icon-bg: var(--mb-adapt-status-icon-bg, #351c1c);
|
|
6805
|
+
--_status-icon-stopped-bg: var(--mb-adapt-status-icon-stopped-bg, var(--mb-adapt-status-icon-bg, #1e293b));
|
|
6806
|
+
--_status-text: var(--mb-adapt-status-text, #e2e8f0);
|
|
6779
6807
|
|
|
6780
6808
|
/* Panel dark mode overrides */
|
|
6781
|
-
--mb-adapt-button-hover-bg
|
|
6782
|
-
--mb-adapt-separator-active
|
|
6783
|
-
--mb-adapt-floating-shadow
|
|
6784
|
-
--mb-adapt-floating-border
|
|
6785
|
-
--mb-adapt-status-card-shadow
|
|
6786
|
-
--mb-adapt-drag-ghost-shadow
|
|
6809
|
+
--_button-hover-bg: var(--mb-adapt-button-hover-bg, rgba(128, 128, 128, 0.3));
|
|
6810
|
+
--_separator-active: var(--mb-adapt-separator-active, rgba(99, 130, 246, 0.6));
|
|
6811
|
+
--_floating-shadow: var(--mb-adapt-floating-shadow, 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 12px 24px -8px rgba(0, 0, 0, 0.3));
|
|
6812
|
+
--_floating-border: var(--mb-adapt-floating-border, 1px solid rgba(255, 255, 255, 0.06));
|
|
6813
|
+
--_status-card-shadow: var(--mb-adapt-status-card-shadow, 0 4px 24px rgba(0, 0, 0, 0.25), 0 2px 8px rgba(0, 0, 0, 0.15));
|
|
6814
|
+
--_drag-ghost-shadow: var(--mb-adapt-drag-ghost-shadow, 0 4px 12px rgba(0, 0, 0, 0.35));
|
|
6787
6815
|
|
|
6788
6816
|
/* Fork panel dark mode */
|
|
6789
|
-
--mb-adapt-fork-bg
|
|
6790
|
-
--mb-adapt-fork-tab-bg
|
|
6791
|
-
--mb-adapt-fork-tab-active-bg
|
|
6792
|
-
--mb-adapt-fork-tab-color
|
|
6793
|
-
--mb-adapt-fork-tab-inactive-color
|
|
6794
|
-
--mb-adapt-fork-separator
|
|
6817
|
+
--_fork-bg: var(--mb-adapt-fork-bg, #1e1e1e);
|
|
6818
|
+
--_fork-tab-bg: var(--mb-adapt-fork-tab-bg, #252526);
|
|
6819
|
+
--_fork-tab-active-bg: var(--mb-adapt-fork-tab-active-bg, #1e1e1e);
|
|
6820
|
+
--_fork-tab-color: var(--mb-adapt-fork-tab-color, #ffffff);
|
|
6821
|
+
--_fork-tab-inactive-color: var(--mb-adapt-fork-tab-inactive-color, #969696);
|
|
6822
|
+
--_fork-separator: var(--mb-adapt-fork-separator, rgb(68, 68, 68));
|
|
6795
6823
|
|
|
6796
6824
|
/* Drop target dark mode */
|
|
6797
|
-
--mb-adapt-drop-header-bg
|
|
6798
|
-
--mb-adapt-drop-center-bg
|
|
6799
|
-
--mb-adapt-drop-split-bg
|
|
6800
|
-
--mb-adapt-drop-border
|
|
6825
|
+
--_drop-header-bg: var(--mb-adapt-drop-header-bg, rgba(129, 140, 248, 0.22));
|
|
6826
|
+
--_drop-center-bg: var(--mb-adapt-drop-center-bg, rgba(129, 140, 248, 0.15));
|
|
6827
|
+
--_drop-split-bg: var(--mb-adapt-drop-split-bg, rgba(129, 140, 248, 0.18));
|
|
6828
|
+
--_drop-border: var(--mb-adapt-drop-border, rgba(129, 140, 248, 0.6));
|
|
6801
6829
|
}
|
|
6802
6830
|
|
|
6803
6831
|
/* \u2500\u2500 Layout (recursive split tree) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -6837,7 +6865,7 @@ var MbAdapt = (() => {
|
|
|
6837
6865
|
/* Draggable separator between split panels */
|
|
6838
6866
|
.mb-layout-separator {
|
|
6839
6867
|
flex: 0 0 5px;
|
|
6840
|
-
background: var(--
|
|
6868
|
+
background: var(--_fork-separator);
|
|
6841
6869
|
transition: background 0.15s;
|
|
6842
6870
|
position: relative;
|
|
6843
6871
|
z-index: 1;
|
|
@@ -6849,7 +6877,7 @@ var MbAdapt = (() => {
|
|
|
6849
6877
|
|
|
6850
6878
|
.mb-layout-separator:hover,
|
|
6851
6879
|
.mb-layout-separator--active {
|
|
6852
|
-
background: var(--
|
|
6880
|
+
background: var(--_separator-active);
|
|
6853
6881
|
}
|
|
6854
6882
|
|
|
6855
6883
|
/* \u2500\u2500 Group \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -6857,16 +6885,17 @@ var MbAdapt = (() => {
|
|
|
6857
6885
|
display: flex;
|
|
6858
6886
|
flex-direction: column;
|
|
6859
6887
|
height: 100%;
|
|
6860
|
-
background: var(--
|
|
6888
|
+
background: var(--_bg);
|
|
6861
6889
|
}
|
|
6862
6890
|
|
|
6863
6891
|
.mb-group-header {
|
|
6864
6892
|
display: flex;
|
|
6865
6893
|
align-items: stretch;
|
|
6866
|
-
height:
|
|
6867
|
-
min-height:
|
|
6868
|
-
|
|
6869
|
-
|
|
6894
|
+
height: var(--_toolbar-height);
|
|
6895
|
+
min-height: var(--_toolbar-height);
|
|
6896
|
+
padding: var(--_toolbar-padding);
|
|
6897
|
+
background: var(--_fork-tab-bg);
|
|
6898
|
+
border-bottom: 1px solid var(--_fork-separator);
|
|
6870
6899
|
user-select: none;
|
|
6871
6900
|
}
|
|
6872
6901
|
|
|
@@ -6877,7 +6906,7 @@ var MbAdapt = (() => {
|
|
|
6877
6906
|
|
|
6878
6907
|
.mb-group-tabs {
|
|
6879
6908
|
display: flex;
|
|
6880
|
-
align-items:
|
|
6909
|
+
align-items: center;
|
|
6881
6910
|
overflow-x: auto;
|
|
6882
6911
|
overflow-y: hidden;
|
|
6883
6912
|
flex: 0 1 auto;
|
|
@@ -6904,16 +6933,16 @@ var MbAdapt = (() => {
|
|
|
6904
6933
|
flex: 1;
|
|
6905
6934
|
position: relative;
|
|
6906
6935
|
overflow: hidden;
|
|
6907
|
-
background: var(--
|
|
6936
|
+
background: var(--_fork-bg);
|
|
6908
6937
|
}
|
|
6909
6938
|
|
|
6910
6939
|
/* Main group overrides */
|
|
6911
6940
|
.mb-group[data-main-group="true"] {
|
|
6912
|
-
background: var(--
|
|
6941
|
+
background: var(--_bg);
|
|
6913
6942
|
}
|
|
6914
6943
|
|
|
6915
6944
|
.mb-group[data-main-group="true"] .mb-group-content {
|
|
6916
|
-
background: var(--
|
|
6945
|
+
background: var(--_bg);
|
|
6917
6946
|
}
|
|
6918
6947
|
|
|
6919
6948
|
|
|
@@ -6921,27 +6950,31 @@ var MbAdapt = (() => {
|
|
|
6921
6950
|
.mb-tab {
|
|
6922
6951
|
display: flex;
|
|
6923
6952
|
align-items: center;
|
|
6924
|
-
gap:
|
|
6925
|
-
padding:
|
|
6926
|
-
min-width:
|
|
6927
|
-
font-size:
|
|
6928
|
-
font-family: var(--
|
|
6953
|
+
gap: var(--_tab-spacing);
|
|
6954
|
+
padding: var(--_tab-padding);
|
|
6955
|
+
min-width: var(--_tab-min-width);
|
|
6956
|
+
font-size: var(--_tab-font-size);
|
|
6957
|
+
font-family: var(--_font);
|
|
6929
6958
|
white-space: nowrap;
|
|
6930
6959
|
cursor: pointer;
|
|
6931
6960
|
touch-action: none;
|
|
6932
|
-
color: var(--
|
|
6933
|
-
background: var(--
|
|
6934
|
-
border-right: 1px solid var(--
|
|
6935
|
-
|
|
6961
|
+
color: var(--_fork-tab-inactive-color);
|
|
6962
|
+
background: var(--_fork-tab-bg);
|
|
6963
|
+
border-right: 1px solid var(--_fork-separator);
|
|
6964
|
+
border-radius: var(--_tab-radius);
|
|
6965
|
+
box-shadow: var(--_tab-shadow);
|
|
6966
|
+
margin: var(--_tab-gap);
|
|
6967
|
+
transition: background 0.15s, box-shadow 0.15s;
|
|
6936
6968
|
}
|
|
6937
6969
|
|
|
6938
6970
|
.mb-tab[data-active="true"] {
|
|
6939
|
-
color: var(--
|
|
6940
|
-
background: var(--
|
|
6971
|
+
color: var(--_fork-tab-color);
|
|
6972
|
+
background: var(--_fork-tab-active-bg);
|
|
6973
|
+
box-shadow: var(--_tab-active-shadow);
|
|
6941
6974
|
}
|
|
6942
6975
|
|
|
6943
6976
|
.mb-tab:hover {
|
|
6944
|
-
background: var(--
|
|
6977
|
+
background: var(--_fork-tab-active-bg);
|
|
6945
6978
|
}
|
|
6946
6979
|
|
|
6947
6980
|
.mb-tab-label {
|
|
@@ -6992,7 +7025,7 @@ var MbAdapt = (() => {
|
|
|
6992
7025
|
|
|
6993
7026
|
.mb-tab-close:hover {
|
|
6994
7027
|
opacity: 1 !important;
|
|
6995
|
-
background: var(--
|
|
7028
|
+
background: var(--_button-hover-bg);
|
|
6996
7029
|
}
|
|
6997
7030
|
|
|
6998
7031
|
.mb-tab-close svg {
|
|
@@ -7020,11 +7053,11 @@ var MbAdapt = (() => {
|
|
|
7020
7053
|
.mb-floating-overlay {
|
|
7021
7054
|
position: fixed;
|
|
7022
7055
|
z-index: 100000;
|
|
7023
|
-
box-shadow: var(--
|
|
7024
|
-
border: var(--
|
|
7025
|
-
backdrop-filter: var(--
|
|
7026
|
-
-webkit-backdrop-filter: var(--
|
|
7027
|
-
border-radius: var(--
|
|
7056
|
+
box-shadow: var(--_floating-shadow);
|
|
7057
|
+
border: var(--_floating-border);
|
|
7058
|
+
backdrop-filter: var(--_floating-backdrop);
|
|
7059
|
+
-webkit-backdrop-filter: var(--_floating-backdrop);
|
|
7060
|
+
border-radius: var(--_floating-radius);
|
|
7028
7061
|
display: flex;
|
|
7029
7062
|
flex-direction: column;
|
|
7030
7063
|
/* No overflow:hidden here \u2014 resize handles use negative offsets (top:-3px etc.)
|
|
@@ -7034,7 +7067,7 @@ var MbAdapt = (() => {
|
|
|
7034
7067
|
|
|
7035
7068
|
.mb-floating-overlay > .mb-group {
|
|
7036
7069
|
flex: 1;
|
|
7037
|
-
border-radius: var(--
|
|
7070
|
+
border-radius: var(--_floating-radius);
|
|
7038
7071
|
overflow: hidden;
|
|
7039
7072
|
}
|
|
7040
7073
|
|
|
@@ -7046,7 +7079,7 @@ var MbAdapt = (() => {
|
|
|
7046
7079
|
flex: 1;
|
|
7047
7080
|
min-width: 0;
|
|
7048
7081
|
min-height: 0;
|
|
7049
|
-
border-radius: var(--
|
|
7082
|
+
border-radius: var(--_floating-radius);
|
|
7050
7083
|
overflow: hidden;
|
|
7051
7084
|
}
|
|
7052
7085
|
|
|
@@ -7091,7 +7124,7 @@ var MbAdapt = (() => {
|
|
|
7091
7124
|
border: 0;
|
|
7092
7125
|
display: block;
|
|
7093
7126
|
background: transparent;
|
|
7094
|
-
border-radius: var(--
|
|
7127
|
+
border-radius: var(--_border-radius);
|
|
7095
7128
|
pointer-events: auto;
|
|
7096
7129
|
opacity: 0;
|
|
7097
7130
|
transition: opacity 0.1s ease-out;
|
|
@@ -7126,10 +7159,10 @@ var MbAdapt = (() => {
|
|
|
7126
7159
|
padding: 32px 40px;
|
|
7127
7160
|
max-width: 380px;
|
|
7128
7161
|
border-radius: 16px;
|
|
7129
|
-
background: var(--
|
|
7130
|
-
border: 1px solid var(--
|
|
7131
|
-
box-shadow: var(--
|
|
7132
|
-
font-family: var(--
|
|
7162
|
+
background: var(--_status-card-bg);
|
|
7163
|
+
border: 1px solid var(--_status-card-border);
|
|
7164
|
+
box-shadow: var(--_status-card-shadow);
|
|
7165
|
+
font-family: var(--_font);
|
|
7133
7166
|
text-align: center;
|
|
7134
7167
|
}
|
|
7135
7168
|
|
|
@@ -7140,7 +7173,7 @@ var MbAdapt = (() => {
|
|
|
7140
7173
|
display: flex;
|
|
7141
7174
|
align-items: center;
|
|
7142
7175
|
justify-content: center;
|
|
7143
|
-
background: var(--
|
|
7176
|
+
background: var(--_status-icon-bg);
|
|
7144
7177
|
}
|
|
7145
7178
|
|
|
7146
7179
|
.mb-adapt__status-icon svg {
|
|
@@ -7149,11 +7182,11 @@ var MbAdapt = (() => {
|
|
|
7149
7182
|
}
|
|
7150
7183
|
|
|
7151
7184
|
.mb-adapt__status-icon--stopped {
|
|
7152
|
-
background: var(--
|
|
7185
|
+
background: var(--_status-icon-stopped-bg);
|
|
7153
7186
|
}
|
|
7154
7187
|
|
|
7155
7188
|
.mb-adapt__status-text {
|
|
7156
|
-
color: var(--
|
|
7189
|
+
color: var(--_status-text);
|
|
7157
7190
|
font-size: 15px;
|
|
7158
7191
|
line-height: 1.5;
|
|
7159
7192
|
margin: 0;
|
|
@@ -7161,19 +7194,19 @@ var MbAdapt = (() => {
|
|
|
7161
7194
|
|
|
7162
7195
|
.mb-adapt__status-restart {
|
|
7163
7196
|
padding: 8px 20px;
|
|
7164
|
-
border: 1px solid var(--
|
|
7197
|
+
border: 1px solid var(--_status-card-border);
|
|
7165
7198
|
border-radius: 8px;
|
|
7166
7199
|
background: transparent;
|
|
7167
|
-
color: var(--
|
|
7200
|
+
color: var(--_status-text);
|
|
7168
7201
|
font-size: 14px;
|
|
7169
7202
|
font-weight: 500;
|
|
7170
|
-
font-family: var(--
|
|
7203
|
+
font-family: var(--_font);
|
|
7171
7204
|
cursor: pointer;
|
|
7172
7205
|
transition: background 0.15s, border-color 0.15s;
|
|
7173
7206
|
}
|
|
7174
7207
|
|
|
7175
7208
|
.mb-adapt__status-restart:hover {
|
|
7176
|
-
background: var(--
|
|
7209
|
+
background: var(--_status-card-border);
|
|
7177
7210
|
}
|
|
7178
7211
|
|
|
7179
7212
|
/* \u2500\u2500 Confirm-on-close dialog \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -7203,18 +7236,18 @@ var MbAdapt = (() => {
|
|
|
7203
7236
|
padding: 24px 28px;
|
|
7204
7237
|
max-width: 360px;
|
|
7205
7238
|
width: 100%;
|
|
7206
|
-
border-radius: var(--
|
|
7207
|
-
background: var(--
|
|
7208
|
-
border: 1px solid var(--
|
|
7209
|
-
box-shadow: var(--
|
|
7210
|
-
font-family: var(--
|
|
7239
|
+
border-radius: var(--_floating-radius);
|
|
7240
|
+
background: var(--_fork-tab-active-bg);
|
|
7241
|
+
border: 1px solid var(--_fork-separator);
|
|
7242
|
+
box-shadow: var(--_floating-shadow);
|
|
7243
|
+
font-family: var(--_font);
|
|
7211
7244
|
text-align: center;
|
|
7212
7245
|
}
|
|
7213
7246
|
|
|
7214
7247
|
.mb-adapt__confirm-text {
|
|
7215
7248
|
font-size: 14px;
|
|
7216
7249
|
line-height: 1.5;
|
|
7217
|
-
color: var(--
|
|
7250
|
+
color: var(--_fork-tab-color);
|
|
7218
7251
|
margin: 0;
|
|
7219
7252
|
}
|
|
7220
7253
|
|
|
@@ -7228,7 +7261,7 @@ var MbAdapt = (() => {
|
|
|
7228
7261
|
padding: 8px 16px;
|
|
7229
7262
|
border-radius: 6px;
|
|
7230
7263
|
font-size: 13px;
|
|
7231
|
-
font-family: var(--
|
|
7264
|
+
font-family: var(--_font);
|
|
7232
7265
|
cursor: pointer;
|
|
7233
7266
|
font-weight: 500;
|
|
7234
7267
|
transition: background 0.15s, border-color 0.15s;
|
|
@@ -7236,17 +7269,17 @@ var MbAdapt = (() => {
|
|
|
7236
7269
|
|
|
7237
7270
|
.mb-adapt__confirm-btn--cancel {
|
|
7238
7271
|
background: transparent;
|
|
7239
|
-
border: 1px solid var(--
|
|
7240
|
-
color: var(--
|
|
7272
|
+
border: 1px solid var(--_fork-separator);
|
|
7273
|
+
color: var(--_fork-tab-color);
|
|
7241
7274
|
}
|
|
7242
7275
|
|
|
7243
7276
|
.mb-adapt__confirm-btn--cancel:hover {
|
|
7244
|
-
background: var(--
|
|
7277
|
+
background: var(--_button-hover-bg);
|
|
7245
7278
|
}
|
|
7246
7279
|
|
|
7247
7280
|
.mb-adapt__confirm-btn--confirm {
|
|
7248
|
-
background: var(--
|
|
7249
|
-
color: var(--
|
|
7281
|
+
background: var(--_fork-tab-color);
|
|
7282
|
+
color: var(--_fork-tab-active-bg);
|
|
7250
7283
|
border: 1px solid transparent;
|
|
7251
7284
|
}
|
|
7252
7285
|
|
|
@@ -7271,23 +7304,23 @@ var MbAdapt = (() => {
|
|
|
7271
7304
|
|
|
7272
7305
|
/* Cap.js widget styling */
|
|
7273
7306
|
.mb-adapt cap-widget {
|
|
7274
|
-
--cap-background: var(--
|
|
7275
|
-
--cap-border-color: var(--
|
|
7276
|
-
--cap-border-radius: var(--
|
|
7277
|
-
--cap-widget-height: var(--
|
|
7278
|
-
--cap-widget-width: var(--
|
|
7279
|
-
--cap-widget-padding: var(--
|
|
7280
|
-
--cap-gap: var(--
|
|
7281
|
-
--cap-color: var(--
|
|
7282
|
-
--cap-checkbox-size: var(--
|
|
7283
|
-
--cap-checkbox-border: var(--
|
|
7284
|
-
--cap-checkbox-border-radius: var(--
|
|
7285
|
-
--cap-checkbox-background: var(--
|
|
7307
|
+
--cap-background: var(--_cap-background);
|
|
7308
|
+
--cap-border-color: var(--_cap-border-color);
|
|
7309
|
+
--cap-border-radius: var(--_cap-border-radius);
|
|
7310
|
+
--cap-widget-height: var(--_cap-height);
|
|
7311
|
+
--cap-widget-width: var(--_cap-width);
|
|
7312
|
+
--cap-widget-padding: var(--_cap-padding);
|
|
7313
|
+
--cap-gap: var(--_cap-gap);
|
|
7314
|
+
--cap-color: var(--_cap-color);
|
|
7315
|
+
--cap-checkbox-size: var(--_cap-checkbox-size);
|
|
7316
|
+
--cap-checkbox-border: var(--_cap-checkbox-border);
|
|
7317
|
+
--cap-checkbox-border-radius: var(--_cap-checkbox-radius);
|
|
7318
|
+
--cap-checkbox-background: var(--_cap-checkbox-background);
|
|
7286
7319
|
--cap-checkbox-margin: 0;
|
|
7287
|
-
--cap-font: var(--
|
|
7288
|
-
--cap-spinner-color: var(--
|
|
7289
|
-
--cap-spinner-background-color: var(--
|
|
7290
|
-
--cap-spinner-thickness: var(--
|
|
7320
|
+
--cap-font: var(--_cap-font);
|
|
7321
|
+
--cap-spinner-color: var(--_cap-spinner-color);
|
|
7322
|
+
--cap-spinner-background-color: var(--_cap-spinner-bg);
|
|
7323
|
+
--cap-spinner-thickness: var(--_cap-spinner-thickness);
|
|
7291
7324
|
}
|
|
7292
7325
|
|
|
7293
7326
|
/* Hide Cap.js credits */
|
|
@@ -7308,7 +7341,7 @@ cap-widget::part(attribution) {
|
|
|
7308
7341
|
padding: 0;
|
|
7309
7342
|
border: none;
|
|
7310
7343
|
background: transparent;
|
|
7311
|
-
color: var(--
|
|
7344
|
+
color: var(--_fork-tab-color);
|
|
7312
7345
|
cursor: pointer;
|
|
7313
7346
|
display: flex;
|
|
7314
7347
|
align-items: center;
|
|
@@ -7319,7 +7352,7 @@ cap-widget::part(attribution) {
|
|
|
7319
7352
|
}
|
|
7320
7353
|
.mb-adapt-fork-actions button:hover {
|
|
7321
7354
|
opacity: 1;
|
|
7322
|
-
background: var(--
|
|
7355
|
+
background: var(--_button-hover-bg);
|
|
7323
7356
|
}
|
|
7324
7357
|
.mb-adapt-fork-actions button svg {
|
|
7325
7358
|
width: 14px;
|
|
@@ -7332,12 +7365,12 @@ cap-widget::part(attribution) {
|
|
|
7332
7365
|
docked panels are minimized \u2014 the iframe gets the remaining height. */
|
|
7333
7366
|
.mb-adapt-minimized-tabs {
|
|
7334
7367
|
display: none;
|
|
7335
|
-
height:
|
|
7368
|
+
height: var(--_toolbar-height);
|
|
7336
7369
|
flex-shrink: 0;
|
|
7337
7370
|
z-index: 100;
|
|
7338
7371
|
align-items: stretch;
|
|
7339
|
-
background: var(--
|
|
7340
|
-
border-bottom: 1px solid var(--
|
|
7372
|
+
background: var(--_fork-tab-bg);
|
|
7373
|
+
border-bottom: 1px solid var(--_fork-separator);
|
|
7341
7374
|
user-select: none;
|
|
7342
7375
|
}
|
|
7343
7376
|
.mb-adapt-minimized-tab {
|
|
@@ -7346,12 +7379,12 @@ cap-widget::part(attribution) {
|
|
|
7346
7379
|
gap: 8px;
|
|
7347
7380
|
padding: 0 12px;
|
|
7348
7381
|
flex: 1;
|
|
7349
|
-
background: var(--
|
|
7350
|
-
color: var(--
|
|
7351
|
-
font-size:
|
|
7352
|
-
font-family: var(--
|
|
7382
|
+
background: var(--_fork-tab-bg);
|
|
7383
|
+
color: var(--_fork-tab-color);
|
|
7384
|
+
font-size: var(--_tab-font-size);
|
|
7385
|
+
font-family: var(--_font);
|
|
7353
7386
|
white-space: nowrap;
|
|
7354
|
-
border-right: 1px solid var(--
|
|
7387
|
+
border-right: 1px solid var(--_fork-separator);
|
|
7355
7388
|
cursor: default;
|
|
7356
7389
|
}
|
|
7357
7390
|
.mb-adapt-minimized-tab-label {
|
|
@@ -7384,7 +7417,7 @@ cap-widget::part(attribution) {
|
|
|
7384
7417
|
}
|
|
7385
7418
|
.mb-adapt-minimized-tab-action:hover {
|
|
7386
7419
|
opacity: 1;
|
|
7387
|
-
background: var(--
|
|
7420
|
+
background: var(--_button-hover-bg);
|
|
7388
7421
|
}
|
|
7389
7422
|
.mb-adapt-minimized-tab-action svg {
|
|
7390
7423
|
width: 14px;
|
|
@@ -7399,8 +7432,8 @@ cap-widget::part(attribution) {
|
|
|
7399
7432
|
|
|
7400
7433
|
/* Drop target highlight for minimized tab merge */
|
|
7401
7434
|
.mb-adapt-minimized-tab--drop-target {
|
|
7402
|
-
background: var(--
|
|
7403
|
-
box-shadow: inset 0 0 0 2px var(--
|
|
7435
|
+
background: var(--_drop-header-bg) !important;
|
|
7436
|
+
box-shadow: inset 0 0 0 2px var(--_drop-border);
|
|
7404
7437
|
}
|
|
7405
7438
|
|
|
7406
7439
|
/* \u2500\u2500 Pointer-drag ghost element \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -7409,14 +7442,14 @@ cap-widget::part(attribution) {
|
|
|
7409
7442
|
pointer-events: none;
|
|
7410
7443
|
z-index: 999999;
|
|
7411
7444
|
padding: 4px 10px;
|
|
7412
|
-
background: var(--
|
|
7413
|
-
color: var(--
|
|
7414
|
-
border: 1px solid var(--
|
|
7415
|
-
border-radius: 4px;
|
|
7416
|
-
font-size:
|
|
7417
|
-
font-family: var(--
|
|
7445
|
+
background: var(--_fork-tab-bg);
|
|
7446
|
+
color: var(--_fork-tab-color);
|
|
7447
|
+
border: 1px solid var(--_fork-separator);
|
|
7448
|
+
border-radius: var(--_tab-radius, 4px);
|
|
7449
|
+
font-size: var(--_tab-font-size);
|
|
7450
|
+
font-family: var(--_font);
|
|
7418
7451
|
white-space: nowrap;
|
|
7419
|
-
box-shadow: var(--
|
|
7452
|
+
box-shadow: var(--_drag-ghost-shadow);
|
|
7420
7453
|
opacity: 0.92;
|
|
7421
7454
|
display: flex;
|
|
7422
7455
|
align-items: center;
|
|
@@ -7429,8 +7462,8 @@ cap-widget::part(attribution) {
|
|
|
7429
7462
|
|
|
7430
7463
|
/* \u2500\u2500 Drop target highlight on group header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
7431
7464
|
.mb-group-header--drop-target {
|
|
7432
|
-
background: var(--
|
|
7433
|
-
box-shadow: inset 0 0 0 2px var(--
|
|
7465
|
+
background: var(--_drop-header-bg) !important;
|
|
7466
|
+
box-shadow: inset 0 0 0 2px var(--_drop-border);
|
|
7434
7467
|
}
|
|
7435
7468
|
|
|
7436
7469
|
/* \u2500\u2500 Drop overlay (content-area and dock-strip indicators) */
|
|
@@ -7445,16 +7478,16 @@ cap-widget::part(attribution) {
|
|
|
7445
7478
|
}
|
|
7446
7479
|
|
|
7447
7480
|
.mb-drop-overlay[data-zone="center"] {
|
|
7448
|
-
background: var(--
|
|
7449
|
-
border: 2px solid var(--
|
|
7481
|
+
background: var(--_drop-center-bg);
|
|
7482
|
+
border: 2px solid var(--_drop-border);
|
|
7450
7483
|
}
|
|
7451
7484
|
|
|
7452
7485
|
.mb-drop-overlay[data-zone="top"],
|
|
7453
7486
|
.mb-drop-overlay[data-zone="bottom"],
|
|
7454
7487
|
.mb-drop-overlay[data-zone="left"],
|
|
7455
7488
|
.mb-drop-overlay[data-zone="right"] {
|
|
7456
|
-
background: var(--
|
|
7457
|
-
border: 2px solid var(--
|
|
7489
|
+
background: var(--_drop-split-bg);
|
|
7490
|
+
border: 2px solid var(--_drop-border);
|
|
7458
7491
|
}
|
|
7459
7492
|
|
|
7460
7493
|
/* \u2500\u2500 Iframe pointer-event guard during drag \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -7486,7 +7519,7 @@ html.mb-dragging webview {
|
|
|
7486
7519
|
|
|
7487
7520
|
.mb-tab-popout:hover {
|
|
7488
7521
|
opacity: 1 !important;
|
|
7489
|
-
background: var(--
|
|
7522
|
+
background: var(--_button-hover-bg);
|
|
7490
7523
|
}
|
|
7491
7524
|
|
|
7492
7525
|
.mb-tab-popout svg {
|
|
@@ -10422,6 +10455,78 @@ html.mb-dragging webview {
|
|
|
10422
10455
|
}
|
|
10423
10456
|
};
|
|
10424
10457
|
|
|
10458
|
+
// src/theme.ts
|
|
10459
|
+
function parseHex(hex) {
|
|
10460
|
+
const m = /^#([0-9a-f]{3,8})$/i.exec(hex.trim());
|
|
10461
|
+
if (!m) return null;
|
|
10462
|
+
const h = m[1];
|
|
10463
|
+
if (h.length === 3) {
|
|
10464
|
+
return [
|
|
10465
|
+
parseInt(h[0] + h[0], 16),
|
|
10466
|
+
parseInt(h[1] + h[1], 16),
|
|
10467
|
+
parseInt(h[2] + h[2], 16)
|
|
10468
|
+
];
|
|
10469
|
+
}
|
|
10470
|
+
if (h.length === 6 || h.length === 8) {
|
|
10471
|
+
return [
|
|
10472
|
+
parseInt(h.slice(0, 2), 16),
|
|
10473
|
+
parseInt(h.slice(2, 4), 16),
|
|
10474
|
+
parseInt(h.slice(4, 6), 16)
|
|
10475
|
+
];
|
|
10476
|
+
}
|
|
10477
|
+
return null;
|
|
10478
|
+
}
|
|
10479
|
+
function hexToRgba(hex, alpha) {
|
|
10480
|
+
const rgb = parseHex(hex);
|
|
10481
|
+
if (!rgb) return hex;
|
|
10482
|
+
return `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${alpha})`;
|
|
10483
|
+
}
|
|
10484
|
+
function resolveTheme(theme) {
|
|
10485
|
+
const result = {};
|
|
10486
|
+
if (theme.primary) {
|
|
10487
|
+
const p = theme.primary;
|
|
10488
|
+
result["--mb-adapt-separator-active"] = hexToRgba(p, 0.4);
|
|
10489
|
+
result["--mb-adapt-drop-border"] = p;
|
|
10490
|
+
result["--mb-adapt-drop-header-bg"] = hexToRgba(p, 0.15);
|
|
10491
|
+
result["--mb-adapt-drop-center-bg"] = hexToRgba(p, 0.1);
|
|
10492
|
+
result["--mb-adapt-drop-split-bg"] = hexToRgba(p, 0.12);
|
|
10493
|
+
result["--mb-adapt-status-icon-bg"] = hexToRgba(p, 0.08);
|
|
10494
|
+
result["--mb-adapt-cap-spinner-color"] = p;
|
|
10495
|
+
}
|
|
10496
|
+
if (theme.background) {
|
|
10497
|
+
result["--mb-adapt-bg"] = theme.background;
|
|
10498
|
+
result["--mb-adapt-fork-tab-active-bg"] = theme.background;
|
|
10499
|
+
result["--mb-adapt-status-card-bg"] = theme.background;
|
|
10500
|
+
}
|
|
10501
|
+
if (theme.surface) {
|
|
10502
|
+
result["--mb-adapt-fork-bg"] = theme.surface;
|
|
10503
|
+
result["--mb-adapt-fork-tab-bg"] = theme.surface;
|
|
10504
|
+
}
|
|
10505
|
+
if (theme.text) {
|
|
10506
|
+
result["--mb-adapt-fork-tab-color"] = theme.text;
|
|
10507
|
+
result["--mb-adapt-status-text"] = theme.text;
|
|
10508
|
+
result["--mb-adapt-cap-color"] = theme.text;
|
|
10509
|
+
}
|
|
10510
|
+
if (theme.textSecondary) {
|
|
10511
|
+
result["--mb-adapt-fork-tab-inactive-color"] = theme.textSecondary;
|
|
10512
|
+
}
|
|
10513
|
+
if (theme.border) {
|
|
10514
|
+
result["--mb-adapt-fork-separator"] = theme.border;
|
|
10515
|
+
result["--mb-adapt-status-card-border"] = theme.border;
|
|
10516
|
+
result["--mb-adapt-cap-border-color"] = theme.border;
|
|
10517
|
+
}
|
|
10518
|
+
if (theme.font) {
|
|
10519
|
+
result["--mb-adapt-font"] = theme.font;
|
|
10520
|
+
result["--mb-adapt-cap-font"] = theme.font;
|
|
10521
|
+
}
|
|
10522
|
+
if (theme.vars) {
|
|
10523
|
+
for (const [key, value] of Object.entries(theme.vars)) {
|
|
10524
|
+
result[`--mb-adapt-${key}`] = value;
|
|
10525
|
+
}
|
|
10526
|
+
}
|
|
10527
|
+
return result;
|
|
10528
|
+
}
|
|
10529
|
+
|
|
10425
10530
|
// src/AdaptAutomationElement.ts
|
|
10426
10531
|
var OBSERVED_ATTRIBUTES = [
|
|
10427
10532
|
"automation-id",
|
|
@@ -10454,6 +10559,13 @@ html.mb-dragging webview {
|
|
|
10454
10559
|
static get observedAttributes() {
|
|
10455
10560
|
return OBSERVED_ATTRIBUTES;
|
|
10456
10561
|
}
|
|
10562
|
+
get theme() {
|
|
10563
|
+
return this._theme;
|
|
10564
|
+
}
|
|
10565
|
+
set theme(v) {
|
|
10566
|
+
this._theme = v;
|
|
10567
|
+
this._client?.setTheme(v);
|
|
10568
|
+
}
|
|
10457
10569
|
// --- Attribute ↔ Property reflection ---
|
|
10458
10570
|
get automationId() {
|
|
10459
10571
|
return this.getAttribute("automation-id");
|
|
@@ -10706,6 +10818,7 @@ html.mb-dragging webview {
|
|
|
10706
10818
|
if (this.classNames !== void 0) options.classNames = this.classNames;
|
|
10707
10819
|
if (this.styles !== void 0) options.styles = this.styles;
|
|
10708
10820
|
if (this.text !== void 0) options.text = this.text;
|
|
10821
|
+
if (this._theme !== void 0) options.theme = this._theme;
|
|
10709
10822
|
if (this.persistOptions !== void 0) {
|
|
10710
10823
|
options.persist = this.persistOptions;
|
|
10711
10824
|
} else if (this.persist) {
|
|
@@ -10796,6 +10909,7 @@ html.mb-dragging webview {
|
|
|
10796
10909
|
this.allowMaximize = options.allowMaximize ?? true;
|
|
10797
10910
|
this.floatingAutoResize = options.floatingAutoResize ?? false;
|
|
10798
10911
|
this.confirmOnClose = options.confirmOnClose ?? false;
|
|
10912
|
+
this.theme = options.theme;
|
|
10799
10913
|
const container = typeof options.container === "string" ? document.getElementById(options.container) : options.container;
|
|
10800
10914
|
if (!container) {
|
|
10801
10915
|
throw new Error(`Container with id '${options.container}' not found`);
|
|
@@ -10998,11 +11112,43 @@ html.mb-dragging webview {
|
|
|
10998
11112
|
this.darkMode = darkMode;
|
|
10999
11113
|
this.rootElement?.classList.toggle("mb-adapt--dark", darkMode);
|
|
11000
11114
|
this.capWidgetInstance?.setDarkMode(darkMode);
|
|
11115
|
+
this.applyTheme();
|
|
11001
11116
|
const msg = { type: "adapt-darkMode", darkMode };
|
|
11002
11117
|
for (const c of this.components.values()) {
|
|
11003
11118
|
this.postToComponent(c, msg);
|
|
11004
11119
|
}
|
|
11005
11120
|
}
|
|
11121
|
+
/**
|
|
11122
|
+
* Set the theme. Applies CSS custom properties derived from semantic tokens.
|
|
11123
|
+
* Pass `undefined` to clear all theme overrides.
|
|
11124
|
+
*/
|
|
11125
|
+
setTheme(theme) {
|
|
11126
|
+
this.theme = theme;
|
|
11127
|
+
this.clearThemeVars();
|
|
11128
|
+
if (theme?.mode !== void 0) {
|
|
11129
|
+
const dark = theme.mode === "dark";
|
|
11130
|
+
if (this.darkMode !== dark) {
|
|
11131
|
+
this.setDarkMode(dark);
|
|
11132
|
+
return;
|
|
11133
|
+
}
|
|
11134
|
+
}
|
|
11135
|
+
this.applyTheme();
|
|
11136
|
+
}
|
|
11137
|
+
clearThemeVars() {
|
|
11138
|
+
if (!this.rootElement || !this._appliedThemeVars) return;
|
|
11139
|
+
for (const key of this._appliedThemeVars) {
|
|
11140
|
+
this.rootElement.style.removeProperty(key);
|
|
11141
|
+
}
|
|
11142
|
+
this._appliedThemeVars = void 0;
|
|
11143
|
+
}
|
|
11144
|
+
applyTheme() {
|
|
11145
|
+
if (!this.rootElement || !this.theme) return;
|
|
11146
|
+
const vars = resolveTheme(this.theme);
|
|
11147
|
+
for (const [key, value] of Object.entries(vars)) {
|
|
11148
|
+
this.rootElement.style.setProperty(key, value);
|
|
11149
|
+
}
|
|
11150
|
+
this._appliedThemeVars = Object.keys(vars);
|
|
11151
|
+
}
|
|
11006
11152
|
/**
|
|
11007
11153
|
* Enable or disable auto-resizing based on iframe content height.
|
|
11008
11154
|
*/
|
|
@@ -11207,6 +11353,7 @@ html.mb-dragging webview {
|
|
|
11207
11353
|
if (this.options.styles) {
|
|
11208
11354
|
Object.assign(this.rootElement.style, this.options.styles);
|
|
11209
11355
|
}
|
|
11356
|
+
this.applyTheme();
|
|
11210
11357
|
this.container.appendChild(this.rootElement);
|
|
11211
11358
|
}
|
|
11212
11359
|
// --- URL handling ---
|