@duetds/components 4.30.1 → 4.33.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 (427) hide show
  1. package/hydrate/index.js +1531 -442
  2. package/lib/cjs/{dom-e89ebf90.js → dom-c850c8d7.js} +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +4 -2
  4. package/lib/cjs/duet-badge.cjs.entry.js +2 -2
  5. package/lib/cjs/duet-button_2.cjs.entry.js +6 -5
  6. package/lib/cjs/duet-caption_4.cjs.entry.js +21 -15
  7. package/lib/cjs/duet-card.cjs.entry.js +6 -6
  8. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-choice_2.cjs.entry.js +55 -25
  10. package/lib/cjs/duet-collapsible.cjs.entry.js +5 -2
  11. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-date-picker.cjs.entry.js +23 -13
  13. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-editable-table-button.cjs.entry.js +89 -0
  15. package/lib/cjs/duet-editable-table_4.cjs.entry.js +1445 -0
  16. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-footer.cjs.entry.js +4 -4
  19. package/lib/cjs/duet-grid_2.cjs.entry.js +52 -4
  20. package/lib/cjs/duet-header_2.cjs.entry.js +26 -10
  21. package/lib/cjs/duet-hero.cjs.entry.js +6 -6
  22. package/lib/cjs/duet-icon.cjs.entry.js +21 -19
  23. package/lib/cjs/duet-input_2.cjs.entry.js +7 -7
  24. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-list_2.cjs.entry.js +2 -2
  26. package/lib/cjs/duet-modal.cjs.entry.js +8 -7
  27. package/lib/cjs/duet-notification_2.cjs.entry.js +6 -5
  28. package/lib/cjs/duet-number-input.cjs.entry.js +36 -15
  29. package/lib/cjs/duet-progress.cjs.entry.js +75 -0
  30. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  32. package/lib/cjs/duet-select.cjs.entry.js +6 -6
  33. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-tab_2.cjs.entry.js +12 -6
  35. package/lib/cjs/duet-textarea.cjs.entry.js +5 -5
  36. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-tooltip.cjs.entry.js +21 -10
  38. package/lib/cjs/duet-tray.cjs.entry.js +21 -10
  39. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +100 -0
  40. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  41. package/lib/cjs/duet.cjs.js +4 -4
  42. package/lib/cjs/{focus-utils-7605778f.js → focus-utils-b609a7a5.js} +1 -1
  43. package/lib/cjs/{index-0c949193.js → index-9a57d969.js} +95 -77
  44. package/lib/cjs/{language-utils-70d6a9a4.js → language-utils-aa282901.js} +28 -9
  45. package/lib/cjs/loader.cjs.js +3 -3
  46. package/lib/cjs/{shadow-css-0c8c175b.js → shadow-css-e3edeed1.js} +9 -10
  47. package/lib/cjs/{string-utils-a6de43d8.js → string-utils-267e3dbb.js} +7 -0
  48. package/lib/cjs/{token-utils-13e5d13e.js → token-utils-63a9c8dc.js} +1 -1
  49. package/lib/cjs/{tokens.module-53b3bd92.js → tokens.module-6b2df1c2.js} +2 -0
  50. package/lib/cjs/{watch-options-3877c082.js → watch-options-d88afac0.js} +29 -6
  51. package/lib/collection/collection-manifest.json +16 -8
  52. package/lib/collection/components/duet-alert/duet-alert.js +12 -6
  53. package/lib/collection/components/duet-badge/duet-badge.css +1 -0
  54. package/lib/collection/components/duet-button/duet-button.js +17 -15
  55. package/lib/collection/components/duet-card/duet-card.css +30 -7
  56. package/lib/collection/components/duet-card/duet-card.js +4 -3
  57. package/lib/collection/components/duet-checkbox/duet-checkbox.css +1 -1
  58. package/lib/collection/components/duet-choice/duet-choice.css +16 -3
  59. package/lib/collection/components/duet-choice/duet-choice.js +122 -36
  60. package/lib/collection/components/duet-choice-group/duet-choice-group.css +1 -0
  61. package/lib/collection/components/duet-choice-group/duet-choice-group.js +4 -4
  62. package/lib/collection/components/duet-date-picker/duet-date-picker.css +1 -1
  63. package/lib/collection/components/duet-date-picker/duet-date-picker.js +78 -43
  64. package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +32 -0
  65. package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +218 -0
  66. package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +36 -0
  67. package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +203 -0
  68. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +13 -0
  69. package/lib/collection/components/duet-editable-table/duet-editable-table.css +16 -0
  70. package/lib/collection/components/duet-editable-table/duet-editable-table.js +348 -0
  71. package/lib/collection/components/duet-footer/duet-footer.js +17 -15
  72. package/lib/collection/components/duet-grid/duet-grid.js +57 -6
  73. package/lib/collection/components/duet-grid-item/duet-grid-item.js +4 -4
  74. package/lib/collection/components/duet-header/duet-header.js +60 -35
  75. package/lib/collection/components/duet-heading/duet-heading.css +4 -0
  76. package/lib/collection/components/duet-heading/duet-heading.js +7 -6
  77. package/lib/collection/components/duet-hero/duet-hero.js +20 -15
  78. package/lib/collection/components/duet-icon/duet-icon.js +2 -6
  79. package/lib/collection/components/duet-icon/icon-utils.js +20 -13
  80. package/lib/collection/components/duet-input/duet-input.css +15 -0
  81. package/lib/collection/components/duet-input/duet-input.js +4 -4
  82. package/lib/collection/components/duet-label/duet-label.css +2 -0
  83. package/lib/collection/components/duet-link/duet-link.js +18 -19
  84. package/lib/collection/components/duet-logo/duet-logo.js +4 -4
  85. package/lib/collection/components/duet-modal/duet-modal.js +22 -17
  86. package/lib/collection/components/duet-notification/duet-notification.js +8 -8
  87. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +20 -15
  88. package/lib/collection/components/duet-number-input/duet-number-input.js +153 -29
  89. package/lib/collection/components/duet-paragraph/duet-paragraph.css +6 -0
  90. package/lib/collection/components/duet-paragraph/duet-paragraph.js +34 -3
  91. package/lib/collection/components/duet-progress/duet-progress.css +103 -0
  92. package/lib/collection/components/duet-progress/duet-progress.js +240 -0
  93. package/lib/collection/components/duet-radio/duet-radio.js +6 -6
  94. package/lib/collection/components/duet-select/duet-select.css +15 -0
  95. package/lib/collection/components/duet-select/duet-select.js +3 -3
  96. package/lib/collection/components/duet-step/duet-step.js +8 -8
  97. package/lib/collection/components/duet-tab-group/duet-tab-group.css +2 -2
  98. package/lib/collection/components/duet-tab-group/duet-tab-group.js +43 -12
  99. package/lib/collection/components/duet-textarea/duet-textarea.css +19 -0
  100. package/lib/collection/components/duet-textarea/duet-textarea.js +5 -4
  101. package/lib/collection/components/duet-tooltip/duet-tooltip.js +82 -20
  102. package/lib/collection/components/duet-tray/duet-tray.js +79 -17
  103. package/lib/collection/components/duet-upload/duet-upload.css +17 -86
  104. package/lib/collection/components/duet-upload/duet-upload.js +587 -164
  105. package/lib/collection/components/duet-upload/errorcodes.utils.js +16 -4
  106. package/lib/collection/components/duet-upload/upload-editable-item-error.js +16 -0
  107. package/lib/collection/components/duet-upload/upload-editable-item-inprogres.js +8 -0
  108. package/lib/collection/components/duet-upload/upload-editable-item-success.js +30 -0
  109. package/lib/collection/components/duet-upload/{duet-upload-validators.js → upload-validators.js} +0 -0
  110. package/lib/collection/components/duet-upload/xhr.helpers.js +2 -6
  111. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +217 -0
  112. package/lib/collection/utils/fixture-utils.js +7 -5
  113. package/lib/collection/utils/js-utils.js +12 -0
  114. package/lib/collection/utils/language-utils.js +26 -9
  115. package/lib/collection/utils/string-utils.js +6 -0
  116. package/lib/collection/utils/watch-options.js +35 -6
  117. package/lib/custom-elements-bundle/index.d.ts +30 -0
  118. package/lib/custom-elements-bundle/index.js +1651 -730
  119. package/lib/duet/duet.esm.js +1 -1
  120. package/lib/duet/duet.js +1 -1
  121. package/lib/duet/p-00210a63.entry.js +4 -0
  122. package/lib/duet/{p-66dde4d2.entry.js → p-0205162d.entry.js} +1 -1
  123. package/lib/duet/{p-3dc9d15d.system.entry.js → p-020a2c42.system.entry.js} +1 -1
  124. package/lib/duet/{p-59a07cf9.entry.js → p-079795e5.entry.js} +1 -1
  125. package/lib/duet/p-09013a48.system.entry.js +4 -0
  126. package/lib/duet/p-0a89315d.entry.js +4 -0
  127. package/lib/duet/p-0d22396e.system.js +16 -0
  128. package/lib/duet/p-0e90f075.system.entry.js +4 -0
  129. package/lib/duet/p-12721178.js +4 -0
  130. package/lib/duet/p-19d7d9d5.system.entry.js +4 -0
  131. package/lib/duet/p-1cbc6269.entry.js +4 -0
  132. package/lib/duet/p-2297d13f.system.entry.js +4 -0
  133. package/lib/duet/p-2764f081.js +4 -0
  134. package/lib/duet/p-2a822e91.system.entry.js +4 -0
  135. package/lib/duet/{p-f81d8534.entry.js → p-2fdcff82.entry.js} +1 -1
  136. package/lib/duet/p-3013c9bb.system.entry.js +4 -0
  137. package/lib/duet/p-3212a556.entry.js +4 -0
  138. package/lib/duet/{p-dee41056.system.entry.js → p-323643af.system.entry.js} +1 -1
  139. package/lib/duet/p-32b7397d.entry.js +4 -0
  140. package/lib/duet/{p-bd9a7d8f.js → p-35a3794e.js} +0 -0
  141. package/lib/duet/p-360086f8.entry.js +4 -0
  142. package/lib/duet/{p-f71f12ed.entry.js → p-37cda933.entry.js} +1 -1
  143. package/lib/duet/{p-62806bb6.system.entry.js → p-3ba62cf1.system.entry.js} +1 -1
  144. package/lib/duet/{p-322d1c38.js → p-3c1971d8.js} +1 -1
  145. package/lib/duet/p-3fd9190b.system.entry.js +4 -0
  146. package/lib/duet/p-43847557.entry.js +4 -0
  147. package/lib/duet/{p-bbc229d8.system.entry.js → p-4b6e8558.system.entry.js} +1 -1
  148. package/lib/duet/p-4c5eedf8.entry.js +4 -0
  149. package/lib/duet/p-4c827f0d.entry.js +4 -0
  150. package/lib/duet/{p-de2be65b.system.js → p-51955fc0.system.js} +1 -1
  151. package/lib/duet/p-5cfc53f9.entry.js +4 -0
  152. package/lib/duet/p-5decc259.system.entry.js +4 -0
  153. package/lib/duet/p-5e0071d6.js +4 -0
  154. package/lib/duet/p-5e77432e.system.entry.js +4 -0
  155. package/lib/duet/{p-ce1374a4.system.entry.js → p-6024e484.system.entry.js} +1 -1
  156. package/lib/duet/p-68008644.entry.js +4 -0
  157. package/lib/duet/p-69385972.system.entry.js +4 -0
  158. package/lib/duet/p-6a4d85ed.system.entry.js +4 -0
  159. package/lib/duet/{p-f82709ba.entry.js → p-6a5ab3eb.entry.js} +1 -1
  160. package/lib/duet/p-6e363557.system.js +4 -0
  161. package/lib/duet/p-6e4b1c0d.entry.js +4 -0
  162. package/lib/duet/p-6f36f647.system.entry.js +4 -0
  163. package/lib/duet/p-6fa6c4fb.system.entry.js +4 -0
  164. package/lib/duet/p-70fafc98.system.js +4 -0
  165. package/lib/duet/p-71a77368.system.entry.js +4 -0
  166. package/lib/duet/p-73f9db25.system.entry.js +4 -0
  167. package/lib/duet/p-74f4a0d8.system.entry.js +4 -0
  168. package/lib/duet/p-7530be48.system.entry.js +4 -0
  169. package/lib/duet/{p-36007600.entry.js → p-75edcaed.entry.js} +1 -1
  170. package/lib/duet/{p-d1817efe.system.entry.js → p-7a8597c2.system.entry.js} +1 -1
  171. package/lib/duet/{p-1cfe38b1.system.entry.js → p-85ad012a.system.entry.js} +1 -1
  172. package/lib/duet/{p-a321a98c.entry.js → p-85e52be8.entry.js} +1 -1
  173. package/lib/duet/p-8aaf3383.entry.js +4 -0
  174. package/lib/duet/p-986779fb.js +4 -0
  175. package/lib/duet/p-987edcd0.js +15 -0
  176. package/lib/duet/{p-35e45c19.system.js → p-9a945278.system.js} +1 -1
  177. package/lib/duet/p-9e79e033.entry.js +4 -0
  178. package/lib/duet/{p-7e108b7e.entry.js → p-9f35d682.entry.js} +1 -1
  179. package/lib/duet/{p-f71e337e.system.entry.js → p-a2a00146.system.entry.js} +1 -1
  180. package/lib/duet/p-a545398c.entry.js +4 -0
  181. package/lib/duet/{p-2826f987.js → p-ad07f399.js} +1 -1
  182. package/lib/duet/{p-4a7911fd.entry.js → p-af49d4f9.entry.js} +1 -1
  183. package/lib/duet/{p-1c41525a.entry.js → p-b25edbbe.entry.js} +1 -1
  184. package/lib/duet/p-b314348c.system.js +4 -0
  185. package/lib/duet/p-b4111e88.system.entry.js +4 -0
  186. package/lib/duet/p-b5c7d304.system.entry.js +4 -0
  187. package/lib/duet/p-b6e9860a.entry.js +4 -0
  188. package/lib/duet/p-ba18b56e.entry.js +4 -0
  189. package/lib/duet/p-bf4596bd.system.entry.js +4 -0
  190. package/lib/duet/{p-4265de16.system.entry.js → p-bf9f6d80.system.entry.js} +1 -1
  191. package/lib/duet/{p-fd98468a.system.js → p-c18a599e.system.js} +0 -0
  192. package/lib/duet/p-c1a1ea1b.js +4 -0
  193. package/lib/duet/p-c742856b.system.entry.js +4 -0
  194. package/lib/duet/p-cbdb9e98.system.entry.js +4 -0
  195. package/lib/duet/{p-27d538f7.system.entry.js → p-cf319832.system.entry.js} +1 -1
  196. package/lib/duet/p-d67fff56.entry.js +4 -0
  197. package/lib/duet/{p-031c2cd8.system.entry.js → p-dd76db9b.system.entry.js} +1 -1
  198. package/lib/duet/p-ddb6344c.system.js +4 -0
  199. package/lib/duet/{p-345ea4f2.system.entry.js → p-de5ec54e.system.entry.js} +1 -1
  200. package/lib/duet/p-df6f39a3.entry.js +4 -0
  201. package/lib/duet/p-e1dc86b5.system.js +4 -0
  202. package/lib/duet/p-e2596ea0.entry.js +4 -0
  203. package/lib/duet/p-e370c18b.entry.js +4 -0
  204. package/lib/duet/{p-e26116e0.system.entry.js → p-e48f3a32.system.entry.js} +1 -1
  205. package/lib/duet/p-e5031543.entry.js +4 -0
  206. package/lib/duet/p-e60ee8b0.entry.js +4 -0
  207. package/lib/duet/p-e70088d5.entry.js +4 -0
  208. package/lib/duet/p-e7b90769.system.entry.js +4 -0
  209. package/lib/duet/{p-a88df408.entry.js → p-e8123a53.entry.js} +1 -1
  210. package/lib/duet/p-eb55ccd2.system.js +4 -0
  211. package/lib/duet/{p-2d2c45f9.entry.js → p-ef7251bf.entry.js} +1 -1
  212. package/lib/duet/p-f0cfe033.system.entry.js +4 -0
  213. package/lib/duet/p-f2a087a8.system.entry.js +4 -0
  214. package/lib/duet/p-f5a55b3c.entry.js +4 -0
  215. package/lib/duet/p-fd613733.entry.js +4 -0
  216. package/lib/esm/{dom-21034390.js → dom-58cd15f6.js} +1 -1
  217. package/lib/esm/duet-alert.entry.js +4 -2
  218. package/lib/esm/duet-badge.entry.js +2 -2
  219. package/lib/esm/duet-button_2.entry.js +6 -5
  220. package/lib/esm/duet-caption_4.entry.js +21 -15
  221. package/lib/esm/duet-card.entry.js +6 -6
  222. package/lib/esm/duet-checkbox.entry.js +2 -2
  223. package/lib/esm/duet-choice_2.entry.js +56 -26
  224. package/lib/esm/duet-collapsible.entry.js +5 -2
  225. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  226. package/lib/esm/duet-date-picker.entry.js +23 -13
  227. package/lib/esm/duet-divider_2.entry.js +1 -1
  228. package/lib/esm/duet-editable-table-button.entry.js +85 -0
  229. package/lib/esm/duet-editable-table_4.entry.js +1438 -0
  230. package/lib/esm/duet-empty-state.entry.js +1 -1
  231. package/lib/esm/duet-fieldset.entry.js +1 -1
  232. package/lib/esm/duet-footer.entry.js +4 -4
  233. package/lib/esm/duet-grid_2.entry.js +52 -4
  234. package/lib/esm/duet-header_2.entry.js +26 -10
  235. package/lib/esm/duet-hero.entry.js +6 -6
  236. package/lib/esm/duet-icon.entry.js +21 -19
  237. package/lib/esm/duet-input_2.entry.js +7 -7
  238. package/lib/esm/duet-layout.entry.js +1 -1
  239. package/lib/esm/duet-list_2.entry.js +2 -2
  240. package/lib/esm/duet-modal.entry.js +8 -7
  241. package/lib/esm/duet-notification_2.entry.js +6 -5
  242. package/lib/esm/duet-number-input.entry.js +36 -15
  243. package/lib/esm/duet-progress.entry.js +71 -0
  244. package/lib/esm/duet-radio_2.entry.js +2 -2
  245. package/lib/esm/duet-range-slider.entry.js +2 -2
  246. package/lib/esm/duet-select.entry.js +6 -6
  247. package/lib/esm/duet-step_2.entry.js +1 -1
  248. package/lib/esm/duet-tab_2.entry.js +12 -6
  249. package/lib/esm/duet-textarea.entry.js +5 -5
  250. package/lib/esm/duet-toggle.entry.js +1 -1
  251. package/lib/esm/duet-tooltip.entry.js +21 -10
  252. package/lib/esm/duet-tray.entry.js +21 -10
  253. package/lib/esm/duet-upload-aria-status.entry.js +96 -0
  254. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  255. package/lib/esm/duet.js +4 -4
  256. package/lib/esm/{focus-utils-0b12f0df.js → focus-utils-aeb6ca93.js} +1 -1
  257. package/lib/esm/{index-f70ddc7f.js → index-e8c7d36f.js} +94 -78
  258. package/lib/esm/{language-utils-ab9c3afc.js → language-utils-344d894c.js} +28 -10
  259. package/lib/esm/loader.js +3 -3
  260. package/lib/esm/{shadow-css-31e2d504.js → shadow-css-7c726abb.js} +9 -10
  261. package/lib/esm/{string-utils-69cf0d09.js → string-utils-2f1793b8.js} +7 -1
  262. package/lib/esm/{token-utils-5a35377f.js → token-utils-590d9413.js} +1 -1
  263. package/lib/esm/{tokens.module-edb66c04.js → tokens.module-49cbf963.js} +3 -1
  264. package/lib/esm/watch-options-dd55bce8.js +57 -0
  265. package/lib/esm-es5/{dom-21034390.js → dom-58cd15f6.js} +0 -0
  266. package/lib/esm-es5/duet-alert.entry.js +1 -1
  267. package/lib/esm-es5/duet-badge.entry.js +1 -1
  268. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  269. package/lib/esm-es5/duet-caption_4.entry.js +2 -2
  270. package/lib/esm-es5/duet-card.entry.js +1 -1
  271. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  272. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  273. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  274. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  275. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  276. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  277. package/lib/esm-es5/duet-editable-table-button.entry.js +4 -0
  278. package/lib/esm-es5/duet-editable-table_4.entry.js +4 -0
  279. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  280. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  281. package/lib/esm-es5/duet-footer.entry.js +1 -1
  282. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  283. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  284. package/lib/esm-es5/duet-hero.entry.js +1 -1
  285. package/lib/esm-es5/duet-icon.entry.js +2 -2
  286. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  287. package/lib/esm-es5/duet-layout.entry.js +1 -1
  288. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  289. package/lib/esm-es5/duet-modal.entry.js +1 -1
  290. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  291. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  292. package/lib/esm-es5/duet-progress.entry.js +4 -0
  293. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  294. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  295. package/lib/esm-es5/duet-select.entry.js +1 -1
  296. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  297. package/lib/esm-es5/duet-tab_2.entry.js +2 -2
  298. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  299. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  300. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  301. package/lib/esm-es5/duet-tray.entry.js +1 -1
  302. package/lib/esm-es5/duet-upload-aria-status.entry.js +4 -0
  303. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  304. package/lib/esm-es5/duet.js +1 -1
  305. package/lib/esm-es5/focus-utils-aeb6ca93.js +4 -0
  306. package/lib/esm-es5/index-e8c7d36f.js +4 -0
  307. package/lib/esm-es5/language-utils-344d894c.js +4 -0
  308. package/lib/esm-es5/loader.js +1 -1
  309. package/lib/esm-es5/shadow-css-7c726abb.js +15 -0
  310. package/lib/esm-es5/{string-utils-69cf0d09.js → string-utils-2f1793b8.js} +1 -1
  311. package/lib/esm-es5/{token-utils-5a35377f.js → token-utils-590d9413.js} +1 -1
  312. package/lib/esm-es5/tokens.module-49cbf963.js +4 -0
  313. package/lib/esm-es5/watch-options-dd55bce8.js +4 -0
  314. package/lib/html.html-data.json +4906 -0
  315. package/lib/types/components/duet-alert/duet-alert.d.ts +2 -1
  316. package/lib/types/components/duet-button/duet-button.d.ts +1 -1
  317. package/lib/types/components/duet-choice/duet-choice.d.ts +24 -5
  318. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +15 -9
  319. package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +72 -0
  320. package/lib/types/components/duet-editable-table/duet-editable-table-item.d.ts +72 -0
  321. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +7 -0
  322. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +84 -0
  323. package/lib/types/components/duet-footer/duet-footer.d.ts +1 -1
  324. package/lib/types/components/duet-grid/duet-grid.d.ts +16 -2
  325. package/lib/types/components/duet-header/duet-header.d.ts +21 -5
  326. package/lib/types/components/duet-heading/duet-heading.d.ts +2 -2
  327. package/lib/types/components/duet-hero/duet-hero.d.ts +3 -3
  328. package/lib/types/components/duet-icon/duet-icon.d.ts +1 -1
  329. package/lib/types/components/duet-icon/icon-utils.d.ts +1 -1
  330. package/lib/types/components/duet-link/duet-link.d.ts +2 -3
  331. package/lib/types/components/duet-modal/duet-modal.d.ts +3 -3
  332. package/lib/types/components/duet-notification-drawer/duet-notification-drawer.d.ts +3 -3
  333. package/lib/types/components/duet-number-input/duet-number-input.d.ts +21 -0
  334. package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +9 -1
  335. package/lib/types/components/duet-progress/duet-progress.d.ts +64 -0
  336. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +6 -0
  337. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +11 -0
  338. package/lib/types/components/duet-tray/duet-tray.d.ts +11 -0
  339. package/lib/types/components/duet-upload/duet-upload.d.ts +124 -31
  340. package/lib/types/components/duet-upload/errorcodes.utils.d.ts +1 -0
  341. package/lib/types/components/duet-upload/upload-editable-item-error.d.ts +7 -0
  342. package/lib/types/components/duet-upload/upload-editable-item-inprogres.d.ts +7 -0
  343. package/lib/types/components/duet-upload/upload-editable-item-success.d.ts +8 -0
  344. package/lib/types/components/duet-upload/{duet-upload-validators.d.ts → upload-validators.d.ts} +0 -0
  345. package/lib/types/components/duet-upload/xhr.helpers.d.ts +7 -1
  346. package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +49 -0
  347. package/lib/types/components.d.ts +619 -87
  348. package/lib/types/utils/js-utils.d.ts +1 -0
  349. package/lib/types/utils/language-utils.d.ts +8 -3
  350. package/lib/types/utils/string-utils.d.ts +1 -0
  351. package/lib/types/utils/watch-options.d.ts +2 -0
  352. package/package.json +20 -15
  353. package/lib/cjs/duet-table.cjs.entry.js +0 -132
  354. package/lib/cjs/duet-upload.cjs.entry.js +0 -866
  355. package/lib/collection/components/duet-upload/duet-upload-file-list.js +0 -49
  356. package/lib/duet/p-0733c303.system.entry.js +0 -4
  357. package/lib/duet/p-095060cc.js +0 -4
  358. package/lib/duet/p-156864a1.system.entry.js +0 -4
  359. package/lib/duet/p-15c15c6a.js +0 -15
  360. package/lib/duet/p-1911dfe7.system.entry.js +0 -4
  361. package/lib/duet/p-2834a302.entry.js +0 -4
  362. package/lib/duet/p-28a3d38f.system.entry.js +0 -4
  363. package/lib/duet/p-2a1a9f9f.entry.js +0 -4
  364. package/lib/duet/p-2a4d7c5b.system.entry.js +0 -4
  365. package/lib/duet/p-4095dba5.entry.js +0 -4
  366. package/lib/duet/p-418b2ce7.system.js +0 -4
  367. package/lib/duet/p-4289b543.entry.js +0 -4
  368. package/lib/duet/p-43e39d98.system.js +0 -4
  369. package/lib/duet/p-46a3ae43.system.js +0 -4
  370. package/lib/duet/p-4a38cf9d.entry.js +0 -4
  371. package/lib/duet/p-4be8e814.entry.js +0 -4
  372. package/lib/duet/p-591b2137.entry.js +0 -4
  373. package/lib/duet/p-5c5bdb06.system.entry.js +0 -4
  374. package/lib/duet/p-5f70e318.entry.js +0 -4
  375. package/lib/duet/p-62c294d6.system.entry.js +0 -4
  376. package/lib/duet/p-6a356ab1.system.js +0 -4
  377. package/lib/duet/p-6c2729da.js +0 -4
  378. package/lib/duet/p-6f107847.system.entry.js +0 -4
  379. package/lib/duet/p-77a5fe4c.system.js +0 -4
  380. package/lib/duet/p-7809e78b.system.entry.js +0 -4
  381. package/lib/duet/p-7a36d76f.system.entry.js +0 -4
  382. package/lib/duet/p-7ee52f58.entry.js +0 -4
  383. package/lib/duet/p-884693f1.entry.js +0 -4
  384. package/lib/duet/p-8977b722.entry.js +0 -4
  385. package/lib/duet/p-89db3b94.entry.js +0 -4
  386. package/lib/duet/p-8cfce39e.system.entry.js +0 -4
  387. package/lib/duet/p-8ffe1461.system.entry.js +0 -4
  388. package/lib/duet/p-9381c2d4.entry.js +0 -4
  389. package/lib/duet/p-9a450c9a.entry.js +0 -4
  390. package/lib/duet/p-9a89ec39.js +0 -4
  391. package/lib/duet/p-9bbfe606.system.entry.js +0 -4
  392. package/lib/duet/p-a0a066cb.system.entry.js +0 -4
  393. package/lib/duet/p-a6096b05.system.entry.js +0 -4
  394. package/lib/duet/p-a89d5d7c.entry.js +0 -4
  395. package/lib/duet/p-b07055fd.system.entry.js +0 -4
  396. package/lib/duet/p-b4374f0e.entry.js +0 -4
  397. package/lib/duet/p-b456d684.system.entry.js +0 -4
  398. package/lib/duet/p-bd18c93f.js +0 -4
  399. package/lib/duet/p-bddb1c15.system.entry.js +0 -4
  400. package/lib/duet/p-c0b95b58.entry.js +0 -4
  401. package/lib/duet/p-c3688975.entry.js +0 -4
  402. package/lib/duet/p-c4d183e6.entry.js +0 -4
  403. package/lib/duet/p-c9303f9a.entry.js +0 -4
  404. package/lib/duet/p-cd4e8ccf.js +0 -4
  405. package/lib/duet/p-ceb75b35.system.entry.js +0 -4
  406. package/lib/duet/p-cf243bcb.system.entry.js +0 -4
  407. package/lib/duet/p-d37c8a05.system.js +0 -4
  408. package/lib/duet/p-d989af11.entry.js +0 -4
  409. package/lib/duet/p-e58ca7af.system.js +0 -16
  410. package/lib/duet/p-e6128d82.system.entry.js +0 -4
  411. package/lib/duet/p-e86cdc17.entry.js +0 -4
  412. package/lib/duet/p-eadb29c7.entry.js +0 -4
  413. package/lib/duet/p-f30b14d6.system.entry.js +0 -4
  414. package/lib/duet/p-f79f8da1.entry.js +0 -4
  415. package/lib/duet/p-fc397e03.system.entry.js +0 -4
  416. package/lib/esm/duet-table.entry.js +0 -128
  417. package/lib/esm/duet-upload.entry.js +0 -862
  418. package/lib/esm/watch-options-de55ea78.js +0 -35
  419. package/lib/esm-es5/duet-table.entry.js +0 -4
  420. package/lib/esm-es5/duet-upload.entry.js +0 -4
  421. package/lib/esm-es5/focus-utils-0b12f0df.js +0 -4
  422. package/lib/esm-es5/index-f70ddc7f.js +0 -4
  423. package/lib/esm-es5/language-utils-ab9c3afc.js +0 -4
  424. package/lib/esm-es5/shadow-css-31e2d504.js +0 -15
  425. package/lib/esm-es5/tokens.module-edb66c04.js +0 -4
  426. package/lib/esm-es5/watch-options-de55ea78.js +0 -4
  427. package/lib/types/components/duet-upload/duet-upload-file-list.d.ts +0 -9
@@ -0,0 +1,103 @@
1
+ *,
2
+ *::after,
3
+ *::before {
4
+ box-sizing: border-box;
5
+ padding: 0;
6
+ margin: 0;
7
+ background: transparent;
8
+ border: 0;
9
+ -moz-appearance: none;
10
+ -webkit-appearance: none;
11
+ appearance: none;
12
+ }
13
+
14
+ :host {
15
+ box-sizing: border-box;
16
+ padding: 0;
17
+ margin: 0;
18
+ background: transparent;
19
+ border: 0;
20
+ -moz-appearance: none;
21
+ -webkit-appearance: none;
22
+ appearance: none;
23
+ width: 100%;
24
+ height: inherit;
25
+ }
26
+
27
+ .duet-progress {
28
+ box-sizing: border-box;
29
+ padding: 0;
30
+ margin: 0;
31
+ background: transparent;
32
+ border: 0;
33
+ -moz-appearance: none;
34
+ -webkit-appearance: none;
35
+ appearance: none;
36
+ display: block;
37
+ width: 100%;
38
+ min-height: 1px;
39
+ /* fallback design of the default appearance */
40
+ }
41
+ .duet-progress .progress-bar {
42
+ position: relative;
43
+ display: block;
44
+ width: 100%;
45
+ height: inherit;
46
+ min-height: 1px;
47
+ background-color: #f3f9fc;
48
+ border-radius: 0;
49
+ box-shadow: none;
50
+ }
51
+ .duet-theme-turva .duet-progress .progress-bar {
52
+ background-color: #fcf3f4;
53
+ }
54
+ .duet-progress .progress-bar > span {
55
+ display: block;
56
+ height: inherit;
57
+ text-indent: -9999px;
58
+ background-color: #0077b3;
59
+ border-radius: 0;
60
+ }
61
+ .duet-theme-turva .duet-progress .progress-bar > span {
62
+ background-color: #c60c30;
63
+ }
64
+ .duet-progress progress[value] {
65
+ display: flex;
66
+ width: 100%;
67
+ height: inherit;
68
+ min-height: 1px;
69
+ /* For IE10 */
70
+ color: #0077b3;
71
+ /* Get rid of default border in Firefox. */
72
+ border: 0 none;
73
+ /* Reset the default appearance */
74
+ -webkit-appearance: none;
75
+ -moz-appearance: none;
76
+ appearance: none;
77
+ }
78
+ .duet-theme-turva .duet-progress progress[value] {
79
+ color: #c60c30;
80
+ }
81
+ .duet-progress progress[value]::-webkit-progress-bar {
82
+ background-color: #f3f9fc;
83
+ border-radius: 0;
84
+ }
85
+ .duet-theme-turva .duet-progress progress[value]::-webkit-progress-bar {
86
+ background-color: #fcf3f4;
87
+ }
88
+ .duet-progress progress[value]::-webkit-progress-value {
89
+ background-color: #0077b3;
90
+ background-size: 35px 20px, 100% 100%, 100% 100%;
91
+ border-radius: 0;
92
+ -webkit-animation: animate-stripes 5s linear infinite;
93
+ animation: animate-stripes 5s linear infinite;
94
+ }
95
+ .duet-theme-turva .duet-progress progress[value]::-webkit-progress-value {
96
+ background-color: #c60c30;
97
+ }
98
+ .duet-progress progress[value] ::-moz-progress-bar {
99
+ background-color: #f3f9fc;
100
+ }
101
+ .duet-theme-turva .duet-progress progress[value] ::-moz-progress-bar {
102
+ background-color: #fcf3f4;
103
+ }
@@ -0,0 +1,240 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { Component, Element, h, Host, Prop } from "@stencil/core";
5
+ import { createID } from "../../utils/create-id";
6
+ import { getLocaleString } from "../../utils/language-utils";
7
+ import { inheritGlobalTheme } from "../../utils/themeable-component";
8
+ export class DuetProgress {
9
+ constructor() {
10
+ /**
11
+ * Own Properties
12
+ */
13
+ this.progressId = createID("DuetProgress");
14
+ this.progressLabelId = createID("DuetProgressLabel");
15
+ /**
16
+ * Defaults for accessibleLabel
17
+ */
18
+ this.accessibleLabelUploadDefaults = {
19
+ fi: ["lähetys valmis", "lähetys käynnissä"],
20
+ sv: ["Uppladdningen är klar", "Uppladdning pågår"],
21
+ en: ["upload completed", "upload in progress"],
22
+ };
23
+ /**
24
+ * Adds accessible label for upload in progress and upload complete states
25
+ * @default {fi: ["lähetys valmis", "lähetys käynnissä"],sv: ["Uppladdningen är klar", "Uppladdning pågår"], en: ["completed", "in progress"]}
26
+ */
27
+ this.accessibleLabelUpload = getLocaleString(this.accessibleLabelUploadDefaults);
28
+ /**
29
+ * Progress of the bar, a value from 0-100
30
+ */
31
+ this.progress = 0;
32
+ /**
33
+ * Height of progressbar
34
+ */
35
+ this.height = "10px";
36
+ /**
37
+ * Theme of the input.
38
+ */
39
+ this.theme = "";
40
+ }
41
+ /**
42
+ * Component lifecycle events.
43
+ */
44
+ componentWillLoad() {
45
+ inheritGlobalTheme(this);
46
+ }
47
+ /**
48
+ * render() function
49
+ * Always the last one in the class.
50
+ */
51
+ render() {
52
+ return (h(Host, null,
53
+ h("div", { "aria-live": this.accessibleLabel ? "polite" : "off", "aria-hidden": this.accessibleLabel ? "false" : "true", "aria-atomic": "true", style: {
54
+ height: this.height,
55
+ }, id: this.progressId, class: {
56
+ "duet-progress": true,
57
+ "duet-progress-done": this.progress === 100,
58
+ "duet-progress-start": this.progress === 0,
59
+ "duet-progress-inprogress": this.progress < 99 && this.progress !== 0,
60
+ "duet-theme-turva": this.theme === "turva",
61
+ } },
62
+ h("duet-visually-hidden", null,
63
+ h("label", { htmlFor: this.progressLabelId }, this.progress !== 0 && (h("span", null,
64
+ this.accessibleLabel,
65
+ ", ",
66
+ this.accessibleLabelUpload[this.progress < 99 ? 1 : 0])))),
67
+ this.caption && (h("div", { class: "duet-progress-caption" },
68
+ h("span", null, this.caption))),
69
+ h("progress", { id: this.progressLabelId, "aria-describedby": this.accessibleDescribedBy, role: "progressbar", value: this.progress, max: "100", "aria-valuemin": "0", "aria-valuemax": "100" },
70
+ h("div", { class: "progress-bar" },
71
+ h("span", { style: { width: `${this.progress}%;` } },
72
+ "Progress: ",
73
+ this.progress,
74
+ "%"))))));
75
+ }
76
+ static get is() { return "duet-progress"; }
77
+ static get originalStyleUrls() { return {
78
+ "$": ["duet-progress.scss"]
79
+ }; }
80
+ static get styleUrls() { return {
81
+ "$": ["duet-progress.css"]
82
+ }; }
83
+ static get properties() { return {
84
+ "accessibleDescribedBy": {
85
+ "type": "string",
86
+ "mutable": false,
87
+ "complexType": {
88
+ "original": "string",
89
+ "resolved": "string",
90
+ "references": {}
91
+ },
92
+ "required": false,
93
+ "optional": false,
94
+ "docs": {
95
+ "tags": [],
96
+ "text": "Indicates the id of a component that describes the upload component."
97
+ },
98
+ "attribute": "accessible-described-by",
99
+ "reflect": false
100
+ },
101
+ "accessibleLabel": {
102
+ "type": "string",
103
+ "mutable": false,
104
+ "complexType": {
105
+ "original": "string",
106
+ "resolved": "string",
107
+ "references": {}
108
+ },
109
+ "required": false,
110
+ "optional": false,
111
+ "docs": {
112
+ "tags": [],
113
+ "text": "Indicates the aria-label of the component -\nthis will get combined with an label+uploading when uploading,\nand label+upload complete when upload is complete"
114
+ },
115
+ "attribute": "accessible-label",
116
+ "reflect": false
117
+ },
118
+ "accessibleLabelUploadDefaults": {
119
+ "type": "string",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "DuetLangObject | string",
123
+ "resolved": "DuetLangObject | string",
124
+ "references": {
125
+ "DuetLangObject": {
126
+ "location": "import",
127
+ "path": "../../utils/language-utils"
128
+ }
129
+ }
130
+ },
131
+ "required": false,
132
+ "optional": false,
133
+ "docs": {
134
+ "tags": [],
135
+ "text": "Defaults for accessibleLabel"
136
+ },
137
+ "attribute": "accessible-label-upload-defaults",
138
+ "reflect": false,
139
+ "defaultValue": "{\n fi: [\"l\u00E4hetys valmis\", \"l\u00E4hetys k\u00E4ynniss\u00E4\"],\n sv: [\"Uppladdningen \u00E4r klar\", \"Uppladdning p\u00E5g\u00E5r\"],\n en: [\"upload completed\", \"upload in progress\"],\n }"
140
+ },
141
+ "accessibleLabelUpload": {
142
+ "type": "string",
143
+ "mutable": false,
144
+ "complexType": {
145
+ "original": "string",
146
+ "resolved": "string",
147
+ "references": {}
148
+ },
149
+ "required": false,
150
+ "optional": false,
151
+ "docs": {
152
+ "tags": [{
153
+ "name": "default",
154
+ "text": "{fi: [\"l\u00E4hetys valmis\", \"l\u00E4hetys k\u00E4ynniss\u00E4\"],sv: [\"Uppladdningen \u00E4r klar\", \"Uppladdning p\u00E5g\u00E5r\"], en: [\"completed\", \"in progress\"]}"
155
+ }],
156
+ "text": "Adds accessible label for upload in progress and upload complete states"
157
+ },
158
+ "attribute": "accessible-label-upload",
159
+ "reflect": false,
160
+ "defaultValue": "getLocaleString(this.accessibleLabelUploadDefaults)"
161
+ },
162
+ "progress": {
163
+ "type": "number",
164
+ "mutable": true,
165
+ "complexType": {
166
+ "original": "number",
167
+ "resolved": "number",
168
+ "references": {}
169
+ },
170
+ "required": false,
171
+ "optional": false,
172
+ "docs": {
173
+ "tags": [],
174
+ "text": "Progress of the bar, a value from 0-100"
175
+ },
176
+ "attribute": "progress",
177
+ "reflect": true,
178
+ "defaultValue": "0"
179
+ },
180
+ "caption": {
181
+ "type": "string",
182
+ "mutable": false,
183
+ "complexType": {
184
+ "original": "string",
185
+ "resolved": "string",
186
+ "references": {}
187
+ },
188
+ "required": false,
189
+ "optional": false,
190
+ "docs": {
191
+ "tags": [],
192
+ "text": "Caption (underneath label) that can be set as a way of adding extra information"
193
+ },
194
+ "attribute": "caption",
195
+ "reflect": false
196
+ },
197
+ "height": {
198
+ "type": "string",
199
+ "mutable": false,
200
+ "complexType": {
201
+ "original": "string",
202
+ "resolved": "string",
203
+ "references": {}
204
+ },
205
+ "required": false,
206
+ "optional": false,
207
+ "docs": {
208
+ "tags": [],
209
+ "text": "Height of progressbar"
210
+ },
211
+ "attribute": "height",
212
+ "reflect": false,
213
+ "defaultValue": "\"10px\""
214
+ },
215
+ "theme": {
216
+ "type": "string",
217
+ "mutable": true,
218
+ "complexType": {
219
+ "original": "DuetTheme",
220
+ "resolved": "\"\" | \"default\" | \"turva\"",
221
+ "references": {
222
+ "DuetTheme": {
223
+ "location": "import",
224
+ "path": "../../common-types"
225
+ }
226
+ }
227
+ },
228
+ "required": false,
229
+ "optional": false,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": "Theme of the input."
233
+ },
234
+ "attribute": "theme",
235
+ "reflect": false,
236
+ "defaultValue": "\"\""
237
+ }
238
+ }; }
239
+ static get elementRef() { return "element"; }
240
+ }
@@ -379,8 +379,8 @@ export class DuetRadio {
379
379
  "optional": false,
380
380
  "docs": {
381
381
  "tags": [{
382
- "text": "Determines, whether the control is disabled from the parent group.",
383
- "name": "internal"
382
+ "name": "internal",
383
+ "text": "Determines, whether the control is disabled from the parent group."
384
384
  }],
385
385
  "text": ""
386
386
  },
@@ -404,8 +404,8 @@ export class DuetRadio {
404
404
  "optional": false,
405
405
  "docs": {
406
406
  "tags": [{
407
- "text": "Determines, whether the control is displayed horizontally or vertically within a group.",
408
- "name": "internal"
407
+ "name": "internal",
408
+ "text": "Determines, whether the control is displayed horizontally or vertically within a group."
409
409
  }],
410
410
  "text": ""
411
411
  },
@@ -424,8 +424,8 @@ export class DuetRadio {
424
424
  "optional": false,
425
425
  "docs": {
426
426
  "tags": [{
427
- "text": "Determines, whether the control is displayed responsively within a group.",
428
- "name": "internal"
427
+ "name": "internal",
428
+ "text": "Determines, whether the control is displayed responsively within a group."
429
429
  }],
430
430
  "text": ""
431
431
  },
@@ -57,6 +57,21 @@ duet-tooltip {
57
57
  }
58
58
  }
59
59
 
60
+ .duet-select-placeholder {
61
+ position: absolute;
62
+ top: -9px;
63
+ left: 9px;
64
+ z-index: 200;
65
+ display: block;
66
+ width: auto;
67
+ max-width: 60%;
68
+ padding: 0 0.25rem;
69
+ overflow: hidden;
70
+ text-overflow: ellipsis;
71
+ white-space: nowrap;
72
+ background: white;
73
+ }
74
+
60
75
  .duet-select-container {
61
76
  position: relative;
62
77
  width: 100%;
@@ -121,14 +121,14 @@ export class DuetSelect {
121
121
  if (this.nativeSelect) {
122
122
  this.nativeSelect.value = this.value;
123
123
  }
124
- this.isCaptionVisible = !!(this.caption || (this.placeholder && this.echoPlaceholder && this.value));
124
+ this.isCaptionVisible = !!this.caption;
125
125
  }
126
126
  /**
127
127
  * Component lifecycle events.
128
128
  */
129
129
  componentWillLoad() {
130
130
  inheritGlobalTheme(this);
131
- this.isCaptionVisible = !!(this.caption || (this.placeholder && this.echoPlaceholder && this.value));
131
+ this.isCaptionVisible = !!this.caption;
132
132
  this.refresh();
133
133
  }
134
134
  /**
@@ -176,8 +176,8 @@ export class DuetSelect {
176
176
  h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, id: this.labelId, for: identifier }, this.label),
177
177
  this.tooltip && (h("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)),
178
178
  this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)),
179
- this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, size: "small" }, this.placeholder)),
180
179
  h("div", { class: "duet-select-wrapper" },
180
+ this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)),
181
181
  h("select", { ref: select => (this.nativeSelect = select), disabled: this.disabled, name: this.name, id: identifier, role: this.role, "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required, "aria-describedby": this.accessibleDescribedBy },
182
182
  this.placeholder && (h("option", { disabled: true, selected: true, value: "" }, this.placeholder)),
183
183
  !this.processedItems ? (h("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
@@ -194,8 +194,8 @@ export class DuetStep {
194
194
  "optional": false,
195
195
  "docs": {
196
196
  "tags": [{
197
- "text": "The index of this step, derived from its position within stepper.\nThis property is used internally by stepper, and should not be set by the developer.",
198
- "name": "internal"
197
+ "name": "internal",
198
+ "text": "The index of this step, derived from its position within stepper.\nThis property is used internally by stepper, and should not be set by the developer."
199
199
  }],
200
200
  "text": ""
201
201
  },
@@ -218,8 +218,8 @@ export class DuetStep {
218
218
  "optional": false,
219
219
  "docs": {
220
220
  "tags": [{
221
- "text": "The state of the step.\nThis property is used internally by stepper, and should not be set by the developer.",
222
- "name": "internal"
221
+ "name": "internal",
222
+ "text": "The state of the step.\nThis property is used internally by stepper, and should not be set by the developer."
223
223
  }],
224
224
  "text": ""
225
225
  },
@@ -238,8 +238,8 @@ export class DuetStep {
238
238
  "optional": false,
239
239
  "docs": {
240
240
  "tags": [{
241
- "text": "Enable/disable rounded top corners (on mobile).\nThis property is used internally by stepper, and should not be set by the developer.",
242
- "name": "internal"
241
+ "name": "internal",
242
+ "text": "Enable/disable rounded top corners (on mobile).\nThis property is used internally by stepper, and should not be set by the developer."
243
243
  }],
244
244
  "text": ""
245
245
  },
@@ -259,8 +259,8 @@ export class DuetStep {
259
259
  "optional": false,
260
260
  "docs": {
261
261
  "tags": [{
262
- "text": "Enable/disable rounded bottom corners (on mobile).\nThis property is used internally by stepper, and should not be set by the developer.",
263
- "name": "internal"
262
+ "name": "internal",
263
+ "text": "Enable/disable rounded bottom corners (on mobile).\nThis property is used internally by stepper, and should not be set by the developer."
264
264
  }],
265
265
  "text": ""
266
266
  },
@@ -124,8 +124,8 @@
124
124
  }
125
125
  .duet-theme-turva .duet-tab-button.selected {
126
126
  color: white !important;
127
- background-color: #444445;
128
- border-color: #444445 !important;
127
+ background-color: #171c3a;
128
+ border-color: #171c3a !important;
129
129
  }
130
130
  .duet-tab-button:focus {
131
131
  z-index: 200;
@@ -31,14 +31,19 @@ export class DuetTabGroup {
31
31
  */
32
32
  this.language = getLanguage();
33
33
  /**
34
- * Label for the select element which gets shown on mobile.
34
+ * Defaults for Label
35
35
  * @default {fi: "Valitse", en: "Choose", sv: "Välja"}
36
36
  */
37
- this.label = getLocaleString({
37
+ this.labelDefaults = {
38
38
  fi: "Valitse",
39
39
  en: "Choose",
40
40
  sv: "Välj",
41
- }, this.language);
41
+ };
42
+ /**
43
+ * Label for the select element which gets shown on mobile.
44
+ * @default {fi: "Valitse", en: "Choose", sv: "Välja"}
45
+ */
46
+ this.label = getLocaleString(this.labelDefaults, this.language);
42
47
  /**
43
48
  * Determines whether the label for the select element shown on mobile is visually hidden.
44
49
  */
@@ -246,11 +251,11 @@ export class DuetTabGroup {
246
251
  "optional": false,
247
252
  "docs": {
248
253
  "tags": [{
249
- "text": "this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing",
250
- "name": "deprecated"
254
+ "name": "deprecated",
255
+ "text": "this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing"
251
256
  }, {
252
- "text": "\"fi\"",
253
- "name": "default"
257
+ "name": "default",
258
+ "text": "\"fi\""
254
259
  }],
255
260
  "text": "The currently active language. This setting changes the accessible labels to match the\nchosen language."
256
261
  },
@@ -258,6 +263,32 @@ export class DuetTabGroup {
258
263
  "reflect": false,
259
264
  "defaultValue": "getLanguage()"
260
265
  },
266
+ "labelDefaults": {
267
+ "type": "string",
268
+ "mutable": false,
269
+ "complexType": {
270
+ "original": "DuetLangObject | string",
271
+ "resolved": "DuetLangObject | string",
272
+ "references": {
273
+ "DuetLangObject": {
274
+ "location": "import",
275
+ "path": "../../utils/language-utils"
276
+ }
277
+ }
278
+ },
279
+ "required": false,
280
+ "optional": false,
281
+ "docs": {
282
+ "tags": [{
283
+ "name": "default",
284
+ "text": "{fi: \"Valitse\", en: \"Choose\", sv: \"V\u00E4lja\"}"
285
+ }],
286
+ "text": "Defaults for Label"
287
+ },
288
+ "attribute": "label-default",
289
+ "reflect": false,
290
+ "defaultValue": "{\n fi: \"Valitse\",\n en: \"Choose\",\n sv: \"V\u00E4lj\",\n }"
291
+ },
261
292
  "label": {
262
293
  "type": "string",
263
294
  "mutable": false,
@@ -270,14 +301,14 @@ export class DuetTabGroup {
270
301
  "optional": false,
271
302
  "docs": {
272
303
  "tags": [{
273
- "text": "{fi: \"Valitse\", en: \"Choose\", sv: \"V\u00E4lja\"}",
274
- "name": "default"
304
+ "name": "default",
305
+ "text": "{fi: \"Valitse\", en: \"Choose\", sv: \"V\u00E4lja\"}"
275
306
  }],
276
307
  "text": "Label for the select element which gets shown on mobile."
277
308
  },
278
309
  "attribute": "label",
279
310
  "reflect": false,
280
- "defaultValue": "getLocaleString(\n {\n fi: \"Valitse\",\n en: \"Choose\",\n sv: \"V\u00E4lj\",\n },\n this.language\n )"
311
+ "defaultValue": "getLocaleString(this.labelDefaults, this.language)"
281
312
  },
282
313
  "labelHidden": {
283
314
  "type": "boolean",
@@ -356,8 +387,8 @@ export class DuetTabGroup {
356
387
  "composed": true,
357
388
  "docs": {
358
389
  "tags": [{
359
- "text": "in favour of more specific duetTabChange event.\nCallback for when the value changed.",
360
- "name": "deprecated"
390
+ "name": "deprecated",
391
+ "text": "in favour of more specific duetTabChange event.\nCallback for when the value changed."
361
392
  }],
362
393
  "text": ""
363
394
  },
@@ -68,6 +68,25 @@ duet-tooltip {
68
68
  display: flex !important;
69
69
  }
70
70
 
71
+ .duet-textarea-wrapper {
72
+ position: relative;
73
+ }
74
+
75
+ .duet-textarea-placeholder {
76
+ position: absolute;
77
+ top: -9px;
78
+ left: 9px;
79
+ z-index: 200;
80
+ display: block;
81
+ width: auto;
82
+ max-width: 60%;
83
+ padding: 0 0.25rem;
84
+ overflow: hidden;
85
+ text-overflow: ellipsis;
86
+ white-space: nowrap;
87
+ background: white;
88
+ }
89
+
71
90
  .duet-textarea {
72
91
  padding: 15px !important;
73
92
  position: relative;
@@ -105,7 +105,7 @@ export class DuetTextarea {
105
105
  cleanValue(this.nativeInput, this.disallowPatternRegex);
106
106
  }
107
107
  this.value = this.nativeInput.value;
108
- this.isCaptionVisible = !!(this.caption || (this.placeholder && this.echoPlaceholder && this.value));
108
+ this.isCaptionVisible = !!this.caption;
109
109
  this.duetInput.emit({
110
110
  originalEvent: ev,
111
111
  value: this.value,
@@ -144,7 +144,7 @@ export class DuetTextarea {
144
144
  componentWillLoad() {
145
145
  inheritGlobalTheme(this);
146
146
  this.disallowedPatternChange();
147
- this.isCaptionVisible = !!(this.caption || (this.placeholder && this.echoPlaceholder && this.value));
147
+ this.isCaptionVisible = !!this.caption;
148
148
  if (this.counter && this.maxlength == null) {
149
149
  console.warn("[DUET WARNING]: counter will only take effect if maxlength is set");
150
150
  }
@@ -183,8 +183,9 @@ export class DuetTextarea {
183
183
  h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label),
184
184
  this.tooltip && (h("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)),
185
185
  this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)),
186
- this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, size: "small" }, this.placeholder)),
187
- h("textarea", { onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", required: this.required, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier }),
186
+ h("div", { class: "duet-textarea-wrapper" },
187
+ this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)),
188
+ h("textarea", { onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, placeholder: this.placeholder, spellcheck: "false", required: this.required, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier })),
188
189
  h("duet-grid", { alignment: "stretch" },
189
190
  h("duet-grid-item", { margin: "none", fill: true },
190
191
  h("div", { class: "duet-textarea-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h("span", null, this.error))),