@duetds/components 5.0.3 → 5.0.4

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 (239) hide show
  1. package/hydrate/index.js +32 -3
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-date-picker.cjs.entry.js +9 -4
  15. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-input_2.cjs.entry.js +25 -2
  25. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  28. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  43. package/lib/cjs/duet.cjs.js +2 -2
  44. package/lib/cjs/{focus-utils-be11fe84.js → focus-utils-88e98997.js} +1 -1
  45. package/lib/cjs/{index-4be1f8f7.js → index-ef094178.js} +1 -1
  46. package/lib/cjs/loader.cjs.js +2 -2
  47. package/lib/collection/components/duet-date-picker/duet-date-picker.js +24 -2
  48. package/lib/collection/components/duet-date-picker/utils.js +1 -0
  49. package/lib/collection/components/duet-input/duet-input.js +26 -2
  50. package/lib/custom-elements-bundle/index.js +33 -5
  51. package/lib/duet/duet.esm.js +1 -1
  52. package/lib/duet/duet.js +1 -1
  53. package/lib/duet/{p-04ad8a51.system.js → p-04145769.system.js} +1 -1
  54. package/lib/duet/{p-4c3d3d98.system.entry.js → p-104c3fa5.system.entry.js} +1 -1
  55. package/lib/duet/{p-7e8d9165.entry.js → p-1144c927.entry.js} +1 -1
  56. package/lib/duet/{p-5bb0d504.system.entry.js → p-123c8434.system.entry.js} +1 -1
  57. package/lib/duet/{p-0c71c685.system.entry.js → p-128983f7.system.entry.js} +1 -1
  58. package/lib/duet/{p-302a1111.system.entry.js → p-16df6ccc.system.entry.js} +1 -1
  59. package/lib/duet/{p-8f3be2e7.system.entry.js → p-17a8d23c.system.entry.js} +1 -1
  60. package/lib/duet/{p-71f87732.entry.js → p-195f73d6.entry.js} +1 -1
  61. package/lib/duet/{p-f0dba299.system.entry.js → p-1a2ab8e8.system.entry.js} +1 -1
  62. package/lib/duet/{p-38cc1d02.system.entry.js → p-1bb6c66f.system.entry.js} +1 -1
  63. package/lib/duet/p-1cfeab55.system.entry.js +4 -0
  64. package/lib/duet/{p-364daea3.entry.js → p-217b9e24.entry.js} +1 -1
  65. package/lib/duet/{p-2a0ae7f6.system.entry.js → p-217e3cc7.system.entry.js} +1 -1
  66. package/lib/duet/{p-7afb2bcf.system.entry.js → p-2495cec7.system.entry.js} +1 -1
  67. package/lib/duet/{p-995288c0.entry.js → p-27eac9a4.entry.js} +1 -1
  68. package/lib/duet/{p-a3506401.system.entry.js → p-285e2473.system.entry.js} +1 -1
  69. package/lib/duet/{p-8824199e.system.entry.js → p-298aff96.system.entry.js} +1 -1
  70. package/lib/duet/{p-419e1df7.entry.js → p-2b1b8246.entry.js} +1 -1
  71. package/lib/duet/{p-b9a23922.system.entry.js → p-30a28555.system.entry.js} +1 -1
  72. package/lib/duet/{p-74586a15.system.entry.js → p-333ed250.system.entry.js} +1 -1
  73. package/lib/duet/{p-693cec9c.system.entry.js → p-36e7114b.system.entry.js} +1 -1
  74. package/lib/duet/{p-1aa9b60c.system.entry.js → p-37f74ccb.system.entry.js} +2 -2
  75. package/lib/duet/{p-8493e747.system.entry.js → p-42d3a162.system.entry.js} +1 -1
  76. package/lib/duet/{p-4a0d062b.entry.js → p-54cc4f86.entry.js} +1 -1
  77. package/lib/duet/{p-8594bc4d.entry.js → p-5d6f8c04.entry.js} +1 -1
  78. package/lib/duet/{p-839ea534.entry.js → p-5d997107.entry.js} +1 -1
  79. package/lib/duet/p-6733b42f.js +4 -0
  80. package/lib/duet/{p-79f99668.entry.js → p-689fe862.entry.js} +1 -1
  81. package/lib/duet/{p-24a9e68e.system.entry.js → p-68fecc14.system.entry.js} +1 -1
  82. package/lib/duet/{p-68b50c43.entry.js → p-70acda4b.entry.js} +1 -1
  83. package/lib/duet/{p-b6d748a9.system.entry.js → p-71cdfd93.system.entry.js} +1 -1
  84. package/lib/duet/{p-dc9de1e3.entry.js → p-7b064c4f.entry.js} +1 -1
  85. package/lib/duet/{p-515fe415.system.entry.js → p-7dbf8797.system.entry.js} +1 -1
  86. package/lib/duet/{p-343975bc.js → p-7e2e9a28.js} +1 -1
  87. package/lib/duet/{p-cdd335a3.entry.js → p-84eb2808.entry.js} +1 -1
  88. package/lib/duet/{p-76f3205a.system.entry.js → p-87bedb24.system.entry.js} +1 -1
  89. package/lib/duet/{p-a008aacc.entry.js → p-8ebf4113.entry.js} +1 -1
  90. package/lib/duet/{p-c44470ff.entry.js → p-90223d57.entry.js} +1 -1
  91. package/lib/duet/{p-140cf44e.entry.js → p-912eed2f.entry.js} +1 -1
  92. package/lib/duet/{p-9ad2878e.system.entry.js → p-922c3772.system.entry.js} +1 -1
  93. package/lib/duet/{p-83aaed17.system.entry.js → p-92722c37.system.entry.js} +1 -1
  94. package/lib/duet/{p-70090114.entry.js → p-97bdc2bf.entry.js} +1 -1
  95. package/lib/duet/{p-d8d93e29.system.js → p-98228d0a.system.js} +1 -1
  96. package/lib/duet/{p-48c23e5c.entry.js → p-9b568485.entry.js} +1 -1
  97. package/lib/duet/{p-636dfb04.system.entry.js → p-a41384d5.system.entry.js} +1 -1
  98. package/lib/duet/{p-dbc85b3a.entry.js → p-a52c08c6.entry.js} +1 -1
  99. package/lib/duet/{p-f65e0de6.system.entry.js → p-a7a1ece1.system.entry.js} +1 -1
  100. package/lib/duet/p-a8ff3a13.entry.js +4 -0
  101. package/lib/duet/{p-f40ab568.entry.js → p-a96ead6c.entry.js} +1 -1
  102. package/lib/duet/{p-8c873050.system.entry.js → p-aa16ca33.system.entry.js} +1 -1
  103. package/lib/duet/{p-14aba051.entry.js → p-ad77f9e2.entry.js} +1 -1
  104. package/lib/duet/{p-5208e8c8.entry.js → p-ada161bd.entry.js} +1 -1
  105. package/lib/duet/{p-49b566b8.entry.js → p-b06d63cb.entry.js} +1 -1
  106. package/lib/duet/{p-3cfbe168.entry.js → p-b110c837.entry.js} +1 -1
  107. package/lib/duet/{p-22ed4dd2.entry.js → p-b47892c9.entry.js} +1 -1
  108. package/lib/duet/{p-d5a75400.system.entry.js → p-b5a64d86.system.entry.js} +1 -1
  109. package/lib/duet/{p-3e4f8f38.entry.js → p-b5bc8221.entry.js} +1 -1
  110. package/lib/duet/{p-799f35c8.system.entry.js → p-b631407a.system.entry.js} +1 -1
  111. package/lib/duet/{p-fb3f8bae.entry.js → p-b985a189.entry.js} +1 -1
  112. package/lib/duet/{p-3ab1a68a.entry.js → p-bd27572d.entry.js} +1 -1
  113. package/lib/duet/{p-0e962ab1.system.entry.js → p-c0071398.system.entry.js} +1 -1
  114. package/lib/duet/{p-d1549bd1.entry.js → p-c2d1223e.entry.js} +1 -1
  115. package/lib/duet/{p-afe9e9f0.system.entry.js → p-c3bd89fa.system.entry.js} +1 -1
  116. package/lib/duet/{p-2724a54c.entry.js → p-c40c716c.entry.js} +1 -1
  117. package/lib/duet/{p-8e7c504a.entry.js → p-c5037594.entry.js} +1 -1
  118. package/lib/duet/{p-b6339b38.system.entry.js → p-cbd12107.system.entry.js} +1 -1
  119. package/lib/duet/{p-0047c4f5.system.entry.js → p-d2b5efc0.system.entry.js} +1 -1
  120. package/lib/duet/{p-dca6993f.system.entry.js → p-d4621cbf.system.entry.js} +1 -1
  121. package/lib/duet/{p-2345965b.system.entry.js → p-d494f1a3.system.entry.js} +1 -1
  122. package/lib/duet/{p-e171592e.entry.js → p-d688612f.entry.js} +1 -1
  123. package/lib/duet/{p-25b156ea.entry.js → p-d70b3f27.entry.js} +1 -1
  124. package/lib/duet/{p-35a8dcc6.entry.js → p-d8c526b4.entry.js} +1 -1
  125. package/lib/duet/{p-5be54927.entry.js → p-d98ed960.entry.js} +1 -1
  126. package/lib/duet/{p-cda9e6ea.entry.js → p-d9ac5f05.entry.js} +1 -1
  127. package/lib/duet/{p-33c8d8b9.entry.js → p-e0b5e649.entry.js} +1 -1
  128. package/lib/duet/{p-b72b4f9d.entry.js → p-e485de24.entry.js} +1 -1
  129. package/lib/duet/{p-2759fa82.system.entry.js → p-e87b2fa4.system.entry.js} +1 -1
  130. package/lib/duet/{p-36af1d4b.system.entry.js → p-ea4674fd.system.entry.js} +1 -1
  131. package/lib/duet/{p-480d4dcf.system.entry.js → p-eb7c1a1d.system.entry.js} +1 -1
  132. package/lib/duet/{p-29c093f0.entry.js → p-ee6d9bc6.entry.js} +1 -1
  133. package/lib/duet/p-f125dfff.system.js +4 -0
  134. package/lib/duet/p-f1b62aca.entry.js +4 -0
  135. package/lib/duet/{p-1159dab0.system.entry.js → p-f333c2bf.system.entry.js} +1 -1
  136. package/lib/duet/{p-7fe35615.system.entry.js → p-f414ff23.system.entry.js} +1 -1
  137. package/lib/duet/{p-19a632b5.system.entry.js → p-f4c60fd8.system.entry.js} +1 -1
  138. package/lib/duet/{p-2be3b1ee.entry.js → p-f5a4ae78.entry.js} +1 -1
  139. package/lib/duet/{p-bfc93e93.system.entry.js → p-fe9138e7.system.entry.js} +1 -1
  140. package/lib/esm/duet-action-button.entry.js +1 -1
  141. package/lib/esm/duet-alert.entry.js +1 -1
  142. package/lib/esm/duet-badge.entry.js +1 -1
  143. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  144. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  145. package/lib/esm/duet-button_2.entry.js +1 -1
  146. package/lib/esm/duet-caption_4.entry.js +1 -1
  147. package/lib/esm/duet-card.entry.js +1 -1
  148. package/lib/esm/duet-checkbox.entry.js +1 -1
  149. package/lib/esm/duet-choice_2.entry.js +2 -2
  150. package/lib/esm/duet-collapsible.entry.js +1 -1
  151. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  152. package/lib/esm/duet-date-picker.entry.js +9 -4
  153. package/lib/esm/duet-divider_2.entry.js +1 -1
  154. package/lib/esm/duet-editable-table_3.entry.js +1 -1
  155. package/lib/esm/duet-empty-state.entry.js +1 -1
  156. package/lib/esm/duet-fieldset.entry.js +1 -1
  157. package/lib/esm/duet-footer.entry.js +1 -1
  158. package/lib/esm/duet-grid_2.entry.js +1 -1
  159. package/lib/esm/duet-header_2.entry.js +1 -1
  160. package/lib/esm/duet-hero.entry.js +1 -1
  161. package/lib/esm/duet-icon.entry.js +1 -1
  162. package/lib/esm/duet-input_2.entry.js +25 -2
  163. package/lib/esm/duet-layout.entry.js +1 -1
  164. package/lib/esm/duet-list_2.entry.js +1 -1
  165. package/lib/esm/duet-modal.entry.js +2 -2
  166. package/lib/esm/duet-notification_2.entry.js +1 -1
  167. package/lib/esm/duet-number-input.entry.js +1 -1
  168. package/lib/esm/duet-pagination_2.entry.js +1 -1
  169. package/lib/esm/duet-progress.entry.js +1 -1
  170. package/lib/esm/duet-radio_2.entry.js +1 -1
  171. package/lib/esm/duet-range-slider.entry.js +1 -1
  172. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  173. package/lib/esm/duet-select.entry.js +1 -1
  174. package/lib/esm/duet-step_2.entry.js +1 -1
  175. package/lib/esm/duet-textarea.entry.js +1 -1
  176. package/lib/esm/duet-toggle.entry.js +1 -1
  177. package/lib/esm/duet-tooltip.entry.js +1 -1
  178. package/lib/esm/duet-tray.entry.js +1 -1
  179. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  180. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  181. package/lib/esm/duet.js +2 -2
  182. package/lib/esm/{focus-utils-e649bb9d.js → focus-utils-d02ee9d2.js} +1 -1
  183. package/lib/esm/{index-fe6fd837.js → index-3cfa1b7e.js} +1 -1
  184. package/lib/esm/loader.js +2 -2
  185. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  186. package/lib/esm-es5/duet-alert.entry.js +1 -1
  187. package/lib/esm-es5/duet-badge.entry.js +1 -1
  188. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  189. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  190. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  191. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  192. package/lib/esm-es5/duet-card.entry.js +1 -1
  193. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  194. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  195. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  196. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  197. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  198. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  199. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  200. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  201. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  202. package/lib/esm-es5/duet-footer.entry.js +1 -1
  203. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  204. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  205. package/lib/esm-es5/duet-hero.entry.js +1 -1
  206. package/lib/esm-es5/duet-icon.entry.js +1 -1
  207. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  208. package/lib/esm-es5/duet-layout.entry.js +1 -1
  209. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  210. package/lib/esm-es5/duet-modal.entry.js +1 -1
  211. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  212. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  213. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  214. package/lib/esm-es5/duet-progress.entry.js +1 -1
  215. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  216. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  217. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  218. package/lib/esm-es5/duet-select.entry.js +1 -1
  219. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  220. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  221. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  222. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  223. package/lib/esm-es5/duet-tray.entry.js +1 -1
  224. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  225. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  226. package/lib/esm-es5/duet.js +1 -1
  227. package/lib/esm-es5/{focus-utils-e649bb9d.js → focus-utils-d02ee9d2.js} +1 -1
  228. package/lib/esm-es5/{index-fe6fd837.js → index-3cfa1b7e.js} +1 -1
  229. package/lib/esm-es5/loader.js +1 -1
  230. package/lib/html.html-data.json +5 -1
  231. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +4 -0
  232. package/lib/types/components/duet-input/duet-input.d.ts +4 -0
  233. package/lib/types/components.d.ts +8 -0
  234. package/package.json +6 -6
  235. package/lib/duet/p-251ee915.system.entry.js +0 -4
  236. package/lib/duet/p-2fd6f95a.system.js +0 -4
  237. package/lib/duet/p-7385e892.entry.js +0 -4
  238. package/lib/duet/p-9bc80a7f.js +0 -4
  239. package/lib/duet/p-d1a4aa9c.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -8758,6 +8758,7 @@ const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboa
8758
8758
  * @param to
8759
8759
  */
8760
8760
  function range(from, to) {
8761
+ console.log({ from, to });
8761
8762
  var result = [];
8762
8763
  for (var i = from; i <= to; i++) {
8763
8764
  result.push(i);
@@ -8952,6 +8953,10 @@ class DuetDatePicker {
8952
8953
  * This setting can be used alone or together with the min property.
8953
8954
  */
8954
8955
  this.max = "";
8956
+ /**
8957
+ * Increment to add to years, defaults to 10 for simplicity, if you need a larger selectionspace you can set it to 100
8958
+ */
8959
+ this.incrementYears = 10;
8955
8960
  this.enableActiveFocus = () => {
8956
8961
  this.focusTarget = "day-button";
8957
8962
  };
@@ -9217,8 +9222,8 @@ class DuetDatePicker {
9217
9222
  const maxDate = parseISODate(this.max);
9218
9223
  const prevMonthDisabled = minDate != null && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;
9219
9224
  const nextMonthDisabled = maxDate != null && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;
9220
- let minYear = selectedYear - 10;
9221
- let maxYear = selectedYear + 10;
9225
+ let minYear = selectedYear - this.incrementYears;
9226
+ let maxYear = selectedYear + this.incrementYears;
9222
9227
  if (minDate) {
9223
9228
  minYear = Math.max(minYear, minDate.getFullYear());
9224
9229
  }
@@ -9271,6 +9276,7 @@ class DuetDatePicker {
9271
9276
  "value": [1537],
9272
9277
  "min": [1],
9273
9278
  "max": [1],
9279
+ "incrementYears": [2, "increment"],
9274
9280
  "validity": [1040],
9275
9281
  "open": [32],
9276
9282
  "focusedDay": [32],
@@ -11455,6 +11461,10 @@ class DuetInput {
11455
11461
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
11456
11462
  this.errorId = createID("DuetError");
11457
11463
  this.disallowPatternRegex = null;
11464
+ /**
11465
+ * Indicates the id of a component that describes the input.
11466
+ */
11467
+ this.accessibleDescribedBy = "";
11458
11468
  /**
11459
11469
  * Set the amount of time, in milliseconds, to wait to trigger the duetChange
11460
11470
  * event after each keystroke.
@@ -11560,6 +11570,25 @@ class DuetInput {
11560
11570
  component: "duet-input",
11561
11571
  });
11562
11572
  };
11573
+ /** Private functions
11574
+ *
11575
+ */
11576
+ this.getDescribedBy = () => {
11577
+ let describedBy = "";
11578
+ if (this.isCaptionVisible && this.topCaptionId) {
11579
+ describedBy = this.topCaptionId;
11580
+ if (this.accessibleDescribedBy) {
11581
+ describedBy += " " + this.accessibleDescribedBy;
11582
+ }
11583
+ }
11584
+ else if (this.accessibleDescribedBy.length > 0) {
11585
+ describedBy = this.accessibleDescribedBy;
11586
+ }
11587
+ else {
11588
+ describedBy = undefined;
11589
+ }
11590
+ return describedBy;
11591
+ };
11563
11592
  }
11564
11593
  disallowedPatternChange() {
11565
11594
  this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "g") : null;
@@ -11632,7 +11661,7 @@ class DuetInput {
11632
11661
  disabled: this.disabled,
11633
11662
  "is-number": this.component === "number",
11634
11663
  "is-date": this.component === "date",
11635
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("slot", null)), hAsync("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && hAsync("span", { class: "duet-input-error" }, this.error)))));
11664
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("slot", null)), hAsync("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && hAsync("span", { class: "duet-input-error" }, this.error)))));
11636
11665
  }
11637
11666
  get element() { return getElement(this); }
11638
11667
  static get watchers() { return {
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const jsUtils = require('./js-utils-be1d29ae.js');
11
11
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const languageUtils = require('./language-utils-aa282901.js');
10
10
  const themeableComponent = require('./themeable-component-0c1be552.js');
11
11
  require('./string-utils-267e3dbb.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
 
11
11
  const duetBadgeCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}:host:last-child,:host:last-of-type{margin-right:0 !important}:host(.duet-m-0){margin:0 !important}.duet-badge{width:100%;padding:4.4444444444px 12px 5.4444444444px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.75rem;font-style:normal;font-weight:600;line-height:1.25;color:#00294d;text-align:center;word-break:break-word;vertical-align:middle;background:#e6f1f7;border-radius:20rem}.duet-badge.duet-p-0{padding:0 !important}.duet-badge.duet-m-0{margin:0 !important}.duet-badge.duet-theme-turva{padding:5.4444444444px 12px 4.4444444444px;font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-weight:700;color:#171c3a;background:#e8e8eb}.duet-badge.warning{background:#fef3df}.duet-badge.warning.duet-theme-turva{background:#fef1db}.duet-badge.danger{background:#fce9ef}.duet-badge.danger.duet-theme-turva{background:#fceae7}.duet-badge.success{background:#e6f3ef}.duet-badge.success.duet-theme-turva{background:#e6f3ed}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
 
11
11
  const duetBreadcrumbCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;color:#00294d;text-decoration:none}.duet-breadcrumb:hover{color:#004d80}.duet-breadcrumb.duet-theme-turva{color:#171c3a}.duet-breadcrumb.duet-theme-turva:hover{color:#940925}.duet-breadcrumb:focus{outline:0}.duet-breadcrumb:active{opacity:0.75}:host(.user-is-tabbing) .duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const languageUtils = require('./language-utils-aa282901.js');
10
10
  const themeableComponent = require('./themeable-component-0c1be552.js');
11
11
  require('./string-utils-267e3dbb.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const commonStrings = require('./common-strings-de17f887.js');
10
10
  const languageUtils = require('./language-utils-aa282901.js');
11
11
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
  const stringUtils = require('./string-utils-267e3dbb.js');
11
11
  const tokenUtils = require('./token-utils-ac8432d1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
11
11
  const stringUtils = require('./string-utils-267e3dbb.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const themeableComponent = require('./themeable-component-0c1be552.js');
11
11
 
@@ -5,10 +5,10 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const commonStrings = require('./common-strings-de17f887.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
- const focusUtils = require('./focus-utils-be11fe84.js');
11
+ const focusUtils = require('./focus-utils-88e98997.js');
12
12
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
13
13
  const languageUtils = require('./language-utils-aa282901.js');
14
14
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const actionArrowDownSmall = require('./action-arrow-down-small-ef77a2d1.js');
10
10
  const tokens = require('./tokens-72efc7fd.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
 
11
11
  const duetCookieConsentCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:fixed;right:0;bottom:0;left:0;z-index:950;display:block;width:100%;box-shadow:0 2px 20px 0 rgba(0, 0, 0, 0.2)}@media (min-width: 48em){:host{right:28px;bottom:28px;left:auto;width:25rem}}:host(:focus){outline:0}:host(.user-is-tabbing:focus){border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing.duet-theme-turva:focus){box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-cookie-consent{padding:20px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;color:white !important;background-color:rgba(0, 21, 39, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent{background:rgba(0, 21, 39, 0.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.duet-cookie-consent.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background-color:rgba(12, 14, 29, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent.duet-theme-turva{background:rgba(12, 14, 29, 0.8)}}@media (min-width: 48em){.duet-cookie-consent{padding:20px;border-radius:4px}}.duet-cookie-consent-content{display:flex;align-items:center;max-width:1110px;margin:0 auto}.duet-cookie-consent-content .expand{flex:1}::slotted(a){font-weight:600;color:white !important;text-decoration:underline;white-space:nowrap}::slotted(a[target=_blank]){padding-right:16px;background:url(\"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjUgMmExLjUgMS41IDAgMDEuMTQgM0gzLjc1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjE0LjVjMCAuMzguMjguNy42NS43NGwuMS4wMWgxNC41Yy4zOCAwIC43LS4yOC43NC0uNjVsLjAxLS4xdi02Ljg5YTEuNSAxLjUgMCAwMTMgMHY2Ljg5QTMuNzUgMy43NSAwIDAxMTguMjUgMjRIMy43NUEzLjc1IDMuNzUgMCAwMTAgMjAuMjVWNS43NUEzLjc1IDMuNzUgMCAwMTMuNzUgMnptMTItMmMuNzggMCAxLjQyLjYgMS41IDEuMzZWNy41YTEuNSAxLjUgMCAwMS0zIC4xNFY1LjEybC01LjQ0IDUuNDRhMS41IDEuNSAwIDAxLTIuMjItMmwuMS0uMTJMMTguODggM0gxNi41QTEuNSAxLjUgMCAwMTE1IDEuNjRWMS41YzAtLjc4LjYtMS40MiAxLjM2LTEuNWguMTR6Ii8+PC9zdmc+\") no-repeat right 50%;background-size:12px 10px}::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva ::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
- const focusUtils = require('./focus-utils-be11fe84.js');
10
+ const focusUtils = require('./focus-utils-88e98997.js');
11
11
  const languageUtils = require('./language-utils-aa282901.js');
12
12
  const themeableComponent = require('./themeable-component-0c1be552.js');
13
13
  require('./string-utils-267e3dbb.js');
@@ -324,6 +324,7 @@ const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboa
324
324
  * @param to
325
325
  */
326
326
  function range(from, to) {
327
+ console.log({ from, to });
327
328
  var result = [];
328
329
  for (var i = from; i <= to; i++) {
329
330
  result.push(i);
@@ -518,6 +519,10 @@ const DuetDatePicker = class {
518
519
  * This setting can be used alone or together with the min property.
519
520
  */
520
521
  this.max = "";
522
+ /**
523
+ * Increment to add to years, defaults to 10 for simplicity, if you need a larger selectionspace you can set it to 100
524
+ */
525
+ this.incrementYears = 10;
521
526
  this.enableActiveFocus = () => {
522
527
  this.focusTarget = "day-button";
523
528
  };
@@ -783,8 +788,8 @@ const DuetDatePicker = class {
783
788
  const maxDate = parseISODate(this.max);
784
789
  const prevMonthDisabled = minDate != null && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;
785
790
  const nextMonthDisabled = maxDate != null && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;
786
- let minYear = selectedYear - 10;
787
- let maxYear = selectedYear + 10;
791
+ let minYear = selectedYear - this.incrementYears;
792
+ let maxYear = selectedYear + this.incrementYears;
788
793
  if (minDate) {
789
794
  minYear = Math.max(minYear, minDate.getFullYear());
790
795
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
 
11
11
  const duetDividerCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-divider{-webkit-user-select:none;user-select:none;display:block;width:100%;height:1px;margin-top:36px !important;margin-bottom:28px;background:#e1e3e6}.duet-divider.duet-p-0{padding:0 !important}.duet-divider.duet-m-0{margin:0 !important}.duet-divider.duet-m-s{margin-bottom:16px !important;margin-top:0 !important}.duet-divider.duet-theme-turva{background:#e4e4e6}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const jsUtils = require('./js-utils-be1d29ae.js');
10
10
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
11
11
  const languageUtils = require('./language-utils-aa282901.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
 
11
11
  const duetEmptyStateCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;height:100%}.duet-empty-state{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%;padding:48px;color:#00294d;text-align:center;background:#f5f8fa;border-radius:4px}.duet-empty-state.duet-theme-turva{color:#171c3a;background:#f5f5f7}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const themeableComponent = require('./themeable-component-0c1be552.js');
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const actionNewWindowSmall = require('./action-new-window-small-fa51dfb9.js');
10
10
  const commonStrings = require('./common-strings-de17f887.js');
11
11
  const languageUtils = require('./language-utils-aa282901.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const tokens = require('./tokens-72efc7fd.js');
10
10
  const watchOptions = require('./watch-options-d88afac0.js');
11
11
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const formSearch = require('./form-search-d61b2843.js');
10
10
  const tokens = require('./tokens-72efc7fd.js');
11
11
  const bodyScrollLock_es6 = require('./bodyScrollLock.es6-6ef1142a.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const actionNewWindowSmall = require('./action-new-window-small-fa51dfb9.js');
10
10
  const commonStrings = require('./common-strings-de17f887.js');
11
11
  const languageUtils = require('./language-utils-aa282901.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
  const tokenUtils = require('./token-utils-ac8432d1.js');
11
11
  require('./tokens.module-6afcc9c1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const formSearch = require('./form-search-d61b2843.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const inputUtils = require('./input-utils-f3e3854c.js');
@@ -35,6 +35,10 @@ const DuetInput = class {
35
35
  this.topCaptionPlaceholderId = createId.createID("DuetCaptionPlaceholderTop");
36
36
  this.errorId = createId.createID("DuetError");
37
37
  this.disallowPatternRegex = null;
38
+ /**
39
+ * Indicates the id of a component that describes the input.
40
+ */
41
+ this.accessibleDescribedBy = "";
38
42
  /**
39
43
  * Set the amount of time, in milliseconds, to wait to trigger the duetChange
40
44
  * event after each keystroke.
@@ -140,6 +144,25 @@ const DuetInput = class {
140
144
  component: "duet-input",
141
145
  });
142
146
  };
147
+ /** Private functions
148
+ *
149
+ */
150
+ this.getDescribedBy = () => {
151
+ let describedBy = "";
152
+ if (this.isCaptionVisible && this.topCaptionId) {
153
+ describedBy = this.topCaptionId;
154
+ if (this.accessibleDescribedBy) {
155
+ describedBy += " " + this.accessibleDescribedBy;
156
+ }
157
+ }
158
+ else if (this.accessibleDescribedBy.length > 0) {
159
+ describedBy = this.accessibleDescribedBy;
160
+ }
161
+ else {
162
+ describedBy = undefined;
163
+ }
164
+ return describedBy;
165
+ };
143
166
  }
144
167
  disallowedPatternChange() {
145
168
  this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "g") : null;
@@ -212,7 +235,7 @@ const DuetInput = class {
212
235
  disabled: this.disabled,
213
236
  "is-number": this.component === "number",
214
237
  "is-date": this.component === "date",
215
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (index.h("div", { class: "duet-input-icon" }, index.h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (index.h("div", { class: "duet-input-icon" }, index.h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), index.h("slot", null)), index.h("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && index.h("span", { class: "duet-input-error" }, this.error)))));
238
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (index.h("div", { class: "duet-input-icon" }, index.h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (index.h("div", { class: "duet-input-icon" }, index.h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), index.h("slot", null)), index.h("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && index.h("span", { class: "duet-input-error" }, this.error)))));
216
239
  }
217
240
  get element() { return index.getElement(this); }
218
241
  static get watchers() { return {
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const isInternetExplorer = require('./is-internet-explorer-91361c56.js');
10
10
 
11
11
  const duetLayoutCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;flex:1 0 auto;width:100%}:host(.duet-middle){display:flex}:host(.duet-middle) .duet-layout{padding:36px 28px !important}@media (min-width: 36em){:host(.duet-middle) .duet-layout{padding:48px 36px !important}}@media (min-width: 62em){:host(.duet-middle) .duet-layout{padding:56px !important}}:host(.duet-ie){height:100%}:host(.duet-middle.duet-ie){height:auto}.duet-layout{position:relative;padding:0 16px;margin:48px auto 36px}@media (min-width: 36em){.duet-layout{margin-top:72px}}.duet-layout.duet-layout-has-top{margin-top:0}.duet-layout.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout.duet-center{display:flex;align-items:center;justify-content:center;width:100%;max-width:888px}@media (min-width: 36em){.duet-layout.duet-center{padding:0 48px}}@media (min-width: 48em){.duet-layout.duet-center{padding:0 72px}}@media (min-width: 62em){.duet-layout.duet-center{width:100%}}@media (min-width: 36em){.duet-layout{padding:0 28px}}@media (min-width: 62em){.duet-layout{display:flex;flex-direction:row;padding:0 56px;margin-bottom:48px}}@media (min-width: 76.25em){.duet-layout{max-width:1110px;padding:0}}.duet-main,.duet-sidebar,.duet-layout-top,.duet-layout-bottom{display:block;width:100%}.duet-layout-top{position:relative;display:block;width:100%;margin:72px auto 0}.duet-layout-top.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout-top .duet-layout-top-wrapper{padding:0 20px;margin:0 auto}@media (min-width: 36em){.duet-layout-top .duet-layout-top-wrapper{padding:0 28px}}@media (min-width: 62em){.duet-layout-top .duet-layout-top-wrapper{padding:0 56px}}@media (min-width: 76.25em){.duet-layout-top .duet-layout-top-wrapper{max-width:1110px;padding:0}}.duet-center .duet-layout-top-wrapper{max-width:888px}@media (min-width: 36em){.duet-center .duet-layout-top-wrapper{padding:0 48px}}@media (min-width: 48em){.duet-center .duet-layout-top-wrapper{padding:0 72px}}@media (min-width: 62em){.duet-main{min-width:600px;margin:0 auto}.has-sidebar .duet-main{max-width:734px;margin-right:20px}}@media (min-width: 62em){.duet-sidebar{min-width:256px;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container{width:auto;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container.has-tabs{margin-top:89px}}@media (min-width: 62em){.duet-sidebar-container.sticky{position:sticky}.duet-sidebar-container.sticky.with-links{top:calc(3rem + 20px)}.duet-sidebar-container.sticky.without-links{top:calc(4rem + 20px)}}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
  const watchOptions = require('./watch-options-d88afac0.js');
11
11
 
@@ -5,10 +5,10 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const bodyScrollLock_es6 = require('./bodyScrollLock.es6-6ef1142a.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
- const focusUtils = require('./focus-utils-be11fe84.js');
11
+ const focusUtils = require('./focus-utils-88e98997.js');
12
12
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
13
13
  const languageUtils = require('./language-utils-aa282901.js');
14
14
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const languageUtils = require('./language-utils-aa282901.js');
10
10
  const themeableComponent = require('./themeable-component-0c1be552.js');
11
11
  const actionArrowDownSmall = require('./action-arrow-down-small-ef77a2d1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
11
11
  const languageUtils = require('./language-utils-aa282901.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const jsUtils = require('./js-utils-be1d29ae.js');
11
11
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const languageUtils = require('./language-utils-aa282901.js');
11
11
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const themeableComponent = require('./themeable-component-0c1be552.js');
11
11
  const watchOptions = require('./watch-options-d88afac0.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const tokens_module = require('./tokens.module-6afcc9c1.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const isInternetExplorer = require('./is-internet-explorer-91361c56.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const themeableComponent = require('./themeable-component-0c1be552.js');
10
10
  const languageUtils = require('./language-utils-aa282901.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const stringUtils = require('./string-utils-267e3dbb.js');
11
11
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const keyboardUtils = require('./keyboard-utils-898cfe14.js');
11
11
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const inputUtils = require('./input-utils-f3e3854c.js');
11
11
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const themeableComponent = require('./themeable-component-0c1be552.js');
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const createId = require('./create-id-c3b984b1.js');
10
10
  const languageUtils = require('./language-utils-aa282901.js');
11
11
  const themeableComponent = require('./themeable-component-0c1be552.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
  const tokens_module = require('./tokens.module-6afcc9c1.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const languageUtils = require('./language-utils-aa282901.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
 
10
10
  const DuetUploadAriaStatus = class {
11
11
  constructor(hostRef) {
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-4be1f8f7.js');
8
+ const index = require('./index-ef094178.js');
9
9
 
10
10
  const duetVisuallyHiddenCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}";
11
11