@widgetstools/dock-manager-core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +150 -311
- package/dist/index.d.cts +22 -15
- package/dist/index.d.ts +22 -15
- package/dist/index.js +149 -311
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -36,6 +36,7 @@ __export(src_exports, {
|
|
|
36
36
|
countPanels: () => countPanels,
|
|
37
37
|
createDefaultState: () => createDefaultState,
|
|
38
38
|
createPreventableEvent: () => createPreventableEvent,
|
|
39
|
+
createTheme: () => createTheme,
|
|
39
40
|
defaultResourceStrings: () => defaultResourceStrings,
|
|
40
41
|
deserialize: () => deserialize,
|
|
41
42
|
detectPanelEdge: () => detectPanelEdge,
|
|
@@ -4231,9 +4232,8 @@ var UnpinnedStripView = class {
|
|
|
4231
4232
|
this.stripEl.removeEventListener("click", this.boundStripClick);
|
|
4232
4233
|
this.boundStripClick = null;
|
|
4233
4234
|
}
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
}
|
|
4235
|
+
this.stripEl.remove();
|
|
4236
|
+
this.element.remove();
|
|
4237
4237
|
}
|
|
4238
4238
|
// ── Private: Event delegation ──────────────────────────────────
|
|
4239
4239
|
/** Set up event delegation on stripEl for all tab interactions */
|
|
@@ -4458,328 +4458,166 @@ function applyTheme(container, theme) {
|
|
|
4458
4458
|
container.style.setProperty("--dock-scrollbar-thumb", colors.textMuted);
|
|
4459
4459
|
container.style.setProperty("--dock-scrollbar-track", "transparent");
|
|
4460
4460
|
}
|
|
4461
|
-
var
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4461
|
+
var hsl = (h, s, l) => `${h} ${s}% ${l}%`;
|
|
4462
|
+
function createTheme(name, mode, base, accent, overrides) {
|
|
4463
|
+
const { hue: h, sat: s } = base;
|
|
4464
|
+
const { hue: ah, sat: as_ } = accent;
|
|
4465
|
+
let colors;
|
|
4466
|
+
if (mode === "light") {
|
|
4467
|
+
const bl = base.light ?? 96;
|
|
4468
|
+
const al = accent.light ?? 50;
|
|
4469
|
+
const ts = Math.max(s - 6, 0);
|
|
4470
|
+
colors = {
|
|
4471
|
+
bg: hsl(h, s, bl),
|
|
4472
|
+
surface: hsl(h, Math.max(s - 5, 0), Math.min(bl + 3, 100)),
|
|
4473
|
+
surfaceAlt: hsl(h, Math.max(s - 2, 0), bl - 1),
|
|
4474
|
+
panelHeader: hsl(h, Math.max(s - 2, 0), bl - 4),
|
|
4475
|
+
tabBar: hsl(h, Math.max(s - 5, 0), bl - 3),
|
|
4476
|
+
tabActive: hsl(h, Math.max(s - 5, 0), Math.min(bl + 3, 100)),
|
|
4477
|
+
tabText: hsl(h - 10, Math.max(ts - 8, 0), 35),
|
|
4478
|
+
tabTextActive: hsl(ah, as_, al),
|
|
4479
|
+
text: hsl(h - 10, Math.max(ts - 2, 0), 15),
|
|
4480
|
+
textSecondary: hsl(h - 10, Math.max(ts - 8, 0), 32),
|
|
4481
|
+
textMuted: hsl(h - 10, Math.max(ts - 12, 0), 48),
|
|
4482
|
+
border: hsl(h, Math.max(s - 6, 0), 80),
|
|
4483
|
+
splitter: hsl(h, Math.max(s - 6, 0), 87),
|
|
4484
|
+
splitterHover: hsl(ah, as_, al + 8),
|
|
4485
|
+
hover: hsl(h, Math.max(s - 5, 0), bl - 3),
|
|
4486
|
+
primary: hsl(ah, as_, al),
|
|
4487
|
+
floatShadow: hsl(h, Math.max(s, 0), 15)
|
|
4488
|
+
};
|
|
4489
|
+
} else {
|
|
4490
|
+
const bl = base.light ?? 10;
|
|
4491
|
+
const al = accent.light ?? 65;
|
|
4492
|
+
const ts = Math.round(s * 0.5);
|
|
4493
|
+
colors = {
|
|
4494
|
+
bg: hsl(h, s, bl),
|
|
4495
|
+
surface: hsl(h, s, bl + 3),
|
|
4496
|
+
surfaceAlt: hsl(h, Math.max(s - 2, 0), bl + 5),
|
|
4497
|
+
panelHeader: hsl(h, Math.max(s - 2, 0), bl + 8),
|
|
4498
|
+
tabBar: hsl(h, s, bl + 1),
|
|
4499
|
+
tabActive: hsl(h, s, bl + 3),
|
|
4500
|
+
tabText: hsl(h - 5, Math.max(ts, 8), 65),
|
|
4501
|
+
tabTextActive: hsl(ah, as_, al),
|
|
4502
|
+
text: hsl(h - 5, Math.round(s * 0.8), 90),
|
|
4503
|
+
textSecondary: hsl(h - 5, Math.max(ts, 8), 68),
|
|
4504
|
+
textMuted: hsl(h - 5, Math.max(ts - 3, 6), 50),
|
|
4505
|
+
border: hsl(h, Math.max(s - 2, 0), bl + 14),
|
|
4506
|
+
splitter: hsl(h, Math.max(s - 2, 0), bl + 10),
|
|
4507
|
+
splitterHover: hsl(ah, as_, al - 8),
|
|
4508
|
+
hover: hsl(h, Math.max(s - 2, 0), bl + 8),
|
|
4509
|
+
primary: hsl(ah, as_, al),
|
|
4510
|
+
floatShadow: hsl(h, Math.min(s + 5, 100), Math.max(bl - 7, 0))
|
|
4511
|
+
};
|
|
4505
4512
|
}
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
name: "Warm Light",
|
|
4509
|
-
mode: "light",
|
|
4510
|
-
colors: {
|
|
4511
|
-
bg: "40 30% 96%",
|
|
4512
|
-
surface: "40 20% 99%",
|
|
4513
|
-
surfaceAlt: "40 25% 95%",
|
|
4514
|
-
panelHeader: "40 25% 91%",
|
|
4515
|
-
tabBar: "40 20% 93%",
|
|
4516
|
-
tabActive: "40 20% 99%",
|
|
4517
|
-
tabText: "30 10% 35%",
|
|
4518
|
-
tabTextActive: "25 80% 45%",
|
|
4519
|
-
text: "30 15% 15%",
|
|
4520
|
-
textSecondary: "30 10% 32%",
|
|
4521
|
-
textMuted: "30 8% 48%",
|
|
4522
|
-
border: "35 15% 80%",
|
|
4523
|
-
splitter: "35 15% 87%",
|
|
4524
|
-
splitterHover: "25 80% 55%",
|
|
4525
|
-
hover: "40 20% 93%",
|
|
4526
|
-
primary: "25 80% 45%",
|
|
4527
|
-
floatShadow: "30 20% 15%"
|
|
4513
|
+
if (overrides) {
|
|
4514
|
+
Object.assign(colors, overrides);
|
|
4528
4515
|
}
|
|
4529
|
-
};
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
|
|
4516
|
+
return { name, mode, colors };
|
|
4517
|
+
}
|
|
4518
|
+
var vsCodeLight = createTheme(
|
|
4519
|
+
"VS Code Light",
|
|
4520
|
+
"light",
|
|
4521
|
+
{ hue: 220, sat: 20 },
|
|
4522
|
+
{ hue: 217, sat: 91, light: 50 },
|
|
4523
|
+
{ floatShadow: "0 0% 0%" }
|
|
4524
|
+
);
|
|
4525
|
+
var githubLight = createTheme(
|
|
4526
|
+
"GitHub Light",
|
|
4527
|
+
"light",
|
|
4528
|
+
{ hue: 210, sat: 20, light: 97 },
|
|
4529
|
+
{ hue: 212, sat: 92, light: 45 },
|
|
4530
|
+
{ floatShadow: "210 20% 20%" }
|
|
4531
|
+
);
|
|
4532
|
+
var warmLight = createTheme(
|
|
4533
|
+
"Warm Light",
|
|
4534
|
+
"light",
|
|
4535
|
+
{ hue: 40, sat: 30 },
|
|
4536
|
+
{ hue: 25, sat: 80, light: 45 }
|
|
4537
|
+
);
|
|
4538
|
+
var solarizedLight = createTheme(
|
|
4539
|
+
"Solarized Light",
|
|
4540
|
+
"light",
|
|
4541
|
+
{ hue: 44, sat: 87, light: 94 },
|
|
4542
|
+
{ hue: 175, sat: 59, light: 35 },
|
|
4543
|
+
{
|
|
4540
4544
|
tabText: "194 14% 35%",
|
|
4541
|
-
tabTextActive: "175 59% 35%",
|
|
4542
4545
|
text: "192 81% 14%",
|
|
4543
4546
|
textSecondary: "194 14% 32%",
|
|
4544
4547
|
textMuted: "180 8% 48%",
|
|
4545
|
-
border: "44 30% 80%",
|
|
4546
|
-
splitter: "44 30% 85%",
|
|
4547
|
-
splitterHover: "175 59% 45%",
|
|
4548
|
-
hover: "44 50% 91%",
|
|
4549
|
-
primary: "175 59% 35%",
|
|
4550
4548
|
floatShadow: "44 20% 30%"
|
|
4551
4549
|
}
|
|
4552
|
-
|
|
4553
|
-
var sepiaLight =
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
}
|
|
4575
|
-
}
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
};
|
|
4599
|
-
var lavenderLight = {
|
|
4600
|
-
name: "Lavender",
|
|
4601
|
-
mode: "light",
|
|
4602
|
-
colors: {
|
|
4603
|
-
bg: "260 20% 96%",
|
|
4604
|
-
surface: "260 15% 99%",
|
|
4605
|
-
surfaceAlt: "260 16% 95%",
|
|
4606
|
-
panelHeader: "260 16% 90%",
|
|
4607
|
-
tabBar: "260 14% 92%",
|
|
4608
|
-
tabActive: "260 15% 99%",
|
|
4609
|
-
tabText: "265 10% 35%",
|
|
4610
|
-
tabTextActive: "262 52% 50%",
|
|
4611
|
-
text: "265 18% 16%",
|
|
4612
|
-
textSecondary: "265 10% 32%",
|
|
4613
|
-
textMuted: "260 8% 48%",
|
|
4614
|
-
border: "260 14% 80%",
|
|
4615
|
-
splitter: "260 14% 87%",
|
|
4616
|
-
splitterHover: "262 52% 58%",
|
|
4617
|
-
hover: "260 14% 93%",
|
|
4618
|
-
primary: "262 52% 50%",
|
|
4619
|
-
floatShadow: "260 15% 22%"
|
|
4620
|
-
}
|
|
4621
|
-
};
|
|
4622
|
-
var vsCodeDark = {
|
|
4623
|
-
name: "VS Code Dark",
|
|
4624
|
-
mode: "dark",
|
|
4625
|
-
colors: {
|
|
4626
|
-
bg: "222 47% 7%",
|
|
4627
|
-
surface: "222 47% 10%",
|
|
4628
|
-
surfaceAlt: "222 47% 12%",
|
|
4629
|
-
panelHeader: "222 47% 15%",
|
|
4630
|
-
tabBar: "222 47% 11%",
|
|
4631
|
-
tabActive: "222 47% 10%",
|
|
4632
|
-
tabText: "215 20% 65%",
|
|
4633
|
-
tabTextActive: "217 91% 70%",
|
|
4634
|
-
text: "210 40% 96%",
|
|
4635
|
-
textSecondary: "215 20% 68%",
|
|
4636
|
-
textMuted: "215 15% 50%",
|
|
4637
|
-
border: "217 33% 24%",
|
|
4638
|
-
splitter: "217 33% 20%",
|
|
4639
|
-
splitterHover: "217 91% 60%",
|
|
4640
|
-
hover: "217 33% 16%",
|
|
4641
|
-
primary: "217 91% 70%",
|
|
4642
|
-
floatShadow: "0 0% 0%"
|
|
4643
|
-
}
|
|
4644
|
-
};
|
|
4645
|
-
var draculaDark = {
|
|
4646
|
-
name: "Dracula Dark",
|
|
4647
|
-
mode: "dark",
|
|
4648
|
-
colors: {
|
|
4649
|
-
bg: "231 15% 14%",
|
|
4650
|
-
surface: "231 15% 17%",
|
|
4651
|
-
surfaceAlt: "231 15% 19%",
|
|
4652
|
-
panelHeader: "231 15% 22%",
|
|
4653
|
-
tabBar: "231 15% 16%",
|
|
4654
|
-
tabActive: "231 15% 17%",
|
|
4655
|
-
tabText: "225 15% 65%",
|
|
4656
|
-
tabTextActive: "265 90% 72%",
|
|
4657
|
-
text: "60 30% 92%",
|
|
4658
|
-
textSecondary: "225 15% 68%",
|
|
4659
|
-
textMuted: "225 12% 50%",
|
|
4660
|
-
border: "231 15% 28%",
|
|
4661
|
-
splitter: "231 15% 24%",
|
|
4662
|
-
splitterHover: "265 90% 60%",
|
|
4663
|
-
hover: "231 15% 22%",
|
|
4664
|
-
primary: "265 90% 72%",
|
|
4665
|
-
floatShadow: "231 20% 5%"
|
|
4666
|
-
}
|
|
4667
|
-
};
|
|
4668
|
-
var nordDark = {
|
|
4669
|
-
name: "Nord Dark",
|
|
4670
|
-
mode: "dark",
|
|
4671
|
-
colors: {
|
|
4672
|
-
bg: "220 16% 16%",
|
|
4673
|
-
surface: "220 16% 20%",
|
|
4674
|
-
surfaceAlt: "220 16% 22%",
|
|
4675
|
-
panelHeader: "220 16% 25%",
|
|
4676
|
-
tabBar: "220 16% 19%",
|
|
4677
|
-
tabActive: "220 16% 20%",
|
|
4678
|
-
tabText: "219 14% 65%",
|
|
4679
|
-
tabTextActive: "193 43% 60%",
|
|
4680
|
-
text: "219 28% 88%",
|
|
4681
|
-
textSecondary: "219 14% 68%",
|
|
4682
|
-
textMuted: "219 12% 50%",
|
|
4683
|
-
border: "220 16% 30%",
|
|
4684
|
-
splitter: "220 16% 26%",
|
|
4685
|
-
splitterHover: "193 43% 50%",
|
|
4686
|
-
hover: "220 16% 24%",
|
|
4687
|
-
primary: "193 43% 60%",
|
|
4688
|
-
floatShadow: "220 20% 8%"
|
|
4689
|
-
}
|
|
4690
|
-
};
|
|
4691
|
-
var solarizedDark = {
|
|
4692
|
-
name: "Solarized Dark",
|
|
4693
|
-
mode: "dark",
|
|
4694
|
-
colors: {
|
|
4695
|
-
bg: "192 81% 8%",
|
|
4696
|
-
surface: "192 81% 11%",
|
|
4697
|
-
surfaceAlt: "192 60% 13%",
|
|
4698
|
-
panelHeader: "192 60% 16%",
|
|
4699
|
-
tabBar: "192 70% 10%",
|
|
4700
|
-
tabActive: "192 81% 11%",
|
|
4550
|
+
);
|
|
4551
|
+
var sepiaLight = createTheme(
|
|
4552
|
+
"Sepia",
|
|
4553
|
+
"light",
|
|
4554
|
+
{ hue: 35, sat: 35, light: 94 },
|
|
4555
|
+
{ hue: 18, sat: 60, light: 42 }
|
|
4556
|
+
);
|
|
4557
|
+
var mintLight = createTheme(
|
|
4558
|
+
"Mint",
|
|
4559
|
+
"light",
|
|
4560
|
+
{ hue: 150, sat: 20 },
|
|
4561
|
+
{ hue: 162, sat: 63, light: 35 }
|
|
4562
|
+
);
|
|
4563
|
+
var lavenderLight = createTheme(
|
|
4564
|
+
"Lavender",
|
|
4565
|
+
"light",
|
|
4566
|
+
{ hue: 260, sat: 20 },
|
|
4567
|
+
{ hue: 262, sat: 52, light: 50 }
|
|
4568
|
+
);
|
|
4569
|
+
var vsCodeDark = createTheme(
|
|
4570
|
+
"VS Code Dark",
|
|
4571
|
+
"dark",
|
|
4572
|
+
{ hue: 222, sat: 47, light: 7 },
|
|
4573
|
+
{ hue: 217, sat: 91, light: 70 },
|
|
4574
|
+
{ text: "210 40% 96%", floatShadow: "0 0% 0%" }
|
|
4575
|
+
);
|
|
4576
|
+
var draculaDark = createTheme(
|
|
4577
|
+
"Dracula Dark",
|
|
4578
|
+
"dark",
|
|
4579
|
+
{ hue: 231, sat: 15, light: 14 },
|
|
4580
|
+
{ hue: 265, sat: 90, light: 72 },
|
|
4581
|
+
{ text: "60 30% 92%" }
|
|
4582
|
+
);
|
|
4583
|
+
var nordDark = createTheme(
|
|
4584
|
+
"Nord Dark",
|
|
4585
|
+
"dark",
|
|
4586
|
+
{ hue: 220, sat: 16, light: 16 },
|
|
4587
|
+
{ hue: 193, sat: 43, light: 60 },
|
|
4588
|
+
{ text: "219 28% 88%" }
|
|
4589
|
+
);
|
|
4590
|
+
var solarizedDark = createTheme(
|
|
4591
|
+
"Solarized Dark",
|
|
4592
|
+
"dark",
|
|
4593
|
+
{ hue: 192, sat: 81, light: 8 },
|
|
4594
|
+
{ hue: 175, sat: 59, light: 55 },
|
|
4595
|
+
{
|
|
4701
4596
|
tabText: "180 8% 65%",
|
|
4702
|
-
tabTextActive: "175 59% 55%",
|
|
4703
4597
|
text: "44 87% 94%",
|
|
4704
4598
|
textSecondary: "180 8% 68%",
|
|
4705
4599
|
textMuted: "194 14% 50%",
|
|
4706
|
-
border: "192 50% 24%",
|
|
4707
|
-
splitter: "192 50% 16%",
|
|
4708
|
-
splitterHover: "175 59% 50%",
|
|
4709
|
-
hover: "192 60% 15%",
|
|
4710
|
-
primary: "175 59% 55%",
|
|
4711
4600
|
floatShadow: "192 60% 3%"
|
|
4712
4601
|
}
|
|
4713
|
-
|
|
4714
|
-
var midnightDark =
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
hover: "225 26% 18%",
|
|
4733
|
-
primary: "210 60% 65%",
|
|
4734
|
-
floatShadow: "225 30% 4%"
|
|
4735
|
-
}
|
|
4736
|
-
};
|
|
4737
|
-
var forestDark = {
|
|
4738
|
-
name: "Forest Dark",
|
|
4739
|
-
mode: "dark",
|
|
4740
|
-
colors: {
|
|
4741
|
-
bg: "160 18% 9%",
|
|
4742
|
-
surface: "160 16% 12%",
|
|
4743
|
-
surfaceAlt: "160 14% 14%",
|
|
4744
|
-
panelHeader: "160 14% 17%",
|
|
4745
|
-
tabBar: "160 16% 11%",
|
|
4746
|
-
tabActive: "160 16% 12%",
|
|
4747
|
-
tabText: "155 10% 65%",
|
|
4748
|
-
tabTextActive: "152 50% 55%",
|
|
4749
|
-
text: "150 15% 90%",
|
|
4750
|
-
textSecondary: "155 10% 68%",
|
|
4751
|
-
textMuted: "155 8% 50%",
|
|
4752
|
-
border: "160 14% 24%",
|
|
4753
|
-
splitter: "160 14% 18%",
|
|
4754
|
-
splitterHover: "152 50% 48%",
|
|
4755
|
-
hover: "160 14% 16%",
|
|
4756
|
-
primary: "152 50% 55%",
|
|
4757
|
-
floatShadow: "160 18% 3%"
|
|
4758
|
-
}
|
|
4759
|
-
};
|
|
4760
|
-
var slateDark = {
|
|
4761
|
-
name: "Slate Dark",
|
|
4762
|
-
mode: "dark",
|
|
4763
|
-
colors: {
|
|
4764
|
-
bg: "215 12% 11%",
|
|
4765
|
-
surface: "215 10% 14%",
|
|
4766
|
-
surfaceAlt: "215 9% 16%",
|
|
4767
|
-
panelHeader: "215 9% 19%",
|
|
4768
|
-
tabBar: "215 10% 13%",
|
|
4769
|
-
tabActive: "215 10% 14%",
|
|
4770
|
-
tabText: "210 8% 65%",
|
|
4771
|
-
tabTextActive: "205 40% 62%",
|
|
4772
|
-
text: "210 15% 90%",
|
|
4773
|
-
textSecondary: "210 8% 68%",
|
|
4774
|
-
textMuted: "210 6% 50%",
|
|
4775
|
-
border: "215 9% 24%",
|
|
4776
|
-
splitter: "215 9% 20%",
|
|
4777
|
-
splitterHover: "205 40% 52%",
|
|
4778
|
-
hover: "215 9% 18%",
|
|
4779
|
-
primary: "205 40% 62%",
|
|
4780
|
-
floatShadow: "215 12% 4%"
|
|
4781
|
-
}
|
|
4782
|
-
};
|
|
4602
|
+
);
|
|
4603
|
+
var midnightDark = createTheme(
|
|
4604
|
+
"Midnight Blue",
|
|
4605
|
+
"dark",
|
|
4606
|
+
{ hue: 225, sat: 30 },
|
|
4607
|
+
{ hue: 210, sat: 60, light: 65 }
|
|
4608
|
+
);
|
|
4609
|
+
var forestDark = createTheme(
|
|
4610
|
+
"Forest Dark",
|
|
4611
|
+
"dark",
|
|
4612
|
+
{ hue: 160, sat: 18, light: 9 },
|
|
4613
|
+
{ hue: 152, sat: 50, light: 55 }
|
|
4614
|
+
);
|
|
4615
|
+
var slateDark = createTheme(
|
|
4616
|
+
"Slate Dark",
|
|
4617
|
+
"dark",
|
|
4618
|
+
{ hue: 215, sat: 12, light: 11 },
|
|
4619
|
+
{ hue: 205, sat: 40, light: 62 }
|
|
4620
|
+
);
|
|
4783
4621
|
var themes = {
|
|
4784
4622
|
// Light
|
|
4785
4623
|
vsCodeLight,
|
|
@@ -6253,6 +6091,7 @@ var PaneNavigator = class {
|
|
|
6253
6091
|
countPanels,
|
|
6254
6092
|
createDefaultState,
|
|
6255
6093
|
createPreventableEvent,
|
|
6094
|
+
createTheme,
|
|
6256
6095
|
defaultResourceStrings,
|
|
6257
6096
|
deserialize,
|
|
6258
6097
|
detectPanelEdge,
|
package/dist/index.d.cts
CHANGED
|
@@ -856,6 +856,7 @@ declare class PanelApi {
|
|
|
856
856
|
* 1. Use a built-in theme: `theme: themes.vsCodeLight`
|
|
857
857
|
* 2. Create a custom theme: `theme: { name: 'custom', mode: 'light', colors: { ... } }`
|
|
858
858
|
* 3. Extend a built-in theme: `theme: { ...themes.vsCodeLight, colors: { ...themes.vsCodeLight.colors, primary: '#ff0000' } }`
|
|
859
|
+
* 4. Use createTheme factory: `theme: createTheme('My Theme', 'dark', { hue: 220, sat: 16 }, { hue: 193, sat: 43, light: 60 })`
|
|
859
860
|
*/
|
|
860
861
|
interface DockThemeColors {
|
|
861
862
|
/** Main background behind all panels */
|
|
@@ -906,33 +907,39 @@ interface DockTheme {
|
|
|
906
907
|
* This scopes the theme to that element's subtree.
|
|
907
908
|
*/
|
|
908
909
|
declare function applyTheme(container: HTMLElement, theme: DockTheme): void;
|
|
909
|
-
|
|
910
|
+
interface ThemeBase {
|
|
911
|
+
hue: number;
|
|
912
|
+
sat: number;
|
|
913
|
+
light?: number;
|
|
914
|
+
}
|
|
915
|
+
interface ThemeAccent {
|
|
916
|
+
hue: number;
|
|
917
|
+
sat: number;
|
|
918
|
+
light?: number;
|
|
919
|
+
}
|
|
920
|
+
/**
|
|
921
|
+
* Create a theme from a base palette and accent color.
|
|
922
|
+
*
|
|
923
|
+
* @param name - Human-readable theme name
|
|
924
|
+
* @param mode - 'light' or 'dark'
|
|
925
|
+
* @param base - Background hue/saturation (lightness auto-derived from mode)
|
|
926
|
+
* @param accent - Primary accent hue/saturation
|
|
927
|
+
* @param overrides - Optional per-color overrides for special themes
|
|
928
|
+
*/
|
|
929
|
+
declare function createTheme(name: string, mode: 'light' | 'dark', base: ThemeBase, accent: ThemeAccent, overrides?: Partial<DockThemeColors>): DockTheme;
|
|
910
930
|
declare const vsCodeLight: DockTheme;
|
|
911
|
-
/** GitHub-inspired light theme — warm grays with subtle blue accent */
|
|
912
931
|
declare const githubLight: DockTheme;
|
|
913
|
-
/** Soft warm light theme — cream tones with amber accent */
|
|
914
932
|
declare const warmLight: DockTheme;
|
|
915
|
-
/** Solarized Light — low-contrast cream with teal accents, designed for all-day use */
|
|
916
933
|
declare const solarizedLight: DockTheme;
|
|
917
|
-
/** Sepia — book-like warmth with brown tones, very gentle on eyes */
|
|
918
934
|
declare const sepiaLight: DockTheme;
|
|
919
|
-
/** Mint — soft green tones, refreshing and calming */
|
|
920
935
|
declare const mintLight: DockTheme;
|
|
921
|
-
/** Lavender — soft purple-gray, elegant and easy on eyes */
|
|
922
936
|
declare const lavenderLight: DockTheme;
|
|
923
|
-
/** VS Code-inspired dark theme — deep blues and grays */
|
|
924
937
|
declare const vsCodeDark: DockTheme;
|
|
925
|
-
/** Dracula-inspired dark theme — purple accents on dark gray */
|
|
926
938
|
declare const draculaDark: DockTheme;
|
|
927
|
-
/** Nord-inspired dark theme — arctic blue-gray palette */
|
|
928
939
|
declare const nordDark: DockTheme;
|
|
929
|
-
/** Solarized Dark — low-contrast dark with teal accents, designed for all-day use */
|
|
930
940
|
declare const solarizedDark: DockTheme;
|
|
931
|
-
/** Midnight Blue — deep navy with soft blue accents, very easy on eyes at night */
|
|
932
941
|
declare const midnightDark: DockTheme;
|
|
933
|
-
/** Forest — deep green-gray with emerald accents, nature-inspired calm */
|
|
934
942
|
declare const forestDark: DockTheme;
|
|
935
|
-
/** Slate — neutral gray with warm undertones, minimalist and gentle */
|
|
936
943
|
declare const slateDark: DockTheme;
|
|
937
944
|
/** All built-in themes */
|
|
938
945
|
declare const themes: {
|
|
@@ -1475,4 +1482,4 @@ declare class PanelFinder {
|
|
|
1475
1482
|
dispose(): void;
|
|
1476
1483
|
}
|
|
1477
1484
|
|
|
1478
|
-
export { AddPanelOptions, ContextMenuManager, ContextMenuManagerOptions, DockAction, DockEdge, DockManagerState, DockPosition, DockResourceStrings, DockTheme, DockThemeColors, DockviewApi, DockviewComponent, DockviewComponentOptions, EventEmitter, FloatPanelOptions, FloatingPanel, HeaderPosition, IDisposable, KeyboardManager, KeyboardManagerOptions, LayoutConstraints, LayoutNode, MovePanelOptions, PaneNavigator, PaneNavigatorOptions, PanelApi, PanelConfig, PanelFinder, PanelFinderOptions, PopoutPanel, PreventableDockEvent, SerializedDockLayout, SplitDirection, SplitNode, StateHistoryManager, TabGroupNode, UnpinnedPanel, applyTheme, clearLocalStorage, collectAllPanelsOrdered, collectLayoutPanelIds, countPanels, createDefaultState, createPreventableEvent, defaultResourceStrings, deserialize, detectPanelEdge, dockReducer, draculaDark, exportAsUrl, exportToFile, findAllTabGroups, findFirstTabGroup, findTabGroupByEdge, findTabGroupById, findTabGroupForPanel, forestDark, genId, getThemeByName, getThemesByMode, githubLight, importFromFile, importFromUrl, insertAtEdge, insertBySplit, insertInGroup, isPanelPlaced, lavenderLight, loadFromLocalStorage, midnightDark, mintLight, movePanel, nordDark, removePanel, resetIdCounter, saveToLocalStorage, sepiaLight, serialize, slateDark, solarizedDark, solarizedLight, themes, validateState, vsCodeDark, vsCodeLight, warmLight };
|
|
1485
|
+
export { AddPanelOptions, ContextMenuManager, ContextMenuManagerOptions, DockAction, DockEdge, DockManagerState, DockPosition, DockResourceStrings, DockTheme, DockThemeColors, DockviewApi, DockviewComponent, DockviewComponentOptions, EventEmitter, FloatPanelOptions, FloatingPanel, HeaderPosition, IDisposable, KeyboardManager, KeyboardManagerOptions, LayoutConstraints, LayoutNode, MovePanelOptions, PaneNavigator, PaneNavigatorOptions, PanelApi, PanelConfig, PanelFinder, PanelFinderOptions, PopoutPanel, PreventableDockEvent, SerializedDockLayout, SplitDirection, SplitNode, StateHistoryManager, TabGroupNode, UnpinnedPanel, applyTheme, clearLocalStorage, collectAllPanelsOrdered, collectLayoutPanelIds, countPanels, createDefaultState, createPreventableEvent, createTheme, defaultResourceStrings, deserialize, detectPanelEdge, dockReducer, draculaDark, exportAsUrl, exportToFile, findAllTabGroups, findFirstTabGroup, findTabGroupByEdge, findTabGroupById, findTabGroupForPanel, forestDark, genId, getThemeByName, getThemesByMode, githubLight, importFromFile, importFromUrl, insertAtEdge, insertBySplit, insertInGroup, isPanelPlaced, lavenderLight, loadFromLocalStorage, midnightDark, mintLight, movePanel, nordDark, removePanel, resetIdCounter, saveToLocalStorage, sepiaLight, serialize, slateDark, solarizedDark, solarizedLight, themes, validateState, vsCodeDark, vsCodeLight, warmLight };
|
package/dist/index.d.ts
CHANGED
|
@@ -856,6 +856,7 @@ declare class PanelApi {
|
|
|
856
856
|
* 1. Use a built-in theme: `theme: themes.vsCodeLight`
|
|
857
857
|
* 2. Create a custom theme: `theme: { name: 'custom', mode: 'light', colors: { ... } }`
|
|
858
858
|
* 3. Extend a built-in theme: `theme: { ...themes.vsCodeLight, colors: { ...themes.vsCodeLight.colors, primary: '#ff0000' } }`
|
|
859
|
+
* 4. Use createTheme factory: `theme: createTheme('My Theme', 'dark', { hue: 220, sat: 16 }, { hue: 193, sat: 43, light: 60 })`
|
|
859
860
|
*/
|
|
860
861
|
interface DockThemeColors {
|
|
861
862
|
/** Main background behind all panels */
|
|
@@ -906,33 +907,39 @@ interface DockTheme {
|
|
|
906
907
|
* This scopes the theme to that element's subtree.
|
|
907
908
|
*/
|
|
908
909
|
declare function applyTheme(container: HTMLElement, theme: DockTheme): void;
|
|
909
|
-
|
|
910
|
+
interface ThemeBase {
|
|
911
|
+
hue: number;
|
|
912
|
+
sat: number;
|
|
913
|
+
light?: number;
|
|
914
|
+
}
|
|
915
|
+
interface ThemeAccent {
|
|
916
|
+
hue: number;
|
|
917
|
+
sat: number;
|
|
918
|
+
light?: number;
|
|
919
|
+
}
|
|
920
|
+
/**
|
|
921
|
+
* Create a theme from a base palette and accent color.
|
|
922
|
+
*
|
|
923
|
+
* @param name - Human-readable theme name
|
|
924
|
+
* @param mode - 'light' or 'dark'
|
|
925
|
+
* @param base - Background hue/saturation (lightness auto-derived from mode)
|
|
926
|
+
* @param accent - Primary accent hue/saturation
|
|
927
|
+
* @param overrides - Optional per-color overrides for special themes
|
|
928
|
+
*/
|
|
929
|
+
declare function createTheme(name: string, mode: 'light' | 'dark', base: ThemeBase, accent: ThemeAccent, overrides?: Partial<DockThemeColors>): DockTheme;
|
|
910
930
|
declare const vsCodeLight: DockTheme;
|
|
911
|
-
/** GitHub-inspired light theme — warm grays with subtle blue accent */
|
|
912
931
|
declare const githubLight: DockTheme;
|
|
913
|
-
/** Soft warm light theme — cream tones with amber accent */
|
|
914
932
|
declare const warmLight: DockTheme;
|
|
915
|
-
/** Solarized Light — low-contrast cream with teal accents, designed for all-day use */
|
|
916
933
|
declare const solarizedLight: DockTheme;
|
|
917
|
-
/** Sepia — book-like warmth with brown tones, very gentle on eyes */
|
|
918
934
|
declare const sepiaLight: DockTheme;
|
|
919
|
-
/** Mint — soft green tones, refreshing and calming */
|
|
920
935
|
declare const mintLight: DockTheme;
|
|
921
|
-
/** Lavender — soft purple-gray, elegant and easy on eyes */
|
|
922
936
|
declare const lavenderLight: DockTheme;
|
|
923
|
-
/** VS Code-inspired dark theme — deep blues and grays */
|
|
924
937
|
declare const vsCodeDark: DockTheme;
|
|
925
|
-
/** Dracula-inspired dark theme — purple accents on dark gray */
|
|
926
938
|
declare const draculaDark: DockTheme;
|
|
927
|
-
/** Nord-inspired dark theme — arctic blue-gray palette */
|
|
928
939
|
declare const nordDark: DockTheme;
|
|
929
|
-
/** Solarized Dark — low-contrast dark with teal accents, designed for all-day use */
|
|
930
940
|
declare const solarizedDark: DockTheme;
|
|
931
|
-
/** Midnight Blue — deep navy with soft blue accents, very easy on eyes at night */
|
|
932
941
|
declare const midnightDark: DockTheme;
|
|
933
|
-
/** Forest — deep green-gray with emerald accents, nature-inspired calm */
|
|
934
942
|
declare const forestDark: DockTheme;
|
|
935
|
-
/** Slate — neutral gray with warm undertones, minimalist and gentle */
|
|
936
943
|
declare const slateDark: DockTheme;
|
|
937
944
|
/** All built-in themes */
|
|
938
945
|
declare const themes: {
|
|
@@ -1475,4 +1482,4 @@ declare class PanelFinder {
|
|
|
1475
1482
|
dispose(): void;
|
|
1476
1483
|
}
|
|
1477
1484
|
|
|
1478
|
-
export { AddPanelOptions, ContextMenuManager, ContextMenuManagerOptions, DockAction, DockEdge, DockManagerState, DockPosition, DockResourceStrings, DockTheme, DockThemeColors, DockviewApi, DockviewComponent, DockviewComponentOptions, EventEmitter, FloatPanelOptions, FloatingPanel, HeaderPosition, IDisposable, KeyboardManager, KeyboardManagerOptions, LayoutConstraints, LayoutNode, MovePanelOptions, PaneNavigator, PaneNavigatorOptions, PanelApi, PanelConfig, PanelFinder, PanelFinderOptions, PopoutPanel, PreventableDockEvent, SerializedDockLayout, SplitDirection, SplitNode, StateHistoryManager, TabGroupNode, UnpinnedPanel, applyTheme, clearLocalStorage, collectAllPanelsOrdered, collectLayoutPanelIds, countPanels, createDefaultState, createPreventableEvent, defaultResourceStrings, deserialize, detectPanelEdge, dockReducer, draculaDark, exportAsUrl, exportToFile, findAllTabGroups, findFirstTabGroup, findTabGroupByEdge, findTabGroupById, findTabGroupForPanel, forestDark, genId, getThemeByName, getThemesByMode, githubLight, importFromFile, importFromUrl, insertAtEdge, insertBySplit, insertInGroup, isPanelPlaced, lavenderLight, loadFromLocalStorage, midnightDark, mintLight, movePanel, nordDark, removePanel, resetIdCounter, saveToLocalStorage, sepiaLight, serialize, slateDark, solarizedDark, solarizedLight, themes, validateState, vsCodeDark, vsCodeLight, warmLight };
|
|
1485
|
+
export { AddPanelOptions, ContextMenuManager, ContextMenuManagerOptions, DockAction, DockEdge, DockManagerState, DockPosition, DockResourceStrings, DockTheme, DockThemeColors, DockviewApi, DockviewComponent, DockviewComponentOptions, EventEmitter, FloatPanelOptions, FloatingPanel, HeaderPosition, IDisposable, KeyboardManager, KeyboardManagerOptions, LayoutConstraints, LayoutNode, MovePanelOptions, PaneNavigator, PaneNavigatorOptions, PanelApi, PanelConfig, PanelFinder, PanelFinderOptions, PopoutPanel, PreventableDockEvent, SerializedDockLayout, SplitDirection, SplitNode, StateHistoryManager, TabGroupNode, UnpinnedPanel, applyTheme, clearLocalStorage, collectAllPanelsOrdered, collectLayoutPanelIds, countPanels, createDefaultState, createPreventableEvent, createTheme, defaultResourceStrings, deserialize, detectPanelEdge, dockReducer, draculaDark, exportAsUrl, exportToFile, findAllTabGroups, findFirstTabGroup, findTabGroupByEdge, findTabGroupById, findTabGroupForPanel, forestDark, genId, getThemeByName, getThemesByMode, githubLight, importFromFile, importFromUrl, insertAtEdge, insertBySplit, insertInGroup, isPanelPlaced, lavenderLight, loadFromLocalStorage, midnightDark, mintLight, movePanel, nordDark, removePanel, resetIdCounter, saveToLocalStorage, sepiaLight, serialize, slateDark, solarizedDark, solarizedLight, themes, validateState, vsCodeDark, vsCodeLight, warmLight };
|
package/dist/index.js
CHANGED
|
@@ -4148,9 +4148,8 @@ var UnpinnedStripView = class {
|
|
|
4148
4148
|
this.stripEl.removeEventListener("click", this.boundStripClick);
|
|
4149
4149
|
this.boundStripClick = null;
|
|
4150
4150
|
}
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
}
|
|
4151
|
+
this.stripEl.remove();
|
|
4152
|
+
this.element.remove();
|
|
4154
4153
|
}
|
|
4155
4154
|
// ── Private: Event delegation ──────────────────────────────────
|
|
4156
4155
|
/** Set up event delegation on stripEl for all tab interactions */
|
|
@@ -4375,328 +4374,166 @@ function applyTheme(container, theme) {
|
|
|
4375
4374
|
container.style.setProperty("--dock-scrollbar-thumb", colors.textMuted);
|
|
4376
4375
|
container.style.setProperty("--dock-scrollbar-track", "transparent");
|
|
4377
4376
|
}
|
|
4378
|
-
var
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4377
|
+
var hsl = (h, s, l) => `${h} ${s}% ${l}%`;
|
|
4378
|
+
function createTheme(name, mode, base, accent, overrides) {
|
|
4379
|
+
const { hue: h, sat: s } = base;
|
|
4380
|
+
const { hue: ah, sat: as_ } = accent;
|
|
4381
|
+
let colors;
|
|
4382
|
+
if (mode === "light") {
|
|
4383
|
+
const bl = base.light ?? 96;
|
|
4384
|
+
const al = accent.light ?? 50;
|
|
4385
|
+
const ts = Math.max(s - 6, 0);
|
|
4386
|
+
colors = {
|
|
4387
|
+
bg: hsl(h, s, bl),
|
|
4388
|
+
surface: hsl(h, Math.max(s - 5, 0), Math.min(bl + 3, 100)),
|
|
4389
|
+
surfaceAlt: hsl(h, Math.max(s - 2, 0), bl - 1),
|
|
4390
|
+
panelHeader: hsl(h, Math.max(s - 2, 0), bl - 4),
|
|
4391
|
+
tabBar: hsl(h, Math.max(s - 5, 0), bl - 3),
|
|
4392
|
+
tabActive: hsl(h, Math.max(s - 5, 0), Math.min(bl + 3, 100)),
|
|
4393
|
+
tabText: hsl(h - 10, Math.max(ts - 8, 0), 35),
|
|
4394
|
+
tabTextActive: hsl(ah, as_, al),
|
|
4395
|
+
text: hsl(h - 10, Math.max(ts - 2, 0), 15),
|
|
4396
|
+
textSecondary: hsl(h - 10, Math.max(ts - 8, 0), 32),
|
|
4397
|
+
textMuted: hsl(h - 10, Math.max(ts - 12, 0), 48),
|
|
4398
|
+
border: hsl(h, Math.max(s - 6, 0), 80),
|
|
4399
|
+
splitter: hsl(h, Math.max(s - 6, 0), 87),
|
|
4400
|
+
splitterHover: hsl(ah, as_, al + 8),
|
|
4401
|
+
hover: hsl(h, Math.max(s - 5, 0), bl - 3),
|
|
4402
|
+
primary: hsl(ah, as_, al),
|
|
4403
|
+
floatShadow: hsl(h, Math.max(s, 0), 15)
|
|
4404
|
+
};
|
|
4405
|
+
} else {
|
|
4406
|
+
const bl = base.light ?? 10;
|
|
4407
|
+
const al = accent.light ?? 65;
|
|
4408
|
+
const ts = Math.round(s * 0.5);
|
|
4409
|
+
colors = {
|
|
4410
|
+
bg: hsl(h, s, bl),
|
|
4411
|
+
surface: hsl(h, s, bl + 3),
|
|
4412
|
+
surfaceAlt: hsl(h, Math.max(s - 2, 0), bl + 5),
|
|
4413
|
+
panelHeader: hsl(h, Math.max(s - 2, 0), bl + 8),
|
|
4414
|
+
tabBar: hsl(h, s, bl + 1),
|
|
4415
|
+
tabActive: hsl(h, s, bl + 3),
|
|
4416
|
+
tabText: hsl(h - 5, Math.max(ts, 8), 65),
|
|
4417
|
+
tabTextActive: hsl(ah, as_, al),
|
|
4418
|
+
text: hsl(h - 5, Math.round(s * 0.8), 90),
|
|
4419
|
+
textSecondary: hsl(h - 5, Math.max(ts, 8), 68),
|
|
4420
|
+
textMuted: hsl(h - 5, Math.max(ts - 3, 6), 50),
|
|
4421
|
+
border: hsl(h, Math.max(s - 2, 0), bl + 14),
|
|
4422
|
+
splitter: hsl(h, Math.max(s - 2, 0), bl + 10),
|
|
4423
|
+
splitterHover: hsl(ah, as_, al - 8),
|
|
4424
|
+
hover: hsl(h, Math.max(s - 2, 0), bl + 8),
|
|
4425
|
+
primary: hsl(ah, as_, al),
|
|
4426
|
+
floatShadow: hsl(h, Math.min(s + 5, 100), Math.max(bl - 7, 0))
|
|
4427
|
+
};
|
|
4422
4428
|
}
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
name: "Warm Light",
|
|
4426
|
-
mode: "light",
|
|
4427
|
-
colors: {
|
|
4428
|
-
bg: "40 30% 96%",
|
|
4429
|
-
surface: "40 20% 99%",
|
|
4430
|
-
surfaceAlt: "40 25% 95%",
|
|
4431
|
-
panelHeader: "40 25% 91%",
|
|
4432
|
-
tabBar: "40 20% 93%",
|
|
4433
|
-
tabActive: "40 20% 99%",
|
|
4434
|
-
tabText: "30 10% 35%",
|
|
4435
|
-
tabTextActive: "25 80% 45%",
|
|
4436
|
-
text: "30 15% 15%",
|
|
4437
|
-
textSecondary: "30 10% 32%",
|
|
4438
|
-
textMuted: "30 8% 48%",
|
|
4439
|
-
border: "35 15% 80%",
|
|
4440
|
-
splitter: "35 15% 87%",
|
|
4441
|
-
splitterHover: "25 80% 55%",
|
|
4442
|
-
hover: "40 20% 93%",
|
|
4443
|
-
primary: "25 80% 45%",
|
|
4444
|
-
floatShadow: "30 20% 15%"
|
|
4429
|
+
if (overrides) {
|
|
4430
|
+
Object.assign(colors, overrides);
|
|
4445
4431
|
}
|
|
4446
|
-
};
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4432
|
+
return { name, mode, colors };
|
|
4433
|
+
}
|
|
4434
|
+
var vsCodeLight = createTheme(
|
|
4435
|
+
"VS Code Light",
|
|
4436
|
+
"light",
|
|
4437
|
+
{ hue: 220, sat: 20 },
|
|
4438
|
+
{ hue: 217, sat: 91, light: 50 },
|
|
4439
|
+
{ floatShadow: "0 0% 0%" }
|
|
4440
|
+
);
|
|
4441
|
+
var githubLight = createTheme(
|
|
4442
|
+
"GitHub Light",
|
|
4443
|
+
"light",
|
|
4444
|
+
{ hue: 210, sat: 20, light: 97 },
|
|
4445
|
+
{ hue: 212, sat: 92, light: 45 },
|
|
4446
|
+
{ floatShadow: "210 20% 20%" }
|
|
4447
|
+
);
|
|
4448
|
+
var warmLight = createTheme(
|
|
4449
|
+
"Warm Light",
|
|
4450
|
+
"light",
|
|
4451
|
+
{ hue: 40, sat: 30 },
|
|
4452
|
+
{ hue: 25, sat: 80, light: 45 }
|
|
4453
|
+
);
|
|
4454
|
+
var solarizedLight = createTheme(
|
|
4455
|
+
"Solarized Light",
|
|
4456
|
+
"light",
|
|
4457
|
+
{ hue: 44, sat: 87, light: 94 },
|
|
4458
|
+
{ hue: 175, sat: 59, light: 35 },
|
|
4459
|
+
{
|
|
4457
4460
|
tabText: "194 14% 35%",
|
|
4458
|
-
tabTextActive: "175 59% 35%",
|
|
4459
4461
|
text: "192 81% 14%",
|
|
4460
4462
|
textSecondary: "194 14% 32%",
|
|
4461
4463
|
textMuted: "180 8% 48%",
|
|
4462
|
-
border: "44 30% 80%",
|
|
4463
|
-
splitter: "44 30% 85%",
|
|
4464
|
-
splitterHover: "175 59% 45%",
|
|
4465
|
-
hover: "44 50% 91%",
|
|
4466
|
-
primary: "175 59% 35%",
|
|
4467
4464
|
floatShadow: "44 20% 30%"
|
|
4468
4465
|
}
|
|
4469
|
-
|
|
4470
|
-
var sepiaLight =
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
}
|
|
4492
|
-
}
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
};
|
|
4516
|
-
var lavenderLight = {
|
|
4517
|
-
name: "Lavender",
|
|
4518
|
-
mode: "light",
|
|
4519
|
-
colors: {
|
|
4520
|
-
bg: "260 20% 96%",
|
|
4521
|
-
surface: "260 15% 99%",
|
|
4522
|
-
surfaceAlt: "260 16% 95%",
|
|
4523
|
-
panelHeader: "260 16% 90%",
|
|
4524
|
-
tabBar: "260 14% 92%",
|
|
4525
|
-
tabActive: "260 15% 99%",
|
|
4526
|
-
tabText: "265 10% 35%",
|
|
4527
|
-
tabTextActive: "262 52% 50%",
|
|
4528
|
-
text: "265 18% 16%",
|
|
4529
|
-
textSecondary: "265 10% 32%",
|
|
4530
|
-
textMuted: "260 8% 48%",
|
|
4531
|
-
border: "260 14% 80%",
|
|
4532
|
-
splitter: "260 14% 87%",
|
|
4533
|
-
splitterHover: "262 52% 58%",
|
|
4534
|
-
hover: "260 14% 93%",
|
|
4535
|
-
primary: "262 52% 50%",
|
|
4536
|
-
floatShadow: "260 15% 22%"
|
|
4537
|
-
}
|
|
4538
|
-
};
|
|
4539
|
-
var vsCodeDark = {
|
|
4540
|
-
name: "VS Code Dark",
|
|
4541
|
-
mode: "dark",
|
|
4542
|
-
colors: {
|
|
4543
|
-
bg: "222 47% 7%",
|
|
4544
|
-
surface: "222 47% 10%",
|
|
4545
|
-
surfaceAlt: "222 47% 12%",
|
|
4546
|
-
panelHeader: "222 47% 15%",
|
|
4547
|
-
tabBar: "222 47% 11%",
|
|
4548
|
-
tabActive: "222 47% 10%",
|
|
4549
|
-
tabText: "215 20% 65%",
|
|
4550
|
-
tabTextActive: "217 91% 70%",
|
|
4551
|
-
text: "210 40% 96%",
|
|
4552
|
-
textSecondary: "215 20% 68%",
|
|
4553
|
-
textMuted: "215 15% 50%",
|
|
4554
|
-
border: "217 33% 24%",
|
|
4555
|
-
splitter: "217 33% 20%",
|
|
4556
|
-
splitterHover: "217 91% 60%",
|
|
4557
|
-
hover: "217 33% 16%",
|
|
4558
|
-
primary: "217 91% 70%",
|
|
4559
|
-
floatShadow: "0 0% 0%"
|
|
4560
|
-
}
|
|
4561
|
-
};
|
|
4562
|
-
var draculaDark = {
|
|
4563
|
-
name: "Dracula Dark",
|
|
4564
|
-
mode: "dark",
|
|
4565
|
-
colors: {
|
|
4566
|
-
bg: "231 15% 14%",
|
|
4567
|
-
surface: "231 15% 17%",
|
|
4568
|
-
surfaceAlt: "231 15% 19%",
|
|
4569
|
-
panelHeader: "231 15% 22%",
|
|
4570
|
-
tabBar: "231 15% 16%",
|
|
4571
|
-
tabActive: "231 15% 17%",
|
|
4572
|
-
tabText: "225 15% 65%",
|
|
4573
|
-
tabTextActive: "265 90% 72%",
|
|
4574
|
-
text: "60 30% 92%",
|
|
4575
|
-
textSecondary: "225 15% 68%",
|
|
4576
|
-
textMuted: "225 12% 50%",
|
|
4577
|
-
border: "231 15% 28%",
|
|
4578
|
-
splitter: "231 15% 24%",
|
|
4579
|
-
splitterHover: "265 90% 60%",
|
|
4580
|
-
hover: "231 15% 22%",
|
|
4581
|
-
primary: "265 90% 72%",
|
|
4582
|
-
floatShadow: "231 20% 5%"
|
|
4583
|
-
}
|
|
4584
|
-
};
|
|
4585
|
-
var nordDark = {
|
|
4586
|
-
name: "Nord Dark",
|
|
4587
|
-
mode: "dark",
|
|
4588
|
-
colors: {
|
|
4589
|
-
bg: "220 16% 16%",
|
|
4590
|
-
surface: "220 16% 20%",
|
|
4591
|
-
surfaceAlt: "220 16% 22%",
|
|
4592
|
-
panelHeader: "220 16% 25%",
|
|
4593
|
-
tabBar: "220 16% 19%",
|
|
4594
|
-
tabActive: "220 16% 20%",
|
|
4595
|
-
tabText: "219 14% 65%",
|
|
4596
|
-
tabTextActive: "193 43% 60%",
|
|
4597
|
-
text: "219 28% 88%",
|
|
4598
|
-
textSecondary: "219 14% 68%",
|
|
4599
|
-
textMuted: "219 12% 50%",
|
|
4600
|
-
border: "220 16% 30%",
|
|
4601
|
-
splitter: "220 16% 26%",
|
|
4602
|
-
splitterHover: "193 43% 50%",
|
|
4603
|
-
hover: "220 16% 24%",
|
|
4604
|
-
primary: "193 43% 60%",
|
|
4605
|
-
floatShadow: "220 20% 8%"
|
|
4606
|
-
}
|
|
4607
|
-
};
|
|
4608
|
-
var solarizedDark = {
|
|
4609
|
-
name: "Solarized Dark",
|
|
4610
|
-
mode: "dark",
|
|
4611
|
-
colors: {
|
|
4612
|
-
bg: "192 81% 8%",
|
|
4613
|
-
surface: "192 81% 11%",
|
|
4614
|
-
surfaceAlt: "192 60% 13%",
|
|
4615
|
-
panelHeader: "192 60% 16%",
|
|
4616
|
-
tabBar: "192 70% 10%",
|
|
4617
|
-
tabActive: "192 81% 11%",
|
|
4466
|
+
);
|
|
4467
|
+
var sepiaLight = createTheme(
|
|
4468
|
+
"Sepia",
|
|
4469
|
+
"light",
|
|
4470
|
+
{ hue: 35, sat: 35, light: 94 },
|
|
4471
|
+
{ hue: 18, sat: 60, light: 42 }
|
|
4472
|
+
);
|
|
4473
|
+
var mintLight = createTheme(
|
|
4474
|
+
"Mint",
|
|
4475
|
+
"light",
|
|
4476
|
+
{ hue: 150, sat: 20 },
|
|
4477
|
+
{ hue: 162, sat: 63, light: 35 }
|
|
4478
|
+
);
|
|
4479
|
+
var lavenderLight = createTheme(
|
|
4480
|
+
"Lavender",
|
|
4481
|
+
"light",
|
|
4482
|
+
{ hue: 260, sat: 20 },
|
|
4483
|
+
{ hue: 262, sat: 52, light: 50 }
|
|
4484
|
+
);
|
|
4485
|
+
var vsCodeDark = createTheme(
|
|
4486
|
+
"VS Code Dark",
|
|
4487
|
+
"dark",
|
|
4488
|
+
{ hue: 222, sat: 47, light: 7 },
|
|
4489
|
+
{ hue: 217, sat: 91, light: 70 },
|
|
4490
|
+
{ text: "210 40% 96%", floatShadow: "0 0% 0%" }
|
|
4491
|
+
);
|
|
4492
|
+
var draculaDark = createTheme(
|
|
4493
|
+
"Dracula Dark",
|
|
4494
|
+
"dark",
|
|
4495
|
+
{ hue: 231, sat: 15, light: 14 },
|
|
4496
|
+
{ hue: 265, sat: 90, light: 72 },
|
|
4497
|
+
{ text: "60 30% 92%" }
|
|
4498
|
+
);
|
|
4499
|
+
var nordDark = createTheme(
|
|
4500
|
+
"Nord Dark",
|
|
4501
|
+
"dark",
|
|
4502
|
+
{ hue: 220, sat: 16, light: 16 },
|
|
4503
|
+
{ hue: 193, sat: 43, light: 60 },
|
|
4504
|
+
{ text: "219 28% 88%" }
|
|
4505
|
+
);
|
|
4506
|
+
var solarizedDark = createTheme(
|
|
4507
|
+
"Solarized Dark",
|
|
4508
|
+
"dark",
|
|
4509
|
+
{ hue: 192, sat: 81, light: 8 },
|
|
4510
|
+
{ hue: 175, sat: 59, light: 55 },
|
|
4511
|
+
{
|
|
4618
4512
|
tabText: "180 8% 65%",
|
|
4619
|
-
tabTextActive: "175 59% 55%",
|
|
4620
4513
|
text: "44 87% 94%",
|
|
4621
4514
|
textSecondary: "180 8% 68%",
|
|
4622
4515
|
textMuted: "194 14% 50%",
|
|
4623
|
-
border: "192 50% 24%",
|
|
4624
|
-
splitter: "192 50% 16%",
|
|
4625
|
-
splitterHover: "175 59% 50%",
|
|
4626
|
-
hover: "192 60% 15%",
|
|
4627
|
-
primary: "175 59% 55%",
|
|
4628
4516
|
floatShadow: "192 60% 3%"
|
|
4629
4517
|
}
|
|
4630
|
-
|
|
4631
|
-
var midnightDark =
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
hover: "225 26% 18%",
|
|
4650
|
-
primary: "210 60% 65%",
|
|
4651
|
-
floatShadow: "225 30% 4%"
|
|
4652
|
-
}
|
|
4653
|
-
};
|
|
4654
|
-
var forestDark = {
|
|
4655
|
-
name: "Forest Dark",
|
|
4656
|
-
mode: "dark",
|
|
4657
|
-
colors: {
|
|
4658
|
-
bg: "160 18% 9%",
|
|
4659
|
-
surface: "160 16% 12%",
|
|
4660
|
-
surfaceAlt: "160 14% 14%",
|
|
4661
|
-
panelHeader: "160 14% 17%",
|
|
4662
|
-
tabBar: "160 16% 11%",
|
|
4663
|
-
tabActive: "160 16% 12%",
|
|
4664
|
-
tabText: "155 10% 65%",
|
|
4665
|
-
tabTextActive: "152 50% 55%",
|
|
4666
|
-
text: "150 15% 90%",
|
|
4667
|
-
textSecondary: "155 10% 68%",
|
|
4668
|
-
textMuted: "155 8% 50%",
|
|
4669
|
-
border: "160 14% 24%",
|
|
4670
|
-
splitter: "160 14% 18%",
|
|
4671
|
-
splitterHover: "152 50% 48%",
|
|
4672
|
-
hover: "160 14% 16%",
|
|
4673
|
-
primary: "152 50% 55%",
|
|
4674
|
-
floatShadow: "160 18% 3%"
|
|
4675
|
-
}
|
|
4676
|
-
};
|
|
4677
|
-
var slateDark = {
|
|
4678
|
-
name: "Slate Dark",
|
|
4679
|
-
mode: "dark",
|
|
4680
|
-
colors: {
|
|
4681
|
-
bg: "215 12% 11%",
|
|
4682
|
-
surface: "215 10% 14%",
|
|
4683
|
-
surfaceAlt: "215 9% 16%",
|
|
4684
|
-
panelHeader: "215 9% 19%",
|
|
4685
|
-
tabBar: "215 10% 13%",
|
|
4686
|
-
tabActive: "215 10% 14%",
|
|
4687
|
-
tabText: "210 8% 65%",
|
|
4688
|
-
tabTextActive: "205 40% 62%",
|
|
4689
|
-
text: "210 15% 90%",
|
|
4690
|
-
textSecondary: "210 8% 68%",
|
|
4691
|
-
textMuted: "210 6% 50%",
|
|
4692
|
-
border: "215 9% 24%",
|
|
4693
|
-
splitter: "215 9% 20%",
|
|
4694
|
-
splitterHover: "205 40% 52%",
|
|
4695
|
-
hover: "215 9% 18%",
|
|
4696
|
-
primary: "205 40% 62%",
|
|
4697
|
-
floatShadow: "215 12% 4%"
|
|
4698
|
-
}
|
|
4699
|
-
};
|
|
4518
|
+
);
|
|
4519
|
+
var midnightDark = createTheme(
|
|
4520
|
+
"Midnight Blue",
|
|
4521
|
+
"dark",
|
|
4522
|
+
{ hue: 225, sat: 30 },
|
|
4523
|
+
{ hue: 210, sat: 60, light: 65 }
|
|
4524
|
+
);
|
|
4525
|
+
var forestDark = createTheme(
|
|
4526
|
+
"Forest Dark",
|
|
4527
|
+
"dark",
|
|
4528
|
+
{ hue: 160, sat: 18, light: 9 },
|
|
4529
|
+
{ hue: 152, sat: 50, light: 55 }
|
|
4530
|
+
);
|
|
4531
|
+
var slateDark = createTheme(
|
|
4532
|
+
"Slate Dark",
|
|
4533
|
+
"dark",
|
|
4534
|
+
{ hue: 215, sat: 12, light: 11 },
|
|
4535
|
+
{ hue: 205, sat: 40, light: 62 }
|
|
4536
|
+
);
|
|
4700
4537
|
var themes = {
|
|
4701
4538
|
// Light
|
|
4702
4539
|
vsCodeLight,
|
|
@@ -6169,6 +6006,7 @@ export {
|
|
|
6169
6006
|
countPanels,
|
|
6170
6007
|
createDefaultState,
|
|
6171
6008
|
createPreventableEvent,
|
|
6009
|
+
createTheme,
|
|
6172
6010
|
defaultResourceStrings,
|
|
6173
6011
|
deserialize,
|
|
6174
6012
|
detectPanelEdge,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@widgetstools/dock-manager-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Zero-dependency layout manager supporting tabs, splits, floating windows, and auto-hide panels. Framework-agnostic core.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"LICENSE"
|
|
26
26
|
],
|
|
27
27
|
"scripts": {
|
|
28
|
-
"build": "npx tsup src/index.ts --format esm,cjs --dts --clean &&
|
|
28
|
+
"build": "npx tsup src/index.ts --format esm,cjs --dts --clean && node -e \"const fs=require('fs');fs.cpSync('src/styles','dist/styles',{recursive:true})\"",
|
|
29
29
|
"dev": "npx tsup src/index.ts --format esm,cjs --dts --watch"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
@@ -57,4 +57,4 @@
|
|
|
57
57
|
"access": "public"
|
|
58
58
|
},
|
|
59
59
|
"sideEffects": false
|
|
60
|
-
}
|
|
60
|
+
}
|