@design.estate/dees-catalog 9.0.0 → 9.1.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.
Files changed (38) hide show
  1. package/dist_bundle/bundle.js +2636 -2150
  2. package/dist_bundle/bundle.js.map +1 -1
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +7 -2
  5. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +56 -5
  6. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +1 -0
  7. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +62 -18
  8. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.d.ts +4 -2
  9. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.js +7 -2
  10. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.js +69 -29
  11. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.d.ts +6 -1
  12. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.d.ts +2 -0
  13. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.js +419 -83
  14. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +247 -118
  15. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +2 -2
  16. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +2 -4
  17. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +15 -4
  18. package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +2 -1
  19. package/dist_ts_web/elements/00group-harness/toolregistry.js +1 -1
  20. package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.d.ts +1 -1
  21. package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +30 -12
  22. package/dist_ts_web/elements/00theme.js +3 -1
  23. package/package.json +1 -1
  24. package/readme.md +19 -3
  25. package/readme.plan.md +97 -0
  26. package/ts_web/00_commitinfo_data.ts +1 -1
  27. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +48 -4
  28. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +62 -17
  29. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.ts +6 -1
  30. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.ts +60 -27
  31. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.ts +341 -88
  32. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +257 -125
  33. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +1 -1
  34. package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +1 -3
  35. package/ts_web/elements/00group-harness/interfaces.ts +16 -4
  36. package/ts_web/elements/00group-harness/toolregistry.ts +2 -1
  37. package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +29 -15
  38. package/ts_web/elements/00theme.ts +2 -0
@@ -153,6 +153,7 @@ let DeesContextmenu = (() => {
153
153
  // backdrop-filter drops out while an opacity/transform animation runs and
154
154
  // snaps back in at the end. Appearing directly keeps the vibrancy stable.
155
155
  contextMenu.style.visibility = 'visible';
156
+ contextMenu.focus({ preventScroll: true });
156
157
  return contextMenu;
157
158
  }
158
159
  #menuItems_accessor_storage = __runInitializers(this, _menuItems_initializers, []);
@@ -225,8 +226,10 @@ let DeesContextmenu = (() => {
225
226
  position: relative;
226
227
  }
227
228
 
228
- .menuitem:hover {
229
+ .menuitem:hover,
230
+ .menuitem:focus {
229
231
  background: var(--dees-color-active);
232
+ outline: none;
230
233
  }
231
234
 
232
235
  .menuitem.has-submenu::after {
@@ -278,7 +281,7 @@ let DeesContextmenu = (() => {
278
281
  ];
279
282
  render() {
280
283
  return html `
281
- <div class="mainbox">
284
+ <div class="mainbox" role="menu">
282
285
  ${this.menuItems.map((menuItemArg) => {
283
286
  if ('divider' in menuItemArg && menuItemArg.divider) {
284
287
  return html `<div class="menu-divider"></div>`;
@@ -288,8 +291,16 @@ let DeesContextmenu = (() => {
288
291
  return html `
289
292
  <div
290
293
  class="menuitem ${menuItem.disabled ? 'disabled' : ''} ${hasSubmenu ? 'has-submenu' : ''}"
294
+ role="menuitem"
295
+ tabindex="-1"
296
+ aria-disabled=${menuItem.disabled ? 'true' : 'false'}
291
297
  @click=${() => !menuItem.disabled && !hasSubmenu && this.handleClick(menuItem)}
292
- @mouseenter=${() => this.handleMenuItemHover(menuItem, hasSubmenu)}
298
+ @mouseenter=${(event) => {
299
+ if (menuItem.disabled)
300
+ return;
301
+ event.currentTarget.focus({ preventScroll: true });
302
+ void this.handleMenuItemHover(menuItem, hasSubmenu);
303
+ }}
293
304
  @mouseleave=${() => this.handleMenuItemLeave()}
294
305
  >
295
306
  ${menuItem.iconName ? html `
@@ -303,7 +314,7 @@ let DeesContextmenu = (() => {
303
314
  `;
304
315
  })}
305
316
  ${this.menuItems.length === 0 ? html `
306
- <div class="menuitem" @click=${() => {
317
+ <div class="menuitem" role="menuitem" tabindex="-1" @click=${() => {
307
318
  DeesContextmenu.contextMenuDeactivated = true;
308
319
  this.destroy();
309
320
  }}>
@@ -314,35 +325,42 @@ let DeesContextmenu = (() => {
314
325
  </div>
315
326
  `;
316
327
  }
317
- async firstUpdated() {
328
+ firstUpdated(changedProperties) {
329
+ super.firstUpdated(changedProperties);
318
330
  // Focus on the menu for keyboard navigation
319
331
  this.focus();
320
332
  // Add keyboard event listeners
321
333
  this.addEventListener('keydown', this.handleKeydown);
322
334
  }
323
335
  handleKeydown = (event) => {
336
+ if (!['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(event.key))
337
+ return;
338
+ event.preventDefault();
339
+ event.stopPropagation();
324
340
  const menuItems = Array.from(this.shadowRoot.querySelectorAll('.menuitem:not(.disabled)'));
325
- const currentIndex = menuItems.findIndex(item => item.matches(':hover'));
341
+ const currentIndex = menuItems.findIndex(item => item === this.shadowRoot.activeElement);
326
342
  switch (event.key) {
327
343
  case 'ArrowDown':
328
- event.preventDefault();
344
+ if (!menuItems.length)
345
+ return;
329
346
  const nextIndex = currentIndex + 1 < menuItems.length ? currentIndex + 1 : 0;
347
+ menuItems[nextIndex].focus({ preventScroll: true });
330
348
  menuItems[nextIndex].dispatchEvent(new MouseEvent('mouseenter'));
331
349
  break;
332
350
  case 'ArrowUp':
333
- event.preventDefault();
351
+ if (!menuItems.length)
352
+ return;
334
353
  const prevIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : menuItems.length - 1;
354
+ menuItems[prevIndex].focus({ preventScroll: true });
335
355
  menuItems[prevIndex].dispatchEvent(new MouseEvent('mouseenter'));
336
356
  break;
337
357
  case 'Enter':
338
- event.preventDefault();
339
358
  if (currentIndex >= 0) {
340
359
  menuItems[currentIndex].click();
341
360
  }
342
361
  break;
343
362
  case 'Escape':
344
- event.preventDefault();
345
- this.destroy();
363
+ void this.destroyAll();
346
364
  break;
347
365
  }
348
366
  };
@@ -483,4 +501,4 @@ let DeesContextmenu = (() => {
483
501
  })();
484
502
  export { DeesContextmenu };
485
503
  DeesContextmenu.initializeGlobalListener();
486
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jb250ZXh0bWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW92ZXJsYXkvZGVlcy1jb250ZXh0bWVudS9kZWVzLWNvbnRleHRtZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFDSixXQUFXLEVBQ1gsUUFBUSxFQUVSLFVBQVUsRUFDVixHQUFHLEVBRUgsU0FBUyxHQUNWLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxLQUFLLFFBQVEsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7SUFTekMsZUFBZTs0QkFEM0IsYUFBYSxDQUFDLGtCQUFrQixDQUFDOzs7O3NCQUNHLFdBQVc7Ozs7K0JBQW5CLFNBQVEsV0FBVzs7OztxQ0E0RzdDLFFBQVEsQ0FBQztvQkFDUixJQUFJLEVBQUUsS0FBSztpQkFDWixDQUFDO1lBQ0YsZ0xBQVMsU0FBUyw2QkFBVCxTQUFTLDZGQUErTztZQS9HblEsNktBa2RDOzs7O1FBamRDLE9BQU87UUFDQSxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQTtRQUN0QixNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkMsU0FBUztRQUNULGlEQUFpRDtRQUMxQyxNQUFNLENBQUMsc0JBQXNC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
504
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jb250ZXh0bWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW92ZXJsYXkvZGVlcy1jb250ZXh0bWVudS9kZWVzLWNvbnRleHRtZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLElBQUksRUFDSixXQUFXLEVBQ1gsUUFBUSxFQUVSLFVBQVUsRUFDVixHQUFHLEVBRUgsU0FBUyxHQUNWLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxLQUFLLFFBQVEsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7SUFTekMsZUFBZTs0QkFEM0IsYUFBYSxDQUFDLGtCQUFrQixDQUFDOzs7O3NCQUNHLFdBQVc7Ozs7K0JBQW5CLFNBQVEsV0FBVzs7OztxQ0E2RzdDLFFBQVEsQ0FBQztvQkFDUixJQUFJLEVBQUUsS0FBSztpQkFDWixDQUFDO1lBQ0YsZ0xBQVMsU0FBUyw2QkFBVCxTQUFTLDZGQUErTztZQWhIblEsNktBZ2VDOzs7O1FBL2RDLE9BQU87UUFDQSxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQTtRQUN0QixNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkMsU0FBUztRQUNULGlEQUFpRDtRQUMxQyxNQUFNLENBQUMsc0JBQXNC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
@@ -430,6 +430,8 @@ export const themeDefaultStyles = css `
430
430
  --dees-shadow-xl: ${cssManager.bdTheme(shadowsLight.xl, shadowsDark.xl)};
431
431
  /* upward-casting bar shadow (mirrored sm) for bottom-docked chrome */
432
432
  --dees-shadow-up-sm: ${cssManager.bdTheme(mirrorShadow(shadowsLight.sm), mirrorShadow(shadowsDark.sm))};
433
+ /* Contact shadow where scrolling content passes beneath opaque chrome. */
434
+ --dees-color-scroll-edge-shadow: ${cssManager.bdTheme('rgba(0, 0, 0, 0.11)', 'rgba(0, 0, 0, 0.55)')};
433
435
 
434
436
  /* ========================================
435
437
  * Materials / Vibrancy (theme-aware bg + opaque fallback; theme-agnostic filter)
@@ -459,4 +461,4 @@ export const themeDefaultStyles = css `
459
461
  background-color: var(--dees-color-selection);
460
462
  }
461
463
  `;
462
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDB0aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMHRoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBa0IsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUEwTnRFLCtDQUErQztBQUMvQywyQ0FBMkM7QUFDM0MsK0NBQStDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBVztJQUNuQyxNQUFNLEVBQUU7UUFDTixLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUUsU0FBUyxFQUF1QixtQkFBbUI7WUFDOUQsV0FBVyxFQUFFLFNBQVMsRUFBcUIsc0NBQXNDO1lBQ2pGLFVBQVUsRUFBRSxTQUFTLEVBQXNCLG9DQUFvQztZQUMvRSxRQUFRLEVBQUUsU0FBUyxFQUF3QixnREFBZ0Q7WUFDM0YsU0FBUyxFQUFFLFNBQVMsRUFBdUIsMkJBQTJCO1lBQ3RFLFdBQVcsRUFBRSxTQUFTLEVBQXFCLG1CQUFtQjtZQUM5RCxhQUFhLEVBQUUsU0FBUztZQUN4QixTQUFTLEVBQUUsU0FBUztZQUNwQixlQUFlLEVBQUUsU0FBUyxFQUFlLCtCQUErQjtZQUN4RSxRQUFRLEVBQUUsU0FBUyxFQUF3QixjQUFjO1lBQ3pELFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLGFBQWEsRUFBRSx3QkFBd0IsRUFBSSxZQUFZO1lBQ3ZELFlBQVksRUFBRSx3QkFBd0I7WUFDdEMsWUFBWSxFQUFFLHdCQUF3QixFQUFLLHNCQUFzQjtZQUNqRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUcsYUFBYTtZQUN4RCxhQUFhLEVBQUUsMkJBQTJCO1lBQzFDLFlBQVksRUFBRSwyQkFBMkI7WUFDekMsYUFBYSxFQUFFLFNB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
464
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDB0aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMHRoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBa0IsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUEwTnRFLCtDQUErQztBQUMvQywyQ0FBMkM7QUFDM0MsK0NBQStDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBVztJQUNuQyxNQUFNLEVBQUU7UUFDTixLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUUsU0FBUyxFQUF1QixtQkFBbUI7WUFDOUQsV0FBVyxFQUFFLFNBQVMsRUFBcUIsc0NBQXNDO1lBQ2pGLFVBQVUsRUFBRSxTQUFTLEVBQXNCLG9DQUFvQztZQUMvRSxRQUFRLEVBQUUsU0FBUyxFQUF3QixnREFBZ0Q7WUFDM0YsU0FBUyxFQUFFLFNBQVMsRUFBdUIsMkJBQTJCO1lBQ3RFLFdBQVcsRUFBRSxTQUFTLEVBQXFCLG1CQUFtQjtZQUM5RCxhQUFhLEVBQUUsU0FBUztZQUN4QixTQUFTLEVBQUUsU0FBUztZQUNwQixlQUFlLEVBQUUsU0FBUyxFQUFlLCtCQUErQjtZQUN4RSxRQUFRLEVBQUUsU0FBUyxFQUF3QixjQUFjO1lBQ3pELFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLGFBQWEsRUFBRSx3QkFBd0IsRUFBSSxZQUFZO1lBQ3ZELFlBQVksRUFBRSx3QkFBd0I7WUFDdEMsWUFBWSxFQUFFLHdCQUF3QixFQUFLLHNCQUFzQjtZQUNqRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUcsYUFBYTtZQUN4RCxhQUFhLEVBQUUsMkJBQTJCO1lBQzFDLFlBQVksRUFBRSwyQkFBMkI7WUFDekMsYUFBYSxFQUFFLFNBQVMsRUFBbUIsK0JBQStCO1lBQzFFLGFBQWEsRUFBRSxTQUFTO1lBQ3hCLGFBQWEsRUFBRSxTQUFTLEVBQW1CLGVBQWU7WUFDMUQsV0FBVyxFQUFFLFNBQVM7WUFDdEIsY0FBYyxFQUFFLFNBQVM7WUFDekIsY0FBYyxFQUFFLFNBQVM7WUFDekIsY0FBYyxFQUFFLHlCQUF5QjtZQUN6QyxjQUFjLEVBQUUsU0FBUztZQUN6QixjQUFjLEVBQUUseUJBQXlCO1lBQ3pDLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLFlBQVksRUFBRSx5QkFBeUI7WUFDdkMsWUFBWSxFQUFFLFNBQVM7U0FDeEI7UUFDRCxJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsU0FBUyxFQUF3QixrQkFBa0I7WUFDOUQsV0FBVyxFQUFFLFNBQVMsRUFBc0IsMkJBQTJCO1lBQ3ZFLFVBQVUsRUFBRSxTQUFTLEVBQXVCLDJEQUEyRDtZQUN2RyxRQUFRLEVBQUUsU0FBUyxFQUF5Qiw0QkFBNEI7WUFDeEUsU0FBUyxFQUFFLFNBQVMsRUFBd0IsMkJBQTJCO1lBQ3ZFLFdBQVcsRUFBRSxTQUFTLEVBQXNCLG1CQUFtQjtZQUMvRCxhQUFhLEVBQUUsU0FBUztZQUN4QixTQUFTLEVBQUUsU0FBUztZQUNwQixlQUFlLEVBQUUsU0FBUztZQUMxQixRQUFRLEVBQUUsU0FBUyxFQUF5QixxQkFBcUI7WUFDakUsV0FBVyxFQUFFLFNBQVMsRUFBc0IscUJBQXFCO1lBQ2pFLFdBQVcsRUFBRSxTQUFTLEVBQXNCLHNCQUFzQjtZQUNsRSxTQUFTLEVBQUUsU0FBUztZQUNwQixhQUFhLEVBQUUsd0JBQXdCLEVBQUssbUJBQW1CO1lBQy9ELFlBQVksRUFBRSx3QkFBd0I7WUFDdEMsWUFBWSxFQUFFLHdCQUF3QjtZQUN0QyxXQUFXLEVBQUUsMkJBQTJCLEVBQUksb0JBQW9CO1lBQ2hFLGFBQWEsRUFBRSwyQkFBMkI7WUFDMUMsWUFBWSxFQUFFLDJCQUEyQjtZQUN6QyxhQUFhLEVBQUUsU0FBUztZQUN4QixhQUFhLEVBQUUsU0FBUztZQUN4QixhQUFhLEVBQUUsU0FBUyxFQUFvQixzQkFBc0I7WUFDbEUsV0FBVyxFQUFFLFNBQVM7WUFDdEIsY0FBYyxFQUFFLFNBQVM7WUFDekIsY0FBYyxFQUFFLFNBQVM7WUFDekIsY0FBYyxFQUFFLHlCQUF5QjtZQUN6QyxjQUFjLEVBQUUsU0FBUztZQUN6QixjQUFjLEVBQUUsMEJBQTBCO1lBQzFDLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLFlBQVksRUFBRSx5QkFBeUI7WUFDdkMsWUFBWSxFQUFFLFNBQVM7U0FDeEI7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSxLQUFLO1FBQ1QsRUFBRSxFQUFFLEtBQUs7UUFDVCxFQUFFLEVBQUUsTUFBTTtRQUNWLEVBQUUsRUFBRSxNQUFNO1FBQ1YsRUFBRSxFQUFFLE1BQU07UUFDVixLQUFLLEVBQUUsTUFBTTtRQUNiLEtBQUssRUFBRSxNQUFNO0tBQ2Q7SUFDRCxNQUFNLEVBQUU7UUFDTixFQUFFLEVBQUUsS0FBSyxFQUFNLG1CQUFtQjtRQUNsQyxFQUFFLEVBQUUsS0FBSyxFQUFNLDhCQUE4QjtRQUM3QyxFQUFFLEVBQUUsS0FBSyxFQUFNLGlCQUFpQjtRQUNoQyxFQUFFLEVBQUUsS0FBSyxFQUFNLFdBQVc7UUFDMUIsRUFBRSxFQUFFLE1BQU0sRUFBSyxtQ0FBbUM7UUFDbEQsS0FBSyxFQUFFLE1BQU0sRUFBRSxxQkFBcUI7UUFDcEMsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRO0tBQ3hCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsRUFBRSxFQUFFLCtCQUErQjtRQUNuQyxFQUFFLEVBQUUsK0JBQStCO1FBQ25DLEVBQUUsRUFBRSxnQ0FBZ0M7UUFDcEMsRUFBRSxFQUFFLGlDQUFpQztRQUNyQyxFQUFFLEVBQUUsaUNBQWlDO0tBQ3RDO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsRUFBRSxFQUFFLCtCQUErQjtRQUNuQyxFQUFFLEVBQUUsZ0NBQWdDO1FBQ3BDLEVBQUUsRUFBRSxnQ0FBZ0M7UUFDcEMsRUFBRSxFQUFFLGlDQUFpQztRQUNyQyxFQUFFLEVBQUUsaUNBQWlDO0tBQ3RDO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLE9BQU87UUFDYixPQUFPLEVBQUUsTUFBTTtRQUNmLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLE1BQU07S0FDZjtJQUNELE9BQU8sRUFBRTtRQUNQLFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsR0FBRyxFQUFFLDRCQUE0QjtRQUNqQyxFQUFFLEVBQUUsNEJBQTRCO1FBQ2hDLE1BQU0sRUFBRSwrQkFBK0I7UUFDdkMsTUFBTSxFQUFFLG1DQUFtQztLQUM1QztJQUNELFVBQVUsRUFBRTtRQUNWLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUU7UUFDekYsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRTtRQUNyRixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFO1FBQ3RGLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUU7UUFDckYsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRTtRQUN2RixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFO1FBQ25GLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUU7UUFDdEYsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRTtRQUN2RixRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQ2pGLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDakYsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRTtLQUN4RjtJQUNELFNBQVMsRUFBRTtRQUNULEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtZQUNuRyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7WUFDdEcsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLDJCQUEyQixFQUFFLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO1NBQ3JHO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO1lBQ2hHLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtZQUNuRzs7O2lGQUdxRTtZQUNyRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7U0FDbEc7S0FDRjtJQUNELHdFQUF3RTtJQUN4RSx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLHdEQUF3RDtJQUN4RCwyREFBMkQ7SUFDM0QsbUVBQW1FO0lBQ25FLHdFQUF3RTtJQUN4RSw0RUFBNEU7SUFDNUUsdURBQXVEO0lBQ3ZELG1EQUFtRDtJQUNuRCxjQUFjLEVBQUU7UUFDZCxFQUFFLEVBQUUsTUFBTTtRQUNWLEVBQUUsRUFBRSxNQUFNO1FBQ1YsRUFBRSxFQUFFLE1BQU07UUFDVixFQUFFLEVBQUUsTUFBTTtLQUNYO0lBQ0QsNkVBQTZFO0lBQzdFLDZFQUE2RTtJQUM3RSxRQUFRLEVBQUU7UUFDUixLQUFLLEVBQUU7WUFDTCxtQkFBbUIsRUFBRSx5QkFBeUI7WUFDOUMsS0FBSyxFQUFFLFNBQVM7WUFDaEIsR0FBRyxFQUFFLFNBQVM7WUFDZCxLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsU0FBUztZQUNqQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsWUFBWSxFQUFFLFNBQVM7WUFDdkIsVUFBVSxFQUFFLFNBQVM7WUFDckIsYUFBYSxFQUFFLFNBQVM7WUFDeEIsVUFBVSxFQUFFLFNBQVM7WUFDckIsV0FBVyxFQUFFLFNBQVM7U0FDdkI7UUFDRCxJQUFJLEVBQUU7WUFDSixtQkFBbUIsRUFBRSwwQkFBMEI7WUFDL0MsS0FBSyxFQUFFLFNBQVM7WUFDaEIsR0FBRyxFQUFFLFNBQVM7WUFDZCxLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsU0FBUztZQUNqQixJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsV0FBVyxFQUFFLFNBQVM7WUFDdEIsWUFBWSxFQUFFLFNBQVM7WUFDdkIsVUFBVSxFQUFFLFNBQVM7WUFDckIsYUFBYSxFQUFFLFNBQVM7WUFDeEIsVUFBVSxFQUFFLFNBQVM7WUFDckIsV0FBVyxFQUFFLFNBQVM7U0FDdkI7S0FDRjtDQUNGLENBQUM7QUFFRiwyQ0FBMkM7QUFDM0MsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDckMsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDcEMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztBQUMzQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUM7QUFFdkU7OERBQzhEO0FBQzlELE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FDOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1RyxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztBQUMzQyxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztBQUUxQzs7OztHQUlHO0FBQ0gsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFVLEVBQUUsQ0FDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUE2QixDQUFDO0tBQzFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLE1BQU0sSUFBSSxHQUFHLEtBQUssS0FBSyxHQUFHLENBQUM7S0FDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRXBCLE1BQU0sVUFBVSxHQUFjLFNBQVMsQ0FDckM7SUFDRSxTQUFTLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDM0MsU0FBUyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQ3pDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNsRCxTQUFTLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDeEMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUM7Q0FDMUQsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ2pCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLGNBQWMsR0FBYyxTQUFTLENBQ3hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBdUM7S0FDNUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtJQUNyQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pFLE9BQU87UUFDTCxlQUFlLENBQUMsVUFBVSxLQUFLLENBQUMsSUFBSSxHQUFHO1FBQ3ZDLGVBQWUsQ0FBQyxZQUFZLEtBQUssQ0FBQyxNQUFNLEdBQUc7UUFDM0MsZUFBZSxDQUFDLFVBQVUsS0FBSyxDQUFDLFVBQVUsR0FBRztRQUM3QyxlQUFlLENBQUMsY0FBYyxLQUFLLENBQUMsYUFBYSxHQUFHO0tBQ3JELENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQztLQUNELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDbEIsQ0FBQztBQUVGLCtDQUErQztBQUMvQyxpQ0FBaUM7QUFDakMsK0NBQStDO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBYyxHQUFHLENBQUE7Ozs7OzBCQUt0QixtQkFBbUI7K0JBQ2QsaUJBQWlCOzs7Ozs7Ozs7OztNQVcxQyxjQUFjOzs7OzsrQkFLVyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztpQ0FDMUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUM7Z0NBQ2pELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDOzhCQUNoRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQzs7Ozs7K0JBS3pDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7Ozs7aUNBSXBFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDO21DQUM5QyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQzsrQkFDeEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7cUNBQ3RDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDOzhCQUMvRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztpQ0FDdkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUM7aUNBQ2hELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDOytCQUNsRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQzs7Ozs7bUNBS3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDO2tDQUNyRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQztrQ0FDbEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUM7Ozs7O2lDQUtuRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQzttQ0FDOUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUM7a0NBQ3JELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDOzs7OzttQ0FLakQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUM7bUNBQ3BELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDO21DQUNwRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztpQ0FDdEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUM7Ozs7Ozs7cUNBTzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDO3FDQUN0RCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQztxQ0FDdEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUM7cUNBQ3RELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDO3FDQUN0RCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQztxQ0FDdEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUM7bUNBQ3hELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDO21DQUNsRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQzs7Ozs7MEJBSzNELFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsMkJBQTJCLENBQUM7MkJBQ3JFLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3JFLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsMkJBQTJCLENBQUM7OEJBQ3BFLFVBQVUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsMEJBQTBCLENBQUM7Ozs7OytCQUt4RSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7bUNBQ3BDLFVBQVUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsdUJBQXVCLENBQUM7K0JBQ3JFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzttQ0FDcEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2tDQUN6QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUNBQ3pDLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsc0JBQXNCLENBQUM7Ozt3Q0FHMUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLENBQUM7NENBQ2xELFVBQVUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsdUJBQXVCLENBQUM7c0NBQ3ZFLFVBQVUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsd0JBQXdCLENBQUM7Ozs7OztrQ0FNeEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO21DQUN2QyxVQUFVLENBQUMsT0FBTyxDQUMvQyw0REFBNEQsRUFDNUQsOEJBQThCLENBQy9COzs7OzsrQkFLMEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOytCQUN4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O3lCQUs5QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7K0JBQ2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7NEJBSzNDLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsMEJBQTBCLENBQUM7a0NBQy9ELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7OEJBSzVDLFVBQVUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUseUJBQXlCLENBQUM7Ozs7OzBCQUszRSxVQUFVLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLG9CQUFvQixDQUFDOzs7OztvQ0FLckQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSwyQkFBMkIsQ0FBQzswQ0FDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSwyQkFBMkIsQ0FBQzs7Ozs7O01BTTFHLFVBQVU7Ozs7Ozs7Ozt3QkFTUSxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDbkQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7d0JBQ25ELFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO3dCQUNuRCxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDbkQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7OzJCQUVoRCxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7dUNBRW5FLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7Ozs7OytCQUt4RSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO21DQUMxQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7c0NBQ3hCLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7a0NBQzlELFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7c0NBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzt5Q0FDM0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQ0FDekUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQ0FDNUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3VDQUN6QixVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JsRyxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-catalog",
3
- "version": "9.0.0",
3
+ "version": "9.1.0",
4
4
  "private": false,
5
5
  "description": "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.",
6
6
  "main": "dist_ts_web/index.js",
package/readme.md CHANGED
@@ -1197,7 +1197,7 @@ Code display component with syntax highlighting and line numbers.
1197
1197
  ></dees-dataview-codebox>
1198
1198
  ```
1199
1199
 
1200
- **Diff mode** — set `codeBefore` (compared against `codeToDisplay` as the after state) or a pre-computed `unifiedDiff` patch; `diffView` selects `'inline'` or `'split'` (side-by-side) and can force diff mode on its own:
1200
+ **Diff mode** — set `codeBefore` (compared against `codeToDisplay` as the after state) or a pre-computed `unifiedDiff` patch; `diffView` selects `'inline'`, `'split'` (side-by-side), or `'auto'` and can force diff mode on its own:
1201
1201
 
1202
1202
  ```typescript
1203
1203
  <dees-dataview-codebox
@@ -1211,6 +1211,8 @@ Code display component with syntax highlighting and line numbers.
1211
1211
 
1212
1212
  Diff rendering includes word-level intraline change highlighting, unchanged-context folding with expandable "N unchanged lines" rows, `+added −removed` stats in the footer, and a "Copy Unified Diff" context-menu action. The app bar switches between inline and split layouts and emits the bubbling, composed `diff-view-change` event with `IDiffViewChangeDetail` (`{ diffView: TDiffView }`). The exported `TDiffView` type is `'inline' | 'split'`. Split mode keeps a fixed center divider and gives each side an independent horizontal scroll position while the containing surface owns their shared vertical movement. Set `showDiffLineNumbers` to `false` when snippet inputs do not carry trustworthy source positions. The copy button yields the after-state text. The dependency-free engine (`computeLineDiff`, `parseUnifiedDiff`, `foldContextRows`, `buildSplitRows`, `diffStats`, `toUnifiedDiff`) is exported for programmatic use.
1213
1213
 
1214
+ `diffView="auto"` uses inline rows below 640px of codebox width and split rows at 640px or wider. Resizing preserves expanded context and does not emit `diff-view-change`. Clicking either layout button fixes that choice, including when it already matches the automatic layout; set `diffView` back to `'auto'` to resume adaptation. The exported `TDiffViewRequest` adds `'auto'` to `TDiffView`, while event details and saved manual choices remain `'inline' | 'split'`. The default empty `diffView` and explicit layouts retain their existing behavior.
1215
+
1214
1216
  #### `DeesDataviewStatusobject`
1215
1217
  Status display component for complex objects with nested status indicators.
1216
1218
 
@@ -1590,6 +1592,8 @@ from background work. Toast `duration: 0` keeps it visible until dismissal.
1590
1592
  #### `DeesContextmenu`
1591
1593
  Context menu component for right-click actions with nested submenu support.
1592
1594
 
1595
+ Menus take focus after becoming visible. ArrowUp/ArrowDown move through enabled items, Enter activates the focused item, and Escape dismisses the menu chain without reaching enclosing app shortcuts. Hosts can register focus restoration with the returned menu's `registerGarbageFunction()` hook.
1596
+
1593
1597
  ```typescript
1594
1598
  // Programmatic usage
1595
1599
  DeesContextmenu.openContextMenuWithOptions(mouseEvent, [
@@ -1970,7 +1974,7 @@ DeesHarnessToolRegistry.default.register({
1970
1974
  });
1971
1975
  ```
1972
1976
 
1973
- Custom tool renderers receive `IHarnessToolRenderHelpers`. Its `diffBlock(before, after, options)` helper accepts `language`, `filename`, and `view`, plus `unifiedDiff` for a positioned patch and `showLineNumbers` to suppress untrustworthy gutters.
1977
+ Custom tool renderers receive `IHarnessToolRenderHelpers`. Its `diffBlock(before, after, options)` helper accepts `language`, `filename`, and `view`, plus `unifiedDiff` for a positioned patch and `showLineNumbers` to suppress untrustworthy gutters. The default view is `'auto'`: inline below 640px of codebox width and split at 640px or wider. An explicit helper view remains fixed. User choices override the helper default and retain the existing transcript view-state persistence.
1974
1978
 
1975
1979
  `server__tool` names resolve automatically to the MCP kind with server + annotation badges (`readOnlyHint` → success, `destructiveHint` → error, `openWorldHint` → warning). Per-element isolation: assign a forked registry to `.toolRegistry`.
1976
1980
 
@@ -1998,6 +2002,8 @@ A question the agent asks mid-run: option buttons with descriptions (single-sele
1998
2002
 
1999
2003
  #### `DeesHarnessComposer`
2000
2004
 
2005
+ Place optional reply or task context in `slot="context"` to integrate it above the textarea inside one input surface. Set `contextDescription` to the same context as plain text for the textarea's accessible description. An empty slot reserves no space. Clicking informational context focuses the prompt; links and controls retain their own behavior. `DeesHarnessChat` supplies its reply heading here and keeps the composer within the conversation column, alongside the full-height desktop sidebar.
2006
+
2001
2007
  Prompt input: autogrow textarea, attachment picker/paste/drag-drop with configurable `maxAttachmentCount`, `maxAttachmentBytes` (10 MB default), and `maxTotalAttachmentBytes` (30 MB default), image/text/binary classification, optional account, model, and reasoning-effort dropdowns, Cmd/Ctrl+Enter to send. Attachment count is unlimited unless the host sets it. `dees-harness-chat` forwards all three limits and `suggestions` to its composer. Controlled component — the host owns `value`, `attachments`, `suggestions`, `account`, and the other selections. Set `accountOptions` to `{ label, value }[]` so the dropdown displays readable labels while events retain opaque stable account values. Account changes emit `harness-account-change` with `{ account }`; `harness-send` includes optional `account` alongside `model` and `reasoningEffort`.
2002
2008
 
2003
2009
  Set `suggestions` to `IHarnessComposerSuggestion[]`, where each item is `{ label, value, description? }`. The composer does not filter or generate suggestions: listen for `harness-input`, update the controlled `value`, and provide a fresh filtered array. While the textarea owns focus, the listbox stays anchored above the composer; moving focus to another control closes it. Arrow keys wrap through rows, Enter chooses the active row, and Escape dismisses the current list until the next text input or fresh suggestions array. Choosing a row sets `value` to the suggestion's `value` and emits the existing bubbling/composed `harness-input` event; it does not emit `harness-send`.
@@ -2034,7 +2040,17 @@ Direct sidebar hosts can set `intelligenceAvailabilityStatus`, `intelligenceUnav
2034
2040
 
2035
2041
  Searchable, card-based conversation column for sidebars or a `DeesModal` (`harness-session-select` on click, `harness-session-open` on double-click/Enter). Cards stay collapsed until their independent accessible expansion control is used. Selection and working-state changes do not affect expansion.
2036
2042
 
2037
- `IHarnessSessionMeta.state` accepts `normal`, `working`, `finished`, `attention`, or `error`; `working` remains an independent activity signal and does not change card expansion. With `enableGrouping`, sortable cards can move within and between groups. Drag from a card's focusable grip, or use its ArrowUp, ArrowDown, Home, and End keys. Pointer dragging moves a full-card preview, opens a matching drop slot, and animates surrounding cards; `harness-session-move` includes both the compatibility `index` and a stable optional `beforeSessionId` anchor. Set `draggable: false` for pinned entries such as terminals. Pass `ungroupedSessionIds` to control the order outside groups; omitted or unknown entries fall back to recency order.
2043
+ Each card exposes an Actions button. Actions, right-click, and ContextMenu/Shift+F10 on the primary or Actions control emit `harness-session-context` with the unchanged `IHarnessSessionContextDetail` (`session`, viewport `clientX`/`clientY`, and `originalEvent: MouseEvent`). Button and keyboard requests anchor the menu below the invoking control; pointer requests keep the pointer coordinates. Actions do not select, open, expand, or drag the session. Hosts own the menu choices and focus restoration. Call `DeesContextmenu.openContextMenuWithOptions(detail.originalEvent, items)` synchronously in the event handler, before any `await`, so the event's composed path retains the owning dialog. The session demo shows menu cleanup and focus restoration through `registerGarbageFunction()`.
2044
+
2045
+ `IHarnessSessionMeta.state` accepts `normal`, `working`, `finished`, `attention`, or `error`. Every collapsed row shows its status icon and text. Optional `statusLabel` refines the description (for example, `Starting`, `Waiting for feedback`, or `Approval needed`); blank labels fall back to the standard state name. Optional `harness: IHarnessAgentIdentity` supplies `{ id, name, icon? }`, independently of the model and state. The harness name stays on its own metadata line; omitted identity renders no guessed provider. Search includes harness names/ids and status labels.
2046
+
2047
+ Attention and error rows retain a colored edge even when selected. Group headings count both states, including when collapsed. `working` controls the small activity pulse on normal/working rows, defaulting to `state === 'working'`; attention, error and finished indicators remain stationary. Reduced-motion preferences disable the pulse. State changes preserve row height, selection, expansion and host-provided order.
2048
+
2049
+ With `enableGrouping`, sortable cards can move within and between groups. Drag from a card's focusable grip, or use its ArrowUp, ArrowDown, Home, and End keys. Pointer dragging moves a full-card preview, opens a matching drop slot, and animates surrounding cards; `harness-session-move` includes both the compatibility `index` and a stable optional `beforeSessionId` anchor. Set `draggable: false` for pinned entries such as terminals. Pass `ungroupedSessionIds` to control the order outside groups; omitted or unknown entries fall back to recency order.
2050
+
2051
+ The compact **New group** button sits beside search whenever `enableGrouping` is true, including while filtering, and emits `harness-group-create-request`. The host owns creation; the list keeps its current search until the host chooses to clear it. The demo clears search after adding the group. Both search and the group action use 44px targets for coarse pointers.
2052
+
2053
+ The Sessions demo pairs the list with a selected-session workspace. Its controls step through starting, working, feedback, approval, completion and failure without timers or backend operations. Question and permission responses update the selected session; declining approval pauses it. The narrow layout switches between the preserved list and detail panes with an **All sessions** control that restores row focus.
2038
2054
 
2039
2055
  Generic host resources use the exported `IHarnessResourceMeta` and `IHarnessResourceAssociation` contracts. Set `.resources`, `.resourceAssociations`, `.selectedResourceId`, and `.eligibleSessionIdsByResourceId`. Unattached resources render in a labelled **Resources** list; attached resources render as compact persistent child rows inside their exact session article and stay visible while session details are collapsed. Resource metadata is presentation-only: the list never mounts a terminal, browser, file viewer, or other runtime.
2040
2056
 
package/readme.plan.md CHANGED
@@ -1,5 +1,81 @@
1
1
  # Catalog modernization — September 2026
2
2
 
3
+ ## Session scroll shadows and search toolbar
4
+
5
+ Correct the session list's floating shadow band: the 16px edge overlay was
6
+ casting an outer box shadow from its inner edge. Use the shared transcript
7
+ contact-shadow gradient inside the overlay, darkest at the scroll boundary.
8
+ Keep overflow-driven visibility and hit targets unchanged.
9
+ Move New group into a compact action beside search and remove the bottom row.
10
+ Keep the action visible while filtering, preserve its request event, and let the
11
+ demo clear search after successful creation. Use distinct 44px touch targets.
12
+ Verify both appearances, scrolling endpoints, filtering, keyboard/touch creation
13
+ and the existing session tests; review the rendered result with Fable.
14
+
15
+ The taller viewport exposed browser scroll anchoring moving the list after drag
16
+ auto-scroll stopped. Disable anchoring only during active drags so moving drop
17
+ placeholders cannot shift the manually controlled viewport; restore normal
18
+ anchoring when the gesture ends.
19
+
20
+ Implemented and reviewed with Fable in dark, bright and touch layouts. Build,
21
+ strict checks for both changed tests, all 49 session/resource/demo tests and the
22
+ theme ratchet pass. Browser checks confirm flush inward shadows, end-of-scroll
23
+ visibility, stable search width, keyboard and touch creation, retained button
24
+ focus, and distinct 44px input/button targets with an 8px gap on touch devices.
25
+
26
+ ## Session states and harness identity
27
+
28
+ Add optional harness identity and precise status labels to session metadata.
29
+ Keep a stable three-line row (title, status, harness/time) so both the state and
30
+ the harness remain visible at sidebar widths. Use small semantic state icons,
31
+ stationary warning/error edge cues, and activity-only reduced-motion-safe pulses.
32
+ Preserve controlled selection, expansion, grouping, resources and ordering; show
33
+ attention counts even when groups are collapsed. Make identity and state searchable.
34
+
35
+ Replace the repetitive session demo with a bounded two-pane app and curated
36
+ sessions. Let users step through starting, working, feedback, approval, completion
37
+ and failure using existing question and permission cards. Keep all transitions
38
+ local and deterministic, with no timers, and retain resource and modal examples.
39
+ Review both themes and phone layouts with Fable, run the session/resource tests,
40
+ strict test checks and build, then commit the verified changes locally.
41
+
42
+ Implemented and reviewed with Fable. The native build, strict checks for both
43
+ changed test files, 48 session/resource/demo tests and theme ratchet pass.
44
+ Browser checks cover both themes, seven visible desktop states, real approval
45
+ and question responses, reduced motion, dialog-owned Actions, and touch navigation
46
+ with focus restored to the selected row. Resources remain attached to the final
47
+ session so their child rows do not hide other states on the initial desktop view.
48
+
49
+ ## Transcript scroll depth
50
+
51
+ Give the transcript fixed top and bottom contact shadows so it reads as passing
52
+ under the header and composer. Keep the 20px gradients inside the transcript
53
+ width, hide the upper shadow when there is no toolbar, and leave scroll/follow
54
+ behavior and nested transcript fades untouched. Use a shared theme token for
55
+ the stronger dark appearance. Verify both themes, scroll endpoints, empty and
56
+ toolbar-free states, suggestions, the jump control, and the narrow drawer.
57
+
58
+ Implemented with a passing build, 20 chat browser tests, and the theme ratchet.
59
+ Browser checks confirm stationary edges, toolbar-aware upper shadow visibility,
60
+ unchanged hit targets, and unobstructed suggestions and narrow drawers.
61
+
62
+ ## Chat composer and sidebar alignment
63
+
64
+ Integrate reply context into the composer's input surface through a named
65
+ `context` slot and an accessible text description. Keep the composer at a stable
66
+ position inside the transcript column so its width follows the conversation and
67
+ the desktop sidebar extends to the bottom. Preserve draft, attachment, suggestion,
68
+ IME, send/steer, and narrow drawer behavior. Use one field border/focus treatment,
69
+ an empty slot with no reserved height, and bounded context text. Verify desktop
70
+ geometry, narrow drawer hit targets, keyboard focus, and both themes with Fable
71
+ before the native checks and local main commit.
72
+
73
+ Implemented and reviewed with Fable. The focused chat/composer suite passes 42
74
+ tests, including preserved draft and selection, field focus, slot geometry, and
75
+ drawer hit testing. Strict checks cover both changed test files. Browser checks
76
+ cover both themes, the embedded desktop view, and a real coarse-pointer phone
77
+ context. The narrow chat owns clipping of its closed off-canvas drawer.
78
+
3
79
  ## Harness components
4
80
 
5
81
  Continue the shared visual system across chat, composer, transcript cards,
@@ -19,6 +95,27 @@ final responsive polish is covered by the affected harness tests and a fresh
19
95
  build. Browser checks cover both themes, 320/390px layouts, visible demo responses,
20
96
  session-modal dismissal, subagent activity and reduced-motion behavior.
21
97
 
98
+ ## Harness touch and adaptive diffs
99
+
100
+ Following the 9.0.0 release, add automatic codebox layouts using the codebox's
101
+ own width, while retaining concrete manual choices and transcript view state.
102
+ Keep automatic resize updates limited to the 640px boundary, preserve unfolded
103
+ context, and disconnect observation outside auto mode or after removal.
104
+
105
+ Expose session Actions alongside the independent expander, with 44px coarse
106
+ pointer targets and ContextMenu/Shift+F10 access through the existing context
107
+ event. The session demos open dialog-owned menus synchronously, show action
108
+ results, and restore focus through the menu lifecycle, including group moves.
109
+ Correct the shared context menu's hidden-focus and hover-based keyboard handling
110
+ so these controls support arrow navigation, Enter, and isolated Escape dismissal.
111
+
112
+ Implemented with a passing native build, 80 focused browser tests, and strict
113
+ type checks for the four changed test files. Browser checks cover automatic and
114
+ manual diff layouts, 44px touch targets, dialog ownership, keyboard menu actions,
115
+ and focus restoration after dismissal and session moves. Real coarse-pointer
116
+ browser assertions also confirm resting surfaces remain unchanged after tapping
117
+ and dismissing Actions; desktop hover feedback remains available.
118
+
22
119
  ## Catalog foundations
23
120
 
24
121
  Approved scope: modern Apple app styling, coordinated with Fable 5.1, with an
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '9.0.0',
6
+ version: '9.1.0',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  }
@@ -41,6 +41,7 @@ declare global {
41
41
  }
42
42
 
43
43
  export type TDiffView = 'inline' | 'split';
44
+ export type TDiffViewRequest = TDiffView | 'auto';
44
45
 
45
46
  export interface IDiffViewChangeDetail {
46
47
  diffView: TDiffView;
@@ -73,9 +74,9 @@ export class DeesDataviewCodebox extends DeesElement {
73
74
  @property({ type: String })
74
75
  accessor unifiedDiff: string = '';
75
76
 
76
- /** '' = regular code view; 'inline' = unified rows; 'split' = side by side */
77
+ /** '' = regular code; 'inline' = unified rows; 'split' = side by side; 'auto' splits at 640px. */
77
78
  @property({ type: String })
78
- accessor diffView: '' | TDiffView = '';
79
+ accessor diffView: '' | TDiffViewRequest = '';
79
80
 
80
81
  /** Hide gutters when a diff source does not provide trustworthy positions. */
81
82
  @property({ type: Boolean })
@@ -93,6 +94,9 @@ export class DeesDataviewCodebox extends DeesElement {
93
94
  @state()
94
95
  accessor highlightVersion: number = 0;
95
96
 
97
+ @state()
98
+ private accessor autoDiffIsNarrow = true;
99
+
96
100
  public static styles = [
97
101
  themeDefaultStyles,
98
102
  cssManager.defaultStyles,
@@ -103,6 +107,8 @@ export class DeesDataviewCodebox extends DeesElement {
103
107
  text-align: left;
104
108
  font-family: var(--dees-font-family);
105
109
  box-sizing: border-box;
110
+ container-type: inline-size;
111
+ container-name: dees-codebox;
106
112
  }
107
113
 
108
114
  dees-tile {
@@ -146,6 +152,15 @@ export class DeesDataviewCodebox extends DeesElement {
146
152
  background: var(--dees-color-bg-tertiary);
147
153
  }
148
154
 
155
+ @container dees-codebox (width < 640px) {
156
+ .appbar {
157
+ grid-template-columns: minmax(0, 1fr) auto;
158
+ gap: var(--dees-spacing-sm);
159
+ }
160
+ .appbar .fileName { grid-column: 1; min-width: 0; }
161
+ .appbar .actions { grid-column: 2; }
162
+ }
163
+
149
164
  .viewButton {
150
165
  padding: 3px 7px;
151
166
  border: 0;
@@ -640,6 +655,31 @@ export class DeesDataviewCodebox extends DeesElement {
640
655
  private copiedResetTimeout: ReturnType<typeof setTimeout> | null = null;
641
656
  private diffRows: IDiffRow[] = [];
642
657
  private diffHighlightCache = new Map<string, string>();
658
+ private autoDiffResizeObserver: ResizeObserver | null = null;
659
+
660
+ public async connectedCallback(): Promise<void> {
661
+ await super.connectedCallback();
662
+ this.syncAutoDiffObservation();
663
+ }
664
+
665
+ private syncAutoDiffObservation(): void {
666
+ if (!this.isConnected || this.diffView !== 'auto') {
667
+ this.autoDiffResizeObserver?.disconnect();
668
+ this.autoDiffResizeObserver = null;
669
+ return;
670
+ }
671
+ if (this.autoDiffResizeObserver) return;
672
+ const observer = new ResizeObserver((entries) => {
673
+ if (this.autoDiffResizeObserver !== observer || !this.isConnected || this.diffView !== 'auto') return;
674
+ const entry = entries.find((candidate) => candidate.target === this);
675
+ if (!entry) return;
676
+ const narrow = (entry.contentBoxSize[0]?.inlineSize ?? entry.contentRect.width) < 640;
677
+ // Pixel-by-pixel resizing does not invalidate rendering or highlight caches.
678
+ if (narrow !== this.autoDiffIsNarrow) this.autoDiffIsNarrow = narrow;
679
+ });
680
+ this.autoDiffResizeObserver = observer;
681
+ observer.observe(this);
682
+ }
643
683
 
644
684
  /** Diff mode is active when a diff input or an explicit diffView is set. */
645
685
  public get isDiffActive(): boolean {
@@ -647,11 +687,12 @@ export class DeesDataviewCodebox extends DeesElement {
647
687
  }
648
688
 
649
689
  public get effectiveDiffView(): TDiffView {
650
- return this.diffView === 'split' ? 'split' : 'inline';
690
+ return this.diffView === 'split' || (this.diffView === 'auto' && !this.autoDiffIsNarrow)
691
+ ? 'split' : 'inline';
651
692
  }
652
693
 
653
694
  private setDiffView(diffViewArg: TDiffView): void {
654
- if (this.effectiveDiffView === diffViewArg) return;
695
+ if (this.diffView !== 'auto' && this.effectiveDiffView === diffViewArg) return;
655
696
  this.diffView = diffViewArg;
656
697
  this.dispatchEvent(new CustomEvent<IDiffViewChangeDetail>('diff-view-change', {
657
698
  detail: { diffView: diffViewArg },
@@ -712,6 +753,7 @@ export class DeesDataviewCodebox extends DeesElement {
712
753
 
713
754
  public async updated(changedProperties: Map<string, any>) {
714
755
  super.updated(changedProperties);
756
+ if (changedProperties.has('diffView')) this.syncAutoDiffObservation();
715
757
  // adopt slotted text content as code source once (regular mode only)
716
758
  if (!this.codeToDisplay && !this.isDiffActive) {
717
759
  const slottedText = Array.from(this.childNodes).find(
@@ -835,6 +877,8 @@ export class DeesDataviewCodebox extends DeesElement {
835
877
  };
836
878
 
837
879
  public async disconnectedCallback() {
880
+ this.autoDiffResizeObserver?.disconnect();
881
+ this.autoDiffResizeObserver = null;
838
882
  if (this.copiedResetTimeout) {
839
883
  clearTimeout(this.copiedResetTimeout);
840
884
  this.copiedResetTimeout = null;