@design.estate/dees-catalog 6.12.1 → 7.0.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 (50) hide show
  1. package/.smartconfig.json +5 -1
  2. package/dist_bundle/bundle.js +24145 -1247
  3. package/dist_bundle/bundle.js.map +1 -0
  4. package/dist_bundle/chunks/U6Ua8p1giFoD1s7vrUZUdpbg/.tsbundle-artifacts.json +7 -0
  5. package/dist_bundle/chunks/U6Ua8p1giFoD1s7vrUZUdpbg/worker-KZQQYSUG.js +58301 -0
  6. package/dist_bundle/chunks/U6Ua8p1giFoD1s7vrUZUdpbg/worker-KZQQYSUG.js.map +1 -0
  7. package/dist_bundle/third-party-notices.md +190 -0
  8. package/dist_ts_web/00_commitinfo_data.js +2 -2
  9. package/dist_ts_web/elements/00group-button/dees-button/dees-button.d.ts +8 -5
  10. package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +100 -46
  11. package/dist_ts_web/elements/00group-form/dees-form-submit/dees-form-submit.js +2 -5
  12. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +4 -1
  13. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +29 -2
  14. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +4 -1
  15. package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +65 -8
  16. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +1 -0
  17. package/dist_ts_web/elements/00group-media/dees-pdf-shared/CanvasPool.d.ts +1 -0
  18. package/dist_ts_web/elements/00group-media/dees-pdf-shared/CanvasPool.js +15 -1
  19. package/dist_ts_web/elements/00group-media/dees-pdf-shared/PdfManager.d.ts +6 -4
  20. package/dist_ts_web/elements/00group-media/dees-pdf-shared/PdfManager.js +183 -21
  21. package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.d.ts +3 -0
  22. package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.js +67 -1
  23. package/dist_ts_web/elements/00group-media/dees-pdf-viewer/component.d.ts +25 -1
  24. package/dist_ts_web/elements/00group-media/dees-pdf-viewer/component.js +693 -285
  25. package/dist_ts_web/elements/00group-media/dees-pdf-viewer/demo.js +7 -7
  26. package/dist_ts_web/elements/00group-media/dees-thumbnail-pdf/component.d.ts +20 -1
  27. package/dist_ts_web/elements/00group-media/dees-thumbnail-pdf/component.js +379 -116
  28. package/dist_ts_web/elements/00group-media/dees-thumbnail-pdf/demo.js +2 -2
  29. package/dist_ts_web/elements/00group-media/dees-thumbnail-shared/DeesThumbnailBase.d.ts +1 -0
  30. package/dist_ts_web/elements/00group-media/dees-thumbnail-shared/DeesThumbnailBase.js +7 -1
  31. package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js +2 -1
  32. package/package.json +5 -4
  33. package/readme.hints.md +26 -19
  34. package/readme.md +100 -53
  35. package/third-party-notices.md +190 -0
  36. package/ts_web/00_commitinfo_data.ts +1 -1
  37. package/ts_web/elements/00group-button/dees-button/dees-button.ts +97 -53
  38. package/ts_web/elements/00group-form/dees-form-submit/dees-form-submit.ts +1 -4
  39. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +13 -0
  40. package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +51 -6
  41. package/ts_web/elements/00group-harness/interfaces.ts +2 -0
  42. package/ts_web/elements/00group-media/dees-pdf-shared/CanvasPool.ts +15 -1
  43. package/ts_web/elements/00group-media/dees-pdf-shared/PdfManager.ts +214 -24
  44. package/ts_web/elements/00group-media/dees-pdf-shared/utils.ts +77 -1
  45. package/ts_web/elements/00group-media/dees-pdf-viewer/component.ts +774 -327
  46. package/ts_web/elements/00group-media/dees-pdf-viewer/demo.ts +7 -7
  47. package/ts_web/elements/00group-media/dees-thumbnail-pdf/component.ts +427 -128
  48. package/ts_web/elements/00group-media/dees-thumbnail-pdf/demo.ts +1 -1
  49. package/ts_web/elements/00group-media/dees-thumbnail-shared/DeesThumbnailBase.ts +5 -0
  50. package/ts_web/elements/00group-utility/dees-icon/dees-icon.ts +1 -0
@@ -112,7 +112,7 @@ export const demo = () => {
112
112
  <h3>Non-Clickable</h3>
113
113
  <dees-thumbnail-pdf
114
114
  pdfUrl="https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf"
115
- clickable="false"
115
+ .clickable=${false}
116
116
  ></dees-thumbnail-pdf>
117
117
  </div>
118
118
 
@@ -125,4 +125,4 @@ export const demo = () => {
125
125
  </div>
126
126
  `;
127
127
  };
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW1lZGlhL2RlZXMtdGh1bWJuYWlsLXBkZi9kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtJQUN2QixNQUFNLFVBQVUsR0FBRztRQUNqQiw0RkFBNEY7UUFDNUYsa0dBQWtHO0tBQ25HLENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7UUFDMUMsTUFBTSxLQUFLLEdBQThCLEVBQUUsQ0FBQztRQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0IsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7O29CQUVELE1BQU07Ozt3QkFHRixDQUFDLENBQWMsRUFBRSxFQUFFO2dCQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsUUFBUSxDQUFDLENBQUM7WUFDcEQsQ0FBQzs7T0FFSixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQTs7OztzQkFJUyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7O2lCQVc3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQW9CeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQThEN0MsaUJBQWlCLENBQUMsRUFBRSxDQUFDOzs7O0dBSTlCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLW1lZGlhL2RlZXMtdGh1bWJuYWlsLXBkZi9kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtJQUN2QixNQUFNLFVBQVUsR0FBRztRQUNqQiw0RkFBNEY7UUFDNUYsa0dBQWtHO0tBQ25HLENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7UUFDMUMsTUFBTSxLQUFLLEdBQThCLEVBQUUsQ0FBQztRQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDL0IsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7O29CQUVELE1BQU07Ozt3QkFHRixDQUFDLENBQWMsRUFBRSxFQUFFO2dCQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsUUFBUSxDQUFDLENBQUM7WUFDcEQsQ0FBQzs7T0FFSixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQTs7OztzQkFJUyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7O2lCQVc3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQW9CeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VCQXVEbEMsS0FBSzs7Ozs7OztZQU9oQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Ozs7R0FJOUIsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -9,6 +9,7 @@ export declare abstract class DeesThumbnailBase extends DeesElement {
9
9
  accessor label: string;
10
10
  private observer;
11
11
  private _visible;
12
+ private observerConnectionEpoch;
12
13
  /** Whether this tile is currently visible in the viewport */
13
14
  protected get isVisible(): boolean;
14
15
  render(): TemplateResult;
@@ -85,6 +85,7 @@ let DeesThumbnailBase = (() => {
85
85
  set label(value) { this.#label_accessor_storage = value; }
86
86
  observer = __runInitializers(this, _label_extraInitializers);
87
87
  _visible = false;
88
+ observerConnectionEpoch = 0;
88
89
  /** Whether this tile is currently visible in the viewport */
89
90
  get isVisible() {
90
91
  return this._visible;
@@ -123,15 +124,20 @@ let DeesThumbnailBase = (() => {
123
124
  return '';
124
125
  }
125
126
  async connectedCallback() {
127
+ const connectionEpoch = ++this.observerConnectionEpoch;
126
128
  await super.connectedCallback();
129
+ if (!this.isConnected || connectionEpoch !== this.observerConnectionEpoch)
130
+ return;
127
131
  this.setupIntersectionObserver();
128
132
  }
129
133
  async disconnectedCallback() {
134
+ this.observerConnectionEpoch += 1;
130
135
  await super.disconnectedCallback();
131
136
  if (this.observer) {
132
137
  this.observer.disconnect();
133
138
  this.observer = undefined;
134
139
  }
140
+ this._visible = false;
135
141
  }
136
142
  setupIntersectionObserver() {
137
143
  this.observer = new IntersectionObserver((entries) => {
@@ -171,4 +177,4 @@ let DeesThumbnailBase = (() => {
171
177
  };
172
178
  })();
173
179
  export { DeesThumbnailBase };
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVlc1RodW1ibmFpbEJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1tZWRpYS9kZWVzLXRodW1ibmFpbC1zaGFyZWQvRGVlc1RodW1ibmFpbEJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLFFBQVEsR0FHVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLDhDQUE4QyxDQUFDO0lBRWhDLGlCQUFpQjtzQkFBUyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7O2lCQUFyQyxpQkFBa0IsU0FBUSxXQUFXOzs7cUNBR3hELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzttQ0FHM0IsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2lDQUczQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0NBRzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2lDQUd6QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFYM0IsZ0xBQVMsU0FBUyw2QkFBVCxTQUFTLDZGQUFpQjtZQUduQywwS0FBUyxPQUFPLDZCQUFQLE9BQU8seUZBQWtCO1lBR2xDLG9LQUFTLEtBQUssNkJBQUwsS0FBSyxxRkFBa0I7WUFHaEMsaUtBQVMsSUFBSSw2QkFBSixJQUFJLG1GQUE0QztZQUd6RCxvS0FBUyxLQUFLLDZCQUFMLEtBQUsscUZBQWM7OztRQWZyQixNQUFNLENBQUMsTUFBTSxHQUFnQixtQkFBMEIsQ0FBQztRQUcvRCwrRUFBOEIsSUFBSSxFQUFD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
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVlc1RodW1ibmFpbEJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1tZWRpYS9kZWVzLXRodW1ibmFpbC1zaGFyZWQvRGVlc1RodW1ibmFpbEJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsSUFBSSxFQUNKLFFBQVEsR0FHVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLDhDQUE4QyxDQUFDO0lBRWhDLGlCQUFpQjtzQkFBUyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7O2lCQUFyQyxpQkFBa0IsU0FBUSxXQUFXOzs7cUNBR3hELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzttQ0FHM0IsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2lDQUczQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0NBRzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2lDQUd6QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFYM0IsZ0xBQVMsU0FBUyw2QkFBVCxTQUFTLDZGQUFpQjtZQUduQywwS0FBUyxPQUFPLDZCQUFQLE9BQU8seUZBQWtCO1lBR2xDLG9LQUFTLEtBQUssNkJBQUwsS0FBSyxxRkFBa0I7WUFHaEMsaUtBQVMsSUFBSSw2QkFBSixJQUFJLG1GQUE0QztZQUd6RCxvS0FBUyxLQUFLLDZCQUFMLEtBQUsscUZBQWM7OztRQWZyQixNQUFNLENBQUMsTUFBTSxHQUFnQixtQkFBMEIsQ0FBQztRQUcvRCwrRUFBOEIsSUFBSSxFQUFD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
@@ -101,6 +101,7 @@ let DeesIcon = (() => {
101
101
  })];
102
102
  _icon_decorators = [property({
103
103
  type: String,
104
+ reflect: true,
104
105
  converter: {
105
106
  fromAttribute: (value) => value,
106
107
  toAttribute: (value) => value
@@ -328,4 +329,4 @@ let DeesIcon = (() => {
328
329
  return DeesIcon = _classThis;
329
330
  })();
330
331
  export { DeesIcon };
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1pY29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtdXRpbGl0eS9kZWVzLWljb24vZGVlcy1pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLEVBQ1IsYUFBYSxFQUNiLFVBQVUsRUFDVixHQUFHLEdBRUosTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssUUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxxREFBcUQ7QUFDckQsT0FBTyxLQUFLLFdBQVcsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV2Qzs7Ozs7O0dBTUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQVk7SUFDMUMsT0FBTyxJQUFJO1NBQ1IsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDZCxDQUFDO0FBT0QsK0VBQStFO0FBQy9FLCtFQUErRTtBQUMvRSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztBQUVoRCwwREFBMEQ7QUFDMUQsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBQzNCLFNBQVMsY0FBYztJ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
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1pY29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtdXRpbGl0eS9kZWVzLWljb24vZGVlcy1pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLEVBQ1IsYUFBYSxFQUNiLFVBQVUsRUFDVixHQUFHLEdBRUosTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssUUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxxREFBcUQ7QUFDckQsT0FBTyxLQUFLLFdBQVcsTUFBTSxRQUFRLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV2Qzs7Ozs7O0dBTUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQVk7SUFDMUMsT0FBTyxJQUFJO1NBQ1IsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDZCxDQUFDO0FBT0QsK0VBQStFO0FBQy9FLCtFQUErRTtBQUMvRSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztBQUVoRCwwREFBMEQ7QUFDMUQsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBQzNCLFNBQVMsY0FBYztJ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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-catalog",
3
- "version": "6.12.1",
3
+ "version": "7.0.1",
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",
@@ -39,14 +39,14 @@
39
39
  "lightweight-charts": "^5.1.0",
40
40
  "lucide": "^1.8.0",
41
41
  "monaco-editor": "0.55.1",
42
- "pdfjs-dist": "^4.10.38",
42
+ "pdfjs-dist": "4.10.38",
43
43
  "xterm": "^5.3.0",
44
44
  "xterm-addon-fit": "^0.8.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@design.estate/dees-wcctools": "^3.9.3",
48
48
  "@git.zone/tsbuild": "^4.4.2",
49
- "@git.zone/tsbundle": "^2.11.4",
49
+ "@git.zone/tsbundle": "^2.13.0",
50
50
  "@git.zone/tstest": "^4.0.0",
51
51
  "@git.zone/tswatch": "^3.3.5",
52
52
  "@push.rocks/projectinfo": "^5.1.0",
@@ -63,7 +63,8 @@
63
63
  "scripts/**/*",
64
64
  "cli.js",
65
65
  ".smartconfig.json",
66
- "readme.md"
66
+ "readme.md",
67
+ "third-party-notices.md"
67
68
  ],
68
69
  "browserslist": [
69
70
  "last 1 chrome versions"
package/readme.hints.md CHANGED
@@ -22,6 +22,13 @@
22
22
  - `DeesHarnessOverflowText` owns the shared 40px right-edge fade and overflow-only reveal animation used by tool-card subtitles and Tools & Subagents activity text. It runs on hover and once after the initial two-second delay.
23
23
  - The session sidebar derives Tools & Subagents from top-level tool messages in the current retained transcript window; it never caches evicted history or includes tools inside child projections.
24
24
 
25
+ ## PDF Components
26
+
27
+ - `PdfManager` creates one local module `Worker` per load and acquires the `PDFWorker` and loading task as that load progresses. Failures and aborts release every level acquired so far; successful callers release the returned document on URL change, replacement, or disconnect.
28
+ - Keep PDF.js imported from the installed `pdfjs-dist` package. Runtime CDN imports and worker fallbacks are not allowed.
29
+ - `DeesPdfViewer` uses the PDF.js `TextLayer` class. Cleanup closes render admission, starts document release to interrupt PDF.js operations, and settles release and tracked pipelines together within a bounded deadline.
30
+ - PDF component loads are keyed by connection epoch and URL so stale loads cannot update detached, reconnected, or repurposed elements.
31
+
25
32
  ## Chart Components
26
33
 
27
34
  ### dees-chart-area
@@ -956,7 +963,7 @@ New media viewer components and a unified preview composite component.
956
963
 
957
964
  ### dees-preview (Composite Component)
958
965
  - Auto-detects content type and delegates to the appropriate viewer
959
- - Directory: `ts_web/elements/dees-preview/`
966
+ - Directory: `ts_web/elements/00group-media/dees-preview/`
960
967
  - Properties: `url`, `file` (File object), `base64`, `textContent`, `contentType` (override), `language`, `mimeType`, `filename`, `showToolbar`, `showFilename`
961
968
  - Content type detection priority: explicit override → MIME type → file extension → fallback
962
969
  - Renders: image→DeesImageViewer, pdf→DeesPdfViewer, code→DeesDataviewCodebox, audio→DeesAudioViewer, video→DeesVideoViewer, text→pre, unknown→placeholder
@@ -972,13 +979,13 @@ New media viewer components and a unified preview composite component.
972
979
  - Placeholder/error icons: `font-size: 32px`
973
980
  - Pattern: `.button-class dees-icon { font-size: 16px; }`
974
981
 
975
- ## Tile Component System (2026-01-27)
982
+ ## Thumbnail Component System (2026-01-27)
976
983
 
977
984
  A family of 200×260px content preview cards with a shared abstract base class. All tiles support lazy loading (IntersectionObserver with 200px margin), hover lift effect, click events, loading/error states, and three sizes (small: 150×195, default: 200×260, large: 250×325).
978
985
 
979
986
  ### Architecture
980
987
 
981
- - **DeesTileBase** (`dees-tile-shared/DeesTileBase.ts`) — Abstract base class extending DeesElement
988
+ - **DeesThumbnailBase** (`dees-thumbnail-shared/DeesThumbnailBase.ts`) — Abstract base class extending DeesElement
982
989
  - Common properties: `clickable`, `loading`, `error`, `size`, `label`
983
990
  - IntersectionObserver lazy loading via `onBecameVisible()` hook
984
991
  - Click dispatch via `tile-click` CustomEvent (detail from `getTileClickDetail()`)
@@ -988,30 +995,30 @@ A family of 200×260px content preview cards with a shared abstract base class.
988
995
 
989
996
  | Tag | Class | Description |
990
997
  |-----|-------|-------------|
991
- | `dees-tile-pdf` | `DeesTilePdf` | PDF page thumbnail with hover-to-browse pages. Canvas-rendered via PDF.js/CanvasPool. |
992
- | `dees-tile-image` | `DeesTileImage` | Image thumbnail with `object-fit: cover`, dimension detection on load |
993
- | `dees-tile-audio` | `DeesTileAudio` | Music icon + mini waveform (AudioContext decode), duration badge |
994
- | `dees-tile-video` | `DeesTileVideo` | Auto-captured first frame, duration badge, hover muted auto-preview |
995
- | `dees-tile-note` | `DeesTileNote` | First ~12 lines of text in monospace, gradient fade, optional language badge |
996
- | `dees-tile-folder` | `DeesTileFolder` | 2×2 grid of mini-previews (thumbnails or type icons), item count badge |
998
+ | `dees-thumbnail-pdf` | `DeesThumbnailPdf` | PDF page thumbnail with hover-to-browse pages. Canvas-rendered via PDF.js/CanvasPool. |
999
+ | `dees-thumbnail-image` | `DeesThumbnailImage` | Image thumbnail with `object-fit: cover`, dimension detection on load |
1000
+ | `dees-thumbnail-audio` | `DeesThumbnailAudio` | Music icon + mini waveform (AudioContext decode), duration badge |
1001
+ | `dees-thumbnail-video` | `DeesThumbnailVideo` | Auto-captured first frame, duration badge, hover muted auto-preview |
1002
+ | `dees-thumbnail-note` | `DeesThumbnailNote` | First ~12 lines of text in monospace, gradient fade, optional language badge |
1003
+ | `dees-thumbnail-folder` | `DeesThumbnailFolder` | 2×2 grid of mini-previews (thumbnails or type icons), item count badge |
997
1004
 
998
- ### Deprecations
1005
+ ### Removed Legacy Names
999
1006
 
1000
- - `dees-pdf-preview` Use `dees-tile-pdf` instead. Old tag still works as a thin wrapper with console warning.
1001
- - `dees-pdf` deprecation comment updated to reference `DeesTilePdf`.
1007
+ - `dees-pdf-preview`, `dees-pdf`, and `dees-tile-pdf` are removed and have no compatibility wrappers.
1008
+ - Use `dees-pdf-viewer` for full documents and `dees-thumbnail-pdf` for grid previews.
1002
1009
 
1003
1010
  ### File Structure
1004
1011
 
1005
- All tile components live in `ts_web/elements/00group-media/dees-tile-*/`:
1012
+ All thumbnail components live in `ts_web/elements/00group-media/dees-thumbnail-*/`:
1006
1013
  - `component.ts` — Main component class
1007
1014
  - `demo.ts` — Demo function
1008
1015
  - `index.ts` — Re-export
1009
- - `styles.ts` — (PDF tile only) Component-specific styles
1010
- - Shared base: `dees-tile-shared/{DeesTileBase,styles,index}.ts`
1016
+ - `styles.ts` — (PDF thumbnail only) Component-specific styles
1017
+ - Shared base: `dees-thumbnail-shared/{DeesThumbnailBase,styles,index}.ts`
1011
1018
 
1012
- ### Interface: ITileFolderItem
1019
+ ### Interface: IThumbnailFolderItem
1013
1020
  ```typescript
1014
- interface ITileFolderItem {
1021
+ interface IThumbnailFolderItem {
1015
1022
  type: 'pdf' | 'image' | 'audio' | 'video' | 'note' | 'folder' | 'unknown';
1016
1023
  thumbnailSrc?: string;
1017
1024
  name: string;
@@ -1096,7 +1103,7 @@ All components are organized into `00group-*` directories with 14 groups visible
1096
1103
  | `00group-form` | Form | 2 |
1097
1104
  | `00group-input` | Input | 18 |
1098
1105
  | `00group-layout` | Layout | 7 |
1099
- | `00group-media` | Media | 14 (viewers + PDF + tiles) |
1106
+ | `00group-media` | Media | 11 (viewers + PDF + thumbnails) |
1100
1107
  | `00group-overlay` | Overlay | 4 |
1101
1108
  | `00group-simple` | Simple | 3 |
1102
1109
  | `00group-utility` | Utility | 5 |
@@ -1111,7 +1118,7 @@ Some components appear in multiple groups via `demoGroups = ['Primary', 'Seconda
1111
1118
  - `dees-input-wysiwyg`: Input, Workspace
1112
1119
  - `dees-form-submit`: Form, Button
1113
1120
  - `dees-preview`: Media, Data View
1114
- - `dees-pdf*` / `dees-tile-pdf`: Media, PDF
1121
+ - `dees-pdf-viewer` / `dees-thumbnail-pdf`: Media, PDF
1115
1122
  - `dees-stepper`: Layout, Form
1116
1123
  - `dees-label`: Layout, Input
1117
1124
  - `dees-toast`: Feedback, Overlay
package/readme.md CHANGED
@@ -18,7 +18,7 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
18
18
  - 🔧 **TypeScript-First** — Fully typed APIs with excellent IDE support
19
19
  - 🧩 **Modular** — Use only what you need, tree-shakeable architecture
20
20
  - 🏗️ **Full App Shell** — `dees-appui` provides a complete application framework with menus, routing, activity log, and bottom bar
21
- - 🎬 **Media Components** — Rich tile-based previews for PDFs, images, audio, video, notes, and folders
21
+ - 🎬 **Media Components** — Rich thumbnail previews for PDFs, images, audio, video, notes, and folders
22
22
  - 💻 **IDE Workspace** — Full workspace component with Monaco editor, file tree, terminal, and diff viewer
23
23
 
24
24
  ## 📦 Installation
@@ -58,8 +58,8 @@ For developers working on this library, please refer to the [UI Components Playb
58
58
  | **Core UI** | [`DeesButton`](#deesbutton), [`DeesButtonExit`](#deesbuttonexit), [`DeesButtonGroup`](#deesbuttongroup), [`DeesBadge`](#deesbadge), [`DeesChips`](#deeschips), [`DeesHeading`](#deesheading), [`DeesHint`](#deeshint), [`DeesIcon`](#deesicon), [`DeesLabel`](#deeslabel), [`DeesPanel`](#deespanel), [`DeesSearchbar`](#deessearchbar), [`DeesSpinner`](#deesspinner), [`DeesToast`](#deestoast), [`DeesWindowcontrols`](#deeswindowcontrols), [`DeesActionbar`](#deesactionbar) |
59
59
  | **Forms** | [`DeesForm`](#deesform), [`DeesInputText`](#deesinputtext), [`DeesInputCheckbox`](#deesinputcheckbox), [`DeesInputDropdown`](#deesinputdropdown), [`DeesInputRadiogroup`](#deesinputradiogroup), [`DeesInputFileupload`](#deesinputfileupload), [`DeesInputIban`](#deesinputiban), [`DeesInputPhone`](#deesinputphone), [`DeesInputQuantitySelector`](#deesinputquantityselector), [`DeesInputMultitoggle`](#deesinputmultitoggle), [`DeesInputToggle`](#deesinputtoggle), [`DeesInputTags`](#deesinputtags), [`DeesInputTypelist`](#deesinputtypelist), [`DeesInputList`](#deesinputlist), [`DeesInputProfilepicture`](#deesinputprofilepicture), [`DeesInputRichtext`](#deesinputrichtext), [`DeesInputWysiwyg`](#deesinputwysiwyg), [`DeesInputDatepicker`](#deesinputdatepicker), [`DeesInputSearchselect`](#deesinputsearchselect), [`DeesInputCode`](#deesinputcode), [`DeesFormSubmit`](#deesformsubmit) |
60
60
  | **App Shell (Layout)** | [`DeesMosaic`](#deesmosaic), [`DeesAppui`](#deesappui-️), [`DeesAppuiMainmenu`](#deesappuimainmenu), [`DeesAppuiSecondarymenu`](#deesappuisecondarymenu), [`DeesAppuiMaincontent`](#deesappuimaincontent), [`DeesAppuiAppbar`](#deesappuiappbar), [`DeesAppuiActivitylog`](#deesappuiactivitylog), [`DeesAppuiBottombar`](#deesappuibottombar), [`DeesAppuiProfiledropdown`](#deesappuiprofiledropdown), [`DeesAppuiTabs`](#deesappuitabs), [`DeesMobileNavigation`](#deesmobilenavigation), [`DeesDashboardGrid`](#deesdashboardgrid) |
61
- | **Data Display** | [`DeesTable`](#deestable), [`DeesDataviewCodebox`](#deesdataviewcodebox), [`DeesDataviewStatusobject`](#deesdataviewstatusobject), [`DeesPdf`](#deespdf), [`DeesStatsGrid`](#deesstatsgrid), [`DeesPagination`](#deespagination), [`DeesStorageBrowser`](#deesstorgebrowser) |
62
- | **Media & Thumbnails** | [`DeesThumbnailPdf`](#deesthumbnailpdf), [`DeesThumbnailImage`](#deesthumbnailimage), [`DeesThumbnailAudio`](#deesthumbnailaudio), [`DeesThumbnailVideo`](#deesthumbnalvideo), [`DeesThumbnailNote`](#deesthumbnailnote), [`DeesThumbnailFolder`](#deesthumbnailfolder), [`DeesPreview`](#deespreview), [`DeesPdfViewer`](#deespdfviewer), [`DeesImageViewer`](#deesimageviewer), [`DeesAudioViewer`](#deesaudioviewer), [`DeesVideoViewer`](#deesvideoviewer) |
61
+ | **Data Display** | [`DeesTable`](#deestable), [`DeesDataviewCodebox`](#deesdataviewcodebox), [`DeesDataviewStatusobject`](#deesdataviewstatusobject), [`DeesStatsGrid`](#deesstatsgrid), [`DeesPagination`](#deespagination), [`DeesStorageBrowser`](#deesstorgebrowser) |
62
+ | **Media & Thumbnails** | [`DeesThumbnailPdf`](#deesthumbnailpdf), [`DeesThumbnailImage`](#deesthumbnailimage), [`DeesThumbnailAudio`](#deesthumbnailaudio), [`DeesThumbnailVideo`](#deesthumbnailvideo), [`DeesThumbnailNote`](#deesthumbnailnote), [`DeesThumbnailFolder`](#deesthumbnailfolder), [`DeesPreview`](#deespreview), [`DeesPdfViewer`](#deespdfviewer), [`DeesImageViewer`](#deesimageviewer), [`DeesAudioViewer`](#deesaudioviewer), [`DeesVideoViewer`](#deesvideoviewer) |
63
63
  | **Visualization** | [`DeesChartArea`](#deeschartarea), [`DeesChartBar`](#deeschartbar), [`DeesChartDonut`](#deeschartdonut), [`DeesChartGauge`](#deeschartgauge), [`DeesChartRadar`](#deeschartradar), [`DeesChartLog`](#deeschartlog) |
64
64
  | **Dialogs & Overlays** | [`DeesModal`](#deesmodal), [`DeesContextmenu`](#deescontextmenu), [`DeesSpeechbubble`](#deesspeechbubble), [`DeesWindowlayer`](#deeswindowlayer) |
65
65
  | **Navigation** | [`DeesStepper`](#deesstepper), [`DeesProgressbar`](#deesprogressbar) |
@@ -98,6 +98,9 @@ button.text = 'Click me';
98
98
  The button is keyboard operable: its face carries `role="button"` and `tabindex`, Enter and
99
99
  Space activate it (dispatching a real `click`, so both `@click` and `@clicked` fire), a
100
100
  disabled button leaves the tab order, and keyboard focus draws a `:focus-visible` ring.
101
+ Direct light-DOM text and an optional direct `dees-icon` remain consumer-owned and update
102
+ reactively. Adopted values remain observable through `text`, `icon`, and `iconPosition`; assigning
103
+ different public values independently takes control until the corresponding adopted value is restored.
101
104
 
102
105
  #### `DeesBadge`
103
106
  Display status indicators or counts with customizable styles.
@@ -1221,19 +1224,6 @@ Status display component for complex objects with nested status indicators.
1221
1224
  ></dees-dataview-statusobject>
1222
1225
  ```
1223
1226
 
1224
- #### `DeesPdf`
1225
- PDF viewer component with navigation and zoom controls.
1226
-
1227
- ```typescript
1228
- <dees-pdf
1229
- source="path/to/document.pdf" // URL or base64 encoded PDF
1230
- page={1} // Current page number
1231
- scale={1.0} // Zoom level
1232
- .controls=${['zoom', 'download', 'print', 'navigation']}
1233
- @page-change=${handlePageChange}
1234
- ></dees-pdf>
1235
- ```
1236
-
1237
1227
  #### `DeesStatsGrid`
1238
1228
  A responsive grid component for displaying statistical data with various visualization types.
1239
1229
 
@@ -1311,59 +1301,65 @@ Pagination component for navigating through large datasets.
1311
1301
 
1312
1302
  ---
1313
1303
 
1314
- ### Media & Tile Components 🎬
1304
+ ### Media & Thumbnail Components 🎬
1315
1305
 
1316
- A rich collection of tile-based preview components for displaying media files in grids. All tiles share a consistent base class (`DeesTileBase`) with lazy loading via `IntersectionObserver`, hover interactions, click events, context menus, and three size variants (`small`, `default`, `large`).
1306
+ A rich collection of thumbnail components for displaying media files in grids. All thumbnails share a consistent base class (`DeesThumbnailBase`) with lazy loading via `IntersectionObserver`, hover interactions, click events, and three size variants (`small`, `default`, `large`). `DeesThumbnailPdf` also supplies PDF-specific context-menu actions.
1317
1307
 
1318
- All tile badges use a unified styling system with label-awareness — when a `label` is set, bottom badges automatically shift up to avoid overlapping.
1308
+ Thumbnail metadata and labels share one fixed bottom information bar.
1319
1309
 
1320
- #### `DeesTilePdf`
1321
- PDF document tile with live page preview on hover.
1310
+ #### `DeesThumbnailPdf`
1311
+ PDF document thumbnail with a locally rendered page preview.
1322
1312
 
1323
1313
  ```typescript
1324
- <dees-tile-pdf
1325
- pdfUrl="/documents/report.pdf"
1314
+ <dees-thumbnail-pdf
1315
+ .pdfUrl=${'/documents/report.pdf'}
1326
1316
  label="Annual Report"
1327
- clickable
1317
+ .clickable=${true}
1328
1318
  @tile-click=${handleClick}
1329
- ></dees-tile-pdf>
1319
+ ></dees-thumbnail-pdf>
1330
1320
  ```
1331
1321
 
1332
1322
  **Key Features:**
1333
1323
  - Renders first page as canvas preview
1334
1324
  - Hover to scrub through pages (mouse X position maps to page number)
1335
- - Shows page count badge, hover page indicator
1325
+ - Shows page count, file size, and hover page indicator
1336
1326
  - Detects A4/Letter vs non-standard aspect ratios
1327
+ - Bundles the PDF.js worker locally and releases it when the URL changes or the component disconnects
1337
1328
 
1338
- #### `DeesTileImage`
1339
- Image tile with lazy loading and dimension display.
1329
+ Public properties include `pdfUrl`, `currentPreviewPage`, `pageCount`, `rendered`,
1330
+ `fileSize`, `clickable`, `loading`, `error`, `size`, and `label`. Loading starts within
1331
+ the thumbnail observer's 200px viewport preload margin. URL replacement, failed loads, and disconnection all
1332
+ release the current PDF document and worker.
1333
+
1334
+ #### `DeesThumbnailImage`
1335
+ Image thumbnail with lazy loading and dimension display.
1340
1336
 
1341
1337
  ```typescript
1342
- <dees-tile-image
1338
+ <dees-thumbnail-image
1343
1339
  src="/photos/landscape.jpg"
1344
1340
  alt="Mountain landscape"
1345
1341
  label="landscape.jpg"
1346
1342
  clickable
1347
1343
  @tile-click=${handleClick}
1348
- ></dees-tile-image>
1344
+ ></dees-thumbnail-image>
1349
1345
  ```
1350
1346
 
1351
1347
  **Key Features:**
1352
1348
  - Lazy loads image on scroll into view
1353
- - Shows image dimensions on hover (e.g. "1920 × 1080")
1349
+ - Shows image dimensions after loading (e.g. "1920 × 1080")
1354
1350
  - Checkerboard background for transparent images
1355
1351
 
1356
- #### `DeesTileAudio`
1352
+ #### `DeesThumbnailAudio`
1357
1353
  Audio file tile with waveform visualization.
1358
1354
 
1359
1355
  ```typescript
1360
- <dees-tile-audio
1356
+ <dees-thumbnail-audio
1361
1357
  src="/music/track.mp3"
1362
1358
  title="Summer Vibes"
1363
1359
  artist="DJ Example"
1364
1360
  clickable
1365
1361
  @tile-click=${handleClick}
1366
- ></dees-tile-audio>
1362
+ ></dees-thumbnail-audio>
1367
1363
  ```
1368
1364
 
1369
1365
  **Key Features:**
@@ -1372,17 +1368,17 @@ Audio file tile with waveform visualization.
1372
1368
  - Displays title and artist metadata
1373
1369
  - Play overlay on hover
1374
1370
 
1375
- #### `DeesTileVideo`
1371
+ #### `DeesThumbnailVideo`
1376
1372
  Video tile with thumbnail capture and hover preview.
1377
1373
 
1378
1374
  ```typescript
1379
- <dees-tile-video
1375
+ <dees-thumbnail-video
1380
1376
  src="/videos/intro.mp4"
1381
1377
  poster="/thumbs/intro.jpg"
1382
1378
  label="Introduction"
1383
1379
  clickable
1384
1380
  @tile-click=${handleClick}
1385
- ></dees-tile-video>
1381
+ ></dees-thumbnail-video>
1386
1382
  ```
1387
1383
 
1388
1384
  **Key Features:**
@@ -1391,31 +1387,30 @@ Video tile with thumbnail capture and hover preview.
1391
1387
  - Shows duration badge
1392
1388
  - Play button overlay
1393
1389
 
1394
- #### `DeesTileNote`
1395
- Code/text snippet tile with syntax-aware display.
1390
+ #### `DeesThumbnailNote`
1391
+ Plain-text note thumbnail with a monospace preview.
1396
1392
 
1397
1393
  ```typescript
1398
- <dees-tile-note
1394
+ <dees-thumbnail-note
1399
1395
  title="config.ts"
1400
1396
  language="TypeScript"
1401
1397
  .content=${codeString}
1402
1398
  clickable
1403
1399
  @tile-click=${handleClick}
1404
- ></dees-tile-note>
1400
+ ></dees-thumbnail-note>
1405
1401
  ```
1406
1402
 
1407
1403
  **Key Features:**
1408
- - Monospace font with line numbers
1409
- - Language badge (top-right)
1404
+ - Monospace plain-text preview
1405
+ - Optional language metadata in the bottom information bar
1410
1406
  - Scrollable content on hover (mouse X position controls scroll)
1411
- - Line indicator badge while scrolling
1412
1407
  - Gradient fade at bottom
1413
1408
 
1414
- #### `DeesTileFolder`
1409
+ #### `DeesThumbnailFolder`
1415
1410
  Folder tile with 2×2 content preview grid.
1416
1411
 
1417
1412
  ```typescript
1418
- <dees-tile-folder
1413
+ <dees-thumbnail-folder
1419
1414
  name="Project Assets"
1420
1415
  .items=${[
1421
1416
  { type: 'image', name: 'logo.png', thumbnailSrc: '/thumbs/logo.png' },
@@ -1425,7 +1420,7 @@ Folder tile with 2×2 content preview grid.
1425
1420
  ]}
1426
1421
  clickable
1427
1422
  @tile-click=${handleClick}
1428
- ></dees-tile-folder>
1423
+ ></dees-thumbnail-folder>
1429
1424
  ```
1430
1425
 
1431
1426
  **Key Features:**
@@ -1435,10 +1430,53 @@ Folder tile with 2×2 content preview grid.
1435
1430
  - Supports: `pdf`, `image`, `audio`, `video`, `note`, `folder`, `unknown` types
1436
1431
 
1437
1432
  #### `DeesPreview`
1438
- Unified preview component that auto-selects the right tile type based on content.
1433
+ Unified preview component that selects the appropriate media viewer or renderer based on content.
1434
+
1435
+ #### `DeesPdfViewer`
1436
+ Full PDF viewer with page navigation, zoom, fit modes, selectable text, downloads,
1437
+ printing, and an optional thumbnail sidebar. PDF.js and its module worker are bundled
1438
+ locally; the component owns and releases each worker as documents are replaced or the
1439
+ viewer disconnects.
1440
+
1441
+ ```typescript
1442
+ <dees-pdf-viewer
1443
+ .pdfUrl=${'/documents/report.pdf'}
1444
+ .initialPage=${1}
1445
+ .initialZoom=${'page-fit'}
1446
+ .showSidebar=${true}
1447
+ ></dees-pdf-viewer>
1448
+ ```
1449
+
1450
+ Public properties include `pdfUrl`, `initialPage`, `initialZoom`, `showToolbar`,
1451
+ `showSidebar`, `sidebarPosition`, `currentPage`, `totalPages`, `currentZoom`, `loading`,
1452
+ and `pdfFileSize`. URL replacement, failed loads, and disconnection cancel active work,
1453
+ remove observers and listeners, and release the current PDF document and worker.
1439
1454
 
1440
- #### `DeesPdfViewer` / `DeesPdfPreview`
1441
- Full PDF viewing components with navigation controls.
1455
+ #### `PdfManager`
1456
+ Use `PdfManager` when loading a PDF outside the supplied components. Always release the
1457
+ returned document. An abort signal cancels an in-flight load and triggers bounded worker
1458
+ cleanup.
1459
+
1460
+ When migrating from 6.x, pass the `PDFDocumentProxy` returned by `loadDocument()` to
1461
+ `releaseDocument()` instead of passing the source URL.
1462
+
1463
+ `PdfManager.initialize()` is retained as an asynchronous no-op for existing callers;
1464
+ static PDF.js imports require no initialization step.
1465
+
1466
+ ```typescript
1467
+ import { PdfManager } from '@design.estate/dees-catalog';
1468
+
1469
+ const abortController = new AbortController();
1470
+ const pdfDocument = await PdfManager.loadDocument(pdfUrl, abortController.signal);
1471
+
1472
+ try {
1473
+ const firstPage = await pdfDocument.getPage(1);
1474
+ // Render or inspect the page.
1475
+ firstPage.cleanup();
1476
+ } finally {
1477
+ await PdfManager.releaseDocument(pdfDocument);
1478
+ }
1479
+ ```
1442
1480
 
1443
1481
  #### `DeesImageViewer`
1444
1482
  Full-screen image viewer with zoom and pan.
@@ -1834,7 +1872,7 @@ chat.refreshMessages();
1834
1872
  chat.refreshMessages([]);
1835
1873
  ```
1836
1874
 
1837
- Key props: `messages`, `permissions`, `questions`, `status`, `transcriptKey`, `hasEarlierMessages`/`loadingEarlier`, `usage`, `todos`/`todosAuthoritative`/`showTodosPanel`, `sessionMetrics`, `scratchpad`/`scratchpadBusy`/`scratchpadError`, `sessionIntelligenceEnabled`/`intelligenceExchanges`/`intelligenceBusy`/`intelligenceError`, `showSessionSidebar`, `heading`, `subheading`, `toolbarActions`, `showToolbar`, `busy`, `queuedCount`, `steeringEnabled`, `disabled`, `suggestions`, `account`/`accountOptions`, `model`/`modelOptions`, `reasoningEffort`/`effortOptions`, `mode`/`modeOptions`, `markdownWhileStreaming`, `toolRegistry`. `toolbarActions` accepts `IHarnessChatToolbarAction[]`; each action has `id`, human-readable `label`, `iconName`, `action`, and optional `tooltip`/`disabled`, and renders immediately before the session-details toggle. `disabled: true` makes only that toolbar action inert and prevents its callback without changing the chat-level `disabled` state. `markdownWhileStreaming` defaults to `true`; setting it to `false` keeps active outer and nested subtask markdown as plain text, then performs the final markdown parse when `message-end` arrives. `suggestions` is forwarded unchanged to the controlled composer. Account options use human-readable `label` values and opaque stable `value` identifiers. The status line renders inside the transcript column (it never pushes between the session panel and the composer), and both the toolbar and the docked composer cast a subtle shadow over the scrolling messages.
1875
+ Key props: `messages`, `permissions`, `questions`, `status`, `transcriptKey`, `hasEarlierMessages`/`loadingEarlier`, `usage`, `todos`/`todosAuthoritative`/`showTodosPanel`, `sessionMetrics`, `scratchpad`/`scratchpadBusy`/`scratchpadError`, `sessionIntelligenceEnabled`/`intelligenceExchanges`/`intelligenceBusy`/`intelligenceError`/`intelligenceAvailabilityStatus`/`intelligenceUnavailableReason`/`intelligenceHeading`, `showSessionSidebar`, `heading`, `subheading`, `toolbarActions`, `showToolbar`, `busy`, `queuedCount`, `steeringEnabled`, `disabled`, `suggestions`, `account`/`accountOptions`, `model`/`modelOptions`, `reasoningEffort`/`effortOptions`, `mode`/`modeOptions`, `markdownWhileStreaming`, `toolRegistry`. `toolbarActions` accepts `IHarnessChatToolbarAction[]`; each action has `id`, human-readable `label`, `iconName`, `action`, and optional `tooltip`/`disabled`, and renders immediately before the session-details toggle. `disabled: true` makes only that toolbar action inert and prevents its callback without changing the chat-level `disabled` state. `markdownWhileStreaming` defaults to `true`; setting it to `false` keeps active outer and nested subtask markdown as plain text, then performs the final markdown parse when `message-end` arrives. `suggestions` is forwarded unchanged to the controlled composer. Account options use human-readable `label` values and opaque stable `value` identifiers. The status line renders inside the transcript column (it never pushes between the session panel and the composer), and both the toolbar and the docked composer cast a subtle shadow over the scrolling messages.
1838
1876
 
1839
1877
  After mutating canonical message objects in place, call `refreshMessages(ids?)`. Pass IDs for targeted content corrections, omit them after structural mutations, and pass an empty array for a no-op. `DeesHarnessChat.refreshMessages(ids?)` uses the list semantics and, except for `[]`, also recomputes transcript-derived sidebar state. The list and individual message components expose the corresponding `refreshMessages(ids?)` and `refreshMessage()` methods.
1840
1878
 
@@ -1842,6 +1880,8 @@ A **session side panel** shows Tasks, Tools & Subagents, Tokens, Session Scratch
1842
1880
 
1843
1881
  Set `.todosAuthoritative=${true}` when an empty host-owned task list must suppress transcript-derived fallback. A changed `transcriptKey` also clears the previous session's unsent Session Intelligence question while preserving the existing scratchpad revision handling.
1844
1882
 
1883
+ Session Intelligence availability is host-controlled through `intelligenceAvailabilityStatus` (`THarnessIntelligenceAvailabilityStatus`, exported as `'checking' | 'available' | 'unavailable'`), `intelligenceUnavailableReason`, and `intelligenceHeading`. Their compatibility defaults are `available`, an empty reason, and `Session Intelligence`. A blank heading also falls back to `Session Intelligence`, and unavailable state without a reason renders `<heading> is unavailable.` `sessionIntelligenceEnabled` remains the visibility switch. Checking and unavailable states keep exchange history visible and disable only the intelligence composer, while the main chat composer remains usable. Availability copy is rendered as text in a polite live status region; `intelligenceError` remains the separate operation-error channel.
1884
+
1845
1885
  History paging adds the composed child event `harness-load-earlier`.
1846
1886
 
1847
1887
  #### `DeesHarnessMessageList`
@@ -1953,6 +1993,8 @@ Generic session-detail panel that composes Tasks, Tools & Subagents, Tokens, Ses
1953
1993
 
1954
1994
  Scratchpad edits emit `harness-scratchpad-save` with `{ text, expectedRevision }`. A newer incoming revision preserves a dirty local draft and offers explicit **Discard draft** and **Keep draft on latest** actions before saving can continue. Intelligence questions emit `harness-session-intelligence-ask` with `{ question }`; exchanges and busy/error states remain host-controlled. Direct sidebar hosts should update `sessionKey` when changing sessions; `DeesHarnessChat` forwards `transcriptKey` automatically.
1955
1995
 
1996
+ Direct sidebar hosts can set `intelligenceAvailabilityStatus`, `intelligenceUnavailableReason`, and `intelligenceHeading`; `intelligenceEnabled` still controls whether the section exists. The properties default to `available`, an empty reason, and `Session Intelligence`. A blank heading falls back to `Session Intelligence`, and unavailable state without a reason renders `<heading> is unavailable.` Only `available` permits `harness-session-intelligence-ask`; checking and unavailable states retain history and expose accessible status text. The availability union is exported as `THarnessIntelligenceAvailabilityStatus`.
1997
+
1956
1998
  #### `DeesHarnessSessionList`
1957
1999
 
1958
2000
  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.
@@ -2199,8 +2241,8 @@ interface IViewActivationContext {
2199
2241
  params?: Record<string, string>;
2200
2242
  }
2201
2243
 
2202
- // Tile folder item (for DeesTileFolder)
2203
- interface ITileFolderItem {
2244
+ // Thumbnail folder item (for DeesThumbnailFolder)
2245
+ interface IThumbnailFolderItem {
2204
2246
  type: 'pdf' | 'image' | 'audio' | 'video' | 'note' | 'folder' | 'unknown';
2205
2247
  thumbnailSrc?: string;
2206
2248
  name: string;
@@ -2216,6 +2258,11 @@ interface ITileFolderItem {
2216
2258
  > TradingView Lightweight Charts™<br>
2217
2259
  > Copyright (с) 2025 TradingView, Inc. https://www.tradingview.com/
2218
2260
 
2261
+ `DeesPdfViewer` and `DeesThumbnailPdf` bundle Mozilla PDF.js 4.10.38 and its
2262
+ module worker under the Apache License 2.0. The attribution and complete license text are
2263
+ provided in [third-party-notices.md](./third-party-notices.md) and copied into
2264
+ `dist_bundle/` for standalone bundle distributions.
2265
+
2219
2266
  ## License and Legal Information
2220
2267
 
2221
2268
  This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.