@design.estate/dees-catalog 3.48.5 → 3.49.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 (175) hide show
  1. package/dist_bundle/bundle.js +8828 -3872
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.demo.js +1 -1
  4. package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.js +2 -2
  5. package/dist_ts_web/elements/00group-appui/dees-appui/view.registry.js +1 -1
  6. package/dist_ts_web/elements/00group-appui/dees-appui-appbar/component.js +1 -1
  7. package/dist_ts_web/elements/00group-appui/dees-appui-appbar/demo.js +1 -1
  8. package/dist_ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.js +1 -1
  9. package/dist_ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.js +1 -1
  10. package/dist_ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.js +2 -2
  11. package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.d.ts +1 -1
  12. package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.js +2 -2
  13. package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.js +1 -1
  14. package/dist_ts_web/elements/00group-button/dees-button/dees-button.demo.js +1 -1
  15. package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +1 -1
  16. package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +1 -1
  17. package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +1 -1
  18. package/dist_ts_web/elements/00group-chart/dees-chart-area/demo.js +1 -1
  19. package/dist_ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.js +1 -1
  20. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +1 -1
  21. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +1 -1
  22. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.demo.js +4 -1
  23. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.js +30 -3
  24. package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.js +1 -1
  25. package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +1 -1
  26. package/dist_ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.js +1 -1
  27. package/dist_ts_web/elements/00group-form/dees-form/dees-form.demo.js +7 -7
  28. package/dist_ts_web/elements/00group-form/dees-form/dees-form.js +9 -6
  29. package/dist_ts_web/elements/00group-form/dees-form-submit/dees-form-submit.js +1 -1
  30. package/dist_ts_web/elements/00group-input/dees-input-base/dees-input-base.js +1 -1
  31. package/dist_ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.js +1 -1
  32. package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.js +1 -1
  33. package/dist_ts_web/elements/00group-input/dees-input-datepicker/demo.js +15 -15
  34. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.d.ts +4 -4
  35. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.js +17 -17
  36. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.js +1 -1
  37. package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.d.ts +1 -1
  38. package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.js +1 -1
  39. package/dist_ts_web/elements/00group-input/dees-input-iban/dees-input-iban.js +4 -2
  40. package/dist_ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.js +1 -1
  41. package/dist_ts_web/elements/00group-input/dees-input-phone/dees-input-phone.js +1 -1
  42. package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.d.ts +1 -1
  43. package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.js +1 -1
  44. package/dist_ts_web/elements/00group-input/dees-input-richtext/component.js +1 -1
  45. package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.js +7 -6
  46. package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.js +1 -1
  47. package/dist_ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.js +7 -5
  48. package/dist_ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.js +1 -1
  49. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.js +6 -5
  50. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.js +6 -5
  51. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.js +6 -5
  52. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.js +6 -5
  53. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.js +16 -13
  54. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.js +3 -3
  55. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.js +19 -15
  56. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.js +1 -1
  57. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.d.ts +3 -3
  58. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.js +1 -1
  59. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.js +1 -1
  60. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.js +1 -1
  61. package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.js +7 -7
  62. package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.js +3 -3
  63. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.d.ts +1 -1
  64. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.js +1 -1
  65. package/dist_ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.js +11 -8
  66. package/dist_ts_web/elements/00group-layout/dees-label/dees-label.js +1 -1
  67. package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +1 -1
  68. package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.js +3 -3
  69. package/dist_ts_web/elements/00group-media/dees-tile-pdf/demo.js +1 -1
  70. package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +1 -1
  71. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.js +2 -2
  72. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.js +1 -1
  73. package/dist_ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.js +1 -1
  74. package/dist_ts_web/elements/00group-runtime/environments/WebContainerEnvironment.js +1 -1
  75. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.js +1 -1
  76. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.d.ts +3 -3
  77. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +2 -2
  78. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.js +3 -3
  79. package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js +1 -1
  80. package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js +1 -1
  81. package/dist_ts_web/elements/00group-utility/dees-searchbar/dees-searchbar.d.ts +1 -1
  82. package/dist_ts_web/elements/00group-utility/dees-updater/dees-updater.js +1 -1
  83. package/dist_ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.js +1 -1
  84. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.d.ts +1 -1
  85. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.js +1 -1
  86. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.js +1 -1
  87. package/dist_ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js +1 -1
  88. package/dist_ts_web/pages/zindex-showcase.js +1 -1
  89. package/dist_ts_web/services/DeesServiceLibLoader.js +1 -1
  90. package/dist_ts_web/services/versions.d.ts +1 -1
  91. package/dist_ts_web/services/versions.js +1 -1
  92. package/dist_watch/bundle.js +174 -146
  93. package/dist_watch/bundle.js.map +3 -3
  94. package/license +3 -6
  95. package/package.json +12 -12
  96. package/readme.md +6 -4
  97. package/ts_web/00_commitinfo_data.ts +1 -1
  98. package/ts_web/elements/00group-appui/dees-appui/dees-appui.demo.ts +2 -2
  99. package/ts_web/elements/00group-appui/dees-appui/dees-appui.ts +1 -1
  100. package/ts_web/elements/00group-appui/dees-appui/view.registry.ts +1 -1
  101. package/ts_web/elements/00group-appui/dees-appui-appbar/component.ts +1 -1
  102. package/ts_web/elements/00group-appui/dees-appui-appbar/demo.ts +5 -5
  103. package/ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.ts +1 -1
  104. package/ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.ts +1 -1
  105. package/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.ts +8 -8
  106. package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.ts +1 -1
  107. package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.ts +6 -6
  108. package/ts_web/elements/00group-button/dees-button/dees-button.demo.ts +5 -5
  109. package/ts_web/elements/00group-button/dees-button/dees-button.ts +3 -3
  110. package/ts_web/elements/00group-chart/dees-chart-area/component.ts +13 -13
  111. package/ts_web/elements/00group-chart/dees-chart-area/demo.ts +5 -5
  112. package/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.ts +2 -2
  113. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +4 -4
  114. package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.demo.ts +3 -0
  115. package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts +31 -4
  116. package/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts +1 -1
  117. package/ts_web/elements/00group-dataview/dees-table/dees-table.ts +12 -12
  118. package/ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.ts +1 -1
  119. package/ts_web/elements/00group-form/dees-form/dees-form.demo.ts +8 -8
  120. package/ts_web/elements/00group-form/dees-form/dees-form.ts +7 -5
  121. package/ts_web/elements/00group-form/dees-form-submit/dees-form-submit.ts +2 -2
  122. package/ts_web/elements/00group-input/dees-input-base/dees-input-base.ts +3 -3
  123. package/ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.ts +1 -1
  124. package/ts_web/elements/00group-input/dees-input-code/dees-input-code.ts +3 -3
  125. package/ts_web/elements/00group-input/dees-input-datepicker/demo.ts +19 -19
  126. package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.ts +18 -18
  127. package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.ts +5 -5
  128. package/ts_web/elements/00group-input/dees-input-fileupload/component.ts +3 -3
  129. package/ts_web/elements/00group-input/dees-input-iban/dees-input-iban.ts +5 -3
  130. package/ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.ts +4 -4
  131. package/ts_web/elements/00group-input/dees-input-phone/dees-input-phone.ts +1 -1
  132. package/ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.ts +5 -5
  133. package/ts_web/elements/00group-input/dees-input-richtext/component.ts +5 -5
  134. package/ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.ts +6 -5
  135. package/ts_web/elements/00group-input/dees-input-text/dees-input-text.ts +6 -6
  136. package/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.ts +12 -10
  137. package/ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.ts +1 -1
  138. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.ts +5 -4
  139. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.ts +5 -4
  140. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.ts +5 -4
  141. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.ts +5 -4
  142. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.ts +19 -16
  143. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts +6 -6
  144. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.ts +24 -20
  145. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.ts +2 -2
  146. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.ts +4 -4
  147. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.ts +8 -8
  148. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.ts +2 -2
  149. package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.ts +8 -8
  150. package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.ts +2 -2
  151. package/ts_web/elements/00group-layout/dees-chips/dees-chips.ts +1 -1
  152. package/ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.ts +16 -12
  153. package/ts_web/elements/00group-layout/dees-label/dees-label.ts +1 -1
  154. package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +7 -7
  155. package/ts_web/elements/00group-media/dees-pdf-shared/utils.ts +2 -2
  156. package/ts_web/elements/00group-media/dees-tile-pdf/demo.ts +1 -1
  157. package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +3 -3
  158. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.ts +24 -24
  159. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.ts +10 -10
  160. package/ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.ts +6 -6
  161. package/ts_web/elements/00group-runtime/environments/WebContainerEnvironment.ts +1 -1
  162. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts +10 -10
  163. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +6 -6
  164. package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.ts +6 -6
  165. package/ts_web/elements/00group-utility/dees-icon/dees-icon.demo.ts +3 -3
  166. package/ts_web/elements/00group-utility/dees-icon/dees-icon.ts +6 -6
  167. package/ts_web/elements/00group-utility/dees-updater/dees-updater.ts +3 -3
  168. package/ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.ts +4 -4
  169. package/ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.ts +9 -9
  170. package/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.ts +3 -3
  171. package/ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.ts +2 -2
  172. package/ts_web/pages/zindex-showcase.ts +11 -11
  173. package/ts_web/services/DeesServiceLibLoader.ts +2 -2
  174. package/ts_web/services/versions.ts +1 -1
  175. /package/{npmextra.json → .smartconfig.json} +0 -0
@@ -1,5 +1,6 @@
1
1
  import { html, css, cssManager } from '@design.estate/dees-element';
2
2
  import type { DeesDashboardgrid } from './dees-dashboardgrid.js';
3
+ import type { LayoutDirection } from './types.js';
3
4
  import '@design.estate/dees-wcctools/demotools';
4
5
 
5
6
  export const demoFunc = () => {
@@ -160,7 +161,7 @@ export const demoFunc = () => {
160
161
  });
161
162
 
162
163
  // Enhanced logging for reflow events
163
- let lastPlaceholderPosition = null;
164
+ let lastPlaceholderPosition: Record<string, string> | null = null;
164
165
  let moveEventCounter = 0;
165
166
 
166
167
  // Helper function to log grid state
@@ -231,25 +232,28 @@ export const demoFunc = () => {
231
232
  // Log initial state
232
233
  logGridState('Initial Grid State');
233
234
 
234
- grid.addEventListener('widget-move', (e: CustomEvent) => {
235
+ grid.addEventListener('widget-move', (e: Event) => {
236
+ const detail = (e as CustomEvent).detail;
235
237
  logGridState('Widget Move', {
236
- widget: e.detail.widget,
237
- displaced: e.detail.displaced,
238
- swappedWith: e.detail.swappedWith
238
+ widget: detail.widget,
239
+ displaced: detail.displaced,
240
+ swappedWith: detail.swappedWith
239
241
  });
240
242
  });
241
243
 
242
- grid.addEventListener('widget-resize', (e: CustomEvent) => {
244
+ grid.addEventListener('widget-resize', (e: Event) => {
245
+ const detail = (e as CustomEvent).detail;
243
246
  logGridState('Widget Resize', {
244
- widget: e.detail.widget,
245
- displaced: e.detail.displaced,
246
- swappedWith: e.detail.swappedWith
247
+ widget: detail.widget,
248
+ displaced: detail.displaced,
249
+ swappedWith: detail.swappedWith
247
250
  });
248
251
  });
249
252
 
250
- grid.addEventListener('widget-remove', (e: CustomEvent) => {
253
+ grid.addEventListener('widget-remove', (e: Event) => {
254
+ const detail = (e as CustomEvent).detail;
251
255
  logGridState('Widget Remove', {
252
- removedWidget: e.detail.widget
256
+ removedWidget: detail.widget
253
257
  });
254
258
  updateStatus();
255
259
  });
@@ -312,7 +316,7 @@ export const demoFunc = () => {
312
316
 
313
317
  // Log compact operations
314
318
  const originalCompact = grid.compact.bind(grid);
315
- grid.compact = (direction?: string) => {
319
+ grid.compact = (direction?: LayoutDirection) => {
316
320
  console.group('🗜️ Compacting Grid');
317
321
  console.log('Direction:', direction || 'vertical');
318
322
  logGridState('Before Compact');
@@ -32,7 +32,7 @@ export class DeesLabel extends DeesElement {
32
32
  type: String,
33
33
  reflect: true,
34
34
  })
35
- accessor description: string;
35
+ accessor description!: string;
36
36
 
37
37
  @property({
38
38
  type: Boolean,
@@ -45,7 +45,7 @@ export class DeesStepper extends DeesElement {
45
45
  @property({
46
46
  type: Object,
47
47
  })
48
- accessor selectedStep: IStep;
48
+ accessor selectedStep!: IStep;
49
49
 
50
50
  constructor() {
51
51
  super();
@@ -214,19 +214,19 @@ export class DeesStepper extends DeesElement {
214
214
  this.setScrollStatus();
215
215
  // Remove entrance class after initial animation completes
216
216
  await this.domtools.convenience.smartdelay.delayFor(350);
217
- this.shadowRoot.querySelector('.step.entrance')?.classList.remove('entrance');
217
+ this.shadowRoot!.querySelector('.step.entrance')?.classList.remove('entrance');
218
218
  }
219
219
 
220
220
  public async updated() {
221
221
  this.setScrollStatus();
222
222
  }
223
223
 
224
- public scroller: typeof domtools.plugins.SweetScroll.prototype;
224
+ public scroller!: typeof domtools.plugins.SweetScroll.prototype;
225
225
 
226
226
  public async setScrollStatus() {
227
- const stepperContainer: HTMLElement = this.shadowRoot.querySelector('.stepperContainer');
228
- const firstStepElement: HTMLElement = this.shadowRoot.querySelector('.step');
229
- const selectedStepElement: HTMLElement = this.shadowRoot.querySelector('.selected');
227
+ const stepperContainer = this.shadowRoot!.querySelector('.stepperContainer') as HTMLElement;
228
+ const firstStepElement = this.shadowRoot!.querySelector('.step') as HTMLElement;
229
+ const selectedStepElement = this.shadowRoot!.querySelector('.selected') as HTMLElement;
230
230
  if (!selectedStepElement) {
231
231
  return;
232
232
  }
@@ -278,7 +278,7 @@ export class DeesStepper extends DeesElement {
278
278
  this.selectedStep = previousStep;
279
279
  await this.domtoolsPromise;
280
280
  await this.domtools.convenience.smartdelay.delayFor(100);
281
- this.selectedStep.onReturnToStepFunc?.(this, this.shadowRoot.querySelector('.selected'));
281
+ this.selectedStep.onReturnToStepFunc?.(this, this.shadowRoot!.querySelector('.selected') as HTMLElement);
282
282
  }
283
283
 
284
284
  public goNext() {
@@ -21,9 +21,9 @@ export function throttle<T extends (...args: any[]) => any>(
21
21
  ): (...args: Parameters<T>) => void {
22
22
  let inThrottle: boolean;
23
23
 
24
- return function executedFunction(...args: Parameters<T>) {
24
+ return (...args: Parameters<T>) => {
25
25
  if (!inThrottle) {
26
- func.apply(this, args);
26
+ func(...args);
27
27
  inThrottle = true;
28
28
  setTimeout(() => inThrottle = false, limit);
29
29
  }
@@ -7,7 +7,7 @@ export const demo = () => {
7
7
  ];
8
8
 
9
9
  const generateGridItems = (count: number) => {
10
- const items = [];
10
+ const items: ReturnType<typeof html>[] = [];
11
11
  for (let i = 0; i < count; i++) {
12
12
  const pdfUrl = samplePdfs[i % samplePdfs.length];
13
13
  items.push(html`
@@ -130,7 +130,7 @@ export class DeesContextmenu extends DeesElement {
130
130
  type: Array,
131
131
  })
132
132
  accessor menuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[]; divider?: never } | { divider: true })[] = [];
133
- windowLayer: DeesWindowLayer;
133
+ windowLayer!: DeesWindowLayer;
134
134
 
135
135
  private submenu: DeesContextmenu | null = null;
136
136
  private submenuTimeout: any = null;
@@ -278,7 +278,7 @@ export class DeesContextmenu extends DeesElement {
278
278
  }
279
279
 
280
280
  private handleKeydown = (event: KeyboardEvent) => {
281
- const menuItems = Array.from(this.shadowRoot.querySelectorAll('.menuitem:not(.disabled)'));
281
+ const menuItems = Array.from(this.shadowRoot!.querySelectorAll('.menuitem:not(.disabled)'));
282
282
  const currentIndex = menuItems.findIndex(item => item.matches(':hover'));
283
283
 
284
284
  switch (event.key) {
@@ -352,7 +352,7 @@ export class DeesContextmenu extends DeesElement {
352
352
  if (!menuItem.submenu || menuItem.submenu.length === 0) return;
353
353
 
354
354
  // Find the menu item element
355
- const menuItems = Array.from(this.shadowRoot.querySelectorAll('.menuitem'));
355
+ const menuItems = Array.from(this.shadowRoot!.querySelectorAll('.menuitem'));
356
356
  const menuItemElement = menuItems.find(el => el.querySelector('.menuitem-text')?.textContent === menuItem.name) as HTMLElement;
357
357
  if (!menuItemElement) return;
358
358
 
@@ -49,7 +49,7 @@ export const demoFunc = () => html`
49
49
  heading: 'With Help Button',
50
50
  showHelpButton: true,
51
51
  onHelp: async () => {
52
- const helpModal = await DeesModal.createAndShow({
52
+ await DeesModal.createAndShow({
53
53
  heading: 'Help',
54
54
  width: 'small',
55
55
  showCloseButton: true,
@@ -60,7 +60,7 @@ export const demoFunc = () => html`
60
60
  `,
61
61
  menuOptions: [{
62
62
  name: 'Got it',
63
- action: async (modal) => modal.destroy()
63
+ action: async (modal) => modal!.destroy()
64
64
  }],
65
65
  });
66
66
  },
@@ -70,7 +70,7 @@ export const demoFunc = () => html`
70
70
  `,
71
71
  menuOptions: [{
72
72
  name: 'OK',
73
- action: async (modal) => modal.destroy()
73
+ action: async (modal) => modal!.destroy()
74
74
  }],
75
75
  });
76
76
  }}>With Help Button</dees-button>
@@ -85,7 +85,7 @@ export const demoFunc = () => html`
85
85
  `,
86
86
  menuOptions: [{
87
87
  name: 'Close',
88
- action: async (modal) => modal.destroy()
88
+ action: async (modal) => modal!.destroy()
89
89
  }],
90
90
  });
91
91
  }}>No Close Button</dees-button>
@@ -101,7 +101,7 @@ export const demoFunc = () => html`
101
101
  `,
102
102
  menuOptions: [{
103
103
  name: 'Done',
104
- action: async (modal) => modal.destroy()
104
+ action: async (modal) => modal!.destroy()
105
105
  }],
106
106
  });
107
107
  }}>Both Buttons</dees-button>
@@ -116,7 +116,7 @@ export const demoFunc = () => html`
116
116
  `,
117
117
  menuOptions: [{
118
118
  name: 'Close',
119
- action: async (modal) => modal.destroy()
119
+ action: async (modal) => modal!.destroy()
120
120
  }],
121
121
  });
122
122
  }}>Clean Header</dees-button>
@@ -136,10 +136,10 @@ export const demoFunc = () => html`
136
136
  `,
137
137
  menuOptions: [{
138
138
  name: 'Cancel',
139
- action: async (modal) => modal.destroy()
139
+ action: async (modal) => modal!.destroy()
140
140
  }, {
141
141
  name: 'OK',
142
- action: async (modal) => modal.destroy()
142
+ action: async (modal) => modal!.destroy()
143
143
  }],
144
144
  });
145
145
  }}>Small Modal</dees-button>
@@ -157,10 +157,10 @@ export const demoFunc = () => html`
157
157
  `,
158
158
  menuOptions: [{
159
159
  name: 'Cancel',
160
- action: async (modal) => modal.destroy()
160
+ action: async (modal) => modal!.destroy()
161
161
  }, {
162
162
  name: 'Sign Up',
163
- action: async (modal) => modal.destroy()
163
+ action: async (modal) => modal!.destroy()
164
164
  }],
165
165
  });
166
166
  }}>Medium Modal</dees-button>
@@ -181,10 +181,10 @@ export const demoFunc = () => html`
181
181
  `,
182
182
  menuOptions: [{
183
183
  name: 'Cancel',
184
- action: async (modal) => modal.destroy()
184
+ action: async (modal) => modal!.destroy()
185
185
  }, {
186
186
  name: 'Save',
187
- action: async (modal) => modal.destroy()
187
+ action: async (modal) => modal!.destroy()
188
188
  }],
189
189
  });
190
190
  }}>Large Modal</dees-button>
@@ -207,10 +207,10 @@ export const demoFunc = () => html`
207
207
  `,
208
208
  menuOptions: [{
209
209
  name: 'Save',
210
- action: async (modal) => modal.destroy()
210
+ action: async (modal) => modal!.destroy()
211
211
  }, {
212
212
  name: 'Cancel',
213
- action: async (modal) => modal.destroy()
213
+ action: async (modal) => modal!.destroy()
214
214
  }],
215
215
  });
216
216
  }}>Fullscreen Modal</dees-button>
@@ -230,7 +230,7 @@ export const demoFunc = () => html`
230
230
  `,
231
231
  menuOptions: [{
232
232
  name: 'Close',
233
- action: async (modal) => modal.destroy()
233
+ action: async (modal) => modal!.destroy()
234
234
  }],
235
235
  });
236
236
  }}>Custom 700px</dees-button>
@@ -245,7 +245,7 @@ export const demoFunc = () => html`
245
245
  `,
246
246
  menuOptions: [{
247
247
  name: 'Got it',
248
- action: async (modal) => modal.destroy()
248
+ action: async (modal) => modal!.destroy()
249
249
  }],
250
250
  });
251
251
  }}>Max Width 600px</dees-button>
@@ -260,7 +260,7 @@ export const demoFunc = () => html`
260
260
  `,
261
261
  menuOptions: [{
262
262
  name: 'OK',
263
- action: async (modal) => modal.destroy()
263
+ action: async (modal) => modal!.destroy()
264
264
  }],
265
265
  });
266
266
  }}>Min Width 400px</dees-button>
@@ -279,13 +279,13 @@ export const demoFunc = () => html`
279
279
  `,
280
280
  menuOptions: [{
281
281
  name: 'Delete',
282
- action: async (modal) => modal.destroy()
282
+ action: async (modal) => modal!.destroy()
283
283
  }, {
284
284
  name: 'Cancel',
285
- action: async (modal) => modal.destroy()
285
+ action: async (modal) => modal!.destroy()
286
286
  }, {
287
287
  name: 'Save Changes',
288
- action: async (modal) => modal.destroy()
288
+ action: async (modal) => modal!.destroy()
289
289
  }],
290
290
  });
291
291
  }}>Three Buttons</dees-button>
@@ -298,7 +298,7 @@ export const demoFunc = () => html`
298
298
  `,
299
299
  menuOptions: [{
300
300
  name: 'Acknowledge',
301
- action: async (modal) => modal.destroy()
301
+ action: async (modal) => modal!.destroy()
302
302
  }],
303
303
  });
304
304
  }}>Single Button</dees-button>
@@ -322,10 +322,10 @@ export const demoFunc = () => html`
322
322
  `,
323
323
  menuOptions: [{
324
324
  name: 'Discard All Changes',
325
- action: async (modal) => modal.destroy()
325
+ action: async (modal) => modal!.destroy()
326
326
  }, {
327
327
  name: 'Save and Continue Editing',
328
- action: async (modal) => modal.destroy()
328
+ action: async (modal) => modal!.destroy()
329
329
  }],
330
330
  });
331
331
  }}>Long Labels</dees-button>
@@ -347,7 +347,7 @@ export const demoFunc = () => html`
347
347
  `,
348
348
  menuOptions: [{
349
349
  name: 'Close',
350
- action: async (modal) => modal.destroy()
350
+ action: async (modal) => modal!.destroy()
351
351
  }],
352
352
  });
353
353
  }}>Test Responsive</dees-button>
@@ -85,7 +85,7 @@ export class DeesModal extends DeesElement {
85
85
  accessor heading = '';
86
86
 
87
87
  @state({})
88
- accessor content: TemplateResult;
88
+ accessor content!: TemplateResult;
89
89
 
90
90
  @state({})
91
91
  accessor menuOptions: plugins.tsclass.website.IMenuItem<DeesModal>[] = [];
@@ -94,10 +94,10 @@ export class DeesModal extends DeesElement {
94
94
  accessor width: 'small' | 'medium' | 'large' | 'fullscreen' | number = 'medium';
95
95
 
96
96
  @property({ type: Number })
97
- accessor maxWidth: number;
97
+ accessor maxWidth!: number;
98
98
 
99
99
  @property({ type: Number })
100
- accessor minWidth: number;
100
+ accessor minWidth!: number;
101
101
 
102
102
  @property({ type: Boolean })
103
103
  accessor showCloseButton: boolean = true;
@@ -106,7 +106,7 @@ export class DeesModal extends DeesElement {
106
106
  accessor showHelpButton: boolean = false;
107
107
 
108
108
  @property({ attribute: false })
109
- accessor onHelp: () => void | Promise<void>;
109
+ accessor onHelp!: () => void | Promise<void>;
110
110
 
111
111
  @property({ type: Boolean })
112
112
  accessor mobileFullscreen: boolean = false;
@@ -383,18 +383,18 @@ export class DeesModal extends DeesElement {
383
383
  `;
384
384
  }
385
385
 
386
- private windowLayer: DeesWindowLayer;
386
+ private windowLayer!: DeesWindowLayer;
387
387
  public async firstUpdated(_changedProperties: Map<string | number | symbol, unknown>) {
388
388
  super.firstUpdated(_changedProperties);
389
389
  const domtools = await this.domtoolsPromise;
390
390
  await domtools.convenience.smartdelay.delayFor(30);
391
- const modal = this.shadowRoot.querySelector('.modal');
392
- modal.classList.add('show');
391
+ const modal = this.shadowRoot!.querySelector('.modal');
392
+ modal!.classList.add('show');
393
393
  }
394
394
 
395
395
  public async handleOutsideClick(eventArg: MouseEvent) {
396
396
  eventArg.stopPropagation();
397
- const modalContainer = this.shadowRoot.querySelector('.modalContainer');
397
+ const modalContainer = this.shadowRoot!.querySelector('.modalContainer');
398
398
  if (eventArg.target === modalContainer) {
399
399
  await this.destroy();
400
400
  }
@@ -402,8 +402,8 @@ export class DeesModal extends DeesElement {
402
402
 
403
403
  public async destroy() {
404
404
  const domtools = await this.domtoolsPromise;
405
- const modal = this.shadowRoot.querySelector('.modal');
406
- modal.classList.add('predestroy');
405
+ const modal = this.shadowRoot!.querySelector('.modal');
406
+ modal!.classList.add('predestroy');
407
407
  await domtools.convenience.smartdelay.delayFor(200);
408
408
  document.body.removeChild(this);
409
409
  await this.windowLayer.destroy();
@@ -42,7 +42,7 @@ export class DeesSpeechbubble extends DeesElement {
42
42
  speechbubble.manifested = true;
43
43
  windowLayer.appendChild(speechbubble);
44
44
  windowLayer.style.pointerEvents = 'none';
45
- (windowLayer.shadowRoot.querySelector('.windowOverlay') as HTMLElement).style.pointerEvents = 'none';
45
+ (windowLayer.shadowRoot!.querySelector('.windowOverlay') as HTMLElement).style.pointerEvents = 'none';
46
46
  return speechbubble;
47
47
  }
48
48
 
@@ -50,13 +50,13 @@ export class DeesSpeechbubble extends DeesElement {
50
50
  @property({
51
51
  type: Object,
52
52
  })
53
- accessor reffedElement: HTMLElement;
53
+ accessor reffedElement!: HTMLElement;
54
54
 
55
55
  @property({
56
56
  type: String,
57
57
  reflect: true,
58
58
  })
59
- accessor text: string;
59
+ accessor text!: string;
60
60
 
61
61
  @property({
62
62
  type: Boolean,
@@ -73,7 +73,7 @@ export class DeesSpeechbubble extends DeesElement {
73
73
  })
74
74
  accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';
75
75
 
76
- public windowLayer: DeesWindowLayer;
76
+ public windowLayer!: DeesWindowLayer;
77
77
 
78
78
  constructor() {
79
79
  super();
@@ -189,7 +189,7 @@ export class DeesSpeechbubble extends DeesElement {
189
189
  }
190
190
  if (this.manifested) {
191
191
  await this.updatePosition();
192
- (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '1';
192
+ (this.shadowRoot!.querySelector('.maincontainer') as HTMLElement).style.opacity = '1';
193
193
  } else {
194
194
  // lets make sure we instrument it
195
195
  let speechbubble: DeesSpeechbubble;
@@ -227,7 +227,7 @@ export class DeesSpeechbubble extends DeesElement {
227
227
  public async show() {}
228
228
 
229
229
  public async destroy() {
230
- (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '0';
230
+ (this.shadowRoot!.querySelector('.maincontainer') as HTMLElement).style.opacity = '0';
231
231
  this.windowLayer.destroy();
232
232
  }
233
233
  }
@@ -132,7 +132,7 @@ export class WebContainerEnvironment implements IExecutionEnvironment {
132
132
  const watcher = this.container!.fs.watch(
133
133
  path,
134
134
  { recursive: options?.recursive ?? false },
135
- callback
135
+ callback as (event: 'rename' | 'change', filename: string | Uint8Array) => void
136
136
  );
137
137
  return {
138
138
  stop: () => watcher.close(),
@@ -109,14 +109,14 @@ export const demoFunc = () => html`
109
109
 
110
110
  <dees-panel .title=${'Interactive Shopping Cart'} .subtitle=${'Product cards with dynamic cart calculation'} .runAfterRender=${async (elementArg: HTMLElement) => {
111
111
  const products = [
112
- { id: 'laptop', element: null, data: { name: 'MacBook Pro 14"', category: 'Computers', description: 'M3 Pro chip with 18GB RAM', price: 1999, originalPrice: 2199, iconName: 'lucide:laptop' }},
113
- { id: 'ipad', element: null, data: { name: 'iPad Air', category: 'Tablets', description: '10.9" Liquid Retina display', price: 599, iconName: 'lucide:tablet' }},
114
- { id: 'keyboard', element: null, data: { name: 'Magic Keyboard', category: 'Accessories', description: 'Wireless keyboard with Touch ID', price: 149, iconName: 'lucide:keyboard' }}
112
+ { id: 'laptop', element: null as DeesShoppingProductcard | null, data: { name: 'MacBook Pro 14"', category: 'Computers', description: 'M3 Pro chip with 18GB RAM', price: 1999, originalPrice: 2199, iconName: 'lucide:laptop' }},
113
+ { id: 'ipad', element: null as DeesShoppingProductcard | null, data: { name: 'iPad Air', category: 'Tablets', description: '10.9" Liquid Retina display', price: 599, iconName: 'lucide:tablet' }},
114
+ { id: 'keyboard', element: null as DeesShoppingProductcard | null, data: { name: 'Magic Keyboard', category: 'Accessories', description: 'Wireless keyboard with Touch ID', price: 149, iconName: 'lucide:keyboard' }}
115
115
  ];
116
116
 
117
117
  const updateCartSummary = () => {
118
118
  let total = 0;
119
- const items = [];
119
+ const items: string[] = [];
120
120
 
121
121
  products.forEach(product => {
122
122
  const element = elementArg.querySelector(`#${product.id}`) as DeesShoppingProductcard;
@@ -216,8 +216,8 @@ export const demoFunc = () => html`
216
216
  const output = document.querySelector('#selection-output');
217
217
  if (output) {
218
218
  const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');
219
- const selectedProducts = [];
220
- selectedCards.forEach((card: DeesShoppingProductcard) => {
219
+ const selectedProducts: string[] = [];
220
+ (selectedCards as NodeListOf<DeesShoppingProductcard>).forEach((card) => {
221
221
  if (card.selected) {
222
222
  selectedProducts.push(card.productData.name);
223
223
  }
@@ -243,8 +243,8 @@ export const demoFunc = () => html`
243
243
  const output = document.querySelector('#selection-output');
244
244
  if (output) {
245
245
  const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');
246
- const selectedProducts = [];
247
- selectedCards.forEach((card: DeesShoppingProductcard) => {
246
+ const selectedProducts: string[] = [];
247
+ (selectedCards as NodeListOf<DeesShoppingProductcard>).forEach((card) => {
248
248
  if (card.selected) {
249
249
  selectedProducts.push(card.productData.name);
250
250
  }
@@ -271,8 +271,8 @@ export const demoFunc = () => html`
271
271
  const output = document.querySelector('#selection-output');
272
272
  if (output) {
273
273
  const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');
274
- const selectedProducts = [];
275
- selectedCards.forEach((card: DeesShoppingProductcard) => {
274
+ const selectedProducts: string[] = [];
275
+ (selectedCards as NodeListOf<DeesShoppingProductcard>).forEach((card) => {
276
276
  if (card.selected) {
277
277
  selectedProducts.push(card.productData.name);
278
278
  }
@@ -46,7 +46,7 @@ export class DeesSimpleAppDash extends DeesElement {
46
46
  accessor terminalSetupCommand: string = `echo "Terminal ready"`;
47
47
 
48
48
  @state()
49
- accessor selectedView: IView;
49
+ accessor selectedView!: IView;
50
50
 
51
51
 
52
52
  public static styles = [
@@ -386,7 +386,7 @@ export class DeesSimpleAppDash extends DeesElement {
386
386
  `;
387
387
  }
388
388
 
389
- public async firstUpdated(_changedProperties): Promise<void> {
389
+ public async firstUpdated(_changedProperties: Map<string | number | symbol, unknown>): Promise<void> {
390
390
  const domtools = await this.domtoolsPromise;
391
391
  super.firstUpdated(_changedProperties);
392
392
  if (this.viewTabs && this.viewTabs.length > 0) {
@@ -395,7 +395,7 @@ export class DeesSimpleAppDash extends DeesElement {
395
395
  }
396
396
  }
397
397
 
398
- public currentTerminal: DeesWorkspaceTerminal;
398
+ public currentTerminal: DeesWorkspaceTerminal | null = null;
399
399
  public async launchTerminal() {
400
400
  const domtools = await this.domtoolsPromise;
401
401
  if (this.currentTerminal) {
@@ -404,7 +404,7 @@ export class DeesSimpleAppDash extends DeesElement {
404
404
  return;
405
405
  }
406
406
 
407
- const maincontainer = this.shadowRoot.querySelector('.maincontainer');
407
+ const maincontainer = this.shadowRoot!.querySelector('.maincontainer')! as HTMLElement;
408
408
  const { DeesWorkspaceTerminal } = await import('../../00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js');
409
409
  const terminal = new DeesWorkspaceTerminal();
410
410
  terminal.setupCommand = this.terminalSetupCommand;
@@ -444,9 +444,9 @@ export class DeesSimpleAppDash extends DeesElement {
444
444
  }
445
445
 
446
446
 
447
- private currentView: DeesElement;
447
+ private currentView!: DeesElement;
448
448
  public async loadView(viewArg: IView) {
449
- const appcontent = this.shadowRoot.querySelector('.appcontent');
449
+ const appcontent = this.shadowRoot!.querySelector('.appcontent')!;
450
450
  const view = new viewArg.element();
451
451
  if (this.currentView) {
452
452
  this.currentView.remove();
@@ -141,15 +141,15 @@ export class DeesSimpleLogin extends DeesElement {
141
141
  public async firstUpdated(_changedProperties: Map<string | number | symbol, unknown>): Promise<void> {
142
142
  super.firstUpdated(_changedProperties);
143
143
 
144
- const form = this.shadowRoot.querySelector('dees-form') as any;
144
+ const form = this.shadowRoot!.querySelector('dees-form') as any;
145
145
  if (form) {
146
- form.addEventListener('formData', (event: CustomEvent) => {
146
+ form.addEventListener('formData', ((event: CustomEvent) => {
147
147
  this.dispatchEvent(new CustomEvent('login', {
148
148
  detail: event.detail,
149
149
  bubbles: true,
150
150
  composed: true
151
151
  }));
152
- });
152
+ }) as EventListener);
153
153
  }
154
154
  }
155
155
 
@@ -158,9 +158,9 @@ export class DeesSimpleLogin extends DeesElement {
158
158
  */
159
159
  public async switchToSlottedContent() {
160
160
  const domtools = await this.domtoolsPromise;
161
- const loginDiv: HTMLDivElement = this.shadowRoot.querySelector('.login');
162
- const loginContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.loginContainer');
163
- const slotContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.slotContainer');
161
+ const loginDiv = this.shadowRoot!.querySelector('.login') as HTMLDivElement;
162
+ const loginContainerDiv = this.shadowRoot!.querySelector('.loginContainer') as HTMLDivElement;
163
+ const slotContainerDiv = this.shadowRoot!.querySelector('.slotContainer') as HTMLDivElement;
164
164
  loginDiv.style.opacity = '0';
165
165
  loginDiv.style.transform = 'translateY(20px)';
166
166
  loginContainerDiv.style.pointerEvents = 'none';
@@ -15,7 +15,7 @@ export const demoFunc = () => {
15
15
  .filter(key => {
16
16
  // Skip utility functions and focus on icon components (first letter is uppercase)
17
17
  const isUppercaseFirst = key[0] === key[0].toUpperCase() && key[0] !== key[0].toLowerCase();
18
- const isFunction = typeof lucideIcons[key] === 'function';
18
+ const isFunction = typeof (lucideIcons as any)[key] === 'function';
19
19
  const notUtility = !['createElement', 'createIcons', 'default'].includes(key);
20
20
  return isFunction && isUppercaseFirst && notUtility;
21
21
  })
@@ -63,7 +63,7 @@ export const demoFunc = () => {
63
63
  const searchIcons = (event: InputEvent) => {
64
64
  const searchTerm = (event.target as HTMLInputElement).value.toLowerCase().trim();
65
65
  // Get the demo container first, then search within it
66
- const demoContainer = (event.target as HTMLElement).closest('.demoContainer');
66
+ const demoContainer = (event.target as HTMLElement).closest('.demoContainer')!;
67
67
  const containers = demoContainer.querySelectorAll('.iconContainer');
68
68
 
69
69
  containers.forEach(container => {
@@ -79,7 +79,7 @@ export const demoFunc = () => {
79
79
  });
80
80
 
81
81
  // Update counts - search within demoContainer
82
- demoContainer.querySelectorAll('.section-container').forEach(section => {
82
+ demoContainer!.querySelectorAll('.section-container').forEach(section => {
83
83
  const visibleIcons = section.querySelectorAll('.iconContainer:not(.hidden)').length;
84
84
  const countElement = section.querySelector('.icon-count');
85
85
  if (countElement) {