@duetds/components 4.34.4 → 4.35.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 (256) hide show
  1. package/hydrate/index.js +282 -33
  2. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-button_2.cjs.entry.js +2 -2
  7. package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-card.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  14. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-editable-table-button.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-editable-table_4.cjs.entry.js +3 -3
  17. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-header_2.cjs.entry.js +20 -10
  22. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-modal.cjs.entry.js +15 -3
  28. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-scrollable_3.cjs.entry.js +414 -0
  34. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  42. package/lib/cjs/duet.cjs.js +2 -2
  43. package/lib/cjs/{focus-utils-0e3a744a.js → focus-utils-15cc3af9.js} +1 -1
  44. package/lib/cjs/{index-0bcb9cea.js → index-a38f3df3.js} +1 -1
  45. package/lib/cjs/loader.cjs.js +2 -2
  46. package/lib/collection/collection-manifest.json +8 -6
  47. package/lib/collection/components/duet-button/duet-button.js +1 -1
  48. package/lib/collection/components/duet-card/duet-card.js +3 -1
  49. package/lib/collection/components/duet-header/duet-header.css +61 -28
  50. package/lib/collection/components/duet-header/duet-header.js +18 -8
  51. package/lib/collection/components/duet-link/duet-link.js +1 -1
  52. package/lib/collection/components/duet-modal/duet-modal.js +33 -3
  53. package/lib/collection/components/duet-scrollable/duet-scrollable.css +83 -0
  54. package/lib/collection/components/duet-scrollable/duet-scrollable.js +240 -0
  55. package/lib/collection/components/duet-tab/duet-tab.js +63 -1
  56. package/lib/collection/components/duet-tab-group/duet-tab-group.css +12 -13
  57. package/lib/collection/components/duet-tab-group/duet-tab-group.js +101 -16
  58. package/lib/collection/components/duet-upload/duet-upload.js +7 -4
  59. package/lib/custom-elements-bundle/index.d.ts +6 -0
  60. package/lib/custom-elements-bundle/index.js +264 -37
  61. package/lib/duet/duet.esm.js +1 -1
  62. package/lib/duet/duet.js +1 -1
  63. package/lib/duet/{p-86013171.entry.js → p-04e3b06b.entry.js} +1 -1
  64. package/lib/duet/{p-808101d8.entry.js → p-0bc3239b.entry.js} +1 -1
  65. package/lib/duet/{p-6d62cb90.entry.js → p-0d15892b.entry.js} +1 -1
  66. package/lib/duet/{p-29000070.entry.js → p-0d6c3d07.entry.js} +1 -1
  67. package/lib/duet/{p-8ea50bd2.system.entry.js → p-0deee587.system.entry.js} +1 -1
  68. package/lib/duet/{p-d53bbad7.entry.js → p-0ea49de8.entry.js} +1 -1
  69. package/lib/duet/{p-379e8ebb.system.entry.js → p-114a20f1.system.entry.js} +1 -1
  70. package/lib/duet/p-13e81854.entry.js +4 -0
  71. package/lib/duet/p-15a42b87.entry.js +4 -0
  72. package/lib/duet/{p-48ed41e6.system.entry.js → p-18441899.system.entry.js} +1 -1
  73. package/lib/duet/{p-a63537e8.entry.js → p-1b98f91c.entry.js} +1 -1
  74. package/lib/duet/{p-1afec19f.entry.js → p-2056e3eb.entry.js} +1 -1
  75. package/lib/duet/{p-7c5b396c.system.entry.js → p-27b953e4.system.entry.js} +1 -1
  76. package/lib/duet/{p-5ea30033.entry.js → p-29e59e77.entry.js} +1 -1
  77. package/lib/duet/{p-4b7f998d.system.entry.js → p-2c8bd5a2.system.entry.js} +1 -1
  78. package/lib/duet/{p-36eae676.entry.js → p-30783ea4.entry.js} +1 -1
  79. package/lib/duet/{p-5b409624.system.entry.js → p-3081f8a5.system.entry.js} +1 -1
  80. package/lib/duet/p-35ff635e.system.js +4 -0
  81. package/lib/duet/{p-9aa7cb17.entry.js → p-38128fc3.entry.js} +1 -1
  82. package/lib/duet/{p-98fabd8b.entry.js → p-3b244de7.entry.js} +1 -1
  83. package/lib/duet/{p-3953b77a.system.entry.js → p-3baf5b41.system.entry.js} +1 -1
  84. package/lib/duet/{p-35133bc9.entry.js → p-3bd812df.entry.js} +1 -1
  85. package/lib/duet/{p-0aec7e4b.entry.js → p-3dbeddf5.entry.js} +1 -1
  86. package/lib/duet/{p-e90db543.system.entry.js → p-3e578cc5.system.entry.js} +1 -1
  87. package/lib/duet/p-41b4bad1.entry.js +4 -0
  88. package/lib/duet/{p-dc226f92.system.entry.js → p-49820427.system.entry.js} +1 -1
  89. package/lib/duet/{p-fe889838.system.js → p-4accc70c.system.js} +1 -1
  90. package/lib/duet/{p-ea934463.entry.js → p-4c3961a5.entry.js} +1 -1
  91. package/lib/duet/{p-e96fca2b.system.entry.js → p-4d7abe27.system.entry.js} +1 -1
  92. package/lib/duet/{p-aa379dec.system.entry.js → p-54d296d9.system.entry.js} +1 -1
  93. package/lib/duet/{p-0d18269c.entry.js → p-573921ca.entry.js} +1 -1
  94. package/lib/duet/{p-ddf5ecf5.system.entry.js → p-5af271ce.system.entry.js} +1 -1
  95. package/lib/duet/{p-bb1271a8.system.entry.js → p-5f24e161.system.entry.js} +1 -1
  96. package/lib/duet/{p-255bc205.system.entry.js → p-632186a9.system.entry.js} +1 -1
  97. package/lib/duet/{p-8bbdfac5.system.entry.js → p-67b22acc.system.entry.js} +1 -1
  98. package/lib/duet/{p-9c046b9a.entry.js → p-69c4ff6f.entry.js} +1 -1
  99. package/lib/duet/{p-f16213de.entry.js → p-6b3a14c2.entry.js} +1 -1
  100. package/lib/duet/{p-8049159b.system.entry.js → p-70cf255e.system.entry.js} +1 -1
  101. package/lib/duet/{p-ee58a262.entry.js → p-7142b886.entry.js} +1 -1
  102. package/lib/duet/{p-63ac5acd.entry.js → p-7641054f.entry.js} +1 -1
  103. package/lib/duet/{p-ea232a29.entry.js → p-7d019a4d.entry.js} +1 -1
  104. package/lib/duet/{p-f645b369.system.entry.js → p-7e2a2e30.system.entry.js} +1 -1
  105. package/lib/duet/{p-a209e483.entry.js → p-83261c61.entry.js} +1 -1
  106. package/lib/duet/{p-0cb07574.js → p-875bd99c.js} +1 -1
  107. package/lib/duet/{p-927e83d1.entry.js → p-889193e8.entry.js} +1 -1
  108. package/lib/duet/{p-4002454d.system.entry.js → p-8acdabb5.system.entry.js} +1 -1
  109. package/lib/duet/{p-3948a5c4.system.entry.js → p-8edd126b.system.entry.js} +1 -1
  110. package/lib/duet/{p-236cb8b6.entry.js → p-94b4ec76.entry.js} +1 -1
  111. package/lib/duet/{p-ded5548b.system.entry.js → p-97353a7f.system.entry.js} +1 -1
  112. package/lib/duet/{p-6d05eb8c.entry.js → p-9a47c28a.entry.js} +1 -1
  113. package/lib/duet/{p-2f36de45.entry.js → p-9b0c78de.entry.js} +1 -1
  114. package/lib/duet/{p-32488531.system.entry.js → p-9dd65758.system.entry.js} +1 -1
  115. package/lib/duet/{p-cf886223.entry.js → p-a53a8675.entry.js} +1 -1
  116. package/lib/duet/{p-ab6109d6.system.entry.js → p-a73609b4.system.entry.js} +1 -1
  117. package/lib/duet/{p-719e38e3.system.entry.js → p-ac01755b.system.entry.js} +1 -1
  118. package/lib/duet/{p-0a664450.system.entry.js → p-acf24fcd.system.entry.js} +1 -1
  119. package/lib/duet/{p-db1a8956.system.entry.js → p-aed2a35e.system.entry.js} +1 -1
  120. package/lib/duet/{p-fab77260.system.entry.js → p-b1ae4d5b.system.entry.js} +2 -2
  121. package/lib/duet/{p-c6c768b9.system.entry.js → p-b2985c8e.system.entry.js} +1 -1
  122. package/lib/duet/{p-842a43e7.system.entry.js → p-b692b4a4.system.entry.js} +1 -1
  123. package/lib/duet/{p-9f6649ef.system.entry.js → p-b80d80dc.system.entry.js} +1 -1
  124. package/lib/duet/{p-5e15d8f8.js → p-bcf94afd.js} +1 -1
  125. package/lib/duet/p-be872079.entry.js +4 -0
  126. package/lib/duet/{p-67798ed0.entry.js → p-bf859d7b.entry.js} +1 -1
  127. package/lib/duet/{p-09845306.entry.js → p-c0fa8865.entry.js} +1 -1
  128. package/lib/duet/{p-07bec67d.system.entry.js → p-c479f3be.system.entry.js} +1 -1
  129. package/lib/duet/{p-e339cb4f.entry.js → p-c9020872.entry.js} +1 -1
  130. package/lib/duet/{p-0945e0ac.entry.js → p-c99e23d2.entry.js} +1 -1
  131. package/lib/duet/p-ce40057c.entry.js +4 -0
  132. package/lib/duet/{p-51d5b428.system.js → p-d04561dc.system.js} +1 -1
  133. package/lib/duet/{p-addff36a.system.entry.js → p-d158b9ca.system.entry.js} +1 -1
  134. package/lib/duet/{p-a5b9f195.system.entry.js → p-d2edeb9a.system.entry.js} +1 -1
  135. package/lib/duet/{p-1c38354b.system.entry.js → p-d3432b68.system.entry.js} +1 -1
  136. package/lib/duet/{p-5818108d.system.entry.js → p-d6563133.system.entry.js} +1 -1
  137. package/lib/duet/{p-00b102b8.entry.js → p-d9da705b.entry.js} +1 -1
  138. package/lib/duet/p-e3c66ce5.system.entry.js +4 -0
  139. package/lib/duet/{p-c6268af4.entry.js → p-e701e364.entry.js} +1 -1
  140. package/lib/duet/{p-d701bd87.system.entry.js → p-e7056ea5.system.entry.js} +1 -1
  141. package/lib/duet/{p-55ad1bfb.entry.js → p-e9064858.entry.js} +1 -1
  142. package/lib/duet/{p-fedad35b.system.entry.js → p-e9ca4ae1.system.entry.js} +2 -2
  143. package/lib/duet/{p-5a9266c8.system.entry.js → p-ed981e8d.system.entry.js} +1 -1
  144. package/lib/duet/{p-db75f866.entry.js → p-ef7560b6.entry.js} +1 -1
  145. package/lib/duet/{p-1f08d290.system.entry.js → p-f1803ec3.system.entry.js} +1 -1
  146. package/lib/duet/p-f261a666.system.entry.js +4 -0
  147. package/lib/duet/{p-b465ac62.entry.js → p-fa5a028c.entry.js} +1 -1
  148. package/lib/esm/duet-alert.entry.js +1 -1
  149. package/lib/esm/duet-badge.entry.js +1 -1
  150. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  151. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  152. package/lib/esm/duet-button_2.entry.js +2 -2
  153. package/lib/esm/duet-caption_4.entry.js +2 -2
  154. package/lib/esm/duet-card.entry.js +2 -2
  155. package/lib/esm/duet-checkbox.entry.js +1 -1
  156. package/lib/esm/duet-choice_2.entry.js +2 -2
  157. package/lib/esm/duet-collapsible.entry.js +1 -1
  158. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  159. package/lib/esm/duet-date-picker.entry.js +2 -2
  160. package/lib/esm/duet-divider_2.entry.js +1 -1
  161. package/lib/esm/duet-editable-table-button.entry.js +1 -1
  162. package/lib/esm/duet-editable-table_4.entry.js +3 -3
  163. package/lib/esm/duet-empty-state.entry.js +1 -1
  164. package/lib/esm/duet-fieldset.entry.js +1 -1
  165. package/lib/esm/duet-footer.entry.js +1 -1
  166. package/lib/esm/duet-grid_2.entry.js +1 -1
  167. package/lib/esm/duet-header_2.entry.js +20 -10
  168. package/lib/esm/duet-hero.entry.js +1 -1
  169. package/lib/esm/duet-icon.entry.js +1 -1
  170. package/lib/esm/duet-input_2.entry.js +1 -1
  171. package/lib/esm/duet-layout.entry.js +1 -1
  172. package/lib/esm/duet-list_2.entry.js +1 -1
  173. package/lib/esm/duet-modal.entry.js +15 -3
  174. package/lib/esm/duet-notification_2.entry.js +1 -1
  175. package/lib/esm/duet-number-input.entry.js +1 -1
  176. package/lib/esm/duet-progress.entry.js +1 -1
  177. package/lib/esm/duet-radio_2.entry.js +1 -1
  178. package/lib/esm/duet-range-slider.entry.js +1 -1
  179. package/lib/esm/duet-scrollable_3.entry.js +408 -0
  180. package/lib/esm/duet-select.entry.js +1 -1
  181. package/lib/esm/duet-step_2.entry.js +1 -1
  182. package/lib/esm/duet-textarea.entry.js +1 -1
  183. package/lib/esm/duet-toggle.entry.js +1 -1
  184. package/lib/esm/duet-tooltip.entry.js +1 -1
  185. package/lib/esm/duet-tray.entry.js +1 -1
  186. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  187. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  188. package/lib/esm/duet.js +2 -2
  189. package/lib/esm/{focus-utils-8d0688ae.js → focus-utils-d3cd655b.js} +1 -1
  190. package/lib/esm/{index-ff4326da.js → index-eb374972.js} +1 -1
  191. package/lib/esm/loader.js +2 -2
  192. package/lib/esm-es5/duet-alert.entry.js +1 -1
  193. package/lib/esm-es5/duet-badge.entry.js +1 -1
  194. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  195. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  196. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  197. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  198. package/lib/esm-es5/duet-card.entry.js +1 -1
  199. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  200. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  201. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  202. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  203. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  204. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  205. package/lib/esm-es5/duet-editable-table-button.entry.js +1 -1
  206. package/lib/esm-es5/duet-editable-table_4.entry.js +1 -1
  207. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  208. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  209. package/lib/esm-es5/duet-footer.entry.js +1 -1
  210. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  211. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  212. package/lib/esm-es5/duet-hero.entry.js +1 -1
  213. package/lib/esm-es5/duet-icon.entry.js +1 -1
  214. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  215. package/lib/esm-es5/duet-layout.entry.js +1 -1
  216. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  217. package/lib/esm-es5/duet-modal.entry.js +1 -1
  218. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  219. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  220. package/lib/esm-es5/duet-progress.entry.js +1 -1
  221. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  222. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  223. package/lib/esm-es5/duet-scrollable_3.entry.js +4 -0
  224. package/lib/esm-es5/duet-select.entry.js +1 -1
  225. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  226. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  227. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  228. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  229. package/lib/esm-es5/duet-tray.entry.js +1 -1
  230. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  231. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  232. package/lib/esm-es5/duet.js +1 -1
  233. package/lib/esm-es5/focus-utils-d3cd655b.js +4 -0
  234. package/lib/esm-es5/{index-ff4326da.js → index-eb374972.js} +1 -1
  235. package/lib/esm-es5/loader.js +1 -1
  236. package/lib/html.html-data.json +62 -3
  237. package/lib/types/components/duet-card/duet-card.d.ts +1 -0
  238. package/lib/types/components/duet-modal/duet-modal.d.ts +5 -1
  239. package/lib/types/components/duet-scrollable/duet-scrollable.d.ts +51 -0
  240. package/lib/types/components/duet-tab/duet-tab.d.ts +11 -0
  241. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +15 -0
  242. package/lib/types/components/duet-upload/duet-upload.d.ts +3 -0
  243. package/lib/types/components.d.ts +90 -1
  244. package/package.json +6 -5
  245. package/lib/cjs/duet-tab_2.cjs.entry.js +0 -213
  246. package/lib/duet/p-130476dc.entry.js +0 -4
  247. package/lib/duet/p-30410b67.system.js +0 -4
  248. package/lib/duet/p-4d30eee1.entry.js +0 -4
  249. package/lib/duet/p-56cda85e.system.entry.js +0 -4
  250. package/lib/duet/p-6f7539a6.entry.js +0 -4
  251. package/lib/duet/p-87804904.system.entry.js +0 -4
  252. package/lib/duet/p-b9fe29c7.entry.js +0 -4
  253. package/lib/duet/p-d9f076ed.entry.js +0 -4
  254. package/lib/esm/duet-tab_2.entry.js +0 -208
  255. package/lib/esm-es5/duet-tab_2.entry.js +0 -4
  256. package/lib/esm-es5/focus-utils-8d0688ae.js +0 -4
@@ -0,0 +1,408 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-eb374972.js';
5
+ import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
6
+ import { g as getLocaleString, a as getLanguage } from './language-utils-344d894c.js';
7
+ import { c as createID } from './create-id-981107da.js';
8
+ import { d as isArrowLeftKey, b as isArrowUpKey, a as isArrowRightKey, c as isArrowDownKey } from './keyboard-utils-584cedd7.js';
9
+ import './string-utils-2f1793b8.js';
10
+
11
+ const duetScrollableCss = "*,*::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}";
12
+
13
+ let DuetScrollable = class {
14
+ constructor(hostRef) {
15
+ registerInstance(this, hostRef);
16
+ /**
17
+ * Private variables and constants index
18
+ */
19
+ this.currentIndex = 0;
20
+ this.tabListElement = undefined;
21
+ this.tabListClass = "duet-scrollable-list";
22
+ this.tablistAtStart = true;
23
+ this.isTabContentSmallerThanWrapper = false;
24
+ this.tablistAtEnd = false;
25
+ this.childrenData = {};
26
+ this.resizeObserver = new ResizeObserver(entries => {
27
+ var _a, _b, _c, _d;
28
+ // otherwise, something is wrong, expecting 1 element only
29
+ if ((entries === null || entries === void 0 ? void 0 : entries.length) === 1) {
30
+ const currentWidth = (_b = (_a = entries[0]) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width;
31
+ const scrollWidth = (_d = (_c = entries[0]) === null || _c === void 0 ? void 0 : _c.target) === null || _d === void 0 ? void 0 : _d.scrollWidth;
32
+ // in order to avoid state "jumping" on the boundary condition we add a few pixels to the comparison
33
+ this.isTabContentSmallerThanWrapper = scrollWidth > currentWidth + 5;
34
+ }
35
+ });
36
+ /**
37
+ * Theme of duet-tab-scrollable. When used this will override the color setting and
38
+ * use "primary" or "primary-turva" as the color depending on which theme
39
+ * is chosen.
40
+ */
41
+ this.theme = "";
42
+ /**
43
+ * Optional identifier to add to buttons in the tab group
44
+ */
45
+ this.identifier = "";
46
+ /**
47
+ * Selected element
48
+ */
49
+ this.selected = 0;
50
+ }
51
+ watchPropHandler(newValue) {
52
+ this.scrollToTab(newValue, "center");
53
+ }
54
+ /**
55
+ * Component lifecycle events.
56
+ */
57
+ componentWillLoad() {
58
+ inheritGlobalTheme(this);
59
+ const slotted = this.host.children;
60
+ this.childrenData = { hasChildren: slotted && slotted.length > 0, numberOfChildren: slotted && slotted.length };
61
+ }
62
+ componentDidLoad() {
63
+ this.resizeObserver.observe(this.tabListElement);
64
+ }
65
+ disconnectedCallback() {
66
+ this.resizeObserver.disconnect();
67
+ }
68
+ /**
69
+ * Private methods.
70
+ */
71
+ getLastVisibleElement() {
72
+ const clientWidth = this.tabListElement.clientWidth;
73
+ const xValues = Array.from(this.host.querySelectorAll("button")).findIndex(element => element.getBoundingClientRect().x > clientWidth);
74
+ return xValues;
75
+ }
76
+ getFirstVisibleElement() {
77
+ const buttonCollection = this.host.querySelectorAll("button");
78
+ // reverse the array because we want the first invisible element form the middle, not the first in the list
79
+ const arrayOfXValues = Array.from(buttonCollection).map(el => el.getBoundingClientRect().x - el.getBoundingClientRect().width);
80
+ const xValues = arrayOfXValues.findIndex(element => {
81
+ return element > 0;
82
+ });
83
+ return xValues;
84
+ }
85
+ updateScrollButtons(container = this.tabListElement) {
86
+ if (container.scrollLeft <= 0) {
87
+ this.tablistAtStart = true;
88
+ }
89
+ else if (container.scrollLeft > 0) {
90
+ this.tablistAtStart = false;
91
+ }
92
+ if (container.clientWidth + container.scrollLeft + 10 >= container.scrollWidth) {
93
+ this.tablistAtEnd = true;
94
+ }
95
+ else if (container.clientWidth + container.scrollLeft + 10 < container.scrollWidth) {
96
+ this.tablistAtEnd = false;
97
+ }
98
+ }
99
+ scrollToTab(index = this.currentIndex, inline) {
100
+ if (!this.childrenData.hasChildren) {
101
+ return;
102
+ }
103
+ if (index + 1 >= this.childrenData.numberOfChildren) {
104
+ index = this.childrenData.numberOfChildren - 1;
105
+ }
106
+ if (index < 0) {
107
+ index = 0;
108
+ }
109
+ const buttons = this.host.querySelectorAll("button");
110
+ // store previous position
111
+ let prevPosition = buttons[0].getBoundingClientRect().x;
112
+ // iterations to run
113
+ let ticksWhereScrollDidNotHappen = 5;
114
+ const getAnimationFrame = () => {
115
+ // if we get the same value enter the logic loop
116
+ if (buttons[0].getBoundingClientRect().x === prevPosition) {
117
+ ticksWhereScrollDidNotHappen--;
118
+ // When iteration is not complete run the calculation again
119
+ if (ticksWhereScrollDidNotHappen !== 0) {
120
+ window.requestAnimationFrame(getAnimationFrame);
121
+ return;
122
+ }
123
+ this.updateScrollButtons();
124
+ }
125
+ else {
126
+ window.requestAnimationFrame(getAnimationFrame);
127
+ prevPosition = buttons[0].getBoundingClientRect().x;
128
+ }
129
+ };
130
+ buttons[index].scrollIntoView({ behavior: "smooth", inline });
131
+ window.requestAnimationFrame(getAnimationFrame);
132
+ }
133
+ scrollLeft() {
134
+ this.tablistAtEnd = false;
135
+ const first = this.getFirstVisibleElement() - 1;
136
+ this.scrollToTab(first, "center");
137
+ }
138
+ scrollRight() {
139
+ this.tablistAtStart = false;
140
+ const last = this.getLastVisibleElement() + 1;
141
+ this.scrollToTab(last, "center");
142
+ }
143
+ /**
144
+ * render() function
145
+ * Always the last one in the class.
146
+ */
147
+ render() {
148
+ return (h(Host, { class: {
149
+ "duet-theme-turva": this.theme === "turva",
150
+ "duet-theme-default": this.theme === "default",
151
+ } }, h("div", { class: "duet-scrollable-items" }, h("button", { part: `${this.identifier}-button-left`, "aria-hidden": "true", class: {
152
+ "duet-scrollable-button": true,
153
+ "duet-scrollable-button--left": true,
154
+ "duet-scrollable-button--occluded": !this.isTabContentSmallerThanWrapper,
155
+ }, onClick: () => this.scrollLeft(), disabled: this.tablistAtStart, tabindex: "-1" }, h("duet-icon", { name: "action-arrow-left-small", size: "small", margin: "none" })), h("div", { class: this.tabListClass, onScroll: () => this.updateScrollButtons(), ref: element => (this.tabListElement = element) }, h("slot", null)), h("button", { part: `${this.identifier}-button-right`, "aria-hidden": "true", class: {
156
+ "duet-scrollable-button": true,
157
+ "duet-scrollable-button--right": true,
158
+ "duet-scrollable-button--occluded": !this.isTabContentSmallerThanWrapper,
159
+ }, onClick: () => this.scrollRight(), disabled: this.tablistAtEnd, tabindex: "-1" }, h("duet-icon", { name: "action-arrow-right-small", size: "small", margin: "none" })))));
160
+ }
161
+ get host() { return getElement(this); }
162
+ static get watchers() { return {
163
+ "selected": ["watchPropHandler"]
164
+ }; }
165
+ };
166
+ DuetScrollable.style = duetScrollableCss;
167
+
168
+ const duetTabCss = ".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}";
169
+
170
+ let DuetTab = class {
171
+ constructor(hostRef) {
172
+ registerInstance(this, hostRef);
173
+ /**
174
+ * Defaults for AccessibleLabel
175
+ * @default null
176
+ */
177
+ this.accessibleDescriptionDefault = null;
178
+ /**
179
+ * String for AccessibleLabel
180
+ * @default null
181
+ */
182
+ this.accessibleDescription = this.accessibleDescriptionDefault
183
+ ? getLocaleString(this.accessibleDescriptionDefault)
184
+ : null;
185
+ }
186
+ /**
187
+ * render() function
188
+ * Always the last one in the class.
189
+ */
190
+ render() {
191
+ {
192
+ return (h("div", { role: "tabpanel", class: { "duet-tab": true, selected: this.selected }, "aria-description": this.accessibleDescription }, h("slot", null)));
193
+ }
194
+ }
195
+ };
196
+ DuetTab.style = duetTabCss;
197
+
198
+ const duetTabGroupCss = "*,*::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}";
199
+
200
+ let DuetTabGroup = class {
201
+ constructor(hostRef) {
202
+ registerInstance(this, hostRef);
203
+ this.duetChange = createEvent(this, "duetChange", 3);
204
+ this.duetTabChange = createEvent(this, "duetTabChange", 7);
205
+ this.id = createID("DuetTabGroup");
206
+ /**
207
+ * State() variables
208
+ * Inlined decorator, alphabetical order.
209
+ */
210
+ this.tabs = [];
211
+ this.selected = 0;
212
+ /**
213
+ * Theme of the component.
214
+ */
215
+ this.theme = "";
216
+ /**
217
+ * Controls whether the tab-group should scroll (by inflection this will disable collapsing to select box on small screens),
218
+ * if this is a number instead of true it will be used as "amount of items to scroll"
219
+ */
220
+ this.scrolls = false;
221
+ /**
222
+ * Whether the tab-group collapses to a select dropwdown in minor breakpoints
223
+ */
224
+ this.collapses = true;
225
+ /**
226
+ * Style variation of the tab group.
227
+ */
228
+ this.variation = "default";
229
+ /**
230
+ * The currently active language. This setting changes the accessible labels to match the
231
+ * chosen language.
232
+ * @deprecated this is now handled via the html lang tag, and is no longer used - kept to avoid breaking changes and ease unit testing
233
+ * @default "fi"
234
+ */
235
+ this.language = getLanguage();
236
+ /**
237
+ * Defaults for Label
238
+ * @default {fi: "Valitse", en: "Choose", sv: "Välja"}
239
+ */
240
+ this.labelDefaults = {
241
+ fi: "Valitse",
242
+ en: "Choose",
243
+ sv: "Välj",
244
+ };
245
+ /**
246
+ * Label for the select element which gets shown on mobile.
247
+ * @default {fi: "Valitse", en: "Choose", sv: "Välja"}
248
+ */
249
+ this.label = getLocaleString(this.labelDefaults, this.language);
250
+ /**
251
+ * Determines whether the label for the select element shown on mobile is visually hidden.
252
+ */
253
+ this.labelHidden = true;
254
+ /**
255
+ * Optional identifier to add to buttons in the tab group
256
+ */
257
+ this.identifier = this.id;
258
+ /**
259
+ * Controls the margin of the component.
260
+ */
261
+ this.margin = "auto";
262
+ /**
263
+ * Controls the padding of the component.
264
+ */
265
+ this.padding = "auto";
266
+ /**
267
+ * Component event handling.
268
+ */
269
+ this.handleKeyDown = ev => {
270
+ let button;
271
+ if (isArrowLeftKey(ev) || isArrowUpKey(ev)) {
272
+ button = ev.target.previousElementSibling;
273
+ }
274
+ else if (isArrowRightKey(ev) || isArrowDownKey(ev)) {
275
+ button = ev.target.nextElementSibling;
276
+ }
277
+ if (button) {
278
+ ev.preventDefault();
279
+ button.click();
280
+ button.focus();
281
+ }
282
+ };
283
+ this.renderTab = () => {
284
+ const renderedTabs = this.tabs.map((element, index) => {
285
+ return (h("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button`, type: "button", class: {
286
+ "duet-p-0": this.padding === "none",
287
+ "duet-tab-button": true,
288
+ selected: element.selected,
289
+ }, onClick: () => this.openTab(index), onKeyDown: ev => this.handleKeyDown(ev) }, element.label));
290
+ });
291
+ if (this.scrolls) {
292
+ return (h("duet-scrollable", { selected: this.selected, identifier: this.identifier }, renderedTabs));
293
+ }
294
+ return renderedTabs;
295
+ };
296
+ }
297
+ /**
298
+ * Component lifecycle events.
299
+ */
300
+ async connectedCallback() {
301
+ if (typeof MutationObserver !== "undefined") {
302
+ this.mutationO = new MutationObserver(() => {
303
+ this.updateTabs();
304
+ });
305
+ this.mutationO.observe(this.element, {
306
+ attributes: true,
307
+ attributeFilter: ["label"],
308
+ childList: true,
309
+ characterData: true,
310
+ subtree: true,
311
+ });
312
+ }
313
+ await this.updateTabs();
314
+ }
315
+ disconnectedCallback() {
316
+ if (this.mutationO) {
317
+ this.mutationO.disconnect();
318
+ this.mutationO = undefined;
319
+ }
320
+ }
321
+ componentWillLoad() {
322
+ inheritGlobalTheme(this);
323
+ }
324
+ /**
325
+ * This method allows you to open any of the tabs by calling the method and
326
+ * passing the index of the tab. Please note that index starts from zero.
327
+ */
328
+ async openTab(tabIndex) {
329
+ if (tabIndex >= this.tabs.length) {
330
+ throw new Error(`[duet-tabs] Index ${tabIndex} is out of bounds of tabs length`);
331
+ }
332
+ this.selected = tabIndex;
333
+ this.tabs.forEach((tab, i) => {
334
+ tab.selected = i === tabIndex;
335
+ });
336
+ const event = {
337
+ value: tabIndex,
338
+ component: "duet-tab-group",
339
+ };
340
+ this.duetChange.emit(event);
341
+ this.duetTabChange.emit(event);
342
+ }
343
+ /**
344
+ * This method used to refresh the contents of the tab group
345
+ * but is now deprecated as this is done automatically.
346
+ * @deprecated
347
+ */
348
+ async refresh() {
349
+ console.log("[duet-tabs] Refresh method is deprecated and will be removed in the future version.");
350
+ }
351
+ /**
352
+ * Local methods.
353
+ */
354
+ getTabs() {
355
+ const allTabs = Array.from(this.element.querySelectorAll("duet-tab"));
356
+ const localTabs = allTabs.filter(tab => tab.closest("duet-tab-group") === this.element);
357
+ if (localTabs.length === 0) {
358
+ throw new Error("[duet-tabs] Must have at least one tab");
359
+ }
360
+ // filter out any nested tabs
361
+ return localTabs;
362
+ }
363
+ getButtonId(index) {
364
+ return `${this.id}-button-${index}`;
365
+ }
366
+ getTabId(index) {
367
+ return `${this.id}-tab-${index}`;
368
+ }
369
+ getAccessibleDescription(index) {
370
+ const description = this.tabs[index].getAttribute("accessible-description") || null;
371
+ return description;
372
+ }
373
+ async updateTabs() {
374
+ this.tabs = this.getTabs();
375
+ this.tabs.forEach((tab, index) => {
376
+ tab.id = this.getTabId(index);
377
+ tab.setAttribute("aria-labelledby", this.getButtonId(index));
378
+ if (tab.selected) {
379
+ this.selected = index;
380
+ }
381
+ });
382
+ return;
383
+ }
384
+ /**
385
+ * render() function
386
+ * Always the last one in the class.
387
+ */
388
+ render() {
389
+ return (h("div", { class: {
390
+ "duet-tab-group": true,
391
+ "duet-theme-turva": this.theme === "turva",
392
+ [`duet-tab-variation-${this.variation}`]: true,
393
+ "duet-tab-group-scrolls": this.scrolls,
394
+ "duet-tab-group-collapses": this.collapses,
395
+ } }, this.tabs.length > 3 && this.collapses && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
396
+ return { label: tab.label, value: index.toString() };
397
+ }) })), h("div", { role: "tablist", class: {
398
+ "duet-m-0": this.margin === "none",
399
+ "duet-tab-group-tabs": true,
400
+ "duet-tab-group-hidden": this.tabs.length > 3,
401
+ "duet-tab-group-collapses": this.collapses,
402
+ } }, this.renderTab()), h("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } }, h("slot", null))));
403
+ }
404
+ get element() { return getElement(this); }
405
+ };
406
+ DuetTabGroup.style = duetTabGroupCss;
407
+
408
+ export { DuetScrollable as duet_scrollable, DuetTab as duet_tab, DuetTabGroup as duet_tab_group };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-ff4326da.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-eb374972.js';
5
5
  import { c as createID } from './create-id-981107da.js';
6
6
  import { p as parsePossibleJSON } from './string-utils-2f1793b8.js';
7
7
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index-ff4326da.js';
4
+ import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index-eb374972.js';
5
5
  import { c as createID } from './create-id-981107da.js';
6
6
  import { i as isKeyboardClick } from './keyboard-utils-584cedd7.js';
7
7
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-ff4326da.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-eb374972.js';
5
5
  import { c as createID } from './create-id-981107da.js';
6
6
  import { c as cleanValue } from './input-utils-f4cafee1.js';
7
7
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-ff4326da.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-eb374972.js';
5
5
  import { c as createID } from './create-id-981107da.js';
6
6
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, h, H as Host, g as getElement } from './index-ff4326da.js';
4
+ import { r as registerInstance, h, H as Host, g as getElement } from './index-eb374972.js';
5
5
  import { c as createID } from './create-id-981107da.js';
6
6
  import { a as getLanguage, g as getLocaleString } from './language-utils-344d894c.js';
7
7
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, h, F as Fragment, g as getElement } from './index-ff4326da.js';
4
+ import { r as registerInstance, h, F as Fragment, g as getElement } from './index-eb374972.js';
5
5
  import { s as sizeHeader } from './tokens.module-49cbf963.js';
6
6
  import { c as createID } from './create-id-981107da.js';
7
7
  import { a as getLanguage, g as getLocaleString } from './language-utils-344d894c.js';
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, h, H as Host } from './index-ff4326da.js';
4
+ import { r as registerInstance, h, H as Host } from './index-eb374972.js';
5
5
 
6
6
  let DuetUploadAriaStatus = class {
7
7
  constructor(hostRef) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, h, H as Host } from './index-ff4326da.js';
4
+ import { r as registerInstance, h, H as Host } from './index-eb374972.js';
5
5
 
6
6
  const duetVisuallyHiddenCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}";
7
7