@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
package/dist/umd/adapt-web.js
CHANGED
|
@@ -7253,89 +7253,116 @@ var MbAdapt = (() => {
|
|
|
7253
7253
|
min-height: inherit;
|
|
7254
7254
|
display: flex;
|
|
7255
7255
|
flex-direction: column;
|
|
7256
|
-
|
|
7257
|
-
--mb-adapt-
|
|
7258
|
-
--mb-adapt-
|
|
7259
|
-
--mb-adapt-
|
|
7260
|
-
--mb-adapt-
|
|
7261
|
-
--mb-adapt-
|
|
7262
|
-
--mb-adapt-floating-
|
|
7263
|
-
--mb-adapt-floating-
|
|
7264
|
-
--mb-adapt-floating-
|
|
7265
|
-
--mb-adapt-
|
|
7266
|
-
--mb-adapt-
|
|
7267
|
-
--mb-adapt-border
|
|
7256
|
+
|
|
7257
|
+
/* Two-layer CSS variables: --_X reads user-set --mb-adapt-X first, falls back to light default */
|
|
7258
|
+
--_bg: var(--mb-adapt-bg, transparent);
|
|
7259
|
+
--_font: var(--mb-adapt-font, system-ui, -apple-system, sans-serif);
|
|
7260
|
+
--_button-hover-bg: var(--mb-adapt-button-hover-bg, rgba(128, 128, 128, 0.2));
|
|
7261
|
+
--_separator-active: var(--mb-adapt-separator-active, rgba(59, 130, 246, 0.5));
|
|
7262
|
+
--_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));
|
|
7263
|
+
--_floating-border: var(--mb-adapt-floating-border, none);
|
|
7264
|
+
--_floating-backdrop: var(--mb-adapt-floating-backdrop, none);
|
|
7265
|
+
--_floating-radius: var(--mb-adapt-floating-radius, 8px);
|
|
7266
|
+
--_status-card-bg: var(--mb-adapt-status-card-bg, #ffffff);
|
|
7267
|
+
--_status-card-border: var(--mb-adapt-status-card-border, #e5e7eb);
|
|
7268
|
+
--_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));
|
|
7269
|
+
--_status-icon-bg: var(--mb-adapt-status-icon-bg, #fef2f2);
|
|
7270
|
+
--_status-icon-stopped-bg: var(--mb-adapt-status-icon-stopped-bg, var(--mb-adapt-status-icon-bg, #f3f4f6));
|
|
7271
|
+
--_status-text: var(--mb-adapt-status-text, #374151);
|
|
7272
|
+
--_drag-ghost-shadow: var(--mb-adapt-drag-ghost-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));
|
|
7273
|
+
--_border-radius: var(--mb-adapt-border-radius, 8px);
|
|
7268
7274
|
--mb-adapt-responsive-breakpoint: 768;
|
|
7269
7275
|
--mb-adapt-responsive-hysteresis: 40;
|
|
7270
7276
|
|
|
7271
|
-
/* Cap.js widget
|
|
7272
|
-
--mb-adapt-cap-background
|
|
7273
|
-
--mb-adapt-cap-border-color
|
|
7274
|
-
--mb-adapt-cap-border-radius
|
|
7275
|
-
--mb-adapt-cap-height
|
|
7276
|
-
--mb-adapt-cap-width
|
|
7277
|
-
--mb-adapt-cap-padding
|
|
7278
|
-
--mb-adapt-cap-gap
|
|
7279
|
-
--mb-adapt-cap-color
|
|
7280
|
-
--mb-adapt-cap-checkbox-size
|
|
7281
|
-
--mb-adapt-cap-checkbox-border
|
|
7282
|
-
--mb-adapt-cap-checkbox-radius
|
|
7283
|
-
--mb-adapt-cap-checkbox-background
|
|
7284
|
-
--mb-adapt-cap-spinner-color
|
|
7285
|
-
--mb-adapt-cap-spinner-bg
|
|
7286
|
-
--mb-adapt-cap-font
|
|
7287
|
-
--mb-adapt-cap-spinner-thickness
|
|
7288
|
-
--mb-adapt-cap-shadow
|
|
7289
|
-
--mb-adapt-cap-shadow-hover
|
|
7290
|
-
|
|
7291
|
-
/* Fork panel theming
|
|
7292
|
-
--mb-adapt-fork-bg
|
|
7293
|
-
--mb-adapt-fork-tab-bg
|
|
7294
|
-
--mb-adapt-fork-tab-active-bg
|
|
7295
|
-
--mb-adapt-fork-tab-color
|
|
7296
|
-
--mb-adapt-fork-tab-inactive-color
|
|
7297
|
-
--mb-adapt-fork-separator
|
|
7277
|
+
/* Cap.js widget variables */
|
|
7278
|
+
--_cap-background: var(--mb-adapt-cap-background, #ffffff);
|
|
7279
|
+
--_cap-border-color: var(--mb-adapt-cap-border-color, #e2e8f0);
|
|
7280
|
+
--_cap-border-radius: var(--mb-adapt-cap-border-radius, 16px);
|
|
7281
|
+
--_cap-height: var(--mb-adapt-cap-height, 72px);
|
|
7282
|
+
--_cap-width: var(--mb-adapt-cap-width, 380px);
|
|
7283
|
+
--_cap-padding: var(--mb-adapt-cap-padding, 20px 28px);
|
|
7284
|
+
--_cap-gap: var(--mb-adapt-cap-gap, 20px);
|
|
7285
|
+
--_cap-color: var(--mb-adapt-cap-color, #1e293b);
|
|
7286
|
+
--_cap-checkbox-size: var(--mb-adapt-cap-checkbox-size, 36px);
|
|
7287
|
+
--_cap-checkbox-border: var(--mb-adapt-cap-checkbox-border, 2px solid #cbd5e1);
|
|
7288
|
+
--_cap-checkbox-radius: var(--mb-adapt-cap-checkbox-radius, 10px);
|
|
7289
|
+
--_cap-checkbox-background: var(--mb-adapt-cap-checkbox-background, #f8fafc);
|
|
7290
|
+
--_cap-spinner-color: var(--mb-adapt-cap-spinner-color, #6366f1);
|
|
7291
|
+
--_cap-spinner-bg: var(--mb-adapt-cap-spinner-bg, #e2e8f0);
|
|
7292
|
+
--_cap-font: var(--mb-adapt-cap-font, inherit);
|
|
7293
|
+
--_cap-spinner-thickness: var(--mb-adapt-cap-spinner-thickness, 3px);
|
|
7294
|
+
--_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));
|
|
7295
|
+
--_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));
|
|
7296
|
+
|
|
7297
|
+
/* Fork panel theming */
|
|
7298
|
+
--_fork-bg: var(--mb-adapt-fork-bg, #ffffff);
|
|
7299
|
+
--_fork-tab-bg: var(--mb-adapt-fork-tab-bg, #f3f3f3);
|
|
7300
|
+
--_fork-tab-active-bg: var(--mb-adapt-fork-tab-active-bg, #ffffff);
|
|
7301
|
+
--_fork-tab-color: var(--mb-adapt-fork-tab-color, rgb(51, 51, 51));
|
|
7302
|
+
--_fork-tab-inactive-color: var(--mb-adapt-fork-tab-inactive-color, rgba(51, 51, 51, 0.7));
|
|
7303
|
+
--_fork-separator: var(--mb-adapt-fork-separator, rgba(128, 128, 128, 0.35));
|
|
7304
|
+
|
|
7305
|
+
/* Tab shape */
|
|
7306
|
+
--_tab-radius: var(--mb-adapt-tab-radius, 0);
|
|
7307
|
+
--_tab-shadow: var(--mb-adapt-tab-shadow, none);
|
|
7308
|
+
--_tab-active-shadow: var(--mb-adapt-tab-active-shadow, none);
|
|
7309
|
+
--_tab-gap: var(--mb-adapt-tab-gap, 0px);
|
|
7310
|
+
--_tab-padding: var(--mb-adapt-tab-padding, 0 14px);
|
|
7311
|
+
--_tab-font-size: var(--mb-adapt-tab-font-size, 13px);
|
|
7312
|
+
--_tab-min-width: var(--mb-adapt-tab-min-width, 100px);
|
|
7313
|
+
--_tab-spacing: var(--mb-adapt-tab-spacing, 6px);
|
|
7314
|
+
--_toolbar-height: var(--mb-adapt-toolbar-height, 40px);
|
|
7315
|
+
--_toolbar-padding: var(--mb-adapt-toolbar-padding, 0);
|
|
7316
|
+
|
|
7317
|
+
/* Drop targets \u2014 light defaults */
|
|
7318
|
+
--_drop-header-bg: var(--mb-adapt-drop-header-bg, rgba(99, 102, 241, 0.18));
|
|
7319
|
+
--_drop-center-bg: var(--mb-adapt-drop-center-bg, rgba(99, 102, 241, 0.12));
|
|
7320
|
+
--_drop-split-bg: var(--mb-adapt-drop-split-bg, rgba(99, 102, 241, 0.14));
|
|
7321
|
+
--_drop-border: var(--mb-adapt-drop-border, rgba(99, 102, 241, 0.55));
|
|
7322
|
+
|
|
7323
|
+
background: var(--_bg);
|
|
7298
7324
|
}
|
|
7299
7325
|
|
|
7300
7326
|
.mb-adapt--dark {
|
|
7301
7327
|
/* Cap.js widget dark mode */
|
|
7302
|
-
--mb-adapt-cap-background
|
|
7303
|
-
--mb-adapt-cap-border-color
|
|
7304
|
-
--mb-adapt-cap-color
|
|
7305
|
-
--mb-adapt-cap-checkbox-border
|
|
7306
|
-
--mb-adapt-cap-checkbox-background
|
|
7307
|
-
--mb-adapt-cap-spinner-color
|
|
7308
|
-
--mb-adapt-cap-spinner-bg
|
|
7309
|
-
--mb-adapt-cap-shadow
|
|
7310
|
-
--mb-adapt-cap-shadow-hover
|
|
7328
|
+
--_cap-background: var(--mb-adapt-cap-background, #1e293b);
|
|
7329
|
+
--_cap-border-color: var(--mb-adapt-cap-border-color, #334155);
|
|
7330
|
+
--_cap-color: var(--mb-adapt-cap-color, #f1f5f9);
|
|
7331
|
+
--_cap-checkbox-border: var(--mb-adapt-cap-checkbox-border, 2px solid #475569);
|
|
7332
|
+
--_cap-checkbox-background: var(--mb-adapt-cap-checkbox-background, #0f172a);
|
|
7333
|
+
--_cap-spinner-color: var(--mb-adapt-cap-spinner-color, #818cf8);
|
|
7334
|
+
--_cap-spinner-bg: var(--mb-adapt-cap-spinner-bg, #334155);
|
|
7335
|
+
--_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));
|
|
7336
|
+
--_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));
|
|
7311
7337
|
|
|
7312
7338
|
/* Status card dark mode */
|
|
7313
|
-
--mb-adapt-status-card-bg
|
|
7314
|
-
--mb-adapt-status-card-border
|
|
7315
|
-
--mb-adapt-status-icon-bg
|
|
7316
|
-
--mb-adapt-status-
|
|
7339
|
+
--_status-card-bg: var(--mb-adapt-status-card-bg, #1e293b);
|
|
7340
|
+
--_status-card-border: var(--mb-adapt-status-card-border, #334155);
|
|
7341
|
+
--_status-icon-bg: var(--mb-adapt-status-icon-bg, #351c1c);
|
|
7342
|
+
--_status-icon-stopped-bg: var(--mb-adapt-status-icon-stopped-bg, var(--mb-adapt-status-icon-bg, #1e293b));
|
|
7343
|
+
--_status-text: var(--mb-adapt-status-text, #e2e8f0);
|
|
7317
7344
|
|
|
7318
7345
|
/* Panel dark mode overrides */
|
|
7319
|
-
--mb-adapt-button-hover-bg
|
|
7320
|
-
--mb-adapt-separator-active
|
|
7321
|
-
--mb-adapt-floating-shadow
|
|
7322
|
-
--mb-adapt-floating-border
|
|
7323
|
-
--mb-adapt-status-card-shadow
|
|
7324
|
-
--mb-adapt-drag-ghost-shadow
|
|
7346
|
+
--_button-hover-bg: var(--mb-adapt-button-hover-bg, rgba(128, 128, 128, 0.3));
|
|
7347
|
+
--_separator-active: var(--mb-adapt-separator-active, rgba(99, 130, 246, 0.6));
|
|
7348
|
+
--_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));
|
|
7349
|
+
--_floating-border: var(--mb-adapt-floating-border, 1px solid rgba(255, 255, 255, 0.06));
|
|
7350
|
+
--_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));
|
|
7351
|
+
--_drag-ghost-shadow: var(--mb-adapt-drag-ghost-shadow, 0 4px 12px rgba(0, 0, 0, 0.35));
|
|
7325
7352
|
|
|
7326
7353
|
/* Fork panel dark mode */
|
|
7327
|
-
--mb-adapt-fork-bg
|
|
7328
|
-
--mb-adapt-fork-tab-bg
|
|
7329
|
-
--mb-adapt-fork-tab-active-bg
|
|
7330
|
-
--mb-adapt-fork-tab-color
|
|
7331
|
-
--mb-adapt-fork-tab-inactive-color
|
|
7332
|
-
--mb-adapt-fork-separator
|
|
7354
|
+
--_fork-bg: var(--mb-adapt-fork-bg, #1e1e1e);
|
|
7355
|
+
--_fork-tab-bg: var(--mb-adapt-fork-tab-bg, #252526);
|
|
7356
|
+
--_fork-tab-active-bg: var(--mb-adapt-fork-tab-active-bg, #1e1e1e);
|
|
7357
|
+
--_fork-tab-color: var(--mb-adapt-fork-tab-color, #ffffff);
|
|
7358
|
+
--_fork-tab-inactive-color: var(--mb-adapt-fork-tab-inactive-color, #969696);
|
|
7359
|
+
--_fork-separator: var(--mb-adapt-fork-separator, rgb(68, 68, 68));
|
|
7333
7360
|
|
|
7334
7361
|
/* Drop target dark mode */
|
|
7335
|
-
--mb-adapt-drop-header-bg
|
|
7336
|
-
--mb-adapt-drop-center-bg
|
|
7337
|
-
--mb-adapt-drop-split-bg
|
|
7338
|
-
--mb-adapt-drop-border
|
|
7362
|
+
--_drop-header-bg: var(--mb-adapt-drop-header-bg, rgba(129, 140, 248, 0.22));
|
|
7363
|
+
--_drop-center-bg: var(--mb-adapt-drop-center-bg, rgba(129, 140, 248, 0.15));
|
|
7364
|
+
--_drop-split-bg: var(--mb-adapt-drop-split-bg, rgba(129, 140, 248, 0.18));
|
|
7365
|
+
--_drop-border: var(--mb-adapt-drop-border, rgba(129, 140, 248, 0.6));
|
|
7339
7366
|
}
|
|
7340
7367
|
|
|
7341
7368
|
/* \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 */
|
|
@@ -7375,7 +7402,7 @@ var MbAdapt = (() => {
|
|
|
7375
7402
|
/* Draggable separator between split panels */
|
|
7376
7403
|
.mb-layout-separator {
|
|
7377
7404
|
flex: 0 0 5px;
|
|
7378
|
-
background: var(--
|
|
7405
|
+
background: var(--_fork-separator);
|
|
7379
7406
|
transition: background 0.15s;
|
|
7380
7407
|
position: relative;
|
|
7381
7408
|
z-index: 1;
|
|
@@ -7387,7 +7414,7 @@ var MbAdapt = (() => {
|
|
|
7387
7414
|
|
|
7388
7415
|
.mb-layout-separator:hover,
|
|
7389
7416
|
.mb-layout-separator--active {
|
|
7390
|
-
background: var(--
|
|
7417
|
+
background: var(--_separator-active);
|
|
7391
7418
|
}
|
|
7392
7419
|
|
|
7393
7420
|
/* \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 */
|
|
@@ -7395,16 +7422,17 @@ var MbAdapt = (() => {
|
|
|
7395
7422
|
display: flex;
|
|
7396
7423
|
flex-direction: column;
|
|
7397
7424
|
height: 100%;
|
|
7398
|
-
background: var(--
|
|
7425
|
+
background: var(--_bg);
|
|
7399
7426
|
}
|
|
7400
7427
|
|
|
7401
7428
|
.mb-group-header {
|
|
7402
7429
|
display: flex;
|
|
7403
7430
|
align-items: stretch;
|
|
7404
|
-
height:
|
|
7405
|
-
min-height:
|
|
7406
|
-
|
|
7407
|
-
|
|
7431
|
+
height: var(--_toolbar-height);
|
|
7432
|
+
min-height: var(--_toolbar-height);
|
|
7433
|
+
padding: var(--_toolbar-padding);
|
|
7434
|
+
background: var(--_fork-tab-bg);
|
|
7435
|
+
border-bottom: 1px solid var(--_fork-separator);
|
|
7408
7436
|
user-select: none;
|
|
7409
7437
|
}
|
|
7410
7438
|
|
|
@@ -7415,7 +7443,7 @@ var MbAdapt = (() => {
|
|
|
7415
7443
|
|
|
7416
7444
|
.mb-group-tabs {
|
|
7417
7445
|
display: flex;
|
|
7418
|
-
align-items:
|
|
7446
|
+
align-items: center;
|
|
7419
7447
|
overflow-x: auto;
|
|
7420
7448
|
overflow-y: hidden;
|
|
7421
7449
|
flex: 0 1 auto;
|
|
@@ -7442,16 +7470,16 @@ var MbAdapt = (() => {
|
|
|
7442
7470
|
flex: 1;
|
|
7443
7471
|
position: relative;
|
|
7444
7472
|
overflow: hidden;
|
|
7445
|
-
background: var(--
|
|
7473
|
+
background: var(--_fork-bg);
|
|
7446
7474
|
}
|
|
7447
7475
|
|
|
7448
7476
|
/* Main group overrides */
|
|
7449
7477
|
.mb-group[data-main-group="true"] {
|
|
7450
|
-
background: var(--
|
|
7478
|
+
background: var(--_bg);
|
|
7451
7479
|
}
|
|
7452
7480
|
|
|
7453
7481
|
.mb-group[data-main-group="true"] .mb-group-content {
|
|
7454
|
-
background: var(--
|
|
7482
|
+
background: var(--_bg);
|
|
7455
7483
|
}
|
|
7456
7484
|
|
|
7457
7485
|
|
|
@@ -7459,27 +7487,31 @@ var MbAdapt = (() => {
|
|
|
7459
7487
|
.mb-tab {
|
|
7460
7488
|
display: flex;
|
|
7461
7489
|
align-items: center;
|
|
7462
|
-
gap:
|
|
7463
|
-
padding:
|
|
7464
|
-
min-width:
|
|
7465
|
-
font-size:
|
|
7466
|
-
font-family: var(--
|
|
7490
|
+
gap: var(--_tab-spacing);
|
|
7491
|
+
padding: var(--_tab-padding);
|
|
7492
|
+
min-width: var(--_tab-min-width);
|
|
7493
|
+
font-size: var(--_tab-font-size);
|
|
7494
|
+
font-family: var(--_font);
|
|
7467
7495
|
white-space: nowrap;
|
|
7468
7496
|
cursor: pointer;
|
|
7469
7497
|
touch-action: none;
|
|
7470
|
-
color: var(--
|
|
7471
|
-
background: var(--
|
|
7472
|
-
border-right: 1px solid var(--
|
|
7473
|
-
|
|
7498
|
+
color: var(--_fork-tab-inactive-color);
|
|
7499
|
+
background: var(--_fork-tab-bg);
|
|
7500
|
+
border-right: 1px solid var(--_fork-separator);
|
|
7501
|
+
border-radius: var(--_tab-radius);
|
|
7502
|
+
box-shadow: var(--_tab-shadow);
|
|
7503
|
+
margin: var(--_tab-gap);
|
|
7504
|
+
transition: background 0.15s, box-shadow 0.15s;
|
|
7474
7505
|
}
|
|
7475
7506
|
|
|
7476
7507
|
.mb-tab[data-active="true"] {
|
|
7477
|
-
color: var(--
|
|
7478
|
-
background: var(--
|
|
7508
|
+
color: var(--_fork-tab-color);
|
|
7509
|
+
background: var(--_fork-tab-active-bg);
|
|
7510
|
+
box-shadow: var(--_tab-active-shadow);
|
|
7479
7511
|
}
|
|
7480
7512
|
|
|
7481
7513
|
.mb-tab:hover {
|
|
7482
|
-
background: var(--
|
|
7514
|
+
background: var(--_fork-tab-active-bg);
|
|
7483
7515
|
}
|
|
7484
7516
|
|
|
7485
7517
|
.mb-tab-label {
|
|
@@ -7530,7 +7562,7 @@ var MbAdapt = (() => {
|
|
|
7530
7562
|
|
|
7531
7563
|
.mb-tab-close:hover {
|
|
7532
7564
|
opacity: 1 !important;
|
|
7533
|
-
background: var(--
|
|
7565
|
+
background: var(--_button-hover-bg);
|
|
7534
7566
|
}
|
|
7535
7567
|
|
|
7536
7568
|
.mb-tab-close svg {
|
|
@@ -7558,11 +7590,11 @@ var MbAdapt = (() => {
|
|
|
7558
7590
|
.mb-floating-overlay {
|
|
7559
7591
|
position: fixed;
|
|
7560
7592
|
z-index: 100000;
|
|
7561
|
-
box-shadow: var(--
|
|
7562
|
-
border: var(--
|
|
7563
|
-
backdrop-filter: var(--
|
|
7564
|
-
-webkit-backdrop-filter: var(--
|
|
7565
|
-
border-radius: var(--
|
|
7593
|
+
box-shadow: var(--_floating-shadow);
|
|
7594
|
+
border: var(--_floating-border);
|
|
7595
|
+
backdrop-filter: var(--_floating-backdrop);
|
|
7596
|
+
-webkit-backdrop-filter: var(--_floating-backdrop);
|
|
7597
|
+
border-radius: var(--_floating-radius);
|
|
7566
7598
|
display: flex;
|
|
7567
7599
|
flex-direction: column;
|
|
7568
7600
|
/* No overflow:hidden here \u2014 resize handles use negative offsets (top:-3px etc.)
|
|
@@ -7572,7 +7604,7 @@ var MbAdapt = (() => {
|
|
|
7572
7604
|
|
|
7573
7605
|
.mb-floating-overlay > .mb-group {
|
|
7574
7606
|
flex: 1;
|
|
7575
|
-
border-radius: var(--
|
|
7607
|
+
border-radius: var(--_floating-radius);
|
|
7576
7608
|
overflow: hidden;
|
|
7577
7609
|
}
|
|
7578
7610
|
|
|
@@ -7584,7 +7616,7 @@ var MbAdapt = (() => {
|
|
|
7584
7616
|
flex: 1;
|
|
7585
7617
|
min-width: 0;
|
|
7586
7618
|
min-height: 0;
|
|
7587
|
-
border-radius: var(--
|
|
7619
|
+
border-radius: var(--_floating-radius);
|
|
7588
7620
|
overflow: hidden;
|
|
7589
7621
|
}
|
|
7590
7622
|
|
|
@@ -7629,7 +7661,7 @@ var MbAdapt = (() => {
|
|
|
7629
7661
|
border: 0;
|
|
7630
7662
|
display: block;
|
|
7631
7663
|
background: transparent;
|
|
7632
|
-
border-radius: var(--
|
|
7664
|
+
border-radius: var(--_border-radius);
|
|
7633
7665
|
pointer-events: auto;
|
|
7634
7666
|
opacity: 0;
|
|
7635
7667
|
transition: opacity 0.1s ease-out;
|
|
@@ -7664,10 +7696,10 @@ var MbAdapt = (() => {
|
|
|
7664
7696
|
padding: 32px 40px;
|
|
7665
7697
|
max-width: 380px;
|
|
7666
7698
|
border-radius: 16px;
|
|
7667
|
-
background: var(--
|
|
7668
|
-
border: 1px solid var(--
|
|
7669
|
-
box-shadow: var(--
|
|
7670
|
-
font-family: var(--
|
|
7699
|
+
background: var(--_status-card-bg);
|
|
7700
|
+
border: 1px solid var(--_status-card-border);
|
|
7701
|
+
box-shadow: var(--_status-card-shadow);
|
|
7702
|
+
font-family: var(--_font);
|
|
7671
7703
|
text-align: center;
|
|
7672
7704
|
}
|
|
7673
7705
|
|
|
@@ -7678,7 +7710,7 @@ var MbAdapt = (() => {
|
|
|
7678
7710
|
display: flex;
|
|
7679
7711
|
align-items: center;
|
|
7680
7712
|
justify-content: center;
|
|
7681
|
-
background: var(--
|
|
7713
|
+
background: var(--_status-icon-bg);
|
|
7682
7714
|
}
|
|
7683
7715
|
|
|
7684
7716
|
.mb-adapt__status-icon svg {
|
|
@@ -7687,11 +7719,11 @@ var MbAdapt = (() => {
|
|
|
7687
7719
|
}
|
|
7688
7720
|
|
|
7689
7721
|
.mb-adapt__status-icon--stopped {
|
|
7690
|
-
background: var(--
|
|
7722
|
+
background: var(--_status-icon-stopped-bg);
|
|
7691
7723
|
}
|
|
7692
7724
|
|
|
7693
7725
|
.mb-adapt__status-text {
|
|
7694
|
-
color: var(--
|
|
7726
|
+
color: var(--_status-text);
|
|
7695
7727
|
font-size: 15px;
|
|
7696
7728
|
line-height: 1.5;
|
|
7697
7729
|
margin: 0;
|
|
@@ -7699,19 +7731,19 @@ var MbAdapt = (() => {
|
|
|
7699
7731
|
|
|
7700
7732
|
.mb-adapt__status-restart {
|
|
7701
7733
|
padding: 8px 20px;
|
|
7702
|
-
border: 1px solid var(--
|
|
7734
|
+
border: 1px solid var(--_status-card-border);
|
|
7703
7735
|
border-radius: 8px;
|
|
7704
7736
|
background: transparent;
|
|
7705
|
-
color: var(--
|
|
7737
|
+
color: var(--_status-text);
|
|
7706
7738
|
font-size: 14px;
|
|
7707
7739
|
font-weight: 500;
|
|
7708
|
-
font-family: var(--
|
|
7740
|
+
font-family: var(--_font);
|
|
7709
7741
|
cursor: pointer;
|
|
7710
7742
|
transition: background 0.15s, border-color 0.15s;
|
|
7711
7743
|
}
|
|
7712
7744
|
|
|
7713
7745
|
.mb-adapt__status-restart:hover {
|
|
7714
|
-
background: var(--
|
|
7746
|
+
background: var(--_status-card-border);
|
|
7715
7747
|
}
|
|
7716
7748
|
|
|
7717
7749
|
/* \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 */
|
|
@@ -7741,18 +7773,18 @@ var MbAdapt = (() => {
|
|
|
7741
7773
|
padding: 24px 28px;
|
|
7742
7774
|
max-width: 360px;
|
|
7743
7775
|
width: 100%;
|
|
7744
|
-
border-radius: var(--
|
|
7745
|
-
background: var(--
|
|
7746
|
-
border: 1px solid var(--
|
|
7747
|
-
box-shadow: var(--
|
|
7748
|
-
font-family: var(--
|
|
7776
|
+
border-radius: var(--_floating-radius);
|
|
7777
|
+
background: var(--_fork-tab-active-bg);
|
|
7778
|
+
border: 1px solid var(--_fork-separator);
|
|
7779
|
+
box-shadow: var(--_floating-shadow);
|
|
7780
|
+
font-family: var(--_font);
|
|
7749
7781
|
text-align: center;
|
|
7750
7782
|
}
|
|
7751
7783
|
|
|
7752
7784
|
.mb-adapt__confirm-text {
|
|
7753
7785
|
font-size: 14px;
|
|
7754
7786
|
line-height: 1.5;
|
|
7755
|
-
color: var(--
|
|
7787
|
+
color: var(--_fork-tab-color);
|
|
7756
7788
|
margin: 0;
|
|
7757
7789
|
}
|
|
7758
7790
|
|
|
@@ -7766,7 +7798,7 @@ var MbAdapt = (() => {
|
|
|
7766
7798
|
padding: 8px 16px;
|
|
7767
7799
|
border-radius: 6px;
|
|
7768
7800
|
font-size: 13px;
|
|
7769
|
-
font-family: var(--
|
|
7801
|
+
font-family: var(--_font);
|
|
7770
7802
|
cursor: pointer;
|
|
7771
7803
|
font-weight: 500;
|
|
7772
7804
|
transition: background 0.15s, border-color 0.15s;
|
|
@@ -7774,17 +7806,17 @@ var MbAdapt = (() => {
|
|
|
7774
7806
|
|
|
7775
7807
|
.mb-adapt__confirm-btn--cancel {
|
|
7776
7808
|
background: transparent;
|
|
7777
|
-
border: 1px solid var(--
|
|
7778
|
-
color: var(--
|
|
7809
|
+
border: 1px solid var(--_fork-separator);
|
|
7810
|
+
color: var(--_fork-tab-color);
|
|
7779
7811
|
}
|
|
7780
7812
|
|
|
7781
7813
|
.mb-adapt__confirm-btn--cancel:hover {
|
|
7782
|
-
background: var(--
|
|
7814
|
+
background: var(--_button-hover-bg);
|
|
7783
7815
|
}
|
|
7784
7816
|
|
|
7785
7817
|
.mb-adapt__confirm-btn--confirm {
|
|
7786
|
-
background: var(--
|
|
7787
|
-
color: var(--
|
|
7818
|
+
background: var(--_fork-tab-color);
|
|
7819
|
+
color: var(--_fork-tab-active-bg);
|
|
7788
7820
|
border: 1px solid transparent;
|
|
7789
7821
|
}
|
|
7790
7822
|
|
|
@@ -7809,23 +7841,23 @@ var MbAdapt = (() => {
|
|
|
7809
7841
|
|
|
7810
7842
|
/* Cap.js widget styling */
|
|
7811
7843
|
.mb-adapt cap-widget {
|
|
7812
|
-
--cap-background: var(--
|
|
7813
|
-
--cap-border-color: var(--
|
|
7814
|
-
--cap-border-radius: var(--
|
|
7815
|
-
--cap-widget-height: var(--
|
|
7816
|
-
--cap-widget-width: var(--
|
|
7817
|
-
--cap-widget-padding: var(--
|
|
7818
|
-
--cap-gap: var(--
|
|
7819
|
-
--cap-color: var(--
|
|
7820
|
-
--cap-checkbox-size: var(--
|
|
7821
|
-
--cap-checkbox-border: var(--
|
|
7822
|
-
--cap-checkbox-border-radius: var(--
|
|
7823
|
-
--cap-checkbox-background: var(--
|
|
7844
|
+
--cap-background: var(--_cap-background);
|
|
7845
|
+
--cap-border-color: var(--_cap-border-color);
|
|
7846
|
+
--cap-border-radius: var(--_cap-border-radius);
|
|
7847
|
+
--cap-widget-height: var(--_cap-height);
|
|
7848
|
+
--cap-widget-width: var(--_cap-width);
|
|
7849
|
+
--cap-widget-padding: var(--_cap-padding);
|
|
7850
|
+
--cap-gap: var(--_cap-gap);
|
|
7851
|
+
--cap-color: var(--_cap-color);
|
|
7852
|
+
--cap-checkbox-size: var(--_cap-checkbox-size);
|
|
7853
|
+
--cap-checkbox-border: var(--_cap-checkbox-border);
|
|
7854
|
+
--cap-checkbox-border-radius: var(--_cap-checkbox-radius);
|
|
7855
|
+
--cap-checkbox-background: var(--_cap-checkbox-background);
|
|
7824
7856
|
--cap-checkbox-margin: 0;
|
|
7825
|
-
--cap-font: var(--
|
|
7826
|
-
--cap-spinner-color: var(--
|
|
7827
|
-
--cap-spinner-background-color: var(--
|
|
7828
|
-
--cap-spinner-thickness: var(--
|
|
7857
|
+
--cap-font: var(--_cap-font);
|
|
7858
|
+
--cap-spinner-color: var(--_cap-spinner-color);
|
|
7859
|
+
--cap-spinner-background-color: var(--_cap-spinner-bg);
|
|
7860
|
+
--cap-spinner-thickness: var(--_cap-spinner-thickness);
|
|
7829
7861
|
}
|
|
7830
7862
|
|
|
7831
7863
|
/* Hide Cap.js credits */
|
|
@@ -7846,7 +7878,7 @@ cap-widget::part(attribution) {
|
|
|
7846
7878
|
padding: 0;
|
|
7847
7879
|
border: none;
|
|
7848
7880
|
background: transparent;
|
|
7849
|
-
color: var(--
|
|
7881
|
+
color: var(--_fork-tab-color);
|
|
7850
7882
|
cursor: pointer;
|
|
7851
7883
|
display: flex;
|
|
7852
7884
|
align-items: center;
|
|
@@ -7857,7 +7889,7 @@ cap-widget::part(attribution) {
|
|
|
7857
7889
|
}
|
|
7858
7890
|
.mb-adapt-fork-actions button:hover {
|
|
7859
7891
|
opacity: 1;
|
|
7860
|
-
background: var(--
|
|
7892
|
+
background: var(--_button-hover-bg);
|
|
7861
7893
|
}
|
|
7862
7894
|
.mb-adapt-fork-actions button svg {
|
|
7863
7895
|
width: 14px;
|
|
@@ -7870,12 +7902,12 @@ cap-widget::part(attribution) {
|
|
|
7870
7902
|
docked panels are minimized \u2014 the iframe gets the remaining height. */
|
|
7871
7903
|
.mb-adapt-minimized-tabs {
|
|
7872
7904
|
display: none;
|
|
7873
|
-
height:
|
|
7905
|
+
height: var(--_toolbar-height);
|
|
7874
7906
|
flex-shrink: 0;
|
|
7875
7907
|
z-index: 100;
|
|
7876
7908
|
align-items: stretch;
|
|
7877
|
-
background: var(--
|
|
7878
|
-
border-bottom: 1px solid var(--
|
|
7909
|
+
background: var(--_fork-tab-bg);
|
|
7910
|
+
border-bottom: 1px solid var(--_fork-separator);
|
|
7879
7911
|
user-select: none;
|
|
7880
7912
|
}
|
|
7881
7913
|
.mb-adapt-minimized-tab {
|
|
@@ -7884,12 +7916,12 @@ cap-widget::part(attribution) {
|
|
|
7884
7916
|
gap: 8px;
|
|
7885
7917
|
padding: 0 12px;
|
|
7886
7918
|
flex: 1;
|
|
7887
|
-
background: var(--
|
|
7888
|
-
color: var(--
|
|
7889
|
-
font-size:
|
|
7890
|
-
font-family: var(--
|
|
7919
|
+
background: var(--_fork-tab-bg);
|
|
7920
|
+
color: var(--_fork-tab-color);
|
|
7921
|
+
font-size: var(--_tab-font-size);
|
|
7922
|
+
font-family: var(--_font);
|
|
7891
7923
|
white-space: nowrap;
|
|
7892
|
-
border-right: 1px solid var(--
|
|
7924
|
+
border-right: 1px solid var(--_fork-separator);
|
|
7893
7925
|
cursor: default;
|
|
7894
7926
|
}
|
|
7895
7927
|
.mb-adapt-minimized-tab-label {
|
|
@@ -7922,7 +7954,7 @@ cap-widget::part(attribution) {
|
|
|
7922
7954
|
}
|
|
7923
7955
|
.mb-adapt-minimized-tab-action:hover {
|
|
7924
7956
|
opacity: 1;
|
|
7925
|
-
background: var(--
|
|
7957
|
+
background: var(--_button-hover-bg);
|
|
7926
7958
|
}
|
|
7927
7959
|
.mb-adapt-minimized-tab-action svg {
|
|
7928
7960
|
width: 14px;
|
|
@@ -7937,8 +7969,8 @@ cap-widget::part(attribution) {
|
|
|
7937
7969
|
|
|
7938
7970
|
/* Drop target highlight for minimized tab merge */
|
|
7939
7971
|
.mb-adapt-minimized-tab--drop-target {
|
|
7940
|
-
background: var(--
|
|
7941
|
-
box-shadow: inset 0 0 0 2px var(--
|
|
7972
|
+
background: var(--_drop-header-bg) !important;
|
|
7973
|
+
box-shadow: inset 0 0 0 2px var(--_drop-border);
|
|
7942
7974
|
}
|
|
7943
7975
|
|
|
7944
7976
|
/* \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 */
|
|
@@ -7947,14 +7979,14 @@ cap-widget::part(attribution) {
|
|
|
7947
7979
|
pointer-events: none;
|
|
7948
7980
|
z-index: 999999;
|
|
7949
7981
|
padding: 4px 10px;
|
|
7950
|
-
background: var(--
|
|
7951
|
-
color: var(--
|
|
7952
|
-
border: 1px solid var(--
|
|
7953
|
-
border-radius: 4px;
|
|
7954
|
-
font-size:
|
|
7955
|
-
font-family: var(--
|
|
7982
|
+
background: var(--_fork-tab-bg);
|
|
7983
|
+
color: var(--_fork-tab-color);
|
|
7984
|
+
border: 1px solid var(--_fork-separator);
|
|
7985
|
+
border-radius: var(--_tab-radius, 4px);
|
|
7986
|
+
font-size: var(--_tab-font-size);
|
|
7987
|
+
font-family: var(--_font);
|
|
7956
7988
|
white-space: nowrap;
|
|
7957
|
-
box-shadow: var(--
|
|
7989
|
+
box-shadow: var(--_drag-ghost-shadow);
|
|
7958
7990
|
opacity: 0.92;
|
|
7959
7991
|
display: flex;
|
|
7960
7992
|
align-items: center;
|
|
@@ -7967,8 +7999,8 @@ cap-widget::part(attribution) {
|
|
|
7967
7999
|
|
|
7968
8000
|
/* \u2500\u2500 Drop target highlight on group header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
7969
8001
|
.mb-group-header--drop-target {
|
|
7970
|
-
background: var(--
|
|
7971
|
-
box-shadow: inset 0 0 0 2px var(--
|
|
8002
|
+
background: var(--_drop-header-bg) !important;
|
|
8003
|
+
box-shadow: inset 0 0 0 2px var(--_drop-border);
|
|
7972
8004
|
}
|
|
7973
8005
|
|
|
7974
8006
|
/* \u2500\u2500 Drop overlay (content-area and dock-strip indicators) */
|
|
@@ -7983,16 +8015,16 @@ cap-widget::part(attribution) {
|
|
|
7983
8015
|
}
|
|
7984
8016
|
|
|
7985
8017
|
.mb-drop-overlay[data-zone="center"] {
|
|
7986
|
-
background: var(--
|
|
7987
|
-
border: 2px solid var(--
|
|
8018
|
+
background: var(--_drop-center-bg);
|
|
8019
|
+
border: 2px solid var(--_drop-border);
|
|
7988
8020
|
}
|
|
7989
8021
|
|
|
7990
8022
|
.mb-drop-overlay[data-zone="top"],
|
|
7991
8023
|
.mb-drop-overlay[data-zone="bottom"],
|
|
7992
8024
|
.mb-drop-overlay[data-zone="left"],
|
|
7993
8025
|
.mb-drop-overlay[data-zone="right"] {
|
|
7994
|
-
background: var(--
|
|
7995
|
-
border: 2px solid var(--
|
|
8026
|
+
background: var(--_drop-split-bg);
|
|
8027
|
+
border: 2px solid var(--_drop-border);
|
|
7996
8028
|
}
|
|
7997
8029
|
|
|
7998
8030
|
/* \u2500\u2500 Iframe pointer-event guard during drag \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
|
|
@@ -8024,7 +8056,7 @@ html.mb-dragging webview {
|
|
|
8024
8056
|
|
|
8025
8057
|
.mb-tab-popout:hover {
|
|
8026
8058
|
opacity: 1 !important;
|
|
8027
|
-
background: var(--
|
|
8059
|
+
background: var(--_button-hover-bg);
|
|
8028
8060
|
}
|
|
8029
8061
|
|
|
8030
8062
|
.mb-tab-popout svg {
|
|
@@ -10960,6 +10992,78 @@ html.mb-dragging webview {
|
|
|
10960
10992
|
}
|
|
10961
10993
|
};
|
|
10962
10994
|
|
|
10995
|
+
// src/theme.ts
|
|
10996
|
+
function parseHex(hex) {
|
|
10997
|
+
const m = /^#([0-9a-f]{3,8})$/i.exec(hex.trim());
|
|
10998
|
+
if (!m) return null;
|
|
10999
|
+
const h = m[1];
|
|
11000
|
+
if (h.length === 3) {
|
|
11001
|
+
return [
|
|
11002
|
+
parseInt(h[0] + h[0], 16),
|
|
11003
|
+
parseInt(h[1] + h[1], 16),
|
|
11004
|
+
parseInt(h[2] + h[2], 16)
|
|
11005
|
+
];
|
|
11006
|
+
}
|
|
11007
|
+
if (h.length === 6 || h.length === 8) {
|
|
11008
|
+
return [
|
|
11009
|
+
parseInt(h.slice(0, 2), 16),
|
|
11010
|
+
parseInt(h.slice(2, 4), 16),
|
|
11011
|
+
parseInt(h.slice(4, 6), 16)
|
|
11012
|
+
];
|
|
11013
|
+
}
|
|
11014
|
+
return null;
|
|
11015
|
+
}
|
|
11016
|
+
function hexToRgba(hex, alpha) {
|
|
11017
|
+
const rgb = parseHex(hex);
|
|
11018
|
+
if (!rgb) return hex;
|
|
11019
|
+
return `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${alpha})`;
|
|
11020
|
+
}
|
|
11021
|
+
function resolveTheme(theme) {
|
|
11022
|
+
const result = {};
|
|
11023
|
+
if (theme.primary) {
|
|
11024
|
+
const p = theme.primary;
|
|
11025
|
+
result["--mb-adapt-separator-active"] = hexToRgba(p, 0.4);
|
|
11026
|
+
result["--mb-adapt-drop-border"] = p;
|
|
11027
|
+
result["--mb-adapt-drop-header-bg"] = hexToRgba(p, 0.15);
|
|
11028
|
+
result["--mb-adapt-drop-center-bg"] = hexToRgba(p, 0.1);
|
|
11029
|
+
result["--mb-adapt-drop-split-bg"] = hexToRgba(p, 0.12);
|
|
11030
|
+
result["--mb-adapt-status-icon-bg"] = hexToRgba(p, 0.08);
|
|
11031
|
+
result["--mb-adapt-cap-spinner-color"] = p;
|
|
11032
|
+
}
|
|
11033
|
+
if (theme.background) {
|
|
11034
|
+
result["--mb-adapt-bg"] = theme.background;
|
|
11035
|
+
result["--mb-adapt-fork-tab-active-bg"] = theme.background;
|
|
11036
|
+
result["--mb-adapt-status-card-bg"] = theme.background;
|
|
11037
|
+
}
|
|
11038
|
+
if (theme.surface) {
|
|
11039
|
+
result["--mb-adapt-fork-bg"] = theme.surface;
|
|
11040
|
+
result["--mb-adapt-fork-tab-bg"] = theme.surface;
|
|
11041
|
+
}
|
|
11042
|
+
if (theme.text) {
|
|
11043
|
+
result["--mb-adapt-fork-tab-color"] = theme.text;
|
|
11044
|
+
result["--mb-adapt-status-text"] = theme.text;
|
|
11045
|
+
result["--mb-adapt-cap-color"] = theme.text;
|
|
11046
|
+
}
|
|
11047
|
+
if (theme.textSecondary) {
|
|
11048
|
+
result["--mb-adapt-fork-tab-inactive-color"] = theme.textSecondary;
|
|
11049
|
+
}
|
|
11050
|
+
if (theme.border) {
|
|
11051
|
+
result["--mb-adapt-fork-separator"] = theme.border;
|
|
11052
|
+
result["--mb-adapt-status-card-border"] = theme.border;
|
|
11053
|
+
result["--mb-adapt-cap-border-color"] = theme.border;
|
|
11054
|
+
}
|
|
11055
|
+
if (theme.font) {
|
|
11056
|
+
result["--mb-adapt-font"] = theme.font;
|
|
11057
|
+
result["--mb-adapt-cap-font"] = theme.font;
|
|
11058
|
+
}
|
|
11059
|
+
if (theme.vars) {
|
|
11060
|
+
for (const [key, value] of Object.entries(theme.vars)) {
|
|
11061
|
+
result[`--mb-adapt-${key}`] = value;
|
|
11062
|
+
}
|
|
11063
|
+
}
|
|
11064
|
+
return result;
|
|
11065
|
+
}
|
|
11066
|
+
|
|
10963
11067
|
// src/AdaptAutomationElement.ts
|
|
10964
11068
|
var OBSERVED_ATTRIBUTES = [
|
|
10965
11069
|
"automation-id",
|
|
@@ -10992,6 +11096,13 @@ html.mb-dragging webview {
|
|
|
10992
11096
|
static get observedAttributes() {
|
|
10993
11097
|
return OBSERVED_ATTRIBUTES;
|
|
10994
11098
|
}
|
|
11099
|
+
get theme() {
|
|
11100
|
+
return this._theme;
|
|
11101
|
+
}
|
|
11102
|
+
set theme(v) {
|
|
11103
|
+
this._theme = v;
|
|
11104
|
+
this._client?.setTheme(v);
|
|
11105
|
+
}
|
|
10995
11106
|
// --- Attribute ↔ Property reflection ---
|
|
10996
11107
|
get automationId() {
|
|
10997
11108
|
return this.getAttribute("automation-id");
|
|
@@ -11244,6 +11355,7 @@ html.mb-dragging webview {
|
|
|
11244
11355
|
if (this.classNames !== void 0) options.classNames = this.classNames;
|
|
11245
11356
|
if (this.styles !== void 0) options.styles = this.styles;
|
|
11246
11357
|
if (this.text !== void 0) options.text = this.text;
|
|
11358
|
+
if (this._theme !== void 0) options.theme = this._theme;
|
|
11247
11359
|
if (this.persistOptions !== void 0) {
|
|
11248
11360
|
options.persist = this.persistOptions;
|
|
11249
11361
|
} else if (this.persist) {
|
|
@@ -11334,6 +11446,7 @@ html.mb-dragging webview {
|
|
|
11334
11446
|
this.allowMaximize = options.allowMaximize ?? true;
|
|
11335
11447
|
this.floatingAutoResize = options.floatingAutoResize ?? false;
|
|
11336
11448
|
this.confirmOnClose = options.confirmOnClose ?? false;
|
|
11449
|
+
this.theme = options.theme;
|
|
11337
11450
|
const container = typeof options.container === "string" ? document.getElementById(options.container) : options.container;
|
|
11338
11451
|
if (!container) {
|
|
11339
11452
|
throw new Error(`Container with id '${options.container}' not found`);
|
|
@@ -11536,11 +11649,43 @@ html.mb-dragging webview {
|
|
|
11536
11649
|
this.darkMode = darkMode;
|
|
11537
11650
|
this.rootElement?.classList.toggle("mb-adapt--dark", darkMode);
|
|
11538
11651
|
this.capWidgetInstance?.setDarkMode(darkMode);
|
|
11652
|
+
this.applyTheme();
|
|
11539
11653
|
const msg = { type: "adapt-darkMode", darkMode };
|
|
11540
11654
|
for (const c of this.components.values()) {
|
|
11541
11655
|
this.postToComponent(c, msg);
|
|
11542
11656
|
}
|
|
11543
11657
|
}
|
|
11658
|
+
/**
|
|
11659
|
+
* Set the theme. Applies CSS custom properties derived from semantic tokens.
|
|
11660
|
+
* Pass `undefined` to clear all theme overrides.
|
|
11661
|
+
*/
|
|
11662
|
+
setTheme(theme) {
|
|
11663
|
+
this.theme = theme;
|
|
11664
|
+
this.clearThemeVars();
|
|
11665
|
+
if (theme?.mode !== void 0) {
|
|
11666
|
+
const dark = theme.mode === "dark";
|
|
11667
|
+
if (this.darkMode !== dark) {
|
|
11668
|
+
this.setDarkMode(dark);
|
|
11669
|
+
return;
|
|
11670
|
+
}
|
|
11671
|
+
}
|
|
11672
|
+
this.applyTheme();
|
|
11673
|
+
}
|
|
11674
|
+
clearThemeVars() {
|
|
11675
|
+
if (!this.rootElement || !this._appliedThemeVars) return;
|
|
11676
|
+
for (const key of this._appliedThemeVars) {
|
|
11677
|
+
this.rootElement.style.removeProperty(key);
|
|
11678
|
+
}
|
|
11679
|
+
this._appliedThemeVars = void 0;
|
|
11680
|
+
}
|
|
11681
|
+
applyTheme() {
|
|
11682
|
+
if (!this.rootElement || !this.theme) return;
|
|
11683
|
+
const vars = resolveTheme(this.theme);
|
|
11684
|
+
for (const [key, value] of Object.entries(vars)) {
|
|
11685
|
+
this.rootElement.style.setProperty(key, value);
|
|
11686
|
+
}
|
|
11687
|
+
this._appliedThemeVars = Object.keys(vars);
|
|
11688
|
+
}
|
|
11544
11689
|
/**
|
|
11545
11690
|
* Enable or disable auto-resizing based on iframe content height.
|
|
11546
11691
|
*/
|
|
@@ -11745,6 +11890,7 @@ html.mb-dragging webview {
|
|
|
11745
11890
|
if (this.options.styles) {
|
|
11746
11891
|
Object.assign(this.rootElement.style, this.options.styles);
|
|
11747
11892
|
}
|
|
11893
|
+
this.applyTheme();
|
|
11748
11894
|
this.container.appendChild(this.rootElement);
|
|
11749
11895
|
}
|
|
11750
11896
|
// --- URL handling ---
|
|
@@ -12973,7 +13119,7 @@ html.mb-dragging webview {
|
|
|
12973
13119
|
// src/cap-adapter.ts
|
|
12974
13120
|
if (typeof window !== "undefined" && true && !window.CAP_CUSTOM_WASM_URL) {
|
|
12975
13121
|
window.CAP_CUSTOM_WASM_URL = new URL(
|
|
12976
|
-
"https://cdn.mochabug.com/adapt/web/1.0.1-rc.
|
|
13122
|
+
"https://cdn.mochabug.com/adapt/web/1.0.1-rc.13/cap_wasm.js",
|
|
12977
13123
|
window.location.href
|
|
12978
13124
|
).href;
|
|
12979
13125
|
}
|