@design.estate/dees-catalog 3.49.0 → 3.49.2

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 (176) hide show
  1. package/dist_bundle/bundle.js +8843 -3895
  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.js +1 -1
  23. package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.js +1 -1
  24. package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +1 -1
  25. package/dist_ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.js +1 -1
  26. package/dist_ts_web/elements/00group-form/dees-form/dees-form.demo.js +7 -7
  27. package/dist_ts_web/elements/00group-form/dees-form/dees-form.js +9 -6
  28. package/dist_ts_web/elements/00group-form/dees-form-submit/dees-form-submit.js +1 -1
  29. package/dist_ts_web/elements/00group-input/dees-input-base/dees-input-base.js +1 -1
  30. package/dist_ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.js +1 -1
  31. package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.js +1 -1
  32. package/dist_ts_web/elements/00group-input/dees-input-datepicker/demo.js +15 -15
  33. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.d.ts +4 -4
  34. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.js +17 -17
  35. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.js +1 -1
  36. package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.d.ts +1 -1
  37. package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.js +1 -1
  38. package/dist_ts_web/elements/00group-input/dees-input-iban/dees-input-iban.js +4 -2
  39. package/dist_ts_web/elements/00group-input/dees-input-list/dees-input-list.d.ts +0 -1
  40. package/dist_ts_web/elements/00group-input/dees-input-list/dees-input-list.js +60 -41
  41. package/dist_ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.js +1 -1
  42. package/dist_ts_web/elements/00group-input/dees-input-phone/dees-input-phone.js +1 -1
  43. package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.d.ts +1 -1
  44. package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.js +1 -1
  45. package/dist_ts_web/elements/00group-input/dees-input-richtext/component.js +1 -1
  46. package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.js +7 -6
  47. package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.js +1 -1
  48. package/dist_ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.js +7 -5
  49. package/dist_ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.js +1 -1
  50. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.js +6 -5
  51. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.js +6 -5
  52. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.js +6 -5
  53. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.js +6 -5
  54. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.js +16 -13
  55. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.js +3 -3
  56. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.js +19 -15
  57. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.js +1 -1
  58. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.d.ts +3 -3
  59. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.js +1 -1
  60. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.js +1 -1
  61. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.js +1 -1
  62. package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.js +7 -7
  63. package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.js +3 -3
  64. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.d.ts +1 -1
  65. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.js +1 -1
  66. package/dist_ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.js +11 -8
  67. package/dist_ts_web/elements/00group-layout/dees-label/dees-label.js +1 -1
  68. package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +1 -1
  69. package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.js +3 -3
  70. package/dist_ts_web/elements/00group-media/dees-tile-pdf/demo.js +1 -1
  71. package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +1 -1
  72. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.js +2 -2
  73. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.js +1 -1
  74. package/dist_ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.js +1 -1
  75. package/dist_ts_web/elements/00group-runtime/environments/WebContainerEnvironment.js +1 -1
  76. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.js +1 -1
  77. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.d.ts +3 -3
  78. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +2 -2
  79. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.js +3 -3
  80. package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js +1 -1
  81. package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js +1 -1
  82. package/dist_ts_web/elements/00group-utility/dees-searchbar/dees-searchbar.d.ts +1 -1
  83. package/dist_ts_web/elements/00group-utility/dees-updater/dees-updater.js +1 -1
  84. package/dist_ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.js +1 -1
  85. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.d.ts +1 -1
  86. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.js +1 -1
  87. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.js +1 -1
  88. package/dist_ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js +1 -1
  89. package/dist_ts_web/pages/zindex-showcase.js +1 -1
  90. package/dist_ts_web/services/DeesServiceLibLoader.js +1 -1
  91. package/dist_ts_web/services/versions.d.ts +1 -1
  92. package/dist_ts_web/services/versions.js +1 -1
  93. package/dist_watch/bundle.js +9108 -4129
  94. package/dist_watch/bundle.js.map +4 -4
  95. package/license +3 -6
  96. package/package.json +11 -11
  97. package/readme.md +6 -4
  98. package/ts_web/00_commitinfo_data.ts +1 -1
  99. package/ts_web/elements/00group-appui/dees-appui/dees-appui.demo.ts +2 -2
  100. package/ts_web/elements/00group-appui/dees-appui/dees-appui.ts +1 -1
  101. package/ts_web/elements/00group-appui/dees-appui/view.registry.ts +1 -1
  102. package/ts_web/elements/00group-appui/dees-appui-appbar/component.ts +1 -1
  103. package/ts_web/elements/00group-appui/dees-appui-appbar/demo.ts +5 -5
  104. package/ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.ts +1 -1
  105. package/ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.ts +1 -1
  106. package/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.ts +8 -8
  107. package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.ts +1 -1
  108. package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.ts +6 -6
  109. package/ts_web/elements/00group-button/dees-button/dees-button.demo.ts +5 -5
  110. package/ts_web/elements/00group-button/dees-button/dees-button.ts +3 -3
  111. package/ts_web/elements/00group-chart/dees-chart-area/component.ts +13 -13
  112. package/ts_web/elements/00group-chart/dees-chart-area/demo.ts +5 -5
  113. package/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.ts +2 -2
  114. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +4 -4
  115. package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts +2 -2
  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-list/dees-input-list.ts +59 -40
  131. package/ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.ts +4 -4
  132. package/ts_web/elements/00group-input/dees-input-phone/dees-input-phone.ts +1 -1
  133. package/ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.ts +5 -5
  134. package/ts_web/elements/00group-input/dees-input-richtext/component.ts +5 -5
  135. package/ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.ts +6 -5
  136. package/ts_web/elements/00group-input/dees-input-text/dees-input-text.ts +6 -6
  137. package/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.ts +12 -10
  138. package/ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.ts +1 -1
  139. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.ts +5 -4
  140. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.ts +5 -4
  141. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.ts +5 -4
  142. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.ts +5 -4
  143. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.ts +19 -16
  144. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts +6 -6
  145. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.ts +24 -20
  146. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.ts +2 -2
  147. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.ts +4 -4
  148. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.ts +8 -8
  149. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.ts +2 -2
  150. package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.ts +8 -8
  151. package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.ts +2 -2
  152. package/ts_web/elements/00group-layout/dees-chips/dees-chips.ts +1 -1
  153. package/ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.ts +16 -12
  154. package/ts_web/elements/00group-layout/dees-label/dees-label.ts +1 -1
  155. package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +7 -7
  156. package/ts_web/elements/00group-media/dees-pdf-shared/utils.ts +2 -2
  157. package/ts_web/elements/00group-media/dees-tile-pdf/demo.ts +1 -1
  158. package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +3 -3
  159. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.ts +24 -24
  160. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.ts +10 -10
  161. package/ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.ts +6 -6
  162. package/ts_web/elements/00group-runtime/environments/WebContainerEnvironment.ts +1 -1
  163. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts +10 -10
  164. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +6 -6
  165. package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.ts +6 -6
  166. package/ts_web/elements/00group-utility/dees-icon/dees-icon.demo.ts +3 -3
  167. package/ts_web/elements/00group-utility/dees-icon/dees-icon.ts +6 -6
  168. package/ts_web/elements/00group-utility/dees-updater/dees-updater.ts +3 -3
  169. package/ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.ts +4 -4
  170. package/ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.ts +9 -9
  171. package/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.ts +3 -3
  172. package/ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.ts +2 -2
  173. package/ts_web/pages/zindex-showcase.ts +11 -11
  174. package/ts_web/services/DeesServiceLibLoader.ts +2 -2
  175. package/ts_web/services/versions.ts +1 -1
  176. /package/{npmextra.json → .smartconfig.json} +0 -0
@@ -89,7 +89,7 @@ export class DeesProgressbar extends DeesElement {
89
89
  }
90
90
 
91
91
  public async updatePercentage() {
92
- const progressBarFill = this.shadowRoot.querySelector('.progressBarFill') as HTMLElement;
92
+ const progressBarFill = this.shadowRoot!.querySelector('.progressBarFill') as HTMLElement;
93
93
  progressBarFill.style.width = `${this.percentage}%`;
94
94
  }
95
95
 
@@ -57,10 +57,10 @@ export const demoFunc = () => html`
57
57
  const outputDiv = elementArg.querySelector('.form-output');
58
58
 
59
59
  if (form && outputDiv) {
60
- form.addEventListener('formData', async (eventArg: CustomEvent) => {
60
+ form.addEventListener('formData', (async (eventArg: CustomEvent) => {
61
61
  const data = eventArg.detail.data;
62
62
  console.log('Form submitted with data:', data);
63
-
63
+
64
64
  // Show processing state
65
65
  form.setStatus('pending', 'Processing your registration...');
66
66
  outputDiv.innerHTML = `<strong>Submitted Data:</strong>\n${JSON.stringify(data, null, 2)}`;
@@ -75,7 +75,7 @@ export const demoFunc = () => html`
75
75
  await domtools.plugins.smartdelay.delayFor(2000);
76
76
  form.reset();
77
77
  outputDiv.innerHTML = '<em>Form has been reset</em>';
78
- });
78
+ }) as unknown as EventListener);
79
79
 
80
80
  // Track individual field changes
81
81
  const inputs = form.querySelectorAll('dees-input-text, dees-input-dropdown, dees-input-checkbox');
@@ -158,14 +158,14 @@ export const demoFunc = () => html`
158
158
  console.log('Horizontal form layout active');
159
159
 
160
160
  // Monitor filter changes
161
- form.addEventListener('formData', (event: CustomEvent) => {
161
+ form.addEventListener('formData', ((event: CustomEvent) => {
162
162
  const filters = event.detail.data;
163
163
  console.log('Filter applied:', filters);
164
-
164
+
165
165
  // Simulate search
166
166
  const resultsCount = Math.floor(Math.random() * 100) + 1;
167
167
  console.log(`Found ${resultsCount} results with filters:`, filters);
168
- });
168
+ }) as unknown as EventListener);
169
169
 
170
170
  // Setup real-time filter updates
171
171
  const inputs = form.querySelectorAll('[key]');
@@ -224,7 +224,7 @@ export const demoFunc = () => html`
224
224
  const statusDiv = elementArg.querySelector('#status-display');
225
225
 
226
226
  if (form) {
227
- form.addEventListener('formData', async (eventArg: CustomEvent) => {
227
+ form.addEventListener('formData', (async (eventArg: CustomEvent) => {
228
228
  const data = eventArg.detail.data;
229
229
  console.log('Advanced form data:', data);
230
230
 
@@ -252,7 +252,7 @@ export const demoFunc = () => html`
252
252
  }
253
253
 
254
254
  console.log('Form data logged:', data);
255
- });
255
+ }) as unknown as EventListener);
256
256
 
257
257
  // Monitor file uploads
258
258
  const fileUpload = form.querySelector('dees-input-fileupload');
@@ -135,13 +135,14 @@ export class DeesForm extends DeesElement {
135
135
  }
136
136
 
137
137
  public getFormElements(): Array<TFormInputElement> {
138
- return Array.from(this.children).filter((child) =>
138
+ // Use querySelectorAll('*') to find form inputs nested inside wrapper elements (e.g. <div>)
139
+ return Array.from(this.querySelectorAll('*')).filter((child) =>
139
140
  FORM_INPUT_TYPES.includes(child.constructor as any)
140
141
  ) as unknown as TFormInputElement[];
141
142
  }
142
143
 
143
144
  public getSubmitButton(): DeesFormSubmit | undefined {
144
- return Array.from(this.children).find(
145
+ return Array.from(this.querySelectorAll('*')).find(
145
146
  (child) => child instanceof DeesFormSubmit
146
147
  ) as DeesFormSubmit;
147
148
  }
@@ -155,8 +156,9 @@ export class DeesForm extends DeesElement {
155
156
  requiredOK = false;
156
157
  }
157
158
  }
158
- if (this.getSubmitButton()) {
159
- this.getSubmitButton().disabled = !requiredOK;
159
+ const submitButton = this.getSubmitButton();
160
+ if (submitButton) {
161
+ submitButton.disabled = !requiredOK;
160
162
  }
161
163
  }
162
164
 
@@ -199,6 +201,7 @@ export class DeesForm extends DeesElement {
199
201
  ) {
200
202
  const inputChildren = this.getFormElements();
201
203
  const submitButton = this.getSubmitButton();
204
+ if (!submitButton) return;
202
205
 
203
206
  switch (visualStateArg) {
204
207
  case 'normal':
@@ -239,7 +242,6 @@ export class DeesForm extends DeesElement {
239
242
  */
240
243
  reset() {
241
244
  const inputChildren = this.getFormElements();
242
- const submitButton = this.getSubmitButton();
243
245
 
244
246
  for (const inputChild of inputChildren) {
245
247
  inputChild.value = null;
@@ -30,7 +30,7 @@ export class DeesFormSubmit extends DeesElement {
30
30
  accessor disabled = false;
31
31
 
32
32
  @property({ type: String })
33
- accessor text: string;
33
+ accessor text!: string;
34
34
 
35
35
  @property({ type: String })
36
36
  accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';
@@ -42,7 +42,7 @@ export class DeesFormSubmit extends DeesElement {
42
42
  accessor size: 'sm' | 'default' | 'lg' | 'icon' | 'small' | 'normal' | 'large' = 'default';
43
43
 
44
44
  @property({ type: String })
45
- accessor icon: string;
45
+ accessor icon!: string;
46
46
 
47
47
  @property({ type: String })
48
48
  accessor iconPosition: 'left' | 'right' = 'left';
@@ -31,10 +31,10 @@ export abstract class DeesInputBase<T = any> extends DeesElement {
31
31
  * Common properties for all inputs
32
32
  */
33
33
  @property({ type: String })
34
- accessor key: string;
34
+ accessor key!: string;
35
35
 
36
36
  @property({ type: String })
37
- accessor label: string;
37
+ accessor label!: string;
38
38
 
39
39
  @property({ type: Boolean })
40
40
  accessor required: boolean = false;
@@ -43,7 +43,7 @@ export abstract class DeesInputBase<T = any> extends DeesElement {
43
43
  accessor disabled: boolean = false;
44
44
 
45
45
  @property({ type: String })
46
- accessor description: string;
46
+ accessor description!: string;
47
47
 
48
48
  /**
49
49
  * Common styles for all input components
@@ -215,7 +215,7 @@ export class DeesInputCheckbox extends DeesInputBase<DeesInputCheckbox> {
215
215
  }
216
216
 
217
217
  public focus(): void {
218
- const checkboxDiv = this.shadowRoot.querySelector('.checkbox');
218
+ const checkboxDiv = this.shadowRoot!.querySelector('.checkbox');
219
219
  if (checkboxDiv) {
220
220
  (checkboxDiv as any).focus();
221
221
  }
@@ -610,20 +610,20 @@ export class DeesInputCode extends DeesInputBase<string> {
610
610
  {
611
611
  name: 'Cancel',
612
612
  action: async (modalRef) => {
613
- await modalRef.destroy();
613
+ await modalRef!.destroy();
614
614
  },
615
615
  },
616
616
  {
617
617
  name: 'Save & Close',
618
618
  action: async (modalRef) => {
619
619
  // Get the editor content from the modal
620
- modalEditorElement = modalRef.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;
620
+ modalEditorElement = modalRef!.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;
621
621
  if (modalEditorElement) {
622
622
  const editor = await modalEditorElement.editorDeferred.promise;
623
623
  const newValue = editor.getValue();
624
624
  this.setValue(newValue);
625
625
  }
626
- await modalRef.destroy();
626
+ await modalRef!.destroy();
627
627
  },
628
628
  },
629
629
  ],
@@ -47,9 +47,9 @@ export const demoFunc = () => html`
47
47
  const datePicker = elementArg.querySelector('dees-input-datepicker');
48
48
 
49
49
  if (datePicker) {
50
- datePicker.addEventListener('change', (event: CustomEvent) => {
50
+ datePicker.addEventListener('change', ((event: CustomEvent) => {
51
51
  console.log('Basic date selected:', (event.target as DeesInputDatepicker).value);
52
- });
52
+ }) as EventListener);
53
53
  }
54
54
  }}>
55
55
  <dees-panel .title=${'Basic Date Picker'} .subtitle=${'Simple date selection without time'}>
@@ -66,17 +66,17 @@ export const demoFunc = () => html`
66
66
  const appointmentPicker = elementArg.querySelector('dees-input-datepicker[label="Appointment"]');
67
67
 
68
68
  if (dateTimePicker) {
69
- dateTimePicker.addEventListener('change', (event: CustomEvent) => {
69
+ dateTimePicker.addEventListener('change', ((event: CustomEvent) => {
70
70
  const value = (event.target as DeesInputDatepicker).value;
71
71
  console.log('24h format datetime:', value);
72
- });
72
+ }) as EventListener);
73
73
  }
74
74
 
75
75
  if (appointmentPicker) {
76
- appointmentPicker.addEventListener('change', (event: CustomEvent) => {
76
+ appointmentPicker.addEventListener('change', ((event: CustomEvent) => {
77
77
  const value = (event.target as DeesInputDatepicker).value;
78
78
  console.log('12h format datetime:', value);
79
- });
79
+ }) as EventListener);
80
80
  }
81
81
  }}>
82
82
  <dees-panel .title=${'Date and Time Selection'} .subtitle=${'Date pickers with time selection in different formats'}>
@@ -102,14 +102,14 @@ export const demoFunc = () => html`
102
102
  const timezonePickers = elementArg.querySelectorAll('dees-input-datepicker');
103
103
 
104
104
  timezonePickers.forEach((picker) => {
105
- picker.addEventListener('change', (event: CustomEvent) => {
105
+ picker.addEventListener('change', ((event: CustomEvent) => {
106
106
  const target = event.target as DeesInputDatepicker;
107
107
  console.log(`${target.label} value:`, target.value);
108
108
  const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;
109
109
  if (input) {
110
110
  console.log(`${target.label} formatted:`, input.value);
111
111
  }
112
- });
112
+ }) as EventListener);
113
113
  });
114
114
  }}>
115
115
  <dees-panel .title=${'Timezone Support'} .subtitle=${'Date and time selection with timezone awareness'}>
@@ -140,7 +140,7 @@ export const demoFunc = () => html`
140
140
 
141
141
  if (futureDatePicker) {
142
142
  // Show the min/max constraints in action
143
- futureDatePicker.addEventListener('change', (event: CustomEvent) => {
143
+ futureDatePicker.addEventListener('change', ((event: CustomEvent) => {
144
144
  const value = (event.target as DeesInputDatepicker).value;
145
145
  if (value) {
146
146
  const selectedDate = new Date(value);
@@ -148,7 +148,7 @@ export const demoFunc = () => html`
148
148
  const daysDiff = Math.floor((selectedDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));
149
149
  console.log(`Selected date is ${daysDiff} days from today`);
150
150
  }
151
- });
151
+ }) as EventListener);
152
152
  }
153
153
  }}>
154
154
  <dees-panel .title=${'Date Range Constraints'} .subtitle=${'Limit selectable dates with min and max values'}>
@@ -171,14 +171,14 @@ export const demoFunc = () => html`
171
171
 
172
172
  const datePickers = elementArg.querySelectorAll('dees-input-datepicker');
173
173
  datePickers.forEach((picker) => {
174
- picker.addEventListener('change', (event: CustomEvent) => {
174
+ picker.addEventListener('change', ((event: CustomEvent) => {
175
175
  const target = event.target as DeesInputDatepicker;
176
176
  // Log the formatted value that's displayed in the input
177
177
  const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;
178
178
  if (input) {
179
179
  console.log(`${target.label} format:`, input.value);
180
180
  }
181
- });
181
+ }) as EventListener);
182
182
  });
183
183
  }}>
184
184
  <dees-panel .title=${'Date Formats'} .subtitle=${'Different date display formats for various regions'}>
@@ -268,7 +268,7 @@ export const demoFunc = () => html`
268
268
  <dees-demowrapper .runAfterRender=${async (elementArg: HTMLElement) => {
269
269
  // Generate weekend dates for the current month
270
270
  const generateWeekends = () => {
271
- const weekends = [];
271
+ const weekends: string[] = [];
272
272
  const now = new Date();
273
273
  const year = now.getFullYear();
274
274
  const month = now.getMonth();
@@ -286,7 +286,7 @@ export const demoFunc = () => html`
286
286
 
287
287
  const picker = elementArg.querySelector('dees-input-datepicker');
288
288
  if (picker) {
289
- picker.disabledDates = generateWeekends();
289
+ (picker as DeesInputDatepicker).disabledDates = generateWeekends();
290
290
  console.log('Disabled weekend dates for current month');
291
291
  }
292
292
  }}>
@@ -344,7 +344,7 @@ export const demoFunc = () => html`
344
344
 
345
345
  const picker = elementArg.querySelector('dees-input-datepicker');
346
346
  if (picker) {
347
- picker.events = sampleEvents;
347
+ (picker as DeesInputDatepicker).events = sampleEvents;
348
348
  console.log('Calendar events loaded:', sampleEvents);
349
349
  }
350
350
  }}>
@@ -371,7 +371,7 @@ export const demoFunc = () => html`
371
371
  const output = elementArg.querySelector('#event-output');
372
372
 
373
373
  if (picker && output) {
374
- picker.addEventListener('change', (event: CustomEvent) => {
374
+ picker.addEventListener('change', ((event: CustomEvent) => {
375
375
  const target = event.target as DeesInputDatepicker;
376
376
  const value = target.value;
377
377
  if (value) {
@@ -379,16 +379,16 @@ export const demoFunc = () => html`
379
379
  // Get the formatted value from the input element
380
380
  const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;
381
381
  const formattedValue = input?.value || 'N/A';
382
- output.innerHTML = `
382
+ (output as HTMLElement).innerHTML = `
383
383
  <strong>Event triggered!</strong><br>
384
384
  ISO Value: ${value}<br>
385
385
  Formatted: ${formattedValue}<br>
386
386
  Date object: ${date.toLocaleString()}
387
387
  `;
388
388
  } else {
389
- output.innerHTML = '<em>Date cleared</em>';
389
+ (output as HTMLElement).innerHTML = '<em>Date cleared</em>';
390
390
  }
391
- });
391
+ }) as EventListener);
392
392
 
393
393
  picker.addEventListener('blur', () => {
394
394
  console.log('Datepicker lost focus');
@@ -56,16 +56,16 @@ export const demoFunc = () => html`
56
56
 
57
57
  // Log when country changes
58
58
  if (countryDropdown) {
59
- countryDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
59
+ countryDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
60
60
  console.log('Country selected:', event.detail);
61
- });
61
+ }) as EventListener);
62
62
  }
63
63
 
64
64
  // Log when role changes
65
65
  if (roleDropdown) {
66
- roleDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
66
+ roleDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
67
67
  console.log('Role selected:', event.detail);
68
- });
68
+ }) as EventListener);
69
69
  }
70
70
  }}>
71
71
  <dees-panel .title=${'1. Basic Dropdowns'} .subtitle=${'Standard dropdown with search functionality and various options'}>
@@ -103,9 +103,9 @@ export const demoFunc = () => html`
103
103
  const priorityDropdown = elementArg.querySelector('dees-input-dropdown');
104
104
 
105
105
  if (priorityDropdown) {
106
- priorityDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
106
+ priorityDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
107
107
  console.log(`Priority changed to: ${event.detail.option}`);
108
- });
108
+ }) as EventListener);
109
109
  }
110
110
  }}>
111
111
  <dees-panel .title=${'2. Without Search'} .subtitle=${'Dropdown with search functionality disabled for simpler selection'}>
@@ -128,10 +128,10 @@ export const demoFunc = () => html`
128
128
 
129
129
  // Log all changes from horizontal dropdowns
130
130
  dropdowns.forEach((dropdown) => {
131
- dropdown.addEventListener('selectedOption', (event: CustomEvent) => {
131
+ dropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
132
132
  const label = dropdown.getAttribute('label');
133
133
  console.log(`${label}: ${event.detail.option}`);
134
- });
134
+ }) as EventListener);
135
135
  });
136
136
  }}>
137
137
  <dees-panel .title=${'3. Horizontal Layout'} .subtitle=${'Multiple dropdowns in a horizontal layout for compact forms'}>
@@ -216,9 +216,9 @@ export const demoFunc = () => html`
216
216
  const dropdown = elementArg.querySelector('dees-input-dropdown');
217
217
 
218
218
  if (dropdown) {
219
- dropdown.addEventListener('selectedOption', (event: CustomEvent) => {
219
+ dropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
220
220
  console.log('Bottom dropdown selected:', event.detail);
221
- });
221
+ }) as EventListener);
222
222
 
223
223
  // Note: The dropdown automatically detects available space
224
224
  // and opens upward when near the bottom of the viewport
@@ -248,16 +248,16 @@ export const demoFunc = () => html`
248
248
  output.innerHTML = '<em>Select a product to see details...</em>';
249
249
 
250
250
  // Handle dropdown changes
251
- dropdown.addEventListener('change', (event: CustomEvent) => {
251
+ dropdown.addEventListener('change', ((event: CustomEvent) => {
252
252
  if (event.detail.value) {
253
- output.innerHTML = `
253
+ (output as HTMLElement).innerHTML = `
254
254
  <strong>Selected:</strong> ${event.detail.value.option}<br>
255
255
  <strong>Key:</strong> ${event.detail.value.key}<br>
256
256
  <strong>Price:</strong> $${event.detail.value.payload?.price || 'N/A'}<br>
257
257
  <strong>Features:</strong> ${event.detail.value.payload?.features?.join(', ') || 'N/A'}
258
258
  `;
259
259
  }
260
- });
260
+ }) as EventListener);
261
261
  }
262
262
  }}>
263
263
  <dees-panel .title=${'6. Event Handling & Payload'} .subtitle=${'Dropdown with payload data and change event handling'}>
@@ -281,20 +281,20 @@ export const demoFunc = () => html`
281
281
  const frameworkDropdown = elementArg.querySelector('dees-input-dropdown[key="framework"]');
282
282
 
283
283
  if (form) {
284
- form.addEventListener('formData', (event: CustomEvent) => {
284
+ form.addEventListener('formData', ((event: CustomEvent) => {
285
285
  console.log('Form submitted with data:', event.detail.data);
286
- });
286
+ }) as EventListener);
287
287
  }
288
288
 
289
289
  if (projectTypeDropdown && frameworkDropdown) {
290
290
  // Filter frameworks based on project type
291
- projectTypeDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
291
+ projectTypeDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
292
292
  const selectedType = event.detail.key;
293
293
  console.log(`Project type changed to: ${selectedType}`);
294
-
294
+
295
295
  // In a real app, you could filter the framework options based on project type
296
296
  // For demo purposes, we just log the change
297
- });
297
+ }) as EventListener);
298
298
  }
299
299
  }}>
300
300
  <dees-panel .title=${'7. Form Integration'} .subtitle=${'Dropdown working within a form with validation'}>
@@ -30,14 +30,14 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
30
30
  accessor options: { option: string; key: string; payload?: any }[] = [];
31
31
 
32
32
  @property()
33
- accessor selectedOption: { option: string; key: string; payload?: any } = null;
33
+ accessor selectedOption: { option: string; key: string; payload?: any } | null = null;
34
34
 
35
35
  // Add value property for form compatibility
36
36
  public get value() {
37
37
  return this.selectedOption;
38
38
  }
39
39
 
40
- public set value(val: { option: string; key: string; payload?: any }) {
40
+ public set value(val: { option: string; key: string; payload?: any } | null) {
41
41
  this.selectedOption = val;
42
42
  }
43
43
 
@@ -372,7 +372,7 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
372
372
 
373
373
  if (this.isOpened) {
374
374
  // Check available space and set position
375
- const selectedBox = this.shadowRoot.querySelector('.selectedBox') as HTMLElement;
375
+ const selectedBox = this.shadowRoot!.querySelector('.selectedBox') as HTMLElement;
376
376
  const rect = selectedBox.getBoundingClientRect();
377
377
  const spaceBelow = window.innerHeight - rect.bottom;
378
378
  const spaceAbove = rect.top;
@@ -382,7 +382,7 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
382
382
 
383
383
  // Focus search input if present
384
384
  await this.updateComplete;
385
- const searchInput = this.shadowRoot.querySelector('.search input') as HTMLInputElement;
385
+ const searchInput = this.shadowRoot!.querySelector('.search input') as HTMLInputElement;
386
386
  if (searchInput) {
387
387
  searchInput.focus();
388
388
  }
@@ -455,7 +455,7 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
455
455
  }
456
456
  }
457
457
 
458
- public getValue(): { option: string; key: string; payload?: any } {
458
+ public getValue(): { option: string; key: string; payload?: any } | null {
459
459
  return this.selectedOption;
460
460
  }
461
461
 
@@ -48,7 +48,7 @@ export class DeesInputFileupload extends DeesInputBase<DeesInputFileupload> {
48
48
  accessor maxFiles: number = 0; // 0 means no limit
49
49
 
50
50
  @property({ type: String, reflect: true })
51
- accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' = null;
51
+ accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' | null = null;
52
52
 
53
53
  accessor validationMessage: string = '';
54
54
 
@@ -266,7 +266,7 @@ export class DeesInputFileupload extends DeesInputBase<DeesInputFileupload> {
266
266
  return;
267
267
  }
268
268
  ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {
269
- this.dropArea!.addEventListener(eventName, this.handleDragEvent);
269
+ this.dropArea!.addEventListener(eventName, this.handleDragEvent as unknown as EventListener);
270
270
  });
271
271
  }
272
272
 
@@ -275,7 +275,7 @@ export class DeesInputFileupload extends DeesInputBase<DeesInputFileupload> {
275
275
  return;
276
276
  }
277
277
  ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {
278
- this.dropArea!.removeEventListener(eventName, this.handleDragEvent);
278
+ this.dropArea!.removeEventListener(eventName, this.handleDragEvent as unknown as EventListener);
279
279
  });
280
280
  }
281
281
 
@@ -60,7 +60,7 @@ export class DeesInputIban extends DeesInputBase<DeesInputIban> {
60
60
 
61
61
  public firstUpdated(_changedProperties: Map<string | number | symbol, unknown>) {
62
62
  super.firstUpdated(_changedProperties);
63
- const deesInputText = this.shadowRoot.querySelector('dees-input-text') as any;
63
+ const deesInputText = this.shadowRoot!.querySelector('dees-input-text') as any;
64
64
  if (deesInputText && deesInputText.changeSubject) {
65
65
  deesInputText.changeSubject.subscribe(() => {
66
66
  this.changeSubject.next(this);
@@ -81,8 +81,10 @@ export class DeesInputIban extends DeesInputBase<DeesInputIban> {
81
81
  }
82
82
  }
83
83
  this.enteredIbanIsValid = ibantools.isValidIBAN(this.enteredString.replace(/ /g, ''));
84
- const deesInputText = this.shadowRoot.querySelector('dees-input-text');
85
- deesInputText.validationText = `IBAN is valid: ${this.enteredIbanIsValid}`;
84
+ const deesInputText = this.shadowRoot!.querySelector('dees-input-text') as any;
85
+ if (deesInputText) {
86
+ deesInputText.validationText = `IBAN is valid: ${this.enteredIbanIsValid}`;
87
+ }
86
88
  }
87
89
 
88
90
  public getValue(): string {