@wildwinter/app-shell 0.35.1 → 0.36.0

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 CHANGED
@@ -335,7 +335,11 @@ var openVar = { nav: "--nav-open-w", inspector: "--insp-open-w" };
335
335
  var collapseClass = { nav: "no-nav", inspector: "no-inspector" };
336
336
  function mountPaneShell(host, opts) {
337
337
  const cfg = { nav: opts.nav, inspector: opts.inspector };
338
- const open = { nav: opts.initial?.open?.nav ?? true, inspector: opts.initial?.open?.inspector ?? true };
338
+ const offered = (side) => cfg[side].offered !== false;
339
+ const open = {
340
+ nav: offered("nav") && (opts.initial?.open?.nav ?? true),
341
+ inspector: offered("inspector") && (opts.initial?.open?.inspector ?? true)
342
+ };
339
343
  const width = { ...opts.initial?.width ?? {} };
340
344
  const el2 = (tag, cls) => {
341
345
  const n = document.createElement(tag);
@@ -365,6 +369,8 @@ function mountPaneShell(host, opts) {
365
369
  const root = el2("div", "pane-shell");
366
370
  root.append(topbar, panes);
367
371
  host.append(root);
372
+ if (!offered("nav")) navToggle.remove();
373
+ if (!offered("inspector")) inspToggle.remove();
368
374
  function applyToggleGlyph(side, button) {
369
375
  const isOpen = open[side];
370
376
  button.textContent = side === "nav" ? isOpen ? "\u2039" : "\u203A" : isOpen ? "\u203A" : "\u2039";
@@ -381,8 +387,8 @@ function mountPaneShell(host, opts) {
381
387
  panes.style.setProperty(openVar.inspector, width.inspector !== void 0 ? `${width.inspector}px` : cfg.inspector.defaultWidth);
382
388
  applyToggleGlyph("nav", navToggle);
383
389
  applyToggleGlyph("inspector", inspToggle);
384
- navResizer.style.display = cfg.nav.resizable === false ? "none" : "";
385
- inspResizer.style.display = cfg.inspector.resizable === false ? "none" : "";
390
+ navResizer.style.display = cfg.nav.resizable === false || !offered("nav") ? "none" : "";
391
+ inspResizer.style.display = cfg.inspector.resizable === false || !offered("inspector") ? "none" : "";
386
392
  }
387
393
  const snapshot = () => ({ open: { ...open }, width: { ...width } });
388
394
  const persist = () => opts.onChange?.(snapshot());
@@ -393,7 +399,7 @@ function mountPaneShell(host, opts) {
393
399
  persist();
394
400
  }
395
401
  function togglePane(side) {
396
- setPaneOpen(side, !open[side]);
402
+ if (offered(side)) setPaneOpen(side, !open[side]);
397
403
  }
398
404
  function resetWidths() {
399
405
  delete width.nav;