@flyingrobots/bijou-tui 4.2.0 → 4.4.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.
Files changed (66) hide show
  1. package/README.md +52 -617
  2. package/dist/app-frame-actions.d.ts.map +1 -1
  3. package/dist/app-frame-actions.js +4 -1
  4. package/dist/app-frame-actions.js.map +1 -1
  5. package/dist/app-frame-i18n.d.ts.map +1 -1
  6. package/dist/app-frame-i18n.js +4 -0
  7. package/dist/app-frame-i18n.js.map +1 -1
  8. package/dist/app-frame-render.d.ts +11 -9
  9. package/dist/app-frame-render.d.ts.map +1 -1
  10. package/dist/app-frame-render.js +102 -39
  11. package/dist/app-frame-render.js.map +1 -1
  12. package/dist/app-frame-types.d.ts +3 -0
  13. package/dist/app-frame-types.d.ts.map +1 -1
  14. package/dist/app-frame-types.js.map +1 -1
  15. package/dist/app-frame.d.ts +27 -1
  16. package/dist/app-frame.d.ts.map +1 -1
  17. package/dist/app-frame.js +244 -63
  18. package/dist/app-frame.js.map +1 -1
  19. package/dist/canvas.d.ts.map +1 -1
  20. package/dist/canvas.js +25 -4
  21. package/dist/canvas.js.map +1 -1
  22. package/dist/command-palette.d.ts +5 -3
  23. package/dist/command-palette.d.ts.map +1 -1
  24. package/dist/command-palette.js +5 -3
  25. package/dist/command-palette.js.map +1 -1
  26. package/dist/css/text-style.d.ts +6 -0
  27. package/dist/css/text-style.d.ts.map +1 -1
  28. package/dist/css/text-style.js +59 -15
  29. package/dist/css/text-style.js.map +1 -1
  30. package/dist/flex.d.ts.map +1 -1
  31. package/dist/flex.js +28 -4
  32. package/dist/flex.js.map +1 -1
  33. package/dist/focus-area.d.ts.map +1 -1
  34. package/dist/focus-area.js +18 -3
  35. package/dist/focus-area.js.map +1 -1
  36. package/dist/index.d.ts +1 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/notification.d.ts.map +1 -1
  40. package/dist/notification.js +56 -16
  41. package/dist/notification.js.map +1 -1
  42. package/dist/overlay.d.ts.map +1 -1
  43. package/dist/overlay.js +103 -21
  44. package/dist/overlay.js.map +1 -1
  45. package/dist/pipeline/middleware/grayscale.d.ts +3 -0
  46. package/dist/pipeline/middleware/grayscale.d.ts.map +1 -1
  47. package/dist/pipeline/middleware/grayscale.js +63 -10
  48. package/dist/pipeline/middleware/grayscale.js.map +1 -1
  49. package/dist/pipeline/pipeline.d.ts +7 -0
  50. package/dist/pipeline/pipeline.d.ts.map +1 -1
  51. package/dist/pipeline/pipeline.js.map +1 -1
  52. package/dist/runtime.d.ts.map +1 -1
  53. package/dist/runtime.js +33 -1
  54. package/dist/runtime.js.map +1 -1
  55. package/dist/screen.d.ts +5 -1
  56. package/dist/screen.d.ts.map +1 -1
  57. package/dist/screen.js +6 -2
  58. package/dist/screen.js.map +1 -1
  59. package/dist/shell-quit.d.ts +1 -1
  60. package/dist/shell-quit.d.ts.map +1 -1
  61. package/dist/shell-quit.js +14 -3
  62. package/dist/shell-quit.js.map +1 -1
  63. package/dist/transition-shaders.d.ts.map +1 -1
  64. package/dist/transition-shaders.js +6 -1
  65. package/dist/transition-shaders.js.map +1 -1
  66. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-actions.d.ts","sourceRoot":"","sources":["../src/app-frame-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-frame-actions.d.ts","sourceRoot":"","sources":["../src/app-frame-actions.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,9 @@ export function applyFrameAction(action, model, options, pagesById) {
33
33
  activePage,
34
34
  pageModel: model.pageModels[model.activePageId],
35
35
  });
36
- if (settings == null || settings.sections.every((section) => section.rows.length === 0)) {
36
+ const hasStockShellThemeSettings = (options.shellThemes?.length ?? 0) > 1;
37
+ if (!hasStockShellThemeSettings
38
+ && (settings == null || settings.sections.every((section) => section.rows.length === 0))) {
37
39
  return [model, []];
38
40
  }
39
41
  const opening = !model.settingsOpen;
@@ -210,6 +212,7 @@ export function scrollFocusedPane(model, action, pagesById, options) {
210
212
  scrollByPane: model.scrollByPage[pageId] ?? {},
211
213
  visibility: model.minimizedByPage[pageId] ?? createPanelVisibilityState(),
212
214
  dockState: model.dockStateByPage[pageId] ?? createPanelDockState(),
215
+ frameBackgroundToken: undefined,
213
216
  });
214
217
  const paneRect = resolved.paneRects.get(focusedPaneId);
215
218
  if (paneRect == null || paneRect.width <= 0 || paneRect.height <= 0)
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-actions.js","sourceRoot":"","sources":["../src/app-frame-actions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAgB,MAAM,qBAAqB,CAAC;AAElE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGlF,IAAI,yBAAyB,GAAmB,IAAI,CAAC;AAErD,SAAS,+BAA+B,CAAC,MAAkB,EAAE,KAAa,EAAE,MAAc;IACxF,MAAM,OAAO,GAAG,yBAAyB,CAAC;IAC1C,yBAAyB,GAAG,wBAAwB,CAClD,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QACrE,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CACjC,CAAC;IACF,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,gBAAgB,CAC9B,MAAmB,EACnB,KAAyC,EACzC,OAA+C,EAC/C,SAAiD;IAEjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,aAAa;YAChB,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAClC,KAAK;gBACL,UAAU;gBACV,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAE;aACjD,CAAC,CAAC;YACH,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxF,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;YACpC,OAAO,CAAC;oBACN,GAAG,KAAK;oBACR,YAAY,EAAE,OAAO;oBACrB,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB;oBAC1D,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe;oBACpD,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB;oBACtE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC1C,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;oBAC5C,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc;oBAC1D,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB;oBACxE,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB;oBACpE,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB;iBACnE,EAAE,EAAE,CAAC,CAAC;QACT,CAAC;QACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,CAAC;oBACN,GAAG,KAAK;oBACR,sBAAsB,EAAE,CAAC,KAAK,CAAC,sBAAsB;oBACrD,yBAAyB,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;oBAC7F,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,SAAS;oBACzB,qBAAqB,EAAE,SAAS;oBAChC,mBAAmB,EAAE,SAAS;oBAC9B,kBAAkB,EAAE,SAAS;oBAC7B,eAAe,EAAE,KAAK;iBACvB,EAAE,EAAE,CAAC,CAAC;QACT,CAAC;QACD,KAAK,UAAU;YACb,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,UAAU;YACb,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,KAAK,WAAW;YACd,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,WAAW;YACd,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,KAAK,cAAc,CAAC;QACpB,KAAK,aAAa;YAChB,wEAAwE;YACxE,sEAAsE;YACtE,qEAAqE;YACrE,uEAAuE;YACvE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,KAAK,iBAAiB;YACpB,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,KAAK,iBAAiB;YACpB,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAkB,CAAC;YAC9D,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ,CAAC;QACd,KAAK,aAAa,CAAC;QACnB,KAAK,cAAc;YACjB,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,KAAK,eAAe,CAAC;QACrB,KAAK,mBAAmB;YACtB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAyC,EACzC,OAA+C,EAC/C,SAAiD;IAEjD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,oBAAoB,KAAK,KAAK,CAAC;IACtE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC5C,KAAK;QACL,UAAU;QACV,SAAS;QACT,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;KACjD,CAAC,CAAC;IACH,OAAO,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,oBAAoB,KAAK,KAAK,CAAC;AACpE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,SAAS,CACvB,KAAyC,EACzC,KAAa,EACb,SAAiD,EACjD,OAA+C;IAE/C,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;IAChF,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAE,CAAC;IAEzC,IAAI,MAAM,KAAK,KAAK,CAAC,YAAY;QAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC;IAC9D,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB;QACjD,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAC7C,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAEvB,MAAM,aAAa,GAAG,gBAAgB,IAAI,IAAI,IAAI,gBAAgB,KAAK,MAAM,CAAC;IAC9E,MAAM,cAAc,GAAG,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC;IAEtD,yEAAyE;IACzE,wDAAwD;IACxD,MAAM,EAAE,GAAG,aAAa;QACtB,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,IAAI,QAAQ,EAAE;aACxC,GAAG,CAAC,UAAU,EAAE;YACf,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,CAAC;YACP,EAAE,EAAE,CAAC;YACL,QAAQ,EAAE,OAAO,CAAC,kBAAkB,IAAI,GAAG;YAC3C,IAAI,EAAE,OAAO,CAAC,cAAc;SAC7B,CAAC;aACD,KAAK,EAAE,CAAC;QACX,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,UAAU,GAAG,EAAE,EAAE,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,IAAI,GAAG,CAAC;IAEhF,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACnC,GAAG,KAAK;QACR,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,KAAK,CAAC,YAAY;QAClC,gBAAgB;QAChB,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,oBAAoB,EAAE,cAAc;QACpC,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,SAAS;QAC5B,kBAAkB,EAAE,EAAE;QACtB,uBAAuB,EAAE,EAAE,EAAE,IAAI,EAAE;KACpC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAEtB,IAAI,aAAa,EAAE,CAAC;QAClB,sEAAsE;QACtE,iEAAiE;QACjE,MAAM,GAAG,GAA2B,uBAAuB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACxF,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CACvB,KAAyC,EACzC,KAAa,EACb,SAAiD;IAEjD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC;IAChD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC,CAAC,CAAC;IACnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAE,CAAC;IAC/B,OAAO;QACL,GAAG,KAAK;QACR,iBAAiB,EAAE;YACjB,GAAG,KAAK,CAAC,iBAAiB;YAC1B,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,iBAAiB,CAC/B,KAAyC,EACzC,MAGC,EACD,SAAiD,EACjD,OAA+C;IAE/C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,aAAa,CAC5B,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,IAAI,EACV,OAAO,CAAC,WAAW,IAAI,CAAC,EACxB,OAAO,CAAC,cAAc,IAAI,CAAC,CAC5B,CAAC;IACF,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE;QACrD,KAAK;QACL,MAAM;QACN,aAAa;QACb,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;QAC9C,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,0BAA0B,EAAE;QACzE,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,oBAAoB,EAAE;KACnE,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAElF,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAEnC,MAAM,cAAc,GAAG,+BAA+B,CACpD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAChD,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,MAAM,CAChB,CAAC;IACF,IAAI,KAAK,GAAG,8BAA8B,CAAC,cAAc,EAAE;QACzD,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ;KAC1C,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5E,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,WAAW;YACd,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,aAAa;YAChB,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpC,MAAM;QACR,KAAK,SAAS;YACZ,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,WAAW;YACd,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,KAAK;YACR,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM;QACR,KAAK,QAAQ;YACX,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,aAAa;YAChB,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM;QACR,KAAK,cAAc;YACjB,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpD,OAAO;QACL,GAAG,KAAK;QACR,YAAY,EAAE;YACZ,GAAG,KAAK,CAAC,YAAY;YACrB,CAAC,MAAM,CAAC,EAAE;gBACR,GAAG,UAAU;gBACb,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;aAC1D;SACF;KACF,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CACjC,KAAyC,EACzC,SAAiD;IAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACpC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,0BAA0B,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAEjE,+EAA+E;IAC/E,IAAI,UAAU,GAAG,aAAa,CAAC;IAC/B,IAAI,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAClE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;QAC7D,iBAAiB,EAAE,EAAE,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE;KACxE,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CACjC,KAAyC,EACzC,UAAkD;IAElD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,wBAAwB,EAAE,CAAC;IAChF,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAEpD,mDAAmD;IACnD,IAAI,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,0BAA0B,EAAE,CAAC;IAC/E,IAAI,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1E,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,mBAAmB,EAAE,EAAE,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;QACrE,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE;KACpE,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAC3B,KAAyC,EACzC,SAAwB,EACxB,SAAiD;IAEjD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/D,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,oBAAoB,EAAE,CAAC;IAC1E,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAE3G,OAAO;QACL,GAAG,KAAK;QACR,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,kBAAkB,CAChC,KAAyC,EACzC,MAAc,EACd,SAAiD;IAEjD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IACpC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IACvE,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,UAAU,GAAoC,EAAE,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEf,OAAO;QACL,GAAG,KAAK;QACR,iBAAiB,EAAE;YACjB,GAAG,KAAK,CAAC,iBAAiB;YAC1B,CAAC,MAAM,CAAC,EAAE,OAAO;SAClB;QACD,YAAY,EAAE;YACZ,GAAG,KAAK,CAAC,YAAY;YACrB,CAAC,MAAM,CAAC,EAAE,UAAU;SACrB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAM,UAAkB,EAAE,UAAkB;IACjF,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACpB,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC5B,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAiB,CAAC,CAAC,CAAC;YAC/E,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAChC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;YAExD,IAAI,CAAC,YAAY,CAAC;gBAChB,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,WAAW;gBACrB,UAAU;gBACV,EAAE;gBACF,SAAS;aACK,CAAC,CAAC,CAAC;YAEnB,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAiB,CAAC,CAAC,CAAC;gBAC/E,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"app-frame-actions.js","sourceRoot":"","sources":["../src/app-frame-actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-i18n.d.ts","sourceRoot":"","sources":["../src/app-frame-i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAInE,eAAO,MAAM,kBAAkB,EAAE,WA4BhC,CAAC;AAkBF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GAC7C,MAAM,CAUR;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAEhF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAE9E;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAC9E,MAAM,CAER;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,MAAM,EAAE,yBAAyB,GAChC,MAAM,CAQR;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAgBpB"}
1
+ {"version":3,"file":"app-frame-i18n.d.ts","sourceRoot":"","sources":["../src/app-frame-i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAInE,eAAO,MAAM,kBAAkB,EAAE,WAgChC,CAAC;AAkBF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GAC7C,MAAM,CAUR;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAEhF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAE9E;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAC9E,MAAM,CAER;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,MAAM,EAAE,yBAAyB,GAChC,MAAM,CAQR;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAgBpB"}
@@ -7,6 +7,10 @@ export const FRAME_I18N_CATALOG = {
7
7
  message('search.title', 'Search'),
8
8
  message('settings.title', 'Settings'),
9
9
  message('settings.footer', 'F2/Esc close • ↑/↓ rows • Enter toggle • / search • q quit'),
10
+ message('settings.section.shell', 'Shell'),
11
+ message('settings.shellTheme.label', 'Shell theme'),
12
+ message('settings.shellTheme.description', 'Current theme: {theme}. Options: {options}.'),
13
+ message('settings.shellTheme.feedback', 'Shell theme set to {theme}.'),
10
14
  message('notifications.title', 'Notifications'),
11
15
  message('notifications.footer', 'Shift+N close • f filter • j/k scroll • q quit'),
12
16
  message('notifications.cue.liveArchived', 'notices:{liveCount}+{archivedCount}'),
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-i18n.js","sourceRoot":"","sources":["../src/app-frame-i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-frame-i18n.js","sourceRoot":"","sources":["../src/app-frame-i18n.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Recursive tree renderer, page content, maximized pane, header/help lines,
5
5
  * transition shader, and surface/string bridge helpers.
6
6
  */
7
- import { type BijouContext, type Surface } from '@flyingrobots/bijou';
7
+ import { type BijouContext, type Surface, type TokenValue } from '@flyingrobots/bijou';
8
8
  import type { FrameLayoutNode, FramePage, CreateFramedAppOptions } from './app-frame.js';
9
9
  import type { InternalFrameModel, RenderContext, RenderResult } from './app-frame-types.js';
10
10
  import type { LayoutRect } from './layout-rect.js';
@@ -27,20 +27,19 @@ export interface FramePaneGeometryResult {
27
27
  /** Recursively render a layout tree node (pane, split, or grid) into a rect. */
28
28
  export declare function renderFrameNode<PageModel, Msg>(node: FrameLayoutNode, rect: LayoutRect, ctx: RenderContext<PageModel, Msg>): RenderResult;
29
29
  /** Render a placeholder for a grid area that has no matching cell definition. */
30
- export declare function renderMissingGridCell(areaName: string, rect: LayoutRect): RenderResult;
30
+ export declare function renderMissingGridCell(areaName: string, rect: LayoutRect, frameBackgroundToken?: TokenValue): RenderResult;
31
31
  /** Render a page's layout tree within the frame body rect. */
32
- export declare function renderPageContent<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>): RenderResult;
32
+ export declare function renderPageContent<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, ctx?: BijouContext): RenderResult;
33
33
  /** Paint a page's layout tree directly into an existing target surface. */
34
- export declare function renderPageContentInto<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, target: Surface, offsetRow?: number, offsetCol?: number): FramePaneGeometryResult;
34
+ export declare function renderPageContentInto<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, target: Surface, offsetRow?: number, offsetCol?: number, scratchPool?: FramePaneScratchPool, ctx?: BijouContext): FramePaneGeometryResult;
35
35
  /** Render only the maximized pane at the full body rect. */
36
- export declare function renderMaximizedPane<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, maximizedPaneId: string): RenderResult;
36
+ export declare function renderMaximizedPane<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, maximizedPaneId: string, scratchPool?: FramePaneScratchPool, ctx?: BijouContext): RenderResult;
37
37
  /** Paint only the maximized pane directly into an existing target surface. */
38
- export declare function renderMaximizedPaneInto<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, maximizedPaneId: string, target: Surface, offsetRow?: number, offsetCol?: number): FramePaneGeometryResult;
38
+ export declare function renderMaximizedPaneInto<PageModel, Msg>(pageId: string, model: InternalFrameModel<PageModel, Msg>, bodyRect: LayoutRect, pagesById: Map<string, FramePage<PageModel, Msg>>, maximizedPaneId: string, target: Surface, offsetRow?: number, offsetCol?: number, scratchPool?: FramePaneScratchPool, ctx?: BijouContext): FramePaneGeometryResult;
39
39
  /** Resolve the top header line plus clickable tab target geometry. */
40
- export declare function resolveHeaderLine<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, options: CreateFramedAppOptions<PageModel, Msg>, pagesById: Map<string, FramePage<PageModel, Msg>>): FrameHeaderRenderResult;
40
+ export declare function resolveHeaderLine<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, options: CreateFramedAppOptions<PageModel, Msg>, pagesById: Map<string, FramePage<PageModel, Msg>>, scratch?: Surface, ctx?: BijouContext): FrameHeaderRenderResult;
41
41
  /** Render the footer status line showing mode, focused pane, and key hints. */
42
- export declare function renderHelpLine<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, activeLayer: FrameLayerDescriptor, i18n: CreateFramedAppOptions<PageModel, Msg>['i18n'], notificationCue?: string): Surface;
43
- /**
42
+ export declare function renderHelpLine<PageModel, Msg>(model: InternalFrameModel<PageModel, Msg>, activeLayer: FrameLayerDescriptor, i18n: CreateFramedAppOptions<PageModel, Msg>['i18n'], notificationCue?: string, scratch?: Surface, ctx?: BijouContext): Surface;
44
43
  /**
45
44
  * Apply a transition shader to blend between the previous and next page views.
46
45
  *
@@ -50,4 +49,7 @@ export declare function renderHelpLine<PageModel, Msg>(model: InternalFrameModel
50
49
  export declare function renderTransition(prev: Surface, next: Surface, style: PageTransition, progress: number, width: number, height: number, ctx: BijouContext, frame?: number): Surface;
51
50
  export declare function framePaneOutputToSurface(output: ViewOutput, width: number, height: number, scratch?: Surface): Surface;
52
51
  export declare function blockSurface(content: string, width: number, height: number): Surface;
52
+ /** Per-size scratch surface pool for pane rendering. */
53
+ export type FramePaneScratchPool = Map<string, Surface>;
54
+ export declare function createFramePaneScratchPool(): FramePaneScratchPool;
53
55
  //# sourceMappingURL=app-frame-render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-frame-render.d.ts","sourceRoot":"","sources":["../src/app-frame-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-frame-render.d.ts","sourceRoot":"","sources":["../src/app-frame-render.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Recursive tree renderer, page content, maximized pane, header/help lines,
5
5
  * transition shader, and surface/string bridge helpers.
6
6
  */
7
- import { createSurface, darken, hexToRgb, lighten, mix, parseAnsiToSurface, saturate, resolveSafeCtx, } from '@flyingrobots/bijou';
7
+ import { createSurface, darken, hexToRgb, lighten, mix, parseAnsiToSurface, resolveSafeCtx, saturate, } from '@flyingrobots/bijou';
8
8
  import { TRANSITION_SHADERS } from './transition-shaders.js';
9
9
  import { fitBlock } from './layout-utils.js';
10
10
  import { splitPaneLayout } from './split-pane.js';
@@ -16,9 +16,8 @@ import { visibleLength } from './viewport.js';
16
16
  import { helpShort } from './help.js';
17
17
  import { findPaneNode, isPaneMinimized, mergeMaps, offsetRect, fitLine, } from './app-frame-utils.js';
18
18
  import { normalizeViewOutput, normalizeViewOutputInto } from './view-output.js';
19
- import { createStyledTextSurfaceWithBCSS } from './css/text-style.js';
19
+ import { paintStyledTextSurfaceWithBCSS } from './css/text-style.js';
20
20
  import { frameModeLabel } from './app-frame-i18n.js';
21
- const framePaneScratchBySize = new Map();
22
21
  function relativeLuminance(hex) {
23
22
  const [red, green, blue] = hexToRgb(hex);
24
23
  const r = srgbChannelToLinear(red);
@@ -103,15 +102,18 @@ function paintActiveHeaderTab(surface, tabTargets, activePageId, ctx, tokenOverr
103
102
  const token = tokenOverride ?? deriveActiveHeaderTabToken(ctx, backgroundHex, baseHex);
104
103
  for (let x = activeTarget.startCol; x <= activeTarget.endCol; x++) {
105
104
  const cell = surface.get(x, 0);
106
- surface.set(x, 0, {
105
+ const nextCell = {
107
106
  ...cell,
108
107
  fg: token.hex,
109
108
  bg: token.bg ?? cell.bg,
109
+ fgRGB: token.fgRGB,
110
+ bgRGB: token.bgRGB,
110
111
  modifiers: token.modifiers == null
111
112
  ? cell.modifiers
112
113
  : Array.from(new Set([...(cell.modifiers ?? []), ...token.modifiers])),
113
114
  empty: false,
114
- });
115
+ };
116
+ surface.set(x, 0, nextCell);
115
117
  }
116
118
  }
117
119
  /** Recursively render a layout tree node (pane, split, or grid) into a rect. */
@@ -120,10 +122,10 @@ export function renderFrameNode(node, rect, ctx) {
120
122
  return { surface: createSurface(rect.width, rect.height), paneRects: new Map(), paneOrder: [] };
121
123
  }
122
124
  const surface = createSurface(rect.width, rect.height);
123
- const painted = paintFrameNodeInto(node, { row: 0, col: 0, width: rect.width, height: rect.height }, rect, ctx, surface);
125
+ const painted = paintFrameNodeInto(node, { row: 0, col: 0, width: rect.width, height: rect.height }, rect, ctx, surface, createFramePaneScratchPool());
124
126
  return { surface, paneRects: painted.paneRects, paneOrder: painted.paneOrder };
125
127
  }
126
- function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target) {
128
+ function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target, scratchPool) {
127
129
  if (localRect.width <= 0 || localRect.height <= 0) {
128
130
  return { paneRects: new Map(), paneOrder: [] };
129
131
  }
@@ -131,14 +133,15 @@ function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target) {
131
133
  // Minimized pane: render as collapsed title bar
132
134
  if (isMinimized(ctx.visibility, node.paneId)) {
133
135
  const titleBar = `[${node.paneId}] \u25b8`; // ▸
134
- target.blit(blockSurface(titleBar, localRect.width, localRect.height), localRect.col, localRect.row);
136
+ target.blit(applySurfaceBackground(blockSurface(titleBar, localRect.width, localRect.height), ctx.frameBackgroundToken), localRect.col, localRect.row);
135
137
  return {
136
138
  paneRects: new Map([[node.paneId, absoluteRect]]),
137
139
  paneOrder: [node.paneId],
138
140
  };
139
141
  }
140
142
  const prior = ctx.scrollByPane[node.paneId] ?? { x: 0, y: 0 };
141
- const contentSurface = framePaneOutputToSurface(node.render(localRect.width, localRect.height), localRect.width, localRect.height, getFramePaneScratch(localRect.width, localRect.height));
143
+ const contentSurface = framePaneOutputToSurface(node.render(localRect.width, localRect.height), localRect.width, localRect.height, getFramePaneScratch(scratchPool, localRect.width, localRect.height));
144
+ applySurfaceBackground(contentSurface, ctx.frameBackgroundToken);
142
145
  let state = createFocusAreaStateForSurface(contentSurface, {
143
146
  width: localRect.width,
144
147
  height: localRect.height,
@@ -148,7 +151,7 @@ function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target) {
148
151
  state = focusAreaScrollToX(state, prior.x);
149
152
  focusAreaSurfaceInto(contentSurface, state, target, {
150
153
  focused: node.paneId === ctx.focusedPaneId,
151
- ctx: resolveSafeCtx(),
154
+ ctx: ctx.ctx,
152
155
  id: node.paneId,
153
156
  classes: [node.paneId === ctx.focusedPaneId ? 'focused' : 'unfocused'],
154
157
  focusedGutterToken: node.focusedGutterToken,
@@ -199,8 +202,8 @@ function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target) {
199
202
  const localBRect = offsetRect(layout.paneB, localRect.row, localRect.col);
200
203
  const absoluteARect = offsetRect(layout.paneA, absoluteRect.row, absoluteRect.col);
201
204
  const absoluteBRect = offsetRect(layout.paneB, absoluteRect.row, absoluteRect.col);
202
- const a = paintFrameNodeInto(effectiveA, localARect, absoluteARect, ctx, target);
203
- const b = paintFrameNodeInto(effectiveB, localBRect, absoluteBRect, ctx, target);
205
+ const a = paintFrameNodeInto(effectiveA, localARect, absoluteARect, ctx, target, scratchPool);
206
+ const b = paintFrameNodeInto(effectiveB, localBRect, absoluteBRect, ctx, target, scratchPool);
204
207
  paintDivider(target, offsetRect(layout.divider, localRect.row, localRect.col), node.dividerChar, direction);
205
208
  return {
206
209
  paneRects: mergeMaps(a.paneRects, b.paneRects),
@@ -223,11 +226,11 @@ function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target) {
223
226
  const absoluteAreaRect = offsetRect(areaRect, absoluteRect.row, absoluteRect.col);
224
227
  const child = node.cells[areaName];
225
228
  if (child == null) {
226
- resolveSafeCtx()?.io.writeError(`createFramedApp: grid cell "${areaName}" missing in page "${ctx.pageId}" — rendering placeholder\n`);
227
- target.blit(blockSurface(`[missing grid cell: ${areaName}]`, localAreaRect.width, localAreaRect.height), localAreaRect.col, localAreaRect.row);
229
+ ctx.ctx?.io.writeError(`createFramedApp: grid cell "${areaName}" missing in page "${ctx.pageId}" — rendering placeholder\n`);
230
+ target.blit(renderMissingGridCell(areaName, localAreaRect, ctx.frameBackgroundToken).surface, localAreaRect.col, localAreaRect.row);
228
231
  continue;
229
232
  }
230
- const rendered = paintFrameNodeInto(child, localAreaRect, absoluteAreaRect, ctx, target);
233
+ const rendered = paintFrameNodeInto(child, localAreaRect, absoluteAreaRect, ctx, target, scratchPool);
231
234
  for (const [paneId, paneRect] of rendered.paneRects.entries()) {
232
235
  if (paneRects.has(paneId)) {
233
236
  throw new Error(`createFramedApp: duplicate paneId "${paneId}" in rendered layout`);
@@ -245,21 +248,24 @@ function paintFrameNodeInto(node, localRect, absoluteRect, ctx, target) {
245
248
  return { paneRects, paneOrder };
246
249
  }
247
250
  /** Render a placeholder for a grid area that has no matching cell definition. */
248
- export function renderMissingGridCell(areaName, rect) {
251
+ export function renderMissingGridCell(areaName, rect, frameBackgroundToken) {
249
252
  return {
250
- surface: blockSurface(`[missing grid cell: ${areaName}]`, rect.width, rect.height),
253
+ surface: applySurfaceBackground(blockSurface(`[missing grid cell: ${areaName}]`, rect.width, rect.height), frameBackgroundToken),
251
254
  paneRects: new Map(),
252
255
  paneOrder: [],
253
256
  };
254
257
  }
255
258
  /** Render a page's layout tree within the frame body rect. */
256
- export function renderPageContent(pageId, model, bodyRect, pagesById) {
259
+ export function renderPageContent(pageId, model, bodyRect, pagesById, ctx) {
257
260
  const surface = createSurface(bodyRect.width, bodyRect.height);
258
- const geometry = renderPageContentInto(pageId, model, bodyRect, pagesById, surface, 0, 0);
261
+ const geometry = renderPageContentInto(pageId, model, bodyRect, pagesById, surface, 0, 0, createFramePaneScratchPool(), ctx);
259
262
  return { surface, paneRects: geometry.paneRects, paneOrder: geometry.paneOrder };
260
263
  }
261
264
  /** Paint a page's layout tree directly into an existing target surface. */
262
- export function renderPageContentInto(pageId, model, bodyRect, pagesById, target, offsetRow = bodyRect.row, offsetCol = bodyRect.col) {
265
+ export function renderPageContentInto(pageId, model, bodyRect, pagesById, target, offsetRow = bodyRect.row, offsetCol = bodyRect.col, scratchPool = createFramePaneScratchPool(), ctx) {
266
+ const themeCtx = resolveRenderCtx(ctx);
267
+ const frameBackgroundToken = resolveFrameBackgroundToken(themeCtx);
268
+ fillSurfaceBackground(target, offsetCol, offsetRow, bodyRect.width, bodyRect.height, frameBackgroundToken);
263
269
  const page = pagesById.get(pageId);
264
270
  const pageModel = model.pageModels[pageId];
265
271
  const renderCtx = {
@@ -269,27 +275,33 @@ export function renderPageContentInto(pageId, model, bodyRect, pagesById, target
269
275
  scrollByPane: model.scrollByPage[pageId] ?? {},
270
276
  visibility: model.minimizedByPage[pageId] ?? createPanelVisibilityState(),
271
277
  dockState: model.dockStateByPage[pageId] ?? createPanelDockState(),
278
+ frameBackgroundToken,
279
+ ctx: themeCtx,
272
280
  };
273
- return paintFrameNodeInto(page.layout(pageModel), { row: offsetRow, col: offsetCol, width: bodyRect.width, height: bodyRect.height }, bodyRect, renderCtx, target);
281
+ return paintFrameNodeInto(page.layout(pageModel), { row: offsetRow, col: offsetCol, width: bodyRect.width, height: bodyRect.height }, bodyRect, renderCtx, target, scratchPool);
274
282
  }
275
283
  /** Render only the maximized pane at the full body rect. */
276
- export function renderMaximizedPane(pageId, model, bodyRect, pagesById, maximizedPaneId) {
284
+ export function renderMaximizedPane(pageId, model, bodyRect, pagesById, maximizedPaneId, scratchPool = createFramePaneScratchPool(), ctx) {
277
285
  const surface = createSurface(bodyRect.width, bodyRect.height);
278
- const geometry = renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maximizedPaneId, surface, 0, 0);
286
+ const geometry = renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maximizedPaneId, surface, 0, 0, scratchPool, ctx);
279
287
  return { surface, paneRects: geometry.paneRects, paneOrder: geometry.paneOrder };
280
288
  }
281
289
  /** Paint only the maximized pane directly into an existing target surface. */
282
- export function renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maximizedPaneId, target, offsetRow = bodyRect.row, offsetCol = bodyRect.col) {
290
+ export function renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maximizedPaneId, target, offsetRow = bodyRect.row, offsetCol = bodyRect.col, scratchPool = createFramePaneScratchPool(), ctx) {
291
+ const themeCtx = resolveRenderCtx(ctx);
292
+ const frameBackgroundToken = resolveFrameBackgroundToken(themeCtx);
293
+ fillSurfaceBackground(target, offsetCol, offsetRow, bodyRect.width, bodyRect.height, frameBackgroundToken);
283
294
  const page = pagesById.get(pageId);
284
295
  const pageModel = model.pageModels[pageId];
285
296
  const layoutTree = page.layout(pageModel);
286
297
  const paneNode = findPaneNode(layoutTree, maximizedPaneId);
287
298
  if (paneNode == null) {
288
299
  // Pane not found, fall back to normal rendering
289
- return renderPageContentInto(pageId, model, bodyRect, pagesById, target, offsetRow, offsetCol);
300
+ return renderPageContentInto(pageId, model, bodyRect, pagesById, target, offsetRow, offsetCol, scratchPool, ctx);
290
301
  }
291
302
  const prior = model.scrollByPage[pageId]?.[maximizedPaneId] ?? { x: 0, y: 0 };
292
- const contentSurface = framePaneOutputToSurface(paneNode.render(bodyRect.width, bodyRect.height), bodyRect.width, bodyRect.height, getFramePaneScratch(bodyRect.width, bodyRect.height));
303
+ const contentSurface = framePaneOutputToSurface(paneNode.render(bodyRect.width, bodyRect.height), bodyRect.width, bodyRect.height, getFramePaneScratch(scratchPool, bodyRect.width, bodyRect.height));
304
+ applySurfaceBackground(contentSurface, frameBackgroundToken);
293
305
  let state = createFocusAreaStateForSurface(contentSurface, {
294
306
  width: bodyRect.width,
295
307
  height: bodyRect.height,
@@ -299,7 +311,7 @@ export function renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maxi
299
311
  state = focusAreaScrollToX(state, prior.x);
300
312
  focusAreaSurfaceInto(contentSurface, state, target, {
301
313
  focused: true,
302
- ctx: resolveSafeCtx(),
314
+ ctx: themeCtx,
303
315
  id: maximizedPaneId,
304
316
  classes: ['focused', 'maximized'],
305
317
  focusedGutterToken: paneNode.focusedGutterToken,
@@ -311,8 +323,9 @@ export function renderMaximizedPaneInto(pageId, model, bodyRect, pagesById, maxi
311
323
  };
312
324
  }
313
325
  /** Resolve the top header line plus clickable tab target geometry. */
314
- export function resolveHeaderLine(model, options, pagesById) {
315
- const ctx = resolveSafeCtx();
326
+ export function resolveHeaderLine(model, options, pagesById, scratch, ctx) {
327
+ const renderCtx = resolveRenderCtx(ctx);
328
+ const frameBackgroundToken = resolveFrameBackgroundToken(renderCtx);
316
329
  const activePage = pagesById.get(model.activePageId);
317
330
  const activePageModel = model.pageModels[model.activePageId];
318
331
  const headerStyle = options.headerStyle?.({
@@ -343,19 +356,21 @@ export function resolveHeaderLine(model, options, pagesById) {
343
356
  return label;
344
357
  }).join(' ');
345
358
  const line = fitLine(`${title} ${tabs}`, model.columns);
346
- const surface = createStyledTextSurfaceWithBCSS(line, model.columns, ctx, {
359
+ const surface = paintStyledTextSurfaceWithBCSS(scratch, line, model.columns, renderCtx, {
347
360
  type: 'FrameHeader',
348
361
  id: 'frame-header',
349
362
  classes: [`page-${model.activePageId}`],
350
363
  });
351
- paintActiveHeaderTab(surface, tabTargets, model.activePageId, ctx, headerStyle?.activeTabToken);
364
+ paintActiveHeaderTab(surface, tabTargets, model.activePageId, renderCtx, headerStyle?.activeTabToken);
365
+ applySurfaceBackground(surface, frameBackgroundToken);
352
366
  return {
353
367
  surface,
354
368
  tabTargets,
355
369
  };
356
370
  }
357
371
  /** Render the footer status line showing mode, focused pane, and key hints. */
358
- export function renderHelpLine(model, activeLayer, i18n, notificationCue) {
372
+ export function renderHelpLine(model, activeLayer, i18n, notificationCue, scratch, ctx) {
373
+ const renderCtx = resolveRenderCtx(ctx);
359
374
  const mode = activeLayer.kind === 'search' || activeLayer.kind === 'command-palette'
360
375
  ? 'PALETTE'
361
376
  : activeLayer.kind === 'help'
@@ -388,13 +403,12 @@ export function renderHelpLine(model, activeLayer, i18n, notificationCue) {
388
403
  : `${statusWithPadding} ${hint}`;
389
404
  })()
390
405
  : ` ${status}`;
391
- return createStyledTextSurfaceWithBCSS(fitLine(line, model.columns), model.columns, resolveSafeCtx(), {
406
+ return applySurfaceBackground(paintStyledTextSurfaceWithBCSS(scratch, fitLine(line, model.columns), model.columns, renderCtx, {
392
407
  type: 'FrameHelp',
393
408
  id: 'frame-help',
394
409
  classes: [`mode-${mode.toLowerCase()}`, `page-${model.activePageId}`],
395
- });
410
+ }), resolveFrameBackgroundToken(renderCtx));
396
411
  }
397
- /**
398
412
  /**
399
413
  * Apply a transition shader to blend between the previous and next page views.
400
414
  *
@@ -425,11 +439,57 @@ export function framePaneOutputToSurface(output, width, height, scratch) {
425
439
  export function blockSurface(content, width, height) {
426
440
  return parseAnsiToSurface(fitBlock(content, width, height).join('\n'), width, height);
427
441
  }
442
+ function resolveFrameBackgroundToken(ctx) {
443
+ const primary = ctx?.surface('primary');
444
+ if (primary?.bg != null || primary?.bgRGB != null)
445
+ return primary;
446
+ const secondary = ctx?.surface('secondary');
447
+ if (secondary?.bg != null || secondary?.bgRGB != null)
448
+ return secondary;
449
+ return undefined;
450
+ }
451
+ function resolveRenderCtx(ctx) {
452
+ return ctx ?? resolveSafeCtx();
453
+ }
454
+ function fillSurfaceBackground(target, offsetCol, offsetRow, width, height, backgroundToken) {
455
+ if (backgroundToken == null || width <= 0 || height <= 0)
456
+ return;
457
+ if (backgroundToken.bg == null && backgroundToken.bgRGB == null)
458
+ return;
459
+ target.fill({
460
+ char: ' ',
461
+ bg: backgroundToken.bg,
462
+ bgRGB: backgroundToken.bgRGB,
463
+ empty: false,
464
+ }, offsetCol, offsetRow, width, height);
465
+ }
466
+ function applySurfaceBackground(surface, backgroundToken) {
467
+ if (backgroundToken == null)
468
+ return surface;
469
+ if (backgroundToken.bg == null && backgroundToken.bgRGB == null)
470
+ return surface;
471
+ for (let y = 0; y < surface.height; y++) {
472
+ for (let x = 0; x < surface.width; x++) {
473
+ const cell = surface.get(x, y);
474
+ if (cell.bg != null || cell.bgRGB != null)
475
+ continue;
476
+ surface.set(x, y, {
477
+ ...cell,
478
+ char: cell.char.length > 0 ? cell.char : ' ',
479
+ bg: backgroundToken.bg,
480
+ bgRGB: backgroundToken.bgRGB,
481
+ empty: false,
482
+ });
483
+ }
484
+ }
485
+ return surface;
486
+ }
428
487
  function paintDivider(target, rect, dividerChar, direction) {
429
488
  const unit = resolveDividerUnit(dividerChar, direction === 'row' ? '│' : '─');
430
489
  for (let y = 0; y < rect.height; y++) {
431
490
  for (let x = 0; x < rect.width; x++) {
432
- target.set(rect.col + x, rect.row + y, { char: unit, empty: false });
491
+ const existing = target.get(rect.col + x, rect.row + y);
492
+ target.set(rect.col + x, rect.row + y, { ...existing, char: unit, empty: false });
433
493
  }
434
494
  }
435
495
  }
@@ -438,12 +498,15 @@ function resolveDividerUnit(dividerChar, fallback) {
438
498
  return fallback;
439
499
  return dividerChar[0] ?? fallback;
440
500
  }
441
- function getFramePaneScratch(width, height) {
501
+ export function createFramePaneScratchPool() {
502
+ return new Map();
503
+ }
504
+ function getFramePaneScratch(pool, width, height) {
442
505
  const key = `${width}x${height}`;
443
- let scratch = framePaneScratchBySize.get(key);
506
+ let scratch = pool.get(key);
444
507
  if (scratch == null) {
445
508
  scratch = createSurface(width, height);
446
- framePaneScratchBySize.set(key, scratch);
509
+ pool.set(key, scratch);
447
510
  }
448
511
  return scratch;
449
512
  }