@duetds/components 8.0.6 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1247) hide show
  1. package/hydrate/index.d.ts +2 -2
  2. package/hydrate/index.js +19204 -17910
  3. package/lib/cjs/app-globals-aece069f.js +28 -0
  4. package/lib/cjs/{common-strings-86913e94.js → common-strings-22c70ef0.js} +6 -6
  5. package/lib/cjs/create-id-1f8c438f.js +13 -0
  6. package/lib/cjs/duet-action-button.cjs.entry.js +134 -134
  7. package/lib/cjs/duet-alert.cjs.entry.js +109 -106
  8. package/lib/cjs/duet-badge.cjs.entry.js +29 -29
  9. package/lib/cjs/duet-banner.cjs.entry.js +52 -52
  10. package/lib/cjs/duet-breadcrumb.cjs.entry.js +50 -41
  11. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +51 -51
  12. package/lib/cjs/duet-button_2.cjs.entry.js +229 -229
  13. package/lib/cjs/duet-callout.cjs.entry.js +28 -28
  14. package/lib/cjs/duet-caption_4.cjs.entry.js +197 -187
  15. package/lib/cjs/duet-card.cjs.entry.js +100 -94
  16. package/lib/cjs/duet-checkbox.cjs.entry.js +85 -85
  17. package/lib/cjs/duet-checkmark.cjs.entry.js +23 -23
  18. package/lib/cjs/duet-chip.cjs.entry.js +189 -182
  19. package/lib/cjs/duet-choice_2.cjs.entry.js +395 -393
  20. package/lib/cjs/duet-collapsible.cjs.entry.js +105 -99
  21. package/lib/cjs/duet-combobox.cjs.entry.js +363 -363
  22. package/lib/cjs/duet-contact-card.cjs.entry.js +49 -49
  23. package/lib/cjs/duet-cookie-consent.cjs.entry.js +42 -35
  24. package/lib/cjs/duet-date-picker.cjs.entry.js +610 -610
  25. package/lib/cjs/duet-divider_2.cjs.entry.js +53 -53
  26. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1248 -1248
  27. package/lib/cjs/duet-empty-state.cjs.entry.js +26 -26
  28. package/lib/cjs/duet-fieldset.cjs.entry.js +50 -50
  29. package/lib/cjs/duet-file-chooser.cjs.entry.js +44 -44
  30. package/lib/cjs/duet-footer.cjs.entry.js +121 -118
  31. package/lib/cjs/duet-grid_2.cjs.entry.js +185 -185
  32. package/lib/cjs/duet-header_2.cjs.entry.js +613 -611
  33. package/lib/cjs/duet-hero.cjs.entry.js +172 -172
  34. package/lib/cjs/duet-icon.cjs.entry.js +141 -141
  35. package/lib/cjs/duet-input_2.cjs.entry.js +347 -347
  36. package/lib/cjs/duet-layout.cjs.entry.js +51 -51
  37. package/lib/cjs/duet-list_2.cjs.entry.js +99 -99
  38. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +70 -70
  39. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +45 -45
  40. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +94 -94
  41. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +58 -58
  42. package/lib/cjs/duet-menu-bar.cjs.entry.js +116 -116
  43. package/lib/cjs/duet-modal.cjs.entry.js +189 -189
  44. package/lib/cjs/duet-multiselect.cjs.entry.js +207 -207
  45. package/lib/cjs/duet-nav.cjs.entry.js +20 -20
  46. package/lib/cjs/duet-notification_2.cjs.entry.js +145 -140
  47. package/lib/cjs/duet-number-input.cjs.entry.js +340 -338
  48. package/lib/cjs/duet-page-heading.cjs.entry.js +26 -26
  49. package/lib/cjs/duet-pagination_2.cjs.entry.js +512 -512
  50. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +62 -62
  51. package/lib/cjs/duet-popup-menu.cjs.entry.js +148 -148
  52. package/lib/cjs/duet-progress.cjs.entry.js +54 -54
  53. package/lib/cjs/duet-promo-card.cjs.entry.js +40 -40
  54. package/lib/cjs/duet-radio_2.cjs.entry.js +197 -197
  55. package/lib/cjs/duet-range-slider.cjs.entry.js +112 -105
  56. package/lib/cjs/duet-scrollable_3.cjs.entry.js +387 -387
  57. package/lib/cjs/duet-section-layout.cjs.entry.js +21 -21
  58. package/lib/cjs/duet-select.cjs.entry.js +156 -156
  59. package/lib/cjs/duet-shaped-image.cjs.entry.js +28 -28
  60. package/lib/cjs/duet-show-more.cjs.entry.js +99 -99
  61. package/lib/cjs/duet-slideout-lang.cjs.entry.js +36 -36
  62. package/lib/cjs/duet-slideout-link.cjs.entry.js +33 -33
  63. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +50 -50
  64. package/lib/cjs/duet-slideout-panel.cjs.entry.js +120 -120
  65. package/lib/cjs/duet-slideout.cjs.entry.js +196 -196
  66. package/lib/cjs/duet-step_2.cjs.entry.js +189 -185
  67. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +37 -37
  68. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +104 -104
  69. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +60 -60
  70. package/lib/cjs/duet-submenu-bar.cjs.entry.js +110 -110
  71. package/lib/cjs/duet-textarea.cjs.entry.js +160 -160
  72. package/lib/cjs/duet-toggle.cjs.entry.js +79 -72
  73. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +36 -36
  74. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +60 -60
  75. package/lib/cjs/duet-toolbar-link.cjs.entry.js +31 -31
  76. package/lib/cjs/duet-toolbar.cjs.entry.js +34 -34
  77. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +93 -80
  78. package/lib/cjs/duet-tooltip.cjs.entry.js +190 -188
  79. package/lib/cjs/duet-tray.cjs.entry.js +85 -82
  80. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +65 -65
  81. package/lib/cjs/duet-upload-item.cjs.entry.js +81 -81
  82. package/lib/cjs/duet-visually-hidden.cjs.entry.js +12 -12
  83. package/lib/cjs/duet.cjs.js +4 -4
  84. package/lib/cjs/errorcodes.utils-a86b1f94.js +39 -0
  85. package/lib/cjs/focus-utils-d0b70745.js +21 -0
  86. package/lib/cjs/{index-2cce7b13.js → index-2dc54a15.js} +106 -45
  87. package/lib/cjs/input-utils-1096a2c5.js +56 -0
  88. package/lib/cjs/{is-internet-explorer-76c3b538.js → is-internet-explorer-e7f58ebc.js} +2 -2
  89. package/lib/cjs/{js-utils-b20cfc79.js → js-utils-92e24ba1.js} +27 -27
  90. package/lib/cjs/keyboard-utils-7248dd0a.js +69 -0
  91. package/lib/cjs/{language-utils-dc19e8b6.js → language-utils-e8a527e5.js} +74 -74
  92. package/lib/cjs/loader.cjs.js +3 -3
  93. package/lib/cjs/{slot-query-b7555763.js → slot-query-3259af5b.js} +1 -1
  94. package/lib/cjs/string-utils-053749ff.js +59 -0
  95. package/lib/cjs/teleport-e9d05bca.js +99 -0
  96. package/lib/cjs/themeable-component-83a2a0d4.js +15 -0
  97. package/lib/cjs/token-utils-84b3bca6.js +124 -0
  98. package/lib/cjs/watch-options-30a12622.js +61 -0
  99. package/lib/collection/collection-manifest.json +3 -3
  100. package/lib/collection/common/slot-query.js +3 -3
  101. package/lib/collection/common/themeable-component.js +6 -6
  102. package/lib/collection/common-strings.js +6 -6
  103. package/lib/collection/components/duet-action-button/duet-action-button.a11y.e2e.js +5 -5
  104. package/lib/collection/components/duet-action-button/duet-action-button.js +570 -569
  105. package/lib/collection/components/duet-alert/duet-alert.a11y.e2e.js +10 -10
  106. package/lib/collection/components/duet-alert/duet-alert.e2e.js +47 -47
  107. package/lib/collection/components/duet-alert/duet-alert.js +445 -441
  108. package/lib/collection/components/duet-badge/duet-badge.a11y.e2e.js +10 -10
  109. package/lib/collection/components/duet-badge/duet-badge.e2e.js +21 -21
  110. package/lib/collection/components/duet-badge/duet-badge.js +134 -134
  111. package/lib/collection/components/duet-banner/duet-banner.a11y.e2e.js +5 -5
  112. package/lib/collection/components/duet-banner/duet-banner.e2e.js +16 -16
  113. package/lib/collection/components/duet-banner/duet-banner.js +309 -309
  114. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +172 -139
  115. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.a11y.e2e.js +5 -5
  116. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.e2e.js +6 -6
  117. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +112 -112
  118. package/lib/collection/components/duet-button/duet-button.a11y.e2e.js +30 -30
  119. package/lib/collection/components/duet-button/duet-button.e2e.js +187 -187
  120. package/lib/collection/components/duet-button/duet-button.js +1068 -1067
  121. package/lib/collection/components/duet-callout/duet-callout.a11y.e2e.js +5 -5
  122. package/lib/collection/components/duet-callout/duet-callout.e2e.js +15 -15
  123. package/lib/collection/components/duet-callout/duet-callout.js +88 -88
  124. package/lib/collection/components/duet-caption/duet-caption.a11y.e2e.js +5 -5
  125. package/lib/collection/components/duet-caption/duet-caption.e2e.js +20 -20
  126. package/lib/collection/components/duet-caption/duet-caption.js +131 -131
  127. package/lib/collection/components/duet-card/duet-card.a11y.e2e.js +10 -10
  128. package/lib/collection/components/duet-card/duet-card.e2e.js +85 -85
  129. package/lib/collection/components/duet-card/duet-card.js +498 -491
  130. package/lib/collection/components/duet-checkbox/duet-checkbox.a11y.e2e.js +10 -10
  131. package/lib/collection/components/duet-checkbox/duet-checkbox.e2e.js +103 -103
  132. package/lib/collection/components/duet-checkbox/duet-checkbox.js +553 -549
  133. package/lib/collection/components/duet-chip/duet-chip.a11y.e2e.js +10 -10
  134. package/lib/collection/components/duet-chip/duet-chip.e2e.js +40 -40
  135. package/lib/collection/components/duet-chip/duet-chip.js +494 -486
  136. package/lib/collection/components/duet-choice/duet-checkmark.js +136 -136
  137. package/lib/collection/components/duet-choice/duet-choice.a11y.e2e.js +25 -25
  138. package/lib/collection/components/duet-choice/duet-choice.e2e.js +171 -171
  139. package/lib/collection/components/duet-choice/duet-choice.js +1095 -1089
  140. package/lib/collection/components/duet-choice-group/duet-choice-group.a11y.e2e.js +5 -5
  141. package/lib/collection/components/duet-choice-group/duet-choice-group.e2e.js +63 -63
  142. package/lib/collection/components/duet-choice-group/duet-choice-group.js +456 -453
  143. package/lib/collection/components/duet-collapsible/duet-collapsible.a11y.e2e.js +10 -10
  144. package/lib/collection/components/duet-collapsible/duet-collapsible.e2e.js +87 -87
  145. package/lib/collection/components/duet-collapsible/duet-collapsible.js +370 -363
  146. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +2 -2
  147. package/lib/collection/components/duet-combobox/duet-combobox-select.js +8 -8
  148. package/lib/collection/components/duet-combobox/duet-combobox.a11y.e2e.js +5 -5
  149. package/lib/collection/components/duet-combobox/duet-combobox.e2e.js +115 -115
  150. package/lib/collection/components/duet-combobox/duet-combobox.js +670 -669
  151. package/lib/collection/components/duet-contact-card/duet-contact-card.a11y.e2e.js +5 -5
  152. package/lib/collection/components/duet-contact-card/duet-contact-card.js +255 -255
  153. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.a11y.e2e.js +5 -5
  154. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.e2e.js +16 -16
  155. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +134 -127
  156. package/lib/collection/components/duet-date-picker/date-i18n.js +97 -97
  157. package/lib/collection/components/duet-date-picker/date-picker-day.js +9 -9
  158. package/lib/collection/components/duet-date-picker/date-picker-input.js +5 -5
  159. package/lib/collection/components/duet-date-picker/date-picker-month.js +16 -16
  160. package/lib/collection/components/duet-date-picker/date-utils.js +95 -95
  161. package/lib/collection/components/duet-date-picker/date-utils.spec.js +323 -323
  162. package/lib/collection/components/duet-date-picker/duet-date-picker.a11y.e2e.js +5 -5
  163. package/lib/collection/components/duet-date-picker/duet-date-picker.e2e.js +618 -618
  164. package/lib/collection/components/duet-date-picker/duet-date-picker.js +1049 -1044
  165. package/lib/collection/components/duet-date-picker/utils.js +29 -29
  166. package/lib/collection/components/duet-divider/duet-divider.a11y.e2e.js +5 -5
  167. package/lib/collection/components/duet-divider/duet-divider.e2e.js +24 -24
  168. package/lib/collection/components/duet-divider/duet-divider.js +112 -112
  169. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +7 -7
  170. package/lib/collection/components/duet-editable-table/duet-editable-table.a11y.e2e.js +5 -5
  171. package/lib/collection/components/duet-editable-table/duet-editable-table.e2e.js +19 -19
  172. package/lib/collection/components/duet-editable-table/duet-editable-table.js +501 -498
  173. package/lib/collection/components/duet-empty-state/duet-empty-state.a11y.e2e.js +5 -5
  174. package/lib/collection/components/duet-empty-state/duet-empty-state.e2e.js +10 -10
  175. package/lib/collection/components/duet-empty-state/duet-empty-state.js +110 -110
  176. package/lib/collection/components/duet-fieldset/duet-fieldset.a11y.e2e.js +5 -5
  177. package/lib/collection/components/duet-fieldset/duet-fieldset.e2e.js +5 -5
  178. package/lib/collection/components/duet-fieldset/duet-fieldset.js +245 -245
  179. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +179 -179
  180. package/lib/collection/components/duet-footer/duet-footer.a11y.e2e.js +5 -5
  181. package/lib/collection/components/duet-footer/duet-footer.e2e.js +163 -163
  182. package/lib/collection/components/duet-footer/duet-footer.js +488 -485
  183. package/lib/collection/components/duet-grid/duet-grid.a11y.e2e.js +5 -5
  184. package/lib/collection/components/duet-grid/duet-grid.e2e.js +36 -36
  185. package/lib/collection/components/duet-grid/duet-grid.js +345 -342
  186. package/lib/collection/components/duet-grid-item/duet-grid-item.js +233 -230
  187. package/lib/collection/components/duet-header/duet-header-dropdown.js +12 -12
  188. package/lib/collection/components/duet-header/duet-header-icon.js +2 -2
  189. package/lib/collection/components/duet-header/duet-header.a11y.e2e.js +5 -5
  190. package/lib/collection/components/duet-header/duet-header.e2e.js +430 -430
  191. package/lib/collection/components/duet-header/duet-header.js +1300 -1296
  192. package/lib/collection/components/duet-heading/duet-heading.a11y.e2e.js +5 -5
  193. package/lib/collection/components/duet-heading/duet-heading.e2e.js +21 -21
  194. package/lib/collection/components/duet-heading/duet-heading.js +230 -230
  195. package/lib/collection/components/duet-hero/duet-hero.a11y.e2e.js +15 -15
  196. package/lib/collection/components/duet-hero/duet-hero.e2e.js +166 -166
  197. package/lib/collection/components/duet-hero/duet-hero.js +814 -814
  198. package/lib/collection/components/duet-icon/duet-icon.a11y.e2e.js +5 -5
  199. package/lib/collection/components/duet-icon/duet-icon.e2e.js +26 -26
  200. package/lib/collection/components/duet-icon/duet-icon.js +392 -392
  201. package/lib/collection/components/duet-icon/icon-utils.js +59 -59
  202. package/lib/collection/components/duet-icon/icon-utils.spec.js +76 -76
  203. package/lib/collection/components/duet-input/duet-input.a11y.e2e.js +20 -20
  204. package/lib/collection/components/duet-input/duet-input.e2e.js +195 -195
  205. package/lib/collection/components/duet-input/duet-input.js +1249 -1245
  206. package/lib/collection/components/duet-label/duet-label.a11y.e2e.js +5 -5
  207. package/lib/collection/components/duet-label/duet-label.e2e.js +26 -26
  208. package/lib/collection/components/duet-label/duet-label.js +134 -131
  209. package/lib/collection/components/duet-layout/duet-layout.a11y.e2e.js +5 -5
  210. package/lib/collection/components/duet-layout/duet-layout.e2e.js +26 -26
  211. package/lib/collection/components/duet-layout/duet-layout.js +207 -207
  212. package/lib/collection/components/duet-link/duet-link.a11y.e2e.js +15 -15
  213. package/lib/collection/components/duet-link/duet-link.e2e.js +47 -47
  214. package/lib/collection/components/duet-link/duet-link.js +446 -435
  215. package/lib/collection/components/duet-list/duet-list.a11y.e2e.js +11 -11
  216. package/lib/collection/components/duet-list/duet-list.e2e.js +50 -50
  217. package/lib/collection/components/duet-list/duet-list.js +292 -292
  218. package/lib/collection/components/duet-list-item/duet-list-item.js +81 -81
  219. package/lib/collection/components/duet-logo/duet-logo.a11y.e2e.js +5 -5
  220. package/lib/collection/components/duet-logo/duet-logo.e2e.js +36 -36
  221. package/lib/collection/components/duet-logo/duet-logo.js +293 -292
  222. package/lib/collection/components/duet-menu-bar/duet-menu-bar.a11y.e2e.js +5 -5
  223. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +261 -261
  224. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +347 -346
  225. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +224 -223
  226. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +133 -133
  227. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +170 -170
  228. package/lib/collection/components/duet-modal/duet-modal.a11y.e2e.js +10 -10
  229. package/lib/collection/components/duet-modal/duet-modal.e2e.js +78 -78
  230. package/lib/collection/components/duet-modal/duet-modal.js +687 -687
  231. package/lib/collection/components/duet-multiselect/duet-multiselect.a11y.e2e.js +5 -5
  232. package/lib/collection/components/duet-multiselect/duet-multiselect.e2e.js +87 -87
  233. package/lib/collection/components/duet-multiselect/duet-multiselect.js +654 -653
  234. package/lib/collection/components/duet-nav/duet-nav.js +56 -56
  235. package/lib/collection/components/duet-notification/duet-notification.a11y.e2e.js +5 -5
  236. package/lib/collection/components/duet-notification/duet-notification.e2e.js +6 -6
  237. package/lib/collection/components/duet-notification/duet-notification.js +260 -259
  238. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.a11y.e2e.js +10 -10
  239. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.e2e.js +141 -141
  240. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +382 -383
  241. package/lib/collection/components/duet-number-input/duet-number-input-negative.e2e.js +26 -26
  242. package/lib/collection/components/duet-number-input/duet-number-input.a11y.e2e.js +5 -5
  243. package/lib/collection/components/duet-number-input/duet-number-input.e2e.js +232 -232
  244. package/lib/collection/components/duet-number-input/duet-number-input.js +1120 -1114
  245. package/lib/collection/components/duet-page-heading/duet-page-heading.a11y.e2e.js +5 -5
  246. package/lib/collection/components/duet-page-heading/duet-page-heading.js +104 -104
  247. package/lib/collection/components/duet-pagination/duet-pagination-utils.js +4 -4
  248. package/lib/collection/components/duet-pagination/duet-pagination.a11y.e2e.js +10 -10
  249. package/lib/collection/components/duet-pagination/duet-pagination.e2e.js +79 -79
  250. package/lib/collection/components/duet-pagination/duet-pagination.js +677 -677
  251. package/lib/collection/components/duet-paragraph/duet-paragraph.a11y.e2e.js +5 -5
  252. package/lib/collection/components/duet-paragraph/duet-paragraph.e2e.js +21 -21
  253. package/lib/collection/components/duet-paragraph/duet-paragraph.js +190 -190
  254. package/lib/collection/components/duet-popup-menu/duet-popup-menu.a11y.e2e.js +5 -5
  255. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +407 -407
  256. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +344 -343
  257. package/lib/collection/components/duet-progress/duet-progress.a11y.e2e.js +7 -7
  258. package/lib/collection/components/duet-progress/duet-progress.e2e.js +6 -6
  259. package/lib/collection/components/duet-progress/duet-progress.js +276 -273
  260. package/lib/collection/components/duet-promo-card/duet-promo-card.a11y.e2e.js +5 -5
  261. package/lib/collection/components/duet-promo-card/duet-promo-card.e2e.js +16 -16
  262. package/lib/collection/components/duet-promo-card/duet-promo-card.js +206 -206
  263. package/lib/collection/components/duet-radio/duet-radio.a11y.e2e.js +5 -5
  264. package/lib/collection/components/duet-radio/duet-radio.e2e.js +126 -126
  265. package/lib/collection/components/duet-radio/duet-radio.js +609 -605
  266. package/lib/collection/components/duet-radio-group/duet-radio-group.a11y.e2e.js +10 -10
  267. package/lib/collection/components/duet-radio-group/duet-radio-group.e2e.js +39 -39
  268. package/lib/collection/components/duet-radio-group/duet-radio-group.js +423 -420
  269. package/lib/collection/components/duet-range-slider/duet-range-slider.a11y.e2e.js +5 -5
  270. package/lib/collection/components/duet-range-slider/duet-range-slider.e2e.js +51 -51
  271. package/lib/collection/components/duet-range-slider/duet-range-slider.js +568 -557
  272. package/lib/collection/components/duet-range-stepper/duet-range-stepper.a11y.e2e.js +5 -5
  273. package/lib/collection/components/duet-range-stepper/duet-range-stepper.e2e.js +46 -46
  274. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +341 -341
  275. package/lib/collection/components/duet-range-stepper/duet-range-stepper.spec.js +17 -17
  276. package/lib/collection/components/duet-scrollable/duet-scrollable.a11y.e2e.js +5 -5
  277. package/lib/collection/components/duet-scrollable/duet-scrollable.e2e.js +6 -6
  278. package/lib/collection/components/duet-scrollable/duet-scrollable.js +294 -294
  279. package/lib/collection/components/duet-section-layout/duet-section-layout.a11y.e2e.js +5 -5
  280. package/lib/collection/components/duet-section-layout/duet-section-layout.e2e.js +16 -16
  281. package/lib/collection/components/duet-section-layout/duet-section-layout.js +75 -75
  282. package/lib/collection/components/duet-select/duet-select.a11y.e2e.js +10 -10
  283. package/lib/collection/components/duet-select/duet-select.e2e.js +201 -201
  284. package/lib/collection/components/duet-select/duet-select.js +722 -718
  285. package/lib/collection/components/duet-shaped-image/duet-shaped-image.a11y.e2e.js +5 -5
  286. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +143 -143
  287. package/lib/collection/components/duet-show-more/duet-show-more.a11y.e2e.js +5 -5
  288. package/lib/collection/components/duet-show-more/duet-show-more.js +436 -436
  289. package/lib/collection/components/duet-slideout/duet-slideout.a11y.e2e.js +5 -5
  290. package/lib/collection/components/duet-slideout/duet-slideout.css +4 -10
  291. package/lib/collection/components/duet-slideout/duet-slideout.js +408 -407
  292. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +75 -75
  293. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +215 -215
  294. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +282 -281
  295. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +177 -176
  296. package/lib/collection/components/duet-spacer/duet-spacer.a11y.e2e.js +5 -5
  297. package/lib/collection/components/duet-spacer/duet-spacer.e2e.js +21 -21
  298. package/lib/collection/components/duet-spacer/duet-spacer.js +110 -110
  299. package/lib/collection/components/duet-spinner/duet-spinner.a11y.e2e.js +5 -5
  300. package/lib/collection/components/duet-spinner/duet-spinner.e2e.js +23 -23
  301. package/lib/collection/components/duet-spinner/duet-spinner.js +131 -131
  302. package/lib/collection/components/duet-step/duet-step.e2e.js +83 -83
  303. package/lib/collection/components/duet-step/duet-step.js +299 -291
  304. package/lib/collection/components/duet-stepper/duet-stepper.a11y.e2e.js +8 -8
  305. package/lib/collection/components/duet-stepper/duet-stepper.e2e.js +49 -49
  306. package/lib/collection/components/duet-stepper/duet-stepper.js +243 -243
  307. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.a11y.e2e.js +5 -5
  308. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +218 -217
  309. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +235 -234
  310. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +162 -162
  311. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +154 -154
  312. package/lib/collection/components/duet-tab/duet-tab.e2e.js +10 -10
  313. package/lib/collection/components/duet-tab/duet-tab.js +162 -161
  314. package/lib/collection/components/duet-tab-group/duet-tab-group.a11y.e2e.js +5 -5
  315. package/lib/collection/components/duet-tab-group/duet-tab-group.e2e.js +60 -60
  316. package/lib/collection/components/duet-tab-group/duet-tab-group.js +636 -633
  317. package/lib/collection/components/duet-table/duet-table.a11y.e2e.js +5 -5
  318. package/lib/collection/components/duet-table/duet-table.e2e.js +25 -25
  319. package/lib/collection/components/duet-table/duet-table.js +284 -281
  320. package/lib/collection/components/duet-textarea/duet-textarea.a11y.e2e.js +10 -10
  321. package/lib/collection/components/duet-textarea/duet-textarea.e2e.js +193 -193
  322. package/lib/collection/components/duet-textarea/duet-textarea.js +849 -845
  323. package/lib/collection/components/duet-toggle/duet-toggle.a11y.e2e.js +5 -5
  324. package/lib/collection/components/duet-toggle/duet-toggle.e2e.js +66 -66
  325. package/lib/collection/components/duet-toggle/duet-toggle.js +475 -464
  326. package/lib/collection/components/duet-toolbar/duet-toolbar.a11y.e2e.js +5 -5
  327. package/lib/collection/components/duet-toolbar/duet-toolbar.js +105 -105
  328. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +221 -220
  329. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +160 -160
  330. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +156 -156
  331. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +172 -164
  332. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +258 -251
  333. package/lib/collection/components/duet-tooltip/duet-tooltip.a11y.e2e.js +14 -14
  334. package/lib/collection/components/duet-tooltip/duet-tooltip.e2e.js +76 -76
  335. package/lib/collection/components/duet-tooltip/duet-tooltip.js +537 -529
  336. package/lib/collection/components/duet-tray/duet-tray.a11y.e2e.js +5 -5
  337. package/lib/collection/components/duet-tray/duet-tray.e2e.js +67 -67
  338. package/lib/collection/components/duet-tray/duet-tray.js +318 -315
  339. package/lib/collection/components/duet-upload/duet-upload.e2e.js +40 -40
  340. package/lib/collection/components/duet-upload/duet-upload.js +2282 -2276
  341. package/lib/collection/components/duet-upload/errorcodes.utils.js +22 -22
  342. package/lib/collection/components/duet-upload/mock.helpers.js +85 -85
  343. package/lib/collection/components/duet-upload/upload-editable-item-error.js +4 -4
  344. package/lib/collection/components/duet-upload/upload-editable-item-success.js +15 -15
  345. package/lib/collection/components/duet-upload/upload-item-category.js +2 -2
  346. package/lib/collection/components/duet-upload/upload-item-header.js +4 -4
  347. package/lib/collection/components/duet-upload/upload-validators.js +96 -96
  348. package/lib/collection/components/duet-upload/upload-validators.spec.js +35 -35
  349. package/lib/collection/components/duet-upload/upload.helpers.js +8 -8
  350. package/lib/collection/components/duet-upload/xhr.helpers.js +26 -26
  351. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +194 -194
  352. package/lib/collection/components/duet-upload-item/duet-upload-item.js +306 -306
  353. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.a11y.e2e.js +5 -5
  354. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.e2e.js +6 -6
  355. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +20 -20
  356. package/lib/collection/global/duet-global.js +1 -27
  357. package/lib/collection/global/log-wrapper.js +29 -29
  358. package/lib/collection/utils/axe-core-utils.js +24 -24
  359. package/lib/collection/utils/create-id.js +2 -2
  360. package/lib/collection/utils/create-id.spec.js +6 -6
  361. package/lib/collection/utils/fixture-utils.js +25 -25
  362. package/lib/collection/utils/focus-utils.js +7 -7
  363. package/lib/collection/utils/group-by.js +9 -9
  364. package/lib/collection/utils/input-utils.js +25 -25
  365. package/lib/collection/utils/is-internet-explorer.js +2 -2
  366. package/lib/collection/utils/js-utils.js +38 -38
  367. package/lib/collection/utils/js-utils.spec.js +14 -14
  368. package/lib/collection/utils/keyboard-utils.js +43 -12
  369. package/lib/collection/utils/language-utils.js +73 -73
  370. package/lib/collection/utils/language-utils.spec.js +151 -151
  371. package/lib/collection/utils/math.utils.js +59 -59
  372. package/lib/collection/utils/math.utils.spec.js +130 -130
  373. package/lib/collection/utils/picture-utils.js +2 -2
  374. package/lib/collection/utils/string-utils.js +31 -31
  375. package/lib/collection/utils/string-utils.spec.js +32 -32
  376. package/lib/collection/utils/teleport.js +77 -77
  377. package/lib/collection/utils/template-utils.js +18 -18
  378. package/lib/collection/utils/template-utils.spec.js +33 -33
  379. package/lib/collection/utils/test-utils.js +31 -31
  380. package/lib/collection/utils/token-utils.js +96 -96
  381. package/lib/collection/utils/token-utils.spec.js +170 -170
  382. package/lib/collection/utils/watch-options.js +44 -44
  383. package/lib/dist-custom-elements/duet-action-button.d.ts +2 -2
  384. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  385. package/lib/dist-custom-elements/duet-alert.d.ts +2 -2
  386. package/lib/dist-custom-elements/duet-alert.js +1 -1
  387. package/lib/dist-custom-elements/duet-badge.d.ts +2 -2
  388. package/lib/dist-custom-elements/duet-badge.js +1 -1
  389. package/lib/dist-custom-elements/duet-banner.d.ts +2 -2
  390. package/lib/dist-custom-elements/duet-banner.js +96 -96
  391. package/lib/dist-custom-elements/duet-breadcrumb.d.ts +2 -2
  392. package/lib/dist-custom-elements/duet-breadcrumb.js +82 -66
  393. package/lib/dist-custom-elements/duet-breadcrumbs.d.ts +2 -2
  394. package/lib/dist-custom-elements/duet-breadcrumbs.js +68 -68
  395. package/lib/dist-custom-elements/duet-button.d.ts +2 -2
  396. package/lib/dist-custom-elements/duet-button.js +1 -1
  397. package/lib/dist-custom-elements/duet-callout.d.ts +2 -2
  398. package/lib/dist-custom-elements/duet-callout.js +57 -57
  399. package/lib/dist-custom-elements/duet-caption.d.ts +2 -2
  400. package/lib/dist-custom-elements/duet-caption.js +1 -1
  401. package/lib/dist-custom-elements/duet-card.d.ts +2 -2
  402. package/lib/dist-custom-elements/duet-card.js +144 -138
  403. package/lib/dist-custom-elements/duet-checkbox.d.ts +2 -2
  404. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  405. package/lib/dist-custom-elements/duet-checkmark.d.ts +2 -2
  406. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  407. package/lib/dist-custom-elements/duet-chip.d.ts +2 -2
  408. package/lib/dist-custom-elements/duet-chip.js +226 -219
  409. package/lib/dist-custom-elements/duet-choice-group.d.ts +2 -2
  410. package/lib/dist-custom-elements/duet-choice-group.js +189 -189
  411. package/lib/dist-custom-elements/duet-choice.d.ts +2 -2
  412. package/lib/dist-custom-elements/duet-choice.js +360 -358
  413. package/lib/dist-custom-elements/duet-collapsible.d.ts +2 -2
  414. package/lib/dist-custom-elements/duet-collapsible.js +137 -131
  415. package/lib/dist-custom-elements/duet-combobox.d.ts +2 -2
  416. package/lib/dist-custom-elements/duet-combobox.js +406 -406
  417. package/lib/dist-custom-elements/duet-contact-card.d.ts +2 -2
  418. package/lib/dist-custom-elements/duet-contact-card.js +116 -116
  419. package/lib/dist-custom-elements/duet-cookie-consent.d.ts +2 -2
  420. package/lib/dist-custom-elements/duet-cookie-consent.js +89 -82
  421. package/lib/dist-custom-elements/duet-date-picker.d.ts +2 -2
  422. package/lib/dist-custom-elements/duet-date-picker.js +728 -728
  423. package/lib/dist-custom-elements/duet-divider.d.ts +2 -2
  424. package/lib/dist-custom-elements/duet-divider.js +1 -1
  425. package/lib/dist-custom-elements/duet-editable-table.d.ts +2 -2
  426. package/lib/dist-custom-elements/duet-editable-table.js +231 -231
  427. package/lib/dist-custom-elements/duet-empty-state.d.ts +2 -2
  428. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  429. package/lib/dist-custom-elements/duet-fieldset.d.ts +2 -2
  430. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  431. package/lib/dist-custom-elements/duet-file-chooser.d.ts +2 -2
  432. package/lib/dist-custom-elements/duet-file-chooser.js +70 -70
  433. package/lib/dist-custom-elements/duet-footer.d.ts +2 -2
  434. package/lib/dist-custom-elements/duet-footer.js +170 -167
  435. package/lib/dist-custom-elements/duet-grid-item.d.ts +2 -2
  436. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  437. package/lib/dist-custom-elements/duet-grid.d.ts +2 -2
  438. package/lib/dist-custom-elements/duet-grid.js +1 -1
  439. package/lib/dist-custom-elements/duet-header.d.ts +2 -2
  440. package/lib/dist-custom-elements/duet-header.js +640 -638
  441. package/lib/dist-custom-elements/duet-heading.d.ts +2 -2
  442. package/lib/dist-custom-elements/duet-heading.js +1 -1
  443. package/lib/dist-custom-elements/duet-hero.d.ts +2 -2
  444. package/lib/dist-custom-elements/duet-hero.js +270 -270
  445. package/lib/dist-custom-elements/duet-icon.d.ts +2 -2
  446. package/lib/dist-custom-elements/duet-icon.js +1 -1
  447. package/lib/dist-custom-elements/duet-input.d.ts +2 -2
  448. package/lib/dist-custom-elements/duet-input.js +1 -1
  449. package/lib/dist-custom-elements/duet-label.d.ts +2 -2
  450. package/lib/dist-custom-elements/duet-label.js +1 -1
  451. package/lib/dist-custom-elements/duet-layout.d.ts +2 -2
  452. package/lib/dist-custom-elements/duet-layout.js +73 -73
  453. package/lib/dist-custom-elements/duet-link.d.ts +2 -2
  454. package/lib/dist-custom-elements/duet-link.js +1 -1
  455. package/lib/dist-custom-elements/duet-list-item.d.ts +2 -2
  456. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  457. package/lib/dist-custom-elements/duet-list.d.ts +2 -2
  458. package/lib/dist-custom-elements/duet-list.js +1 -1
  459. package/lib/dist-custom-elements/duet-logo.d.ts +2 -2
  460. package/lib/dist-custom-elements/duet-logo.js +1 -1
  461. package/lib/dist-custom-elements/duet-menu-bar-button.d.ts +2 -2
  462. package/lib/dist-custom-elements/duet-menu-bar-button.js +106 -106
  463. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.d.ts +2 -2
  464. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +70 -70
  465. package/lib/dist-custom-elements/duet-menu-bar-dropdown.d.ts +2 -2
  466. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +121 -121
  467. package/lib/dist-custom-elements/duet-menu-bar-link.d.ts +2 -2
  468. package/lib/dist-custom-elements/duet-menu-bar-link.js +85 -85
  469. package/lib/dist-custom-elements/duet-menu-bar.d.ts +2 -2
  470. package/lib/dist-custom-elements/duet-menu-bar.js +145 -145
  471. package/lib/dist-custom-elements/duet-modal.d.ts +2 -2
  472. package/lib/dist-custom-elements/duet-modal.js +263 -263
  473. package/lib/dist-custom-elements/duet-multiselect.d.ts +2 -2
  474. package/lib/dist-custom-elements/duet-multiselect.js +300 -300
  475. package/lib/dist-custom-elements/duet-nav.d.ts +2 -2
  476. package/lib/dist-custom-elements/duet-nav.js +36 -36
  477. package/lib/dist-custom-elements/duet-notification-drawer.d.ts +2 -2
  478. package/lib/dist-custom-elements/duet-notification-drawer.js +145 -142
  479. package/lib/dist-custom-elements/duet-notification.d.ts +2 -2
  480. package/lib/dist-custom-elements/duet-notification.js +79 -76
  481. package/lib/dist-custom-elements/duet-number-input.d.ts +2 -2
  482. package/lib/dist-custom-elements/duet-number-input.js +451 -449
  483. package/lib/dist-custom-elements/duet-page-heading.d.ts +2 -2
  484. package/lib/dist-custom-elements/duet-page-heading.js +50 -50
  485. package/lib/dist-custom-elements/duet-pagination.d.ts +2 -2
  486. package/lib/dist-custom-elements/duet-pagination.js +450 -450
  487. package/lib/dist-custom-elements/duet-paragraph.d.ts +2 -2
  488. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  489. package/lib/dist-custom-elements/duet-popup-menu-item.d.ts +2 -2
  490. package/lib/dist-custom-elements/duet-popup-menu-item.js +95 -95
  491. package/lib/dist-custom-elements/duet-popup-menu.d.ts +2 -2
  492. package/lib/dist-custom-elements/duet-popup-menu.js +177 -177
  493. package/lib/dist-custom-elements/duet-progress.d.ts +2 -2
  494. package/lib/dist-custom-elements/duet-progress.js +1 -1
  495. package/lib/dist-custom-elements/duet-promo-card.d.ts +2 -2
  496. package/lib/dist-custom-elements/duet-promo-card.js +74 -74
  497. package/lib/dist-custom-elements/duet-radio-group.d.ts +2 -2
  498. package/lib/dist-custom-elements/duet-radio-group.js +183 -183
  499. package/lib/dist-custom-elements/duet-radio.d.ts +2 -2
  500. package/lib/dist-custom-elements/duet-radio.js +130 -130
  501. package/lib/dist-custom-elements/duet-range-slider.d.ts +2 -2
  502. package/lib/dist-custom-elements/duet-range-slider.js +153 -146
  503. package/lib/dist-custom-elements/duet-range-stepper.d.ts +2 -2
  504. package/lib/dist-custom-elements/duet-range-stepper.js +207 -207
  505. package/lib/dist-custom-elements/duet-scrollable.d.ts +2 -2
  506. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  507. package/lib/dist-custom-elements/duet-section-layout.d.ts +2 -2
  508. package/lib/dist-custom-elements/duet-section-layout.js +38 -38
  509. package/lib/dist-custom-elements/duet-select.d.ts +2 -2
  510. package/lib/dist-custom-elements/duet-select.js +1 -1
  511. package/lib/dist-custom-elements/duet-shaped-image.d.ts +2 -2
  512. package/lib/dist-custom-elements/duet-shaped-image.js +48 -48
  513. package/lib/dist-custom-elements/duet-show-more.d.ts +2 -2
  514. package/lib/dist-custom-elements/duet-show-more.js +152 -152
  515. package/lib/dist-custom-elements/duet-slideout-lang.d.ts +2 -2
  516. package/lib/dist-custom-elements/duet-slideout-lang.js +58 -58
  517. package/lib/dist-custom-elements/duet-slideout-link.d.ts +2 -2
  518. package/lib/dist-custom-elements/duet-slideout-link.js +63 -63
  519. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.d.ts +2 -2
  520. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +76 -76
  521. package/lib/dist-custom-elements/duet-slideout-panel.d.ts +2 -2
  522. package/lib/dist-custom-elements/duet-slideout-panel.js +149 -149
  523. package/lib/dist-custom-elements/duet-slideout.d.ts +2 -2
  524. package/lib/dist-custom-elements/duet-slideout.js +227 -227
  525. package/lib/dist-custom-elements/duet-spacer.d.ts +2 -2
  526. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  527. package/lib/dist-custom-elements/duet-spinner.d.ts +2 -2
  528. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  529. package/lib/dist-custom-elements/duet-step.d.ts +2 -2
  530. package/lib/dist-custom-elements/duet-step.js +123 -119
  531. package/lib/dist-custom-elements/duet-stepper.d.ts +2 -2
  532. package/lib/dist-custom-elements/duet-stepper.js +129 -129
  533. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.d.ts +2 -2
  534. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +64 -64
  535. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.d.ts +2 -2
  536. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +132 -132
  537. package/lib/dist-custom-elements/duet-submenu-bar-link.d.ts +2 -2
  538. package/lib/dist-custom-elements/duet-submenu-bar-link.js +86 -86
  539. package/lib/dist-custom-elements/duet-submenu-bar.d.ts +2 -2
  540. package/lib/dist-custom-elements/duet-submenu-bar.js +139 -139
  541. package/lib/dist-custom-elements/duet-tab-group.d.ts +2 -2
  542. package/lib/dist-custom-elements/duet-tab-group.js +312 -310
  543. package/lib/dist-custom-elements/duet-tab.d.ts +2 -2
  544. package/lib/dist-custom-elements/duet-tab.js +50 -52
  545. package/lib/dist-custom-elements/duet-table.d.ts +2 -2
  546. package/lib/dist-custom-elements/duet-table.js +1 -1
  547. package/lib/dist-custom-elements/duet-textarea.d.ts +2 -2
  548. package/lib/dist-custom-elements/duet-textarea.js +262 -262
  549. package/lib/dist-custom-elements/duet-toggle.d.ts +2 -2
  550. package/lib/dist-custom-elements/duet-toggle.js +120 -113
  551. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.d.ts +2 -2
  552. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +63 -63
  553. package/lib/dist-custom-elements/duet-toolbar-dropdown.d.ts +2 -2
  554. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +88 -88
  555. package/lib/dist-custom-elements/duet-toolbar-link.d.ts +2 -2
  556. package/lib/dist-custom-elements/duet-toolbar-link.js +58 -58
  557. package/lib/dist-custom-elements/duet-toolbar.d.ts +2 -2
  558. package/lib/dist-custom-elements/duet-toolbar.js +52 -52
  559. package/lib/dist-custom-elements/duet-tooltip-button.d.ts +2 -2
  560. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  561. package/lib/dist-custom-elements/duet-tooltip-popup.d.ts +2 -2
  562. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  563. package/lib/dist-custom-elements/duet-tooltip.d.ts +2 -2
  564. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  565. package/lib/dist-custom-elements/duet-tray.d.ts +2 -2
  566. package/lib/dist-custom-elements/duet-tray.js +122 -119
  567. package/lib/dist-custom-elements/duet-upload-aria-status.d.ts +2 -2
  568. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  569. package/lib/dist-custom-elements/duet-upload-item.d.ts +2 -2
  570. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  571. package/lib/dist-custom-elements/duet-upload.d.ts +2 -2
  572. package/lib/dist-custom-elements/duet-upload.js +1163 -1163
  573. package/lib/dist-custom-elements/duet-visually-hidden.d.ts +2 -2
  574. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  575. package/lib/dist-custom-elements/index.js +15 -41
  576. package/lib/dist-custom-elements/{p-7247d0b2.js → p-04a295c6.js} +65 -43
  577. package/lib/dist-custom-elements/p-064f1578.js +273 -0
  578. package/lib/dist-custom-elements/{p-e4355989.js → p-0b123cad.js} +95 -88
  579. package/lib/dist-custom-elements/p-0e052642.js +55 -0
  580. package/lib/dist-custom-elements/p-0f8e290f.js +226 -0
  581. package/lib/dist-custom-elements/{p-d0987122.js → p-10a15ea1.js} +48 -48
  582. package/lib/{esm/slot-query-7877f18f.js → dist-custom-elements/p-11230037.js} +1 -1
  583. package/lib/dist-custom-elements/{p-2b1a35cd.js → p-1224c98d.js} +278 -278
  584. package/lib/dist-custom-elements/p-1b2fea2b.js +59 -0
  585. package/lib/dist-custom-elements/p-1e4ca38f.js +126 -0
  586. package/lib/dist-custom-elements/{p-bcfb9e03.js → p-24ae0332.js} +50 -50
  587. package/lib/dist-custom-elements/p-2613ae6a.js +265 -0
  588. package/lib/dist-custom-elements/{p-4883df66.js → p-2e36d5bf.js} +74 -74
  589. package/lib/dist-custom-elements/p-435c14fe.js +60 -0
  590. package/lib/dist-custom-elements/p-4391eb0d.js +110 -0
  591. package/lib/dist-custom-elements/p-43b89e38.js +9 -0
  592. package/lib/dist-custom-elements/p-47247d7e.js +465 -0
  593. package/lib/dist-custom-elements/{p-ba870310.js → p-490933fd.js} +47 -47
  594. package/lib/dist-custom-elements/{p-274d11e3.js → p-4ab776f4.js} +6 -6
  595. package/lib/dist-custom-elements/p-5788a98f.js +123 -0
  596. package/lib/dist-custom-elements/p-57a1cba9.js +117 -0
  597. package/lib/dist-custom-elements/p-5e1cd480.js +79 -0
  598. package/lib/dist-custom-elements/p-5e59e970.js +11 -0
  599. package/lib/dist-custom-elements/{p-9dd26401.js → p-618174a5.js} +128 -128
  600. package/lib/dist-custom-elements/{p-6c2e13f0.js → p-6222a43f.js} +56 -56
  601. package/lib/dist-custom-elements/{p-52014bb2.js → p-63ec7678.js} +37 -37
  602. package/lib/dist-custom-elements/{p-180c0d2d.js → p-65d472d7.js} +174 -174
  603. package/lib/dist-custom-elements/p-68bd36c7.js +38 -0
  604. package/lib/dist-custom-elements/p-76e8ab22.js +98 -0
  605. package/lib/dist-custom-elements/p-7d8a2628.js +57 -0
  606. package/lib/dist-custom-elements/p-8b89622f.js +177 -0
  607. package/lib/dist-custom-elements/p-8e357cfb.js +137 -0
  608. package/lib/dist-custom-elements/p-8f253845.js +51 -0
  609. package/lib/dist-custom-elements/{p-d49389d2.js → p-916e66c9.js} +171 -171
  610. package/lib/dist-custom-elements/p-994556c0.js +151 -0
  611. package/lib/dist-custom-elements/{p-3d8d557b.js → p-9e371678.js} +27 -27
  612. package/lib/dist-custom-elements/p-a58bd561.js +13 -0
  613. package/lib/dist-custom-elements/{p-c0af301d.js → p-adef0aaa.js} +64 -64
  614. package/lib/dist-custom-elements/p-b2e550a3.js +97 -0
  615. package/lib/dist-custom-elements/p-ba28f5ce.js +205 -0
  616. package/lib/dist-custom-elements/{p-21b815ae.js → p-beb5db77.js} +42 -42
  617. package/lib/dist-custom-elements/p-d0e52a83.js +76 -0
  618. package/lib/dist-custom-elements/p-df7874f9.js +53 -0
  619. package/lib/dist-custom-elements/{p-3ccd454b.js → p-e034dfea.js} +43 -43
  620. package/lib/dist-custom-elements/p-e929268c.js +62 -0
  621. package/lib/dist-custom-elements/p-eef66341.js +18 -0
  622. package/lib/dist-custom-elements/p-fc1fa737.js +206 -0
  623. package/lib/dist-custom-elements/p-ff591309.js +93 -0
  624. package/lib/duet/duet.esm.js +1 -1
  625. package/lib/duet/duet.js +15 -15
  626. package/lib/duet/{p-bfeeee67.system.entry.js → p-00da8ac7.system.entry.js} +2 -2
  627. package/lib/duet/{p-0c702d36.entry.js → p-023ee57b.entry.js} +1 -1
  628. package/lib/duet/{p-39078c27.system.entry.js → p-02f49953.system.entry.js} +2 -2
  629. package/lib/duet/{p-0558a17e.system.entry.js → p-060a790b.system.entry.js} +1 -1
  630. package/lib/duet/{p-80013513.system.entry.js → p-07ce89ff.system.entry.js} +1 -1
  631. package/lib/duet/{p-301ddafe.entry.js → p-07f5193f.entry.js} +1 -1
  632. package/lib/duet/{p-c801ebee.entry.js → p-094eedb8.entry.js} +1 -1
  633. package/lib/duet/{p-ac367891.entry.js → p-0981fdb2.entry.js} +1 -1
  634. package/lib/duet/{p-051488a0.system.entry.js → p-0a5966c8.system.entry.js} +1 -1
  635. package/lib/duet/p-0b16d4ca.system.entry.js +4 -0
  636. package/lib/duet/{p-445523a8.entry.js → p-0f162710.entry.js} +1 -1
  637. package/lib/duet/{p-6da4db52.system.entry.js → p-0f3f2906.system.entry.js} +1 -1
  638. package/lib/duet/{p-c4e79927.entry.js → p-11653c1e.entry.js} +1 -1
  639. package/lib/duet/p-1276c914.js +5 -0
  640. package/lib/duet/{p-59b9c68b.entry.js → p-16203527.entry.js} +1 -1
  641. package/lib/duet/{p-57afa4b8.system.entry.js → p-1753cb05.system.entry.js} +2 -2
  642. package/lib/duet/{p-032a613f.system.entry.js → p-176fa0e5.system.entry.js} +1 -1
  643. package/lib/duet/{p-e4aa049f.system.entry.js → p-1a44a9e5.system.entry.js} +1 -1
  644. package/lib/duet/p-1bd21f27.entry.js +4 -0
  645. package/lib/duet/{p-e90b5865.system.entry.js → p-1d772039.system.entry.js} +1 -1
  646. package/lib/duet/{p-0606cea3.entry.js → p-218eba4d.entry.js} +1 -1
  647. package/lib/duet/{p-8972381a.system.js → p-224f6c46.system.js} +1 -1
  648. package/lib/duet/{p-8eff5e91.system.entry.js → p-23eaa3b4.system.entry.js} +2 -2
  649. package/lib/duet/{p-a91c8a42.system.entry.js → p-24423276.system.entry.js} +1 -1
  650. package/lib/duet/{p-0d0101d9.system.entry.js → p-245dedef.system.entry.js} +1 -1
  651. package/lib/duet/{p-58a08a7b.system.entry.js → p-24f96782.system.entry.js} +1 -1
  652. package/lib/duet/p-259a297a.system.js +4 -0
  653. package/lib/duet/{p-1dadf501.entry.js → p-25c78304.entry.js} +1 -1
  654. package/lib/duet/p-26332d59.system.entry.js +4 -0
  655. package/lib/duet/{p-3639371a.system.entry.js → p-26de4395.system.entry.js} +1 -1
  656. package/lib/duet/{p-cef36d14.system.entry.js → p-27560f1b.system.entry.js} +1 -1
  657. package/lib/duet/{p-716329a7.system.entry.js → p-27c6aebd.system.entry.js} +1 -1
  658. package/lib/duet/{p-1a877bd1.system.entry.js → p-27d40494.system.entry.js} +1 -1
  659. package/lib/duet/p-2877f5d2.system.entry.js +4 -0
  660. package/lib/duet/p-2bb2b022.js +4 -0
  661. package/lib/duet/{p-95df823b.entry.js → p-2c67f7a8.entry.js} +1 -1
  662. package/lib/duet/p-2ddd31db.entry.js +4 -0
  663. package/lib/duet/{p-4883df66.js → p-2e36d5bf.js} +1 -1
  664. package/lib/duet/{p-ed961bc6.system.entry.js → p-2efce50b.system.entry.js} +1 -1
  665. package/lib/duet/{p-05e3a2cc.entry.js → p-3009021d.entry.js} +1 -1
  666. package/lib/duet/{p-4f770f51.system.entry.js → p-309546c3.system.entry.js} +1 -1
  667. package/lib/duet/p-3126ade6.entry.js +4 -0
  668. package/lib/duet/{p-089043d5.entry.js → p-31c8c180.entry.js} +1 -1
  669. package/lib/duet/{p-da9fe13c.system.entry.js → p-32aed830.system.entry.js} +1 -1
  670. package/lib/duet/{p-def3df7d.entry.js → p-3640cb93.entry.js} +1 -1
  671. package/lib/duet/{p-6f3f2e66.entry.js → p-3772cde9.entry.js} +1 -1
  672. package/lib/duet/p-37811477.system.entry.js +4 -0
  673. package/lib/duet/{p-e7a22d84.system.entry.js → p-37d0ea90.system.entry.js} +1 -1
  674. package/lib/duet/{p-50f4319b.system.entry.js → p-380ee907.system.entry.js} +1 -1
  675. package/lib/duet/{p-8aa7771f.entry.js → p-3aa3de10.entry.js} +1 -1
  676. package/lib/duet/{p-e6168195.entry.js → p-3efd29e1.entry.js} +1 -1
  677. package/lib/duet/{p-3fd4c411.entry.js → p-4196e4ba.entry.js} +1 -1
  678. package/lib/duet/p-43249fcf.system.entry.js +4 -0
  679. package/lib/duet/p-461d8a0b.entry.js +4 -0
  680. package/lib/duet/{p-b0ab2ead.system.entry.js → p-461fd4d8.system.entry.js} +1 -1
  681. package/lib/duet/{p-566668e1.entry.js → p-46cacf4b.entry.js} +1 -1
  682. package/lib/duet/p-470f5db7.entry.js +4 -0
  683. package/lib/duet/{p-f75a1805.system.entry.js → p-482cb8b5.system.entry.js} +1 -1
  684. package/lib/duet/{p-d4d7d607.system.entry.js → p-4d081cf5.system.entry.js} +1 -1
  685. package/lib/duet/{p-d02b92fa.entry.js → p-4da0332f.entry.js} +1 -1
  686. package/lib/duet/p-4dc4f2de.system.entry.js +4 -0
  687. package/lib/duet/{p-8bf363f4.system.entry.js → p-50108ac2.system.entry.js} +1 -1
  688. package/lib/duet/{p-9e2a2cf7.entry.js → p-507f463e.entry.js} +1 -1
  689. package/lib/duet/{p-79faf440.system.entry.js → p-52471579.system.entry.js} +1 -1
  690. package/lib/duet/p-530dd0b2.entry.js +4 -0
  691. package/lib/duet/p-538a7c32.system.entry.js +4 -0
  692. package/lib/duet/{p-3b0969dc.entry.js → p-548b740e.entry.js} +1 -1
  693. package/lib/duet/{p-a8878fd3.entry.js → p-55fbe6bc.entry.js} +1 -1
  694. package/lib/duet/p-5795b0d9.system.js +4 -0
  695. package/lib/duet/p-57f6f292.system.entry.js +4 -0
  696. package/lib/duet/p-582f1599.system.entry.js +4 -0
  697. package/lib/duet/{p-07401f31.entry.js → p-5aaf2889.entry.js} +1 -1
  698. package/lib/duet/{p-80d1a5d3.entry.js → p-5bab6421.entry.js} +1 -1
  699. package/lib/duet/{p-56bdad28.system.entry.js → p-5bb41296.system.entry.js} +1 -1
  700. package/lib/duet/{p-afd00506.entry.js → p-5be3bb6e.entry.js} +1 -1
  701. package/lib/duet/{p-d5a9cfac.entry.js → p-5e777157.entry.js} +1 -1
  702. package/lib/duet/p-5ef65fd9.entry.js +4 -0
  703. package/lib/duet/p-609aaedd.entry.js +4 -0
  704. package/lib/duet/{p-faa6ea94.system.entry.js → p-6399c03a.system.entry.js} +1 -1
  705. package/lib/duet/{p-b8db6e02.system.entry.js → p-63bdc921.system.entry.js} +1 -1
  706. package/lib/duet/p-644b687c.system.entry.js +4 -0
  707. package/lib/duet/p-68625c53.system.entry.js +4 -0
  708. package/lib/duet/{p-5c0de81a.system.entry.js → p-693ebab3.system.entry.js} +1 -1
  709. package/lib/duet/p-6a4fa614.entry.js +4 -0
  710. package/lib/duet/{p-30bd8807.entry.js → p-6b4c9fe2.entry.js} +1 -1
  711. package/lib/duet/p-6d839458.js +4 -0
  712. package/lib/duet/{p-2b70d58a.system.entry.js → p-7206856c.system.entry.js} +1 -1
  713. package/lib/duet/p-737f4f78.entry.js +4 -0
  714. package/lib/duet/p-75655f00.entry.js +4 -0
  715. package/lib/duet/{p-d02e3fe0.system.entry.js → p-77216458.system.entry.js} +1 -1
  716. package/lib/duet/{p-7a46b4ef.system.entry.js → p-773d5541.system.entry.js} +1 -1
  717. package/lib/duet/p-785b629e.entry.js +4 -0
  718. package/lib/duet/{p-98d01f1c.system.entry.js → p-78e18f90.system.entry.js} +1 -1
  719. package/lib/duet/{p-ff7a57a9.entry.js → p-7c3de686.entry.js} +1 -1
  720. package/lib/duet/{p-13915ce0.entry.js → p-7f2e3a82.entry.js} +1 -1
  721. package/lib/duet/{p-ed011021.system.entry.js → p-82b6d775.system.entry.js} +1 -1
  722. package/lib/duet/p-868deb49.entry.js +4 -0
  723. package/lib/duet/p-8693a1f3.entry.js +4 -0
  724. package/lib/duet/{p-c23bf76f.system.entry.js → p-87421fc1.system.entry.js} +1 -1
  725. package/lib/duet/p-89f7e363.system.entry.js +4 -0
  726. package/lib/duet/p-8bb9591d.system.js +4 -0
  727. package/lib/duet/{p-ded28a6e.system.entry.js → p-917d8b40.system.entry.js} +1 -1
  728. package/lib/duet/{p-ed8f7cac.entry.js → p-92d45100.entry.js} +1 -1
  729. package/lib/duet/p-93fd3aa5.system.entry.js +4 -0
  730. package/lib/duet/{p-6da7b933.entry.js → p-95f33440.entry.js} +1 -1
  731. package/lib/duet/{p-a0ecfa13.system.entry.js → p-9865ef30.system.entry.js} +1 -1
  732. package/lib/duet/p-9b877798.system.entry.js +4 -0
  733. package/lib/duet/{p-9cba7f04.system.entry.js → p-9ce2bf89.system.entry.js} +1 -1
  734. package/lib/duet/{p-fd1fb3f9.system.entry.js → p-9d6c89df.system.entry.js} +1 -1
  735. package/lib/duet/{p-77b43a95.entry.js → p-9f19cdc2.entry.js} +1 -1
  736. package/lib/duet/p-9fc19072.entry.js +4 -0
  737. package/lib/duet/{p-b46fa994.system.entry.js → p-a2a3b572.system.entry.js} +2 -2
  738. package/lib/duet/{p-ee796d5e.system.entry.js → p-a57b06db.system.entry.js} +1 -1
  739. package/lib/duet/p-a5f0d126.entry.js +4 -0
  740. package/lib/duet/{p-96f66e14.system.entry.js → p-a69a6b39.system.entry.js} +1 -1
  741. package/lib/duet/p-a931d71d.entry.js +4 -0
  742. package/lib/duet/{p-6205bcb4.entry.js → p-ab4e6587.entry.js} +1 -1
  743. package/lib/duet/{p-8ba72fa0.system.entry.js → p-abe0caff.system.entry.js} +1 -1
  744. package/lib/duet/{p-e3ffb537.system.entry.js → p-ac0a0c5f.system.entry.js} +1 -1
  745. package/lib/duet/{p-ccef6554.system.entry.js → p-b294d764.system.entry.js} +1 -1
  746. package/lib/duet/{p-c08928e1.system.entry.js → p-b32624a6.system.entry.js} +1 -1
  747. package/lib/duet/{p-e9be64de.system.entry.js → p-ba95cf16.system.entry.js} +1 -1
  748. package/lib/duet/{p-4630d3cb.entry.js → p-ba993fed.entry.js} +1 -1
  749. package/lib/duet/p-bb05780d.entry.js +4 -0
  750. package/lib/duet/{p-37af6296.system.entry.js → p-bca48b8e.system.entry.js} +1 -1
  751. package/lib/duet/p-bcee8104.entry.js +4 -0
  752. package/lib/duet/{p-c79a0641.entry.js → p-bd2b785a.entry.js} +1 -1
  753. package/lib/duet/p-bec206f3.entry.js +4 -0
  754. package/lib/duet/{p-501f62eb.system.entry.js → p-befd7146.system.entry.js} +1 -1
  755. package/lib/duet/{p-4aa91f55.entry.js → p-c13fcc8d.entry.js} +1 -1
  756. package/lib/duet/{p-0f1ec9c0.entry.js → p-c172f523.entry.js} +1 -1
  757. package/lib/duet/{p-e1d3c21e.entry.js → p-c17932bc.entry.js} +1 -1
  758. package/lib/duet/p-c23ab199.entry.js +4 -0
  759. package/lib/duet/{p-c5725fee.system.entry.js → p-c6296393.system.entry.js} +1 -1
  760. package/lib/duet/{p-35990684.entry.js → p-c71634ee.entry.js} +1 -1
  761. package/lib/duet/{p-33765ffd.entry.js → p-ca5dfafc.entry.js} +1 -1
  762. package/lib/duet/{p-68f3526e.entry.js → p-cab7ff29.entry.js} +1 -1
  763. package/lib/duet/{p-efdbddb5.system.js → p-cbfdaac4.system.js} +1 -1
  764. package/lib/duet/{p-113d90cb.system.entry.js → p-d0270ec7.system.entry.js} +1 -1
  765. package/lib/duet/p-d1ef0249.system.entry.js +4 -0
  766. package/lib/duet/{p-bdc59646.entry.js → p-d23f7bd1.entry.js} +1 -1
  767. package/lib/duet/p-d328922e.entry.js +4 -0
  768. package/lib/duet/p-d5271b57.entry.js +4 -0
  769. package/lib/duet/{p-1b3fde48.entry.js → p-d5c70827.entry.js} +1 -1
  770. package/lib/duet/{p-89b82e5a.entry.js → p-d832be12.entry.js} +1 -1
  771. package/lib/duet/{p-7671b7b7.system.js → p-da20db91.system.js} +1 -1
  772. package/lib/duet/p-db4ca364.js +4 -0
  773. package/lib/duet/p-db7ec3f2.system.entry.js +4 -0
  774. package/lib/duet/{p-604175d2.entry.js → p-dba55421.entry.js} +1 -1
  775. package/lib/duet/{p-a7e7c277.system.entry.js → p-de9c3476.system.entry.js} +1 -1
  776. package/lib/duet/p-df073faa.entry.js +4 -0
  777. package/lib/duet/p-df5f7376.entry.js +4 -0
  778. package/lib/duet/{p-dc63462c.entry.js → p-e3ba4d89.entry.js} +1 -1
  779. package/lib/duet/{p-64b323bf.entry.js → p-ef4a09e9.entry.js} +1 -1
  780. package/lib/duet/p-ef66a3c3.system.entry.js +4 -0
  781. package/lib/duet/p-f18c2892.system.js +5 -0
  782. package/lib/duet/{p-8855bd51.entry.js → p-f19b59f8.entry.js} +1 -1
  783. package/lib/duet/p-f1f5dfa4.system.entry.js +4 -0
  784. package/lib/duet/{p-fab7c1ed.entry.js → p-f20d29b8.entry.js} +1 -1
  785. package/lib/duet/{p-c3289020.system.entry.js → p-f2b556d7.system.entry.js} +1 -1
  786. package/lib/duet/p-f3efe8c2.system.entry.js +4 -0
  787. package/lib/duet/p-fabb616b.js +4 -0
  788. package/lib/duet/{p-1e9f1c45.entry.js → p-fb5877c4.entry.js} +1 -1
  789. package/lib/duet/p-fc366b12.system.entry.js +4 -0
  790. package/lib/duet/{p-54fbdedf.entry.js → p-fc788a9a.entry.js} +1 -1
  791. package/lib/duet/{p-bf3331ed.entry.js → p-fcfe83b1.entry.js} +1 -1
  792. package/lib/duet/{p-6ae7579a.system.entry.js → p-ffc50558.system.entry.js} +1 -1
  793. package/lib/esm/app-globals-45aa6d20.js +26 -0
  794. package/lib/esm/{common-strings-c0ac5a0b.js → common-strings-59db6973.js} +6 -6
  795. package/lib/esm/create-id-149a1b6d.js +11 -0
  796. package/lib/esm/duet-action-button.entry.js +134 -134
  797. package/lib/esm/duet-alert.entry.js +109 -106
  798. package/lib/esm/duet-badge.entry.js +29 -29
  799. package/lib/esm/duet-banner.entry.js +52 -52
  800. package/lib/esm/duet-breadcrumb.entry.js +50 -41
  801. package/lib/esm/duet-breadcrumbs.entry.js +51 -51
  802. package/lib/esm/duet-button_2.entry.js +229 -229
  803. package/lib/esm/duet-callout.entry.js +28 -28
  804. package/lib/esm/duet-caption_4.entry.js +197 -187
  805. package/lib/esm/duet-card.entry.js +100 -94
  806. package/lib/esm/duet-checkbox.entry.js +85 -85
  807. package/lib/esm/duet-checkmark.entry.js +23 -23
  808. package/lib/esm/duet-chip.entry.js +189 -182
  809. package/lib/esm/duet-choice_2.entry.js +395 -393
  810. package/lib/esm/duet-collapsible.entry.js +105 -99
  811. package/lib/esm/duet-combobox.entry.js +363 -363
  812. package/lib/esm/duet-contact-card.entry.js +49 -49
  813. package/lib/esm/duet-cookie-consent.entry.js +42 -35
  814. package/lib/esm/duet-date-picker.entry.js +610 -610
  815. package/lib/esm/duet-divider_2.entry.js +53 -53
  816. package/lib/esm/duet-editable-table_3.entry.js +1248 -1248
  817. package/lib/esm/duet-empty-state.entry.js +26 -26
  818. package/lib/esm/duet-fieldset.entry.js +50 -50
  819. package/lib/esm/duet-file-chooser.entry.js +44 -44
  820. package/lib/esm/duet-footer.entry.js +121 -118
  821. package/lib/esm/duet-grid_2.entry.js +185 -185
  822. package/lib/esm/duet-header_2.entry.js +613 -611
  823. package/lib/esm/duet-hero.entry.js +172 -172
  824. package/lib/esm/duet-icon.entry.js +141 -141
  825. package/lib/esm/duet-input_2.entry.js +347 -347
  826. package/lib/esm/duet-layout.entry.js +51 -51
  827. package/lib/esm/duet-list_2.entry.js +99 -99
  828. package/lib/esm/duet-menu-bar-button.entry.js +70 -70
  829. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +45 -45
  830. package/lib/esm/duet-menu-bar-dropdown.entry.js +94 -94
  831. package/lib/esm/duet-menu-bar-link.entry.js +58 -58
  832. package/lib/esm/duet-menu-bar.entry.js +116 -116
  833. package/lib/esm/duet-modal.entry.js +189 -189
  834. package/lib/esm/duet-multiselect.entry.js +207 -207
  835. package/lib/esm/duet-nav.entry.js +20 -20
  836. package/lib/esm/duet-notification_2.entry.js +145 -140
  837. package/lib/esm/duet-number-input.entry.js +340 -338
  838. package/lib/esm/duet-page-heading.entry.js +26 -26
  839. package/lib/esm/duet-pagination_2.entry.js +512 -512
  840. package/lib/esm/duet-popup-menu-item.entry.js +62 -62
  841. package/lib/esm/duet-popup-menu.entry.js +148 -148
  842. package/lib/esm/duet-progress.entry.js +54 -54
  843. package/lib/esm/duet-promo-card.entry.js +40 -40
  844. package/lib/esm/duet-radio_2.entry.js +197 -197
  845. package/lib/esm/duet-range-slider.entry.js +112 -105
  846. package/lib/esm/duet-scrollable_3.entry.js +387 -387
  847. package/lib/esm/duet-section-layout.entry.js +21 -21
  848. package/lib/esm/duet-select.entry.js +156 -156
  849. package/lib/esm/duet-shaped-image.entry.js +28 -28
  850. package/lib/esm/duet-show-more.entry.js +99 -99
  851. package/lib/esm/duet-slideout-lang.entry.js +36 -36
  852. package/lib/esm/duet-slideout-link.entry.js +33 -33
  853. package/lib/esm/duet-slideout-panel-dropdown.entry.js +50 -50
  854. package/lib/esm/duet-slideout-panel.entry.js +120 -120
  855. package/lib/esm/duet-slideout.entry.js +196 -196
  856. package/lib/esm/duet-step_2.entry.js +189 -185
  857. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +37 -37
  858. package/lib/esm/duet-submenu-bar-dropdown.entry.js +104 -104
  859. package/lib/esm/duet-submenu-bar-link.entry.js +60 -60
  860. package/lib/esm/duet-submenu-bar.entry.js +110 -110
  861. package/lib/esm/duet-textarea.entry.js +160 -160
  862. package/lib/esm/duet-toggle.entry.js +79 -72
  863. package/lib/esm/duet-toolbar-dropdown-link.entry.js +36 -36
  864. package/lib/esm/duet-toolbar-dropdown.entry.js +60 -60
  865. package/lib/esm/duet-toolbar-link.entry.js +31 -31
  866. package/lib/esm/duet-toolbar.entry.js +34 -34
  867. package/lib/esm/duet-tooltip-button_2.entry.js +93 -80
  868. package/lib/esm/duet-tooltip.entry.js +190 -188
  869. package/lib/esm/duet-tray.entry.js +85 -82
  870. package/lib/esm/duet-upload-aria-status.entry.js +65 -65
  871. package/lib/esm/duet-upload-item.entry.js +81 -81
  872. package/lib/esm/duet-visually-hidden.entry.js +12 -12
  873. package/lib/esm/duet.js +5 -5
  874. package/lib/esm/errorcodes.utils-e681347c.js +36 -0
  875. package/lib/esm/focus-utils-23aad0c9.js +18 -0
  876. package/lib/esm/{index-b3bf9761.js → index-02e78bbf.js} +106 -45
  877. package/lib/esm/input-utils-85681162.js +53 -0
  878. package/lib/esm/is-internet-explorer-2c48f686.js +9 -0
  879. package/lib/esm/{js-utils-a35dcc8c.js → js-utils-9b9e0039.js} +27 -27
  880. package/lib/esm/keyboard-utils-eba88365.js +51 -0
  881. package/lib/esm/{language-utils-9ff76444.js → language-utils-00ca4c55.js} +74 -74
  882. package/lib/esm/loader.js +4 -4
  883. package/lib/{dist-custom-elements/p-f8c76b25.js → esm/slot-query-022710bb.js} +1 -1
  884. package/lib/esm/string-utils-ca039233.js +55 -0
  885. package/lib/esm/teleport-4462e8c1.js +97 -0
  886. package/lib/esm/themeable-component-724c0f7e.js +13 -0
  887. package/lib/esm/token-utils-b4bd3ec7.js +117 -0
  888. package/lib/esm/watch-options-e96ecd92.js +57 -0
  889. package/lib/esm-es5/app-globals-45aa6d20.js +4 -0
  890. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  891. package/lib/esm-es5/duet-alert.entry.js +2 -2
  892. package/lib/esm-es5/duet-badge.entry.js +1 -1
  893. package/lib/esm-es5/duet-banner.entry.js +1 -1
  894. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  895. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  896. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  897. package/lib/esm-es5/duet-callout.entry.js +1 -1
  898. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  899. package/lib/esm-es5/duet-card.entry.js +1 -1
  900. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  901. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  902. package/lib/esm-es5/duet-chip.entry.js +2 -2
  903. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  904. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  905. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  906. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  907. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  908. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  909. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  910. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  911. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  912. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  913. package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
  914. package/lib/esm-es5/duet-footer.entry.js +1 -1
  915. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  916. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  917. package/lib/esm-es5/duet-hero.entry.js +1 -1
  918. package/lib/esm-es5/duet-icon.entry.js +1 -1
  919. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  920. package/lib/esm-es5/duet-layout.entry.js +1 -1
  921. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  922. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  923. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  924. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  925. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  926. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  927. package/lib/esm-es5/duet-modal.entry.js +1 -1
  928. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  929. package/lib/esm-es5/duet-nav.entry.js +1 -1
  930. package/lib/esm-es5/duet-notification_2.entry.js +2 -2
  931. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  932. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  933. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  934. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  935. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  936. package/lib/esm-es5/duet-progress.entry.js +1 -1
  937. package/lib/esm-es5/duet-promo-card.entry.js +1 -1
  938. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  939. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  940. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  941. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  942. package/lib/esm-es5/duet-select.entry.js +1 -1
  943. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  944. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  945. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  946. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  947. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  948. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  949. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  950. package/lib/esm-es5/duet-step_2.entry.js +2 -2
  951. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  952. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  953. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  954. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  955. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  956. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  957. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  958. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  959. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  960. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  961. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  962. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  963. package/lib/esm-es5/duet-tray.entry.js +1 -1
  964. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  965. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  966. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  967. package/lib/esm-es5/duet.js +1 -1
  968. package/lib/esm-es5/{errorcodes.utils-424b1197.js → errorcodes.utils-e681347c.js} +1 -1
  969. package/lib/esm-es5/focus-utils-23aad0c9.js +4 -0
  970. package/lib/esm-es5/index-02e78bbf.js +5 -0
  971. package/lib/esm-es5/keyboard-utils-eba88365.js +4 -0
  972. package/lib/esm-es5/{language-utils-9ff76444.js → language-utils-00ca4c55.js} +1 -1
  973. package/lib/esm-es5/loader.js +1 -1
  974. package/lib/types/common/a11y-component.d.ts +7 -7
  975. package/lib/types/common/form-components.d.ts +15 -15
  976. package/lib/types/common/themeable-component.d.ts +4 -4
  977. package/lib/types/common-types.d.ts +11 -0
  978. package/lib/types/components/duet-action-button/duet-action-button.d.ts +126 -126
  979. package/lib/types/components/duet-alert/duet-alert.d.ts +100 -100
  980. package/lib/types/components/duet-badge/duet-badge.d.ts +27 -27
  981. package/lib/types/components/duet-banner/duet-banner.d.ts +58 -58
  982. package/lib/types/components/duet-breadcrumbs/duet-breadcrumb.d.ts +38 -33
  983. package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +23 -23
  984. package/lib/types/components/duet-button/duet-button.d.ts +219 -219
  985. package/lib/types/components/duet-callout/duet-callout.d.ts +19 -19
  986. package/lib/types/components/duet-caption/duet-caption.d.ts +26 -26
  987. package/lib/types/components/duet-card/duet-card.d.ts +121 -119
  988. package/lib/types/components/duet-checkbox/duet-checkbox.d.ts +132 -132
  989. package/lib/types/components/duet-chip/duet-chip.d.ts +111 -109
  990. package/lib/types/components/duet-choice/duet-checkmark.d.ts +27 -27
  991. package/lib/types/components/duet-choice/duet-choice.d.ts +259 -259
  992. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +103 -103
  993. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +90 -88
  994. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +3 -3
  995. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +8 -8
  996. package/lib/types/components/duet-combobox/duet-combobox.d.ts +135 -135
  997. package/lib/types/components/duet-contact-card/duet-contact-card.d.ts +60 -60
  998. package/lib/types/components/duet-cookie-consent/duet-cookie-consent.d.ts +31 -29
  999. package/lib/types/components/duet-date-picker/date-i18n.d.ts +13 -13
  1000. package/lib/types/components/duet-date-picker/date-picker-day.d.ts +9 -9
  1001. package/lib/types/components/duet-date-picker/date-picker-input.d.ts +28 -28
  1002. package/lib/types/components/duet-date-picker/date-picker-month.d.ts +12 -12
  1003. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +220 -220
  1004. package/lib/types/components/duet-divider/duet-divider.d.ts +26 -26
  1005. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +3 -3
  1006. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +133 -133
  1007. package/lib/types/components/duet-empty-state/duet-empty-state.d.ts +22 -22
  1008. package/lib/types/components/duet-fieldset/duet-fieldset.d.ts +60 -60
  1009. package/lib/types/components/duet-file-chooser/duet-file-chooser.d.ts +35 -35
  1010. package/lib/types/components/duet-footer/duet-footer.d.ts +143 -143
  1011. package/lib/types/components/duet-grid/duet-grid.d.ts +73 -73
  1012. package/lib/types/components/duet-grid-item/duet-grid-item.d.ts +49 -49
  1013. package/lib/types/components/duet-header/duet-header-dropdown.d.ts +11 -11
  1014. package/lib/types/components/duet-header/duet-header-icon.d.ts +4 -4
  1015. package/lib/types/components/duet-header/duet-header.d.ts +347 -347
  1016. package/lib/types/components/duet-heading/duet-heading.d.ts +49 -49
  1017. package/lib/types/components/duet-hero/duet-hero.d.ts +198 -198
  1018. package/lib/types/components/duet-icon/duet-icon.d.ts +80 -81
  1019. package/lib/types/components/duet-input/duet-input.d.ts +279 -279
  1020. package/lib/types/components/duet-label/duet-label.d.ts +26 -26
  1021. package/lib/types/components/duet-layout/duet-layout.d.ts +48 -48
  1022. package/lib/types/components/duet-link/duet-link.d.ts +95 -94
  1023. package/lib/types/components/duet-list/duet-list.d.ts +60 -60
  1024. package/lib/types/components/duet-list-item/duet-list-item.d.ts +17 -17
  1025. package/lib/types/components/duet-logo/duet-logo.d.ts +59 -59
  1026. package/lib/types/components/duet-menu-bar/duet-menu-bar.d.ts +68 -68
  1027. package/lib/types/components/duet-menu-bar-button/duet-menu-bar-button.d.ts +85 -86
  1028. package/lib/types/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.d.ts +50 -51
  1029. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +36 -36
  1030. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +45 -46
  1031. package/lib/types/components/duet-modal/duet-modal.d.ts +155 -155
  1032. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +153 -153
  1033. package/lib/types/components/duet-nav/duet-nav.d.ts +20 -20
  1034. package/lib/types/components/duet-notification/duet-notification.d.ts +55 -55
  1035. package/lib/types/components/duet-notification-drawer/duet-notification-drawer.d.ts +83 -83
  1036. package/lib/types/components/duet-number-input/duet-number-input.d.ts +230 -230
  1037. package/lib/types/components/duet-page-heading/duet-page-heading.d.ts +25 -25
  1038. package/lib/types/components/duet-pagination/duet-pagination.d.ts +129 -129
  1039. package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +38 -38
  1040. package/lib/types/components/duet-popup-menu/duet-popup-menu.d.ts +80 -80
  1041. package/lib/types/components/duet-popup-menu-item/duet-popup-menu-item.d.ts +73 -73
  1042. package/lib/types/components/duet-progress/duet-progress.d.ts +71 -71
  1043. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +42 -42
  1044. package/lib/types/components/duet-radio/duet-radio.d.ts +145 -145
  1045. package/lib/types/components/duet-radio-group/duet-radio-group.d.ts +93 -93
  1046. package/lib/types/components/duet-range-slider/duet-range-slider.d.ts +132 -130
  1047. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +68 -68
  1048. package/lib/types/components/duet-scrollable/duet-scrollable.d.ts +61 -61
  1049. package/lib/types/components/duet-section-layout/duet-section-layout.d.ts +17 -17
  1050. package/lib/types/components/duet-select/duet-select.d.ts +179 -179
  1051. package/lib/types/components/duet-shaped-image/duet-shaped-image.d.ts +30 -30
  1052. package/lib/types/components/duet-show-more/duet-show-more.d.ts +83 -83
  1053. package/lib/types/components/duet-slideout/duet-slideout.d.ts +86 -86
  1054. package/lib/types/components/duet-slideout-lang/duet-slideout-lang.d.ts +24 -24
  1055. package/lib/types/components/duet-slideout-link/duet-slideout-link.d.ts +55 -55
  1056. package/lib/types/components/duet-slideout-panel/duet-slideout-panel.d.ts +55 -55
  1057. package/lib/types/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.d.ts +39 -39
  1058. package/lib/types/components/duet-spacer/duet-spacer.d.ts +18 -18
  1059. package/lib/types/components/duet-spinner/duet-spinner.d.ts +30 -30
  1060. package/lib/types/components/duet-step/duet-step.d.ts +68 -66
  1061. package/lib/types/components/duet-stepper/duet-stepper.d.ts +47 -47
  1062. package/lib/types/components/duet-submenu-bar/duet-submenu-bar.d.ts +50 -50
  1063. package/lib/types/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.d.ts +48 -49
  1064. package/lib/types/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.d.ts +43 -43
  1065. package/lib/types/components/duet-submenu-bar-link/duet-submenu-bar-link.d.ts +40 -41
  1066. package/lib/types/components/duet-tab/duet-tab.d.ts +37 -37
  1067. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +132 -132
  1068. package/lib/types/components/duet-table/duet-table.d.ts +66 -66
  1069. package/lib/types/components/duet-textarea/duet-textarea.d.ts +200 -200
  1070. package/lib/types/components/duet-toggle/duet-toggle.d.ts +115 -113
  1071. package/lib/types/components/duet-toolbar/duet-toolbar.d.ts +30 -30
  1072. package/lib/types/components/duet-toolbar-dropdown/duet-toolbar-dropdown.d.ts +50 -50
  1073. package/lib/types/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.d.ts +43 -43
  1074. package/lib/types/components/duet-toolbar-link/duet-toolbar-link.d.ts +42 -42
  1075. package/lib/types/components/duet-tooltip/duet-tooltip-button.d.ts +21 -19
  1076. package/lib/types/components/duet-tooltip/duet-tooltip-popup.d.ts +33 -31
  1077. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +122 -122
  1078. package/lib/types/components/duet-tray/duet-tray.d.ts +84 -84
  1079. package/lib/types/components/duet-upload/duet-upload.d.ts +484 -484
  1080. package/lib/types/components/duet-upload/errorcodes.utils.d.ts +3 -3
  1081. package/lib/types/components/duet-upload/upload-editable-item-error.d.ts +2 -2
  1082. package/lib/types/components/duet-upload/upload-editable-item-inprogres.d.ts +2 -2
  1083. package/lib/types/components/duet-upload/upload-editable-item-pending.d.ts +1 -1
  1084. package/lib/types/components/duet-upload/upload-editable-item-success.d.ts +2 -2
  1085. package/lib/types/components/duet-upload/upload-item-header.d.ts +2 -2
  1086. package/lib/types/components/duet-upload/upload-validators.d.ts +4 -4
  1087. package/lib/types/components/duet-upload/xhr.helpers.d.ts +10 -10
  1088. package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +40 -40
  1089. package/lib/types/components/duet-upload-item/duet-upload-item.d.ts +54 -54
  1090. package/lib/types/components/duet-visually-hidden/duet-visually-hidden.d.ts +6 -6
  1091. package/lib/types/components.d.ts +10 -4
  1092. package/lib/types/stencil-public-runtime.d.ts +8 -0
  1093. package/lib/types/utils/axe-core-utils.d.ts +3 -3
  1094. package/lib/types/utils/fixture-utils.d.ts +2 -2
  1095. package/lib/types/utils/focus-utils.d.ts +2 -2
  1096. package/lib/types/utils/keyboard-utils.d.ts +2 -0
  1097. package/lib/types/utils/language-utils.d.ts +10 -10
  1098. package/lib/types/utils/picture-utils.d.ts +10 -10
  1099. package/lib/types/utils/teleport.d.ts +20 -20
  1100. package/lib/types/utils/template-utils.d.ts +1 -1
  1101. package/lib/types/utils/test-utils.d.ts +2 -2
  1102. package/lib/types/utils/token-utils.d.ts +9 -9
  1103. package/package.json +6 -6
  1104. package/lib/cjs/app-globals-4ab83f59.js +0 -54
  1105. package/lib/cjs/create-id-167cd350.js +0 -13
  1106. package/lib/cjs/errorcodes.utils-8e928de5.js +0 -39
  1107. package/lib/cjs/focus-utils-aea9f4e1.js +0 -21
  1108. package/lib/cjs/input-utils-b4615782.js +0 -56
  1109. package/lib/cjs/keyboard-utils-02441bc5.js +0 -36
  1110. package/lib/cjs/string-utils-51a2f59f.js +0 -59
  1111. package/lib/cjs/teleport-af825e04.js +0 -99
  1112. package/lib/cjs/themeable-component-0be6d1f4.js +0 -15
  1113. package/lib/cjs/token-utils-dbfeff2e.js +0 -124
  1114. package/lib/cjs/watch-options-1773d69f.js +0 -61
  1115. package/lib/dist-custom-elements/p-03ac3eb3.js +0 -137
  1116. package/lib/dist-custom-elements/p-1a395a8d.js +0 -55
  1117. package/lib/dist-custom-elements/p-1ce55654.js +0 -265
  1118. package/lib/dist-custom-elements/p-1f56e02f.js +0 -174
  1119. package/lib/dist-custom-elements/p-24853ebf.js +0 -97
  1120. package/lib/dist-custom-elements/p-268171f7.js +0 -9
  1121. package/lib/dist-custom-elements/p-3049dfd5.js +0 -147
  1122. package/lib/dist-custom-elements/p-45f71a69.js +0 -11
  1123. package/lib/dist-custom-elements/p-4687ca41.js +0 -465
  1124. package/lib/dist-custom-elements/p-56ac3289.js +0 -20
  1125. package/lib/dist-custom-elements/p-5d8d9a52.js +0 -98
  1126. package/lib/dist-custom-elements/p-62e68de8.js +0 -38
  1127. package/lib/dist-custom-elements/p-64cd1abb.js +0 -93
  1128. package/lib/dist-custom-elements/p-665418f0.js +0 -205
  1129. package/lib/dist-custom-elements/p-759c725f.js +0 -226
  1130. package/lib/dist-custom-elements/p-77f2dbee.js +0 -53
  1131. package/lib/dist-custom-elements/p-80ec4336.js +0 -123
  1132. package/lib/dist-custom-elements/p-8be301dd.js +0 -62
  1133. package/lib/dist-custom-elements/p-9541f0b6.js +0 -59
  1134. package/lib/dist-custom-elements/p-a1371eee.js +0 -57
  1135. package/lib/dist-custom-elements/p-a3923b18.js +0 -126
  1136. package/lib/dist-custom-elements/p-c5032d3a.js +0 -18
  1137. package/lib/dist-custom-elements/p-d48735b6.js +0 -13
  1138. package/lib/dist-custom-elements/p-e19d1e27.js +0 -117
  1139. package/lib/dist-custom-elements/p-e6b07569.js +0 -271
  1140. package/lib/dist-custom-elements/p-e77f7fff.js +0 -60
  1141. package/lib/dist-custom-elements/p-f27e355b.js +0 -76
  1142. package/lib/dist-custom-elements/p-f46be918.js +0 -110
  1143. package/lib/dist-custom-elements/p-fd4877d1.js +0 -72
  1144. package/lib/dist-custom-elements/p-fe8a2205.js +0 -206
  1145. package/lib/duet/p-038ac494.system.entry.js +0 -4
  1146. package/lib/duet/p-08764d71.entry.js +0 -4
  1147. package/lib/duet/p-08f2114a.entry.js +0 -4
  1148. package/lib/duet/p-0a664ebb.entry.js +0 -4
  1149. package/lib/duet/p-0e89cbae.system.entry.js +0 -4
  1150. package/lib/duet/p-0fd024c9.system.js +0 -4
  1151. package/lib/duet/p-11571ab9.entry.js +0 -4
  1152. package/lib/duet/p-177c55aa.entry.js +0 -4
  1153. package/lib/duet/p-18e2e6c8.system.entry.js +0 -4
  1154. package/lib/duet/p-21f3a17a.system.js +0 -4
  1155. package/lib/duet/p-2c78c637.system.entry.js +0 -4
  1156. package/lib/duet/p-34b5285b.system.entry.js +0 -4
  1157. package/lib/duet/p-3b147393.entry.js +0 -4
  1158. package/lib/duet/p-463ddc2c.system.entry.js +0 -4
  1159. package/lib/duet/p-4669b0af.js +0 -4
  1160. package/lib/duet/p-486eec2d.entry.js +0 -4
  1161. package/lib/duet/p-4dc0fff9.entry.js +0 -4
  1162. package/lib/duet/p-50ec2074.entry.js +0 -4
  1163. package/lib/duet/p-52806dad.system.entry.js +0 -4
  1164. package/lib/duet/p-5311f96e.system.entry.js +0 -4
  1165. package/lib/duet/p-5ae9b74f.entry.js +0 -4
  1166. package/lib/duet/p-5c5012f6.system.entry.js +0 -4
  1167. package/lib/duet/p-5eb2a31f.system.entry.js +0 -4
  1168. package/lib/duet/p-61d39730.entry.js +0 -4
  1169. package/lib/duet/p-6c4c0279.js +0 -5
  1170. package/lib/duet/p-76b68b44.entry.js +0 -4
  1171. package/lib/duet/p-789365cb.system.entry.js +0 -4
  1172. package/lib/duet/p-7bca584a.entry.js +0 -4
  1173. package/lib/duet/p-7c36b779.entry.js +0 -4
  1174. package/lib/duet/p-7de467b8.entry.js +0 -4
  1175. package/lib/duet/p-7e1f37e2.entry.js +0 -4
  1176. package/lib/duet/p-821c350f.system.entry.js +0 -4
  1177. package/lib/duet/p-8d0d6e06.system.js +0 -4
  1178. package/lib/duet/p-995e1b11.system.entry.js +0 -4
  1179. package/lib/duet/p-9a613a25.system.entry.js +0 -4
  1180. package/lib/duet/p-9f835123.system.entry.js +0 -4
  1181. package/lib/duet/p-a0660ffa.system.js +0 -5
  1182. package/lib/duet/p-aa6d7d97.entry.js +0 -4
  1183. package/lib/duet/p-ac9f6601.entry.js +0 -4
  1184. package/lib/duet/p-b1db3006.js +0 -4
  1185. package/lib/duet/p-b3ae5641.system.entry.js +0 -4
  1186. package/lib/duet/p-c1bc9249.entry.js +0 -4
  1187. package/lib/duet/p-c36a1bb7.entry.js +0 -4
  1188. package/lib/duet/p-cc1909de.js +0 -4
  1189. package/lib/duet/p-d098d59c.system.entry.js +0 -4
  1190. package/lib/duet/p-d9353709.entry.js +0 -4
  1191. package/lib/duet/p-e1e89fd5.entry.js +0 -4
  1192. package/lib/duet/p-e491c098.system.entry.js +0 -4
  1193. package/lib/duet/p-e95d09bb.system.entry.js +0 -4
  1194. package/lib/duet/p-efa6152d.entry.js +0 -4
  1195. package/lib/duet/p-f58eb425.js +0 -4
  1196. package/lib/duet/p-fab6160a.entry.js +0 -4
  1197. package/lib/duet/p-fcbb30e1.entry.js +0 -4
  1198. package/lib/duet/p-ff09528c.system.entry.js +0 -4
  1199. package/lib/esm/app-globals-de2a5510.js +0 -52
  1200. package/lib/esm/create-id-2b0cd46d.js +0 -11
  1201. package/lib/esm/errorcodes.utils-424b1197.js +0 -36
  1202. package/lib/esm/focus-utils-74961919.js +0 -18
  1203. package/lib/esm/input-utils-a0225b92.js +0 -53
  1204. package/lib/esm/is-internet-explorer-032d4dae.js +0 -9
  1205. package/lib/esm/keyboard-utils-5746e126.js +0 -20
  1206. package/lib/esm/string-utils-59ad4cb2.js +0 -55
  1207. package/lib/esm/teleport-15747328.js +0 -97
  1208. package/lib/esm/themeable-component-fdce4fd7.js +0 -13
  1209. package/lib/esm/token-utils-46c8fe31.js +0 -117
  1210. package/lib/esm/watch-options-f189118b.js +0 -57
  1211. package/lib/esm-es5/app-globals-de2a5510.js +0 -4
  1212. package/lib/esm-es5/focus-utils-74961919.js +0 -4
  1213. package/lib/esm-es5/index-b3bf9761.js +0 -5
  1214. package/lib/esm-es5/keyboard-utils-5746e126.js +0 -4
  1215. /package/lib/duet/{p-1a395a8d.js → p-0e052642.js} +0 -0
  1216. /package/lib/duet/{p-f8c76b25.js → p-11230037.js} +0 -0
  1217. /package/lib/duet/{p-0b31864f.js → p-38320af8.js} +0 -0
  1218. /package/lib/duet/{p-c30a5f7c.system.js → p-41982d26.system.js} +0 -0
  1219. /package/lib/duet/{p-268171f7.js → p-43b89e38.js} +0 -0
  1220. /package/lib/duet/{p-274d11e3.js → p-4ab776f4.js} +0 -0
  1221. /package/lib/duet/{p-77b6e4ba.system.js → p-50f4bca2.system.js} +0 -0
  1222. /package/lib/duet/{p-45f71a69.js → p-5e59e970.js} +0 -0
  1223. /package/lib/duet/{p-75daef16.system.js → p-634e8787.system.js} +0 -0
  1224. /package/lib/duet/{p-719b38fe.system.js → p-67c653f9.system.js} +0 -0
  1225. /package/lib/duet/{p-b99c00fa.system.js → p-6ef75455.system.js} +0 -0
  1226. /package/lib/duet/{p-a1371eee.js → p-7d8a2628.js} +0 -0
  1227. /package/lib/duet/{p-ecf1f6cd.system.js → p-9e36548d.system.js} +0 -0
  1228. /package/lib/duet/{p-3d8d557b.js → p-9e371678.js} +0 -0
  1229. /package/lib/duet/{p-d48735b6.js → p-a58bd561.js} +0 -0
  1230. /package/lib/duet/{p-8e1da663.system.js → p-afad5fd3.system.js} +0 -0
  1231. /package/lib/duet/{p-24853ebf.js → p-b2e550a3.js} +0 -0
  1232. /package/lib/duet/{p-7c29d36a.system.js → p-b864159a.system.js} +0 -0
  1233. /package/lib/duet/{p-88a50491.system.js → p-d1cedaa1.system.js} +0 -0
  1234. /package/lib/duet/{p-77f2dbee.js → p-df7874f9.js} +0 -0
  1235. /package/lib/duet/{p-87dd7bf3.system.js → p-e12066c8.system.js} +0 -0
  1236. /package/lib/duet/{p-1a91e22a.system.js → p-e6b5a1c7.system.js} +0 -0
  1237. /package/lib/esm-es5/{common-strings-c0ac5a0b.js → common-strings-59db6973.js} +0 -0
  1238. /package/lib/esm-es5/{create-id-2b0cd46d.js → create-id-149a1b6d.js} +0 -0
  1239. /package/lib/esm-es5/{input-utils-a0225b92.js → input-utils-85681162.js} +0 -0
  1240. /package/lib/esm-es5/{is-internet-explorer-032d4dae.js → is-internet-explorer-2c48f686.js} +0 -0
  1241. /package/lib/esm-es5/{js-utils-a35dcc8c.js → js-utils-9b9e0039.js} +0 -0
  1242. /package/lib/esm-es5/{slot-query-7877f18f.js → slot-query-022710bb.js} +0 -0
  1243. /package/lib/esm-es5/{string-utils-59ad4cb2.js → string-utils-ca039233.js} +0 -0
  1244. /package/lib/esm-es5/{teleport-15747328.js → teleport-4462e8c1.js} +0 -0
  1245. /package/lib/esm-es5/{themeable-component-fdce4fd7.js → themeable-component-724c0f7e.js} +0 -0
  1246. /package/lib/esm-es5/{token-utils-46c8fe31.js → token-utils-b4bd3ec7.js} +0 -0
  1247. /package/lib/esm-es5/{watch-options-f189118b.js → watch-options-e96ecd92.js} +0 -0
@@ -5,134 +5,134 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-2cce7b13.js');
9
- const themeableComponent = require('./themeable-component-0be6d1f4.js');
10
- const createId = require('./create-id-167cd350.js');
11
- const focusUtils = require('./focus-utils-aea9f4e1.js');
12
- const languageUtils = require('./language-utils-dc19e8b6.js');
13
- require('./string-utils-51a2f59f.js');
8
+ const index = require('./index-2dc54a15.js');
9
+ const themeableComponent = require('./themeable-component-83a2a0d4.js');
10
+ const createId = require('./create-id-1f8c438f.js');
11
+ const focusUtils = require('./focus-utils-d0b70745.js');
12
+ const languageUtils = require('./language-utils-e8a527e5.js');
13
+ require('./string-utils-053749ff.js');
14
14
 
15
15
  const formatOptionsShort = { day: "numeric", month: "long" };
16
16
  const formatOptionsLong = { day: "numeric", month: "long", year: "numeric" };
17
17
  const i18n = {
18
- fi: {
19
- buttonLabel: "Valitse päivämäärä",
20
- prevMonthLabel: "Edellinen kuukausi",
21
- nextMonthLabel: "Seuraava kuukausi",
22
- monthSelectLabel: "Kuukausi",
23
- yearSelectLabel: "Vuosi",
24
- closeLabel: "Sulje ikkuna",
25
- selected: "Valittu päivämäärä on",
26
- keyboardInstruction: "Voit navigoida päivämääriä nuolinäppäimillä",
27
- dayLabels: ["Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai", "Sunnuntai"],
28
- monthLabels: [
29
- "Tammikuu",
30
- "Helmikuu",
31
- "Maaliskuu",
32
- "Huhtikuu",
33
- "Toukokuu",
34
- "Kesäkuu",
35
- "Heinäkuu",
36
- "Elokuu",
37
- "Syyskuu",
38
- "Lokakuu",
39
- "Marraskuu",
40
- "Joulukuu",
41
- ],
42
- monthLabelsShort: [
43
- "Tammi",
44
- "Helmi",
45
- "Maalis",
46
- "Huhti",
47
- "Touko",
48
- "Kesä",
49
- "Heinä",
50
- "Elo",
51
- "Syys",
52
- "Loka",
53
- "Marras",
54
- "Joulu",
55
- ],
56
- formatterShort: new Intl.DateTimeFormat("fi-FI", formatOptionsShort),
57
- formatterLong: new Intl.DateTimeFormat("fi-FI", formatOptionsLong),
58
- },
59
- en: {
60
- buttonLabel: "Choose date",
61
- prevMonthLabel: "Previous month",
62
- nextMonthLabel: "Next month",
63
- monthSelectLabel: "Month",
64
- yearSelectLabel: "Year",
65
- closeLabel: "Close window",
66
- selected: "Selected date is",
67
- keyboardInstruction: "You can use arrow keys to navigate dates",
68
- dayLabels: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
69
- monthLabels: [
70
- "January",
71
- "February",
72
- "March",
73
- "April",
74
- "May",
75
- "June",
76
- "July",
77
- "August",
78
- "September",
79
- "October",
80
- "November",
81
- "December",
82
- ],
83
- monthLabelsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
84
- formatterShort: new Intl.DateTimeFormat("en-GB", formatOptionsShort),
85
- formatterLong: new Intl.DateTimeFormat("en-GB", formatOptionsLong),
86
- },
87
- sv: {
88
- buttonLabel: "Välj datum",
89
- prevMonthLabel: "Föregående månad",
90
- nextMonthLabel: "Nästa månad",
91
- monthSelectLabel: "Månad",
92
- yearSelectLabel: "År",
93
- closeLabel: "Stäng fönstret",
94
- selected: "Valt datum är",
95
- keyboardInstruction: "Använd piltangenterna för att navigera i kalender",
96
- dayLabels: ["Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"],
97
- monthLabels: [
98
- "Januari",
99
- "Februari",
100
- "Mars",
101
- "April",
102
- "Maj",
103
- "Juni",
104
- "Juli",
105
- "Augusti",
106
- "September",
107
- "Oktober",
108
- "November",
109
- "December",
110
- ],
111
- monthLabelsShort: ["Jan", "Feb", "Mars", "April", "Maj", "Juni", "Juli", "Aug", "Sep", "Okt", "Nov", "Dec"],
112
- formatterShort: new Intl.DateTimeFormat("sv-SE", formatOptionsShort),
113
- formatterLong: new Intl.DateTimeFormat("sv-SE", formatOptionsLong),
114
- },
18
+ fi: {
19
+ buttonLabel: "Valitse päivämäärä",
20
+ prevMonthLabel: "Edellinen kuukausi",
21
+ nextMonthLabel: "Seuraava kuukausi",
22
+ monthSelectLabel: "Kuukausi",
23
+ yearSelectLabel: "Vuosi",
24
+ closeLabel: "Sulje ikkuna",
25
+ selected: "Valittu päivämäärä on",
26
+ keyboardInstruction: "Voit navigoida päivämääriä nuolinäppäimillä",
27
+ dayLabels: ["Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai", "Sunnuntai"],
28
+ monthLabels: [
29
+ "Tammikuu",
30
+ "Helmikuu",
31
+ "Maaliskuu",
32
+ "Huhtikuu",
33
+ "Toukokuu",
34
+ "Kesäkuu",
35
+ "Heinäkuu",
36
+ "Elokuu",
37
+ "Syyskuu",
38
+ "Lokakuu",
39
+ "Marraskuu",
40
+ "Joulukuu",
41
+ ],
42
+ monthLabelsShort: [
43
+ "Tammi",
44
+ "Helmi",
45
+ "Maalis",
46
+ "Huhti",
47
+ "Touko",
48
+ "Kesä",
49
+ "Heinä",
50
+ "Elo",
51
+ "Syys",
52
+ "Loka",
53
+ "Marras",
54
+ "Joulu",
55
+ ],
56
+ formatterShort: new Intl.DateTimeFormat("fi-FI", formatOptionsShort),
57
+ formatterLong: new Intl.DateTimeFormat("fi-FI", formatOptionsLong),
58
+ },
59
+ en: {
60
+ buttonLabel: "Choose date",
61
+ prevMonthLabel: "Previous month",
62
+ nextMonthLabel: "Next month",
63
+ monthSelectLabel: "Month",
64
+ yearSelectLabel: "Year",
65
+ closeLabel: "Close window",
66
+ selected: "Selected date is",
67
+ keyboardInstruction: "You can use arrow keys to navigate dates",
68
+ dayLabels: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
69
+ monthLabels: [
70
+ "January",
71
+ "February",
72
+ "March",
73
+ "April",
74
+ "May",
75
+ "June",
76
+ "July",
77
+ "August",
78
+ "September",
79
+ "October",
80
+ "November",
81
+ "December",
82
+ ],
83
+ monthLabelsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
84
+ formatterShort: new Intl.DateTimeFormat("en-GB", formatOptionsShort),
85
+ formatterLong: new Intl.DateTimeFormat("en-GB", formatOptionsLong),
86
+ },
87
+ sv: {
88
+ buttonLabel: "Välj datum",
89
+ prevMonthLabel: "Föregående månad",
90
+ nextMonthLabel: "Nästa månad",
91
+ monthSelectLabel: "Månad",
92
+ yearSelectLabel: "År",
93
+ closeLabel: "Stäng fönstret",
94
+ selected: "Valt datum är",
95
+ keyboardInstruction: "Använd piltangenterna för att navigera i kalender",
96
+ dayLabels: ["Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"],
97
+ monthLabels: [
98
+ "Januari",
99
+ "Februari",
100
+ "Mars",
101
+ "April",
102
+ "Maj",
103
+ "Juni",
104
+ "Juli",
105
+ "Augusti",
106
+ "September",
107
+ "Oktober",
108
+ "November",
109
+ "December",
110
+ ],
111
+ monthLabelsShort: ["Jan", "Feb", "Mars", "April", "Maj", "Juni", "Juli", "Aug", "Sep", "Okt", "Nov", "Dec"],
112
+ formatterShort: new Intl.DateTimeFormat("sv-SE", formatOptionsShort),
113
+ formatterLong: new Intl.DateTimeFormat("sv-SE", formatOptionsLong),
114
+ },
115
115
  };
116
116
 
117
117
  var formDate={"title":"form-date","tags":"form date calendar date picker","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M2.25 24A2.252 2.252 0 0 1 0 21.75V5.25A2.252 2.252 0 0 1 2.25 3H6V.75a.75.75 0 0 1 1.5 0V3h9V.75a.75.75 0 0 1 1.5 0V3h3.75A2.252 2.252 0 0 1 24 5.25v16.5A2.252 2.252 0 0 1 21.75 24zm-.75-2.25c0 .414.336.75.75.75h19.5a.75.75 0 0 0 .75-.75V10.5h-21zM22.5 9V5.25a.75.75 0 0 0-.75-.75H18V6a.75.75 0 0 1-1.5 0V4.5h-9V6A.75.75 0 0 1 6 6V4.5H2.25a.75.75 0 0 0-.75.75V9z\"/><circle cx=\"5.625\" cy=\"13.875\" r=\"1.125\"/><circle cx=\"5.625\" cy=\"19.125\" r=\"1.125\"/><circle cx=\"12\" cy=\"13.875\" r=\"1.125\"/><circle cx=\"12\" cy=\"19.125\" r=\"1.125\"/><circle cx=\"18.375\" cy=\"13.875\" r=\"1.125\"/><path d=\"M18.375 20.25c-.62 0-1.125-.505-1.125-1.125a1.127 1.127 0 0 1 1.171-1.122l.027.003a1.118 1.118 0 0 1 1.052 1.12c0 .619-.505 1.124-1.125 1.124z\"/></svg>"};
118
118
 
119
119
  const DatePickerInput = ({ onClick, placeholder, name, inputLabel, value, valueAsDate, formattedValue, language, identifier, theme, disabled, error, role, required, tooltip, tooltipDirection, labelHidden, buttonRef, inputRef, onInput, onBlur, onFocus, accessibleActiveDescendant, accessibleControls, accessibleOwns, accessibleDescribedBy, echoPlaceholder, caption, }) => {
120
- const { buttonLabel, selected, formatterLong } = i18n[language];
121
- return (index.h("div", { class: {
122
- "duet-theme-turva": theme === "turva",
123
- "duet-date-input": true,
124
- } },
125
- index.h("duet-input", { label: inputLabel, value: formattedValue, placeholder: placeholder, id: identifier, disabled: disabled, theme: theme, error: error, role: role, required: required, tooltip: tooltip, tooltipDirection: tooltipDirection, margin: "none", component: "date", labelHidden: labelHidden, accessibleAutocomplete: "none", onDuetInput: onInput, onDuetFocus: onFocus, onDuetBlur: onBlur, autoComplete: "off", disallowPattern: "[^0-9\\.\\-\\/]", expand: true, ref: inputRef, accessibleActiveDescendant: accessibleActiveDescendant, accessibleControls: accessibleControls, accessibleOwns: accessibleOwns, accessibleDescribedBy: accessibleDescribedBy, echoPlaceholder: echoPlaceholder, caption: caption },
126
- index.h("button", { class: { "duet-date-button": true, "duet-no-label": labelHidden }, onClick: onClick, disabled: disabled, ref: buttonRef, type: "button" },
127
- index.h("duet-icon", { icon: formDate.svg, margin: "none", size: "small", color: "currentColor" }),
128
- index.h("duet-visually-hidden", null,
129
- buttonLabel,
130
- valueAsDate && (index.h("span", null,
131
- ", ",
132
- selected,
133
- " ",
134
- formatterLong.format(valueAsDate)))))),
135
- index.h("input", { type: "hidden", name: name, value: value })));
120
+ const { buttonLabel, selected, formatterLong } = i18n[language];
121
+ return (index.h("div", { class: {
122
+ "duet-theme-turva": theme === "turva",
123
+ "duet-date-input": true,
124
+ } },
125
+ index.h("duet-input", { label: inputLabel, value: formattedValue, placeholder: placeholder, id: identifier, disabled: disabled, theme: theme, error: error, role: role, required: required, tooltip: tooltip, tooltipDirection: tooltipDirection, margin: "none", component: "date", labelHidden: labelHidden, accessibleAutocomplete: "none", onDuetInput: onInput, onDuetFocus: onFocus, onDuetBlur: onBlur, autoComplete: "off", disallowPattern: "[^0-9\\.\\-\\/]", expand: true, ref: inputRef, accessibleActiveDescendant: accessibleActiveDescendant, accessibleControls: accessibleControls, accessibleOwns: accessibleOwns, accessibleDescribedBy: accessibleDescribedBy, echoPlaceholder: echoPlaceholder, caption: caption },
126
+ index.h("button", { class: { "duet-date-button": true, "duet-no-label": labelHidden }, onClick: onClick, disabled: disabled, ref: buttonRef, type: "button" },
127
+ index.h("duet-icon", { icon: formDate.svg, margin: "none", size: "small", color: "currentColor" }),
128
+ index.h("duet-visually-hidden", null,
129
+ buttonLabel,
130
+ valueAsDate && (index.h("span", null,
131
+ ", ",
132
+ selected,
133
+ " ",
134
+ formatterLong.format(valueAsDate)))))),
135
+ index.h("input", { type: "hidden", name: name, value: value })));
136
136
  };
137
137
 
138
138
  const DATE_FORMAT = /^(\d{1,2})[\.\-\/](\d{1,2})[\.\-\/](\d{4})$/;
@@ -140,142 +140,142 @@ const ISO_DATE_FORMAT = /^(\d{4})-(\d{2})-(\d{2})$/;
140
140
  const DATE_OUTPUT_FORMAT = "dd.mm.yyyy";
141
141
  const DATE_ISO_OUTPUT_FORMAT = "YYYY-MM-DD";
142
142
  function createDate(year, month, day) {
143
- var dayInt = parseInt(day, 10);
144
- var monthInt = parseInt(month, 10);
145
- var yearInt = parseInt(year, 10);
146
- const isValid = Number.isInteger(yearInt) && // all parts should be integers
147
- Number.isInteger(monthInt) &&
148
- Number.isInteger(dayInt) &&
149
- monthInt > 0 && // month must be 1-12
150
- monthInt <= 12 &&
151
- dayInt > 0 && // day must be 1-31
152
- dayInt <= 31 &&
153
- yearInt > 0;
154
- if (isValid) {
155
- return new Date(yearInt, monthInt - 1, dayInt);
156
- }
143
+ var dayInt = parseInt(day, 10);
144
+ var monthInt = parseInt(month, 10);
145
+ var yearInt = parseInt(year, 10);
146
+ const isValid = Number.isInteger(yearInt) && // all parts should be integers
147
+ Number.isInteger(monthInt) &&
148
+ Number.isInteger(dayInt) &&
149
+ monthInt > 0 && // month must be 1-12
150
+ monthInt <= 12 &&
151
+ dayInt > 0 && // day must be 1-31
152
+ dayInt <= 31 &&
153
+ yearInt > 0;
154
+ if (isValid) {
155
+ return new Date(yearInt, monthInt - 1, dayInt);
156
+ }
157
157
  }
158
158
  /**
159
159
  * @param value date string in format dd.mm.yyyy
160
160
  */
161
161
  function parseDate(value) {
162
- if (!value) {
163
- return;
164
- }
165
- const matches = value.match(DATE_FORMAT);
166
- if (matches) {
167
- return createDate(matches[3], matches[2], matches[1]);
168
- }
162
+ if (!value) {
163
+ return;
164
+ }
165
+ const matches = value.match(DATE_FORMAT);
166
+ if (matches) {
167
+ return createDate(matches[3], matches[2], matches[1]);
168
+ }
169
169
  }
170
170
  /**
171
171
  * @param value date string in ISO format YYYY-MM-DD
172
172
  */
173
173
  function parseISODate(value) {
174
- if (!value) {
175
- return;
176
- }
177
- const matches = value.match(ISO_DATE_FORMAT);
178
- if (matches) {
179
- return createDate(matches[1], matches[2], matches[3]);
180
- }
174
+ if (!value) {
175
+ return;
176
+ }
177
+ const matches = value.match(ISO_DATE_FORMAT);
178
+ if (matches) {
179
+ return createDate(matches[1], matches[2], matches[3]);
180
+ }
181
181
  }
182
182
  /**
183
183
  * @param date the date to format as a Date
184
184
  * @param format the format string eg. "dd.mm.yyyy", "YYYY-MM-DD"
185
185
  */
186
186
  function formatDate(date, format) {
187
- if (!date) {
188
- return "";
189
- }
190
- var d = date.getDate().toString(10);
191
- var m = (date.getMonth() + 1).toString(10);
192
- var y = date.getFullYear().toString(10);
193
- // days are not zero-indexed, so pad if less than 10
194
- if (date.getDate() < 10) {
195
- d = `0${d}`;
196
- }
197
- // months *are* zero-indexed, pad if less than 9!
198
- if (date.getMonth() < 9) {
199
- m = `0${m}`;
200
- }
201
- return format.replace(/MM/i, m).replace(/YYYY/i, y).replace(/DD/i, d);
187
+ if (!date) {
188
+ return "";
189
+ }
190
+ var d = date.getDate().toString(10);
191
+ var m = (date.getMonth() + 1).toString(10);
192
+ var y = date.getFullYear().toString(10);
193
+ // days are not zero-indexed, so pad if less than 10
194
+ if (date.getDate() < 10) {
195
+ d = `0${d}`;
196
+ }
197
+ // months *are* zero-indexed, pad if less than 9!
198
+ if (date.getMonth() < 9) {
199
+ m = `0${m}`;
200
+ }
201
+ return format.replace(/MM/i, m).replace(/YYYY/i, y).replace(/DD/i, d);
202
202
  }
203
203
  /**
204
204
  * print date in format dd.mm.yyyy
205
205
  * @param date
206
206
  */
207
207
  function printDate(date) {
208
- return formatDate(date, DATE_OUTPUT_FORMAT);
208
+ return formatDate(date, DATE_OUTPUT_FORMAT);
209
209
  }
210
210
  /**
211
211
  * print date in format YYYY-MM-DD
212
212
  * @param date
213
213
  */
214
214
  function printISODate(date) {
215
- return formatDate(date, DATE_ISO_OUTPUT_FORMAT);
215
+ return formatDate(date, DATE_ISO_OUTPUT_FORMAT);
216
216
  }
217
217
  /**
218
218
  * Compare if two dates are equal in terms of day, month, and year
219
219
  */
220
220
  function isEqual(a, b) {
221
- if (a == null || b == null) {
222
- return false;
223
- }
224
- return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
221
+ if (a == null || b == null) {
222
+ return false;
223
+ }
224
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
225
225
  }
226
226
  function addDays(date, days) {
227
- var d = new Date(date);
228
- d.setDate(d.getDate() + days);
229
- return d;
227
+ var d = new Date(date);
228
+ d.setDate(d.getDate() + days);
229
+ return d;
230
230
  }
231
231
  function startOfWeek(date, firstDayOfWeek = 1) {
232
- var d = new Date(date);
233
- var day = d.getDay();
234
- var diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;
235
- d.setDate(d.getDate() - diff);
236
- return d;
232
+ var d = new Date(date);
233
+ var day = d.getDay();
234
+ var diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;
235
+ d.setDate(d.getDate() - diff);
236
+ return d;
237
237
  }
238
238
  function endOfWeek(date, firstDayOfWeek = 1) {
239
- var d = new Date(date);
240
- var day = d.getDay();
241
- var diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek);
242
- d.setDate(d.getDate() + diff);
243
- return d;
239
+ var d = new Date(date);
240
+ var day = d.getDay();
241
+ var diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek);
242
+ d.setDate(d.getDate() + diff);
243
+ return d;
244
244
  }
245
245
  function startOfMonth(date) {
246
- return new Date(date.getFullYear(), date.getMonth(), 1);
246
+ return new Date(date.getFullYear(), date.getMonth(), 1);
247
247
  }
248
248
  function endOfMonth(date) {
249
- return new Date(date.getFullYear(), date.getMonth() + 1, 0);
249
+ return new Date(date.getFullYear(), date.getMonth() + 1, 0);
250
250
  }
251
251
  function setMonth(date, month) {
252
- const d = new Date(date);
253
- d.setMonth(month);
254
- return d;
252
+ const d = new Date(date);
253
+ d.setMonth(month);
254
+ return d;
255
255
  }
256
256
  function setYear(date, year) {
257
- const d = new Date(date);
258
- d.setFullYear(year);
259
- return d;
257
+ const d = new Date(date);
258
+ d.setFullYear(year);
259
+ return d;
260
260
  }
261
261
  /**
262
262
  * Check if date is within a min and max
263
263
  */
264
264
  function inRange(date, min, max) {
265
- return clamp(date, min, max) === date;
265
+ return clamp(date, min, max) === date;
266
266
  }
267
267
  /**
268
268
  * Ensures date is within range, returns min or max if out of bounds
269
269
  */
270
270
  function clamp(date, min, max) {
271
- const time = date.getTime();
272
- if (min && min instanceof Date && time < min.getTime()) {
273
- return min;
274
- }
275
- if (max && max instanceof Date && time > max.getTime()) {
276
- return max;
277
- }
278
- return date;
271
+ const time = date.getTime();
272
+ if (min && min instanceof Date && time < min.getTime()) {
273
+ return min;
274
+ }
275
+ if (max && max instanceof Date && time > max.getTime()) {
276
+ return max;
277
+ }
278
+ return date;
279
279
  }
280
280
  /**
281
281
  * given start and end date, return an (inclusive) array of all dates in between
@@ -283,14 +283,14 @@ function clamp(date, min, max) {
283
283
  * @param end
284
284
  */
285
285
  function getDaysInRange(start, end) {
286
- const days = [];
287
- let current = start;
288
- while (!isEqual(current, end)) {
286
+ const days = [];
287
+ let current = start;
288
+ while (!isEqual(current, end)) {
289
+ days.push(current);
290
+ current = addDays(current, 1);
291
+ }
289
292
  days.push(current);
290
- current = addDays(current, 1);
291
- }
292
- days.push(current);
293
- return days;
293
+ return days;
294
294
  }
295
295
  /**
296
296
  * given a date, return an array of dates from a calendar perspective
@@ -298,23 +298,23 @@ function getDaysInRange(start, end) {
298
298
  * @param firstDayOfWeek
299
299
  */
300
300
  function getViewOfMonth(date, firstDayOfWeek = 1) {
301
- const start = startOfWeek(startOfMonth(date), firstDayOfWeek);
302
- const end = endOfWeek(endOfMonth(date), firstDayOfWeek);
303
- return getDaysInRange(start, end);
301
+ const start = startOfWeek(startOfMonth(date), firstDayOfWeek);
302
+ const end = endOfWeek(endOfMonth(date), firstDayOfWeek);
303
+ return getDaysInRange(start, end);
304
304
  }
305
305
 
306
306
  const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboardNavigation, ref, inRange, isSelected, }) => {
307
- const isToday = isEqual(day, today);
308
- const isFocused = isEqual(day, focusedDay);
309
- const isDisabled = day.getMonth() !== focusedDay.getMonth();
310
- const isOutsideRange = !inRange;
311
- const { formatterShort } = i18n[language];
312
- function handleClick(e) {
313
- onDaySelect(e, day);
314
- }
315
- return (index.h("button", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday }, tabIndex: isFocused ? 0 : -1, onClick: handleClick, onKeyDown: onKeyboardNavigation, "aria-disabled": isOutsideRange || isDisabled, "aria-pressed": isSelected ? "true" : "false", type: "button", ref: ref },
316
- index.h("span", { "aria-hidden": "true" }, day.getDate()),
317
- index.h("duet-visually-hidden", null, formatterShort.format(day))));
307
+ const isToday = isEqual(day, today);
308
+ const isFocused = isEqual(day, focusedDay);
309
+ const isDisabled = day.getMonth() !== focusedDay.getMonth();
310
+ const isOutsideRange = !inRange;
311
+ const { formatterShort } = i18n[language];
312
+ function handleClick(e) {
313
+ onDaySelect(e, day);
314
+ }
315
+ return (index.h("button", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday }, tabIndex: isFocused ? 0 : -1, onClick: handleClick, onKeyDown: onKeyboardNavigation, "aria-disabled": isOutsideRange || isDisabled, "aria-pressed": isSelected ? "true" : "false", type: "button", ref: ref },
316
+ index.h("span", { "aria-hidden": "true" }, day.getDate()),
317
+ index.h("duet-visually-hidden", null, formatterShort.format(day))));
318
318
  };
319
319
 
320
320
  /**
@@ -324,11 +324,11 @@ const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboa
324
324
  * @param to
325
325
  */
326
326
  function range(from, to) {
327
- var result = [];
328
- for (var i = from; i <= to; i++) {
329
- result.push(i);
330
- }
331
- return result;
327
+ var result = [];
328
+ for (var i = from; i <= to; i++) {
329
+ result.push(i);
330
+ }
331
+ return result;
332
332
  }
333
333
  /**
334
334
  * Splits an array into smaller arrays of given chunk size
@@ -336,17 +336,17 @@ function range(from, to) {
336
336
  * @param chunkSize
337
337
  */
338
338
  function chunk(array, chunkSize) {
339
- const result = [];
340
- for (let i = 0; i < array.length; i += chunkSize) {
341
- result.push(array.slice(i, i + chunkSize));
342
- }
343
- return result;
339
+ const result = [];
340
+ for (let i = 0; i < array.length; i += chunkSize) {
341
+ result.push(array.slice(i, i + chunkSize));
342
+ }
343
+ return result;
344
344
  }
345
345
  function parseShortcut(str) {
346
- var _a;
347
- const press = str.trim().split("+");
348
- const key = press.pop();
349
- return [((_a = press[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === "shift", key];
346
+ var _a;
347
+ const press = str.trim().split("+");
348
+ const key = press.pop();
349
+ return [((_a = press[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === "shift", key];
350
350
  }
351
351
  /**
352
352
  * Creates a keyboard event handler for handling keyboard shortcuts.
@@ -359,392 +359,392 @@ function parseShortcut(str) {
359
359
  * }))
360
360
  */
361
361
  function createShortcuts(shortcuts) {
362
- const keyBindings = Object.keys(shortcuts).map(key => [parseShortcut(key), shortcuts[key]]);
363
- return function handleShortcuts(event) {
364
- if (!(event instanceof KeyboardEvent)) {
365
- return;
366
- }
367
- // we need to check both event.code and event.key
368
- // for browser support back to IE11
369
- const shortcut = keyBindings.find(([[shift, key]]) => {
370
- return (key.toUpperCase() === event.key.toUpperCase() || key === event.code) && shift === event.shiftKey;
371
- });
372
- if (shortcut) {
373
- shortcut[1](event);
374
- event.preventDefault();
375
- }
376
- };
362
+ const keyBindings = Object.keys(shortcuts).map(key => [parseShortcut(key), shortcuts[key]]);
363
+ return function handleShortcuts(event) {
364
+ if (!(event instanceof KeyboardEvent)) {
365
+ return;
366
+ }
367
+ // we need to check both event.code and event.key
368
+ // for browser support back to IE11
369
+ const shortcut = keyBindings.find(([[shift, key]]) => {
370
+ return (key.toUpperCase() === event.key.toUpperCase() || key === event.code) && shift === event.shiftKey;
371
+ });
372
+ if (shortcut) {
373
+ shortcut[1](event);
374
+ event.preventDefault();
375
+ }
376
+ };
377
377
  }
378
378
 
379
379
  const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, language, min, max, onDateSelect, onKeyboardNavigation, focusedDayRef, onFocusEnter, onFocusExit, }) => {
380
- const { dayLabels } = i18n[language];
381
- const today = new Date();
382
- const days = getViewOfMonth(focusedDate);
383
- function handleFocusOut(e) {
384
- const table = e.currentTarget;
385
- const relatedTarget = e.relatedTarget;
386
- if (relatedTarget && !table.contains(relatedTarget)) {
387
- onFocusExit(e);
388
- }
389
- }
390
- return (index.h("table", { class: { "duet-date-table": true, "duet-theme-turva": theme === "turva" }, "aria-labelledby": labelledById,
391
- // @ts-ignore
392
- onFocusin: onFocusEnter, onFocusout: handleFocusOut },
393
- index.h("thead", null,
394
- index.h("tr", null, dayLabels.map(label => (index.h("th", { scope: "col" },
395
- index.h("span", { "aria-hidden": "true" }, label.substr(0, 2)),
396
- index.h("duet-visually-hidden", null, label)))))),
397
- index.h("tbody", null, chunk(days, 7).map(week => (index.h("tr", { class: "duet-date-table-row" }, week.map(day => (index.h("td", { class: "duet-date-table-cell" },
398
- index.h(DatePickerDay, { day: day, today: today, language: language, focusedDay: focusedDate, inRange: inRange(day, min, max), isSelected: isEqual(day, selectedDate), onDaySelect: onDateSelect, onKeyboardNavigation: onKeyboardNavigation, ref: el => {
399
- if (el && isEqual(day, focusedDate)) {
400
- focusedDayRef(el);
401
- }
402
- } }))))))))));
380
+ const { dayLabels } = i18n[language];
381
+ const today = new Date();
382
+ const days = getViewOfMonth(focusedDate);
383
+ function handleFocusOut(e) {
384
+ const table = e.currentTarget;
385
+ const relatedTarget = e.relatedTarget;
386
+ if (relatedTarget && !table.contains(relatedTarget)) {
387
+ onFocusExit(e);
388
+ }
389
+ }
390
+ return (index.h("table", { class: { "duet-date-table": true, "duet-theme-turva": theme === "turva" }, "aria-labelledby": labelledById,
391
+ // @ts-ignore
392
+ onFocusin: onFocusEnter, onFocusout: handleFocusOut },
393
+ index.h("thead", null,
394
+ index.h("tr", null, dayLabels.map(label => (index.h("th", { scope: "col" },
395
+ index.h("span", { "aria-hidden": "true" }, label.substr(0, 2)),
396
+ index.h("duet-visually-hidden", null, label)))))),
397
+ index.h("tbody", null, chunk(days, 7).map(week => (index.h("tr", { class: "duet-date-table-row" }, week.map(day => (index.h("td", { class: "duet-date-table-cell" },
398
+ index.h(DatePickerDay, { day: day, today: today, language: language, focusedDay: focusedDate, inRange: inRange(day, min, max), isSelected: isEqual(day, selectedDate), onDaySelect: onDateSelect, onKeyboardNavigation: onKeyboardNavigation, ref: el => {
399
+ if (el && isEqual(day, focusedDate)) {
400
+ focusedDayRef(el);
401
+ }
402
+ } }))))))))));
403
403
  };
404
404
 
405
405
  const duetDatePickerCss = "*.sc-duet-date-picker,*.sc-duet-date-picker::after,*.sc-duet-date-picker::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-date-picker-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;position:relative;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:top}.sc-duet-date-picker-h:last-child,.sc-duet-date-picker-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-date-picker-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-date-picker-h{width:100% !important}.duet-m-0.sc-duet-date-picker-h{margin:0 !important}.duet-date.sc-duet-date-picker{position:relative;width:100%}.duet-date.sc-duet-date-picker button.sc-duet-date-picker,.duet-date-dialog.sc-duet-date-picker button.sc-duet-date-picker{max-width:initial !important;min-height:initial !important;padding:0 !important;margin:0 !important;transition:initial}.duet-date-button.sc-duet-date-picker{-webkit-user-select:none;user-select:none;position:absolute;top:1px;right:1px;z-index:200;display:flex;align-items:center;justify-content:center;width:48px;height:calc(100% - 2px);color:rgb(0, 41, 77);cursor:pointer;background:transparent !important;border-left:1px solid rgb(207, 210, 212) !important;border-radius:0 4px 4px 0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker{color:rgb(23, 28, 58);border-color:rgb(207, 207, 209)}.duet-date-button.sc-duet-date-picker::before{position:absolute;top:0;left:-6px;width:6px;height:100%;content:\"\";background:linear-gradient(to left, rgba(207, 210, 212, 0.2) 0%, rgba(207, 210, 212, 0.2) 1px, rgba(207, 210, 212, 0.1) 1px, rgba(207, 210, 212, 0) 100%)}.duet-date-button.sc-duet-date-picker:disabled{pointer-events:none;cursor:not-allowed;background:rgb(245, 248, 250) !important;border:0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:disabled{background:rgb(245, 245, 247) !important}.duet-date-button.sc-duet-date-picker:disabled::before{display:none}.duet-date-button.sc-duet-date-picker:disabled duet-icon.sc-duet-date-picker{opacity:0.4}.duet-date-button.sc-duet-date-picker duet-icon.sc-duet-date-picker{transform:translateY(-1px)}.duet-date-button.sc-duet-date-picker:active duet-icon.sc-duet-date-picker{transform:translateY(0)}.duet-date-button.sc-duet-date-picker:focus{color:rgb(0, 119, 179);border-color:transparent;outline:0;box-shadow:0 0 0 2px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:focus{color:rgb(23, 28, 58);box-shadow:0 0 0 2px #171c3a !important}.duet-date-dialog.sc-duet-date-picker{position:absolute;top:100%;left:0;z-index:900;display:flex;width:100%;visibility:hidden;opacity:0;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right}@media (min-width: 36em){.duet-date-dialog.left.sc-duet-date-picker{right:0;left:auto;width:auto}}@media (max-width: 35.9375em){.duet-date-dialog.sc-duet-date-picker{position:fixed;top:0;right:0;bottom:0;background:rgba(0, 41, 77, 0.75);transition:opacity 400ms ease, visibility 400ms ease;transform:translateZ(0);transform-origin:bottom center}.duet-date-dialog.duet-theme-turva.sc-duet-date-picker{background:rgba(23, 28, 58, 0.75)}}.duet-date-dialog.active.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:scale(1.0001) translateZ(0) translateY(0)}@media (min-width: 36em){.duet-date-dialog.error.sc-duet-date-picker{top:calc(100% - 28px);margin-top:4px}}.duet-date-dialog-wrapper.sc-duet-date-picker{position:relative;z-index:600;width:100%;min-width:290px;max-width:310px;padding:16px 16px 20px;margin-top:8px;margin-left:auto;background:rgb(255, 255, 255);border:1px solid rgb(225, 227, 230);border-radius:4px;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);transform:none}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{border-color:rgb(228, 228, 230)}@media (max-width: 35.9375em){.duet-date-dialog-wrapper.sc-duet-date-picker{position:absolute;bottom:0;left:0;z-index:900;max-width:none;min-height:25em;padding:0 8% 20px;margin:0;visibility:hidden;border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;opacity:0;transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;transform:translateZ(0) translateY(100%)}.active.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:translateZ(0) translateY(0)}}.duet-date-table.sc-duet-date-picker{width:100%;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:1rem;font-weight:400;line-height:1.25;color:rgb(0, 41, 77);text-align:center;border-spacing:0;border-collapse:collapse}.duet-date-table.duet-theme-turva.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}.duet-date-table.sc-duet-date-picker th.sc-duet-date-picker{padding-bottom:8px;font-size:0.75rem;font-weight:600;line-height:1.25;text-decoration:none;text-transform:uppercase;letter-spacing:1px}.duet-date-table.sc-duet-date-picker .duet-date-table-cell.sc-duet-date-picker{text-align:center}.duet-date-table-button.sc-duet-date-picker{position:relative;z-index:100;display:inline-block !important;width:36.9230769231px !important;height:36.9230769231px !important;min-height:initial !important;padding:0 !important;margin:0 !important;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;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.25 !important;color:rgb(0, 41, 77) !important;text-align:center;vertical-align:initial !important;cursor:pointer;background:transparent !important;border-radius:50% !important;transition:initial !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !important;color:rgb(23, 28, 58) !important}.duet-date-table-button.sc-duet-date-picker:hover{background:rgb(230, 242, 248) !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:hover{background:rgb(249, 230, 234) !important}.duet-date-table-button.today.sc-duet-date-picker{z-index:200;color:rgb(0, 77, 128) !important;background:rgb(243, 249, 252) !important;box-shadow:0 0 0 1px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.today.sc-duet-date-picker{color:rgb(148, 9, 37) !important;background:rgb(252, 243, 244) !important;box-shadow:0 0 0 1px #171c3a !important}.duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-date-table-button.sc-duet-date-picker:focus{color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179) !important;outline:0}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{color:rgb(255, 255, 255) !important;background:rgb(198, 12, 48) !important}.duet-date-table-button.sc-duet-date-picker:active{z-index:200;color:rgb(255, 255, 255) !important;background:rgb(0, 119, 179) !important;box-shadow:0 0 5px 0 #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:active{color:rgb(255, 255, 255) !important;background:rgb(198, 12, 48) !important;box-shadow:0 0 5px 0 #171c3a !important}.duet-date-table-button.sc-duet-date-picker:focus{z-index:200;box-shadow:0 0 5px 0 #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{box-shadow:0 0 5px 0 #171c3a !important}.duet-date-table-button.disabled.sc-duet-date-picker{color:rgb(144, 149, 153) !important;cursor:default;background:transparent !important;box-shadow:none !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.disabled.sc-duet-date-picker{color:rgb(116, 116, 117) !important;background:transparent !important;box-shadow:none !important}.duet-date-table-button.outside.sc-duet-date-picker{color:rgb(144, 149, 153) !important;pointer-events:none;cursor:default;background:rgb(245, 248, 250) !important;box-shadow:none;opacity:0.75}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.outside.sc-duet-date-picker{color:rgb(116, 116, 117);background:rgb(245, 245, 247);box-shadow:none}.duet-date-dialog-header.sc-duet-date-picker{margin-bottom:16px !important;display:flex;align-items:center;justify-content:space-between;width:100%}.duet-date-dialog-buttons.sc-duet-date-picker{white-space:nowrap}.duet-date-dialog-buttons.sc-duet-date-picker .sc-duet-date-picker::part(button){border:0}.duet-date-dialog-select.sc-duet-date-picker{position:relative;display:inline-flex;margin-top:4px}.duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{position:relative;z-index:1;display:flex;align-items:center;width:100%;padding:0 8px;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:1.25rem;font-weight:600;line-height:1.25;color:rgb(0, 41, 77);pointer-events:none;border-radius:4px}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:rgb(23, 28, 58)}.duet-date-dialog-select.sc-duet-date-picker span.sc-duet-date-picker{margin-right:4px}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;font-size:1rem;cursor:pointer;opacity:0}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #171c3a !important}.duet-date-dialog-mobile-header.sc-duet-date-picker{position:relative;display:flex;align-items:center;justify-content:space-between;width:120%;padding:12px 20px;margin-bottom:20px;margin-left:-10%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid rgb(207, 210, 212)}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker{position:absolute;top:-8px;right:-8px;width:auto;padding:0;margin:0;overflow:visible;border:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-mobile-header.sc-duet-date-picker{border-color:rgb(207, 207, 209)}.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:inline-block;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:none}}.duet-date-picker-close.sc-duet-date-picker{display:flex;align-items:center;justify-content:center;width:24px;height:24px !important;padding:0 !important;color:rgb(0, 41, 77) !important;cursor:pointer;background:rgb(245, 248, 250) !important;border-radius:50%;-webkit-appearance:none;appearance:none}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker{opacity:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker{background:rgb(245, 245, 247) !important}.duet-date-picker-close.sc-duet-date-picker:hover{background:rgb(245, 248, 250) !important}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:hover{background:rgb(245, 245, 247) !important}.duet-date-picker-close.sc-duet-date-picker:focus{outline:none;box-shadow:0 0 0 2px #0077b3 !important}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker:focus{opacity:1}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:focus{box-shadow:0 0 0 2px #171c3a !important}";
406
406
 
407
407
  const DuetDatePicker = class {
408
- constructor(hostRef) {
409
- index.registerInstance(this, hostRef);
410
- this.duetChange = index.createEvent(this, "duetChange", 7);
411
- this.duetBlur = index.createEvent(this, "duetBlur", 7);
412
- this.duetFocus = index.createEvent(this, "duetFocus", 7);
413
- this.monthSelectId = createId.createID("DuetDatePicker");
414
- this.yearSelectId = createId.createID("DuetDatePicker");
415
- this.dialogLabelId = createId.createID("DuetDatePicker");
416
- this.initialTouchX = null;
417
- this.initialTouchY = null;
418
- this.focusTarget = null;
419
- this.enableActiveFocus = () => {
420
- this.focusTarget = "day-button";
421
- };
422
- this.disableActiveFocus = () => {
423
- this.focusTarget = null;
424
- };
425
- this.toggleOpen = (e) => {
426
- e.preventDefault();
427
- this.open ? this.hide(false) : this.show();
428
- };
429
- this.handleBlur = (event) => {
430
- event.stopPropagation();
431
- this.duetBlur.emit({
432
- component: "duet-date-picker",
433
- });
434
- };
435
- this.handleFocus = (event) => {
436
- event.stopPropagation();
437
- this.duetFocus.emit({
438
- component: "duet-date-picker",
439
- });
440
- };
441
- this.handleTouchStart = (event) => {
442
- const touch = event.changedTouches[0];
443
- this.initialTouchX = touch.pageX;
444
- this.initialTouchY = touch.pageY;
445
- };
446
- this.handleTouchMove = (event) => {
447
- event.preventDefault();
448
- };
449
- this.handleTouchEnd = (event) => {
450
- const touch = event.changedTouches[0];
451
- const distX = touch.pageX - this.initialTouchX; // get horizontal dist traveled
452
- const distY = touch.pageY - this.initialTouchY; // get vertical dist traveled
453
- const threshold = 70;
454
- const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;
455
- const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0;
456
- if (isHorizontalSwipe) {
457
- this.addMonths(distX < 0 ? 1 : -1);
458
- }
459
- else if (isDownwardsSwipe) {
460
- this.hide();
461
- event.preventDefault();
462
- }
463
- this.initialTouchY = null;
464
- this.initialTouchX = null;
465
- };
466
- this.handleNextMonthClick = (event) => {
467
- event.preventDefault();
468
- this.addMonths(1);
469
- };
470
- this.handlePreviousMonthClick = (event) => {
471
- event.preventDefault();
472
- this.addMonths(-1);
473
- };
474
- this.handleEscKey = createShortcuts({
475
- Escape: () => this.hide(),
476
- Esc: () => this.hide(), // IE-specific
477
- });
478
- this.handleKeyboardNavigation = createShortcuts({
479
- ArrowRight: () => this.addDays(1),
480
- Right: () => this.addDays(1),
481
- ArrowLeft: () => this.addDays(-1),
482
- Left: () => this.addDays(-1),
483
- ArrowDown: () => this.addDays(7),
484
- Down: () => this.addDays(7),
485
- ArrowUp: () => this.addDays(-7),
486
- Up: () => this.addDays(-7),
487
- Home: () => this.startOfWeek(),
488
- End: () => this.endOfWeek(),
489
- PageUp: () => this.addMonths(-1),
490
- PageDown: () => this.addMonths(1),
491
- "Shift+PageUp": () => this.addYears(-1),
492
- "Shift+PageDown": () => this.addYears(1),
493
- });
494
- this.handleDaySelect = (_event, day) => {
495
- const min = parseISODate(this.min);
496
- const max = parseISODate(this.max);
497
- this.determineValidity(day);
498
- if (inRange(day, min, max)) {
499
- this.setValue(day);
500
- this.hide();
501
- }
502
- };
503
- this.handleMonthSelect = e => {
504
- this.setMonth(parseInt(e.target.value, 10));
505
- };
506
- this.handleYearSelect = e => {
507
- this.setYear(parseInt(e.target.value, 10));
508
- };
509
- this.handleInputChange = (e) => {
510
- this.inputValue = e.detail.value;
511
- const parsed = parseDate(this.inputValue);
512
- this.determineValidity(parsed);
513
- if (parsed || this.inputValue === "") {
514
- this.setValue(parsed);
515
- }
516
- };
517
- this.open = false;
518
- this.focusedDay = new Date();
519
- this.inputValue = "";
520
- this.theme = "";
521
- this.expand = false;
522
- this.name = "";
523
- this.identifier = "";
524
- this.label = "";
525
- this.caption = undefined;
526
- this.margin = "auto";
527
- this.language = languageUtils.getLanguage();
528
- this.placeholderDefaults = {
529
- fi: "pp.kk.vvvv",
530
- en: "dd.mm.yyyy",
531
- sv: "dd.mm.åååå",
532
- };
533
- this.placeholder = languageUtils.getLocaleString(this.placeholderDefaults, this.language);
534
- this.echoPlaceholder = false;
535
- this.disabled = false;
536
- this.error = "";
537
- this.labelHidden = false;
538
- this.role = undefined;
539
- this.accessibleActiveDescendant = undefined;
540
- this.accessibleControls = undefined;
541
- this.accessibleOwns = undefined;
542
- this.accessibleDescribedBy = undefined;
543
- this.required = false;
544
- this.direction = "right";
545
- this.tooltip = "";
546
- this.tooltipDirection = "auto";
547
- this.value = "";
548
- this.min = "";
549
- this.max = "";
550
- this.incrementYears = 10;
551
- this.validity = undefined;
552
- }
553
- updateValidity() {
554
- this.determineValidity(parseISODate(this.value));
555
- }
556
- updateInternalValue() {
557
- const parsedValue = parseISODate(this.value);
558
- const parsedInputValue = parseDate(this.inputValue);
559
- // an invalid or empty value should clear the input
560
- if (!parsedValue) {
561
- this.inputValue = "";
562
- }
563
- // but otherwise only update user's input if the new value is different to user's input
564
- else if (!isEqual(parsedValue, parsedInputValue)) {
565
- this.inputValue = printDate(parsedValue);
566
- }
567
- }
568
- /**
569
- * Component lifecycle events.
570
- */
571
- componentWillLoad() {
572
- themeableComponent.inheritGlobalTheme(this);
573
- this.determineValidity(parseISODate(this.value));
574
- this.updateInternalValue();
575
- }
576
- componentDidUpdate() {
577
- // we want to run this code _after_ render
578
- // to ensure all elements are visible (and thus focusable)
579
- // hence using componentDidUpdate
580
- switch (this.focusTarget) {
581
- case "toggle-button":
582
- this.datePickerButton.focus();
408
+ constructor(hostRef) {
409
+ index.registerInstance(this, hostRef);
410
+ this.duetChange = index.createEvent(this, "duetChange", 7);
411
+ this.duetBlur = index.createEvent(this, "duetBlur", 7);
412
+ this.duetFocus = index.createEvent(this, "duetFocus", 7);
413
+ this.monthSelectId = createId.createID("DuetDatePicker");
414
+ this.yearSelectId = createId.createID("DuetDatePicker");
415
+ this.dialogLabelId = createId.createID("DuetDatePicker");
416
+ this.initialTouchX = null;
417
+ this.initialTouchY = null;
583
418
  this.focusTarget = null;
584
- break;
585
- case "day-button":
586
- // we don't clear focusTarget here since this is cleared
587
- // already when focus is moved out of calendar table
588
- this.focusedDayNode.focus();
589
- break;
590
- case "month-select":
591
- this.monthSelectNode.focus();
592
- this.focusTarget = null;
593
- break;
594
- }
595
- }
596
- connectedCallback() {
597
- languageUtils.connectLanguageChangeObserver(this, { prop: "placeholder", defaults: "placeholderDefaults" });
598
- }
599
- disconnectedCallback() {
600
- languageUtils.disconnectLanguageChangeObserver(this);
601
- }
602
- /**
603
- * Sets focus on the date picker's input. Use this method instead of the global `focus()`.
604
- */
605
- async setFocus(options) {
606
- this.datePickerInput.setFocus(options);
607
- }
608
- /**
609
- * Show the calendar modal, moving focus to the calendar inside.
610
- */
611
- async show() {
612
- this.open = true;
613
- this.focusTarget = "month-select";
614
- this.setFocusedDay(parseISODate(this.value) || new Date());
615
- }
616
- /**
617
- * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus
618
- * returning to the date picker's button. Default is true.
619
- */
620
- async hide(moveFocusToButton = true) {
621
- this.open = false;
622
- if (moveFocusToButton) {
623
- this.focusTarget = "toggle-button";
624
- }
625
- }
626
- addDays(days) {
627
- this.setFocusedDay(addDays(this.focusedDay, days));
628
- }
629
- addMonths(months) {
630
- this.setMonth(this.focusedDay.getMonth() + months);
631
- }
632
- addYears(years) {
633
- this.setYear(this.focusedDay.getFullYear() + years);
634
- }
635
- startOfWeek() {
636
- this.setFocusedDay(startOfWeek(this.focusedDay));
637
- }
638
- endOfWeek() {
639
- this.setFocusedDay(endOfWeek(this.focusedDay));
640
- }
641
- setMonth(month) {
642
- const min = setMonth(startOfMonth(this.focusedDay), month);
643
- const max = endOfMonth(min);
644
- const date = setMonth(this.focusedDay, month);
645
- this.setFocusedDay(clamp(date, min, max));
646
- }
647
- setYear(year) {
648
- const min = setYear(startOfMonth(this.focusedDay), year);
649
- const max = endOfMonth(min);
650
- const date = setYear(this.focusedDay, year);
651
- this.setFocusedDay(clamp(date, min, max));
652
- }
653
- setFocusedDay(day) {
654
- this.focusedDay = clamp(day, parseISODate(this.min), parseISODate(this.max));
655
- }
656
- determineValidity(date) {
657
- var _a, _b;
658
- const inputValue = (_b = (_a = this.datePickerInput) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "";
659
- const badInput = inputValue !== "" && date == null;
660
- const valueMissing = this.required && date == null;
661
- const rangeOverflow = date ? !inRange(date, null, parseISODate(this.max)) : false;
662
- const rangeUnderflow = date ? !inRange(date, parseISODate(this.min)) : false;
663
- this.validity = {
664
- patternMismatch: false,
665
- customError: false,
666
- stepMismatch: false,
667
- tooLong: false,
668
- tooShort: false,
669
- typeMismatch: false,
670
- valueMissing,
671
- badInput,
672
- rangeUnderflow,
673
- rangeOverflow,
674
- valid: !(valueMissing || badInput || rangeUnderflow || rangeOverflow),
675
- };
676
- }
677
- setValue(date) {
678
- const newValue = printISODate(date);
679
- if (newValue === this.value) {
680
- return;
681
- }
682
- this.value = newValue;
683
- this.duetChange.emit({
684
- component: "duet-date-picker",
685
- value: this.value,
686
- valueAsDate: date,
687
- });
688
- }
689
- handleDocumentClick(e) {
690
- if (!this.open) {
691
- return;
692
- }
693
- // the dialog and the button aren't considered clicks outside.
694
- // dialog for obvious reasons, but the button needs to be skipped
695
- // so that two things are possible:
696
- //
697
- // a) clicking again on the button when dialog is open should close the modal.
698
- // without skipping the button here, we would see a click outside
699
- // _and_ a click on the button, so the `open` state goes
700
- // open -> close (click outside) -> open (click button)
701
- //
702
- // b) clicking another date picker's button should close the current calendar
703
- // and open the new one. this means we can't stopPropagation() on the button itself
704
- const isClickOutside = e
705
- .composedPath()
706
- .every(node => node !== this.dialogWrapperNode && node !== this.datePickerButton);
707
- if (isClickOutside) {
708
- this.hide(false);
709
- }
710
- }
711
- /**
712
- * render() function
713
- * Always the last one in the class.
714
- */
715
- render() {
716
- const valueAsDate = parseISODate(this.value);
717
- const selectedYear = (valueAsDate || this.focusedDay).getFullYear();
718
- const focusedMonth = this.focusedDay.getMonth();
719
- const focusedYear = this.focusedDay.getFullYear();
720
- const text = i18n[this.language];
721
- const minDate = parseISODate(this.min);
722
- const maxDate = parseISODate(this.max);
723
- const prevMonthDisabled = minDate != null && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;
724
- const nextMonthDisabled = maxDate != null && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;
725
- let minYear = selectedYear - this.incrementYears;
726
- let maxYear = selectedYear + this.incrementYears;
727
- if (minDate) {
728
- minYear = Math.max(minYear, minDate.getFullYear());
729
- }
730
- if (maxDate) {
731
- maxYear = Math.min(maxYear, maxDate.getFullYear());
732
- }
733
- return (index.h(index.Host, { class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, index.h("div", { class: "duet-date" }, index.h(DatePickerInput, { value: this.value, valueAsDate: valueAsDate, formattedValue: this.inputValue, language: this.language, onInput: this.handleInputChange, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.toggleOpen, name: this.name, disabled: this.disabled, error: this.error, role: this.role, required: this.required, theme: this.theme, tooltip: this.tooltip, tooltipDirection: this.tooltipDirection, labelHidden: this.labelHidden, placeholder: this.placeholder, inputLabel: this.label, identifier: this.identifier, buttonRef: element => (this.datePickerButton = element), inputRef: element => (this.datePickerInput = element), accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy, echoPlaceholder: this.echoPlaceholder, caption: this.caption })), index.h("div", { class: {
734
- "duet-theme-turva": this.theme === "turva",
735
- "duet-date-dialog": true,
736
- left: this.direction === "left",
737
- error: !!this.error,
738
- active: this.open,
739
- }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, index.h(focusUtils.FocusGuard, { moveFocusTo: this.focusedDayNode }), index.h("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, index.h("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), index.h("div", { class: "duet-date-dialog-mobile-header" }, index.h("duet-label", { margin: "none" }, this.label), index.h("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, index.h("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), index.h("duet-visually-hidden", null, text.closeLabel))), index.h("div", { class: "duet-date-dialog-header" }, index.h("div", { class: "duet-date-dialog-dropdowns" }, index.h("duet-visually-hidden", null, index.h("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), index.h("duet-visually-hidden", null, index.h("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), index.h("div", { class: "duet-date-dialog-select" }, index.h("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (index.h("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), index.h("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, index.h("span", null, text.monthLabelsShort[focusedMonth]), index.h("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), index.h("duet-visually-hidden", null, index.h("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), index.h("div", { class: "duet-date-dialog-select" }, index.h("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (index.h("option", { key: year, selected: year === focusedYear }, year)))), index.h("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, index.h("span", null, this.focusedDay.getFullYear()), index.h("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), index.h("div", { class: "duet-date-dialog-buttons" }, index.h("duet-action-button", { accessibleLabel: i18n[this.language].prevMonthLabel, actionName: i18n[this.language].prevMonthLabel, class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), index.h("duet-action-button", { accessibleLabel: i18n[this.language].nextMonthLabel, actionName: i18n[this.language].nextMonthLabel, class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), index.h(DatePickerMonth, { selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), index.h(focusUtils.FocusGuard, { moveFocusTo: this.closeButtonNode }))));
740
- }
741
- get element() { return index.getElement(this); }
742
- static get watchers() { return {
743
- "min": ["updateValidity"],
744
- "max": ["updateValidity"],
745
- "value": ["updateValidity", "updateInternalValue"],
746
- "required": ["updateValidity"]
747
- }; }
419
+ this.enableActiveFocus = () => {
420
+ this.focusTarget = "day-button";
421
+ };
422
+ this.disableActiveFocus = () => {
423
+ this.focusTarget = null;
424
+ };
425
+ this.toggleOpen = (e) => {
426
+ e.preventDefault();
427
+ this.open ? this.hide(false) : this.show();
428
+ };
429
+ this.handleBlur = (event) => {
430
+ event.stopPropagation();
431
+ this.duetBlur.emit({
432
+ component: "duet-date-picker",
433
+ });
434
+ };
435
+ this.handleFocus = (event) => {
436
+ event.stopPropagation();
437
+ this.duetFocus.emit({
438
+ component: "duet-date-picker",
439
+ });
440
+ };
441
+ this.handleTouchStart = (event) => {
442
+ const touch = event.changedTouches[0];
443
+ this.initialTouchX = touch.pageX;
444
+ this.initialTouchY = touch.pageY;
445
+ };
446
+ this.handleTouchMove = (event) => {
447
+ event.preventDefault();
448
+ };
449
+ this.handleTouchEnd = (event) => {
450
+ const touch = event.changedTouches[0];
451
+ const distX = touch.pageX - this.initialTouchX; // get horizontal dist traveled
452
+ const distY = touch.pageY - this.initialTouchY; // get vertical dist traveled
453
+ const threshold = 70;
454
+ const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;
455
+ const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0;
456
+ if (isHorizontalSwipe) {
457
+ this.addMonths(distX < 0 ? 1 : -1);
458
+ }
459
+ else if (isDownwardsSwipe) {
460
+ this.hide();
461
+ event.preventDefault();
462
+ }
463
+ this.initialTouchY = null;
464
+ this.initialTouchX = null;
465
+ };
466
+ this.handleNextMonthClick = (event) => {
467
+ event.preventDefault();
468
+ this.addMonths(1);
469
+ };
470
+ this.handlePreviousMonthClick = (event) => {
471
+ event.preventDefault();
472
+ this.addMonths(-1);
473
+ };
474
+ this.handleEscKey = createShortcuts({
475
+ Escape: () => this.hide(),
476
+ Esc: () => this.hide(), // IE-specific
477
+ });
478
+ this.handleKeyboardNavigation = createShortcuts({
479
+ ArrowRight: () => this.addDays(1),
480
+ Right: () => this.addDays(1), // IE does not have "Arrow" prefix
481
+ ArrowLeft: () => this.addDays(-1),
482
+ Left: () => this.addDays(-1),
483
+ ArrowDown: () => this.addDays(7),
484
+ Down: () => this.addDays(7),
485
+ ArrowUp: () => this.addDays(-7),
486
+ Up: () => this.addDays(-7),
487
+ Home: () => this.startOfWeek(),
488
+ End: () => this.endOfWeek(),
489
+ PageUp: () => this.addMonths(-1),
490
+ PageDown: () => this.addMonths(1),
491
+ "Shift+PageUp": () => this.addYears(-1),
492
+ "Shift+PageDown": () => this.addYears(1),
493
+ });
494
+ this.handleDaySelect = (_event, day) => {
495
+ const min = parseISODate(this.min);
496
+ const max = parseISODate(this.max);
497
+ this.determineValidity(day);
498
+ if (inRange(day, min, max)) {
499
+ this.setValue(day);
500
+ this.hide();
501
+ }
502
+ };
503
+ this.handleMonthSelect = e => {
504
+ this.setMonth(parseInt(e.target.value, 10));
505
+ };
506
+ this.handleYearSelect = e => {
507
+ this.setYear(parseInt(e.target.value, 10));
508
+ };
509
+ this.handleInputChange = (e) => {
510
+ this.inputValue = e.detail.value;
511
+ const parsed = parseDate(this.inputValue);
512
+ this.determineValidity(parsed);
513
+ if (parsed || this.inputValue === "") {
514
+ this.setValue(parsed);
515
+ }
516
+ };
517
+ this.open = false;
518
+ this.focusedDay = new Date();
519
+ this.inputValue = "";
520
+ this.theme = "";
521
+ this.expand = false;
522
+ this.name = "";
523
+ this.identifier = "";
524
+ this.label = "";
525
+ this.caption = undefined;
526
+ this.margin = "auto";
527
+ this.language = languageUtils.getLanguage();
528
+ this.placeholderDefaults = {
529
+ fi: "pp.kk.vvvv",
530
+ en: "dd.mm.yyyy",
531
+ sv: "dd.mm.åååå",
532
+ };
533
+ this.placeholder = languageUtils.getLocaleString(this.placeholderDefaults, this.language);
534
+ this.echoPlaceholder = false;
535
+ this.disabled = false;
536
+ this.error = "";
537
+ this.labelHidden = false;
538
+ this.role = undefined;
539
+ this.accessibleActiveDescendant = undefined;
540
+ this.accessibleControls = undefined;
541
+ this.accessibleOwns = undefined;
542
+ this.accessibleDescribedBy = undefined;
543
+ this.required = false;
544
+ this.direction = "right";
545
+ this.tooltip = "";
546
+ this.tooltipDirection = "auto";
547
+ this.value = "";
548
+ this.min = "";
549
+ this.max = "";
550
+ this.incrementYears = 10;
551
+ this.validity = undefined;
552
+ }
553
+ updateValidity() {
554
+ this.determineValidity(parseISODate(this.value));
555
+ }
556
+ updateInternalValue() {
557
+ const parsedValue = parseISODate(this.value);
558
+ const parsedInputValue = parseDate(this.inputValue);
559
+ // an invalid or empty value should clear the input
560
+ if (!parsedValue) {
561
+ this.inputValue = "";
562
+ }
563
+ // but otherwise only update user's input if the new value is different to user's input
564
+ else if (!isEqual(parsedValue, parsedInputValue)) {
565
+ this.inputValue = printDate(parsedValue);
566
+ }
567
+ }
568
+ /**
569
+ * Component lifecycle events.
570
+ */
571
+ componentWillLoad() {
572
+ themeableComponent.inheritGlobalTheme(this);
573
+ this.determineValidity(parseISODate(this.value));
574
+ this.updateInternalValue();
575
+ }
576
+ componentDidUpdate() {
577
+ // we want to run this code _after_ render
578
+ // to ensure all elements are visible (and thus focusable)
579
+ // hence using componentDidUpdate
580
+ switch (this.focusTarget) {
581
+ case "toggle-button":
582
+ this.datePickerButton.focus();
583
+ this.focusTarget = null;
584
+ break;
585
+ case "day-button":
586
+ // we don't clear focusTarget here since this is cleared
587
+ // already when focus is moved out of calendar table
588
+ this.focusedDayNode.focus();
589
+ break;
590
+ case "month-select":
591
+ this.monthSelectNode.focus();
592
+ this.focusTarget = null;
593
+ break;
594
+ }
595
+ }
596
+ connectedCallback() {
597
+ languageUtils.connectLanguageChangeObserver(this, { prop: "placeholder", defaults: "placeholderDefaults" });
598
+ }
599
+ disconnectedCallback() {
600
+ languageUtils.disconnectLanguageChangeObserver(this);
601
+ }
602
+ /**
603
+ * Sets focus on the date picker's input. Use this method instead of the global `focus()`.
604
+ */
605
+ async setFocus(options) {
606
+ this.datePickerInput.setFocus(options);
607
+ }
608
+ /**
609
+ * Show the calendar modal, moving focus to the calendar inside.
610
+ */
611
+ async show() {
612
+ this.open = true;
613
+ this.focusTarget = "month-select";
614
+ this.setFocusedDay(parseISODate(this.value) || new Date());
615
+ }
616
+ /**
617
+ * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus
618
+ * returning to the date picker's button. Default is true.
619
+ */
620
+ async hide(moveFocusToButton = true) {
621
+ this.open = false;
622
+ if (moveFocusToButton) {
623
+ this.focusTarget = "toggle-button";
624
+ }
625
+ }
626
+ addDays(days) {
627
+ this.setFocusedDay(addDays(this.focusedDay, days));
628
+ }
629
+ addMonths(months) {
630
+ this.setMonth(this.focusedDay.getMonth() + months);
631
+ }
632
+ addYears(years) {
633
+ this.setYear(this.focusedDay.getFullYear() + years);
634
+ }
635
+ startOfWeek() {
636
+ this.setFocusedDay(startOfWeek(this.focusedDay));
637
+ }
638
+ endOfWeek() {
639
+ this.setFocusedDay(endOfWeek(this.focusedDay));
640
+ }
641
+ setMonth(month) {
642
+ const min = setMonth(startOfMonth(this.focusedDay), month);
643
+ const max = endOfMonth(min);
644
+ const date = setMonth(this.focusedDay, month);
645
+ this.setFocusedDay(clamp(date, min, max));
646
+ }
647
+ setYear(year) {
648
+ const min = setYear(startOfMonth(this.focusedDay), year);
649
+ const max = endOfMonth(min);
650
+ const date = setYear(this.focusedDay, year);
651
+ this.setFocusedDay(clamp(date, min, max));
652
+ }
653
+ setFocusedDay(day) {
654
+ this.focusedDay = clamp(day, parseISODate(this.min), parseISODate(this.max));
655
+ }
656
+ determineValidity(date) {
657
+ var _a, _b;
658
+ const inputValue = (_b = (_a = this.datePickerInput) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "";
659
+ const badInput = inputValue !== "" && date == null;
660
+ const valueMissing = this.required && date == null;
661
+ const rangeOverflow = date ? !inRange(date, null, parseISODate(this.max)) : false;
662
+ const rangeUnderflow = date ? !inRange(date, parseISODate(this.min)) : false;
663
+ this.validity = {
664
+ patternMismatch: false,
665
+ customError: false,
666
+ stepMismatch: false,
667
+ tooLong: false,
668
+ tooShort: false,
669
+ typeMismatch: false,
670
+ valueMissing,
671
+ badInput,
672
+ rangeUnderflow,
673
+ rangeOverflow,
674
+ valid: !(valueMissing || badInput || rangeUnderflow || rangeOverflow),
675
+ };
676
+ }
677
+ setValue(date) {
678
+ const newValue = printISODate(date);
679
+ if (newValue === this.value) {
680
+ return;
681
+ }
682
+ this.value = newValue;
683
+ this.duetChange.emit({
684
+ component: "duet-date-picker",
685
+ value: this.value,
686
+ valueAsDate: date,
687
+ });
688
+ }
689
+ handleDocumentClick(e) {
690
+ if (!this.open) {
691
+ return;
692
+ }
693
+ // the dialog and the button aren't considered clicks outside.
694
+ // dialog for obvious reasons, but the button needs to be skipped
695
+ // so that two things are possible:
696
+ //
697
+ // a) clicking again on the button when dialog is open should close the modal.
698
+ // without skipping the button here, we would see a click outside
699
+ // _and_ a click on the button, so the `open` state goes
700
+ // open -> close (click outside) -> open (click button)
701
+ //
702
+ // b) clicking another date picker's button should close the current calendar
703
+ // and open the new one. this means we can't stopPropagation() on the button itself
704
+ const isClickOutside = e
705
+ .composedPath()
706
+ .every(node => node !== this.dialogWrapperNode && node !== this.datePickerButton);
707
+ if (isClickOutside) {
708
+ this.hide(false);
709
+ }
710
+ }
711
+ /**
712
+ * render() function
713
+ * Always the last one in the class.
714
+ */
715
+ render() {
716
+ const valueAsDate = parseISODate(this.value);
717
+ const selectedYear = (valueAsDate || this.focusedDay).getFullYear();
718
+ const focusedMonth = this.focusedDay.getMonth();
719
+ const focusedYear = this.focusedDay.getFullYear();
720
+ const text = i18n[this.language];
721
+ const minDate = parseISODate(this.min);
722
+ const maxDate = parseISODate(this.max);
723
+ const prevMonthDisabled = minDate != null && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;
724
+ const nextMonthDisabled = maxDate != null && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;
725
+ let minYear = selectedYear - this.incrementYears;
726
+ let maxYear = selectedYear + this.incrementYears;
727
+ if (minDate) {
728
+ minYear = Math.max(minYear, minDate.getFullYear());
729
+ }
730
+ if (maxDate) {
731
+ maxYear = Math.min(maxYear, maxDate.getFullYear());
732
+ }
733
+ return (index.h(index.Host, { class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, index.h("div", { class: "duet-date" }, index.h(DatePickerInput, { value: this.value, valueAsDate: valueAsDate, formattedValue: this.inputValue, language: this.language, onInput: this.handleInputChange, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.toggleOpen, name: this.name, disabled: this.disabled, error: this.error, role: this.role, required: this.required, theme: this.theme, tooltip: this.tooltip, tooltipDirection: this.tooltipDirection, labelHidden: this.labelHidden, placeholder: this.placeholder, inputLabel: this.label, identifier: this.identifier, buttonRef: element => (this.datePickerButton = element), inputRef: element => (this.datePickerInput = element), accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy, echoPlaceholder: this.echoPlaceholder, caption: this.caption })), index.h("div", { class: {
734
+ "duet-theme-turva": this.theme === "turva",
735
+ "duet-date-dialog": true,
736
+ left: this.direction === "left",
737
+ error: !!this.error,
738
+ active: this.open,
739
+ }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, index.h(focusUtils.FocusGuard, { moveFocusTo: this.focusedDayNode }), index.h("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, index.h("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), index.h("div", { class: "duet-date-dialog-mobile-header" }, index.h("duet-label", { margin: "none" }, this.label), index.h("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, index.h("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), index.h("duet-visually-hidden", null, text.closeLabel))), index.h("div", { class: "duet-date-dialog-header" }, index.h("div", { class: "duet-date-dialog-dropdowns" }, index.h("duet-visually-hidden", null, index.h("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), index.h("duet-visually-hidden", null, index.h("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), index.h("div", { class: "duet-date-dialog-select" }, index.h("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (index.h("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), index.h("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, index.h("span", null, text.monthLabelsShort[focusedMonth]), index.h("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), index.h("duet-visually-hidden", null, index.h("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), index.h("div", { class: "duet-date-dialog-select" }, index.h("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (index.h("option", { key: year, selected: year === focusedYear }, year)))), index.h("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, index.h("span", null, this.focusedDay.getFullYear()), index.h("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), index.h("div", { class: "duet-date-dialog-buttons" }, index.h("duet-action-button", { accessibleLabel: i18n[this.language].prevMonthLabel, actionName: i18n[this.language].prevMonthLabel, class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), index.h("duet-action-button", { accessibleLabel: i18n[this.language].nextMonthLabel, actionName: i18n[this.language].nextMonthLabel, class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), index.h(DatePickerMonth, { selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), index.h(focusUtils.FocusGuard, { moveFocusTo: this.closeButtonNode }))));
740
+ }
741
+ get element() { return index.getElement(this); }
742
+ static get watchers() { return {
743
+ "min": ["updateValidity"],
744
+ "max": ["updateValidity"],
745
+ "value": ["updateValidity", "updateInternalValue"],
746
+ "required": ["updateValidity"]
747
+ }; }
748
748
  };
749
749
  DuetDatePicker.style = duetDatePickerCss;
750
750