@duetds/components 5.0.5 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/hydrate/index.js +482 -19
  2. package/lib/cjs/duet-action-button.cjs.entry.js +5 -5
  3. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  4. package/lib/cjs/duet-badge.cjs.entry.js +2 -2
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -4
  9. package/lib/cjs/duet-card.cjs.entry.js +4 -4
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +6 -6
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -4
  13. package/lib/cjs/duet-combobox.cjs.entry.js +390 -0
  14. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  15. package/lib/cjs/duet-date-picker.cjs.entry.js +5 -5
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +10 -8
  18. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  20. package/lib/cjs/duet-footer.cjs.entry.js +6 -6
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-header_2.cjs.entry.js +48 -11
  23. package/lib/cjs/duet-hero.cjs.entry.js +4 -4
  24. package/lib/cjs/duet-icon.cjs.entry.js +2 -2
  25. package/lib/cjs/duet-input_2.cjs.entry.js +19 -4
  26. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-list_2.cjs.entry.js +2 -2
  28. package/lib/cjs/duet-modal.cjs.entry.js +6 -6
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +4 -4
  30. package/lib/cjs/duet-number-input.cjs.entry.js +5 -5
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +5 -5
  32. package/lib/cjs/duet-progress.cjs.entry.js +4 -4
  33. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  34. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  35. package/lib/cjs/duet-scrollable_3.cjs.entry.js +12 -8
  36. package/lib/cjs/duet-select.cjs.entry.js +3 -3
  37. package/lib/cjs/duet-step_2.cjs.entry.js +3 -3
  38. package/lib/cjs/duet-textarea.cjs.entry.js +3 -3
  39. package/lib/cjs/duet-toggle.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-tooltip.cjs.entry.js +4 -4
  41. package/lib/cjs/duet-tray.cjs.entry.js +4 -4
  42. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  44. package/lib/cjs/duet.cjs.js +2 -2
  45. package/lib/cjs/{focus-utils-88e98997.js → focus-utils-b7b1bede.js} +1 -1
  46. package/lib/cjs/{index-ef094178.js → index-a521d11c.js} +1 -1
  47. package/lib/cjs/{input-utils-f3e3854c.js → input-utils-b5e8f524.js} +1 -1
  48. package/lib/cjs/{keyboard-utils-898cfe14.js → keyboard-utils-bb32119b.js} +3 -0
  49. package/lib/cjs/{language-utils-aa282901.js → language-utils-4f62a7db.js} +1 -1
  50. package/lib/cjs/loader.cjs.js +2 -2
  51. package/lib/cjs/{string-utils-267e3dbb.js → string-utils-5cadd058.js} +6 -0
  52. package/lib/cjs/themeable-component-940d3b50.js +15 -0
  53. package/lib/collection/collection-manifest.json +1 -0
  54. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +12 -0
  55. package/lib/collection/components/duet-combobox/duet-combobox-select.js +19 -0
  56. package/lib/collection/components/duet-combobox/duet-combobox.css +78 -0
  57. package/lib/collection/components/duet-combobox/duet-combobox.js +592 -0
  58. package/lib/collection/components/duet-footer/duet-footer.js +6 -2
  59. package/lib/collection/components/duet-header/duet-header.css +15 -0
  60. package/lib/collection/components/duet-header/duet-header.js +67 -5
  61. package/lib/collection/components/duet-input/duet-input.js +67 -1
  62. package/lib/collection/components/duet-tab-group/duet-tab-group.js +25 -3
  63. package/lib/collection/components/duet-upload/duet-upload.css +12 -0
  64. package/lib/collection/components/duet-upload/duet-upload.js +4 -1
  65. package/lib/collection/components/duet-upload/upload-editable-item-success.js +1 -1
  66. package/lib/collection/utils/input-utils.js +1 -1
  67. package/lib/collection/utils/string-utils.js +6 -0
  68. package/lib/collection/utils/themeable-component.js +5 -2
  69. package/lib/custom-elements-bundle/index.d.ts +6 -0
  70. package/lib/custom-elements-bundle/index.js +478 -31
  71. package/lib/duet/duet.esm.js +1 -1
  72. package/lib/duet/duet.js +1 -1
  73. package/lib/duet/{p-b06d63cb.entry.js → p-00c21573.entry.js} +1 -1
  74. package/lib/duet/{p-f1b62aca.entry.js → p-02ebff5d.entry.js} +1 -1
  75. package/lib/duet/{p-e81f1326.entry.js → p-0a4b7633.entry.js} +1 -1
  76. package/lib/duet/{p-db63fb3a.system.entry.js → p-0d165a50.system.entry.js} +1 -1
  77. package/lib/duet/{p-d2b5efc0.system.entry.js → p-1028c3a0.system.entry.js} +1 -1
  78. package/lib/duet/{p-8bca2ae9.system.entry.js → p-1111a916.system.entry.js} +1 -1
  79. package/lib/duet/{p-e1d56708.entry.js → p-11adc839.entry.js} +1 -1
  80. package/lib/duet/{p-b47892c9.entry.js → p-14f2d627.entry.js} +1 -1
  81. package/lib/duet/{p-1ccd57c6.entry.js → p-18fc1046.entry.js} +1 -1
  82. package/lib/duet/{p-298aff96.system.entry.js → p-1bf42e5a.system.entry.js} +1 -1
  83. package/lib/duet/p-1cb29dd2.system.js +4 -0
  84. package/lib/duet/{p-a7a1ece1.system.entry.js → p-1d2717f7.system.entry.js} +1 -1
  85. package/lib/duet/{p-84eb2808.entry.js → p-1f1eb2c6.entry.js} +1 -1
  86. package/lib/duet/p-2227bd88.entry.js +4 -0
  87. package/lib/duet/{p-71cdfd93.system.entry.js → p-2266dd2f.system.entry.js} +1 -1
  88. package/lib/duet/{p-217b9e24.entry.js → p-28efbf26.entry.js} +1 -1
  89. package/lib/duet/{p-d9ac5f05.entry.js → p-2ec15916.entry.js} +1 -1
  90. package/lib/duet/{p-ad77f9e2.entry.js → p-309e1d13.entry.js} +1 -1
  91. package/lib/duet/{p-adaede01.entry.js → p-3128467f.entry.js} +1 -1
  92. package/lib/duet/p-32358ab8.entry.js +4 -0
  93. package/lib/duet/{p-a37de615.system.entry.js → p-3292f542.system.entry.js} +1 -1
  94. package/lib/duet/{p-1bb6c66f.system.entry.js → p-33473844.system.entry.js} +1 -1
  95. package/lib/duet/{p-f4c60fd8.system.entry.js → p-33701731.system.entry.js} +1 -1
  96. package/lib/duet/{p-92722c37.system.entry.js → p-3762c001.system.entry.js} +1 -1
  97. package/lib/duet/{p-b110c837.entry.js → p-378615ba.entry.js} +1 -1
  98. package/lib/duet/{p-ea4674fd.system.entry.js → p-37ec8cc0.system.entry.js} +1 -1
  99. package/lib/duet/{p-68fecc14.system.entry.js → p-388ccb59.system.entry.js} +1 -1
  100. package/lib/duet/{p-2b1b8246.entry.js → p-39141813.entry.js} +1 -1
  101. package/lib/duet/p-411d8bf6.entry.js +4 -0
  102. package/lib/duet/{p-5d6f8c04.entry.js → p-42042a04.entry.js} +1 -1
  103. package/lib/duet/{p-90223d57.entry.js → p-4990454b.entry.js} +1 -1
  104. package/lib/duet/{p-689fe862.entry.js → p-4cb101e7.entry.js} +1 -1
  105. package/lib/duet/p-54f35a79.js +4 -0
  106. package/lib/duet/p-56118313.js +4 -0
  107. package/lib/duet/{p-16df6ccc.system.entry.js → p-56834d68.system.entry.js} +1 -1
  108. package/lib/duet/p-5a9d75e1.js +4 -0
  109. package/lib/duet/{p-7dbf8797.system.entry.js → p-5d223c1b.system.entry.js} +1 -1
  110. package/lib/duet/{p-1cfeab55.system.entry.js → p-5dc7ecff.system.entry.js} +1 -1
  111. package/lib/duet/{p-b985a189.entry.js → p-5e46fd23.entry.js} +1 -1
  112. package/lib/duet/{p-cbd12107.system.entry.js → p-5ea44650.system.entry.js} +1 -1
  113. package/lib/duet/{p-a96ead6c.entry.js → p-63c4fa58.entry.js} +1 -1
  114. package/lib/duet/{p-1144c927.entry.js → p-6440a77d.entry.js} +1 -1
  115. package/lib/duet/{p-fdf8fba5.entry.js → p-6a164c72.entry.js} +1 -1
  116. package/lib/duet/p-6b03322b.system.js +4 -0
  117. package/lib/duet/p-6bfd3066.system.entry.js +4 -0
  118. package/lib/duet/{p-d98ed960.entry.js → p-6d85cb27.entry.js} +1 -1
  119. package/lib/duet/{p-d688612f.entry.js → p-6eb9415c.entry.js} +1 -1
  120. package/lib/duet/p-6ee89e1c.entry.js +4 -0
  121. package/lib/duet/{p-27eac9a4.entry.js → p-70d5c815.entry.js} +1 -1
  122. package/lib/duet/{p-2c65e170.entry.js → p-77151f3f.entry.js} +1 -1
  123. package/lib/duet/{p-a3bd8a71.entry.js → p-7a24425d.entry.js} +1 -1
  124. package/lib/duet/{p-a52c08c6.entry.js → p-7e46cb73.entry.js} +1 -1
  125. package/lib/duet/{p-04145769.system.js → p-82d3171d.system.js} +1 -1
  126. package/lib/duet/{p-eb7c1a1d.system.entry.js → p-86565a1a.system.entry.js} +2 -2
  127. package/lib/duet/{p-85b2213b.system.entry.js → p-87d500c2.system.entry.js} +1 -1
  128. package/lib/duet/{p-128983f7.system.entry.js → p-88a9fc7c.system.entry.js} +1 -1
  129. package/lib/duet/{p-123c8434.system.entry.js → p-89564214.system.entry.js} +1 -1
  130. package/lib/duet/{p-97bdc2bf.entry.js → p-8a0299fb.entry.js} +1 -1
  131. package/lib/duet/{p-e0b5e649.entry.js → p-906611b7.entry.js} +1 -1
  132. package/lib/duet/{p-f414ff23.system.entry.js → p-918ad15f.system.entry.js} +1 -1
  133. package/lib/duet/{p-00db0857.system.entry.js → p-971f8880.system.entry.js} +1 -1
  134. package/lib/duet/{p-f125dfff.system.js → p-99457149.system.js} +1 -1
  135. package/lib/duet/{p-ef99ea4d.entry.js → p-a54fb28f.entry.js} +1 -1
  136. package/lib/duet/p-a63f753e.system.js +4 -0
  137. package/lib/duet/{p-1a2ab8e8.system.entry.js → p-a6974134.system.entry.js} +1 -1
  138. package/lib/duet/{p-285e2473.system.entry.js → p-a87a33f4.system.entry.js} +2 -2
  139. package/lib/duet/{p-30a28555.system.entry.js → p-a9e9112d.system.entry.js} +1 -1
  140. package/lib/duet/p-abf8eaf7.js +4 -0
  141. package/lib/duet/{p-4c8d801e.system.entry.js → p-ae1e63fc.system.entry.js} +1 -1
  142. package/lib/duet/{p-2495cec7.system.entry.js → p-b0bde198.system.entry.js} +1 -1
  143. package/lib/duet/{p-d494f1a3.system.entry.js → p-b57856ea.system.entry.js} +1 -1
  144. package/lib/duet/p-b6d51921.system.js +4 -0
  145. package/lib/duet/{p-b5bc8221.entry.js → p-b7906516.entry.js} +1 -1
  146. package/lib/duet/{p-36e7114b.system.entry.js → p-bac34cd4.system.entry.js} +1 -1
  147. package/lib/duet/p-bb1a594c.entry.js +4 -0
  148. package/lib/duet/{p-ea5a73c3.system.entry.js → p-bc0356dd.system.entry.js} +1 -1
  149. package/lib/duet/{p-87bedb24.system.entry.js → p-be1bc370.system.entry.js} +1 -1
  150. package/lib/duet/p-bef4f0ab.entry.js +4 -0
  151. package/lib/duet/{p-9a8d5b11.system.js → p-c466bad9.system.js} +1 -1
  152. package/lib/duet/{p-c5037594.entry.js → p-c4c1c9e8.entry.js} +1 -1
  153. package/lib/duet/{p-aa16ca33.system.entry.js → p-c512a307.system.entry.js} +1 -1
  154. package/lib/duet/{p-912eed2f.entry.js → p-c5f6ab22.entry.js} +1 -1
  155. package/lib/duet/{p-17a8d23c.system.entry.js → p-c76f0697.system.entry.js} +1 -1
  156. package/lib/duet/{p-6733b42f.js → p-c8698d8a.js} +1 -1
  157. package/lib/duet/p-d281c96e.system.entry.js +4 -0
  158. package/lib/duet/{p-9fccab71.entry.js → p-d74e231c.entry.js} +1 -1
  159. package/lib/duet/p-d91eec1f.system.entry.js +4 -0
  160. package/lib/duet/{p-b631407a.system.entry.js → p-df4857f8.system.entry.js} +1 -1
  161. package/lib/duet/{p-086325ff.system.entry.js → p-e073de9a.system.entry.js} +1 -1
  162. package/lib/duet/{p-ee6d9bc6.entry.js → p-e3945d28.entry.js} +1 -1
  163. package/lib/duet/p-ede854e1.js +4 -0
  164. package/lib/duet/p-f233cbe6.js +4 -0
  165. package/lib/duet/{p-70fafc98.system.js → p-f69b64c9.system.js} +1 -1
  166. package/lib/duet/{p-901ddd73.system.entry.js → p-f708dc6c.system.entry.js} +1 -1
  167. package/lib/duet/{p-f056be12.entry.js → p-f7aa0500.entry.js} +1 -1
  168. package/lib/duet/{p-104c3fa5.system.entry.js → p-f8f31ff0.system.entry.js} +1 -1
  169. package/lib/duet/{p-42d3a162.system.entry.js → p-f9784014.system.entry.js} +1 -1
  170. package/lib/duet/{p-c0071398.system.entry.js → p-fbfc5798.system.entry.js} +1 -1
  171. package/lib/duet/{p-5d997107.entry.js → p-fc02305a.entry.js} +1 -1
  172. package/lib/esm/duet-action-button.entry.js +5 -5
  173. package/lib/esm/duet-alert.entry.js +4 -4
  174. package/lib/esm/duet-badge.entry.js +2 -2
  175. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  176. package/lib/esm/duet-breadcrumbs.entry.js +4 -4
  177. package/lib/esm/duet-button_2.entry.js +4 -4
  178. package/lib/esm/duet-caption_4.entry.js +4 -4
  179. package/lib/esm/duet-card.entry.js +4 -4
  180. package/lib/esm/duet-checkbox.entry.js +2 -2
  181. package/lib/esm/duet-choice_2.entry.js +6 -6
  182. package/lib/esm/duet-collapsible.entry.js +4 -4
  183. package/lib/esm/duet-combobox.entry.js +386 -0
  184. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  185. package/lib/esm/duet-date-picker.entry.js +5 -5
  186. package/lib/esm/duet-divider_2.entry.js +2 -2
  187. package/lib/esm/duet-editable-table_3.entry.js +10 -8
  188. package/lib/esm/duet-empty-state.entry.js +2 -2
  189. package/lib/esm/duet-fieldset.entry.js +2 -2
  190. package/lib/esm/duet-footer.entry.js +6 -6
  191. package/lib/esm/duet-grid_2.entry.js +2 -2
  192. package/lib/esm/duet-header_2.entry.js +48 -11
  193. package/lib/esm/duet-hero.entry.js +4 -4
  194. package/lib/esm/duet-icon.entry.js +2 -2
  195. package/lib/esm/duet-input_2.entry.js +19 -4
  196. package/lib/esm/duet-layout.entry.js +1 -1
  197. package/lib/esm/duet-list_2.entry.js +2 -2
  198. package/lib/esm/duet-modal.entry.js +6 -6
  199. package/lib/esm/duet-notification_2.entry.js +4 -4
  200. package/lib/esm/duet-number-input.entry.js +5 -5
  201. package/lib/esm/duet-pagination_2.entry.js +5 -5
  202. package/lib/esm/duet-progress.entry.js +4 -4
  203. package/lib/esm/duet-radio_2.entry.js +2 -2
  204. package/lib/esm/duet-range-slider.entry.js +2 -2
  205. package/lib/esm/duet-scrollable_3.entry.js +12 -8
  206. package/lib/esm/duet-select.entry.js +3 -3
  207. package/lib/esm/duet-step_2.entry.js +3 -3
  208. package/lib/esm/duet-textarea.entry.js +3 -3
  209. package/lib/esm/duet-toggle.entry.js +2 -2
  210. package/lib/esm/duet-tooltip.entry.js +4 -4
  211. package/lib/esm/duet-tray.entry.js +4 -4
  212. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  213. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  214. package/lib/esm/duet.js +2 -2
  215. package/lib/esm/{focus-utils-d02ee9d2.js → focus-utils-8681b5ae.js} +1 -1
  216. package/lib/esm/{index-3cfa1b7e.js → index-ff5be49a.js} +1 -1
  217. package/lib/esm/{input-utils-f4cafee1.js → input-utils-de45e099.js} +1 -1
  218. package/lib/esm/{keyboard-utils-6eb55cd5.js → keyboard-utils-88ea1007.js} +2 -1
  219. package/lib/esm/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  220. package/lib/esm/loader.js +2 -2
  221. package/lib/esm/{string-utils-2f1793b8.js → string-utils-5954f458.js} +6 -0
  222. package/lib/esm/themeable-component-e8fc98bf.js +13 -0
  223. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  224. package/lib/esm-es5/duet-alert.entry.js +1 -1
  225. package/lib/esm-es5/duet-badge.entry.js +1 -1
  226. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  227. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  228. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  229. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  230. package/lib/esm-es5/duet-card.entry.js +1 -1
  231. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  232. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  233. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  234. package/lib/esm-es5/duet-combobox.entry.js +4 -0
  235. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  236. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  237. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  238. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  239. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  240. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  241. package/lib/esm-es5/duet-footer.entry.js +1 -1
  242. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  243. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  244. package/lib/esm-es5/duet-hero.entry.js +1 -1
  245. package/lib/esm-es5/duet-icon.entry.js +1 -1
  246. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  247. package/lib/esm-es5/duet-layout.entry.js +1 -1
  248. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  249. package/lib/esm-es5/duet-modal.entry.js +1 -1
  250. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  251. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  252. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  253. package/lib/esm-es5/duet-progress.entry.js +1 -1
  254. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  255. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  256. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  257. package/lib/esm-es5/duet-select.entry.js +1 -1
  258. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  259. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  260. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  261. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  262. package/lib/esm-es5/duet-tray.entry.js +1 -1
  263. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  264. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  265. package/lib/esm-es5/duet.js +1 -1
  266. package/lib/esm-es5/{focus-utils-d02ee9d2.js → focus-utils-8681b5ae.js} +1 -1
  267. package/lib/esm-es5/index-ff5be49a.js +4 -0
  268. package/lib/esm-es5/input-utils-de45e099.js +4 -0
  269. package/lib/esm-es5/keyboard-utils-88ea1007.js +4 -0
  270. package/lib/esm-es5/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  271. package/lib/esm-es5/loader.js +1 -1
  272. package/lib/esm-es5/string-utils-5954f458.js +4 -0
  273. package/lib/esm-es5/themeable-component-e8fc98bf.js +4 -0
  274. package/lib/html.html-data.json +5325 -0
  275. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +8 -0
  276. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +14 -0
  277. package/lib/types/components/duet-combobox/duet-combobox.d.ts +131 -0
  278. package/lib/types/components/duet-footer/duet-footer.d.ts +4 -0
  279. package/lib/types/components/duet-header/duet-header.d.ts +16 -0
  280. package/lib/types/components/duet-input/duet-input.d.ts +13 -0
  281. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +4 -0
  282. package/lib/types/components.d.ts +120 -1
  283. package/package.json +5 -5
  284. package/lib/cjs/themeable-component-0c1be552.js +0 -12
  285. package/lib/duet/p-195f73d6.entry.js +0 -4
  286. package/lib/duet/p-2764f081.js +0 -4
  287. package/lib/duet/p-74780bca.system.js +0 -4
  288. package/lib/duet/p-7e2e9a28.js +0 -4
  289. package/lib/duet/p-898f30a5.js +0 -4
  290. package/lib/duet/p-98228d0a.system.js +0 -4
  291. package/lib/duet/p-986779fb.js +0 -4
  292. package/lib/duet/p-9a945278.system.js +0 -4
  293. package/lib/duet/p-9dfcd29a.js +0 -4
  294. package/lib/duet/p-a0b09d95.system.entry.js +0 -4
  295. package/lib/duet/p-a28cf57b.js +0 -4
  296. package/lib/duet/p-a8ff3a13.entry.js +0 -4
  297. package/lib/duet/p-b769b313.entry.js +0 -4
  298. package/lib/duet/p-c9097a6c.system.entry.js +0 -4
  299. package/lib/duet/p-d70b3f27.entry.js +0 -4
  300. package/lib/duet/p-d8c526b4.entry.js +0 -4
  301. package/lib/duet/p-efaa0c04.system.js +0 -4
  302. package/lib/esm/themeable-component-572685dd.js +0 -10
  303. package/lib/esm-es5/index-3cfa1b7e.js +0 -4
  304. package/lib/esm-es5/input-utils-f4cafee1.js +0 -4
  305. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +0 -4
  306. package/lib/esm-es5/string-utils-2f1793b8.js +0 -4
  307. package/lib/esm-es5/themeable-component-572685dd.js +0 -4
@@ -0,0 +1,8 @@
1
+ import { FunctionalComponent } from "../../stencil-public-runtime";
2
+ import { DuetComboboxItem } from "./duet-combobox";
3
+ export interface DuetComboboxSelectSingleProps {
4
+ item: DuetComboboxItem;
5
+ search: string;
6
+ selected: boolean;
7
+ }
8
+ export declare const SelectSingle: FunctionalComponent<DuetComboboxSelectSingleProps>;
@@ -0,0 +1,14 @@
1
+ import { FunctionalComponent } from "../../stencil-public-runtime";
2
+ import { DuetComboboxItem } from "./duet-combobox";
3
+ interface DuetComboboxSelect {
4
+ item: DuetComboboxItem;
5
+ active: boolean;
6
+ search: string;
7
+ total: number;
8
+ clickHandler?: any;
9
+ keyHandler?: any;
10
+ label?: string;
11
+ selected: boolean;
12
+ }
13
+ export declare const DuetComboBoxSelect: FunctionalComponent<DuetComboboxSelect>;
14
+ export {};
@@ -0,0 +1,131 @@
1
+ import { EventEmitter } from "../../stencil-public-runtime";
2
+ import { DuetTheme } from "../../common-types";
3
+ import { DuetLangObject } from "../../utils/language-utils";
4
+ import { ThemeableComponent } from "../../utils/themeable-component";
5
+ export declare type DuetComboboxEvent = {
6
+ originalEvent?: Event;
7
+ component: "duet-combobox";
8
+ value: any;
9
+ item: DuetComboboxItem;
10
+ };
11
+ export declare type DuetComboboxItem = {
12
+ id?: number;
13
+ value: any;
14
+ name: string;
15
+ html?: string;
16
+ tags?: string[];
17
+ };
18
+ export declare class DuetCombobox implements ThemeableComponent {
19
+ private input?;
20
+ private listElement;
21
+ private listContainer;
22
+ private isSafari;
23
+ private resizeObserver;
24
+ element: HTMLDivElement;
25
+ processedItems: DuetComboboxItem[];
26
+ inputWidth: number;
27
+ inputValue: string;
28
+ selectionMsg: string;
29
+ listOpen: boolean;
30
+ selectedItems?: Set<number>;
31
+ activeItem?: number;
32
+ activeItemHandler(state: any): void;
33
+ /**
34
+ * Placeholder defaults
35
+ * @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
36
+ */
37
+ accessibleLabelDefaults: DuetLangObject | string;
38
+ /**
39
+ * Hint text to display before the user types into the date picker input.
40
+ * @default {
41
+ * heading: "Valitse:",
42
+ * item: "{0}, ({1}/{2})",
43
+ * itemFiltered: "{0}, ({1}/{2} - {3} suodatettu"
44
+ * }
45
+ */
46
+ accessibleLabels: Record<string, string>;
47
+ /**
48
+ * Theme of the combobox.
49
+ */
50
+ theme: DuetTheme;
51
+ /**
52
+ * Force the user to make a selection (typing things in the input field will only be used for list search)
53
+ */
54
+ force: boolean;
55
+ /**
56
+ * Array of item objects.
57
+ */
58
+ items: any;
59
+ /**
60
+ * A hook to overwrite how the values are displayed in the input field after a User select an item
61
+ * @example (item) => `${item.name} (${item.value})`
62
+ * @default undefined
63
+ */
64
+ formatter: (item: DuetComboboxItem) => string;
65
+ /**
66
+ * Object containing selected item/s
67
+ */
68
+ value: string;
69
+ /**
70
+ * Emitted when a keyboard input occurred.
71
+ */
72
+ duetChange: EventEmitter<DuetComboboxEvent>;
73
+ handleDocumentClick(e: MouseEvent): void;
74
+ /**
75
+ * Exposes a formatter function to format the item value displayed after a user selects an item
76
+ * @param item: DuetComboboxItem
77
+ */
78
+ formatItem(item: DuetComboboxItem): Promise<string>;
79
+ /**
80
+ * Component lifecycle events.
81
+ */
82
+ componentWillLoad(): void;
83
+ connectedCallback(): void;
84
+ disconnectedCallback(): void;
85
+ componentDidLoad(): void;
86
+ /**
87
+ * Updates the input text based on the selected/clicked items.
88
+ * @param event - event
89
+ *'param item: DuetComboboxItem - the item that was selected
90
+ */
91
+ private onListClick;
92
+ /**
93
+ * Helper function that checks inputs in the field, compares it with the item list and returns true when inputvalue matches selectedItem id
94
+ * TODO: this should be disabled in multiple mode
95
+ */
96
+ private shouldListBeFiltered;
97
+ /**
98
+ * Helper function that return correct collection depending on filter status returend by shouldListBeFiltered
99
+ */
100
+ private returnFilteredOrNonFiltered;
101
+ /**
102
+ * Updates the selected items based on the item id.
103
+ * @param id
104
+ * @private
105
+ */
106
+ private updateSelectedItems;
107
+ /**
108
+ * Updates the input text based on the selected/clicked items.
109
+ * @param bool -override to clear if invoked by "click outside"
110
+ */
111
+ private updateInputText;
112
+ private updateInputValue;
113
+ private handleInputKeyDownEvent;
114
+ private selectActiveItem;
115
+ private announceActive;
116
+ private scrollToActive;
117
+ private formatLabel;
118
+ /**
119
+ * Filter the items based on the input value
120
+ */
121
+ private getFilteredItems;
122
+ /**
123
+ * Sort the return from getFilteredItems so that any item with and item.id that matches this.selectedItems is placed first
124
+ */
125
+ private sortFilteredItems;
126
+ /**
127
+ * render() function
128
+ * Always the last one in the class.
129
+ */
130
+ render(): any;
131
+ }
@@ -19,6 +19,10 @@ export declare type DuetFooterChangeEvent = {
19
19
  originalEvent: Event;
20
20
  };
21
21
  export declare type DuetFooterAnalyticsEvent = DuetAnalyticsEvent<"duet-footer">;
22
+ /**
23
+ * @part top - piercing selector for styling the top part of the footer
24
+ * @part menu - piercing selector for styling the menu section of the footer
25
+ */
22
26
  export declare class DuetFooter implements ThemeableComponent {
23
27
  /**
24
28
  * Reference to host HTML element.
@@ -23,6 +23,10 @@ export declare type DuetHeaderLanguageItem = DuetHeaderItem & {
23
23
  };
24
24
  export declare type DuetHeaderSession = DuetHeaderItem & {
25
25
  type: "login" | "logout";
26
+ sessionItems?: [{
27
+ label: string | undefined;
28
+ items: DuetHeaderItem[];
29
+ }];
26
30
  };
27
31
  export declare type DuetHeaderSearch = DuetHeaderItem;
28
32
  export declare type DuetHeaderChangeEvent = {
@@ -31,6 +35,10 @@ export declare type DuetHeaderChangeEvent = {
31
35
  component: "duet-header";
32
36
  };
33
37
  export declare type DuetHeaderAnalyticsEvent = DuetAnalyticsEvent<"duet-header">;
38
+ export declare type DuetHeaderMobileNavToggleEvent = {
39
+ originalEvent: Event;
40
+ open: boolean;
41
+ };
34
42
  export interface I18nText {
35
43
  skipLabel: string;
36
44
  changeLanguage: string;
@@ -52,6 +60,8 @@ export declare class DuetHeader implements ThemeableComponent {
52
60
  private hasLanguageChanged;
53
61
  private languageItemsEl;
54
62
  private languageItemsButtonEl;
63
+ private sessionItemsEl;
64
+ private sessionItemsButtonEl;
55
65
  private segmentItemsEl;
56
66
  private segmentItemsButtonEl;
57
67
  private navigationEl;
@@ -68,6 +78,7 @@ export declare class DuetHeader implements ThemeableComponent {
68
78
  */
69
79
  isContactOpen: boolean;
70
80
  isLanguageOpen: boolean;
81
+ isSessionOpen: boolean;
71
82
  isSlideOutOpen: boolean;
72
83
  isSegmentOpen: boolean;
73
84
  openMenu: string;
@@ -297,6 +308,10 @@ export declare class DuetHeader implements ThemeableComponent {
297
308
  * accessed via **event.detail.analyticsId**
298
309
  */
299
310
  duetAnalytics: EventEmitter<DuetHeaderAnalyticsEvent>;
311
+ /**
312
+ * Event raised mobile navigation is toggled. **event.detail.open** shows the current status of the navigation.
313
+ */
314
+ duetMobileNavToggle: EventEmitter<DuetHeaderMobileNavToggleEvent>;
300
315
  /**
301
316
  * Component lifecycle events.
302
317
  */
@@ -312,6 +327,7 @@ export declare class DuetHeader implements ThemeableComponent {
312
327
  private handleLanguageClick;
313
328
  private handleClick;
314
329
  private handleSessionClick;
330
+ private handleSessionItemClick;
315
331
  private handleSearchClick;
316
332
  private handleUserClick;
317
333
  private handleBackClick;
@@ -43,10 +43,18 @@ export declare class DuetInput implements ThemeableComponent, InputComponent {
43
43
  * Indicates the id of a component owned by the input.
44
44
  */
45
45
  accessibleOwns: string;
46
+ /**
47
+ * Expanded state of the element, if needed
48
+ */
49
+ accessibleExpanded: string;
46
50
  /**
47
51
  * Indicates the id of a component that describes the input.
48
52
  */
49
53
  accessibleDescribedBy: string;
54
+ /**
55
+ * Indicates value of any popup element associated with the input.
56
+ */
57
+ accessibleHasPopup: string;
50
58
  /**
51
59
  * Set the amount of time, in milliseconds, to wait to trigger the duetChange
52
60
  * event after each keystroke.
@@ -204,6 +212,11 @@ export declare class DuetInput implements ThemeableComponent, InputComponent {
204
212
  * `input.focus()`.
205
213
  */
206
214
  setFocus(options?: FocusOptions): Promise<void>;
215
+ /**
216
+ * Reset the cursor position on the native element
217
+ * `input.resetCursor()`.
218
+ */
219
+ resetCursor(): Promise<void>;
207
220
  /**
208
221
  * render() function
209
222
  * Always the last one in the class.
@@ -40,6 +40,10 @@ export declare class DuetTabGroup implements ThemeableComponent {
40
40
  * Whether the tab-group collapses to a select dropwdown in minor breakpoints
41
41
  */
42
42
  collapses: boolean;
43
+ /**
44
+ * Aria label for the entire tab-group
45
+ */
46
+ accessibleLabel: string;
43
47
  /**
44
48
  * Style variation of the tab group.
45
49
  */
@@ -15,6 +15,7 @@ import { DuetCardPadding, DuetCardToggleEvent, DuetCardVariation } from "./compo
15
15
  import { DuetCheckboxEvent } from "./components/duet-checkbox/duet-checkbox";
16
16
  import { DuetChoiceEvent, DuetChoiceType } from "./components/duet-choice/duet-choice";
17
17
  import { DuetCollapsibleHeadingFontSize, DuetCollapsibleToggleEvent, DuetCollapsibleWeight } from "./components/duet-collapsible/duet-collapsible";
18
+ import { DuetComboboxEvent, DuetComboboxItem } from "./components/duet-combobox/duet-combobox";
18
19
  import { DuetCookieConsentEvent } from "./components/duet-cookie-consent/duet-cookie-consent";
19
20
  import { DuetDatePickerChangeEvent, DuetDatePickerDirection, DuetDatePickerFocusEvent } from "./components/duet-date-picker/duet-date-picker";
20
21
  import { DuetDividerMargin } from "./components/duet-divider/duet-divider";
@@ -23,7 +24,7 @@ import { DuetEditableTableActions, DuetEditableTableColumns, DuetEditableTableRo
23
24
  import { DuetEmptyStateSize } from "./components/duet-empty-state/duet-empty-state";
24
25
  import { DuetFooterAnalyticsEvent, DuetFooterChangeEvent, DuetFooterVariation } from "./components/duet-footer/duet-footer";
25
26
  import { DuetGridAlignment, DuetGridDistribution, DuetGridMobileAlignment } from "./components/duet-grid/duet-grid";
26
- import { DuetHeaderAnalyticsEvent, DuetHeaderChangeEvent, I18nText } from "./components/duet-header/duet-header";
27
+ import { DuetHeaderAnalyticsEvent, DuetHeaderChangeEvent, DuetHeaderMobileNavToggleEvent, I18nText } from "./components/duet-header/duet-header";
27
28
  import { DuetHeadingWeight } from "./components/duet-heading/duet-heading";
28
29
  import { DuetHeroAnalyticsEvent, DuetHeroButtonData, DuetHeroClickEvent, DuetHeroIconSize, DuetHeroVariation } from "./components/duet-hero/duet-hero";
29
30
  import { DuetIconSize } from "./components/duet-icon/duet-icon";
@@ -688,6 +689,45 @@ export namespace Components {
688
689
  */
689
690
  "theme": DuetTheme;
690
691
  }
692
+ interface DuetCombobox {
693
+ /**
694
+ * Placeholder defaults
695
+ * @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
696
+ */
697
+ "accessibleLabelDefaults": DuetLangObject | string;
698
+ /**
699
+ * Hint text to display before the user types into the date picker input.
700
+ * @default { heading: "Valitse:", item: "{0}, ({1}/{2})", itemFiltered: "{0}, ({1}/{2} - {3} suodatettu" }
701
+ */
702
+ "accessibleLabels": Record<string, string>;
703
+ /**
704
+ * Force the user to make a selection (typing things in the input field will only be used for list search)
705
+ */
706
+ "force": boolean;
707
+ /**
708
+ * Exposes a formatter function to format the item value displayed after a user selects an item
709
+ * @param item : DuetComboboxItem
710
+ */
711
+ "formatItem": (item: DuetComboboxItem) => Promise<string>;
712
+ /**
713
+ * A hook to overwrite how the values are displayed in the input field after a User select an item
714
+ * @example (item) => `${item.name} (${item.value})`
715
+ * @default undefined
716
+ */
717
+ "formatter": (item: DuetComboboxItem) => string;
718
+ /**
719
+ * Array of item objects.
720
+ */
721
+ "items": any;
722
+ /**
723
+ * Theme of the combobox.
724
+ */
725
+ "theme": DuetTheme;
726
+ /**
727
+ * Object containing selected item/s
728
+ */
729
+ "value": string;
730
+ }
691
731
  interface DuetCookieConsent {
692
732
  /**
693
733
  * Adds accessible label for the cookie consent ok button.
@@ -1316,6 +1356,14 @@ export namespace Components {
1316
1356
  * Indicates the id of a component that describes the input.
1317
1357
  */
1318
1358
  "accessibleDescribedBy": string;
1359
+ /**
1360
+ * Expanded state of the element, if needed
1361
+ */
1362
+ "accessibleExpanded": string;
1363
+ /**
1364
+ * Indicates value of any popup element associated with the input.
1365
+ */
1366
+ "accessibleHasPopup": string;
1319
1367
  /**
1320
1368
  * Indicates the id of a component owned by the input.
1321
1369
  */
@@ -1404,6 +1452,10 @@ export namespace Components {
1404
1452
  * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them. When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.
1405
1453
  */
1406
1454
  "required": boolean;
1455
+ /**
1456
+ * Reset the cursor position on the native element `input.resetCursor()`.
1457
+ */
1458
+ "resetCursor": () => Promise<void>;
1407
1459
  /**
1408
1460
  * Defines a specific role attribute for the input.
1409
1461
  */
@@ -2440,6 +2492,10 @@ export namespace Components {
2440
2492
  "selected": boolean;
2441
2493
  }
2442
2494
  interface DuetTabGroup {
2495
+ /**
2496
+ * Aria label for the entire tab-group
2497
+ */
2498
+ "accessibleLabel": string;
2443
2499
  /**
2444
2500
  * Whether the tab-group collapses to a select dropwdown in minor breakpoints
2445
2501
  */
@@ -3102,6 +3158,12 @@ declare global {
3102
3158
  prototype: HTMLDuetCollapsibleElement;
3103
3159
  new (): HTMLDuetCollapsibleElement;
3104
3160
  };
3161
+ interface HTMLDuetComboboxElement extends Components.DuetCombobox, HTMLStencilElement {
3162
+ }
3163
+ var HTMLDuetComboboxElement: {
3164
+ prototype: HTMLDuetComboboxElement;
3165
+ new (): HTMLDuetComboboxElement;
3166
+ };
3105
3167
  interface HTMLDuetCookieConsentElement extends Components.DuetCookieConsent, HTMLStencilElement {
3106
3168
  }
3107
3169
  var HTMLDuetCookieConsentElement: {
@@ -3397,6 +3459,7 @@ declare global {
3397
3459
  "duet-choice": HTMLDuetChoiceElement;
3398
3460
  "duet-choice-group": HTMLDuetChoiceGroupElement;
3399
3461
  "duet-collapsible": HTMLDuetCollapsibleElement;
3462
+ "duet-combobox": HTMLDuetComboboxElement;
3400
3463
  "duet-cookie-consent": HTMLDuetCookieConsentElement;
3401
3464
  "duet-date-picker": HTMLDuetDatePickerElement;
3402
3465
  "duet-divider": HTMLDuetDividerElement;
@@ -4105,6 +4168,44 @@ declare namespace LocalJSX {
4105
4168
  */
4106
4169
  "theme"?: DuetTheme;
4107
4170
  }
4171
+ interface DuetCombobox {
4172
+ /**
4173
+ * Placeholder defaults
4174
+ * @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
4175
+ */
4176
+ "accessibleLabelDefaults"?: DuetLangObject | string;
4177
+ /**
4178
+ * Hint text to display before the user types into the date picker input.
4179
+ * @default { heading: "Valitse:", item: "{0}, ({1}/{2})", itemFiltered: "{0}, ({1}/{2} - {3} suodatettu" }
4180
+ */
4181
+ "accessibleLabels"?: Record<string, string>;
4182
+ /**
4183
+ * Force the user to make a selection (typing things in the input field will only be used for list search)
4184
+ */
4185
+ "force"?: boolean;
4186
+ /**
4187
+ * A hook to overwrite how the values are displayed in the input field after a User select an item
4188
+ * @example (item) => `${item.name} (${item.value})`
4189
+ * @default undefined
4190
+ */
4191
+ "formatter"?: (item: DuetComboboxItem) => string;
4192
+ /**
4193
+ * Array of item objects.
4194
+ */
4195
+ "items"?: any;
4196
+ /**
4197
+ * Emitted when a keyboard input occurred.
4198
+ */
4199
+ "onDuetChange"?: (event: CustomEvent<DuetComboboxEvent>) => void;
4200
+ /**
4201
+ * Theme of the combobox.
4202
+ */
4203
+ "theme"?: DuetTheme;
4204
+ /**
4205
+ * Object containing selected item/s
4206
+ */
4207
+ "value"?: string;
4208
+ }
4108
4209
  interface DuetCookieConsent {
4109
4210
  /**
4110
4211
  * Adds accessible label for the cookie consent ok button.
@@ -4563,6 +4664,10 @@ declare namespace LocalJSX {
4563
4664
  * Event raised when a user has clicked the logo. You can prevent the default browser functionality by calling **event.detail.originalEvent.preventDefault()** inside your listener. Additionally, the passed data is available via **event.detail.data**.
4564
4665
  */
4565
4666
  "onDuetLogoClick"?: (event: CustomEvent<DuetHeaderChangeEvent>) => void;
4667
+ /**
4668
+ * Event raised mobile navigation is toggled. **event.detail.open** shows the current status of the navigation.
4669
+ */
4670
+ "onDuetMobileNavToggle"?: (event: CustomEvent<DuetHeaderMobileNavToggleEvent>) => void;
4566
4671
  /**
4567
4672
  * Event for when a user has clicked the search link. You can prevent the default browser functionality by calling **event.detail.originalEvent.preventDefault()** inside your listener. Additionally, the passed data is available via **event.detail.data**.
4568
4673
  */
@@ -4807,6 +4912,14 @@ declare namespace LocalJSX {
4807
4912
  * Indicates the id of a component that describes the input.
4808
4913
  */
4809
4914
  "accessibleDescribedBy"?: string;
4915
+ /**
4916
+ * Expanded state of the element, if needed
4917
+ */
4918
+ "accessibleExpanded"?: string;
4919
+ /**
4920
+ * Indicates value of any popup element associated with the input.
4921
+ */
4922
+ "accessibleHasPopup"?: string;
4810
4923
  /**
4811
4924
  * Indicates the id of a component owned by the input.
4812
4925
  */
@@ -5957,6 +6070,10 @@ declare namespace LocalJSX {
5957
6070
  "selected"?: boolean;
5958
6071
  }
5959
6072
  interface DuetTabGroup {
6073
+ /**
6074
+ * Aria label for the entire tab-group
6075
+ */
6076
+ "accessibleLabel"?: string;
5960
6077
  /**
5961
6078
  * Whether the tab-group collapses to a select dropwdown in minor breakpoints
5962
6079
  */
@@ -6584,6 +6701,7 @@ declare namespace LocalJSX {
6584
6701
  "duet-choice": DuetChoice;
6585
6702
  "duet-choice-group": DuetChoiceGroup;
6586
6703
  "duet-collapsible": DuetCollapsible;
6704
+ "duet-combobox": DuetCombobox;
6587
6705
  "duet-cookie-consent": DuetCookieConsent;
6588
6706
  "duet-date-picker": DuetDatePicker;
6589
6707
  "duet-divider": DuetDivider;
@@ -6649,6 +6767,7 @@ declare module "@stencil/core" {
6649
6767
  "duet-choice": LocalJSX.DuetChoice & JSXBase.HTMLAttributes<HTMLDuetChoiceElement>;
6650
6768
  "duet-choice-group": LocalJSX.DuetChoiceGroup & JSXBase.HTMLAttributes<HTMLDuetChoiceGroupElement>;
6651
6769
  "duet-collapsible": LocalJSX.DuetCollapsible & JSXBase.HTMLAttributes<HTMLDuetCollapsibleElement>;
6770
+ "duet-combobox": LocalJSX.DuetCombobox & JSXBase.HTMLAttributes<HTMLDuetComboboxElement>;
6652
6771
  "duet-cookie-consent": LocalJSX.DuetCookieConsent & JSXBase.HTMLAttributes<HTMLDuetCookieConsentElement>;
6653
6772
  "duet-date-picker": LocalJSX.DuetDatePicker & JSXBase.HTMLAttributes<HTMLDuetDatePickerElement>;
6654
6773
  "duet-divider": LocalJSX.DuetDivider & JSXBase.HTMLAttributes<HTMLDuetDividerElement>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duetds/components",
3
- "version": "5.0.5",
3
+ "version": "5.1.2",
4
4
  "description": "This package includes Duet Design System Web Components and related utilities.",
5
5
  "bugs": {
6
6
  "email": "duetdesignsystem@lahitapiola.fi"
@@ -51,11 +51,11 @@
51
51
  "body-scroll-lock": "3.1.5"
52
52
  },
53
53
  "devDependencies": {
54
- "@duetds/fonts": "1.4.21",
55
- "@duetds/icons": "2.2.22",
54
+ "@duetds/fonts": "1.4.24",
55
+ "@duetds/icons": "2.3.1",
56
56
  "@duetds/stencil-angular-output-target": "0.0.2",
57
57
  "@duetds/stencil-react-output-target": "0.0.10",
58
- "@duetds/tokens": "2.5.4",
58
+ "@duetds/tokens": "2.5.7",
59
59
  "@koa/cors": "3.3.0",
60
60
  "@rollup/plugin-replace": "3.1.0",
61
61
  "@stencil/core": "2.15.0",
@@ -88,5 +88,5 @@
88
88
  "collection": "lib/collection/collection-manifest.json",
89
89
  "es2015": "lib/esm/index.js",
90
90
  "es2017": "lib/esm/index.js",
91
- "gitHead": "ce691ef662f6616589cf778a25b790f115d77f3f"
91
+ "gitHead": "db36e172176117fdff315a399e0217ec682922ca"
92
92
  }
@@ -1,12 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- 'use strict';
5
-
6
- const inheritGlobalTheme = (component) => {
7
- if (component.theme !== "default" && document.documentElement.classList.contains("duet-theme-turva")) {
8
- component.theme = "turva";
9
- }
10
- };
11
-
12
- exports.inheritGlobalTheme = inheritGlobalTheme;
@@ -1,4 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- import{r as t,h as e,H as o,g as i,c as a}from"./p-7e2e9a28.js";import{i as s}from"./p-a28cf57b.js";import{g as r,a as n}from"./p-2764f081.js";import{c as l}from"./p-c1325e35.js";import{d,b,a as u,c as h}from"./p-898f30a5.js";import"./p-986779fb.js";const c=class{constructor(e){t(this,e),this.currentIndex=0,this.tabListElement=void 0,this.tabListClass="duet-scrollable-list",this.tablistAtStart=!0,this.isTabContentSmallerThanWrapper=!1,this.tablistAtEnd=!1,this.childrenData={},this.resizeObserver=new ResizeObserver((t=>{var e,o,i,a;if(1===(null==t?void 0:t.length)){const s=null===(o=null===(e=t[0])||void 0===e?void 0:e.target)||void 0===o?void 0:o.getBoundingClientRect().width,r=null===(a=null===(i=t[0])||void 0===i?void 0:i.target)||void 0===a?void 0:a.scrollWidth;this.isTabContentSmallerThanWrapper=r>s+5}})),this.theme="",this.identifier="",this.selected=0}watchPropHandler(t){this.scrollToTab(t,"center")}componentWillLoad(){s(this);const t=this.host.children;this.childrenData={hasChildren:t&&t.length>0,numberOfChildren:t&&t.length}}componentDidLoad(){this.resizeObserver.observe(this.tabListElement)}disconnectedCallback(){this.resizeObserver.disconnect()}getLastVisibleElement(){const t=this.tabListElement.clientWidth;return Array.from(this.host.querySelectorAll("button")).findIndex((e=>e.getBoundingClientRect().x>t))}getFirstVisibleElement(){const t=this.host.querySelectorAll("button");return Array.from(t).map((t=>t.getBoundingClientRect().x-t.getBoundingClientRect().width)).findIndex((t=>t>0))}updateScrollButtons(t=this.tabListElement){t.scrollLeft<=0?this.tablistAtStart=!0:t.scrollLeft>0&&(this.tablistAtStart=!1),t.clientWidth+t.scrollLeft+10>=t.scrollWidth?this.tablistAtEnd=!0:t.clientWidth+t.scrollLeft+10<t.scrollWidth&&(this.tablistAtEnd=!1)}scrollToTab(t=this.currentIndex,e){if(!this.childrenData.hasChildren)return;t+1>=this.childrenData.numberOfChildren&&(t=this.childrenData.numberOfChildren-1),t<0&&(t=0);const o=this.host.querySelectorAll("button");let i=o[0].getBoundingClientRect().x,a=5;const s=()=>{if(o[0].getBoundingClientRect().x===i){if(a--,0!==a)return void window.requestAnimationFrame(s);this.updateScrollButtons()}else window.requestAnimationFrame(s),i=o[0].getBoundingClientRect().x};o[t].scrollIntoView({behavior:"smooth",inline:e}),window.requestAnimationFrame(s)}scrollLeft(){this.tablistAtEnd=!1;const t=this.getFirstVisibleElement()-1;this.scrollToTab(t,"center")}scrollRight(){this.tablistAtStart=!1;const t=this.getLastVisibleElement()+1;this.scrollToTab(t,"center")}render(){return e(o,{class:{"duet-theme-turva":"turva"===this.theme,"duet-theme-default":"default"===this.theme}},e("div",{class:"duet-scrollable-items"},e("button",{part:`${this.identifier}-button-left`,"aria-hidden":"true",class:{"duet-scrollable-button":!0,"duet-scrollable-button--left":!0,"duet-scrollable-button--occluded":!this.isTabContentSmallerThanWrapper},onClick:()=>this.scrollLeft(),disabled:this.tablistAtStart,tabindex:"-1"},e("duet-icon",{name:"action-arrow-left-small",size:"small",margin:"none"})),e("div",{class:this.tabListClass,onScroll:()=>this.updateScrollButtons(),ref:t=>this.tabListElement=t},e("slot",null)),e("button",{part:`${this.identifier}-button-right`,"aria-hidden":"true",class:{"duet-scrollable-button":!0,"duet-scrollable-button--right":!0,"duet-scrollable-button--occluded":!this.isTabContentSmallerThanWrapper},onClick:()=>this.scrollRight(),disabled:this.tablistAtEnd,tabindex:"-1"},e("duet-icon",{name:"action-arrow-right-small",size:"small",margin:"none"}))))}get host(){return i(this)}static get watchers(){return{selected:["watchPropHandler"]}}};c.style="*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}:host{position:relative !important}:host .duet-scrollable-items{display:flex}:host .duet-scrollable-items .duet-scrollable-button{position:relative;flex:0 0 auto;flex-basis:40px;padding:10px;cursor:pointer}:host .duet-scrollable-items .duet-scrollable-button:active{transform:scale(0.8)}:host .duet-scrollable-items .duet-scrollable-button--left{left:-12px}:host .duet-scrollable-items .duet-scrollable-button--right{right:-12px}:host .duet-scrollable-items .duet-scrollable-button--occluded{display:none}:host .duet-scrollable-items .duet-scrollable-list{display:flex;flex-wrap:nowrap;gap:20px;padding-top:2px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scroll-snap-type:x mandatory;scroll-behavior:smooth;scroll-margin:0 20px;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch;}:host .duet-scrollable-items .duet-scrollable-list::-webkit-scrollbar{display:none}::slotted(*){scroll-snap-align:center;margin-left:0;-webkit-transition:-webkit-transform 0.2s ease-in-out;transition:-webkit-transform 0.2s ease-in-out;transition:transform 0.2s ease-in-out;transition:transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out}";const p=class{constructor(e){t(this,e),this.accessibleDescriptionDefault=null,this.accessibleDescription=this.accessibleDescriptionDefault?r(this.accessibleDescriptionDefault):null}render(){return e("div",{role:"tabpanel",class:{"duet-tab":!0,selected:this.selected},"aria-description":this.accessibleDescription},e("slot",null))}};p.style=".sc-duet-tab-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-tab.sc-duet-tab{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:none;width:100%}.duet-tab.selected.sc-duet-tab{display:block}";const m=class{constructor(o){t(this,o),this.duetChange=a(this,"duetChange",3),this.duetTabChange=a(this,"duetTabChange",7),this.id=l("DuetTabGroup"),this.tabs=[],this.selected=0,this.theme="",this.scrolls=!1,this.collapses=!0,this.variation="default",this.language=n(),this.labelDefaults={fi:"Valitse",en:"Choose",sv:"Välj"},this.label=r(this.labelDefaults,this.language),this.labelHidden=!0,this.identifier=this.id,this.margin="auto",this.padding="auto",this.handleKeyDown=t=>{let e;d(t)||b(t)?e=t.target.previousElementSibling:(u(t)||h(t))&&(e=t.target.nextElementSibling),e&&(t.preventDefault(),e.click(),e.focus())},this.renderTab=()=>{const t=this.tabs.map(((t,o)=>e("button",{role:"tab",id:this.getButtonId(o),"aria-controls":this.getTabId(o),"aria-selected":t.selected?"true":"false","aria-description":this.getAccessibleDescription(o),part:`${this.identifier}-button ${t.selected?`${this.identifier}-button--selected`:""}`,type:"button",class:{"duet-p-0":"none"===this.padding,"duet-tab-button":!0,selected:t.selected},onClick:()=>this.openTab(o),onKeyDown:t=>this.handleKeyDown(t)},t.label)));return this.scrolls?e("duet-scrollable",{selected:this.selected,identifier:this.identifier},t):t}}async connectedCallback(){"undefined"!=typeof MutationObserver&&(this.mutationO=new MutationObserver((()=>{this.updateTabs()})),this.mutationO.observe(this.element,{attributes:!0,attributeFilter:["label"],childList:!0,characterData:!0,subtree:!0})),await this.updateTabs()}disconnectedCallback(){this.mutationO&&(this.mutationO.disconnect(),this.mutationO=void 0)}componentWillLoad(){s(this)}async openTab(t){if(t>=this.tabs.length)throw new Error(`[duet-tabs] Index ${t} is out of bounds of tabs length`);this.selected=t,this.tabs.forEach(((e,o)=>{e.selected=o===t}));const e={value:t,component:"duet-tab-group"};this.duetChange.emit(e),this.duetTabChange.emit(e)}async refresh(){console.log("[duet-tabs] Refresh method is deprecated and will be removed in the future version.")}getTabs(){const t=Array.from(this.element.querySelectorAll("duet-tab")).filter((t=>t.closest("duet-tab-group")===this.element));if(0===t.length)throw new Error("[duet-tabs] Must have at least one tab");return t}getButtonId(t){return`${this.id}-button-${t}`}getTabId(t){return`${this.id}-tab-${t}`}getAccessibleDescription(t){return this.tabs[t].getAttribute("accessible-description")||null}async updateTabs(){this.tabs=this.getTabs(),this.tabs.forEach(((t,e)=>{t.id=this.getTabId(e),t.setAttribute("aria-labelledby",this.getButtonId(e)),t.selected&&(this.selected=e)}))}render(){return e("div",{class:{"duet-tab-group":!0,"duet-theme-turva":"turva"===this.theme,[`duet-tab-variation-${this.variation}`]:!0,"duet-tab-group-scrolls":this.scrolls,"duet-tab-group-collapses":this.collapses}},this.tabs.length>3&&this.collapses&&e("duet-select",{value:this.selected.toString(),expand:!0,label:this.label,labelHidden:this.labelHidden,theme:this.theme,onDuetChange:t=>this.openTab(Number(t.detail.value)),items:this.tabs.map(((t,e)=>({label:t.label,value:e.toString()})))}),e("div",{role:"tablist",class:{"duet-m-0":"none"===this.margin,"duet-tab-group-tabs":!0,"duet-tab-group-hidden":this.tabs.length>3,"duet-tab-group-collapses":this.collapses}},this.renderTab()),e("div",{class:{"duet-tab-group-content":!0,"duet-m-0":"none"===this.margin}},e("slot",null)))}get element(){return i(this)}};m.style='*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}.duet-tab-group-tabs{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}.duet-tab-group-tabs.duet-m-0{margin:0 !important}.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden{display:none}@media (min-width: 36em){.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden{display:block}}.duet-tab-variation-plain .duet-tab-group-tabs{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-tab-variation-plain .duet-tab-group-tabs{border-bottom-color:#e4e4e6}@media (min-width: 36em){duet-select{display:none !important}}.duet-tab-button{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;font-family:"localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size:1rem;font-weight:600;line-height:1.1;color:#00294d;text-align:left;text-decoration:none;cursor:pointer;background:white;border:2px solid #e1e3e6;border-radius:0;transition:150ms ease}.duet-tab-button.duet-p-0{padding:0 !important}.duet-tab-button.duet-m-0{margin:0 !important}.duet-theme-turva .duet-tab-button{font-family:"turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#171c3a;border-color:#e4e4e6}.duet-tab-button.duet-p-0{padding:0 !important}@media (min-width: 36em){.duet-tab-button{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid #e1e3e6;border-radius:0}}.duet-tab-button:hover{z-index:200;border-color:#909599}.duet-theme-turva .duet-tab-button:hover{border-color:#747475}.duet-tab-button:active{opacity:0.75;transition:none}.duet-tab-button.selected{z-index:201;color:white;background:#00294d;border-color:#00294d;outline:0;box-shadow:none !important}.duet-theme-turva .duet-tab-button.selected{color:white;background-color:#171c3a;border-color:#171c3a}.duet-tab-button:focus{z-index:200;outline:0}:host(.user-is-tabbing) .duet-tab-button:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3 !important}:host(.user-is-tabbing) .duet-theme-turva .duet-tab-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a !important}.duet-tab-button:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.duet-tab-button:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}.duet-tab-button:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){.duet-tab-button:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}.duet-tab-variation-plain .duet-tab-button{display:inline-block;width:auto;padding-right:0;padding-left:0;border:0;border-radius:0;transition:none}.duet-tab-variation-plain .duet-tab-button+.duet-tab-button{margin-left:36px}.duet-tab-variation-plain .duet-tab-button.selected{color:#0077b3;background:white;border-bottom:3px solid #0077b3}.duet-theme-turva.duet-tab-variation-plain .duet-tab-button.selected{color:#c60c30;border-bottom-color:#c60c30}.duet-tab-group-content{position:relative;width:100%;font-family:"localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}.duet-theme-turva .duet-tab-group-content{font-family:"turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#171c3a}';export{c as duet_scrollable,p as duet_tab,m as duet_tab_group}
@@ -1,4 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- import{c as n}from"./p-986779fb.js";const t={fi:"fi-FI",en:"en-GB",us:"en-US",sv:"sv-SE"},e={fi:"€",en:"£",us:"$",sv:"€"},o=["fi","en","sv"],r=()=>document.documentElement.lang?document.documentElement.lang.toLowerCase():"fi",s=(n=r())=>o.includes(n)?n:"fi",i=(n=r())=>s(n),a=n=>{const o={locale:t[n],money:e[n]};if(o.locale&&o.money)return o;throw new Error(`Locale for "${n}" not found`)},c=t=>{if("string"==typeof t)try{return JSON.parse(n(t))}catch(e){console.log("sanitizeString received a string, that didnt parse to json object",t,e)}return t},f=(n,t)=>{const e=c(n);return t?e[s(t)]:e[i()]};export{i as a,a as b,f as g,c as s}
@@ -1,4 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- System.register([],(function(e){"use strict";return{execute:function(){var n=e("d",(function(e){return e.keyCode===37}));var r=e("b",(function(e){return e.keyCode===38}));var t=e("a",(function(e){return e.keyCode===39}));var u=e("c",(function(e){return e.keyCode===40}));var o=e("j",(function(e){return u(e)||t(e)||r(e)||n(e)}));var c=e("f",(function(e){return e.key==="Escape"||e.key==="Esc"||e.keyCode===27}));var k=e("e",(function(e){return e.keyCode===8}));var y=e("g",(function(e){return e.key==="Space"||e.keyCode===32}));var i=e("m",(function(e){return e.key==="+"||e.keyCode===43}));var a=e("l",(function(e){return e.key==="-"||e.keyCode===45}));var f=e("h",(function(e){return e.key==="?"}));var d=function(e){return e.key==="Enter"||e.keyCode===13};var v=e("i",(function(e){return d(e)||y(e)}));var C=e("k",(function(e){return e.keyCode>=48&&e.keyCode<=57||e.keyCode>=96&&e.keyCode<=105}))}}}));
@@ -1,4 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- const e="duet",t={cdnURILocal:"http://0.0.0.0:3334",cdnURIProd:"https://cdn.duetds.com/api",duetIconVersion:"2.2.22"};let n,l,s,o=!1,i=!1,c=!1,r=!1,f=!1;const a="undefined"!=typeof window?window:{},u=a.document||{head:{}},$={t:0,l:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,l)=>e.addEventListener(t,n,l),rel:(e,t,n,l)=>e.removeEventListener(t,n,l),ce:(e,t)=>new CustomEvent(e,t)},d=(()=>(u.head.attachShadow+"").indexOf("[native")>-1)(),h=e=>Promise.resolve(e),p=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replace}catch(e){}return!1})(),m=(e,t,n)=>{n&&n.map((([n,l,s])=>{const o=b(e,n),i=y(t,s),c=w(n);$.ael(o,l,i,c),(t.o=t.o||[]).push((()=>$.rel(o,l,i,c)))}))},y=(e,t)=>n=>{try{256&e.t?e.i[t](n):(e.u=e.u||[]).push([t,n])}catch(l){Oe(l)}},b=(e,t)=>4&t?u:8&t?a:16&t?u.body:e,w=e=>0!=(2&e),g="http://www.w3.org/1999/xlink",v=new WeakMap,k=(e,t,n)=>{let l=Re.get(e);p&&n?(l=l||new CSSStyleSheet,l.replace(t)):l=t,Re.set(e,l)},j=(e,t)=>{let n=O(t),l=Re.get(n);if(e=11===e.nodeType?e:u,l)if("string"==typeof l){let t,s=v.get(e=e.head||e);s||v.set(e,s=new Set),s.has(n)||(e.host&&(t=e.querySelector(`[sty-id="${n}"]`))?t.innerHTML=l:(t=u.createElement("style"),t.innerHTML=l,e.insertBefore(t,e.querySelector("link"))),s&&s.add(n))}else e.adoptedStyleSheets.includes(l)||(e.adoptedStyleSheets=[...e.adoptedStyleSheets,l]);return n},O=e=>"sc-"+e.$,S=e=>e.replace(/\/\*!@([^\/]+)\*\/[^\{]+\{/g,"$1{"),x={},R=e=>"object"==(e=typeof e)||"function"===e,C=(e,t,...n)=>{let l=null,s=null,o=null,i=!1,c=!1,r=[];const f=t=>{for(let n=0;n<t.length;n++)l=t[n],Array.isArray(l)?f(l):null!=l&&"boolean"!=typeof l&&((i="function"!=typeof e&&!R(l))&&(l+=""),i&&c?r[r.length-1].h+=l:r.push(i?M(null,l):l),c=i)};if(f(n),t){t.key&&(s=t.key),t.name&&(o=t.name);{const e=t.className||t.class;e&&(t.class="object"!=typeof e?e:Object.keys(e).filter((t=>e[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,r,I);const a=M(e,null);return a.p=t,r.length>0&&(a.m=r),a.g=s,a.v=o,a},M=(e,t)=>({t:0,k:e,h:t,j:null,m:null,p:null,g:null,v:null}),_={},I={forEach:(e,t)=>e.map(N).forEach(t),map:(e,t)=>e.map(N).map(t).map(E)},N=e=>({vattrs:e.p,vchildren:e.m,vkey:e.g,vname:e.v,vtag:e.k,vtext:e.h}),E=e=>{if("function"==typeof e.vtag){const t=Object.assign({},e.vattrs);return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),C(e.vtag,t,...e.vchildren||[])}const t=M(e.vtag,e.vtext);return t.p=e.vattrs,t.m=e.vchildren,t.g=e.vkey,t.v=e.vname,t},P=(e,t,n,l,s,o)=>{if(n!==l){let c=je(e,t),r=t.toLowerCase();if("class"===t){const t=e.classList,s=T(n),o=T(l);t.remove(...s.filter((e=>e&&!o.includes(e)))),t.add(...o.filter((e=>e&&!s.includes(e))))}else if("style"===t){for(const t in n)l&&null!=l[t]||(t.includes("-")?e.style.removeProperty(t):e.style[t]="");for(const t in l)n&&l[t]===n[t]||(t.includes("-")?e.style.setProperty(t,l[t]):e.style[t]=l[t])}else if("key"===t);else if("ref"===t)l&&l(e);else if(c||"o"!==t[0]||"n"!==t[1]){const f=R(l);if((c||f&&null!==l)&&!s)try{if(e.tagName.includes("-"))e[t]=l;else{let s=null==l?"":l;"list"===t?c=!1:null!=n&&e[t]==s||(e[t]=s)}}catch(i){}let a=!1;r!==(r=r.replace(/^xlink\:?/,""))&&(t=r,a=!0),null==l||!1===l?!1===l&&""!==e.getAttribute(t)||(a?e.removeAttributeNS(g,t):e.removeAttribute(t)):(!c||4&o||s)&&!f&&(l=!0===l?"":l,a?e.setAttributeNS(g,t,l):e.setAttribute(t,l))}else t="-"===t[2]?t.slice(3):je(a,r)?r.slice(2):r[2]+t.slice(3),n&&$.rel(e,t,n,!1),l&&$.ael(e,t,l,!1)}},L=/\s/,T=e=>e?e.split(L):[],U=(e,t,n,l)=>{const s=11===t.j.nodeType&&t.j.host?t.j.host:t.j,o=e&&e.p||x,i=t.p||x;for(l in o)l in i||P(s,l,o[l],void 0,n,t.t);for(l in i)P(s,l,o[l],i[l],n,t.t)},F=(e,t,i,f)=>{let a,$,d,h=t.m[i],p=0;if(o||(c=!0,"slot"===h.k&&(n&&f.classList.add(n+"-s"),h.t|=h.m?2:1)),null!==h.h)a=h.j=u.createTextNode(h.h);else if(1&h.t)a=h.j=u.createTextNode("");else{if(r||(r="svg"===h.k),a=h.j=u.createElementNS(r?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",2&h.t?"slot-fb":h.k),r&&"foreignObject"===h.k&&(r=!1),U(null,h,r),null!=n&&a["s-si"]!==n&&a.classList.add(a["s-si"]=n),h.m)for(p=0;p<h.m.length;++p)$=F(e,h,p,a),$&&a.appendChild($);"svg"===h.k?r=!1:"foreignObject"===a.tagName&&(r=!0)}return a["s-hn"]=s,3&h.t&&(a["s-sr"]=!0,a["s-cr"]=l,a["s-sn"]=h.v||"",d=e&&e.m&&e.m[i],d&&d.k===h.k&&e.j&&W(e.j,!1)),a},W=(e,t)=>{$.t|=1;const n=e.childNodes;for(let l=n.length-1;l>=0;l--){const e=n[l];e["s-hn"]!==s&&e["s-ol"]&&(q(e).insertBefore(e,V(e)),e["s-ol"].remove(),e["s-ol"]=void 0,c=!0),t&&W(e,t)}$.t&=-2},A=(e,t,n,l,o,i)=>{let c,r=e["s-cr"]&&e["s-cr"].parentNode||e;for(r.shadowRoot&&r.tagName===s&&(r=r.shadowRoot);o<=i;++o)l[o]&&(c=F(null,n,o,e),c&&(l[o].j=c,r.insertBefore(c,V(t))))},D=(e,t,n,l,s)=>{for(;t<=n;++t)(l=e[t])&&(s=l.j,Q(l),i=!0,s["s-ol"]?s["s-ol"].remove():W(s,!0),s.remove())},H=(e,t)=>e.k===t.k&&("slot"===e.k?e.v===t.v:e.g===t.g),V=e=>e&&e["s-ol"]||e,q=e=>(e["s-ol"]?e["s-ol"]:e).parentNode,z=(e,t)=>{const n=t.j=e.j,l=e.m,s=t.m,o=t.k,i=t.h;let c;null===i?(r="svg"===o||"foreignObject"!==o&&r,"slot"===o||U(e,t,r),null!==l&&null!==s?((e,t,n,l)=>{let s,o,i=0,c=0,r=0,f=0,a=t.length-1,u=t[0],$=t[a],d=l.length-1,h=l[0],p=l[d];for(;i<=a&&c<=d;)if(null==u)u=t[++i];else if(null==$)$=t[--a];else if(null==h)h=l[++c];else if(null==p)p=l[--d];else if(H(u,h))z(u,h),u=t[++i],h=l[++c];else if(H($,p))z($,p),$=t[--a],p=l[--d];else if(H(u,p))"slot"!==u.k&&"slot"!==p.k||W(u.j.parentNode,!1),z(u,p),e.insertBefore(u.j,$.j.nextSibling),u=t[++i],p=l[--d];else if(H($,h))"slot"!==u.k&&"slot"!==p.k||W($.j.parentNode,!1),z($,h),e.insertBefore($.j,u.j),$=t[--a],h=l[++c];else{for(r=-1,f=i;f<=a;++f)if(t[f]&&null!==t[f].g&&t[f].g===h.g){r=f;break}r>=0?(o=t[r],o.k!==h.k?s=F(t&&t[c],n,r,e):(z(o,h),t[r]=void 0,s=o.j),h=l[++c]):(s=F(t&&t[c],n,c,e),h=l[++c]),s&&q(u.j).insertBefore(s,V(u.j))}i>a?A(e,null==l[d+1]?null:l[d+1].j,n,l,c,d):c>d&&D(t,i,a)})(n,l,t,s):null!==s?(null!==e.h&&(n.textContent=""),A(n,null,t,s,0,s.length-1)):null!==l&&D(l,0,l.length-1),r&&"svg"===o&&(r=!1)):(c=n["s-cr"])?c.parentNode.textContent=i:e.h!==i&&(n.data=i)},B=e=>{let t,n,l,s,o,i,c=e.childNodes;for(n=0,l=c.length;n<l;n++)if(t=c[n],1===t.nodeType){if(t["s-sr"])for(o=t["s-sn"],t.hidden=!1,s=0;s<l;s++)if(i=c[s].nodeType,c[s]["s-hn"]!==t["s-hn"]||""!==o){if(1===i&&o===c[s].getAttribute("slot")){t.hidden=!0;break}}else if(1===i||3===i&&""!==c[s].textContent.trim()){t.hidden=!0;break}B(t)}},G=[],J=e=>{let t,n,l,s,o,c,r=0,f=e.childNodes,a=f.length;for(;r<a;r++){if(t=f[r],t["s-sr"]&&(n=t["s-cr"])&&n.parentNode)for(l=n.parentNode.childNodes,s=t["s-sn"],c=l.length-1;c>=0;c--)n=l[c],n["s-cn"]||n["s-nr"]||n["s-hn"]===t["s-hn"]||(K(n,s)?(o=G.find((e=>e.O===n)),i=!0,n["s-sn"]=n["s-sn"]||s,o?o.S=t:G.push({S:t,O:n}),n["s-sr"]&&G.map((e=>{K(e.O,n["s-sn"])&&(o=G.find((e=>e.O===n)),o&&!e.S&&(e.S=o.S))}))):G.some((e=>e.O===n))||G.push({O:n}));1===t.nodeType&&J(t)}},K=(e,t)=>1===e.nodeType?null===e.getAttribute("slot")&&""===t||e.getAttribute("slot")===t:e["s-sn"]===t||""===t,Q=e=>{e.p&&e.p.ref&&e.p.ref(null),e.m&&e.m.map(Q)},X=e=>ge(e).R,Y=(e,t,n)=>{const l=X(e);return{emit:e=>Z(l,t,{bubbles:!!(4&n),composed:!!(2&n),cancelable:!!(1&n),detail:e})}},Z=(e,t,n)=>{const l=$.ce(t,n);return e.dispatchEvent(l),l},ee=(e,t)=>{t&&!e.C&&t["s-p"]&&t["s-p"].push(new Promise((t=>e.C=t)))},te=(e,t)=>{if(e.t|=16,!(4&e.t))return ee(e,e.M),Pe((()=>ne(e,t)));e.t|=512},ne=(e,t)=>{const n=e.i;let l;return t&&(e.t|=256,e.u&&(e.u.map((([e,t])=>ce(n,e,t))),e.u=null),l=ce(n,"componentWillLoad")),l=re(l,(()=>ce(n,"componentWillRender"))),re(l,(()=>le(e,n,t)))},le=async(e,t,n)=>{const l=e.R,s=l["s-rc"];n&&(e=>{const t=e._,n=e.R,l=t.t,s=j(d&&n.shadowRoot?n.shadowRoot:n.getRootNode(),t);10&l&&(n["s-sc"]=s,n.classList.add(s+"-h"),2&l&&n.classList.add(s+"-s"))})(e);se(e,t),s&&(s.map((e=>e())),l["s-rc"]=void 0);{const t=l["s-p"],n=()=>oe(e);0===t.length?n():(Promise.all(t).then(n),e.t|=4,t.length=0)}},se=(e,t)=>{try{t=t.render(),e.t&=-17,e.t|=2,((e,t)=>{const r=e.R,f=e._,a=e.I||M(null,null),h=(e=>e&&e.k===_)(t)?t:C(null,null,t);if(s=r.tagName,f.N&&(h.p=h.p||{},f.N.map((([e,t])=>h.p[t]=r[e]))),h.k=null,h.t|=4,e.I=h,h.j=a.j=r.shadowRoot||r,n=r["s-sc"],l=r["s-cr"],o=d&&0!=(1&f.t),i=!1,z(a,h),$.t|=1,c){let e,t,n,l,s,o;J(h.j);let i=0;for(;i<G.length;i++)e=G[i],t=e.O,t["s-ol"]||(n=u.createTextNode(""),n["s-nr"]=t,t.parentNode.insertBefore(t["s-ol"]=n,t));for(i=0;i<G.length;i++)if(e=G[i],t=e.O,e.S){for(l=e.S.parentNode,s=e.S.nextSibling,n=t["s-ol"];n=n.previousSibling;)if(o=n["s-nr"],o&&o["s-sn"]===t["s-sn"]&&l===o.parentNode&&(o=o.nextSibling,!o||!o["s-nr"])){s=o;break}(!s&&l!==t.parentNode||t.nextSibling!==s)&&t!==s&&(!t["s-hn"]&&t["s-ol"]&&(t["s-hn"]=t["s-ol"].parentNode.nodeName),l.insertBefore(t,s))}else 1===t.nodeType&&(t.hidden=!0)}i&&B(h.j),$.t&=-2,G.length=0})(e,t)}catch(r){Oe(r,e.R)}return null},oe=e=>{const t=e.R,n=e.i,l=e.M;ce(n,"componentDidRender"),64&e.t?ce(n,"componentDidUpdate"):(e.t|=64,fe(t),ce(n,"componentDidLoad"),e.P(t),l||ie()),e.L(t),e.C&&(e.C(),e.C=void 0),512&e.t&&Ee((()=>te(e,!1))),e.t&=-517},ie=()=>{fe(u.documentElement),Ee((()=>Z(a,"appload",{detail:{namespace:"duet"}})))},ce=(e,t,n)=>{if(e&&e[t])try{return e[t](n)}catch(l){Oe(l)}},re=(e,t)=>e&&e.then?e.then(t):t(),fe=e=>e.classList.add("hydrated"),ae=(e,t,n,l,s,o,i)=>{let c,r,f,a;if(1===o.nodeType){for(c=o.getAttribute("c-id"),c&&(r=c.split("."),r[0]!==i&&"0"!==r[0]||(f={t:0,T:r[0],U:r[1],F:r[2],W:r[3],k:o.tagName.toLowerCase(),j:o,p:null,m:null,g:null,v:null,h:null},t.push(f),o.removeAttribute("c-id"),e.m||(e.m=[]),e.m[f.W]=f,e=f,l&&"0"===f.F&&(l[f.W]=f.j))),a=o.childNodes.length-1;a>=0;a--)ae(e,t,n,l,s,o.childNodes[a],i);if(o.shadowRoot)for(a=o.shadowRoot.childNodes.length-1;a>=0;a--)ae(e,t,n,l,s,o.shadowRoot.childNodes[a],i)}else if(8===o.nodeType)r=o.nodeValue.split("."),r[1]!==i&&"0"!==r[1]||(c=r[0],f={t:0,T:r[1],U:r[2],F:r[3],W:r[4],j:o,p:null,m:null,g:null,v:null,k:null,h:null},"t"===c?(f.j=o.nextSibling,f.j&&3===f.j.nodeType&&(f.h=f.j.textContent,t.push(f),o.remove(),e.m||(e.m=[]),e.m[f.W]=f,l&&"0"===f.F&&(l[f.W]=f.j))):f.T===i&&("s"===c?(f.k="slot",o["s-sn"]=r[5]?f.v=r[5]:"",o["s-sr"]=!0,l&&(f.j=u.createElement(f.k),f.v&&f.j.setAttribute("name",f.v),o.parentNode.insertBefore(f.j,o),o.remove(),"0"===f.F&&(l[f.W]=f.j)),n.push(f),e.m||(e.m=[]),e.m[f.W]=f):"r"===c&&(l?o.remove():(s["s-cr"]=o,o["s-cn"]=!0))));else if(e&&"style"===e.k){const t=M(null,o.textContent);t.j=o,t.W="0",e.m=[t]}},ue=(e,t)=>{if(1===e.nodeType){let n=0;for(;n<e.childNodes.length;n++)ue(e.childNodes[n],t);if(e.shadowRoot)for(n=0;n<e.shadowRoot.childNodes.length;n++)ue(e.shadowRoot.childNodes[n],t)}else if(8===e.nodeType){const n=e.nodeValue.split(".");"o"===n[0]&&(t.set(n[1]+"."+n[2],e),e.nodeValue="",e["s-en"]=n[3])}},$e=(e,t,n)=>{if(t.A){e.watchers&&(t.D=e.watchers);const l=Object.entries(t.A),s=e.prototype;if(l.map((([e,[l]])=>{31&l||2&n&&32&l?Object.defineProperty(s,e,{get(){return((e,t)=>ge(this).H.get(t))(0,e)},set(n){((e,t,n,l)=>{const s=ge(e),o=s.R,i=s.H.get(t),c=s.t,r=s.i;if(n=((e,t)=>null==e||R(e)?e:4&t?"false"!==e&&(""===e||!!e):2&t?parseFloat(e):1&t?e+"":e)(n,l.A[t][0]),(!(8&c)||void 0===i)&&n!==i&&(!Number.isNaN(i)||!Number.isNaN(n))&&(s.H.set(t,n),r)){if(l.D&&128&c){const e=l.D[t];e&&e.map((e=>{try{r[e](n,i,t)}catch(l){Oe(l,o)}}))}2==(18&c)&&te(s,!1)}})(this,e,n,t)},configurable:!0,enumerable:!0}):1&n&&64&l&&Object.defineProperty(s,e,{value(...t){const n=ge(this);return n.V.then((()=>n.i[e](...t)))}})})),1&n){const n=new Map;s.attributeChangedCallback=function(e,t,l){$.jmp((()=>{const t=n.get(e);if(this.hasOwnProperty(t))l=this[t],delete this[t];else if(s.hasOwnProperty(t)&&"number"==typeof this[t]&&this[t]==l)return;this[t]=(null!==l||"boolean"!=typeof this[t])&&l}))},e.observedAttributes=l.filter((([e,t])=>15&t[0])).map((([e,l])=>{const s=l[1]||e;return n.set(s,e),512&l[0]&&t.N.push([e,s]),s}))}}return e},de=e=>{ce(e,"connectedCallback")},he=e=>{if(0==(1&$.t)){const t=ge(e),n=t._,l=()=>{};if(1&t.t)m(e,t,n.q),de(t.i);else{let l;if(t.t|=1,l=e.getAttribute("s-id"),l){if(d&&1&n.t){const t=j(e.shadowRoot,n);e.classList.remove(t+"-h",t+"-s")}((e,t,n,l)=>{const s=e.shadowRoot,o=[],i=s?[]:null,c=l.I=M(t,null);$.B||ue(u.body,$.B=new Map),e["s-id"]=n,e.removeAttribute("s-id"),ae(c,o,[],i,e,e,n),o.map((e=>{const n=e.T+"."+e.U,l=$.B.get(n),o=e.j;l&&d&&""===l["s-en"]&&l.parentNode.insertBefore(o,l.nextSibling),s||(o["s-hn"]=t,l&&(o["s-ol"]=l,o["s-ol"]["s-nr"]=o)),$.B.delete(n)})),s&&i.map((e=>{e&&s.appendChild(e)}))})(e,n.$,l,t)}l||12&n.t&&pe(e);{let n=e;for(;n=n.parentNode||n.host;)if(1===n.nodeType&&n.hasAttribute("s-id")&&n["s-p"]||n["s-p"]){ee(t,t.M=n);break}}n.A&&Object.entries(n.A).map((([t,[n]])=>{if(31&n&&e.hasOwnProperty(t)){const n=e[t];delete e[t],e[t]=n}})),Ee((()=>(async(e,t,n,l,s)=>{if(0==(32&t.t)){{if(t.t|=32,(s=xe(n)).then){const e=()=>{};s=await s,e()}s.isProxied||(n.D=s.watchers,$e(s,n,2),s.isProxied=!0);const e=()=>{};t.t|=8;try{new s(t)}catch(c){Oe(c)}t.t&=-9,t.t|=128,e(),de(t.i)}if(s.style){let e=s.style;const t=O(n);if(!Re.has(t)){const l=()=>{};8&n.t&&(e=await __sc_import_duet("./p-27d238c5.js").then((n=>n.scopeCss(e,t,!1)))),k(t,e,!!(1&n.t)),l()}}}const o=t.M,i=()=>te(t,!0);o&&o["s-rc"]?o["s-rc"].push(i):i()})(0,t,n)))}l()}},pe=e=>{const t=e["s-cr"]=u.createComment("");t["s-cn"]=!0,e.insertBefore(t,e.firstChild)},me=(e,t)=>{class n extends Array{item(e){return this[e]}}if(8&t.t){const t=e.__lookupGetter__("childNodes");Object.defineProperty(e,"children",{get(){return this.childNodes.map((e=>1===e.nodeType))}}),Object.defineProperty(e,"childElementCount",{get:()=>e.children.length}),Object.defineProperty(e,"childNodes",{get(){const e=t.call(this);if(0==(1&$.t)&&2&ge(this).t){const t=new n;for(let n=0;n<e.length;n++){const l=e[n]["s-nr"];l&&t.push(l)}return t}return n.from(e)}})}},ye=(e,t={})=>{const n=[],l=t.exclude||[],s=a.customElements,o=u.head,i=o.querySelector("meta[charset]"),c=u.createElement("style"),r=[],f=u.querySelectorAll("[sty-id]");let h,p=!0,m=0;for(Object.assign($,t),$.l=new URL(t.resourcesUrl||"./",u.baseURI).href,$.t|=2;m<f.length;m++)k(f[m].getAttribute("sty-id"),S(f[m].innerHTML),!0);e.map((e=>{e[1].map((t=>{const o={t:t[0],$:t[1],A:t[2],q:t[3]};o.A=t[2],o.q=t[3],o.N=[],o.D={},!d&&1&o.t&&(o.t|=8);const i=o.$,c=class extends HTMLElement{constructor(e){super(e),ke(e=this,o),1&o.t&&(d?e.attachShadow({mode:"open",delegatesFocus:!!(16&o.t)}):"shadowRoot"in e||(e.shadowRoot=e)),me(e,o)}connectedCallback(){h&&(clearTimeout(h),h=null),p?r.push(this):$.jmp((()=>he(this)))}disconnectedCallback(){$.jmp((()=>(()=>{if(0==(1&$.t)){const e=ge(this),t=e.i;e.o&&(e.o.map((e=>e())),e.o=void 0),ce(t,"disconnectedCallback")}})()))}componentOnReady(){return ge(this).G}};o.J=e[0],l.includes(i)||s.get(i)||(n.push(i),s.define(i,$e(c,o,1)))}))})),c.innerHTML=n+"{visibility:hidden}.hydrated{visibility:inherit}",c.setAttribute("data-styles",""),o.insertBefore(c,i?i.nextSibling:o.firstChild),p=!1,r.length?r.map((e=>e.connectedCallback())):$.jmp((()=>h=setTimeout(ie,30)))},be=(e,t)=>t,we=new WeakMap,ge=e=>we.get(e),ve=(e,t)=>we.set(t.i=e,t),ke=(e,t)=>{const n={t:0,R:e,_:t,H:new Map};return n.V=new Promise((e=>n.L=e)),n.G=new Promise((e=>n.P=e)),e["s-p"]=[],e["s-rc"]=[],m(e,n,t.q),we.set(e,n)},je=(e,t)=>t in e,Oe=(e,t)=>(0,console.error)(e,t),Se=new Map,xe=e=>{const t=e.$.replace(/-/g,"_"),n=e.J,l=Se.get(n);return l?l[t]:__sc_import_duet(`./${n}.entry.js`).then((e=>(Se.set(n,e),e[t])),Oe)},Re=new Map,Ce=[],Me=[],_e=(e,t)=>n=>{e.push(n),f||(f=!0,t&&4&$.t?Ee(Ne):$.raf(Ne))},Ie=e=>{for(let n=0;n<e.length;n++)try{e[n](performance.now())}catch(t){Oe(t)}e.length=0},Ne=()=>{Ie(Ce),Ie(Me),(f=Ce.length>0)&&$.raf(Ne)},Ee=e=>h().then(e),Pe=_e(Me,!0);export{t as E,be as F,_ as H,e as N,ye as b,Y as c,u as d,X as g,C as h,h as p,ve as r,a as w}
@@ -1,4 +0,0 @@
1
- /*!
2
- * Built with Duet Design System
3
- */
4
- const a=a=>37===a.keyCode,s=a=>38===a.keyCode,c=a=>39===a.keyCode,e=a=>40===a.keyCode,p=p=>e(p)||c(p)||s(p)||a(p),t=a=>"Escape"===a.key||"Esc"===a.key||27===a.keyCode,E=a=>8===a.keyCode,n=a=>"Space"===a.key||32===a.keyCode,o=a=>"+"===a.key||43===a.keyCode,r=a=>"-"===a.key||45===a.keyCode,b=a=>"?"===a.key,d=a=>(a=>"Enter"===a.key||13===a.keyCode)(a)||n(a),f=a=>a.keyCode>=48&&a.keyCode<=57||a.keyCode>=96&&a.keyCode<=105;export{c as a,s as b,e as c,a as d,E as e,t as f,n as g,b as h,d as i,p as j,f as k,r as l,o as m}