@umbraco-ui/uui 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (635) hide show
  1. package/custom-elements.json +103 -1
  2. package/dist/_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js +9 -0
  3. package/dist/components/action-bar/action-bar.d.ts +0 -1
  4. package/dist/components/action-bar/action-bar.element.js +15 -12
  5. package/dist/components/action-bar/action-bar.element.js.map +1 -1
  6. package/dist/components/action-bar/action-bar.js +5 -5
  7. package/dist/components/action-bar/action-bar.js.map +1 -1
  8. package/dist/components/avatar/avatar.d.ts +0 -1
  9. package/dist/components/avatar/avatar.element.js +72 -86
  10. package/dist/components/avatar/avatar.element.js.map +1 -1
  11. package/dist/components/avatar/avatar.js +5 -5
  12. package/dist/components/avatar/avatar.js.map +1 -1
  13. package/dist/components/avatar-group/avatar-group.d.ts +0 -1
  14. package/dist/components/avatar-group/avatar-group.element.js +58 -68
  15. package/dist/components/avatar-group/avatar-group.element.js.map +1 -1
  16. package/dist/components/avatar-group/avatar-group.js +5 -5
  17. package/dist/components/avatar-group/avatar-group.js.map +1 -1
  18. package/dist/components/badge/badge.d.ts +0 -1
  19. package/dist/components/badge/badge.element.js +32 -38
  20. package/dist/components/badge/badge.element.js.map +1 -1
  21. package/dist/components/badge/badge.js +5 -5
  22. package/dist/components/badge/badge.js.map +1 -1
  23. package/dist/components/boolean-input/UUIBooleanInputEvent.js +15 -13
  24. package/dist/components/boolean-input/UUIBooleanInputEvent.js.map +1 -1
  25. package/dist/components/boolean-input/boolean-input.d.ts +0 -1
  26. package/dist/components/boolean-input/boolean-input.element.js +114 -134
  27. package/dist/components/boolean-input/boolean-input.element.js.map +1 -1
  28. package/dist/components/boolean-input/boolean-input.js +3 -0
  29. package/dist/components/box/box.d.ts +0 -1
  30. package/dist/components/box/box.element.js +74 -77
  31. package/dist/components/box/box.element.js.map +1 -1
  32. package/dist/components/box/box.js +5 -5
  33. package/dist/components/box/box.js.map +1 -1
  34. package/dist/components/breadcrumbs/breadcrumb-item.element.js +45 -50
  35. package/dist/components/breadcrumbs/breadcrumb-item.element.js.map +1 -1
  36. package/dist/components/breadcrumbs/breadcrumbs.d.ts +0 -1
  37. package/dist/components/breadcrumbs/breadcrumbs.element.js +40 -47
  38. package/dist/components/breadcrumbs/breadcrumbs.element.js.map +1 -1
  39. package/dist/components/breadcrumbs/breadcrumbs.js +5 -6
  40. package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -1
  41. package/dist/components/button/button.d.ts +0 -1
  42. package/dist/components/button/button.element.js +147 -199
  43. package/dist/components/button/button.element.js.map +1 -1
  44. package/dist/components/button/button.js +5 -5
  45. package/dist/components/button/button.js.map +1 -1
  46. package/dist/components/button-copy-text/UUICopyTextEvent.js +16 -12
  47. package/dist/components/button-copy-text/UUICopyTextEvent.js.map +1 -1
  48. package/dist/components/button-copy-text/button-copy-text.d.ts +0 -1
  49. package/dist/components/button-copy-text/button-copy-text.element.js +78 -93
  50. package/dist/components/button-copy-text/button-copy-text.element.js.map +1 -1
  51. package/dist/components/button-copy-text/button-copy-text.js +6 -7
  52. package/dist/components/button-copy-text/button-copy-text.js.map +1 -1
  53. package/dist/components/button-group/button-group.d.ts +0 -1
  54. package/dist/components/button-group/button-group.element.js +19 -14
  55. package/dist/components/button-group/button-group.element.js.map +1 -1
  56. package/dist/components/button-group/button-group.js +5 -5
  57. package/dist/components/button-group/button-group.js.map +1 -1
  58. package/dist/components/button-inline-create/UUIButtonInlineCreateEvent.js +16 -14
  59. package/dist/components/button-inline-create/UUIButtonInlineCreateEvent.js.map +1 -1
  60. package/dist/components/button-inline-create/button-inline-create.d.ts +0 -1
  61. package/dist/components/button-inline-create/button-inline-create.element.js +63 -88
  62. package/dist/components/button-inline-create/button-inline-create.element.js.map +1 -1
  63. package/dist/components/button-inline-create/button-inline-create.js +6 -7
  64. package/dist/components/button-inline-create/button-inline-create.js.map +1 -1
  65. package/dist/components/card/UUICardEvent.js +9 -7
  66. package/dist/components/card/UUICardEvent.js.map +1 -1
  67. package/dist/components/card/card.d.ts +0 -1
  68. package/dist/components/card/card.element.d.ts +7 -0
  69. package/dist/components/card/card.element.js +72 -69
  70. package/dist/components/card/card.element.js.map +1 -1
  71. package/dist/components/card/card.js +6 -7
  72. package/dist/components/card/card.js.map +1 -1
  73. package/dist/components/card-block-type/card-block-type.d.ts +0 -1
  74. package/dist/components/card-block-type/card-block-type.element.js +55 -74
  75. package/dist/components/card-block-type/card-block-type.element.js.map +1 -1
  76. package/dist/components/card-block-type/card-block-type.js +5 -5
  77. package/dist/components/card-block-type/card-block-type.js.map +1 -1
  78. package/dist/components/card-content-node/card-content-node.d.ts +0 -1
  79. package/dist/components/card-content-node/card-content-node.element.d.ts +1 -0
  80. package/dist/components/card-content-node/card-content-node.element.js +82 -83
  81. package/dist/components/card-content-node/card-content-node.element.js.map +1 -1
  82. package/dist/components/card-content-node/card-content-node.js +5 -5
  83. package/dist/components/card-content-node/card-content-node.js.map +1 -1
  84. package/dist/components/card-media/card-media.d.ts +0 -1
  85. package/dist/components/card-media/card-media.element.d.ts +4 -0
  86. package/dist/components/card-media/card-media.element.js +103 -89
  87. package/dist/components/card-media/card-media.element.js.map +1 -1
  88. package/dist/components/card-media/card-media.js +5 -5
  89. package/dist/components/card-media/card-media.js.map +1 -1
  90. package/dist/components/card-user/card-user.d.ts +0 -1
  91. package/dist/components/card-user/card-user.element.js +57 -72
  92. package/dist/components/card-user/card-user.element.js.map +1 -1
  93. package/dist/components/card-user/card-user.js +5 -5
  94. package/dist/components/card-user/card-user.js.map +1 -1
  95. package/dist/components/checkbox/checkbox.d.ts +0 -1
  96. package/dist/components/checkbox/checkbox.element.js +41 -22
  97. package/dist/components/checkbox/checkbox.element.js.map +1 -1
  98. package/dist/components/checkbox/checkbox.js +5 -5
  99. package/dist/components/checkbox/checkbox.js.map +1 -1
  100. package/dist/components/color-area/UUIColorAreaEvent.js +15 -13
  101. package/dist/components/color-area/UUIColorAreaEvent.js.map +1 -1
  102. package/dist/components/color-area/color-area.d.ts +0 -1
  103. package/dist/components/color-area/color-area.element.js +137 -174
  104. package/dist/components/color-area/color-area.element.js.map +1 -1
  105. package/dist/components/color-area/color-area.js +6 -7
  106. package/dist/components/color-area/color-area.js.map +1 -1
  107. package/dist/components/color-picker/UUIColorPickerEvent.js +15 -13
  108. package/dist/components/color-picker/UUIColorPickerEvent.js.map +1 -1
  109. package/dist/components/color-picker/color-picker.d.ts +0 -1
  110. package/dist/components/color-picker/color-picker.element.js +293 -334
  111. package/dist/components/color-picker/color-picker.element.js.map +1 -1
  112. package/dist/components/color-picker/color-picker.js +6 -7
  113. package/dist/components/color-picker/color-picker.js.map +1 -1
  114. package/dist/components/color-slider/UUIColorSliderEvent.js +15 -13
  115. package/dist/components/color-slider/UUIColorSliderEvent.js.map +1 -1
  116. package/dist/components/color-slider/color-slider.d.ts +0 -1
  117. package/dist/components/color-slider/color-slider.element.js +169 -219
  118. package/dist/components/color-slider/color-slider.element.js.map +1 -1
  119. package/dist/components/color-slider/color-slider.js +6 -7
  120. package/dist/components/color-slider/color-slider.js.map +1 -1
  121. package/dist/components/color-swatch/color-swatch.d.ts +0 -1
  122. package/dist/components/color-swatch/color-swatch.element.d.ts +1 -1
  123. package/dist/components/color-swatch/color-swatch.element.js +215 -201
  124. package/dist/components/color-swatch/color-swatch.element.js.map +1 -1
  125. package/dist/components/color-swatch/color-swatch.js +5 -5
  126. package/dist/components/color-swatch/color-swatch.js.map +1 -1
  127. package/dist/components/color-swatches/UUIColorSwatchesEvent.js +15 -13
  128. package/dist/components/color-swatches/UUIColorSwatchesEvent.js.map +1 -1
  129. package/dist/components/color-swatches/color-swatches.d.ts +0 -1
  130. package/dist/components/color-swatches/color-swatches.element.js +115 -132
  131. package/dist/components/color-swatches/color-swatches.element.js.map +1 -1
  132. package/dist/components/color-swatches/color-swatches.js +6 -7
  133. package/dist/components/color-swatches/color-swatches.js.map +1 -1
  134. package/dist/components/combobox/UUIComboboxEvent.js +18 -14
  135. package/dist/components/combobox/UUIComboboxEvent.js.map +1 -1
  136. package/dist/components/combobox/combobox.d.ts +0 -1
  137. package/dist/components/combobox/combobox.element.js +321 -425
  138. package/dist/components/combobox/combobox.element.js.map +1 -1
  139. package/dist/components/combobox/combobox.js +6 -7
  140. package/dist/components/combobox/combobox.js.map +1 -1
  141. package/dist/components/combobox-list/UUIComboboxListEvent.js +18 -14
  142. package/dist/components/combobox-list/UUIComboboxListEvent.js.map +1 -1
  143. package/dist/components/combobox-list/combobox-list-option.element.js +88 -80
  144. package/dist/components/combobox-list/combobox-list-option.element.js.map +1 -1
  145. package/dist/components/combobox-list/combobox-list.d.ts +0 -1
  146. package/dist/components/combobox-list/combobox-list.element.js +218 -275
  147. package/dist/components/combobox-list/combobox-list.element.js.map +1 -1
  148. package/dist/components/combobox-list/combobox-list.js +6 -8
  149. package/dist/components/combobox-list/combobox-list.js.map +1 -1
  150. package/dist/components/dialog/dialog.d.ts +0 -1
  151. package/dist/components/dialog/dialog.element.js +19 -14
  152. package/dist/components/dialog/dialog.element.js.map +1 -1
  153. package/dist/components/dialog/dialog.js +5 -5
  154. package/dist/components/dialog/dialog.js.map +1 -1
  155. package/dist/components/dialog-layout/dialog-layout.d.ts +0 -1
  156. package/dist/components/dialog-layout/dialog-layout.element.js +59 -64
  157. package/dist/components/dialog-layout/dialog-layout.element.js.map +1 -1
  158. package/dist/components/dialog-layout/dialog-layout.js +5 -5
  159. package/dist/components/dialog-layout/dialog-layout.js.map +1 -1
  160. package/dist/components/file-dropzone/UUIFileDropzoneEvent.js +18 -14
  161. package/dist/components/file-dropzone/UUIFileDropzoneEvent.js.map +1 -1
  162. package/dist/components/file-dropzone/file-dropzone.d.ts +0 -1
  163. package/dist/components/file-dropzone/file-dropzone.element.js +214 -257
  164. package/dist/components/file-dropzone/file-dropzone.element.js.map +1 -1
  165. package/dist/components/file-dropzone/file-dropzone.js +6 -7
  166. package/dist/components/file-dropzone/file-dropzone.js.map +1 -1
  167. package/dist/components/file-preview/UUIFileSize.js +46 -19
  168. package/dist/components/file-preview/UUIFileSize.js.map +1 -1
  169. package/dist/components/file-preview/file-preview.d.ts +0 -1
  170. package/dist/components/file-preview/file-preview.element.js +78 -103
  171. package/dist/components/file-preview/file-preview.element.js.map +1 -1
  172. package/dist/components/file-preview/file-preview.js +6 -5
  173. package/dist/components/file-preview/file-preview.js.map +1 -1
  174. package/dist/components/form/form.d.ts +0 -1
  175. package/dist/components/form/form.element.js +46 -46
  176. package/dist/components/form/form.element.js.map +1 -1
  177. package/dist/components/form/form.js +5 -5
  178. package/dist/components/form/form.js.map +1 -1
  179. package/dist/components/form-layout-item/form-layout-item.d.ts +0 -1
  180. package/dist/components/form-layout-item/form-layout-item.element.js +39 -45
  181. package/dist/components/form-layout-item/form-layout-item.element.js.map +1 -1
  182. package/dist/components/form-layout-item/form-layout-item.js +5 -5
  183. package/dist/components/form-layout-item/form-layout-item.js.map +1 -1
  184. package/dist/components/form-validation-message/form-validation-message.d.ts +0 -1
  185. package/dist/components/form-validation-message/form-validation-message.element.js +71 -89
  186. package/dist/components/form-validation-message/form-validation-message.element.js.map +1 -1
  187. package/dist/components/form-validation-message/form-validation-message.js +5 -5
  188. package/dist/components/form-validation-message/form-validation-message.js.map +1 -1
  189. package/dist/components/icon/UUIIconRequestEvent.js +21 -19
  190. package/dist/components/icon/UUIIconRequestEvent.js.map +1 -1
  191. package/dist/components/icon/icon.d.ts +0 -1
  192. package/dist/components/icon/icon.element.js +93 -117
  193. package/dist/components/icon/icon.element.js.map +1 -1
  194. package/dist/components/icon/icon.js +6 -7
  195. package/dist/components/icon/icon.js.map +1 -1
  196. package/dist/components/icon-registry/UUIIconHost.js +16 -17
  197. package/dist/components/icon-registry/UUIIconHost.js.map +1 -1
  198. package/dist/components/icon-registry/UUIIconRegistry.js +67 -77
  199. package/dist/components/icon-registry/UUIIconRegistry.js.map +1 -1
  200. package/dist/components/icon-registry/icon-registry.d.ts +0 -1
  201. package/dist/components/icon-registry/icon-registry.element.js +39 -48
  202. package/dist/components/icon-registry/icon-registry.element.js.map +1 -1
  203. package/dist/components/icon-registry/icon-registry.js +7 -6
  204. package/dist/components/icon-registry/icon-registry.js.map +1 -1
  205. package/dist/components/icon-registry-essential/UUIIconRegistryEssential.js +44 -42
  206. package/dist/components/icon-registry-essential/UUIIconRegistryEssential.js.map +1 -1
  207. package/dist/components/icon-registry-essential/icon-registry-essential.d.ts +0 -1
  208. package/dist/components/icon-registry-essential/icon-registry-essential.element.js +15 -9
  209. package/dist/components/icon-registry-essential/icon-registry-essential.element.js.map +1 -1
  210. package/dist/components/icon-registry-essential/icon-registry-essential.js +6 -39
  211. package/dist/components/icon-registry-essential/icon-registry-essential.js.map +1 -1
  212. package/dist/components/icon-registry-essential/svgs/iconAdd.js +6 -5
  213. package/dist/components/icon-registry-essential/svgs/iconAdd.js.map +1 -1
  214. package/dist/components/icon-registry-essential/svgs/iconAlert.js +6 -5
  215. package/dist/components/icon-registry-essential/svgs/iconAlert.js.map +1 -1
  216. package/dist/components/icon-registry-essential/svgs/iconAttachment.js +6 -5
  217. package/dist/components/icon-registry-essential/svgs/iconAttachment.js.map +1 -1
  218. package/dist/components/icon-registry-essential/svgs/iconCalendar.js +6 -5
  219. package/dist/components/icon-registry-essential/svgs/iconCalendar.js.map +1 -1
  220. package/dist/components/icon-registry-essential/svgs/iconCheck.js +6 -5
  221. package/dist/components/icon-registry-essential/svgs/iconCheck.js.map +1 -1
  222. package/dist/components/icon-registry-essential/svgs/iconClipboard.js +6 -5
  223. package/dist/components/icon-registry-essential/svgs/iconClipboard.js.map +1 -1
  224. package/dist/components/icon-registry-essential/svgs/iconCode.js +6 -5
  225. package/dist/components/icon-registry-essential/svgs/iconCode.js.map +1 -1
  226. package/dist/components/icon-registry-essential/svgs/iconColorPicker.js +6 -5
  227. package/dist/components/icon-registry-essential/svgs/iconColorPicker.js.map +1 -1
  228. package/dist/components/icon-registry-essential/svgs/iconCopy.js +6 -5
  229. package/dist/components/icon-registry-essential/svgs/iconCopy.js.map +1 -1
  230. package/dist/components/icon-registry-essential/svgs/iconDelete.js +6 -5
  231. package/dist/components/icon-registry-essential/svgs/iconDelete.js.map +1 -1
  232. package/dist/components/icon-registry-essential/svgs/iconDocument.js +6 -5
  233. package/dist/components/icon-registry-essential/svgs/iconDocument.js.map +1 -1
  234. package/dist/components/icon-registry-essential/svgs/iconDownload.js +6 -5
  235. package/dist/components/icon-registry-essential/svgs/iconDownload.js.map +1 -1
  236. package/dist/components/icon-registry-essential/svgs/iconDrag.js +6 -5
  237. package/dist/components/icon-registry-essential/svgs/iconDrag.js.map +1 -1
  238. package/dist/components/icon-registry-essential/svgs/iconEdit.js +6 -5
  239. package/dist/components/icon-registry-essential/svgs/iconEdit.js.map +1 -1
  240. package/dist/components/icon-registry-essential/svgs/iconFavorite.js +6 -5
  241. package/dist/components/icon-registry-essential/svgs/iconFavorite.js.map +1 -1
  242. package/dist/components/icon-registry-essential/svgs/iconFolder.js +6 -5
  243. package/dist/components/icon-registry-essential/svgs/iconFolder.js.map +1 -1
  244. package/dist/components/icon-registry-essential/svgs/iconForbidden.js +6 -5
  245. package/dist/components/icon-registry-essential/svgs/iconForbidden.js.map +1 -1
  246. package/dist/components/icon-registry-essential/svgs/iconInfo.js +6 -5
  247. package/dist/components/icon-registry-essential/svgs/iconInfo.js.map +1 -1
  248. package/dist/components/icon-registry-essential/svgs/iconLink.js +6 -5
  249. package/dist/components/icon-registry-essential/svgs/iconLink.js.map +1 -1
  250. package/dist/components/icon-registry-essential/svgs/iconLock.js +6 -5
  251. package/dist/components/icon-registry-essential/svgs/iconLock.js.map +1 -1
  252. package/dist/components/icon-registry-essential/svgs/iconPause.js +6 -5
  253. package/dist/components/icon-registry-essential/svgs/iconPause.js.map +1 -1
  254. package/dist/components/icon-registry-essential/svgs/iconPicture.js +6 -5
  255. package/dist/components/icon-registry-essential/svgs/iconPicture.js.map +1 -1
  256. package/dist/components/icon-registry-essential/svgs/iconPlay.js +6 -5
  257. package/dist/components/icon-registry-essential/svgs/iconPlay.js.map +1 -1
  258. package/dist/components/icon-registry-essential/svgs/iconRemove.js +6 -5
  259. package/dist/components/icon-registry-essential/svgs/iconRemove.js.map +1 -1
  260. package/dist/components/icon-registry-essential/svgs/iconSearch.js +6 -5
  261. package/dist/components/icon-registry-essential/svgs/iconSearch.js.map +1 -1
  262. package/dist/components/icon-registry-essential/svgs/iconSee.js +6 -5
  263. package/dist/components/icon-registry-essential/svgs/iconSee.js.map +1 -1
  264. package/dist/components/icon-registry-essential/svgs/iconSettings.js +6 -5
  265. package/dist/components/icon-registry-essential/svgs/iconSettings.js.map +1 -1
  266. package/dist/components/icon-registry-essential/svgs/iconSubtract.js +6 -5
  267. package/dist/components/icon-registry-essential/svgs/iconSubtract.js.map +1 -1
  268. package/dist/components/icon-registry-essential/svgs/iconSync.js +6 -5
  269. package/dist/components/icon-registry-essential/svgs/iconSync.js.map +1 -1
  270. package/dist/components/icon-registry-essential/svgs/iconUnlock.js +6 -5
  271. package/dist/components/icon-registry-essential/svgs/iconUnlock.js.map +1 -1
  272. package/dist/components/icon-registry-essential/svgs/iconUnsee.js +6 -5
  273. package/dist/components/icon-registry-essential/svgs/iconUnsee.js.map +1 -1
  274. package/dist/components/icon-registry-essential/svgs/iconWand.js +6 -5
  275. package/dist/components/icon-registry-essential/svgs/iconWand.js.map +1 -1
  276. package/dist/components/icon-registry-essential/svgs/iconWrong.js +6 -5
  277. package/dist/components/icon-registry-essential/svgs/iconWrong.js.map +1 -1
  278. package/dist/components/icon-registry-essential/svgs/index.js +34 -0
  279. package/dist/components/index.js +206 -0
  280. package/dist/components/input/UUIInputEvent.js +18 -14
  281. package/dist/components/input/UUIInputEvent.js.map +1 -1
  282. package/dist/components/input/input.d.ts +0 -1
  283. package/dist/components/input/input.element.js +176 -201
  284. package/dist/components/input/input.element.js.map +1 -1
  285. package/dist/components/input/input.js +6 -7
  286. package/dist/components/input/input.js.map +1 -1
  287. package/dist/components/input-file/input-file.d.ts +0 -1
  288. package/dist/components/input-file/input-file.element.js +137 -211
  289. package/dist/components/input-file/input-file.element.js.map +1 -1
  290. package/dist/components/input-file/input-file.js +5 -5
  291. package/dist/components/input-file/input-file.js.map +1 -1
  292. package/dist/components/input-lock/UUIInputLockEvent.js +15 -13
  293. package/dist/components/input-lock/UUIInputLockEvent.js.map +1 -1
  294. package/dist/components/input-lock/input-lock.d.ts +0 -1
  295. package/dist/components/input-lock/input-lock.element.js +69 -105
  296. package/dist/components/input-lock/input-lock.element.js.map +1 -1
  297. package/dist/components/input-lock/input-lock.js +6 -7
  298. package/dist/components/input-lock/input-lock.js.map +1 -1
  299. package/dist/components/input-password/input-password.d.ts +0 -1
  300. package/dist/components/input-password/input-password.element.js +45 -90
  301. package/dist/components/input-password/input-password.element.js.map +1 -1
  302. package/dist/components/input-password/input-password.js +5 -5
  303. package/dist/components/input-password/input-password.js.map +1 -1
  304. package/dist/components/keyboard-shortcut/key.element.js +19 -14
  305. package/dist/components/keyboard-shortcut/key.element.js.map +1 -1
  306. package/dist/components/keyboard-shortcut/keyboard-shortcut.d.ts +0 -1
  307. package/dist/components/keyboard-shortcut/keyboard-shortcut.element.js +19 -14
  308. package/dist/components/keyboard-shortcut/keyboard-shortcut.element.js.map +1 -1
  309. package/dist/components/keyboard-shortcut/keyboard-shortcut.js +5 -6
  310. package/dist/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  311. package/dist/components/label/label.d.ts +0 -1
  312. package/dist/components/label/label.element.js +52 -54
  313. package/dist/components/label/label.element.js.map +1 -1
  314. package/dist/components/label/label.js +5 -5
  315. package/dist/components/label/label.js.map +1 -1
  316. package/dist/components/loader/loader.d.ts +0 -1
  317. package/dist/components/loader/loader.element.js +18 -14
  318. package/dist/components/loader/loader.element.js.map +1 -1
  319. package/dist/components/loader/loader.js +5 -5
  320. package/dist/components/loader/loader.js.map +1 -1
  321. package/dist/components/loader-bar/loader-bar.d.ts +0 -1
  322. package/dist/components/loader-bar/loader-bar.element.js +55 -52
  323. package/dist/components/loader-bar/loader-bar.element.js.map +1 -1
  324. package/dist/components/loader-bar/loader-bar.js +5 -5
  325. package/dist/components/loader-bar/loader-bar.js.map +1 -1
  326. package/dist/components/loader-circle/loader-circle.d.ts +0 -1
  327. package/dist/components/loader-circle/loader-circle.element.js +52 -59
  328. package/dist/components/loader-circle/loader-circle.element.js.map +1 -1
  329. package/dist/components/loader-circle/loader-circle.js +5 -5
  330. package/dist/components/loader-circle/loader-circle.js.map +1 -1
  331. package/dist/components/menu-item/UUIMenuItemEvent.js +15 -9
  332. package/dist/components/menu-item/UUIMenuItemEvent.js.map +1 -1
  333. package/dist/components/menu-item/menu-item.d.ts +0 -1
  334. package/dist/components/menu-item/menu-item.element.js +136 -139
  335. package/dist/components/menu-item/menu-item.element.js.map +1 -1
  336. package/dist/components/menu-item/menu-item.js +6 -7
  337. package/dist/components/menu-item/menu-item.js.map +1 -1
  338. package/dist/components/modal/modal-container.js +86 -141
  339. package/dist/components/modal/modal-container.js.map +1 -1
  340. package/dist/components/modal/modal-dialog.element.js +14 -15
  341. package/dist/components/modal/modal-dialog.element.js.map +1 -1
  342. package/dist/components/modal/modal-sidebar.element.js +41 -64
  343. package/dist/components/modal/modal-sidebar.element.js.map +1 -1
  344. package/dist/components/modal/modal.d.ts +0 -1
  345. package/dist/components/modal/modal.element.js +89 -106
  346. package/dist/components/modal/modal.element.js.map +1 -1
  347. package/dist/components/modal/modal.js +6 -12
  348. package/dist/components/modal/modal.js.map +1 -1
  349. package/dist/components/pagination/UUIPaginationEvent.js +15 -13
  350. package/dist/components/pagination/UUIPaginationEvent.js.map +1 -1
  351. package/dist/components/pagination/pagination.d.ts +0 -1
  352. package/dist/components/pagination/pagination.element.js +188 -228
  353. package/dist/components/pagination/pagination.element.js.map +1 -1
  354. package/dist/components/pagination/pagination.js +6 -7
  355. package/dist/components/pagination/pagination.js.map +1 -1
  356. package/dist/components/popover-container/popover-container.d.ts +0 -1
  357. package/dist/components/popover-container/popover-container.element.d.ts +1 -0
  358. package/dist/components/popover-container/popover-container.element.js +290 -335
  359. package/dist/components/popover-container/popover-container.element.js.map +1 -1
  360. package/dist/components/popover-container/popover-container.js +5 -5
  361. package/dist/components/popover-container/popover-container.js.map +1 -1
  362. package/dist/components/progress-bar/progress-bar.d.ts +0 -1
  363. package/dist/components/progress-bar/progress-bar.element.js +41 -43
  364. package/dist/components/progress-bar/progress-bar.element.js.map +1 -1
  365. package/dist/components/progress-bar/progress-bar.js +5 -5
  366. package/dist/components/progress-bar/progress-bar.js.map +1 -1
  367. package/dist/components/radio/UUIRadioEvent.js +15 -13
  368. package/dist/components/radio/UUIRadioEvent.js.map +1 -1
  369. package/dist/components/radio/UUIRadioGroupEvent.js +15 -13
  370. package/dist/components/radio/UUIRadioGroupEvent.js.map +1 -1
  371. package/dist/components/radio/radio-group.element.js +224 -279
  372. package/dist/components/radio/radio-group.element.js.map +1 -1
  373. package/dist/components/radio/radio.d.ts +0 -1
  374. package/dist/components/radio/radio.element.js +100 -123
  375. package/dist/components/radio/radio.element.js.map +1 -1
  376. package/dist/components/radio/radio.js +7 -10
  377. package/dist/components/radio/radio.js.map +1 -1
  378. package/dist/components/range-slider/UUIRangeSliderEvent.js +18 -14
  379. package/dist/components/range-slider/UUIRangeSliderEvent.js.map +1 -1
  380. package/dist/components/range-slider/range-slider.d.ts +0 -1
  381. package/dist/components/range-slider/range-slider.element.js +439 -504
  382. package/dist/components/range-slider/range-slider.element.js.map +1 -1
  383. package/dist/components/range-slider/range-slider.js +6 -7
  384. package/dist/components/range-slider/range-slider.js.map +1 -1
  385. package/dist/components/ref/UUIRefEvent.js +9 -7
  386. package/dist/components/ref/UUIRefEvent.js.map +1 -1
  387. package/dist/components/ref/ref.d.ts +0 -1
  388. package/dist/components/ref/ref.element.js +55 -50
  389. package/dist/components/ref/ref.element.js.map +1 -1
  390. package/dist/components/ref/ref.js +6 -7
  391. package/dist/components/ref/ref.js.map +1 -1
  392. package/dist/components/ref-list/ref-list.d.ts +0 -1
  393. package/dist/components/ref-list/ref-list.element.js +17 -14
  394. package/dist/components/ref-list/ref-list.element.js.map +1 -1
  395. package/dist/components/ref-list/ref-list.js +5 -5
  396. package/dist/components/ref-list/ref-list.js.map +1 -1
  397. package/dist/components/ref-node/ref-node.d.ts +0 -1
  398. package/dist/components/ref-node/ref-node.element.js +91 -109
  399. package/dist/components/ref-node/ref-node.element.js.map +1 -1
  400. package/dist/components/ref-node/ref-node.js +5 -5
  401. package/dist/components/ref-node/ref-node.js.map +1 -1
  402. package/dist/components/ref-node-data-type/ref-node-data-type.d.ts +0 -1
  403. package/dist/components/ref-node-data-type/ref-node-data-type.element.js +30 -35
  404. package/dist/components/ref-node-data-type/ref-node-data-type.element.js.map +1 -1
  405. package/dist/components/ref-node-data-type/ref-node-data-type.js +5 -5
  406. package/dist/components/ref-node-data-type/ref-node-data-type.js.map +1 -1
  407. package/dist/components/ref-node-document-type/ref-node-document-type.d.ts +0 -1
  408. package/dist/components/ref-node-document-type/ref-node-document-type.element.js +30 -35
  409. package/dist/components/ref-node-document-type/ref-node-document-type.element.js.map +1 -1
  410. package/dist/components/ref-node-document-type/ref-node-document-type.js +5 -5
  411. package/dist/components/ref-node-document-type/ref-node-document-type.js.map +1 -1
  412. package/dist/components/ref-node-form/ref-node-form.d.ts +0 -1
  413. package/dist/components/ref-node-form/ref-node-form.element.js +21 -12
  414. package/dist/components/ref-node-form/ref-node-form.element.js.map +1 -1
  415. package/dist/components/ref-node-form/ref-node-form.js +5 -5
  416. package/dist/components/ref-node-form/ref-node-form.js.map +1 -1
  417. package/dist/components/ref-node-member/ref-node-member.d.ts +0 -1
  418. package/dist/components/ref-node-member/ref-node-member.element.js +33 -35
  419. package/dist/components/ref-node-member/ref-node-member.element.js.map +1 -1
  420. package/dist/components/ref-node-member/ref-node-member.js +5 -5
  421. package/dist/components/ref-node-member/ref-node-member.js.map +1 -1
  422. package/dist/components/ref-node-package/ref-node-package.d.ts +0 -1
  423. package/dist/components/ref-node-package/ref-node-package.element.js +33 -42
  424. package/dist/components/ref-node-package/ref-node-package.element.js.map +1 -1
  425. package/dist/components/ref-node-package/ref-node-package.js +5 -5
  426. package/dist/components/ref-node-package/ref-node-package.js.map +1 -1
  427. package/dist/components/ref-node-user/ref-node-user.d.ts +0 -1
  428. package/dist/components/ref-node-user/ref-node-user.element.js +33 -35
  429. package/dist/components/ref-node-user/ref-node-user.element.js.map +1 -1
  430. package/dist/components/ref-node-user/ref-node-user.js +5 -5
  431. package/dist/components/ref-node-user/ref-node-user.js.map +1 -1
  432. package/dist/components/responsive-container/responsive-container.d.ts +0 -1
  433. package/dist/components/responsive-container/responsive-container.element.js +186 -244
  434. package/dist/components/responsive-container/responsive-container.element.js.map +1 -1
  435. package/dist/components/responsive-container/responsive-container.js +5 -5
  436. package/dist/components/responsive-container/responsive-container.js.map +1 -1
  437. package/dist/components/scroll-container/scroll-container.d.ts +0 -1
  438. package/dist/components/scroll-container/scroll-container.element.js +35 -36
  439. package/dist/components/scroll-container/scroll-container.element.js.map +1 -1
  440. package/dist/components/scroll-container/scroll-container.js +5 -5
  441. package/dist/components/scroll-container/scroll-container.js.map +1 -1
  442. package/dist/components/select/UUISelectEvent.js +15 -13
  443. package/dist/components/select/UUISelectEvent.js.map +1 -1
  444. package/dist/components/select/select.d.ts +0 -1
  445. package/dist/components/select/select.element.js +134 -163
  446. package/dist/components/select/select.element.js.map +1 -1
  447. package/dist/components/select/select.js +6 -7
  448. package/dist/components/select/select.js.map +1 -1
  449. package/dist/components/slider/UUISliderEvent.js +18 -14
  450. package/dist/components/slider/UUISliderEvent.js.map +1 -1
  451. package/dist/components/slider/native-input.styles.js +6 -5
  452. package/dist/components/slider/native-input.styles.js.map +1 -1
  453. package/dist/components/slider/slider.d.ts +0 -1
  454. package/dist/components/slider/slider.element.d.ts +7 -0
  455. package/dist/components/slider/slider.element.js +197 -227
  456. package/dist/components/slider/slider.element.js.map +1 -1
  457. package/dist/components/slider/slider.js +6 -7
  458. package/dist/components/slider/slider.js.map +1 -1
  459. package/dist/components/symbol-drag-handle/symbol-drag-handle.d.ts +0 -1
  460. package/dist/components/symbol-drag-handle/symbol-drag-handle.element.js +19 -16
  461. package/dist/components/symbol-drag-handle/symbol-drag-handle.element.js.map +1 -1
  462. package/dist/components/symbol-drag-handle/symbol-drag-handle.js +5 -5
  463. package/dist/components/symbol-drag-handle/symbol-drag-handle.js.map +1 -1
  464. package/dist/components/symbol-expand/symbol-expand.d.ts +0 -1
  465. package/dist/components/symbol-expand/symbol-expand.element.js +27 -30
  466. package/dist/components/symbol-expand/symbol-expand.element.js.map +1 -1
  467. package/dist/components/symbol-expand/symbol-expand.js +5 -5
  468. package/dist/components/symbol-expand/symbol-expand.js.map +1 -1
  469. package/dist/components/symbol-file/symbol-file.d.ts +0 -1
  470. package/dist/components/symbol-file/symbol-file.element.js +24 -32
  471. package/dist/components/symbol-file/symbol-file.element.js.map +1 -1
  472. package/dist/components/symbol-file/symbol-file.js +5 -5
  473. package/dist/components/symbol-file/symbol-file.js.map +1 -1
  474. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.d.ts +0 -1
  475. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.element.js +26 -30
  476. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.element.js.map +1 -1
  477. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.js +5 -5
  478. package/dist/components/symbol-file-dropzone/symbol-file-dropzone.js.map +1 -1
  479. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.d.ts +0 -1
  480. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.element.js +39 -95
  481. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.element.js.map +1 -1
  482. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.js +5 -5
  483. package/dist/components/symbol-file-thumbnail/symbol-file-thumbnail.js.map +1 -1
  484. package/dist/components/symbol-folder/symbol-folder.d.ts +0 -1
  485. package/dist/components/symbol-folder/symbol-folder.element.js +17 -14
  486. package/dist/components/symbol-folder/symbol-folder.element.js.map +1 -1
  487. package/dist/components/symbol-folder/symbol-folder.js +5 -5
  488. package/dist/components/symbol-folder/symbol-folder.js.map +1 -1
  489. package/dist/components/symbol-lock/symbol-lock.d.ts +0 -1
  490. package/dist/components/symbol-lock/symbol-lock.element.js +26 -30
  491. package/dist/components/symbol-lock/symbol-lock.element.js.map +1 -1
  492. package/dist/components/symbol-lock/symbol-lock.js +5 -5
  493. package/dist/components/symbol-lock/symbol-lock.js.map +1 -1
  494. package/dist/components/symbol-more/symbol-more.d.ts +0 -1
  495. package/dist/components/symbol-more/symbol-more.element.js +17 -14
  496. package/dist/components/symbol-more/symbol-more.element.js.map +1 -1
  497. package/dist/components/symbol-more/symbol-more.js +5 -5
  498. package/dist/components/symbol-more/symbol-more.js.map +1 -1
  499. package/dist/components/symbol-sort/symbol-sort.d.ts +0 -1
  500. package/dist/components/symbol-sort/symbol-sort.element.js +29 -31
  501. package/dist/components/symbol-sort/symbol-sort.element.js.map +1 -1
  502. package/dist/components/symbol-sort/symbol-sort.js +5 -5
  503. package/dist/components/symbol-sort/symbol-sort.js.map +1 -1
  504. package/dist/components/table/table-cell.element.js +65 -71
  505. package/dist/components/table/table-cell.element.js.map +1 -1
  506. package/dist/components/table/table-column.element.js +14 -10
  507. package/dist/components/table/table-column.element.js.map +1 -1
  508. package/dist/components/table/table-head-cell.element.js +19 -16
  509. package/dist/components/table/table-head-cell.element.js.map +1 -1
  510. package/dist/components/table/table-head.element.js +23 -18
  511. package/dist/components/table/table-head.element.js.map +1 -1
  512. package/dist/components/table/table-row.element.js +41 -52
  513. package/dist/components/table/table-row.element.js.map +1 -1
  514. package/dist/components/table/table.d.ts +0 -1
  515. package/dist/components/table/table.element.js +23 -19
  516. package/dist/components/table/table.element.js.map +1 -1
  517. package/dist/components/table/table.js +5 -10
  518. package/dist/components/table/table.js.map +1 -1
  519. package/dist/components/tabs/UUITabEvent.js +6 -6
  520. package/dist/components/tabs/UUITabEvent.js.map +1 -1
  521. package/dist/components/tabs/UUITabGroupEvent.js +6 -6
  522. package/dist/components/tabs/UUITabGroupEvent.js.map +1 -1
  523. package/dist/components/tabs/tab-group.element.js +188 -251
  524. package/dist/components/tabs/tab-group.element.js.map +1 -1
  525. package/dist/components/tabs/tab.element.js +66 -56
  526. package/dist/components/tabs/tab.element.js.map +1 -1
  527. package/dist/components/tabs/tabs.d.ts +0 -1
  528. package/dist/components/tabs/tabs.js +7 -6
  529. package/dist/components/tabs/tabs.js.map +1 -1
  530. package/dist/components/tag/tag.d.ts +0 -1
  531. package/dist/components/tag/tag.element.js +32 -34
  532. package/dist/components/tag/tag.element.js.map +1 -1
  533. package/dist/components/tag/tag.js +5 -5
  534. package/dist/components/tag/tag.js.map +1 -1
  535. package/dist/components/textarea/UUITextareaEvent.js +18 -14
  536. package/dist/components/textarea/UUITextareaEvent.js.map +1 -1
  537. package/dist/components/textarea/textarea.d.ts +0 -1
  538. package/dist/components/textarea/textarea.element.d.ts +2 -0
  539. package/dist/components/textarea/textarea.element.js +153 -180
  540. package/dist/components/textarea/textarea.element.js.map +1 -1
  541. package/dist/components/textarea/textarea.js +6 -7
  542. package/dist/components/textarea/textarea.js.map +1 -1
  543. package/dist/components/toast-notification/UUIToastNotificationEvent.js +18 -10
  544. package/dist/components/toast-notification/UUIToastNotificationEvent.js.map +1 -1
  545. package/dist/components/toast-notification/toast-notification.d.ts +0 -1
  546. package/dist/components/toast-notification/toast-notification.element.js +155 -224
  547. package/dist/components/toast-notification/toast-notification.element.js.map +1 -1
  548. package/dist/components/toast-notification/toast-notification.js +6 -7
  549. package/dist/components/toast-notification/toast-notification.js.map +1 -1
  550. package/dist/components/toast-notification-container/toast-notification-container.d.ts +0 -1
  551. package/dist/components/toast-notification-container/toast-notification-container.element.js +98 -122
  552. package/dist/components/toast-notification-container/toast-notification-container.element.js.map +1 -1
  553. package/dist/components/toast-notification-container/toast-notification-container.js +6 -9
  554. package/dist/components/toast-notification-container/toast-notification-container.js.map +1 -1
  555. package/dist/components/toast-notification-layout/toast-notification-layout.d.ts +0 -1
  556. package/dist/components/toast-notification-layout/toast-notification-layout.element.js +33 -39
  557. package/dist/components/toast-notification-layout/toast-notification-layout.element.js.map +1 -1
  558. package/dist/components/toast-notification-layout/toast-notification-layout.js +6 -9
  559. package/dist/components/toast-notification-layout/toast-notification-layout.js.map +1 -1
  560. package/dist/components/toggle/toggle.d.ts +0 -1
  561. package/dist/components/toggle/toggle.element.js +43 -54
  562. package/dist/components/toggle/toggle.element.js.map +1 -1
  563. package/dist/components/toggle/toggle.js +5 -5
  564. package/dist/components/toggle/toggle.js.map +1 -1
  565. package/dist/components/visually-hidden/visually-hidden.d.ts +0 -1
  566. package/dist/components/visually-hidden/visually-hidden.element.js +17 -14
  567. package/dist/components/visually-hidden/visually-hidden.element.js.map +1 -1
  568. package/dist/components/visually-hidden/visually-hidden.js +5 -5
  569. package/dist/components/visually-hidden/visually-hidden.js.map +1 -1
  570. package/dist/index.js +115 -359
  571. package/dist/internal/animations/uui-blink.js +7 -7
  572. package/dist/internal/animations/uui-blink.js.map +1 -1
  573. package/dist/internal/animations/uui-pulse.js +7 -9
  574. package/dist/internal/animations/uui-pulse.js.map +1 -1
  575. package/dist/internal/animations/uui-shake.js +7 -9
  576. package/dist/internal/animations/uui-shake.js.map +1 -1
  577. package/dist/internal/events/UUIEvent.js +13 -9
  578. package/dist/internal/events/UUIEvent.js.map +1 -1
  579. package/dist/internal/events/UUIFormControlEvent.d.ts +2 -2
  580. package/dist/internal/events/UUIFormControlEvent.js +18 -14
  581. package/dist/internal/events/UUIFormControlEvent.js.map +1 -1
  582. package/dist/internal/events/UUISelectableEvent.js +19 -15
  583. package/dist/internal/events/UUISelectableEvent.js.map +1 -1
  584. package/dist/internal/mixins/ActiveMixin.js +24 -24
  585. package/dist/internal/mixins/ActiveMixin.js.map +1 -1
  586. package/dist/internal/mixins/FormControlMixin.d.ts +3 -3
  587. package/dist/internal/mixins/FormControlMixin.js +276 -339
  588. package/dist/internal/mixins/FormControlMixin.js.map +1 -1
  589. package/dist/internal/mixins/FormControlWithBasicsMixin.d.ts +19 -3
  590. package/dist/internal/mixins/FormControlWithBasicsMixin.js +54 -60
  591. package/dist/internal/mixins/FormControlWithBasicsMixin.js.map +1 -1
  592. package/dist/internal/mixins/LabelMixin.js +54 -57
  593. package/dist/internal/mixins/LabelMixin.js.map +1 -1
  594. package/dist/internal/mixins/PopoverTargetMixin.js +43 -47
  595. package/dist/internal/mixins/PopoverTargetMixin.js.map +1 -1
  596. package/dist/internal/mixins/SelectOnlyMixin.js +39 -33
  597. package/dist/internal/mixins/SelectOnlyMixin.js.map +1 -1
  598. package/dist/internal/mixins/SelectableMixin.js +109 -121
  599. package/dist/internal/mixins/SelectableMixin.js.map +1 -1
  600. package/dist/internal/registration/index.js +17 -20
  601. package/dist/internal/registration/index.js.map +1 -1
  602. package/dist/internal/types/InterfaceColor.js +11 -10
  603. package/dist/internal/types/InterfaceColor.js.map +1 -1
  604. package/dist/internal/types/InterfaceHeading.js +12 -11
  605. package/dist/internal/types/InterfaceHeading.js.map +1 -1
  606. package/dist/internal/types/InterfaceLook.js +11 -10
  607. package/dist/internal/types/InterfaceLook.js.map +1 -1
  608. package/dist/internal/utils/Timer.js +56 -61
  609. package/dist/internal/utils/Timer.js.map +1 -1
  610. package/dist/internal/utils/color.js +105 -74
  611. package/dist/internal/utils/color.js.map +1 -1
  612. package/dist/internal/utils/drag.js +27 -36
  613. package/dist/internal/utils/drag.js.map +1 -1
  614. package/dist/internal/utils/findAncestorByAttributeValue.js +22 -19
  615. package/dist/internal/utils/findAncestorByAttributeValue.js.map +1 -1
  616. package/dist/internal/utils/math.js +23 -13
  617. package/dist/internal/utils/math.js.map +1 -1
  618. package/dist/internal/utils/slotHasContent.js +6 -5
  619. package/dist/internal/utils/slotHasContent.js.map +1 -1
  620. package/dist/internal/version.js +10 -16
  621. package/dist/internal/version.js.map +1 -1
  622. package/dist/package.json.js +6 -5
  623. package/dist/package.json.js.map +1 -1
  624. package/dist/styles/uui-font.css +1 -1
  625. package/dist/styles/uui-text.css +1 -1
  626. package/dist/styles/uui-text.css.js +6 -5
  627. package/dist/styles/uui-text.css.js.map +1 -1
  628. package/dist/styles/uui-text.styles.js +7 -6
  629. package/dist/styles/uui-text.styles.js.map +1 -1
  630. package/dist/themes/dark.css +1 -1
  631. package/dist/themes/high-contrast.css +1 -1
  632. package/dist/themes/light.css +1 -1
  633. package/package.json +19 -18
  634. package/vscode.html-custom-data.json +36 -7
  635. package/dist/index.js.map +0 -1
@@ -1,104 +1,173 @@
1
- var __typeError = (msg) => {
2
- throw TypeError(msg);
3
- };
4
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
9
- var _currentGap, _tabElements, _hiddenTabElements, _hiddenTabElementsMap, _visibilityBreakpoints, _resizeObserver, _tabResizeObservers, _breakPointCalculationInProgress, _UUITabGroupElement_instances, initialize_fn, onResize_fn, cleanupTabs_fn, onSlotChange_fn, _onTabClicked, calculateBreakPoints_fn, setTabArray_fn, updateCollapsibleTabs_fn, isElementTabLike_fn, isElementHrefLike_fn;
10
- import { LitElement, html, css } from "lit";
11
- import { query, queryAssignedElements, property } from "lit/decorators.js";
12
- import { repeat } from "lit/directives/repeat.js";
1
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.138.0/helpers/esm/decorate.js";
13
2
  import "../button/button.js";
14
- import "../symbol-more/symbol-more.js";
15
3
  import "../popover-container/popover-container.js";
16
- var __defProp = Object.defineProperty;
17
- var __decorateClass = (decorators, target, key, kind) => {
18
- var result = void 0;
19
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
20
- if (decorator = decorators[i])
21
- result = decorator(target, key, result) || result;
22
- if (result) __defProp(target, key, result);
23
- return result;
24
- };
25
- const _UUITabGroupElement = class _UUITabGroupElement extends LitElement {
26
- constructor() {
27
- super(...arguments);
28
- __privateAdd(this, _UUITabGroupElement_instances);
29
- __privateAdd(this, _currentGap);
30
- __privateAdd(this, _tabElements);
31
- __privateAdd(this, _hiddenTabElements);
32
- __privateAdd(this, _hiddenTabElementsMap);
33
- __privateAdd(this, _visibilityBreakpoints);
34
- __privateAdd(this, _resizeObserver);
35
- __privateAdd(this, _tabResizeObservers);
36
- __privateAdd(this, _breakPointCalculationInProgress);
37
- __privateAdd(this, _onTabClicked);
38
- __privateSet(this, _currentGap, 0);
39
- this.dropdownContentDirection = "vertical";
40
- __privateSet(this, _tabElements, []);
41
- __privateSet(this, _hiddenTabElements, []);
42
- __privateSet(this, _hiddenTabElementsMap, /* @__PURE__ */ new Map());
43
- __privateSet(this, _visibilityBreakpoints, []);
44
- __privateSet(this, _resizeObserver, new ResizeObserver(__privateMethod(this, _UUITabGroupElement_instances, onResize_fn).bind(this)));
45
- __privateSet(this, _tabResizeObservers, []);
46
- __privateSet(this, _breakPointCalculationInProgress, false);
47
- __privateSet(this, _onTabClicked, (e) => {
48
- const selectedElement = e.currentTarget;
49
- const isCtrlClick = e.ctrlKey || e.metaKey;
50
- if (__privateMethod(this, _UUITabGroupElement_instances, isElementHrefLike_fn).call(this, selectedElement) && isCtrlClick) {
51
- return;
52
- }
53
- if (selectedElement.classList.contains("hidden-tab") && __privateMethod(this, _UUITabGroupElement_instances, isElementTabLike_fn).call(this, selectedElement)) {
54
- const original = __privateGet(this, _hiddenTabElementsMap).get(selectedElement);
55
- if (original) {
56
- original.click();
57
- this._moreButtonElement.classList.add("active-inside");
58
- this._popoverContainerElement.hidePopover();
59
- }
60
- return;
61
- }
62
- if (__privateMethod(this, _UUITabGroupElement_instances, isElementTabLike_fn).call(this, selectedElement)) {
63
- selectedElement.active = true;
64
- const linkedElement = __privateGet(this, _hiddenTabElementsMap).get(selectedElement);
65
- if (linkedElement) {
66
- linkedElement.active = true;
67
- }
68
- const filtered = [
69
- ...__privateGet(this, _tabElements),
70
- ...__privateGet(this, _hiddenTabElements)
71
- ].filter((el) => el !== selectedElement && el !== linkedElement);
72
- filtered.forEach((el) => {
73
- if (__privateMethod(this, _UUITabGroupElement_instances, isElementTabLike_fn).call(this, el)) {
74
- el.active = false;
75
- }
76
- });
77
- const hasActiveHidden = __privateGet(this, _hiddenTabElements).some(
78
- (el) => el.active && el !== linkedElement
79
- );
80
- if (hasActiveHidden) {
81
- this._moreButtonElement.classList.add("active-inside");
82
- } else {
83
- this._moreButtonElement.classList.remove("active-inside");
84
- }
85
- }
86
- });
87
- }
88
- connectedCallback() {
89
- super.connectedCallback();
90
- __privateMethod(this, _UUITabGroupElement_instances, initialize_fn).call(this);
91
- }
92
- disconnectedCallback() {
93
- super.disconnectedCallback();
94
- __privateGet(this, _resizeObserver).unobserve(this);
95
- __privateMethod(this, _UUITabGroupElement_instances, cleanupTabs_fn).call(this);
96
- }
97
- render() {
98
- return html`
4
+ import "../symbol-more/symbol-more.js";
5
+ import { LitElement, css, html } from "lit";
6
+ import { property, query, queryAssignedElements } from "lit/decorators.js";
7
+ import { repeat } from "lit/directives/repeat.js";
8
+ //#region src/components/tabs/tab-group.element.ts
9
+ /**
10
+ * @element uui-tab-group
11
+ * @slot - Default slot for the tab group
12
+ * @cssprop --uui-tab-group-dropdown-tab-text - Define the tab text color in the dropdown
13
+ * @cssprop --uui-tab-group-dropdown-tab-text-hover - Define the tab text hover color in the dropdown
14
+ * @cssprop --uui-tab-group-dropdown-tab-text-active - Define the tab text active color in the dropdown
15
+ * @cssprop --uui-tab-group-dropdown-background - Define the background color of the dropdown
16
+ * @cssprop --uui-tab-group-gap - Define the gap between elements dropdown. Only pixel values are valid
17
+ */
18
+ var UUITabGroupElement = class extends LitElement {
19
+ constructor(..._args) {
20
+ super(..._args);
21
+ this.#currentGap = 0;
22
+ this.dropdownContentDirection = "vertical";
23
+ this.#tabElements = [];
24
+ this.#hiddenTabElements = [];
25
+ this.#hiddenTabElementsMap = /* @__PURE__ */ new Map();
26
+ this.#visibilityBreakpoints = [];
27
+ this.#resizeObserver = new ResizeObserver(this.#onResize.bind(this));
28
+ this.#tabResizeObservers = [];
29
+ this.#breakPointCalculationInProgress = false;
30
+ this.#onTabClicked = (e) => {
31
+ const selectedElement = e.currentTarget;
32
+ const isCtrlClick = e.ctrlKey || e.metaKey;
33
+ if (this.#isElementHrefLike(selectedElement) && isCtrlClick) return;
34
+ if (selectedElement.classList.contains("hidden-tab") && this.#isElementTabLike(selectedElement)) {
35
+ const original = this.#hiddenTabElementsMap.get(selectedElement);
36
+ if (original) {
37
+ original.click();
38
+ this._moreButtonElement.classList.add("active-inside");
39
+ this._popoverContainerElement.hidePopover();
40
+ }
41
+ return;
42
+ }
43
+ if (this.#isElementTabLike(selectedElement)) {
44
+ selectedElement.active = true;
45
+ const linkedElement = this.#hiddenTabElementsMap.get(selectedElement);
46
+ if (linkedElement) linkedElement.active = true;
47
+ [...this.#tabElements, ...this.#hiddenTabElements].filter((el) => el !== selectedElement && el !== linkedElement).forEach((el) => {
48
+ if (this.#isElementTabLike(el)) el.active = false;
49
+ });
50
+ if (this.#hiddenTabElements.some((el) => el.active && el !== linkedElement)) this._moreButtonElement.classList.add("active-inside");
51
+ else this._moreButtonElement.classList.remove("active-inside");
52
+ }
53
+ };
54
+ }
55
+ /** Stores the current gap used in the breakpoints */
56
+ #currentGap;
57
+ #tabElements;
58
+ #hiddenTabElements;
59
+ #hiddenTabElementsMap;
60
+ #visibilityBreakpoints;
61
+ #resizeObserver;
62
+ #tabResizeObservers;
63
+ #breakPointCalculationInProgress;
64
+ connectedCallback() {
65
+ super.connectedCallback();
66
+ this.#initialize();
67
+ }
68
+ disconnectedCallback() {
69
+ super.disconnectedCallback();
70
+ this.#resizeObserver.unobserve(this);
71
+ this.#cleanupTabs();
72
+ }
73
+ async #initialize() {
74
+ await this.updateComplete;
75
+ this.#resizeObserver.observe(this._mainElement);
76
+ }
77
+ #onResize(entries) {
78
+ const gapCSSVar = Number.parseFloat(this.style.getPropertyValue("--uui-tab-group-gap"));
79
+ if ((Number.isNaN(gapCSSVar) ? 0 : gapCSSVar) === this.#currentGap) this.#updateCollapsibleTabs(entries[0].contentBoxSize[0].inlineSize);
80
+ else this.#calculateBreakPoints();
81
+ }
82
+ #cleanupTabs() {
83
+ this.#tabElements.forEach((el) => {
84
+ el.removeEventListener("click", this.#onTabClicked);
85
+ this.#tabResizeObservers.forEach((observer) => observer.disconnect());
86
+ });
87
+ this.#tabResizeObservers.length = 0;
88
+ this.#visibilityBreakpoints.length = 0;
89
+ }
90
+ #onSlotChange() {
91
+ this.#cleanupTabs();
92
+ this.#setTabArray();
93
+ this.#tabElements.forEach((el) => {
94
+ el.addEventListener("click", this.#onTabClicked);
95
+ const observer = new ResizeObserver(this.#calculateBreakPoints.bind(this));
96
+ observer.observe(el);
97
+ this.#tabResizeObservers.push(observer);
98
+ });
99
+ }
100
+ #onTabClicked;
101
+ async #calculateBreakPoints() {
102
+ if (this.#breakPointCalculationInProgress) return;
103
+ this.#breakPointCalculationInProgress = true;
104
+ requestAnimationFrame(() => {
105
+ this.#breakPointCalculationInProgress = false;
106
+ });
107
+ await this.updateComplete;
108
+ const gapCSSVar = Number.parseFloat(this.style.getPropertyValue("--uui-tab-group-gap"));
109
+ const gap = Number.isNaN(gapCSSVar) ? 0 : gapCSSVar;
110
+ this.#currentGap = gap;
111
+ let childrenWidth = 0;
112
+ for (let i = 0; i < this.#tabElements.length; i++) {
113
+ this.#tabElements[i].style.display = "";
114
+ childrenWidth += this.#tabElements[i].offsetWidth;
115
+ this.#visibilityBreakpoints[i] = childrenWidth;
116
+ childrenWidth += gap;
117
+ }
118
+ const tolerance = 2;
119
+ this._mainElement.style.width = childrenWidth - gap + tolerance + "px";
120
+ this.#updateCollapsibleTabs(this._mainElement.offsetWidth);
121
+ }
122
+ #setTabArray() {
123
+ this.#tabElements = this._slottedNodes ?? [];
124
+ this.#calculateBreakPoints();
125
+ }
126
+ #updateCollapsibleTabs(containerWidth) {
127
+ const containerWithoutButtonWidth = containerWidth - (this._moreButtonElement.offsetWidth || 0);
128
+ this.#hiddenTabElements.forEach((el) => {
129
+ el.removeEventListener("click", this.#onTabClicked);
130
+ });
131
+ this.#hiddenTabElements = [];
132
+ this.#hiddenTabElementsMap.clear();
133
+ let hasActiveTabInDropdown = false;
134
+ const len = this.#visibilityBreakpoints.length;
135
+ for (let i = 0; i < len; i++) {
136
+ const breakpoint = this.#visibilityBreakpoints[i];
137
+ const tab = this.#tabElements[i];
138
+ if (breakpoint <= (i === len - 1 ? containerWidth : containerWithoutButtonWidth)) tab.style.display = "";
139
+ else {
140
+ const proxyTab = tab.cloneNode(true);
141
+ proxyTab.addEventListener("click", this.#onTabClicked);
142
+ proxyTab.classList.add("hidden-tab");
143
+ proxyTab.style.display = "";
144
+ proxyTab.orientation = this.dropdownContentDirection;
145
+ this.#hiddenTabElementsMap.set(proxyTab, tab);
146
+ this.#hiddenTabElementsMap.set(tab, proxyTab);
147
+ this.#hiddenTabElements.push(proxyTab);
148
+ tab.style.display = "none";
149
+ if (tab.active) hasActiveTabInDropdown = true;
150
+ }
151
+ }
152
+ if (this.#hiddenTabElements.length === 0) {
153
+ this._moreButtonElement.style.display = "none";
154
+ this._popoverContainerElement.hidePopover();
155
+ } else this._moreButtonElement.style.display = "";
156
+ if (hasActiveTabInDropdown) this._moreButtonElement.classList.add("active-inside");
157
+ else this._moreButtonElement.classList.remove("active-inside");
158
+ this.requestUpdate();
159
+ }
160
+ #isElementTabLike(el) {
161
+ return typeof el === "object" && "active" in el && typeof el.active === "boolean";
162
+ }
163
+ #isElementHrefLike(el) {
164
+ return typeof el === "object" && "href" in el && typeof el.href === "string" && el.href;
165
+ }
166
+ render() {
167
+ return html`
99
168
  <div id="main">
100
169
  <div id="grid" role="tablist">
101
- <slot @slotchange=${__privateMethod(this, _UUITabGroupElement_instances, onSlotChange_fn)}></slot>
170
+ <slot @slotchange=${this.#onSlotChange}></slot>
102
171
  </div>
103
172
  <uui-button
104
173
  popovertarget="popover-container"
@@ -114,135 +183,13 @@ const _UUITabGroupElement = class _UUITabGroupElement extends LitElement {
114
183
  popover
115
184
  placement="bottom-end">
116
185
  <div id="hidden-tabs-container" role="tablist">
117
- ${repeat(__privateGet(this, _hiddenTabElements), (el) => html`${el}`)}
186
+ ${repeat(this.#hiddenTabElements, (el) => html`${el}`)}
118
187
  </div>
119
188
  </uui-popover-container>
120
189
  `;
121
- }
122
- };
123
- _currentGap = new WeakMap();
124
- _tabElements = new WeakMap();
125
- _hiddenTabElements = new WeakMap();
126
- _hiddenTabElementsMap = new WeakMap();
127
- _visibilityBreakpoints = new WeakMap();
128
- _resizeObserver = new WeakMap();
129
- _tabResizeObservers = new WeakMap();
130
- _breakPointCalculationInProgress = new WeakMap();
131
- _UUITabGroupElement_instances = new WeakSet();
132
- initialize_fn = async function() {
133
- await this.updateComplete;
134
- __privateGet(this, _resizeObserver).observe(this._mainElement);
135
- };
136
- onResize_fn = function(entries) {
137
- const gapCSSVar = Number.parseFloat(
138
- this.style.getPropertyValue("--uui-tab-group-gap")
139
- );
140
- const newGap = Number.isNaN(gapCSSVar) ? 0 : gapCSSVar;
141
- if (newGap === __privateGet(this, _currentGap)) {
142
- __privateMethod(this, _UUITabGroupElement_instances, updateCollapsibleTabs_fn).call(this, entries[0].contentBoxSize[0].inlineSize);
143
- } else {
144
- __privateMethod(this, _UUITabGroupElement_instances, calculateBreakPoints_fn).call(this);
145
- }
146
- };
147
- cleanupTabs_fn = function() {
148
- __privateGet(this, _tabElements).forEach((el) => {
149
- el.removeEventListener("click", __privateGet(this, _onTabClicked));
150
- __privateGet(this, _tabResizeObservers).forEach((observer) => observer.disconnect());
151
- });
152
- __privateGet(this, _tabResizeObservers).length = 0;
153
- __privateGet(this, _visibilityBreakpoints).length = 0;
154
- };
155
- onSlotChange_fn = function() {
156
- __privateMethod(this, _UUITabGroupElement_instances, cleanupTabs_fn).call(this);
157
- __privateMethod(this, _UUITabGroupElement_instances, setTabArray_fn).call(this);
158
- __privateGet(this, _tabElements).forEach((el) => {
159
- el.addEventListener("click", __privateGet(this, _onTabClicked));
160
- const observer = new ResizeObserver(
161
- __privateMethod(this, _UUITabGroupElement_instances, calculateBreakPoints_fn).bind(this)
162
- );
163
- observer.observe(el);
164
- __privateGet(this, _tabResizeObservers).push(observer);
165
- });
166
- };
167
- _onTabClicked = new WeakMap();
168
- calculateBreakPoints_fn = async function() {
169
- if (__privateGet(this, _breakPointCalculationInProgress)) return;
170
- __privateSet(this, _breakPointCalculationInProgress, true);
171
- requestAnimationFrame(() => {
172
- __privateSet(this, _breakPointCalculationInProgress, false);
173
- });
174
- await this.updateComplete;
175
- const gapCSSVar = Number.parseFloat(
176
- this.style.getPropertyValue("--uui-tab-group-gap")
177
- );
178
- const gap = Number.isNaN(gapCSSVar) ? 0 : gapCSSVar;
179
- __privateSet(this, _currentGap, gap);
180
- let childrenWidth = 0;
181
- for (let i = 0; i < __privateGet(this, _tabElements).length; i++) {
182
- __privateGet(this, _tabElements)[i].style.display = "";
183
- childrenWidth += __privateGet(this, _tabElements)[i].offsetWidth;
184
- __privateGet(this, _visibilityBreakpoints)[i] = childrenWidth;
185
- childrenWidth += gap;
186
- }
187
- const tolerance = 2;
188
- this._mainElement.style.width = childrenWidth - gap + tolerance + "px";
189
- __privateMethod(this, _UUITabGroupElement_instances, updateCollapsibleTabs_fn).call(this, this._mainElement.offsetWidth);
190
- };
191
- setTabArray_fn = function() {
192
- __privateSet(this, _tabElements, this._slottedNodes ?? []);
193
- __privateMethod(this, _UUITabGroupElement_instances, calculateBreakPoints_fn).call(this);
194
- };
195
- updateCollapsibleTabs_fn = function(containerWidth) {
196
- const moreButtonWidth = this._moreButtonElement.offsetWidth;
197
- const containerWithoutButtonWidth = containerWidth - (moreButtonWidth || 0);
198
- __privateGet(this, _hiddenTabElements).forEach((el) => {
199
- el.removeEventListener("click", __privateGet(this, _onTabClicked));
200
- });
201
- __privateSet(this, _hiddenTabElements, []);
202
- __privateGet(this, _hiddenTabElementsMap).clear();
203
- let hasActiveTabInDropdown = false;
204
- const len = __privateGet(this, _visibilityBreakpoints).length;
205
- for (let i = 0; i < len; i++) {
206
- const breakpoint = __privateGet(this, _visibilityBreakpoints)[i];
207
- const tab = __privateGet(this, _tabElements)[i];
208
- if (breakpoint <= (i === len - 1 ? containerWidth : containerWithoutButtonWidth)) {
209
- tab.style.display = "";
210
- } else {
211
- const proxyTab = tab.cloneNode(true);
212
- proxyTab.addEventListener("click", __privateGet(this, _onTabClicked));
213
- proxyTab.classList.add("hidden-tab");
214
- proxyTab.style.display = "";
215
- proxyTab.orientation = this.dropdownContentDirection;
216
- __privateGet(this, _hiddenTabElementsMap).set(proxyTab, tab);
217
- __privateGet(this, _hiddenTabElementsMap).set(tab, proxyTab);
218
- __privateGet(this, _hiddenTabElements).push(proxyTab);
219
- tab.style.display = "none";
220
- if (tab.active) {
221
- hasActiveTabInDropdown = true;
222
- }
223
- }
224
- }
225
- if (__privateGet(this, _hiddenTabElements).length === 0) {
226
- this._moreButtonElement.style.display = "none";
227
- this._popoverContainerElement.hidePopover();
228
- } else {
229
- this._moreButtonElement.style.display = "";
230
- }
231
- if (hasActiveTabInDropdown) {
232
- this._moreButtonElement.classList.add("active-inside");
233
- } else {
234
- this._moreButtonElement.classList.remove("active-inside");
235
- }
236
- this.requestUpdate();
237
- };
238
- isElementTabLike_fn = function(el) {
239
- return typeof el === "object" && "active" in el && typeof el.active === "boolean";
240
- };
241
- isElementHrefLike_fn = function(el) {
242
- return typeof el === "object" && "href" in el && typeof el.href === "string" && el.href;
243
- };
244
- _UUITabGroupElement.styles = [
245
- css`
190
+ }
191
+ static {
192
+ this.styles = [css`
246
193
  :host {
247
194
  min-width: 0;
248
195
  display: flex;
@@ -330,32 +277,22 @@ _UUITabGroupElement.styles = [
330
277
  opacity 120ms,
331
278
  height ease-out 120ms;
332
279
  }
333
- `
334
- ];
335
- let UUITabGroupElement = _UUITabGroupElement;
336
- __decorateClass([
337
- query("#more-button")
338
- ], UUITabGroupElement.prototype, "_moreButtonElement");
339
- __decorateClass([
340
- query("#popover-container")
341
- ], UUITabGroupElement.prototype, "_popoverContainerElement");
342
- __decorateClass([
343
- query("#main")
344
- ], UUITabGroupElement.prototype, "_mainElement");
345
- __decorateClass([
346
- queryAssignedElements({
347
- flatten: true,
348
- selector: "uui-tab, [uui-tab], [role=tab]"
349
- })
350
- ], UUITabGroupElement.prototype, "_slottedNodes");
351
- __decorateClass([
352
- property({
353
- type: String,
354
- reflect: true,
355
- attribute: "dropdown-content-direction"
356
- })
357
- ], UUITabGroupElement.prototype, "dropdownContentDirection");
358
- export {
359
- UUITabGroupElement
280
+ `];
281
+ }
360
282
  };
361
- //# sourceMappingURL=tab-group.element.js.map
283
+ __decorate([query("#more-button")], UUITabGroupElement.prototype, "_moreButtonElement", void 0);
284
+ __decorate([query("#popover-container")], UUITabGroupElement.prototype, "_popoverContainerElement", void 0);
285
+ __decorate([query("#main")], UUITabGroupElement.prototype, "_mainElement", void 0);
286
+ __decorate([queryAssignedElements({
287
+ flatten: true,
288
+ selector: "uui-tab, [uui-tab], [role=tab]"
289
+ })], UUITabGroupElement.prototype, "_slottedNodes", void 0);
290
+ __decorate([property({
291
+ type: String,
292
+ reflect: true,
293
+ attribute: "dropdown-content-direction"
294
+ })], UUITabGroupElement.prototype, "dropdownContentDirection", void 0);
295
+ //#endregion
296
+ export { UUITabGroupElement };
297
+
298
+ //# sourceMappingURL=tab-group.element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-group.element.js","sources":["../../../src/components/tabs/tab-group.element.ts"],"sourcesContent":["import type { UUIButtonElement } from '../button/button.js';\nimport type { UUIPopoverContainerElement } from '../popover-container/popover-container.js';\nimport { css, html, LitElement } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\n\nimport type { UUITabElement } from './tab.element.js';\n\nimport '../button/button.js';\nimport '../symbol-more/symbol-more.js';\nimport '../popover-container/popover-container.js';\n\n/**\n * @element uui-tab-group\n * @slot - Default slot for the tab group\n * @cssprop --uui-tab-group-dropdown-tab-text - Define the tab text color in the dropdown\n * @cssprop --uui-tab-group-dropdown-tab-text-hover - Define the tab text hover color in the dropdown\n * @cssprop --uui-tab-group-dropdown-tab-text-active - Define the tab text active color in the dropdown\n * @cssprop --uui-tab-group-dropdown-background - Define the background color of the dropdown\n * @cssprop --uui-tab-group-gap - Define the gap between elements dropdown. Only pixel values are valid\n */\nexport class UUITabGroupElement extends LitElement {\n @query('#more-button')\n private readonly _moreButtonElement!: UUIButtonElement;\n\n @query('#popover-container')\n private readonly _popoverContainerElement!: UUIPopoverContainerElement;\n\n @query('#main') private readonly _mainElement!: HTMLElement;\n\n @queryAssignedElements({\n flatten: true,\n selector: 'uui-tab, [uui-tab], [role=tab]',\n })\n private readonly _slottedNodes?: HTMLElement[];\n\n /** Stores the current gap used in the breakpoints */\n #currentGap = 0;\n\n /**\n * Set the flex direction of the content of the dropdown.\n * @type {string}\n * @attr\n * @default vertical\n */\n @property({\n type: String,\n reflect: true,\n attribute: 'dropdown-content-direction',\n })\n dropdownContentDirection: 'vertical' | 'horizontal' = 'vertical';\n\n #tabElements: HTMLElement[] = [];\n\n #hiddenTabElements: UUITabElement[] = [];\n readonly #hiddenTabElementsMap: Map<UUITabElement, UUITabElement> = new Map();\n\n #visibilityBreakpoints: number[] = [];\n\n readonly #resizeObserver = new ResizeObserver(this.#onResize.bind(this));\n readonly #tabResizeObservers: ResizeObserver[] = [];\n\n #breakPointCalculationInProgress = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.#initialize();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#resizeObserver.unobserve(this);\n this.#cleanupTabs();\n }\n\n async #initialize() {\n await this.updateComplete;\n this.#resizeObserver.observe(this._mainElement);\n }\n\n #onResize(entries: ResizeObserverEntry[]) {\n // Check if the gap css custom property has changed.\n const gapCSSVar = Number.parseFloat(\n this.style.getPropertyValue('--uui-tab-group-gap'),\n );\n const newGap = Number.isNaN(gapCSSVar) ? 0 : gapCSSVar;\n if (newGap === this.#currentGap) {\n this.#updateCollapsibleTabs(entries[0].contentBoxSize[0].inlineSize);\n } else {\n this.#calculateBreakPoints();\n }\n }\n\n #cleanupTabs() {\n this.#tabElements.forEach(el => {\n el.removeEventListener('click', this.#onTabClicked);\n this.#tabResizeObservers.forEach(observer => observer.disconnect());\n });\n this.#tabResizeObservers.length = 0;\n this.#visibilityBreakpoints.length = 0;\n }\n\n #onSlotChange() {\n this.#cleanupTabs();\n\n this.#setTabArray();\n\n this.#tabElements.forEach(el => {\n el.addEventListener('click', this.#onTabClicked);\n const observer = new ResizeObserver(\n this.#calculateBreakPoints.bind(this),\n );\n observer.observe(el);\n this.#tabResizeObservers.push(observer);\n });\n }\n\n readonly #onTabClicked = (e: MouseEvent) => {\n const selectedElement = e.currentTarget as HTMLElement;\n\n // Don't switch active tabs when a href is being opened in a new browser tab\n const isCtrlClick = e.ctrlKey || e.metaKey;\n if (this.#isElementHrefLike(selectedElement) && isCtrlClick) {\n return;\n }\n\n // If hidden, forward to the original — external listeners fire there\n if (\n selectedElement.classList.contains('hidden-tab') &&\n this.#isElementTabLike(selectedElement)\n ) {\n const original = this.#hiddenTabElementsMap.get(selectedElement);\n if (original) {\n original.click();\n this._moreButtonElement.classList.add('active-inside');\n this._popoverContainerElement.hidePopover();\n }\n return;\n }\n\n if (this.#isElementTabLike(selectedElement)) {\n selectedElement.active = true;\n const linkedElement = this.#hiddenTabElementsMap.get(selectedElement);\n\n if (linkedElement) {\n linkedElement.active = true;\n }\n\n // Reset all other tabs\n const filtered = [\n ...this.#tabElements,\n ...this.#hiddenTabElements,\n ].filter(el => el !== selectedElement && el !== linkedElement);\n\n filtered.forEach(el => {\n if (this.#isElementTabLike(el)) {\n el.active = false;\n }\n });\n\n // Check if there are any active tabs in the dropdown\n const hasActiveHidden = this.#hiddenTabElements.some(\n el => el.active && el !== linkedElement,\n );\n\n if (hasActiveHidden) {\n this._moreButtonElement.classList.add('active-inside');\n } else {\n this._moreButtonElement.classList.remove('active-inside');\n }\n }\n };\n\n async #calculateBreakPoints() {\n if (this.#breakPointCalculationInProgress) return;\n\n // Prevent multiple calculations from happening in the same frame\n this.#breakPointCalculationInProgress = true;\n requestAnimationFrame(() => {\n this.#breakPointCalculationInProgress = false;\n });\n\n // Whenever a tab is added or removed, we need to recalculate the breakpoints\n\n await this.updateComplete; // Wait for the tabs to be rendered\n\n const gapCSSVar = Number.parseFloat(\n this.style.getPropertyValue('--uui-tab-group-gap'),\n );\n const gap = Number.isNaN(gapCSSVar) ? 0 : gapCSSVar;\n this.#currentGap = gap;\n let childrenWidth = 0;\n\n for (let i = 0; i < this.#tabElements.length; i++) {\n this.#tabElements[i].style.display = '';\n childrenWidth += this.#tabElements[i].offsetWidth;\n this.#visibilityBreakpoints[i] = childrenWidth;\n // Add the gap, which will then be included in the next breakpoint:\n childrenWidth += gap;\n }\n\n const tolerance = 2;\n this._mainElement.style.width = childrenWidth - gap + tolerance + 'px';\n\n this.#updateCollapsibleTabs(this._mainElement.offsetWidth);\n }\n\n #setTabArray() {\n this.#tabElements = this._slottedNodes ?? [];\n this.#calculateBreakPoints();\n }\n\n #updateCollapsibleTabs(containerWidth: number) {\n const moreButtonWidth = this._moreButtonElement.offsetWidth;\n\n const containerWithoutButtonWidth = containerWidth - (moreButtonWidth || 0);\n\n // Do the update\n // Reset the hidden tabs\n this.#hiddenTabElements.forEach(el => {\n el.removeEventListener('click', this.#onTabClicked);\n });\n this.#hiddenTabElements = [];\n this.#hiddenTabElementsMap.clear();\n\n let hasActiveTabInDropdown = false;\n\n const len = this.#visibilityBreakpoints.length;\n for (let i = 0; i < len; i++) {\n const breakpoint = this.#visibilityBreakpoints[i];\n const tab = this.#tabElements[i] as UUITabElement;\n\n // If breakpoint is smaller than the container width, then show the tab.\n // If last breakpoint, then we will use the containerWidth, as we do not want to include the more-button in that calculation.\n if (\n breakpoint <=\n (i === len - 1 ? containerWidth : containerWithoutButtonWidth)\n ) {\n // Show this tab:\n tab.style.display = '';\n } else {\n // Make a proxy tab to put in the hidden tabs container and link it to the original tab\n const proxyTab = tab.cloneNode(true) as UUITabElement;\n proxyTab.addEventListener('click', this.#onTabClicked);\n proxyTab.classList.add('hidden-tab');\n proxyTab.style.display = '';\n proxyTab.orientation = this.dropdownContentDirection;\n\n // Link the proxy tab to the original tab\n this.#hiddenTabElementsMap.set(proxyTab, tab);\n this.#hiddenTabElementsMap.set(tab, proxyTab);\n\n this.#hiddenTabElements.push(proxyTab);\n\n tab.style.display = 'none';\n if (tab.active) {\n hasActiveTabInDropdown = true;\n }\n }\n }\n\n if (this.#hiddenTabElements.length === 0) {\n // Hide more button:\n this._moreButtonElement.style.display = 'none';\n // close the popover\n this._popoverContainerElement.hidePopover();\n } else {\n // Show more button:\n this._moreButtonElement.style.display = '';\n }\n\n if (hasActiveTabInDropdown) {\n this._moreButtonElement.classList.add('active-inside');\n } else {\n this._moreButtonElement.classList.remove('active-inside');\n }\n\n this.requestUpdate();\n }\n\n #isElementTabLike(el: any): el is UUITabElement {\n return (\n typeof el === 'object' && 'active' in el && typeof el.active === 'boolean'\n );\n }\n\n #isElementHrefLike(el: any): el is UUITabElement {\n return (\n typeof el === 'object' &&\n 'href' in el &&\n typeof el.href === 'string' &&\n el.href\n );\n }\n\n render() {\n return html`\n <div id=\"main\">\n <div id=\"grid\" role=\"tablist\">\n <slot @slotchange=${this.#onSlotChange}></slot>\n </div>\n <uui-button\n popovertarget=\"popover-container\"\n style=\"display: none\"\n id=\"more-button\"\n label=\"More\"\n compact>\n <uui-symbol-more></uui-symbol-more>\n </uui-button>\n </div>\n <uui-popover-container\n id=\"popover-container\"\n popover\n placement=\"bottom-end\">\n <div id=\"hidden-tabs-container\" role=\"tablist\">\n ${repeat(this.#hiddenTabElements, el => html`${el}`)}\n </div>\n </uui-popover-container>\n `;\n }\n\n static override readonly styles = [\n css`\n :host {\n min-width: 0;\n display: flex;\n height: 100%;\n }\n\n #main {\n display: flex;\n justify-content: space-between;\n overflow: hidden;\n }\n\n #grid {\n width: 1fr;\n display: flex;\n height: 100%;\n min-height: 48px;\n overflow: hidden;\n text-wrap: nowrap;\n color: var(--uui-tab-text);\n gap: var(--uui-tab-group-gap, 0);\n }\n\n #popover-container {\n --uui-tab-text: var(--uui-tab-group-dropdown-tab-text, unset);\n --uui-tab-text-hover: var(\n --uui-tab-group-dropdown-tab-text-hover,\n unset\n );\n --uui-tab-text-active: var(\n --uui-tab-group-dropdown-tab-text-active,\n unset\n );\n }\n\n ::slotted(*:not(:last-of-type)) {\n border-right: 1px solid var(--uui-tab-divider, none);\n }\n\n .hidden-tab {\n width: 100%;\n }\n\n #hidden-tabs-container {\n width: fit-content;\n display: flex;\n flex-direction: column;\n background-color: var(\n --uui-tab-group-dropdown-background,\n var(--uui-color-surface)\n );\n border-radius: var(--uui-border-radius);\n box-shadow: var(--uui-shadow-depth-3);\n overflow: hidden;\n }\n :host([dropdown-direction='horizontal']) #hidden-tabs-container {\n flex-direction: row;\n }\n\n #more-button {\n position: relative;\n\n --uui-button-contrast: var(--uui-tab-text);\n --uui-button-contrast-hover: var(--uui-tab-text-hover);\n --uui-button-background-color: transparent;\n --uui-button-background-color-hover: transparent;\n }\n #more-button::before {\n content: '';\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: var(--uui-color-current);\n height: 0px;\n border-radius: var(--uui-border-radius) var(--uui-border-radius) 0 0;\n opacity: 0;\n transition:\n opacity ease-in 120ms,\n height ease-in 120ms;\n }\n #more-button.active-inside::before {\n opacity: 1;\n height: 4px;\n transition:\n opacity 120ms,\n height ease-out 120ms;\n }\n `,\n ];\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tab-group.element.js","names":["#onResize","#isElementHrefLike","#isElementTabLike","#hiddenTabElementsMap","#tabElements","#hiddenTabElements","#resizeObserver","#tabResizeObservers","#initialize","#cleanupTabs","#currentGap","#updateCollapsibleTabs","#calculateBreakPoints","#onTabClicked","#visibilityBreakpoints","#setTabArray","#breakPointCalculationInProgress","#onSlotChange"],"sources":["../../../src/components/tabs/tab-group.element.ts"],"sourcesContent":["import type { UUIButtonElement } from '../button/button.js';\nimport type { UUIPopoverContainerElement } from '../popover-container/popover-container.js';\nimport { css, html, LitElement } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\n\nimport type { UUITabElement } from './tab.element.js';\n\nimport '../button/button.js';\nimport '../symbol-more/symbol-more.js';\nimport '../popover-container/popover-container.js';\n\n/**\n * @element uui-tab-group\n * @slot - Default slot for the tab group\n * @cssprop --uui-tab-group-dropdown-tab-text - Define the tab text color in the dropdown\n * @cssprop --uui-tab-group-dropdown-tab-text-hover - Define the tab text hover color in the dropdown\n * @cssprop --uui-tab-group-dropdown-tab-text-active - Define the tab text active color in the dropdown\n * @cssprop --uui-tab-group-dropdown-background - Define the background color of the dropdown\n * @cssprop --uui-tab-group-gap - Define the gap between elements dropdown. Only pixel values are valid\n */\nexport class UUITabGroupElement extends LitElement {\n @query('#more-button')\n private readonly _moreButtonElement!: UUIButtonElement;\n\n @query('#popover-container')\n private readonly _popoverContainerElement!: UUIPopoverContainerElement;\n\n @query('#main') private readonly _mainElement!: HTMLElement;\n\n @queryAssignedElements({\n flatten: true,\n selector: 'uui-tab, [uui-tab], [role=tab]',\n })\n private readonly _slottedNodes?: HTMLElement[];\n\n /** Stores the current gap used in the breakpoints */\n #currentGap = 0;\n\n /**\n * Set the flex direction of the content of the dropdown.\n * @type {string}\n * @attr\n * @default vertical\n */\n @property({\n type: String,\n reflect: true,\n attribute: 'dropdown-content-direction',\n })\n dropdownContentDirection: 'vertical' | 'horizontal' = 'vertical';\n\n #tabElements: HTMLElement[] = [];\n\n #hiddenTabElements: UUITabElement[] = [];\n readonly #hiddenTabElementsMap: Map<UUITabElement, UUITabElement> = new Map();\n\n #visibilityBreakpoints: number[] = [];\n\n readonly #resizeObserver = new ResizeObserver(this.#onResize.bind(this));\n readonly #tabResizeObservers: ResizeObserver[] = [];\n\n #breakPointCalculationInProgress = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.#initialize();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#resizeObserver.unobserve(this);\n this.#cleanupTabs();\n }\n\n async #initialize() {\n await this.updateComplete;\n this.#resizeObserver.observe(this._mainElement);\n }\n\n #onResize(entries: ResizeObserverEntry[]) {\n // Check if the gap css custom property has changed.\n const gapCSSVar = Number.parseFloat(\n this.style.getPropertyValue('--uui-tab-group-gap'),\n );\n const newGap = Number.isNaN(gapCSSVar) ? 0 : gapCSSVar;\n if (newGap === this.#currentGap) {\n this.#updateCollapsibleTabs(entries[0].contentBoxSize[0].inlineSize);\n } else {\n this.#calculateBreakPoints();\n }\n }\n\n #cleanupTabs() {\n this.#tabElements.forEach(el => {\n el.removeEventListener('click', this.#onTabClicked);\n this.#tabResizeObservers.forEach(observer => observer.disconnect());\n });\n this.#tabResizeObservers.length = 0;\n this.#visibilityBreakpoints.length = 0;\n }\n\n #onSlotChange() {\n this.#cleanupTabs();\n\n this.#setTabArray();\n\n this.#tabElements.forEach(el => {\n el.addEventListener('click', this.#onTabClicked);\n const observer = new ResizeObserver(\n this.#calculateBreakPoints.bind(this),\n );\n observer.observe(el);\n this.#tabResizeObservers.push(observer);\n });\n }\n\n readonly #onTabClicked = (e: MouseEvent) => {\n const selectedElement = e.currentTarget as HTMLElement;\n\n // Don't switch active tabs when a href is being opened in a new browser tab\n const isCtrlClick = e.ctrlKey || e.metaKey;\n if (this.#isElementHrefLike(selectedElement) && isCtrlClick) {\n return;\n }\n\n // If hidden, forward to the original — external listeners fire there\n if (\n selectedElement.classList.contains('hidden-tab') &&\n this.#isElementTabLike(selectedElement)\n ) {\n const original = this.#hiddenTabElementsMap.get(selectedElement);\n if (original) {\n original.click();\n this._moreButtonElement.classList.add('active-inside');\n this._popoverContainerElement.hidePopover();\n }\n return;\n }\n\n if (this.#isElementTabLike(selectedElement)) {\n selectedElement.active = true;\n const linkedElement = this.#hiddenTabElementsMap.get(selectedElement);\n\n if (linkedElement) {\n linkedElement.active = true;\n }\n\n // Reset all other tabs\n const filtered = [\n ...this.#tabElements,\n ...this.#hiddenTabElements,\n ].filter(el => el !== selectedElement && el !== linkedElement);\n\n filtered.forEach(el => {\n if (this.#isElementTabLike(el)) {\n el.active = false;\n }\n });\n\n // Check if there are any active tabs in the dropdown\n const hasActiveHidden = this.#hiddenTabElements.some(\n el => el.active && el !== linkedElement,\n );\n\n if (hasActiveHidden) {\n this._moreButtonElement.classList.add('active-inside');\n } else {\n this._moreButtonElement.classList.remove('active-inside');\n }\n }\n };\n\n async #calculateBreakPoints() {\n if (this.#breakPointCalculationInProgress) return;\n\n // Prevent multiple calculations from happening in the same frame\n this.#breakPointCalculationInProgress = true;\n requestAnimationFrame(() => {\n this.#breakPointCalculationInProgress = false;\n });\n\n // Whenever a tab is added or removed, we need to recalculate the breakpoints\n\n await this.updateComplete; // Wait for the tabs to be rendered\n\n const gapCSSVar = Number.parseFloat(\n this.style.getPropertyValue('--uui-tab-group-gap'),\n );\n const gap = Number.isNaN(gapCSSVar) ? 0 : gapCSSVar;\n this.#currentGap = gap;\n let childrenWidth = 0;\n\n for (let i = 0; i < this.#tabElements.length; i++) {\n this.#tabElements[i].style.display = '';\n childrenWidth += this.#tabElements[i].offsetWidth;\n this.#visibilityBreakpoints[i] = childrenWidth;\n // Add the gap, which will then be included in the next breakpoint:\n childrenWidth += gap;\n }\n\n const tolerance = 2;\n this._mainElement.style.width = childrenWidth - gap + tolerance + 'px';\n\n this.#updateCollapsibleTabs(this._mainElement.offsetWidth);\n }\n\n #setTabArray() {\n this.#tabElements = this._slottedNodes ?? [];\n this.#calculateBreakPoints();\n }\n\n #updateCollapsibleTabs(containerWidth: number) {\n const moreButtonWidth = this._moreButtonElement.offsetWidth;\n\n const containerWithoutButtonWidth = containerWidth - (moreButtonWidth || 0);\n\n // Do the update\n // Reset the hidden tabs\n this.#hiddenTabElements.forEach(el => {\n el.removeEventListener('click', this.#onTabClicked);\n });\n this.#hiddenTabElements = [];\n this.#hiddenTabElementsMap.clear();\n\n let hasActiveTabInDropdown = false;\n\n const len = this.#visibilityBreakpoints.length;\n for (let i = 0; i < len; i++) {\n const breakpoint = this.#visibilityBreakpoints[i];\n const tab = this.#tabElements[i] as UUITabElement;\n\n // If breakpoint is smaller than the container width, then show the tab.\n // If last breakpoint, then we will use the containerWidth, as we do not want to include the more-button in that calculation.\n if (\n breakpoint <=\n (i === len - 1 ? containerWidth : containerWithoutButtonWidth)\n ) {\n // Show this tab:\n tab.style.display = '';\n } else {\n // Make a proxy tab to put in the hidden tabs container and link it to the original tab\n const proxyTab = tab.cloneNode(true) as UUITabElement;\n proxyTab.addEventListener('click', this.#onTabClicked);\n proxyTab.classList.add('hidden-tab');\n proxyTab.style.display = '';\n proxyTab.orientation = this.dropdownContentDirection;\n\n // Link the proxy tab to the original tab\n this.#hiddenTabElementsMap.set(proxyTab, tab);\n this.#hiddenTabElementsMap.set(tab, proxyTab);\n\n this.#hiddenTabElements.push(proxyTab);\n\n tab.style.display = 'none';\n if (tab.active) {\n hasActiveTabInDropdown = true;\n }\n }\n }\n\n if (this.#hiddenTabElements.length === 0) {\n // Hide more button:\n this._moreButtonElement.style.display = 'none';\n // close the popover\n this._popoverContainerElement.hidePopover();\n } else {\n // Show more button:\n this._moreButtonElement.style.display = '';\n }\n\n if (hasActiveTabInDropdown) {\n this._moreButtonElement.classList.add('active-inside');\n } else {\n this._moreButtonElement.classList.remove('active-inside');\n }\n\n this.requestUpdate();\n }\n\n #isElementTabLike(el: any): el is UUITabElement {\n return (\n typeof el === 'object' && 'active' in el && typeof el.active === 'boolean'\n );\n }\n\n #isElementHrefLike(el: any): el is UUITabElement {\n return (\n typeof el === 'object' &&\n 'href' in el &&\n typeof el.href === 'string' &&\n el.href\n );\n }\n\n render() {\n return html`\n <div id=\"main\">\n <div id=\"grid\" role=\"tablist\">\n <slot @slotchange=${this.#onSlotChange}></slot>\n </div>\n <uui-button\n popovertarget=\"popover-container\"\n style=\"display: none\"\n id=\"more-button\"\n label=\"More\"\n compact>\n <uui-symbol-more></uui-symbol-more>\n </uui-button>\n </div>\n <uui-popover-container\n id=\"popover-container\"\n popover\n placement=\"bottom-end\">\n <div id=\"hidden-tabs-container\" role=\"tablist\">\n ${repeat(this.#hiddenTabElements, el => html`${el}`)}\n </div>\n </uui-popover-container>\n `;\n }\n\n static override readonly styles = [\n css`\n :host {\n min-width: 0;\n display: flex;\n height: 100%;\n }\n\n #main {\n display: flex;\n justify-content: space-between;\n overflow: hidden;\n }\n\n #grid {\n width: 1fr;\n display: flex;\n height: 100%;\n min-height: 48px;\n overflow: hidden;\n text-wrap: nowrap;\n color: var(--uui-tab-text);\n gap: var(--uui-tab-group-gap, 0);\n }\n\n #popover-container {\n --uui-tab-text: var(--uui-tab-group-dropdown-tab-text, unset);\n --uui-tab-text-hover: var(\n --uui-tab-group-dropdown-tab-text-hover,\n unset\n );\n --uui-tab-text-active: var(\n --uui-tab-group-dropdown-tab-text-active,\n unset\n );\n }\n\n ::slotted(*:not(:last-of-type)) {\n border-right: 1px solid var(--uui-tab-divider, none);\n }\n\n .hidden-tab {\n width: 100%;\n }\n\n #hidden-tabs-container {\n width: fit-content;\n display: flex;\n flex-direction: column;\n background-color: var(\n --uui-tab-group-dropdown-background,\n var(--uui-color-surface)\n );\n border-radius: var(--uui-border-radius);\n box-shadow: var(--uui-shadow-depth-3);\n overflow: hidden;\n }\n :host([dropdown-direction='horizontal']) #hidden-tabs-container {\n flex-direction: row;\n }\n\n #more-button {\n position: relative;\n\n --uui-button-contrast: var(--uui-tab-text);\n --uui-button-contrast-hover: var(--uui-tab-text-hover);\n --uui-button-background-color: transparent;\n --uui-button-background-color-hover: transparent;\n }\n #more-button::before {\n content: '';\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: var(--uui-color-current);\n height: 0px;\n border-radius: var(--uui-border-radius) var(--uui-border-radius) 0 0;\n opacity: 0;\n transition:\n opacity ease-in 120ms,\n height ease-in 120ms;\n }\n #more-button.active-inside::before {\n opacity: 1;\n height: 4px;\n transition:\n opacity 120ms,\n height ease-out 120ms;\n }\n `,\n ];\n}\n"],"mappings":"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"}