@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
@@ -3,1139 +3,1145 @@
3
3
  */
4
4
  import addIcon from "@duetds/icons/lib/assets/action-add";
5
5
  import subtractIcon from "@duetds/icons/lib/assets/action-subtract";
6
- import { h, Host } from "@stencil/core";
6
+ import { Build, h, Host } from "@stencil/core";
7
7
  import { inheritGlobalTheme } from "../../common";
8
8
  import { createID } from "../../utils/create-id";
9
- import { isArrowDownKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isBackspaceKey, } from "../../utils/keyboard-utils";
9
+ import { isArrowDownKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isBackspaceKey, subscribeTabbingChange, unsubscribeTabbingChange, } from "../../utils/keyboard-utils";
10
10
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocale, getLocaleString, } from "../../utils/language-utils";
11
11
  import { clamp, roundTo, SafeParseFloat } from "../../utils/math.utils";
12
12
  export class DuetNumberInput {
13
- constructor() {
14
- this.inputId = createID("DuetInput");
15
- /**
16
- * Component event handling.
17
- */
18
- this.handleFocus = () => {
19
- // This state is saved on focus so we can compare on blur to it.
20
- this.focusedValue = this.value;
21
- };
22
- this.handleKeyDown = (ev) => {
23
- if (isArrowRightKey(ev) || isArrowUpKey(ev)) {
24
- this.add(ev);
25
- }
26
- else if (isArrowDownKey(ev) || isArrowLeftKey(ev)) {
27
- this.subtract(ev);
28
- }
29
- else if (isBackspaceKey(ev)) {
30
- this.clearValue();
31
- }
32
- };
33
- this.handleChange = (ev) => {
34
- const input = ev.target;
35
- if (input && input.value) {
36
- try {
37
- let value = SafeParseFloat(input.value, this.locale);
38
- // Make sure that everything works if the user clears the input and
39
- // starts typing non-numeric characters.
40
- if (isNaN(value) || value == null) {
41
- value = this.min || 0;
42
- }
43
- this.setValue(value);
44
- this.duetInput.emit({
45
- component: "duet-number-input",
46
- originalEvent: ev,
47
- value: SafeParseFloat(this.value, this.locale).toString(),
48
- valueAsNumber: value,
49
- });
50
- }
51
- catch (e) {
52
- this.duetInput.emit({
53
- component: "duet-number-input",
54
- originalEvent: ev,
55
- value: null,
56
- valueAsNumber: null,
57
- });
58
- }
59
- }
60
- else {
61
- this.duetInput.emit({
62
- component: "duet-number-input",
63
- originalEvent: ev,
64
- value: null,
65
- valueAsNumber: null,
66
- });
67
- }
68
- };
69
- this.handleBlur = (ev) => {
70
- const input = ev.target;
71
- if (!input) {
72
- return;
73
- }
74
- if (input.value) {
75
- // On blur we want to make sure that the user input is between the min and max values,
76
- // and also round it up or down to the nearest step.
77
- try {
78
- let value = SafeParseFloat(input.value, this.locale);
79
- if (this.rounding) {
80
- value = roundTo(value, this.step);
81
- }
82
- value = clamp(value, this.min, this.max);
83
- if (value !== SafeParseFloat(this.value, this.locale) ||
84
- value !== SafeParseFloat(this.focusedValue, this.locale)) {
85
- this.setValue(value);
86
- this.emitChange(ev);
87
- }
88
- }
89
- catch (e) {
90
- this.emitNull(ev);
91
- }
92
- }
93
- else {
94
- this.emitNull(ev);
95
- }
96
- };
97
- /**
98
- * Local methods.
99
- */
100
- this.emitChange = (ev) => {
101
- const currentValue = SafeParseFloat(this.value, this.locale);
102
- this.duetChange.emit({
103
- originalEvent: ev,
104
- value: currentValue.toString(),
105
- valueAsNumber: currentValue,
106
- component: "duet-number-input",
107
- });
108
- };
109
- this.emitNull = (ev) => {
110
- this.duetChange.emit({
111
- originalEvent: ev,
112
- value: null,
113
- valueAsNumber: null,
114
- component: "duet-number-input",
115
- });
116
- };
117
- this.localizeValue = (value) => {
118
- // Returns a localized string that can be used as input value.
119
- return value.toLocaleString(this.locale);
120
- };
121
- this.setValue = (value) => {
122
- // Set the localized prop value.
123
- this.value = this.localizeValue(value);
124
- // Finally also set the visible input value and unit.
125
- this.duetInputElement.value = `${this.value} ${this.unit}`;
126
- };
127
- this.add = (ev) => {
128
- // If this was called via a html button, prevent the default functionality
129
- // to not trigger submit accidentally when used inside a form.
130
- if (ev) {
131
- ev.preventDefault();
132
- }
133
- const cleanedValue = SafeParseFloat(this.value, this.locale);
134
- // Only fire change event when necessary
135
- if (cleanedValue === this.max) {
136
- return;
137
- }
138
- // in cases where no value set, incrementing should go to min
139
- let newValue = cleanedValue == null ? this.min : cleanedValue + this.step;
140
- // handle cases where value is not multiple of step
141
- // e.g. if someone enters 199, with a step of 100, add should go to 200
142
- // and if someone enters 101, add should also go to 200
143
- if (newValue % this.step !== 0) {
144
- const adjustment = newValue % this.step;
145
- newValue -= adjustment;
146
- }
147
- const clampedValue = clamp(newValue, this.min, this.max);
148
- this.value = this.localizeValue(clampedValue);
149
- this.emitChange(ev);
150
- };
151
- this.subtract = (ev) => {
152
- // If this was called via a html button, prevent the default functionality
153
- // to not trigger submit accidentally when used inside a form.
154
- if (ev) {
155
- ev.preventDefault();
156
- }
157
- const currentValue = SafeParseFloat(this.value, this.locale);
158
- // Only fire change event when necessary.
159
- if (currentValue === this.min) {
160
- return;
161
- }
162
- let newValue = currentValue - this.step;
163
- // handle cases where value is not multiple of step
164
- // if someone enters 199, with a step of 100, subtract should go to 100
165
- // and if someone enters 101, subtract should also go to 100
166
- if (newValue % this.step !== 0) {
167
- const adjustment = this.step - (newValue % this.step);
168
- newValue += adjustment;
169
- }
170
- newValue = clamp(newValue, this.min, this.max);
171
- this.value = this.localizeValue(newValue);
172
- this.emitChange(ev);
173
- };
174
- this.language = getLanguage();
175
- this.locale = getLocale(this.language).locale;
176
- this.unit = getLocale(this.language).money;
177
- this.focusedValue = undefined;
178
- this.accessibleActiveDescendant = undefined;
179
- this.accessibleControls = undefined;
180
- this.accessibleDetails = undefined;
181
- this.accessibleLabelledBy = undefined;
182
- this.accessibleDescription = undefined;
183
- this.accessibleOwns = undefined;
184
- this.accessibleDescribedBy = undefined;
185
- this.accessibleLiveDefaults = {
186
- fi: "{current} euroa valittuna",
187
- en: "{current} euros selected",
188
- sv: "{current} euro valt",
189
- };
190
- this.accessibleLive = getLocaleString(this.accessibleLiveDefaults, this.language);
191
- this.accessibleLiveEnabled = true;
192
- this.accessibleAddDefaults = {
193
- fi: "Lisää summaan",
194
- en: "Add to the amount",
195
- sv: "Lägg till beloppet",
196
- };
197
- this.accessibleAdd = getLocaleString(this.accessibleAddDefaults, this.language);
198
- this.accessibleSubtractDefaults = {
199
- fi: "Vähennä summasta",
200
- en: "Subtract from the amount",
201
- sv: "Dra från beloppet",
202
- };
203
- this.accessibleSubtract = getLocaleString(this.accessibleSubtractDefaults, this.language);
204
- this.theme = "";
205
- this.margin = "auto";
206
- this.expand = false;
207
- this.identifier = undefined;
208
- this.min = 0;
209
- this.labelDefaults = {
210
- fi: "Nimilappu",
211
- en: "Label",
212
- sv: "Etikett",
213
- };
214
- this.label = getLocaleString(this.labelDefaults, this.language);
215
- this.labelHidden = false;
216
- this.max = 1000000;
217
- this.name = undefined;
218
- this.error = "";
219
- this.tooltip = "";
220
- this.step = 5000;
221
- this.rounding = true;
222
- this.role = undefined;
223
- this.disabled = false;
224
- this.required = false;
225
- this.value = undefined;
226
- }
227
- /**
228
- * Component lifecycle events.
229
- */
230
- componentWillLoad() {
231
- inheritGlobalTheme(this);
232
- // Format the number value to a localeString initially.
233
- if (this.value) {
234
- this.value = this.localizeValue(SafeParseFloat(this.value, this.locale));
235
- }
236
- }
237
- connectedCallback() {
238
- connectLanguageChangeObserver(this, [
239
- { prop: "accessibleLive", defaults: "accessibleLiveDefaults" },
240
- { prop: "accessibleAdd", defaults: "accessibleAddDefaults" },
241
- { prop: "accessibleSubtract", defaults: "accessibleSubtractDefaults" },
242
- { prop: "label", defaults: "labelDefaults" },
243
- ]);
244
- }
245
- disconnectedCallback() {
246
- disconnectLanguageChangeObserver(this);
247
- }
248
- /**
249
- * Sets focus on the specified `duet-number-input`. Use this method instead of the global
250
- * `input.focus()`.
251
- */
252
- async setFocus(options) {
253
- this.duetInputElement.setFocus(options);
254
- }
255
- /**
256
- * Returns a promise which resolves to the current input numeric value.
257
- */
258
- async getValueAsNumber() {
259
- const currentValue = SafeParseFloat(this.value, this.locale);
260
- return this.value === undefined || this.value === null || isNaN(currentValue) ? null : currentValue;
261
- }
262
- clearValue() {
263
- this.value = null;
264
- this.duetInputElement.value = "";
265
- }
266
- formatAnnouncement() {
267
- const current = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
268
- if (current == null) {
269
- return "";
270
- }
271
- return this.accessibleLive.replace("{current}", current.toString(10));
272
- }
273
- /**
274
- * render() function
275
- * Always the last one in the class.
276
- */
277
- render() {
278
- const identifier = this.identifier || this.inputId;
279
- const maxlength = `${this.localizeValue(this.max)} ${this.unit}`.length;
280
- const cleanedValue = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
281
- return (h(Host, { class: {
282
- "duet-theme-turva": this.theme === "turva",
283
- "duet-expand": this.expand,
284
- "duet-m-0": this.margin === "none",
285
- } }, h("div", { class: "duet-number-container" }, h("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("div", { class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", null, this.accessibleSubtract, " ", this.step), h("duet-icon", { icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", null, this.accessibleAdd, " ", this.step), h("duet-icon", { icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
286
- }
287
- static get is() { return "duet-number-input"; }
288
- static get encapsulation() { return "scoped"; }
289
- static get originalStyleUrls() {
290
- return {
291
- "$": ["duet-number-input.scss"]
292
- };
293
- }
294
- static get styleUrls() {
295
- return {
296
- "$": ["duet-number-input.css"]
297
- };
298
- }
299
- static get properties() {
300
- return {
301
- "language": {
302
- "type": "string",
303
- "mutable": true,
304
- "complexType": {
305
- "original": "DuetLanguage",
306
- "resolved": "\"en\" | \"fi\" | \"sv\"",
307
- "references": {
308
- "DuetLanguage": {
309
- "location": "import",
310
- "path": "../../common-types",
311
- "id": "src/common-types.d.ts::DuetLanguage"
13
+ constructor() {
14
+ this.inputId = createID("DuetInput");
15
+ /**
16
+ * Component event handling.
17
+ */
18
+ this.handleFocus = () => {
19
+ // This state is saved on focus so we can compare on blur to it.
20
+ this.focusedValue = this.value;
21
+ };
22
+ this.handleKeyDown = (ev) => {
23
+ if (isArrowRightKey(ev) || isArrowUpKey(ev)) {
24
+ this.add(ev);
312
25
  }
313
- }
314
- },
315
- "required": false,
316
- "optional": false,
317
- "docs": {
318
- "tags": [{
319
- "name": "deprecated",
320
- "text": "this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing"
321
- }, {
322
- "name": "default",
323
- "text": "\"fi\""
324
- }],
325
- "text": "The currently active language. This setting changes the accessible labels to match the\nchosen language."
326
- },
327
- "attribute": "language",
328
- "reflect": false,
329
- "defaultValue": "getLanguage()"
330
- },
331
- "locale": {
332
- "type": "string",
333
- "mutable": false,
334
- "complexType": {
335
- "original": "DuetLocale",
336
- "resolved": "\"en-GB\" | \"en-US\" | \"fi-FI\" | \"sv-SE\"",
337
- "references": {
338
- "DuetLocale": {
339
- "location": "import",
340
- "path": "../../common-types",
341
- "id": "src/common-types.d.ts::DuetLocale"
26
+ else if (isArrowDownKey(ev) || isArrowLeftKey(ev)) {
27
+ this.subtract(ev);
342
28
  }
343
- }
344
- },
345
- "required": false,
346
- "optional": false,
347
- "docs": {
348
- "tags": [],
349
- "text": "Locale used to format the entered value."
350
- },
351
- "attribute": "locale",
352
- "reflect": false,
353
- "defaultValue": "getLocale(this.language).locale"
354
- },
355
- "unit": {
356
- "type": "string",
357
- "mutable": false,
358
- "complexType": {
359
- "original": "string",
360
- "resolved": "string",
361
- "references": {}
362
- },
363
- "required": false,
364
- "optional": false,
365
- "docs": {
366
- "tags": [],
367
- "text": "Unit for the number input."
368
- },
369
- "attribute": "unit",
370
- "reflect": false,
371
- "defaultValue": "getLocale(this.language).money"
372
- },
373
- "accessibleActiveDescendant": {
374
- "type": "string",
375
- "mutable": false,
376
- "complexType": {
377
- "original": "string",
378
- "resolved": "string",
379
- "references": {}
380
- },
381
- "required": false,
382
- "optional": false,
383
- "docs": {
384
- "tags": [],
385
- "text": "Indicates the id of a related component\u2019s visually focused element."
386
- },
387
- "attribute": "accessible-active-descendant",
388
- "reflect": false
389
- },
390
- "accessibleControls": {
391
- "type": "string",
392
- "mutable": false,
393
- "complexType": {
394
- "original": "string",
395
- "resolved": "string",
396
- "references": {}
397
- },
398
- "required": false,
399
- "optional": false,
400
- "docs": {
401
- "tags": [],
402
- "text": "Use this prop to add an aria-controls attribute. Use the attribute to\nindicate the id of a component controlled by this component."
403
- },
404
- "attribute": "accessible-controls",
405
- "reflect": false
406
- },
407
- "accessibleDetails": {
408
- "type": "string",
409
- "mutable": false,
410
- "complexType": {
411
- "original": "string",
412
- "resolved": "string",
413
- "references": {}
414
- },
415
- "required": false,
416
- "optional": false,
417
- "docs": {
418
- "tags": [],
419
- "text": "Details of the component"
420
- },
421
- "attribute": "accessible-details",
422
- "reflect": false,
423
- "defaultValue": "undefined"
424
- },
425
- "accessibleLabelledBy": {
426
- "type": "string",
427
- "mutable": false,
428
- "complexType": {
429
- "original": "string",
430
- "resolved": "string",
431
- "references": {}
432
- },
433
- "required": false,
434
- "optional": false,
435
- "docs": {
436
- "tags": [],
437
- "text": "String of id's that indicate alternative labels elements"
438
- },
439
- "attribute": "accessible-labelled-by",
440
- "reflect": false,
441
- "defaultValue": "undefined"
442
- },
443
- "accessibleDescription": {
444
- "type": "string",
445
- "mutable": false,
446
- "complexType": {
447
- "original": "string",
448
- "resolved": "string",
449
- "references": {}
450
- },
451
- "required": false,
452
- "optional": false,
453
- "docs": {
454
- "tags": [],
455
- "text": "Aria description the button"
456
- },
457
- "attribute": "accessible-description",
458
- "reflect": false,
459
- "defaultValue": "undefined"
460
- },
461
- "accessibleOwns": {
462
- "type": "string",
463
- "mutable": false,
464
- "complexType": {
465
- "original": "string",
466
- "resolved": "string",
467
- "references": {}
468
- },
469
- "required": false,
470
- "optional": false,
471
- "docs": {
472
- "tags": [],
473
- "text": "Indicates the id of a component owned by the input."
474
- },
475
- "attribute": "accessible-owns",
476
- "reflect": false
477
- },
478
- "accessibleDescribedBy": {
479
- "type": "string",
480
- "mutable": false,
481
- "complexType": {
482
- "original": "string",
483
- "resolved": "string",
484
- "references": {}
485
- },
486
- "required": false,
487
- "optional": false,
488
- "docs": {
489
- "tags": [],
490
- "text": "Indicates the id of a component that describes the input."
491
- },
492
- "attribute": "accessible-described-by",
493
- "reflect": false
494
- },
495
- "accessibleLiveDefaults": {
496
- "type": "string",
497
- "mutable": false,
498
- "complexType": {
499
- "original": "DuetLangObject | string",
500
- "resolved": "DuetLangObject | string",
501
- "references": {
502
- "DuetLangObject": {
503
- "location": "import",
504
- "path": "../../utils/language-utils",
505
- "id": "src/utils/language-utils.ts::DuetLangObject"
29
+ else if (isBackspaceKey(ev)) {
30
+ this.clearValue();
506
31
  }
507
- }
508
- },
509
- "required": false,
510
- "optional": false,
511
- "docs": {
512
- "tags": [{
513
- "name": "default",
514
- "text": "{fi: \"{current} euroa valittuna\", en: \"{current} euros selected\", sv: \"{current} valda euro\"}"
515
- }],
516
- "text": "Defaults for accessibleLive"
517
- },
518
- "attribute": "accessible-live-default",
519
- "reflect": false,
520
- "defaultValue": "{\n fi: \"{current} euroa valittuna\",\n en: \"{current} euros selected\",\n sv: \"{current} euro valt\",\n }"
521
- },
522
- "accessibleLive": {
523
- "type": "string",
524
- "mutable": true,
525
- "complexType": {
526
- "original": "string",
527
- "resolved": "string",
528
- "references": {}
529
- },
530
- "required": false,
531
- "optional": false,
532
- "docs": {
533
- "tags": [{
534
- "name": "default",
535
- "text": "{fi: \"{current} euroa valittuna\", en: \"{current} euros selected\", sv: \"{current} valda euro\"}"
536
- }],
537
- "text": "Format of message used to announce current amount when switching between amounts.\nThe string {current} is replaced with the current amount."
538
- },
539
- "attribute": "accessible-live",
540
- "reflect": false,
541
- "defaultValue": "getLocaleString(this.accessibleLiveDefaults, this.language)"
542
- },
543
- "accessibleLiveEnabled": {
544
- "type": "boolean",
545
- "mutable": false,
546
- "complexType": {
547
- "original": "boolean",
548
- "resolved": "boolean",
549
- "references": {}
550
- },
551
- "required": false,
552
- "optional": false,
553
- "docs": {
554
- "tags": [],
555
- "text": "Disables the aria-live messaging used internally in this component. This could be useful when you want to use custom aria-live messages instead."
556
- },
557
- "attribute": "accessible-live-enabled",
558
- "reflect": false,
559
- "defaultValue": "true"
560
- },
561
- "accessibleAddDefaults": {
562
- "type": "string",
563
- "mutable": false,
564
- "complexType": {
565
- "original": "DuetLangObject | string",
566
- "resolved": "DuetLangObject | string",
567
- "references": {
568
- "DuetLangObject": {
569
- "location": "import",
570
- "path": "../../utils/language-utils",
571
- "id": "src/utils/language-utils.ts::DuetLangObject"
32
+ };
33
+ this.handleChange = (ev) => {
34
+ const input = ev.target;
35
+ if (input && input.value) {
36
+ try {
37
+ let value = SafeParseFloat(input.value, this.locale);
38
+ // Make sure that everything works if the user clears the input and
39
+ // starts typing non-numeric characters.
40
+ if (isNaN(value) || value == null) {
41
+ value = this.min || 0;
42
+ }
43
+ this.setValue(value);
44
+ this.duetInput.emit({
45
+ component: "duet-number-input",
46
+ originalEvent: ev,
47
+ value: SafeParseFloat(this.value, this.locale).toString(),
48
+ valueAsNumber: value,
49
+ });
50
+ }
51
+ catch (e) {
52
+ this.duetInput.emit({
53
+ component: "duet-number-input",
54
+ originalEvent: ev,
55
+ value: null,
56
+ valueAsNumber: null,
57
+ });
58
+ }
572
59
  }
573
- }
574
- },
575
- "required": false,
576
- "optional": false,
577
- "docs": {
578
- "tags": [{
579
- "name": "default",
580
- "text": "{fi: \"Lis\u00E4\u00E4 summaan\", en: \"Add to the amount\", sv: \"L\u00E4gg till beloppet\"}"
581
- }],
582
- "text": "Defaults for accessibleAdd"
583
- },
584
- "attribute": "accessible-add-default",
585
- "reflect": false,
586
- "defaultValue": "{\n fi: \"Lis\u00E4\u00E4 summaan\",\n en: \"Add to the amount\",\n sv: \"L\u00E4gg till beloppet\",\n }"
587
- },
588
- "accessibleAdd": {
589
- "type": "string",
590
- "mutable": true,
591
- "complexType": {
592
- "original": "string",
593
- "resolved": "string",
594
- "references": {}
595
- },
596
- "required": false,
597
- "optional": false,
598
- "docs": {
599
- "tags": [{
600
- "name": "default",
601
- "text": "{fi: \"Lis\u00E4\u00E4 summaan\", en: \"Add to the amount\", sv: \"L\u00E4gg till beloppet\"}"
602
- }],
603
- "text": "Accessible label for the add button that is read for screen reader users."
604
- },
605
- "attribute": "accessible-add",
606
- "reflect": false,
607
- "defaultValue": "getLocaleString(this.accessibleAddDefaults, this.language)"
608
- },
609
- "accessibleSubtractDefaults": {
610
- "type": "string",
611
- "mutable": false,
612
- "complexType": {
613
- "original": "DuetLangObject | string",
614
- "resolved": "DuetLangObject | string",
615
- "references": {
616
- "DuetLangObject": {
617
- "location": "import",
618
- "path": "../../utils/language-utils",
619
- "id": "src/utils/language-utils.ts::DuetLangObject"
60
+ else {
61
+ this.duetInput.emit({
62
+ component: "duet-number-input",
63
+ originalEvent: ev,
64
+ value: null,
65
+ valueAsNumber: null,
66
+ });
620
67
  }
621
- }
622
- },
623
- "required": false,
624
- "optional": false,
625
- "docs": {
626
- "tags": [{
627
- "name": "default",
628
- "text": "{fi: \"V\u00E4henn\u00E4 summasta\", en: \"Subtract from the amount\", sv: \"Dra fr\u00E5n beloppet\"}"
629
- }],
630
- "text": "Defaults for accessibleSubtract"
631
- },
632
- "attribute": "accessible-subtract-defaults",
633
- "reflect": false,
634
- "defaultValue": "{\n fi: \"V\u00E4henn\u00E4 summasta\",\n en: \"Subtract from the amount\",\n sv: \"Dra fr\u00E5n beloppet\",\n }"
635
- },
636
- "accessibleSubtract": {
637
- "type": "string",
638
- "mutable": true,
639
- "complexType": {
640
- "original": "string",
641
- "resolved": "string",
642
- "references": {}
643
- },
644
- "required": false,
645
- "optional": false,
646
- "docs": {
647
- "tags": [{
648
- "name": "default",
649
- "text": "{fi: \"V\u00E4henn\u00E4 summasta\", en: \"Subtract from the amount\", sv: \"Dra fr\u00E5n beloppet\"}"
650
- }],
651
- "text": "Accessible label for the subtract button that is read for screen reader users."
652
- },
653
- "attribute": "accessible-subtract",
654
- "reflect": false,
655
- "defaultValue": "getLocaleString(this.accessibleSubtractDefaults, this.language)"
656
- },
657
- "theme": {
658
- "type": "string",
659
- "mutable": true,
660
- "complexType": {
661
- "original": "DuetTheme",
662
- "resolved": "\"\" | \"default\" | \"turva\"",
663
- "references": {
664
- "DuetTheme": {
665
- "location": "import",
666
- "path": "../../common-types",
667
- "id": "src/common-types.d.ts::DuetTheme"
68
+ };
69
+ this.handleBlur = (ev) => {
70
+ const input = ev.target;
71
+ if (!input) {
72
+ return;
668
73
  }
669
- }
670
- },
671
- "required": false,
672
- "optional": false,
673
- "docs": {
674
- "tags": [],
675
- "text": "Theme of the input."
676
- },
677
- "attribute": "theme",
678
- "reflect": false,
679
- "defaultValue": "\"\""
680
- },
681
- "margin": {
682
- "type": "string",
683
- "mutable": false,
684
- "complexType": {
685
- "original": "DuetMargin",
686
- "resolved": "\"auto\" | \"none\"",
687
- "references": {
688
- "DuetMargin": {
689
- "location": "import",
690
- "path": "../../common-types",
691
- "id": "src/common-types.d.ts::DuetMargin"
74
+ if (input.value) {
75
+ // On blur we want to make sure that the user input is between the min and max values,
76
+ // and also round it up or down to the nearest step.
77
+ try {
78
+ let value = SafeParseFloat(input.value, this.locale);
79
+ if (this.rounding) {
80
+ value = roundTo(value, this.step);
81
+ }
82
+ value = clamp(value, this.min, this.max);
83
+ if (value !== SafeParseFloat(this.value, this.locale) ||
84
+ value !== SafeParseFloat(this.focusedValue, this.locale)) {
85
+ this.setValue(value);
86
+ this.emitChange(ev);
87
+ }
88
+ }
89
+ catch (e) {
90
+ this.emitNull(ev);
91
+ }
692
92
  }
693
- }
694
- },
695
- "required": false,
696
- "optional": false,
697
- "docs": {
698
- "tags": [],
699
- "text": "Controls the margin of the component."
700
- },
701
- "attribute": "margin",
702
- "reflect": false,
703
- "defaultValue": "\"auto\""
704
- },
705
- "expand": {
706
- "type": "boolean",
707
- "mutable": false,
708
- "complexType": {
709
- "original": "boolean",
710
- "resolved": "boolean",
711
- "references": {}
712
- },
713
- "required": false,
714
- "optional": false,
715
- "docs": {
716
- "tags": [],
717
- "text": "Expands the input to fill 100% of the container width."
718
- },
719
- "attribute": "expand",
720
- "reflect": false,
721
- "defaultValue": "false"
722
- },
723
- "identifier": {
724
- "type": "string",
725
- "mutable": false,
726
- "complexType": {
727
- "original": "string",
728
- "resolved": "string",
729
- "references": {}
730
- },
731
- "required": false,
732
- "optional": false,
733
- "docs": {
734
- "tags": [],
735
- "text": "Adds a unique identifier for the input."
736
- },
737
- "attribute": "identifier",
738
- "reflect": false
739
- },
740
- "min": {
741
- "type": "number",
742
- "mutable": false,
743
- "complexType": {
744
- "original": "number",
745
- "resolved": "number",
746
- "references": {}
747
- },
748
- "required": false,
749
- "optional": false,
750
- "docs": {
751
- "tags": [],
752
- "text": "Minimum value."
753
- },
754
- "attribute": "min",
755
- "reflect": false,
756
- "defaultValue": "0"
757
- },
758
- "labelDefaults": {
759
- "type": "string",
760
- "mutable": false,
761
- "complexType": {
762
- "original": "DuetLangObject | string",
763
- "resolved": "DuetLangObject | string",
764
- "references": {
765
- "DuetLangObject": {
766
- "location": "import",
767
- "path": "../../utils/language-utils",
768
- "id": "src/utils/language-utils.ts::DuetLangObject"
93
+ else {
94
+ this.emitNull(ev);
769
95
  }
770
- }
771
- },
772
- "required": false,
773
- "optional": false,
774
- "docs": {
775
- "tags": [{
776
- "name": "default",
777
- "text": "{fi: \"Etiketti\", en: \"Label\", sv: \"M\u00E4rka\"}"
778
- }],
779
- "text": "Defaults for Label"
780
- },
781
- "attribute": "label-default",
782
- "reflect": false,
783
- "defaultValue": "{\n fi: \"Nimilappu\",\n en: \"Label\",\n sv: \"Etikett\",\n }"
784
- },
785
- "label": {
786
- "type": "string",
787
- "mutable": true,
788
- "complexType": {
789
- "original": "string",
790
- "resolved": "string",
791
- "references": {}
792
- },
793
- "required": false,
794
- "optional": false,
795
- "docs": {
796
- "tags": [{
797
- "name": "default",
798
- "text": "{fi: \"Etiketti\", en: \"Label\", sv: \"M\u00E4rka\"}"
799
- }],
800
- "text": "Label for the number input."
801
- },
802
- "attribute": "label",
803
- "reflect": false,
804
- "defaultValue": "getLocaleString(this.labelDefaults, this.language)"
805
- },
806
- "labelHidden": {
807
- "type": "boolean",
808
- "mutable": false,
809
- "complexType": {
810
- "original": "boolean",
811
- "resolved": "boolean",
812
- "references": {}
813
- },
814
- "required": false,
815
- "optional": false,
816
- "docs": {
817
- "tags": [],
818
- "text": "Visually hide the label, but still show it to screen readers."
819
- },
820
- "attribute": "label-hidden",
821
- "reflect": false,
822
- "defaultValue": "false"
823
- },
824
- "max": {
825
- "type": "number",
826
- "mutable": false,
827
- "complexType": {
828
- "original": "number",
829
- "resolved": "number",
830
- "references": {}
831
- },
832
- "required": false,
833
- "optional": false,
834
- "docs": {
835
- "tags": [],
836
- "text": "Maximum value."
837
- },
838
- "attribute": "max",
839
- "reflect": false,
840
- "defaultValue": "1000000"
841
- },
842
- "name": {
843
- "type": "string",
844
- "mutable": false,
845
- "complexType": {
846
- "original": "string",
847
- "resolved": "string",
848
- "references": {}
849
- },
850
- "required": false,
851
- "optional": false,
852
- "docs": {
853
- "tags": [],
854
- "text": "Name of the input."
855
- },
856
- "attribute": "name",
857
- "reflect": false
858
- },
859
- "error": {
860
- "type": "string",
861
- "mutable": false,
862
- "complexType": {
863
- "original": "string",
864
- "resolved": "string",
865
- "references": {}
866
- },
867
- "required": false,
868
- "optional": false,
869
- "docs": {
870
- "tags": [],
871
- "text": "Display the input in error state along with an error message."
872
- },
873
- "attribute": "error",
874
- "reflect": false,
875
- "defaultValue": "\"\""
876
- },
877
- "tooltip": {
878
- "type": "string",
879
- "mutable": false,
880
- "complexType": {
881
- "original": "string",
882
- "resolved": "string",
883
- "references": {}
884
- },
885
- "required": false,
886
- "optional": false,
887
- "docs": {
888
- "tags": [],
889
- "text": "Tooltip to display next to the label of the input."
890
- },
891
- "attribute": "tooltip",
892
- "reflect": false,
893
- "defaultValue": "\"\""
894
- },
895
- "step": {
896
- "type": "number",
897
- "mutable": false,
898
- "complexType": {
899
- "original": "number",
900
- "resolved": "number",
901
- "references": {}
902
- },
903
- "required": false,
904
- "optional": false,
905
- "docs": {
906
- "tags": [],
907
- "text": "Step amount."
908
- },
909
- "attribute": "step",
910
- "reflect": false,
911
- "defaultValue": "5000"
912
- },
913
- "rounding": {
914
- "type": "boolean",
915
- "mutable": false,
916
- "complexType": {
917
- "original": "boolean",
918
- "resolved": "boolean",
919
- "references": {}
920
- },
921
- "required": false,
922
- "optional": false,
923
- "docs": {
924
- "tags": [],
925
- "text": "Controls whether or not value gets rounded to the nearest\nmultiple of a step on blur. Set to \"false\" to disable this behaviour."
926
- },
927
- "attribute": "rounding",
928
- "reflect": false,
929
- "defaultValue": "true"
930
- },
931
- "role": {
932
- "type": "string",
933
- "mutable": false,
934
- "complexType": {
935
- "original": "string | null",
936
- "resolved": "string",
937
- "references": {}
938
- },
939
- "required": false,
940
- "optional": false,
941
- "docs": {
942
- "tags": [],
943
- "text": "Defines a specific role attribute for the input."
944
- },
945
- "attribute": "role",
946
- "reflect": false
947
- },
948
- "disabled": {
949
- "type": "boolean",
950
- "mutable": false,
951
- "complexType": {
952
- "original": "boolean",
953
- "resolved": "boolean",
954
- "references": {}
955
- },
956
- "required": false,
957
- "optional": false,
958
- "docs": {
959
- "tags": [],
960
- "text": "Makes the number input component disabled. This prevents users from being able to\ninteract with the input, and conveys its inactive state to assistive technologies."
961
- },
962
- "attribute": "disabled",
963
- "reflect": true,
964
- "defaultValue": "false"
965
- },
966
- "required": {
967
- "type": "boolean",
968
- "mutable": false,
969
- "complexType": {
970
- "original": "boolean",
971
- "resolved": "boolean",
972
- "references": {}
973
- },
974
- "required": false,
975
- "optional": false,
976
- "docs": {
977
- "tags": [],
978
- "text": "Set whether the input is required or not. Please note that this is required for\naccessible inputs when the user is required to fill them. When using this property\nyou need to also set \u201Cnovalidate\u201D attribute to your form element to prevent\nbrowser from displaying its own validation errors."
979
- },
980
- "attribute": "required",
981
- "reflect": false,
982
- "defaultValue": "false"
983
- },
984
- "value": {
985
- "type": "string",
986
- "mutable": true,
987
- "complexType": {
988
- "original": "string",
989
- "resolved": "string",
990
- "references": {}
991
- },
992
- "required": false,
993
- "optional": false,
994
- "docs": {
995
- "tags": [],
996
- "text": "Value of the input. This is passed as a string since Number Input uses Duet\u2019s Input component internally and we need the value to support spaces and the unit as well."
997
- },
998
- "attribute": "value",
999
- "reflect": false
1000
- }
1001
- };
1002
- }
1003
- static get states() {
1004
- return {
1005
- "focusedValue": {}
1006
- };
1007
- }
1008
- static get events() {
1009
- return [{
1010
- "method": "duetChange",
1011
- "name": "duetChange",
1012
- "bubbles": false,
1013
- "cancelable": true,
1014
- "composed": true,
1015
- "docs": {
1016
- "tags": [],
1017
- "text": "Emitted when the value has changed."
1018
- },
1019
- "complexType": {
1020
- "original": "DuetNumberInputEvent",
1021
- "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1022
- "references": {
1023
- "DuetNumberInputEvent": {
1024
- "location": "local",
1025
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1026
- "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
96
+ };
97
+ /**
98
+ * Local methods.
99
+ */
100
+ this.emitChange = (ev) => {
101
+ const currentValue = SafeParseFloat(this.value, this.locale);
102
+ this.duetChange.emit({
103
+ originalEvent: ev,
104
+ value: currentValue.toString(),
105
+ valueAsNumber: currentValue,
106
+ component: "duet-number-input",
107
+ });
108
+ };
109
+ this.emitNull = (ev) => {
110
+ this.duetChange.emit({
111
+ originalEvent: ev,
112
+ value: null,
113
+ valueAsNumber: null,
114
+ component: "duet-number-input",
115
+ });
116
+ };
117
+ this.localizeValue = (value) => {
118
+ // Returns a localized string that can be used as input value.
119
+ return value.toLocaleString(this.locale);
120
+ };
121
+ this.setValue = (value) => {
122
+ // Set the localized prop value.
123
+ this.value = this.localizeValue(value);
124
+ // Finally also set the visible input value and unit.
125
+ this.duetInputElement.value = `${this.value} ${this.unit}`;
126
+ };
127
+ this.add = (ev) => {
128
+ // If this was called via a html button, prevent the default functionality
129
+ // to not trigger submit accidentally when used inside a form.
130
+ if (ev) {
131
+ ev.preventDefault();
1027
132
  }
1028
- }
1029
- }
1030
- }, {
1031
- "method": "duetInput",
1032
- "name": "duetInput",
1033
- "bubbles": false,
1034
- "cancelable": true,
1035
- "composed": true,
1036
- "docs": {
1037
- "tags": [],
1038
- "text": "Emitted when a keyboard input has ocurred."
1039
- },
1040
- "complexType": {
1041
- "original": "DuetNumberInputEvent",
1042
- "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1043
- "references": {
1044
- "DuetNumberInputEvent": {
1045
- "location": "local",
1046
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1047
- "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
133
+ const cleanedValue = SafeParseFloat(this.value, this.locale);
134
+ // Only fire change event when necessary
135
+ if (cleanedValue === this.max) {
136
+ return;
1048
137
  }
1049
- }
1050
- }
1051
- }, {
1052
- "method": "duetBlur",
1053
- "name": "duetBlur",
1054
- "bubbles": true,
1055
- "cancelable": true,
1056
- "composed": true,
1057
- "docs": {
1058
- "tags": [],
1059
- "text": "Emitted when the input loses focus."
1060
- },
1061
- "complexType": {
1062
- "original": "DuetNumberInputEvent",
1063
- "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1064
- "references": {
1065
- "DuetNumberInputEvent": {
1066
- "location": "local",
1067
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1068
- "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
138
+ // in cases where no value set, incrementing should go to min
139
+ let newValue = cleanedValue == null ? this.min : cleanedValue + this.step;
140
+ // handle cases where value is not multiple of step
141
+ // e.g. if someone enters 199, with a step of 100, add should go to 200
142
+ // and if someone enters 101, add should also go to 200
143
+ if (newValue % this.step !== 0) {
144
+ const adjustment = newValue % this.step;
145
+ newValue -= adjustment;
1069
146
  }
1070
- }
1071
- }
1072
- }, {
1073
- "method": "duetFocus",
1074
- "name": "duetFocus",
1075
- "bubbles": true,
1076
- "cancelable": true,
1077
- "composed": true,
1078
- "docs": {
1079
- "tags": [],
1080
- "text": "Emitted when the input has focus."
1081
- },
1082
- "complexType": {
1083
- "original": "DuetNumberInputEvent",
1084
- "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1085
- "references": {
1086
- "DuetNumberInputEvent": {
1087
- "location": "local",
1088
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1089
- "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
147
+ const clampedValue = clamp(newValue, this.min, this.max);
148
+ this.value = this.localizeValue(clampedValue);
149
+ this.emitChange(ev);
150
+ };
151
+ this.subtract = (ev) => {
152
+ // If this was called via a html button, prevent the default functionality
153
+ // to not trigger submit accidentally when used inside a form.
154
+ if (ev) {
155
+ ev.preventDefault();
1090
156
  }
1091
- }
157
+ const currentValue = SafeParseFloat(this.value, this.locale);
158
+ // Only fire change event when necessary.
159
+ if (currentValue === this.min) {
160
+ return;
161
+ }
162
+ let newValue = currentValue - this.step;
163
+ // handle cases where value is not multiple of step
164
+ // if someone enters 199, with a step of 100, subtract should go to 100
165
+ // and if someone enters 101, subtract should also go to 100
166
+ if (newValue % this.step !== 0) {
167
+ const adjustment = this.step - (newValue % this.step);
168
+ newValue += adjustment;
169
+ }
170
+ newValue = clamp(newValue, this.min, this.max);
171
+ this.value = this.localizeValue(newValue);
172
+ this.emitChange(ev);
173
+ };
174
+ this.language = getLanguage();
175
+ this.locale = getLocale(this.language).locale;
176
+ this.unit = getLocale(this.language).money;
177
+ this.focusedValue = undefined;
178
+ this.accessibleActiveDescendant = undefined;
179
+ this.accessibleControls = undefined;
180
+ this.accessibleDetails = undefined;
181
+ this.accessibleLabelledBy = undefined;
182
+ this.accessibleDescription = undefined;
183
+ this.accessibleOwns = undefined;
184
+ this.accessibleDescribedBy = undefined;
185
+ this.accessibleLiveDefaults = {
186
+ fi: "{current} euroa valittuna",
187
+ en: "{current} euros selected",
188
+ sv: "{current} euro valt",
189
+ };
190
+ this.accessibleLive = getLocaleString(this.accessibleLiveDefaults, this.language);
191
+ this.accessibleLiveEnabled = true;
192
+ this.accessibleAddDefaults = {
193
+ fi: "Lisää summaan",
194
+ en: "Add to the amount",
195
+ sv: "Lägg till beloppet",
196
+ };
197
+ this.accessibleAdd = getLocaleString(this.accessibleAddDefaults, this.language);
198
+ this.accessibleSubtractDefaults = {
199
+ fi: "Vähennä summasta",
200
+ en: "Subtract from the amount",
201
+ sv: "Dra från beloppet",
202
+ };
203
+ this.accessibleSubtract = getLocaleString(this.accessibleSubtractDefaults, this.language);
204
+ this.theme = "";
205
+ this.margin = "auto";
206
+ this.expand = false;
207
+ this.identifier = undefined;
208
+ this.min = 0;
209
+ this.labelDefaults = {
210
+ fi: "Nimilappu",
211
+ en: "Label",
212
+ sv: "Etikett",
213
+ };
214
+ this.label = getLocaleString(this.labelDefaults, this.language);
215
+ this.labelHidden = false;
216
+ this.max = 1000000;
217
+ this.name = undefined;
218
+ this.error = "";
219
+ this.tooltip = "";
220
+ this.step = 5000;
221
+ this.rounding = true;
222
+ this.role = undefined;
223
+ this.disabled = false;
224
+ this.required = false;
225
+ this.value = undefined;
226
+ }
227
+ /**
228
+ * Component lifecycle events.
229
+ */
230
+ componentWillLoad() {
231
+ inheritGlobalTheme(this);
232
+ // Format the number value to a localeString initially.
233
+ if (this.value) {
234
+ this.value = this.localizeValue(SafeParseFloat(this.value, this.locale));
1092
235
  }
1093
- }];
1094
- }
1095
- static get methods() {
1096
- return {
1097
- "setFocus": {
1098
- "complexType": {
1099
- "signature": "(options?: FocusOptions) => Promise<void>",
1100
- "parameters": [{
1101
- "tags": [],
1102
- "text": ""
1103
- }],
1104
- "references": {
1105
- "Promise": {
1106
- "location": "global",
1107
- "id": "global::Promise"
236
+ }
237
+ connectedCallback() {
238
+ connectLanguageChangeObserver(this, [
239
+ { prop: "accessibleLive", defaults: "accessibleLiveDefaults" },
240
+ { prop: "accessibleAdd", defaults: "accessibleAddDefaults" },
241
+ { prop: "accessibleSubtract", defaults: "accessibleSubtractDefaults" },
242
+ { prop: "label", defaults: "labelDefaults" },
243
+ ]);
244
+ subscribeTabbingChange(this);
245
+ }
246
+ disconnectedCallback() {
247
+ disconnectLanguageChangeObserver(this);
248
+ unsubscribeTabbingChange(this);
249
+ }
250
+ /**
251
+ * Sets focus on the specified `duet-number-input`. Use this method instead of the global
252
+ * `input.focus()`.
253
+ */
254
+ async setFocus(options) {
255
+ this.duetInputElement.setFocus(options);
256
+ }
257
+ /**
258
+ * Returns a promise which resolves to the current input numeric value.
259
+ */
260
+ async getValueAsNumber() {
261
+ const currentValue = SafeParseFloat(this.value, this.locale);
262
+ return this.value === undefined || this.value === null || isNaN(currentValue) ? null : currentValue;
263
+ }
264
+ clearValue() {
265
+ this.value = null;
266
+ this.duetInputElement.value = "";
267
+ }
268
+ formatAnnouncement() {
269
+ const current = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
270
+ if (current == null) {
271
+ return "";
272
+ }
273
+ return this.accessibleLive.replace("{current}", current.toString(10));
274
+ }
275
+ /**
276
+ * render() function
277
+ * Always the last one in the class.
278
+ */
279
+ render() {
280
+ if (Build.isServer) {
281
+ return;
282
+ }
283
+ const identifier = this.identifier || this.inputId;
284
+ const maxlength = `${this.localizeValue(this.max)} ${this.unit}`.length;
285
+ const cleanedValue = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
286
+ return (h(Host, { class: {
287
+ "duet-theme-turva": this.theme === "turva",
288
+ "duet-expand": this.expand,
289
+ "duet-m-0": this.margin === "none",
290
+ } }, h("div", { class: "duet-number-container" }, h("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("div", { class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", null, this.accessibleSubtract, " ", this.step), h("duet-icon", { icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", null, this.accessibleAdd, " ", this.step), h("duet-icon", { icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
291
+ }
292
+ static get is() { return "duet-number-input"; }
293
+ static get encapsulation() { return "scoped"; }
294
+ static get originalStyleUrls() {
295
+ return {
296
+ "$": ["duet-number-input.scss"]
297
+ };
298
+ }
299
+ static get styleUrls() {
300
+ return {
301
+ "$": ["duet-number-input.css"]
302
+ };
303
+ }
304
+ static get properties() {
305
+ return {
306
+ "language": {
307
+ "type": "string",
308
+ "mutable": true,
309
+ "complexType": {
310
+ "original": "DuetLanguage",
311
+ "resolved": "\"en\" | \"fi\" | \"sv\"",
312
+ "references": {
313
+ "DuetLanguage": {
314
+ "location": "import",
315
+ "path": "../../common-types",
316
+ "id": "src/common-types.d.ts::DuetLanguage"
317
+ }
318
+ }
319
+ },
320
+ "required": false,
321
+ "optional": false,
322
+ "docs": {
323
+ "tags": [{
324
+ "name": "deprecated",
325
+ "text": "this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing"
326
+ }, {
327
+ "name": "default",
328
+ "text": "\"fi\""
329
+ }],
330
+ "text": "The currently active language. This setting changes the accessible labels to match the\nchosen language."
331
+ },
332
+ "attribute": "language",
333
+ "reflect": false,
334
+ "defaultValue": "getLanguage()"
335
+ },
336
+ "locale": {
337
+ "type": "string",
338
+ "mutable": false,
339
+ "complexType": {
340
+ "original": "DuetLocale",
341
+ "resolved": "\"en-GB\" | \"en-US\" | \"fi-FI\" | \"sv-SE\"",
342
+ "references": {
343
+ "DuetLocale": {
344
+ "location": "import",
345
+ "path": "../../common-types",
346
+ "id": "src/common-types.d.ts::DuetLocale"
347
+ }
348
+ }
349
+ },
350
+ "required": false,
351
+ "optional": false,
352
+ "docs": {
353
+ "tags": [],
354
+ "text": "Locale used to format the entered value."
355
+ },
356
+ "attribute": "locale",
357
+ "reflect": false,
358
+ "defaultValue": "getLocale(this.language).locale"
359
+ },
360
+ "unit": {
361
+ "type": "string",
362
+ "mutable": false,
363
+ "complexType": {
364
+ "original": "string",
365
+ "resolved": "string",
366
+ "references": {}
367
+ },
368
+ "required": false,
369
+ "optional": false,
370
+ "docs": {
371
+ "tags": [],
372
+ "text": "Unit for the number input."
373
+ },
374
+ "attribute": "unit",
375
+ "reflect": false,
376
+ "defaultValue": "getLocale(this.language).money"
1108
377
  },
1109
- "FocusOptions": {
1110
- "location": "global",
1111
- "id": "global::FocusOptions"
378
+ "accessibleActiveDescendant": {
379
+ "type": "string",
380
+ "mutable": false,
381
+ "complexType": {
382
+ "original": "string",
383
+ "resolved": "string",
384
+ "references": {}
385
+ },
386
+ "required": false,
387
+ "optional": false,
388
+ "docs": {
389
+ "tags": [],
390
+ "text": "Indicates the id of a related component\u2019s visually focused element."
391
+ },
392
+ "attribute": "accessible-active-descendant",
393
+ "reflect": false
394
+ },
395
+ "accessibleControls": {
396
+ "type": "string",
397
+ "mutable": false,
398
+ "complexType": {
399
+ "original": "string",
400
+ "resolved": "string",
401
+ "references": {}
402
+ },
403
+ "required": false,
404
+ "optional": false,
405
+ "docs": {
406
+ "tags": [],
407
+ "text": "Use this prop to add an aria-controls attribute. Use the attribute to\nindicate the id of a component controlled by this component."
408
+ },
409
+ "attribute": "accessible-controls",
410
+ "reflect": false
411
+ },
412
+ "accessibleDetails": {
413
+ "type": "string",
414
+ "mutable": false,
415
+ "complexType": {
416
+ "original": "string",
417
+ "resolved": "string",
418
+ "references": {}
419
+ },
420
+ "required": false,
421
+ "optional": false,
422
+ "docs": {
423
+ "tags": [],
424
+ "text": "Details of the component"
425
+ },
426
+ "attribute": "accessible-details",
427
+ "reflect": false,
428
+ "defaultValue": "undefined"
429
+ },
430
+ "accessibleLabelledBy": {
431
+ "type": "string",
432
+ "mutable": false,
433
+ "complexType": {
434
+ "original": "string",
435
+ "resolved": "string",
436
+ "references": {}
437
+ },
438
+ "required": false,
439
+ "optional": false,
440
+ "docs": {
441
+ "tags": [],
442
+ "text": "String of id's that indicate alternative labels elements"
443
+ },
444
+ "attribute": "accessible-labelled-by",
445
+ "reflect": false,
446
+ "defaultValue": "undefined"
447
+ },
448
+ "accessibleDescription": {
449
+ "type": "string",
450
+ "mutable": false,
451
+ "complexType": {
452
+ "original": "string",
453
+ "resolved": "string",
454
+ "references": {}
455
+ },
456
+ "required": false,
457
+ "optional": false,
458
+ "docs": {
459
+ "tags": [],
460
+ "text": "Aria description the button"
461
+ },
462
+ "attribute": "accessible-description",
463
+ "reflect": false,
464
+ "defaultValue": "undefined"
465
+ },
466
+ "accessibleOwns": {
467
+ "type": "string",
468
+ "mutable": false,
469
+ "complexType": {
470
+ "original": "string",
471
+ "resolved": "string",
472
+ "references": {}
473
+ },
474
+ "required": false,
475
+ "optional": false,
476
+ "docs": {
477
+ "tags": [],
478
+ "text": "Indicates the id of a component owned by the input."
479
+ },
480
+ "attribute": "accessible-owns",
481
+ "reflect": false
482
+ },
483
+ "accessibleDescribedBy": {
484
+ "type": "string",
485
+ "mutable": false,
486
+ "complexType": {
487
+ "original": "string",
488
+ "resolved": "string",
489
+ "references": {}
490
+ },
491
+ "required": false,
492
+ "optional": false,
493
+ "docs": {
494
+ "tags": [],
495
+ "text": "Indicates the id of a component that describes the input."
496
+ },
497
+ "attribute": "accessible-described-by",
498
+ "reflect": false
499
+ },
500
+ "accessibleLiveDefaults": {
501
+ "type": "string",
502
+ "mutable": false,
503
+ "complexType": {
504
+ "original": "DuetLangObject | string",
505
+ "resolved": "DuetLangObject | string",
506
+ "references": {
507
+ "DuetLangObject": {
508
+ "location": "import",
509
+ "path": "../../utils/language-utils",
510
+ "id": "src/utils/language-utils.ts::DuetLangObject"
511
+ }
512
+ }
513
+ },
514
+ "required": false,
515
+ "optional": false,
516
+ "docs": {
517
+ "tags": [{
518
+ "name": "default",
519
+ "text": "{fi: \"{current} euroa valittuna\", en: \"{current} euros selected\", sv: \"{current} valda euro\"}"
520
+ }],
521
+ "text": "Defaults for accessibleLive"
522
+ },
523
+ "attribute": "accessible-live-default",
524
+ "reflect": false,
525
+ "defaultValue": "{\n fi: \"{current} euroa valittuna\",\n en: \"{current} euros selected\",\n sv: \"{current} euro valt\",\n }"
526
+ },
527
+ "accessibleLive": {
528
+ "type": "string",
529
+ "mutable": true,
530
+ "complexType": {
531
+ "original": "string",
532
+ "resolved": "string",
533
+ "references": {}
534
+ },
535
+ "required": false,
536
+ "optional": false,
537
+ "docs": {
538
+ "tags": [{
539
+ "name": "default",
540
+ "text": "{fi: \"{current} euroa valittuna\", en: \"{current} euros selected\", sv: \"{current} valda euro\"}"
541
+ }],
542
+ "text": "Format of message used to announce current amount when switching between amounts.\nThe string {current} is replaced with the current amount."
543
+ },
544
+ "attribute": "accessible-live",
545
+ "reflect": false,
546
+ "defaultValue": "getLocaleString(this.accessibleLiveDefaults, this.language)"
547
+ },
548
+ "accessibleLiveEnabled": {
549
+ "type": "boolean",
550
+ "mutable": false,
551
+ "complexType": {
552
+ "original": "boolean",
553
+ "resolved": "boolean",
554
+ "references": {}
555
+ },
556
+ "required": false,
557
+ "optional": false,
558
+ "docs": {
559
+ "tags": [],
560
+ "text": "Disables the aria-live messaging used internally in this component. This could be useful when you want to use custom aria-live messages instead."
561
+ },
562
+ "attribute": "accessible-live-enabled",
563
+ "reflect": false,
564
+ "defaultValue": "true"
565
+ },
566
+ "accessibleAddDefaults": {
567
+ "type": "string",
568
+ "mutable": false,
569
+ "complexType": {
570
+ "original": "DuetLangObject | string",
571
+ "resolved": "DuetLangObject | string",
572
+ "references": {
573
+ "DuetLangObject": {
574
+ "location": "import",
575
+ "path": "../../utils/language-utils",
576
+ "id": "src/utils/language-utils.ts::DuetLangObject"
577
+ }
578
+ }
579
+ },
580
+ "required": false,
581
+ "optional": false,
582
+ "docs": {
583
+ "tags": [{
584
+ "name": "default",
585
+ "text": "{fi: \"Lis\u00E4\u00E4 summaan\", en: \"Add to the amount\", sv: \"L\u00E4gg till beloppet\"}"
586
+ }],
587
+ "text": "Defaults for accessibleAdd"
588
+ },
589
+ "attribute": "accessible-add-default",
590
+ "reflect": false,
591
+ "defaultValue": "{\n fi: \"Lis\u00E4\u00E4 summaan\",\n en: \"Add to the amount\",\n sv: \"L\u00E4gg till beloppet\",\n }"
592
+ },
593
+ "accessibleAdd": {
594
+ "type": "string",
595
+ "mutable": true,
596
+ "complexType": {
597
+ "original": "string",
598
+ "resolved": "string",
599
+ "references": {}
600
+ },
601
+ "required": false,
602
+ "optional": false,
603
+ "docs": {
604
+ "tags": [{
605
+ "name": "default",
606
+ "text": "{fi: \"Lis\u00E4\u00E4 summaan\", en: \"Add to the amount\", sv: \"L\u00E4gg till beloppet\"}"
607
+ }],
608
+ "text": "Accessible label for the add button that is read for screen reader users."
609
+ },
610
+ "attribute": "accessible-add",
611
+ "reflect": false,
612
+ "defaultValue": "getLocaleString(this.accessibleAddDefaults, this.language)"
613
+ },
614
+ "accessibleSubtractDefaults": {
615
+ "type": "string",
616
+ "mutable": false,
617
+ "complexType": {
618
+ "original": "DuetLangObject | string",
619
+ "resolved": "DuetLangObject | string",
620
+ "references": {
621
+ "DuetLangObject": {
622
+ "location": "import",
623
+ "path": "../../utils/language-utils",
624
+ "id": "src/utils/language-utils.ts::DuetLangObject"
625
+ }
626
+ }
627
+ },
628
+ "required": false,
629
+ "optional": false,
630
+ "docs": {
631
+ "tags": [{
632
+ "name": "default",
633
+ "text": "{fi: \"V\u00E4henn\u00E4 summasta\", en: \"Subtract from the amount\", sv: \"Dra fr\u00E5n beloppet\"}"
634
+ }],
635
+ "text": "Defaults for accessibleSubtract"
636
+ },
637
+ "attribute": "accessible-subtract-defaults",
638
+ "reflect": false,
639
+ "defaultValue": "{\n fi: \"V\u00E4henn\u00E4 summasta\",\n en: \"Subtract from the amount\",\n sv: \"Dra fr\u00E5n beloppet\",\n }"
640
+ },
641
+ "accessibleSubtract": {
642
+ "type": "string",
643
+ "mutable": true,
644
+ "complexType": {
645
+ "original": "string",
646
+ "resolved": "string",
647
+ "references": {}
648
+ },
649
+ "required": false,
650
+ "optional": false,
651
+ "docs": {
652
+ "tags": [{
653
+ "name": "default",
654
+ "text": "{fi: \"V\u00E4henn\u00E4 summasta\", en: \"Subtract from the amount\", sv: \"Dra fr\u00E5n beloppet\"}"
655
+ }],
656
+ "text": "Accessible label for the subtract button that is read for screen reader users."
657
+ },
658
+ "attribute": "accessible-subtract",
659
+ "reflect": false,
660
+ "defaultValue": "getLocaleString(this.accessibleSubtractDefaults, this.language)"
661
+ },
662
+ "theme": {
663
+ "type": "string",
664
+ "mutable": true,
665
+ "complexType": {
666
+ "original": "DuetTheme",
667
+ "resolved": "\"\" | \"default\" | \"turva\"",
668
+ "references": {
669
+ "DuetTheme": {
670
+ "location": "import",
671
+ "path": "../../common-types",
672
+ "id": "src/common-types.d.ts::DuetTheme"
673
+ }
674
+ }
675
+ },
676
+ "required": false,
677
+ "optional": false,
678
+ "docs": {
679
+ "tags": [],
680
+ "text": "Theme of the input."
681
+ },
682
+ "attribute": "theme",
683
+ "reflect": false,
684
+ "defaultValue": "\"\""
685
+ },
686
+ "margin": {
687
+ "type": "string",
688
+ "mutable": false,
689
+ "complexType": {
690
+ "original": "DuetMargin",
691
+ "resolved": "\"auto\" | \"none\"",
692
+ "references": {
693
+ "DuetMargin": {
694
+ "location": "import",
695
+ "path": "../../common-types",
696
+ "id": "src/common-types.d.ts::DuetMargin"
697
+ }
698
+ }
699
+ },
700
+ "required": false,
701
+ "optional": false,
702
+ "docs": {
703
+ "tags": [],
704
+ "text": "Controls the margin of the component."
705
+ },
706
+ "attribute": "margin",
707
+ "reflect": false,
708
+ "defaultValue": "\"auto\""
709
+ },
710
+ "expand": {
711
+ "type": "boolean",
712
+ "mutable": false,
713
+ "complexType": {
714
+ "original": "boolean",
715
+ "resolved": "boolean",
716
+ "references": {}
717
+ },
718
+ "required": false,
719
+ "optional": false,
720
+ "docs": {
721
+ "tags": [],
722
+ "text": "Expands the input to fill 100% of the container width."
723
+ },
724
+ "attribute": "expand",
725
+ "reflect": false,
726
+ "defaultValue": "false"
727
+ },
728
+ "identifier": {
729
+ "type": "string",
730
+ "mutable": false,
731
+ "complexType": {
732
+ "original": "string",
733
+ "resolved": "string",
734
+ "references": {}
735
+ },
736
+ "required": false,
737
+ "optional": false,
738
+ "docs": {
739
+ "tags": [],
740
+ "text": "Adds a unique identifier for the input."
741
+ },
742
+ "attribute": "identifier",
743
+ "reflect": false
744
+ },
745
+ "min": {
746
+ "type": "number",
747
+ "mutable": false,
748
+ "complexType": {
749
+ "original": "number",
750
+ "resolved": "number",
751
+ "references": {}
752
+ },
753
+ "required": false,
754
+ "optional": false,
755
+ "docs": {
756
+ "tags": [],
757
+ "text": "Minimum value."
758
+ },
759
+ "attribute": "min",
760
+ "reflect": false,
761
+ "defaultValue": "0"
762
+ },
763
+ "labelDefaults": {
764
+ "type": "string",
765
+ "mutable": false,
766
+ "complexType": {
767
+ "original": "DuetLangObject | string",
768
+ "resolved": "DuetLangObject | string",
769
+ "references": {
770
+ "DuetLangObject": {
771
+ "location": "import",
772
+ "path": "../../utils/language-utils",
773
+ "id": "src/utils/language-utils.ts::DuetLangObject"
774
+ }
775
+ }
776
+ },
777
+ "required": false,
778
+ "optional": false,
779
+ "docs": {
780
+ "tags": [{
781
+ "name": "default",
782
+ "text": "{fi: \"Etiketti\", en: \"Label\", sv: \"M\u00E4rka\"}"
783
+ }],
784
+ "text": "Defaults for Label"
785
+ },
786
+ "attribute": "label-default",
787
+ "reflect": false,
788
+ "defaultValue": "{\n fi: \"Nimilappu\",\n en: \"Label\",\n sv: \"Etikett\",\n }"
789
+ },
790
+ "label": {
791
+ "type": "string",
792
+ "mutable": true,
793
+ "complexType": {
794
+ "original": "string",
795
+ "resolved": "string",
796
+ "references": {}
797
+ },
798
+ "required": false,
799
+ "optional": false,
800
+ "docs": {
801
+ "tags": [{
802
+ "name": "default",
803
+ "text": "{fi: \"Etiketti\", en: \"Label\", sv: \"M\u00E4rka\"}"
804
+ }],
805
+ "text": "Label for the number input."
806
+ },
807
+ "attribute": "label",
808
+ "reflect": false,
809
+ "defaultValue": "getLocaleString(this.labelDefaults, this.language)"
810
+ },
811
+ "labelHidden": {
812
+ "type": "boolean",
813
+ "mutable": false,
814
+ "complexType": {
815
+ "original": "boolean",
816
+ "resolved": "boolean",
817
+ "references": {}
818
+ },
819
+ "required": false,
820
+ "optional": false,
821
+ "docs": {
822
+ "tags": [],
823
+ "text": "Visually hide the label, but still show it to screen readers."
824
+ },
825
+ "attribute": "label-hidden",
826
+ "reflect": false,
827
+ "defaultValue": "false"
828
+ },
829
+ "max": {
830
+ "type": "number",
831
+ "mutable": false,
832
+ "complexType": {
833
+ "original": "number",
834
+ "resolved": "number",
835
+ "references": {}
836
+ },
837
+ "required": false,
838
+ "optional": false,
839
+ "docs": {
840
+ "tags": [],
841
+ "text": "Maximum value."
842
+ },
843
+ "attribute": "max",
844
+ "reflect": false,
845
+ "defaultValue": "1000000"
846
+ },
847
+ "name": {
848
+ "type": "string",
849
+ "mutable": false,
850
+ "complexType": {
851
+ "original": "string",
852
+ "resolved": "string",
853
+ "references": {}
854
+ },
855
+ "required": false,
856
+ "optional": false,
857
+ "docs": {
858
+ "tags": [],
859
+ "text": "Name of the input."
860
+ },
861
+ "attribute": "name",
862
+ "reflect": false
863
+ },
864
+ "error": {
865
+ "type": "string",
866
+ "mutable": false,
867
+ "complexType": {
868
+ "original": "string",
869
+ "resolved": "string",
870
+ "references": {}
871
+ },
872
+ "required": false,
873
+ "optional": false,
874
+ "docs": {
875
+ "tags": [],
876
+ "text": "Display the input in error state along with an error message."
877
+ },
878
+ "attribute": "error",
879
+ "reflect": false,
880
+ "defaultValue": "\"\""
881
+ },
882
+ "tooltip": {
883
+ "type": "string",
884
+ "mutable": false,
885
+ "complexType": {
886
+ "original": "string",
887
+ "resolved": "string",
888
+ "references": {}
889
+ },
890
+ "required": false,
891
+ "optional": false,
892
+ "docs": {
893
+ "tags": [],
894
+ "text": "Tooltip to display next to the label of the input."
895
+ },
896
+ "attribute": "tooltip",
897
+ "reflect": false,
898
+ "defaultValue": "\"\""
899
+ },
900
+ "step": {
901
+ "type": "number",
902
+ "mutable": false,
903
+ "complexType": {
904
+ "original": "number",
905
+ "resolved": "number",
906
+ "references": {}
907
+ },
908
+ "required": false,
909
+ "optional": false,
910
+ "docs": {
911
+ "tags": [],
912
+ "text": "Step amount."
913
+ },
914
+ "attribute": "step",
915
+ "reflect": false,
916
+ "defaultValue": "5000"
917
+ },
918
+ "rounding": {
919
+ "type": "boolean",
920
+ "mutable": false,
921
+ "complexType": {
922
+ "original": "boolean",
923
+ "resolved": "boolean",
924
+ "references": {}
925
+ },
926
+ "required": false,
927
+ "optional": false,
928
+ "docs": {
929
+ "tags": [],
930
+ "text": "Controls whether or not value gets rounded to the nearest\nmultiple of a step on blur. Set to \"false\" to disable this behaviour."
931
+ },
932
+ "attribute": "rounding",
933
+ "reflect": false,
934
+ "defaultValue": "true"
935
+ },
936
+ "role": {
937
+ "type": "string",
938
+ "mutable": false,
939
+ "complexType": {
940
+ "original": "string | null",
941
+ "resolved": "string",
942
+ "references": {}
943
+ },
944
+ "required": false,
945
+ "optional": false,
946
+ "docs": {
947
+ "tags": [],
948
+ "text": "Defines a specific role attribute for the input."
949
+ },
950
+ "attribute": "role",
951
+ "reflect": false
952
+ },
953
+ "disabled": {
954
+ "type": "boolean",
955
+ "mutable": false,
956
+ "complexType": {
957
+ "original": "boolean",
958
+ "resolved": "boolean",
959
+ "references": {}
960
+ },
961
+ "required": false,
962
+ "optional": false,
963
+ "docs": {
964
+ "tags": [],
965
+ "text": "Makes the number input component disabled. This prevents users from being able to\ninteract with the input, and conveys its inactive state to assistive technologies."
966
+ },
967
+ "attribute": "disabled",
968
+ "reflect": true,
969
+ "defaultValue": "false"
970
+ },
971
+ "required": {
972
+ "type": "boolean",
973
+ "mutable": false,
974
+ "complexType": {
975
+ "original": "boolean",
976
+ "resolved": "boolean",
977
+ "references": {}
978
+ },
979
+ "required": false,
980
+ "optional": false,
981
+ "docs": {
982
+ "tags": [],
983
+ "text": "Set whether the input is required or not. Please note that this is required for\naccessible inputs when the user is required to fill them. When using this property\nyou need to also set \u201Cnovalidate\u201D attribute to your form element to prevent\nbrowser from displaying its own validation errors."
984
+ },
985
+ "attribute": "required",
986
+ "reflect": false,
987
+ "defaultValue": "false"
988
+ },
989
+ "value": {
990
+ "type": "string",
991
+ "mutable": true,
992
+ "complexType": {
993
+ "original": "string",
994
+ "resolved": "string",
995
+ "references": {}
996
+ },
997
+ "required": false,
998
+ "optional": false,
999
+ "docs": {
1000
+ "tags": [],
1001
+ "text": "Value of the input. This is passed as a string since Number Input uses Duet\u2019s Input component internally and we need the value to support spaces and the unit as well."
1002
+ },
1003
+ "attribute": "value",
1004
+ "reflect": false
1112
1005
  }
1113
- },
1114
- "return": "Promise<void>"
1115
- },
1116
- "docs": {
1117
- "text": "Sets focus on the specified `duet-number-input`. Use this method instead of the global\n`input.focus()`.",
1118
- "tags": []
1119
- }
1120
- },
1121
- "getValueAsNumber": {
1122
- "complexType": {
1123
- "signature": "() => Promise<number>",
1124
- "parameters": [],
1125
- "references": {
1126
- "Promise": {
1127
- "location": "global",
1128
- "id": "global::Promise"
1006
+ };
1007
+ }
1008
+ static get states() {
1009
+ return {
1010
+ "focusedValue": {}
1011
+ };
1012
+ }
1013
+ static get events() {
1014
+ return [{
1015
+ "method": "duetChange",
1016
+ "name": "duetChange",
1017
+ "bubbles": false,
1018
+ "cancelable": true,
1019
+ "composed": true,
1020
+ "docs": {
1021
+ "tags": [],
1022
+ "text": "Emitted when the value has changed."
1023
+ },
1024
+ "complexType": {
1025
+ "original": "DuetNumberInputEvent",
1026
+ "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1027
+ "references": {
1028
+ "DuetNumberInputEvent": {
1029
+ "location": "local",
1030
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1031
+ "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
1032
+ }
1033
+ }
1034
+ }
1035
+ }, {
1036
+ "method": "duetInput",
1037
+ "name": "duetInput",
1038
+ "bubbles": false,
1039
+ "cancelable": true,
1040
+ "composed": true,
1041
+ "docs": {
1042
+ "tags": [],
1043
+ "text": "Emitted when a keyboard input has ocurred."
1044
+ },
1045
+ "complexType": {
1046
+ "original": "DuetNumberInputEvent",
1047
+ "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1048
+ "references": {
1049
+ "DuetNumberInputEvent": {
1050
+ "location": "local",
1051
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1052
+ "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
1053
+ }
1054
+ }
1055
+ }
1056
+ }, {
1057
+ "method": "duetBlur",
1058
+ "name": "duetBlur",
1059
+ "bubbles": true,
1060
+ "cancelable": true,
1061
+ "composed": true,
1062
+ "docs": {
1063
+ "tags": [],
1064
+ "text": "Emitted when the input loses focus."
1065
+ },
1066
+ "complexType": {
1067
+ "original": "DuetNumberInputEvent",
1068
+ "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1069
+ "references": {
1070
+ "DuetNumberInputEvent": {
1071
+ "location": "local",
1072
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1073
+ "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
1074
+ }
1075
+ }
1076
+ }
1077
+ }, {
1078
+ "method": "duetFocus",
1079
+ "name": "duetFocus",
1080
+ "bubbles": true,
1081
+ "cancelable": true,
1082
+ "composed": true,
1083
+ "docs": {
1084
+ "tags": [],
1085
+ "text": "Emitted when the input has focus."
1086
+ },
1087
+ "complexType": {
1088
+ "original": "DuetNumberInputEvent",
1089
+ "resolved": "{ originalEvent?: Event; component: \"duet-number-input\"; value: string; valueAsNumber: number; }",
1090
+ "references": {
1091
+ "DuetNumberInputEvent": {
1092
+ "location": "local",
1093
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-number-input/duet-number-input.tsx",
1094
+ "id": "src/components/duet-number-input/duet-number-input.tsx::DuetNumberInputEvent"
1095
+ }
1096
+ }
1097
+ }
1098
+ }];
1099
+ }
1100
+ static get methods() {
1101
+ return {
1102
+ "setFocus": {
1103
+ "complexType": {
1104
+ "signature": "(options?: FocusOptions) => Promise<void>",
1105
+ "parameters": [{
1106
+ "name": "options",
1107
+ "type": "FocusOptions",
1108
+ "docs": ""
1109
+ }],
1110
+ "references": {
1111
+ "Promise": {
1112
+ "location": "global",
1113
+ "id": "global::Promise"
1114
+ },
1115
+ "FocusOptions": {
1116
+ "location": "global",
1117
+ "id": "global::FocusOptions"
1118
+ }
1119
+ },
1120
+ "return": "Promise<void>"
1121
+ },
1122
+ "docs": {
1123
+ "text": "Sets focus on the specified `duet-number-input`. Use this method instead of the global\n`input.focus()`.",
1124
+ "tags": []
1125
+ }
1126
+ },
1127
+ "getValueAsNumber": {
1128
+ "complexType": {
1129
+ "signature": "() => Promise<number>",
1130
+ "parameters": [],
1131
+ "references": {
1132
+ "Promise": {
1133
+ "location": "global",
1134
+ "id": "global::Promise"
1135
+ }
1136
+ },
1137
+ "return": "Promise<number>"
1138
+ },
1139
+ "docs": {
1140
+ "text": "Returns a promise which resolves to the current input numeric value.",
1141
+ "tags": []
1142
+ }
1129
1143
  }
1130
- },
1131
- "return": "Promise<number>"
1132
- },
1133
- "docs": {
1134
- "text": "Returns a promise which resolves to the current input numeric value.",
1135
- "tags": []
1136
- }
1137
- }
1138
- };
1139
- }
1140
- static get elementRef() { return "element"; }
1144
+ };
1145
+ }
1146
+ static get elementRef() { return "element"; }
1141
1147
  }