dap-design-system 0.62.4 → 0.63.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 (660) hide show
  1. package/README.md +5 -1
  2. package/dist/common/utils.js +46 -46
  3. package/dist/common/utils.js.map +1 -1
  4. package/dist/components/accordion/accordion-base-element.js +15 -19
  5. package/dist/components/accordion/accordion-base-element.js.map +1 -1
  6. package/dist/components/accordion/accordion.component.d.ts +1 -0
  7. package/dist/components/accordion/accordion.component.js.map +1 -1
  8. package/dist/components/accordion-group/accordion-group.component.js +20 -24
  9. package/dist/components/accordion-group/accordion-group.component.js.map +1 -1
  10. package/dist/components/anchor-heading/anchor-heading.component.d.ts +1 -0
  11. package/dist/components/anchor-heading/anchor-heading.component.js +20 -23
  12. package/dist/components/anchor-heading/anchor-heading.component.js.map +1 -1
  13. package/dist/components/avatar/avatar.component.js +51 -55
  14. package/dist/components/avatar/avatar.component.js.map +1 -1
  15. package/dist/components/avatar-group/avatar-group.component.js +18 -22
  16. package/dist/components/avatar-group/avatar-group.component.js.map +1 -1
  17. package/dist/components/badge/badge.component.js +17 -20
  18. package/dist/components/badge/badge.component.js.map +1 -1
  19. package/dist/components/banner/banner.component.d.ts +1 -1
  20. package/dist/components/banner/banner.component.js +18 -24
  21. package/dist/components/banner/banner.component.js.map +1 -1
  22. package/dist/components/breadcrumb/breadcrumb.component.d.ts +2 -1
  23. package/dist/components/breadcrumb/breadcrumb.component.js +32 -32
  24. package/dist/components/breadcrumb/breadcrumb.component.js.map +1 -1
  25. package/dist/components/breadcrumb-item/breadcrumb-item.component.d.ts +8 -0
  26. package/dist/components/breadcrumb-item/breadcrumb-item.component.js +33 -28
  27. package/dist/components/breadcrumb-item/breadcrumb-item.component.js.map +1 -1
  28. package/dist/components/button/_styles/button.scss.js +1 -1
  29. package/dist/components/button/button.component.js +18 -22
  30. package/dist/components/button/button.component.js.map +1 -1
  31. package/dist/components/button-group/_styles/button-group-separator.scss.js +5 -0
  32. package/dist/components/button-group/_styles/button-group-separator.scss.js.map +1 -0
  33. package/dist/components/button-group/_styles/button-group-text.scss.js +5 -0
  34. package/dist/components/button-group/_styles/button-group-text.scss.js.map +1 -0
  35. package/dist/components/button-group/_styles/button-group.scss.js +5 -0
  36. package/dist/components/button-group/_styles/button-group.scss.js.map +1 -0
  37. package/dist/components/button-group/button-group-separator.component.d.ts +28 -0
  38. package/dist/components/button-group/button-group-separator.component.js +18 -0
  39. package/dist/components/button-group/button-group-separator.component.js.map +1 -0
  40. package/dist/components/button-group/button-group-separator.d.ts +8 -0
  41. package/dist/components/button-group/button-group-separator.js +6 -0
  42. package/dist/components/button-group/button-group-separator.js.map +1 -0
  43. package/dist/components/button-group/button-group-text.component.d.ts +33 -0
  44. package/dist/components/button-group/button-group-text.component.js +17 -0
  45. package/dist/components/button-group/button-group-text.component.js.map +1 -0
  46. package/dist/components/button-group/button-group-text.d.ts +8 -0
  47. package/dist/components/button-group/button-group-text.js +6 -0
  48. package/dist/components/button-group/button-group-text.js.map +1 -0
  49. package/dist/components/button-group/button-group.component.d.ts +52 -0
  50. package/dist/components/button-group/button-group.component.js +30 -0
  51. package/dist/components/button-group/button-group.component.js.map +1 -0
  52. package/dist/components/button-group/button-group.d.ts +8 -0
  53. package/dist/components/button-group/button-group.js +6 -0
  54. package/dist/components/button-group/button-group.js.map +1 -0
  55. package/dist/components/calendar/calendar-cell.component.js +26 -29
  56. package/dist/components/calendar/calendar-cell.component.js.map +1 -1
  57. package/dist/components/calendar/calendar.component.d.ts +10 -1
  58. package/dist/components/calendar/calendar.component.js +37 -46
  59. package/dist/components/calendar/calendar.component.js.map +1 -1
  60. package/dist/components/callout/callout.component.d.ts +4 -0
  61. package/dist/components/callout/callout.component.js +71 -69
  62. package/dist/components/callout/callout.component.js.map +1 -1
  63. package/dist/components/card/card-actions.component.js +8 -11
  64. package/dist/components/card/card-actions.component.js.map +1 -1
  65. package/dist/components/card/card-content.component.js +20 -23
  66. package/dist/components/card/card-content.component.js.map +1 -1
  67. package/dist/components/card/card-image.component.js +18 -21
  68. package/dist/components/card/card-image.component.js.map +1 -1
  69. package/dist/components/card/card-subtitle.component.js +18 -21
  70. package/dist/components/card/card-subtitle.component.js.map +1 -1
  71. package/dist/components/card/card-title.component.js +18 -21
  72. package/dist/components/card/card-title.component.js.map +1 -1
  73. package/dist/components/card/card.component.d.ts +1 -0
  74. package/dist/components/card/card.component.js +25 -28
  75. package/dist/components/card/card.component.js.map +1 -1
  76. package/dist/components/checkbox/_styles/checkbox.scss.js +1 -1
  77. package/dist/components/checkbox/checkbox.component.d.ts +7 -1
  78. package/dist/components/checkbox/checkbox.component.js +71 -74
  79. package/dist/components/checkbox/checkbox.component.js.map +1 -1
  80. package/dist/components/chip/chip.component.d.ts +1 -0
  81. package/dist/components/chip/chip.component.js +21 -26
  82. package/dist/components/chip/chip.component.js.map +1 -1
  83. package/dist/components/code-puncher/code-puncher-slot.component.js +34 -38
  84. package/dist/components/code-puncher/code-puncher-slot.component.js.map +1 -1
  85. package/dist/components/code-puncher/code-puncher.component.d.ts +4 -0
  86. package/dist/components/code-puncher/code-puncher.component.js +97 -102
  87. package/dist/components/code-puncher/code-puncher.component.js.map +1 -1
  88. package/dist/components/code-puncher/code-puncher.context.js +1 -1
  89. package/dist/components/code-puncher/code-puncher.context.js.map +1 -1
  90. package/dist/components/code-puncher/code-puncher.scss.js +1 -1
  91. package/dist/components/combobox/combobox.component.d.ts +9 -1
  92. package/dist/components/combobox/combobox.component.js.map +1 -1
  93. package/dist/components/combobox/combobox.scss.js +1 -1
  94. package/dist/components/combobox/comboboxBase.d.ts +21 -0
  95. package/dist/components/combobox/comboboxBase.js +176 -139
  96. package/dist/components/combobox/comboboxBase.js.map +1 -1
  97. package/dist/components/command/command-group.component.js +19 -23
  98. package/dist/components/command/command-group.component.js.map +1 -1
  99. package/dist/components/command/command-item.component.js +17 -22
  100. package/dist/components/command/command-item.component.js.map +1 -1
  101. package/dist/components/command/command.component.d.ts +3 -0
  102. package/dist/components/command/command.component.js +28 -33
  103. package/dist/components/command/command.component.js.map +1 -1
  104. package/dist/components/content-switcher/content-switcher-item.component.js +16 -19
  105. package/dist/components/content-switcher/content-switcher-item.component.js.map +1 -1
  106. package/dist/components/content-switcher/content-switcher.component.js +19 -22
  107. package/dist/components/content-switcher/content-switcher.component.js.map +1 -1
  108. package/dist/components/copybox-input/copybox-input.component.d.ts +11 -0
  109. package/dist/components/copybox-input/copybox-input.component.js +12 -16
  110. package/dist/components/copybox-input/copybox-input.component.js.map +1 -1
  111. package/dist/components/dap-badge/dap-badge.component.js +13 -18
  112. package/dist/components/dap-badge/dap-badge.component.js.map +1 -1
  113. package/dist/components/datatable/datatable.component.d.ts +17 -0
  114. package/dist/components/datatable/datatable.component.js +38 -42
  115. package/dist/components/datatable/datatable.component.js.map +1 -1
  116. package/dist/components/datatable/utils/cell-renderer.js +6 -8
  117. package/dist/components/datatable/utils/cell-renderer.js.map +1 -1
  118. package/dist/components/datepicker/datepicker.component.d.ts +11 -0
  119. package/dist/components/datepicker/datepicker.component.js +89 -82
  120. package/dist/components/datepicker/datepicker.component.js.map +1 -1
  121. package/dist/components/datepicker/datepicker.scss.js +1 -1
  122. package/dist/components/divider/divider.component.js +18 -21
  123. package/dist/components/divider/divider.component.js.map +1 -1
  124. package/dist/components/feedback/feedback.component.js +8 -11
  125. package/dist/components/feedback/feedback.component.js.map +1 -1
  126. package/dist/components/file-input/file-input-list-item.component.d.ts +1 -0
  127. package/dist/components/file-input/file-input-list-item.component.js +36 -40
  128. package/dist/components/file-input/file-input-list-item.component.js.map +1 -1
  129. package/dist/components/file-input/file-input-list.component.js +15 -20
  130. package/dist/components/file-input/file-input-list.component.js.map +1 -1
  131. package/dist/components/file-input/file-input-list.scss.js +1 -1
  132. package/dist/components/file-input/file-input.component.d.ts +3 -0
  133. package/dist/components/file-input/file-input.component.js +135 -142
  134. package/dist/components/file-input/file-input.component.js.map +1 -1
  135. package/dist/components/file-input/file-input.scss.js +1 -1
  136. package/dist/components/form/form-label/form-label.component.d.ts +1 -1
  137. package/dist/components/form/form-label/form-label.component.js +20 -23
  138. package/dist/components/form/form-label/form-label.component.js.map +1 -1
  139. package/dist/components/form/input-group/input-group.component.d.ts +4 -0
  140. package/dist/components/form/input-group/input-group.component.js +42 -42
  141. package/dist/components/form/input-group/input-group.component.js.map +1 -1
  142. package/dist/components/form/input-group/input-group.scss.js +2 -2
  143. package/dist/components/form/radio-group/radio-group.component.d.ts +5 -0
  144. package/dist/components/form/radio-group/radio-group.component.js +54 -55
  145. package/dist/components/form/radio-group/radio-group.component.js.map +1 -1
  146. package/dist/components/icon/icon.component.js +25 -28
  147. package/dist/components/icon/icon.component.js.map +1 -1
  148. package/dist/components/icon-button/icon-button.component.d.ts +1 -0
  149. package/dist/components/icon-button/icon-button.component.js +11 -14
  150. package/dist/components/icon-button/icon-button.component.js.map +1 -1
  151. package/dist/components/icon-button/icon-button.scss.js +1 -1
  152. package/dist/components/icons/arrows/arrows-arrow-down-line/arrows-arrow-down-line.component.js +9 -12
  153. package/dist/components/icons/arrows/arrows-arrow-down-line/arrows-arrow-down-line.component.js.map +1 -1
  154. package/dist/components/icons/arrows/arrows-arrow-down-s-fill/arrows-arrow-down-s-fill.component.js +7 -10
  155. package/dist/components/icons/arrows/arrows-arrow-down-s-fill/arrows-arrow-down-s-fill.component.js.map +1 -1
  156. package/dist/components/icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.js +12 -15
  157. package/dist/components/icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.js.map +1 -1
  158. package/dist/components/icons/arrows/arrows-arrow-left-down-line/arrows-arrow-left-down-line.component.js +8 -11
  159. package/dist/components/icons/arrows/arrows-arrow-left-down-line/arrows-arrow-left-down-line.component.js.map +1 -1
  160. package/dist/components/icons/arrows/arrows-arrow-left-l-line/arrows-arrow-left-l-line.component.js +15 -18
  161. package/dist/components/icons/arrows/arrows-arrow-left-l-line/arrows-arrow-left-l-line.component.js.map +1 -1
  162. package/dist/components/icons/arrows/arrows-arrow-left-line/arrows-arrow-left-line.component.js +7 -10
  163. package/dist/components/icons/arrows/arrows-arrow-left-line/arrows-arrow-left-line.component.js.map +1 -1
  164. package/dist/components/icons/arrows/arrows-arrow-left-s-fill/arrows-arrow-left-s-fill.component.js +10 -13
  165. package/dist/components/icons/arrows/arrows-arrow-left-s-fill/arrows-arrow-left-s-fill.component.js.map +1 -1
  166. package/dist/components/icons/arrows/arrows-arrow-left-s-line/arrows-arrow-left-s-line.component.js +7 -10
  167. package/dist/components/icons/arrows/arrows-arrow-left-s-line/arrows-arrow-left-s-line.component.js.map +1 -1
  168. package/dist/components/icons/arrows/arrows-arrow-left-up-line/arrows-arrow-left-up-line.component.js +6 -9
  169. package/dist/components/icons/arrows/arrows-arrow-left-up-line/arrows-arrow-left-up-line.component.js.map +1 -1
  170. package/dist/components/icons/arrows/arrows-arrow-right-down-line/arrows-arrow-right-down-line.component.js +18 -21
  171. package/dist/components/icons/arrows/arrows-arrow-right-down-line/arrows-arrow-right-down-line.component.js.map +1 -1
  172. package/dist/components/icons/arrows/arrows-arrow-right-l-line/arrows-arrow-right-l-line.component.js +15 -18
  173. package/dist/components/icons/arrows/arrows-arrow-right-l-line/arrows-arrow-right-l-line.component.js.map +1 -1
  174. package/dist/components/icons/arrows/arrows-arrow-right-line/arrows-arrow-right-line.component.js +17 -20
  175. package/dist/components/icons/arrows/arrows-arrow-right-line/arrows-arrow-right-line.component.js.map +1 -1
  176. package/dist/components/icons/arrows/arrows-arrow-right-s-fill/arrows-arrow-right-s-fill.component.js +17 -20
  177. package/dist/components/icons/arrows/arrows-arrow-right-s-fill/arrows-arrow-right-s-fill.component.js.map +1 -1
  178. package/dist/components/icons/arrows/arrows-arrow-right-s-line/arrows-arrow-right-s-line.component.js +17 -20
  179. package/dist/components/icons/arrows/arrows-arrow-right-s-line/arrows-arrow-right-s-line.component.js.map +1 -1
  180. package/dist/components/icons/arrows/arrows-arrow-right-up-line/arrows-arrow-right-up-line.component.js +18 -21
  181. package/dist/components/icons/arrows/arrows-arrow-right-up-line/arrows-arrow-right-up-line.component.js.map +1 -1
  182. package/dist/components/icons/arrows/arrows-arrow-up-line/arrows-arrow-up-line.component.js +9 -12
  183. package/dist/components/icons/arrows/arrows-arrow-up-line/arrows-arrow-up-line.component.js.map +1 -1
  184. package/dist/components/icons/arrows/arrows-arrow-up-s-fill/arrows-arrow-up-s-fill.component.js +8 -11
  185. package/dist/components/icons/arrows/arrows-arrow-up-s-fill/arrows-arrow-up-s-fill.component.js.map +1 -1
  186. package/dist/components/icons/arrows/arrows-arrow-up-s-line/arrows-arrow-up-s-line.component.js +9 -12
  187. package/dist/components/icons/arrows/arrows-arrow-up-s-line/arrows-arrow-up-s-line.component.js.map +1 -1
  188. package/dist/components/icons/arrows/arrows-expand-up-down-fill/arrows-expand-up-down-fill.component.js +11 -14
  189. package/dist/components/icons/arrows/arrows-expand-up-down-fill/arrows-expand-up-down-fill.component.js.map +1 -1
  190. package/dist/components/icons/buildings/buildings-home-6-line/buildings-home-6-line.component.js +10 -13
  191. package/dist/components/icons/buildings/buildings-home-6-line/buildings-home-6-line.component.js.map +1 -1
  192. package/dist/components/icons/business/business-calendar-line/business-calendar-line.component.js +11 -14
  193. package/dist/components/icons/business/business-calendar-line/business-calendar-line.component.js.map +1 -1
  194. package/dist/components/icons/design/design-edit-line/design-edit-line.component.js +6 -9
  195. package/dist/components/icons/design/design-edit-line/design-edit-line.component.js.map +1 -1
  196. package/dist/components/icons/design/design-tools-line/design-tools-line.component.js +12 -15
  197. package/dist/components/icons/design/design-tools-line/design-tools-line.component.js.map +1 -1
  198. package/dist/components/icons/device/device-computer-line/device-computer-line.component.js +16 -19
  199. package/dist/components/icons/device/device-computer-line/device-computer-line.component.js.map +1 -1
  200. package/dist/components/icons/document/document-clipboard-line/document-clipboard-line.component.js +11 -14
  201. package/dist/components/icons/document/document-clipboard-line/document-clipboard-line.component.js.map +1 -1
  202. package/dist/components/icons/document/document-file-copy-line/document-file-copy-line.component.js +10 -13
  203. package/dist/components/icons/document/document-file-copy-line/document-file-copy-line.component.js.map +1 -1
  204. package/dist/components/icons/document/document-file-image-line/document-file-image-line.component.js +11 -14
  205. package/dist/components/icons/document/document-file-image-line/document-file-image-line.component.js.map +1 -1
  206. package/dist/components/icons/document/document-file-music-line/document-file-music-line.component.js +11 -14
  207. package/dist/components/icons/document/document-file-music-line/document-file-music-line.component.js.map +1 -1
  208. package/dist/components/icons/document/document-file-text-line/document-file-text-line.component.js +10 -13
  209. package/dist/components/icons/document/document-file-text-line/document-file-text-line.component.js.map +1 -1
  210. package/dist/components/icons/document/document-file-video-line/document-file-video-line.component.js +11 -14
  211. package/dist/components/icons/document/document-file-video-line/document-file-video-line.component.js.map +1 -1
  212. package/dist/components/icons/document/document-folder-line/document-folder-line.component.js +11 -14
  213. package/dist/components/icons/document/document-folder-line/document-folder-line.component.js.map +1 -1
  214. package/dist/components/icons/document/document-folder-open-line/document-folder-open-line.component.js +10 -13
  215. package/dist/components/icons/document/document-folder-open-line/document-folder-open-line.component.js.map +1 -1
  216. package/dist/components/icons/editor/editor-separator/editor-separator.component.js +10 -13
  217. package/dist/components/icons/editor/editor-separator/editor-separator.component.js.map +1 -1
  218. package/dist/components/icons/health/health-heart-fill/health-heart-fill.component.js +8 -11
  219. package/dist/components/icons/health/health-heart-fill/health-heart-fill.component.js.map +1 -1
  220. package/dist/components/icons/health/health-heart-line/health-heart-line.component.js +10 -13
  221. package/dist/components/icons/health/health-heart-line/health-heart-line.component.js.map +1 -1
  222. package/dist/components/icons/others/others-cookie-line/others-cookie-line.component.js +6 -9
  223. package/dist/components/icons/others/others-cookie-line/others-cookie-line.component.js.map +1 -1
  224. package/dist/components/icons/system/system-add-line/system-add-line.component.js +11 -14
  225. package/dist/components/icons/system/system-add-line/system-add-line.component.js.map +1 -1
  226. package/dist/components/icons/system/system-alert-fill/system-alert-fill.component.js +9 -12
  227. package/dist/components/icons/system/system-alert-fill/system-alert-fill.component.js.map +1 -1
  228. package/dist/components/icons/system/system-alert-line/system-alert-line.component.js +11 -14
  229. package/dist/components/icons/system/system-alert-line/system-alert-line.component.js.map +1 -1
  230. package/dist/components/icons/system/system-check-line/system-check-line.component.js +9 -12
  231. package/dist/components/icons/system/system-check-line/system-check-line.component.js.map +1 -1
  232. package/dist/components/icons/system/system-check-line2/system-check-line2.component.js +11 -14
  233. package/dist/components/icons/system/system-check-line2/system-check-line2.component.js.map +1 -1
  234. package/dist/components/icons/system/system-checkbox-blank-circle-fill/system-checkbox-blank-circle-fill.component.js +9 -12
  235. package/dist/components/icons/system/system-checkbox-blank-circle-fill/system-checkbox-blank-circle-fill.component.js.map +1 -1
  236. package/dist/components/icons/system/system-checkbox-blank-circle-fill-check/system-checkbox-blank-circle-fill-check.component.js +12 -15
  237. package/dist/components/icons/system/system-checkbox-blank-circle-fill-check/system-checkbox-blank-circle-fill-check.component.js.map +1 -1
  238. package/dist/components/icons/system/system-checkbox-blank-circle-line/system-checkbox-blank-circle-line.component.js +13 -16
  239. package/dist/components/icons/system/system-checkbox-blank-circle-line/system-checkbox-blank-circle-line.component.js.map +1 -1
  240. package/dist/components/icons/system/system-checkbox-circle-fill/system-checkbox-circle-fill.component.js +11 -14
  241. package/dist/components/icons/system/system-checkbox-circle-fill/system-checkbox-circle-fill.component.js.map +1 -1
  242. package/dist/components/icons/system/system-checkbox-circle-line/system-checkbox-circle-line.component.js +11 -14
  243. package/dist/components/icons/system/system-checkbox-circle-line/system-checkbox-circle-line.component.js.map +1 -1
  244. package/dist/components/icons/system/system-close-circle-fill/system-close-circle-fill.component.js +11 -14
  245. package/dist/components/icons/system/system-close-circle-fill/system-close-circle-fill.component.js.map +1 -1
  246. package/dist/components/icons/system/system-close-circle-line/system-close-circle-line.component.js +7 -10
  247. package/dist/components/icons/system/system-close-circle-line/system-close-circle-line.component.js.map +1 -1
  248. package/dist/components/icons/system/system-close-fill/system-close-fill.component.js +11 -14
  249. package/dist/components/icons/system/system-close-fill/system-close-fill.component.js.map +1 -1
  250. package/dist/components/icons/system/system-close-line/system-close-line.component.js +11 -14
  251. package/dist/components/icons/system/system-close-line/system-close-line.component.js.map +1 -1
  252. package/dist/components/icons/system/system-delete-bin-fill/system-delete-bin-fill.component.js +7 -10
  253. package/dist/components/icons/system/system-delete-bin-fill/system-delete-bin-fill.component.js.map +1 -1
  254. package/dist/components/icons/system/system-delete-bin-line/system-delete-bin-line.component.js +9 -12
  255. package/dist/components/icons/system/system-delete-bin-line/system-delete-bin-line.component.js.map +1 -1
  256. package/dist/components/icons/system/system-download-line/system-download-line.component.js +9 -12
  257. package/dist/components/icons/system/system-download-line/system-download-line.component.js.map +1 -1
  258. package/dist/components/icons/system/system-error-warning-fill/system-error-warning-fill.component.js +7 -10
  259. package/dist/components/icons/system/system-error-warning-fill/system-error-warning-fill.component.js.map +1 -1
  260. package/dist/components/icons/system/system-error-warning-line/system-error-warning-line.component.js +11 -14
  261. package/dist/components/icons/system/system-error-warning-line/system-error-warning-line.component.js.map +1 -1
  262. package/dist/components/icons/system/system-external-link-line/system-external-link-line.component.js +9 -12
  263. package/dist/components/icons/system/system-external-link-line/system-external-link-line.component.js.map +1 -1
  264. package/dist/components/icons/system/system-eye-line/system-eye-line.component.js +11 -14
  265. package/dist/components/icons/system/system-eye-line/system-eye-line.component.js.map +1 -1
  266. package/dist/components/icons/system/system-eye-off-line/system-eye-off-line.component.js +6 -9
  267. package/dist/components/icons/system/system-eye-off-line/system-eye-off-line.component.js.map +1 -1
  268. package/dist/components/icons/system/system-forbid-fill/system-forbid-fill.component.js +9 -12
  269. package/dist/components/icons/system/system-forbid-fill/system-forbid-fill.component.js.map +1 -1
  270. package/dist/components/icons/system/system-information-2-fill/system-information-2-fill.component.js +9 -12
  271. package/dist/components/icons/system/system-information-2-fill/system-information-2-fill.component.js.map +1 -1
  272. package/dist/components/icons/system/system-information-fill/system-information-fill.component.js +9 -12
  273. package/dist/components/icons/system/system-information-fill/system-information-fill.component.js.map +1 -1
  274. package/dist/components/icons/system/system-information-line/system-information-line.component.js +9 -12
  275. package/dist/components/icons/system/system-information-line/system-information-line.component.js.map +1 -1
  276. package/dist/components/icons/system/system-lightbulb-fill/system-lightbulb-fill.component.js +9 -12
  277. package/dist/components/icons/system/system-lightbulb-fill/system-lightbulb-fill.component.js.map +1 -1
  278. package/dist/components/icons/system/system-loading-spinner/system-loading-spinner.component.js +9 -12
  279. package/dist/components/icons/system/system-loading-spinner/system-loading-spinner.component.js.map +1 -1
  280. package/dist/components/icons/system/system-lock-fill/system-lock-fill.component.js +13 -16
  281. package/dist/components/icons/system/system-lock-fill/system-lock-fill.component.js.map +1 -1
  282. package/dist/components/icons/system/system-lock-line/system-lock-line.component.js +10 -13
  283. package/dist/components/icons/system/system-lock-line/system-lock-line.component.js.map +1 -1
  284. package/dist/components/icons/system/system-menu-line/system-menu-line.component.js +9 -12
  285. package/dist/components/icons/system/system-menu-line/system-menu-line.component.js.map +1 -1
  286. package/dist/components/icons/system/system-menu-line-s/system-menu-line-s.component.js +9 -12
  287. package/dist/components/icons/system/system-menu-line-s/system-menu-line-s.component.js.map +1 -1
  288. package/dist/components/icons/system/system-more-2-line/system-more-2-line.component.js +10 -13
  289. package/dist/components/icons/system/system-more-2-line/system-more-2-line.component.js.map +1 -1
  290. package/dist/components/icons/system/system-more-line/system-more-line.component.js +16 -19
  291. package/dist/components/icons/system/system-more-line/system-more-line.component.js.map +1 -1
  292. package/dist/components/icons/system/system-search-line/system-search-line.component.js +11 -14
  293. package/dist/components/icons/system/system-search-line/system-search-line.component.js.map +1 -1
  294. package/dist/components/icons/system/system-share-line/system-share-line.component.js +9 -12
  295. package/dist/components/icons/system/system-share-line/system-share-line.component.js.map +1 -1
  296. package/dist/components/icons/system/system-shield-check-fill/system-shield-check-fill.component.js +8 -11
  297. package/dist/components/icons/system/system-shield-check-fill/system-shield-check-fill.component.js.map +1 -1
  298. package/dist/components/icons/system/system-shield-check-line/system-shield-check-line.component.js +6 -9
  299. package/dist/components/icons/system/system-shield-check-line/system-shield-check-line.component.js.map +1 -1
  300. package/dist/components/icons/system/system-star-fill/system-star-fill.component.js +13 -16
  301. package/dist/components/icons/system/system-star-fill/system-star-fill.component.js.map +1 -1
  302. package/dist/components/icons/system/system-subtract-line/system-subtract-line.component.js +11 -14
  303. package/dist/components/icons/system/system-subtract-line/system-subtract-line.component.js.map +1 -1
  304. package/dist/components/icons/system/system-subtract-line2/system-subtract-line2.component.js +7 -10
  305. package/dist/components/icons/system/system-subtract-line2/system-subtract-line2.component.js.map +1 -1
  306. package/dist/components/icons/system/system-time-fill/system-time-fill.component.js +11 -14
  307. package/dist/components/icons/system/system-time-fill/system-time-fill.component.js.map +1 -1
  308. package/dist/components/icons/system/system-time-line/system-time-line.component.js +11 -14
  309. package/dist/components/icons/system/system-time-line/system-time-line.component.js.map +1 -1
  310. package/dist/components/icons/system/system-upload-2-fill/system-upload-2-fill.component.js +5 -8
  311. package/dist/components/icons/system/system-upload-2-fill/system-upload-2-fill.component.js.map +1 -1
  312. package/dist/components/icons/system/system-upload-2-line/system-upload-2-line.component.js +7 -10
  313. package/dist/components/icons/system/system-upload-2-line/system-upload-2-line.component.js.map +1 -1
  314. package/dist/components/icons/system/system-upload-line/system-upload-line.component.js +9 -12
  315. package/dist/components/icons/system/system-upload-line/system-upload-line.component.js.map +1 -1
  316. package/dist/components/icons/system/system-zoom-in-line/system-zoom-in-line.component.js +9 -12
  317. package/dist/components/icons/system/system-zoom-in-line/system-zoom-in-line.component.js.map +1 -1
  318. package/dist/components/icons/system/system-zoom-out-line/system-zoom-out-line.component.js +11 -14
  319. package/dist/components/icons/system/system-zoom-out-line/system-zoom-out-line.component.js.map +1 -1
  320. package/dist/components/icons/user/user-account-circle-fill/user-account-circle-fill.component.js +16 -19
  321. package/dist/components/icons/user/user-account-circle-fill/user-account-circle-fill.component.js.map +1 -1
  322. package/dist/components/icons/user/user-account-circle-line/user-account-circle-line.component.js +13 -16
  323. package/dist/components/icons/user/user-account-circle-line/user-account-circle-line.component.js.map +1 -1
  324. package/dist/components/icons/user/user-user-fill/user-user-fill.component.js +8 -11
  325. package/dist/components/icons/user/user-user-fill/user-user-fill.component.js.map +1 -1
  326. package/dist/components/icons/user/user-user-line/user-user-line.component.js +11 -14
  327. package/dist/components/icons/user/user-user-line/user-user-line.component.js.map +1 -1
  328. package/dist/components/image-zoom/image-zoom.component.js +12 -17
  329. package/dist/components/image-zoom/image-zoom.component.js.map +1 -1
  330. package/dist/components/input/_styles/input.scss.js +1 -1
  331. package/dist/components/input/input-base-element.js +41 -47
  332. package/dist/components/input/input-base-element.js.map +1 -1
  333. package/dist/components/label/_styles/label.scss.js +1 -1
  334. package/dist/components/label/label.component.js +8 -11
  335. package/dist/components/label/label.component.js.map +1 -1
  336. package/dist/components/link/link.component.js +23 -27
  337. package/dist/components/link/link.component.js.map +1 -1
  338. package/dist/components/list-item/list-item.component.d.ts +2 -0
  339. package/dist/components/list-item/list-item.component.js +24 -29
  340. package/dist/components/list-item/list-item.component.js.map +1 -1
  341. package/dist/components/modal/modal-base-element.js +36 -42
  342. package/dist/components/modal/modal-base-element.js.map +1 -1
  343. package/dist/components/navigation-menu/navigation-menu-item.component.d.ts +9 -1
  344. package/dist/components/navigation-menu/navigation-menu-item.component.js +36 -31
  345. package/dist/components/navigation-menu/navigation-menu-item.component.js.map +1 -1
  346. package/dist/components/navigation-menu/navigation-menu.component.js +20 -24
  347. package/dist/components/navigation-menu/navigation-menu.component.js.map +1 -1
  348. package/dist/components/notification-badge/notification-badge.component.js +28 -32
  349. package/dist/components/notification-badge/notification-badge.component.js.map +1 -1
  350. package/dist/components/number-input/number-input.component.d.ts +7 -0
  351. package/dist/components/number-input/number-input.component.js +23 -29
  352. package/dist/components/number-input/number-input.component.js.map +1 -1
  353. package/dist/components/official-website-banner/official-website-banner.component.d.ts +1 -0
  354. package/dist/components/official-website-banner/official-website-banner.component.js +19 -24
  355. package/dist/components/official-website-banner/official-website-banner.component.js.map +1 -1
  356. package/dist/components/option-group/option-group.component.js +17 -20
  357. package/dist/components/option-group/option-group.component.js.map +1 -1
  358. package/dist/components/option-item/option-item.component.d.ts +10 -0
  359. package/dist/components/option-item/option-item.component.js +66 -60
  360. package/dist/components/option-item/option-item.component.js.map +1 -1
  361. package/dist/components/option-item/option-item.scss.js +1 -1
  362. package/dist/components/option-list/__test__/listbox-harness.d.ts +129 -0
  363. package/dist/components/option-list/listbox-state.d.ts +230 -0
  364. package/dist/components/option-list/listbox-state.js +312 -0
  365. package/dist/components/option-list/listbox-state.js.map +1 -0
  366. package/dist/components/option-list/option-data.d.ts +35 -0
  367. package/dist/components/option-list/option-data.js +34 -0
  368. package/dist/components/option-list/option-data.js.map +1 -0
  369. package/dist/components/option-list/option-list.component.d.ts +66 -14
  370. package/dist/components/option-list/option-list.component.js +381 -294
  371. package/dist/components/option-list/option-list.component.js.map +1 -1
  372. package/dist/components/overlay/overlay.component.js +10 -13
  373. package/dist/components/overlay/overlay.component.js.map +1 -1
  374. package/dist/components/pager/pager.component.js +31 -37
  375. package/dist/components/pager/pager.component.js.map +1 -1
  376. package/dist/components/password-input/password-input.component.d.ts +12 -5
  377. package/dist/components/password-input/password-input.component.js +24 -30
  378. package/dist/components/password-input/password-input.component.js.map +1 -1
  379. package/dist/components/popup/popup-base-element.js +21 -25
  380. package/dist/components/popup/popup-base-element.js.map +1 -1
  381. package/dist/components/progress/progress.component.js +17 -21
  382. package/dist/components/progress/progress.component.js.map +1 -1
  383. package/dist/components/radio-button/_styles/radio-button.scss.js +1 -1
  384. package/dist/components/radio-button/radio-button.component.d.ts +5 -0
  385. package/dist/components/radio-button/radio-button.component.js +58 -62
  386. package/dist/components/radio-button/radio-button.component.js.map +1 -1
  387. package/dist/components/rating/_styles/rating.scss.js +2 -2
  388. package/dist/components/rating/rating.component.js +37 -41
  389. package/dist/components/rating/rating.component.js.map +1 -1
  390. package/dist/components/scroll-area/scroll-area.component.d.ts +2 -1
  391. package/dist/components/scroll-area/scroll-area.component.js +25 -28
  392. package/dist/components/scroll-area/scroll-area.component.js.map +1 -1
  393. package/dist/components/scroll-progress/scroll-progress.component.js +13 -17
  394. package/dist/components/scroll-progress/scroll-progress.component.js.map +1 -1
  395. package/dist/components/search/search.component.d.ts +6 -1
  396. package/dist/components/search/search.component.js.map +1 -1
  397. package/dist/components/select/select.component.d.ts +47 -0
  398. package/dist/components/select/select.component.js +268 -157
  399. package/dist/components/select/select.component.js.map +1 -1
  400. package/dist/components/select/select.scss.js +1 -1
  401. package/dist/components/sidenav/sidenav-group.component.d.ts +1 -0
  402. package/dist/components/sidenav/sidenav-group.component.js +11 -14
  403. package/dist/components/sidenav/sidenav-group.component.js.map +1 -1
  404. package/dist/components/sidenav/sidenav-item.component.js +20 -23
  405. package/dist/components/sidenav/sidenav-item.component.js.map +1 -1
  406. package/dist/components/sidenav/sidenav.component.js +17 -20
  407. package/dist/components/sidenav/sidenav.component.js.map +1 -1
  408. package/dist/components/skeleton/skeleton.component.js +9 -12
  409. package/dist/components/skeleton/skeleton.component.js.map +1 -1
  410. package/dist/components/skip-link/skip-link.component.js +13 -16
  411. package/dist/components/skip-link/skip-link.component.js.map +1 -1
  412. package/dist/components/snackbar/snackbar-message.component.d.ts +3 -1
  413. package/dist/components/snackbar/snackbar-message.component.js +39 -44
  414. package/dist/components/snackbar/snackbar-message.component.js.map +1 -1
  415. package/dist/components/snackbar/snackbar.component.d.ts +0 -1
  416. package/dist/components/snackbar/snackbar.component.js +36 -42
  417. package/dist/components/snackbar/snackbar.component.js.map +1 -1
  418. package/dist/components/spinner/spinner.component.js +33 -38
  419. package/dist/components/spinner/spinner.component.js.map +1 -1
  420. package/dist/components/stack/stack.component.d.ts +2 -1
  421. package/dist/components/stack/stack.component.js +16 -19
  422. package/dist/components/stack/stack.component.js.map +1 -1
  423. package/dist/components/switch/switch.component.d.ts +6 -0
  424. package/dist/components/switch/switch.component.js +48 -51
  425. package/dist/components/switch/switch.component.js.map +1 -1
  426. package/dist/components/switch/switch.scss.js +1 -1
  427. package/dist/components/tab/tab-group.component.d.ts +8 -3
  428. package/dist/components/tab/tab-group.component.js +43 -33
  429. package/dist/components/tab/tab-group.component.js.map +1 -1
  430. package/dist/components/tab/tab.component.js +22 -25
  431. package/dist/components/tab/tab.component.js.map +1 -1
  432. package/dist/components/table/table-cell.component.d.ts +1 -1
  433. package/dist/components/table/table-cell.component.js +16 -19
  434. package/dist/components/table/table-cell.component.js.map +1 -1
  435. package/dist/components/table/table-header.component.js +21 -24
  436. package/dist/components/table/table-header.component.js.map +1 -1
  437. package/dist/components/table/table-row.component.js +15 -18
  438. package/dist/components/table/table-row.component.js.map +1 -1
  439. package/dist/components/table/table.component.d.ts +2 -0
  440. package/dist/components/table/table.component.js +18 -22
  441. package/dist/components/table/table.component.js.map +1 -1
  442. package/dist/components/textarea/textarea.component.d.ts +2 -0
  443. package/dist/components/textarea/textarea.component.js +42 -46
  444. package/dist/components/textarea/textarea.component.js.map +1 -1
  445. package/dist/components/textarea/textarea.scss.js +1 -1
  446. package/dist/components/timeline/timeline-item.component.js +7 -10
  447. package/dist/components/timeline/timeline-item.component.js.map +1 -1
  448. package/dist/components/timeline/timeline.component.js +5 -8
  449. package/dist/components/timeline/timeline.component.js.map +1 -1
  450. package/dist/components/timepicker/time-grid.component.d.ts +3 -0
  451. package/dist/components/timepicker/time-grid.component.js +12 -15
  452. package/dist/components/timepicker/time-grid.component.js.map +1 -1
  453. package/dist/components/timepicker/timepicker.component.d.ts +7 -0
  454. package/dist/components/timepicker/timepicker.component.js +83 -85
  455. package/dist/components/timepicker/timepicker.component.js.map +1 -1
  456. package/dist/components/timepicker/timepicker.scss.js +1 -1
  457. package/dist/components/toc/toc.component.d.ts +2 -0
  458. package/dist/components/toc/toc.component.js +58 -61
  459. package/dist/components/toc/toc.component.js.map +1 -1
  460. package/dist/components/toggle-button/toggle-button.component.js +9 -12
  461. package/dist/components/toggle-button/toggle-button.component.js.map +1 -1
  462. package/dist/components/tooltip/tooltip.component.d.ts +2 -0
  463. package/dist/components/tooltip/tooltip.component.js +16 -18
  464. package/dist/components/tooltip/tooltip.component.js.map +1 -1
  465. package/dist/components/tray/tray.component.d.ts +4 -1
  466. package/dist/components/tray/tray.component.js +13 -16
  467. package/dist/components/tray/tray.component.js.map +1 -1
  468. package/dist/components/typography/typography.component.js +38 -41
  469. package/dist/components/typography/typography.component.js.map +1 -1
  470. package/dist/components.d.ts +3 -0
  471. package/dist/components.js +204 -195
  472. package/dist/components.js.map +1 -1
  473. package/dist/components.native.css +5 -2
  474. package/dist/components.native.css.map +1 -1
  475. package/dist/dap-design-system.d.ts +3 -0
  476. package/dist/dds-preupgrade.css +57 -0
  477. package/dist/dds.js +383 -374
  478. package/dist/dds.js.map +1 -1
  479. package/dist/internal/dds-hu-element.d.ts +8 -0
  480. package/dist/internal/dds-hu-element.js +40 -41
  481. package/dist/internal/dds-hu-element.js.map +1 -1
  482. package/dist/internal/mixin/choiceElementMixin.js +7 -7
  483. package/dist/internal/mixin/feedbackMixin.js +13 -15
  484. package/dist/internal/mixin/feedbackMixin.js.map +1 -1
  485. package/dist/internal/mixin/focusableMixin.js +6 -6
  486. package/dist/internal/mixin/formElementMixin.d.ts +1 -0
  487. package/dist/internal/mixin/formElementMixin.js +1 -1
  488. package/dist/internal/mixin/formElementMixin.js.map +1 -1
  489. package/dist/internal/mixin/labelPositionedMixin.js +1 -1
  490. package/dist/internal/mixin/labelableMixin.d.ts +1 -1
  491. package/dist/internal/mixin/labelableMixin.js +61 -63
  492. package/dist/internal/mixin/labelableMixin.js.map +1 -1
  493. package/dist/internal/mixin/sizedMixin.js +29 -27
  494. package/dist/internal/mixin/sizedMixin.js.map +1 -1
  495. package/dist/internal/templates/formLabel.d.ts +41 -0
  496. package/dist/internal/templates/formLabel.js +47 -0
  497. package/dist/internal/templates/formLabel.js.map +1 -0
  498. package/dist/localization/localization.d.ts +1 -2
  499. package/dist/localization/localization.js +77 -76
  500. package/dist/localization/localization.js.map +1 -1
  501. package/dist/localization/localize-controller.d.ts +12 -0
  502. package/dist/localization/localize-controller.js +51 -0
  503. package/dist/localization/localize-controller.js.map +1 -0
  504. package/dist/manifest/types/vue/index.d.ts +436 -221
  505. package/dist/manifest/vscode.html-custom-data.json +271 -217
  506. package/dist/manifest/web-types.json +549 -445
  507. package/dist/react/dap-ds-accordion/index.d.ts +1 -0
  508. package/dist/react/dap-ds-accordion/index.js.map +1 -1
  509. package/dist/react/dap-ds-anchor-heading/index.d.ts +1 -0
  510. package/dist/react/dap-ds-anchor-heading/index.js.map +1 -1
  511. package/dist/react/dap-ds-banner/index.d.ts +1 -1
  512. package/dist/react/dap-ds-banner/index.js.map +1 -1
  513. package/dist/react/dap-ds-breadcrumb/index.d.ts +1 -1
  514. package/dist/react/dap-ds-breadcrumb/index.js.map +1 -1
  515. package/dist/react/dap-ds-button-group/index.d.ts +45 -0
  516. package/dist/react/dap-ds-button-group/index.js +15 -0
  517. package/dist/react/dap-ds-button-group/index.js.map +1 -0
  518. package/dist/react/dap-ds-button-group-separator/index.d.ts +24 -0
  519. package/dist/react/dap-ds-button-group-separator/index.js +15 -0
  520. package/dist/react/dap-ds-button-group-separator/index.js.map +1 -0
  521. package/dist/react/dap-ds-button-group-text/index.d.ts +30 -0
  522. package/dist/react/dap-ds-button-group-text/index.js +15 -0
  523. package/dist/react/dap-ds-button-group-text/index.js.map +1 -0
  524. package/dist/react/dap-ds-calendar/index.d.ts +3 -0
  525. package/dist/react/dap-ds-calendar/index.js.map +1 -1
  526. package/dist/react/dap-ds-callout/index.d.ts +1 -0
  527. package/dist/react/dap-ds-callout/index.js.map +1 -1
  528. package/dist/react/dap-ds-card/index.d.ts +1 -0
  529. package/dist/react/dap-ds-card/index.js.map +1 -1
  530. package/dist/react/dap-ds-checkbox/index.d.ts +7 -1
  531. package/dist/react/dap-ds-checkbox/index.js.map +1 -1
  532. package/dist/react/dap-ds-chip/index.d.ts +1 -0
  533. package/dist/react/dap-ds-chip/index.js.map +1 -1
  534. package/dist/react/dap-ds-code-puncher/index.d.ts +4 -0
  535. package/dist/react/dap-ds-code-puncher/index.js.map +1 -1
  536. package/dist/react/dap-ds-combobox/index.d.ts +9 -1
  537. package/dist/react/dap-ds-combobox/index.js.map +1 -1
  538. package/dist/react/dap-ds-command/index.d.ts +3 -0
  539. package/dist/react/dap-ds-command/index.js.map +1 -1
  540. package/dist/react/dap-ds-copybox-input/index.d.ts +11 -0
  541. package/dist/react/dap-ds-copybox-input/index.js.map +1 -1
  542. package/dist/react/dap-ds-datatable/index.d.ts +17 -0
  543. package/dist/react/dap-ds-datatable/index.js.map +1 -1
  544. package/dist/react/dap-ds-datepicker/index.d.ts +8 -0
  545. package/dist/react/dap-ds-datepicker/index.js.map +1 -1
  546. package/dist/react/dap-ds-file-input/index.d.ts +3 -0
  547. package/dist/react/dap-ds-file-input/index.js.map +1 -1
  548. package/dist/react/dap-ds-file-input-list-item/index.d.ts +1 -0
  549. package/dist/react/dap-ds-file-input-list-item/index.js.map +1 -1
  550. package/dist/react/dap-ds-form-label/index.d.ts +1 -1
  551. package/dist/react/dap-ds-form-label/index.js.map +1 -1
  552. package/dist/react/dap-ds-icon-button/index.d.ts +1 -0
  553. package/dist/react/dap-ds-icon-button/index.js.map +1 -1
  554. package/dist/react/dap-ds-input-group/index.d.ts +4 -0
  555. package/dist/react/dap-ds-input-group/index.js.map +1 -1
  556. package/dist/react/dap-ds-list-item/index.d.ts +2 -0
  557. package/dist/react/dap-ds-list-item/index.js.map +1 -1
  558. package/dist/react/dap-ds-number-input/index.d.ts +7 -0
  559. package/dist/react/dap-ds-number-input/index.js.map +1 -1
  560. package/dist/react/dap-ds-official-website-banner/index.d.ts +1 -0
  561. package/dist/react/dap-ds-official-website-banner/index.js.map +1 -1
  562. package/dist/react/dap-ds-option-item/index.d.ts +1 -0
  563. package/dist/react/dap-ds-option-item/index.js.map +1 -1
  564. package/dist/react/dap-ds-option-list/index.d.ts +1 -1
  565. package/dist/react/dap-ds-option-list/index.js.map +1 -1
  566. package/dist/react/dap-ds-password-input/index.d.ts +12 -5
  567. package/dist/react/dap-ds-password-input/index.js.map +1 -1
  568. package/dist/react/dap-ds-radio-button/index.d.ts +5 -0
  569. package/dist/react/dap-ds-radio-button/index.js.map +1 -1
  570. package/dist/react/dap-ds-radio-group/index.d.ts +5 -0
  571. package/dist/react/dap-ds-radio-group/index.js.map +1 -1
  572. package/dist/react/dap-ds-scroll-area/index.d.ts +2 -1
  573. package/dist/react/dap-ds-scroll-area/index.js.map +1 -1
  574. package/dist/react/dap-ds-search/index.d.ts +6 -1
  575. package/dist/react/dap-ds-search/index.js.map +1 -1
  576. package/dist/react/dap-ds-select/index.d.ts +6 -0
  577. package/dist/react/dap-ds-select/index.js.map +1 -1
  578. package/dist/react/dap-ds-sidenav-group/index.d.ts +1 -0
  579. package/dist/react/dap-ds-sidenav-group/index.js.map +1 -1
  580. package/dist/react/dap-ds-snackbar/index.d.ts +0 -1
  581. package/dist/react/dap-ds-snackbar/index.js.map +1 -1
  582. package/dist/react/dap-ds-snackbar-message/index.d.ts +3 -1
  583. package/dist/react/dap-ds-snackbar-message/index.js.map +1 -1
  584. package/dist/react/dap-ds-stack/index.d.ts +2 -1
  585. package/dist/react/dap-ds-stack/index.js.map +1 -1
  586. package/dist/react/dap-ds-switch/index.d.ts +6 -0
  587. package/dist/react/dap-ds-switch/index.js.map +1 -1
  588. package/dist/react/dap-ds-tab-group/index.d.ts +4 -2
  589. package/dist/react/dap-ds-tab-group/index.js.map +1 -1
  590. package/dist/react/dap-ds-table/index.d.ts +2 -0
  591. package/dist/react/dap-ds-table/index.js.map +1 -1
  592. package/dist/react/dap-ds-table-cell/index.d.ts +1 -1
  593. package/dist/react/dap-ds-table-cell/index.js.map +1 -1
  594. package/dist/react/dap-ds-textarea/index.d.ts +2 -0
  595. package/dist/react/dap-ds-textarea/index.js.map +1 -1
  596. package/dist/react/dap-ds-time-grid/index.d.ts +3 -0
  597. package/dist/react/dap-ds-time-grid/index.js.map +1 -1
  598. package/dist/react/dap-ds-timepicker/index.d.ts +5 -0
  599. package/dist/react/dap-ds-timepicker/index.js.map +1 -1
  600. package/dist/react/dap-ds-toc/index.d.ts +2 -0
  601. package/dist/react/dap-ds-toc/index.js.map +1 -1
  602. package/dist/react/dap-ds-tooltip/index.d.ts +2 -0
  603. package/dist/react/dap-ds-tooltip/index.js.map +1 -1
  604. package/dist/react/dap-ds-tray/index.d.ts +4 -1
  605. package/dist/react/dap-ds-tray/index.js.map +1 -1
  606. package/dist/react/index.d.ts +8 -5
  607. package/dist/react-types.ts +8 -5
  608. package/dist/react.js +368 -362
  609. package/dist/react.js.map +1 -1
  610. package/package.json +14 -3
  611. package/dist/node_modules/@lit/context/lib/context-request-event.js +0 -14
  612. package/dist/node_modules/@lit/context/lib/context-request-event.js.map +0 -1
  613. package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js +0 -31
  614. package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js.map +0 -1
  615. package/dist/node_modules/@lit/context/lib/controllers/context-provider.js +0 -40
  616. package/dist/node_modules/@lit/context/lib/controllers/context-provider.js.map +0 -1
  617. package/dist/node_modules/@lit/context/lib/create-context.js +0 -12
  618. package/dist/node_modules/@lit/context/lib/create-context.js.map +0 -1
  619. package/dist/node_modules/@lit/context/lib/value-notifier.js +0 -37
  620. package/dist/node_modules/@lit/context/lib/value-notifier.js.map +0 -1
  621. package/dist/node_modules/@lit/reactive-element/css-tag.js +0 -51
  622. package/dist/node_modules/@lit/reactive-element/css-tag.js.map +0 -1
  623. package/dist/node_modules/@lit/reactive-element/decorators/base.js +0 -10
  624. package/dist/node_modules/@lit/reactive-element/decorators/base.js.map +0 -1
  625. package/dist/node_modules/@lit/reactive-element/decorators/property.js +0 -38
  626. package/dist/node_modules/@lit/reactive-element/decorators/property.js.map +0 -1
  627. package/dist/node_modules/@lit/reactive-element/decorators/query-all.js +0 -17
  628. package/dist/node_modules/@lit/reactive-element/decorators/query-all.js.map +0 -1
  629. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js +0 -20
  630. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js.map +0 -1
  631. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js +0 -20
  632. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js.map +0 -1
  633. package/dist/node_modules/@lit/reactive-element/decorators/query.js +0 -21
  634. package/dist/node_modules/@lit/reactive-element/decorators/query.js.map +0 -1
  635. package/dist/node_modules/@lit/reactive-element/decorators/state.js +0 -25
  636. package/dist/node_modules/@lit/reactive-element/decorators/state.js.map +0 -1
  637. package/dist/node_modules/@lit/reactive-element/reactive-element.js +0 -276
  638. package/dist/node_modules/@lit/reactive-element/reactive-element.js.map +0 -1
  639. package/dist/node_modules/lit-element/lit-element.js +0 -53
  640. package/dist/node_modules/lit-element/lit-element.js.map +0 -1
  641. package/dist/node_modules/lit-html/async-directive.js +0 -71
  642. package/dist/node_modules/lit-html/async-directive.js.map +0 -1
  643. package/dist/node_modules/lit-html/directive-helpers.js +0 -46
  644. package/dist/node_modules/lit-html/directive-helpers.js.map +0 -1
  645. package/dist/node_modules/lit-html/directive.js +0 -28
  646. package/dist/node_modules/lit-html/directive.js.map +0 -1
  647. package/dist/node_modules/lit-html/directives/if-defined.js +0 -11
  648. package/dist/node_modules/lit-html/directives/if-defined.js.map +0 -1
  649. package/dist/node_modules/lit-html/directives/map.js +0 -15
  650. package/dist/node_modules/lit-html/directives/map.js.map +0 -1
  651. package/dist/node_modules/lit-html/directives/repeat.js +0 -63
  652. package/dist/node_modules/lit-html/directives/repeat.js.map +0 -1
  653. package/dist/node_modules/lit-html/directives/style-map.js +0 -37
  654. package/dist/node_modules/lit-html/directives/style-map.js.map +0 -1
  655. package/dist/node_modules/lit-html/lit-html.js +0 -249
  656. package/dist/node_modules/lit-html/lit-html.js.map +0 -1
  657. package/dist/node_modules/lit-html/static.js +0 -34
  658. package/dist/node_modules/lit-html/static.js.map +0 -1
  659. package/dist/node_modules/lit-i18n/src/lit-i18n.js +0 -95
  660. package/dist/node_modules/lit-i18n/src/lit-i18n.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"toc.component.js","sources":["../../../src/components/toc/toc.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { anchorClass } from '@/common/const'\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\nimport { t } from '@/localization/localization'\n\nimport styles from './toc.scss?inline'\n\ntype Heading = { level: number; id: any; text: any }\n\n/**\n * `dap-ds-toc`\n * @summary A table of contents (TOC) is a list of links that allows users to quickly navigate to sections within a document.\n * @element dap-ds-toc\n * @title - toc\n *\n * @property { 'xs' | 'sm' | 'md' | 'lg' } size - The size of the TOC. Default is `lg.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @event {{ selectedItem: HTMLAnchorElement, anchorElement: IntersectionObserverEntry | HTMLElement }} dds-anchor-change - Event that is triggered when the anchor changes.\n *\n * @csspart base - The main container of the toc.\n *\n * @cssproperty --dds-toc-border-width - Width of the TOC border. (default: var(--dds-border-width-base))\n * @cssproperty --dds-toc-border-color - Color of the TOC border. (default: var(--dds-border-neutral-divider))\n * @cssproperty --dds-toc-title-color - Color of the TOC title. (default: var(--dds-text-neutral-strong))\n * @cssproperty --dds-toc-title-font-size - Font size of the TOC title. (default: var(--dds-font-base))\n * @cssproperty --dds-toc-title-font-weight - Font weight of the TOC title. (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-toc-title-line-height - Line height of the TOC title. (default: 1.25)\n * @cssproperty --dds-toc-link-color - Color of the TOC links. (default: var(--dds-button-subtle-text-neutral-enabled))\n * @cssproperty --dds-toc-link-active-color - Color of the active TOC link. (default: var(--dds-button-subtle-text-enabled))\n * @cssproperty --dds-toc-link-border-color - Border color of the active TOC link. (default: var(--dds-border-brand-base))\n * @cssproperty --dds-toc-link-line-height - Line height of the TOC links. (default: 1.2)\n * @cssproperty --dds-toc-link-padding - Padding of the TOC links. (default: var(--dds-spacing-200))\n * @cssproperty --dds-toc-indent-level-0 - Indent level of the TOC items. (default: var(--dds-spacing-400))\n * @cssproperty --dds-toc-indent-level-1 - Indent level of the TOC items. (default: var(--dds-spacing-800))\n * @cssproperty --dds-toc-indent-level-2 - Indent level of the TOC items. (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toc-indent-level-3 - Indent level of the TOC items. (default: var(--dds-spacing-1600))\n * @cssproperty --dds-toc-indent-level-4 - Indent level of the TOC items. (default: var(--dds-spacing-2000))\n * @cssproperty --dds-toc-indent-level-5 - Indent level of the TOC items. (default: var(--dds-spacing-2400))\n */\nexport default class DapDSTOC extends SizedMixin(DdsElement) {\n static tagName = 'dap-ds-toc'\n\n /** The root element to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#root) */\n @property() root: string = ''\n\n /** The margin around the root element to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#rootmargin) */\n @property() rootMargin: string = '0px 0px -80% 0px'\n\n /** The margin around the last anchor to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#rootmargin) */\n @property() lastAnchorRootMargin: string = '0px 0px -50% 0px'\n /** The threshold to trigger [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#threshold) */\n @property({ type: Array }) threshold: number[] = [0, 0.1, 0.25, 0.5, 0.75, 1]\n\n /** The minimum heading level to include in the TOC. The default value is `2`. */\n @property({ type: Number }) minHeadingLevel: number = 2\n\n /** The maximum heading level to include in the TOC. The default value is `3`. */\n @property({ type: Number }) maxHeadingLevel: number = 3\n\n /** Whether to indent the TOC items. */\n @property({ type: Boolean }) noIndent: boolean = false\n\n /** The header of the TOC. */\n @property() header: string\n\n private _observer: IntersectionObserver\n private _lastAnchorObserver: IntersectionObserver\n private _anchors: HTMLElement[]\n private _activeAnchor: HTMLAnchorElement\n private _selectors: string[] = []\n private _items: Heading[]\n private _intersectionData: Map<\n HTMLElement,\n {\n isIntersecting: boolean\n intersectionRatio: number\n boundingRect: DOMRect\n }\n > = new Map()\n private _debounceTimer: number | null = null\n\n static readonly styles = unsafeCSS(styles)\n\n constructor() {\n super()\n // Use multiple thresholds for more precise intersection detection\n this.threshold = [0.1]\n this.size = 'lg'\n }\n\n get activeAnchor() {\n return this._activeAnchor\n }\n\n get anchors() {\n return this._anchors\n }\n\n get items() {\n return this._items\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n const options = {\n root: this.root ? document.querySelector(this.root) : null,\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n }\n\n this._observer = new IntersectionObserver(this._handleIntersect, options)\n\n this._lastAnchorObserver = new IntersectionObserver(this._handleIntersect, {\n ...options,\n rootMargin: this.lastAnchorRootMargin,\n })\n\n window.addEventListener('scroll', this.onScroll)\n }\n\n protected async firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): Promise<void> {\n super.firstUpdated(_changedProperties)\n await this.renderTree()\n }\n\n async attributeChangedCallback(name: string, oldValue: any, newValue: any) {\n super.attributeChangedCallback(name, oldValue, newValue)\n await this.renderTree()\n }\n\n async updated(changedProperties: Map<PropertyKey, unknown>) {\n super.updated(changedProperties)\n await this.renderTree()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this._observer) {\n this._observer?.disconnect()\n this._lastAnchorObserver?.disconnect()\n window.removeEventListener('scroll', this.onScroll)\n }\n }\n\n private readonly onScroll = () => {\n if (\n this._anchors &&\n this._anchors.length > 0 &&\n Math.round(window.scrollY + window.innerHeight) ===\n document.body.scrollHeight\n ) {\n const entry = this._anchors[this._anchors.length - 1]\n const link = this.shadowRoot!.querySelector(`[href=\"#${entry.id}\"`)\n if (link) {\n this.setActiveAnchor(link as HTMLAnchorElement, link as HTMLElement)\n }\n }\n }\n\n async renderTree() {\n this._anchors = this.getAnchors(\n !this.minHeadingLevel ? 2 : this.minHeadingLevel,\n !this.maxHeadingLevel ? 3 : this.maxHeadingLevel,\n )\n\n if (this._anchors.length === 0 || !this._anchors) {\n return\n }\n\n this._anchors.forEach((anchor, index) => {\n if (index === this._anchors.length - 1)\n this._lastAnchorObserver?.observe(anchor)\n else {\n this._observer?.observe(anchor)\n }\n })\n\n this._items = await this.getHeaders()\n const tree = this.buildTree(this._items)\n\n const baseElement = document.createElement('div')\n baseElement.setAttribute('part', 'base')\n baseElement.classList.add('toc')\n\n const base = `\n <span class=\"toc-title toc-title--${this.effectiveSize}\">${this.header ?? t('tocTitle')}</span>\n <nav aria-label='${this.header ?? t('tocTitle')}''>${tree}</nav>`\n\n baseElement.innerHTML = base\n\n if (!this.shadowRoot) return\n\n this.shadowRoot.removeChild(this.shadowRoot.childNodes[0])\n this.shadowRoot.appendChild(baseElement)\n }\n\n getAnchors(minHeadingLevel: number, maxHeadingLevel: number): HTMLElement[] {\n this._selectors = []\n for (let i = minHeadingLevel; i <= maxHeadingLevel; i += 1) {\n this._selectors.push(`h${i}.${anchorClass}`)\n this._selectors.push(`dap-ds-typography[variant=h${i}][anchor]`)\n }\n\n return Array.from(document.querySelectorAll(this._selectors.join()))\n }\n\n setActiveAnchor(\n element: HTMLAnchorElement,\n entry: IntersectionObserverEntry | HTMLElement,\n ) {\n this._activeAnchor?.removeAttribute('aria-current')\n element.setAttribute('aria-current', 'true')\n this._activeAnchor = element\n\n this.emit('dds-anchor-change', {\n selectedItem: element,\n anchorElement: entry,\n })\n }\n\n private readonly getHeaders = async () => {\n const headers: Heading[] = []\n\n await this._anchors.forEach(async (el, index) => {\n await (el as any).updateComplete\n\n const textContent =\n el.getAttribute('data-text') ||\n el.innerText?.trim() ||\n el.textContent?.trim() ||\n ''\n const id =\n el.id ||\n el.innerText?.toLowerCase().split(' ').join('-') ||\n textContent.toLowerCase().split(' ').join('-')\n\n if (!el.id && id) {\n let count = 0\n\n if (this._anchors.some(anchor => anchor.id === id)) {\n count++\n }\n\n while (this._anchors.some(anchor => anchor.id === `${id}-${count}`)) {\n count++\n }\n\n if (count === 0) {\n el.setAttribute('id', id)\n } else {\n el.setAttribute('id', `${id}-${count}`)\n }\n }\n\n let level = this._selectors.indexOf(\n `${el.tagName.toLowerCase()}.${anchorClass}`,\n )\n\n if (level === -1) {\n level = this._selectors.indexOf(\n `dap-ds-typography[variant=${el.getAttribute('variant')}][anchor]`,\n )\n }\n\n headers[index] = {\n id,\n text: textContent,\n level: Math.floor(level / 2),\n }\n })\n\n return headers\n }\n\n buildTree(headers: any[]) {\n const list: string[] = []\n let nextLevelHeaders: any[] = []\n let lastLevel = -1\n\n if (headers.length === 0) {\n return ''\n }\n\n const buildSubTree = () => {\n if (nextLevelHeaders.length > 0) {\n list[list.length - 1] += this.buildTree(nextLevelHeaders)\n }\n }\n\n headers.forEach((h: Heading) => {\n if (lastLevel !== -1 && lastLevel < h.level) {\n nextLevelHeaders.push(h)\n return\n }\n\n buildSubTree()\n\n lastLevel = h.level\n list.push(\n `<a href=\"#${h.id}\" class=\"toc-link toc-link--${this.effectiveSize}\">${h.text}<span class=\"toc-link__high-contrast\"></span></a>`,\n )\n nextLevelHeaders = []\n })\n\n buildSubTree()\n\n const listHTML = list\n .map(\n i => `<li class=\"toc-item ${'toc-item-level-' + lastLevel}\">${i}</li>`,\n )\n .join('')\n\n return `<ul class=\"${clsx({\n 'toc--no-indent': this.noIndent,\n })}\">${listHTML}</ul>`\n }\n\n private readonly _handleIntersect = (\n entries: IntersectionObserverEntry[],\n ) => {\n // Update intersection data for all entries\n entries.forEach(entry => {\n this._intersectionData.set(entry.target as HTMLElement, {\n isIntersecting: entry.isIntersecting,\n intersectionRatio: entry.intersectionRatio,\n boundingRect: entry.boundingClientRect,\n })\n })\n\n // Debounce the active anchor selection to prevent rapid changes\n if (this._debounceTimer) {\n clearTimeout(this._debounceTimer)\n }\n\n this._debounceTimer = window.setTimeout(() => {\n this._updateActiveAnchor()\n }, 50) // 50ms debounce\n }\n\n private readonly _updateActiveAnchor = () => {\n const viewportCenter = window.innerHeight / 2\n let bestAnchor: HTMLElement | null = null\n let bestScore = -Infinity\n\n // Find the best anchor based on intersection ratio and distance from viewport center\n this._intersectionData.forEach((data, anchor) => {\n if (!data.isIntersecting) return\n\n const distanceFromCenter = Math.abs(\n data.boundingRect.top + data.boundingRect.height / 2 - viewportCenter,\n )\n const intersectionScore = data.intersectionRatio\n\n // Calculate a score that prioritizes elements closer to viewport center\n // and with higher intersection ratios\n const score =\n intersectionScore - (distanceFromCenter / window.innerHeight) * 0.5\n\n if (score > bestScore) {\n bestScore = score\n bestAnchor = anchor as HTMLElement\n }\n })\n\n if (bestAnchor && (bestAnchor as HTMLElement).id) {\n const link = this.shadowRoot!.querySelector(\n `[href=\"#${(bestAnchor as HTMLElement).id}\"`,\n )\n if (link && link !== this._activeAnchor) {\n this.setActiveAnchor(\n link as HTMLAnchorElement,\n bestAnchor as HTMLElement,\n )\n }\n }\n }\n}\n"],"names":["_DapDSTOC","SizedMixin","DdsElement","entry","link","__async","headers","el","index","textContent","_a","_b","id","_c","count","anchor","level","anchorClass","entries","viewportCenter","bestAnchor","bestScore","data","distanceFromCenter","score","options","__spreadProps","__spreadValues","_changedProperties","__superGet","name","oldValue","newValue","changedProperties","tree","baseElement","base","t","minHeadingLevel","maxHeadingLevel","i","element","list","nextLevelHeaders","lastLevel","buildSubTree","h","listHTML","clsx","unsafeCSS","styles","DapDSTOC","__decorateClass","property"],"mappings":"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"}
1
+ {"version":3,"file":"toc.component.js","sources":["../../../src/components/toc/toc.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport { anchorClass } from '@/common/const'\nimport { DdsElement } from '@/internal/dds-hu-element'\nimport { SizedMixin } from '@/internal/mixin/sizedMixin'\nimport { t } from '@/localization/localization'\n\nimport styles from './toc.scss?inline'\n\ntype Heading = { level: number; id: any; text: any }\n\n/**\n * `dap-ds-toc`\n * @summary A table of contents (TOC) is a list of links that allows users to quickly navigate to sections within a document.\n * @element dap-ds-toc\n * @title - toc\n *\n * @property { 'xs' | 'sm' | 'md' | 'lg' } size - The size of the TOC. Default is `lg.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @event {{ selectedItem: HTMLAnchorElement, anchorElement: IntersectionObserverEntry | HTMLElement }} dds-anchor-change - Event that is triggered when the anchor changes.\n *\n * @csspart base - The main container of the toc.\n * @csspart title - The title of the toc.\n * @csspart nav - The navigation element holding the links.\n *\n * @cssproperty --dds-toc-border-width - Width of the TOC border. (default: var(--dds-border-width-base))\n * @cssproperty --dds-toc-border-color - Color of the TOC border. (default: var(--dds-border-neutral-divider))\n * @cssproperty --dds-toc-title-color - Color of the TOC title. (default: var(--dds-text-neutral-strong))\n * @cssproperty --dds-toc-title-font-size - Font size of the TOC title. (default: var(--dds-font-base))\n * @cssproperty --dds-toc-title-font-weight - Font weight of the TOC title. (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-toc-title-line-height - Line height of the TOC title. (default: 1.25)\n * @cssproperty --dds-toc-link-color - Color of the TOC links. (default: var(--dds-button-subtle-text-neutral-enabled))\n * @cssproperty --dds-toc-link-active-color - Color of the active TOC link. (default: var(--dds-button-subtle-text-enabled))\n * @cssproperty --dds-toc-link-border-color - Border color of the active TOC link. (default: var(--dds-border-brand-base))\n * @cssproperty --dds-toc-link-line-height - Line height of the TOC links. (default: 1.2)\n * @cssproperty --dds-toc-link-padding - Padding of the TOC links. (default: var(--dds-spacing-200))\n * @cssproperty --dds-toc-indent-level-0 - Indent level of the TOC items. (default: var(--dds-spacing-400))\n * @cssproperty --dds-toc-indent-level-1 - Indent level of the TOC items. (default: var(--dds-spacing-800))\n * @cssproperty --dds-toc-indent-level-2 - Indent level of the TOC items. (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toc-indent-level-3 - Indent level of the TOC items. (default: var(--dds-spacing-1600))\n * @cssproperty --dds-toc-indent-level-4 - Indent level of the TOC items. (default: var(--dds-spacing-2000))\n * @cssproperty --dds-toc-indent-level-5 - Indent level of the TOC items. (default: var(--dds-spacing-2400))\n */\nexport default class DapDSTOC extends SizedMixin(DdsElement) {\n static tagName = 'dap-ds-toc'\n\n /** The root element to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#root) */\n @property() root: string = ''\n\n /** The margin around the root element to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#rootmargin) */\n @property() rootMargin: string = '0px 0px -80% 0px'\n\n /** The margin around the last anchor to observe [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#rootmargin) */\n @property() lastAnchorRootMargin: string = '0px 0px -50% 0px'\n /** The threshold to trigger [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#threshold) */\n @property({ type: Array }) threshold: number[] = [0, 0.1, 0.25, 0.5, 0.75, 1]\n\n /** The minimum heading level to include in the TOC. The default value is `2`. */\n @property({ type: Number }) minHeadingLevel: number = 2\n\n /** The maximum heading level to include in the TOC. The default value is `3`. */\n @property({ type: Number }) maxHeadingLevel: number = 3\n\n /** Whether to indent the TOC items. */\n @property({ type: Boolean }) noIndent: boolean = false\n\n /** The header of the TOC. */\n @property() header: string\n\n private _observer: IntersectionObserver\n private _lastAnchorObserver: IntersectionObserver\n private _anchors: HTMLElement[]\n private _activeAnchor: HTMLAnchorElement\n private _selectors: string[] = []\n private _items: Heading[]\n private _intersectionData: Map<\n HTMLElement,\n {\n isIntersecting: boolean\n intersectionRatio: number\n boundingRect: DOMRect\n }\n > = new Map()\n private _debounceTimer: number | null = null\n\n static readonly styles = unsafeCSS(styles)\n\n constructor() {\n super()\n // Use multiple thresholds for more precise intersection detection\n this.threshold = [0.1]\n this.size = 'lg'\n }\n\n get activeAnchor() {\n return this._activeAnchor\n }\n\n get anchors() {\n return this._anchors\n }\n\n get items() {\n return this._items\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n const options = {\n root: this.root ? document.querySelector(this.root) : null,\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n }\n\n this._observer = new IntersectionObserver(this._handleIntersect, options)\n\n this._lastAnchorObserver = new IntersectionObserver(this._handleIntersect, {\n ...options,\n rootMargin: this.lastAnchorRootMargin,\n })\n\n window.addEventListener('scroll', this.onScroll)\n }\n\n protected async firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): Promise<void> {\n super.firstUpdated(_changedProperties)\n await this.renderTree()\n }\n\n async attributeChangedCallback(name: string, oldValue: any, newValue: any) {\n super.attributeChangedCallback(name, oldValue, newValue)\n await this.renderTree()\n }\n\n async updated(changedProperties: Map<PropertyKey, unknown>) {\n super.updated(changedProperties)\n await this.renderTree()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this._observer) {\n this._observer?.disconnect()\n this._lastAnchorObserver?.disconnect()\n window.removeEventListener('scroll', this.onScroll)\n }\n }\n\n private readonly onScroll = () => {\n if (\n this._anchors &&\n this._anchors.length > 0 &&\n Math.round(window.scrollY + window.innerHeight) ===\n document.body.scrollHeight\n ) {\n const entry = this._anchors[this._anchors.length - 1]\n const link = this.shadowRoot!.querySelector(`[href=\"#${entry.id}\"`)\n if (link) {\n this.setActiveAnchor(link as HTMLAnchorElement, link as HTMLElement)\n }\n }\n }\n\n async renderTree() {\n this._anchors = this.getAnchors(\n !this.minHeadingLevel ? 2 : this.minHeadingLevel,\n !this.maxHeadingLevel ? 3 : this.maxHeadingLevel,\n )\n\n if (this._anchors.length === 0 || !this._anchors) {\n return\n }\n\n this._anchors.forEach((anchor, index) => {\n if (index === this._anchors.length - 1)\n this._lastAnchorObserver?.observe(anchor)\n else {\n this._observer?.observe(anchor)\n }\n })\n\n this._items = await this.getHeaders()\n const tree = this.buildTree(this._items)\n\n const baseElement = document.createElement('div')\n baseElement.setAttribute('part', 'base')\n baseElement.classList.add('toc')\n\n const base = `\n <span part=\"title\" class=\"toc-title toc-title--${this.effectiveSize}\">${this.header ?? t('tocTitle')}</span>\n <nav part=\"nav\" aria-label='${this.header ?? t('tocTitle')}'>${tree}</nav>`\n\n baseElement.innerHTML = base\n\n if (!this.shadowRoot) return\n\n // Idempotent: remove any previously-rendered toc base, then append the fresh\n // one. `renderTree` runs on firstUpdated + updated + attributeChangedCallback,\n // so removing `childNodes[0]` and appending (the old approach) accumulated\n // duplicate bases — most visibly under SSR hydration (triple-render).\n this.shadowRoot.querySelectorAll('.toc').forEach(node => node.remove())\n this.shadowRoot.appendChild(baseElement)\n }\n\n getAnchors(minHeadingLevel: number, maxHeadingLevel: number): HTMLElement[] {\n this._selectors = []\n for (let i = minHeadingLevel; i <= maxHeadingLevel; i += 1) {\n this._selectors.push(`h${i}.${anchorClass}`)\n this._selectors.push(`dap-ds-typography[variant=h${i}][anchor]`)\n }\n\n return Array.from(document.querySelectorAll(this._selectors.join()))\n }\n\n setActiveAnchor(\n element: HTMLAnchorElement,\n entry: IntersectionObserverEntry | HTMLElement,\n ) {\n this._activeAnchor?.removeAttribute('aria-current')\n element.setAttribute('aria-current', 'true')\n this._activeAnchor = element\n\n this.emit('dds-anchor-change', {\n selectedItem: element,\n anchorElement: entry,\n })\n }\n\n private readonly getHeaders = async () => {\n const headers: Heading[] = []\n\n await this._anchors.forEach(async (el, index) => {\n await (el as any).updateComplete\n\n const textContent =\n el.getAttribute('data-text') ||\n el.innerText?.trim() ||\n el.textContent?.trim() ||\n ''\n const id =\n el.id ||\n el.innerText?.toLowerCase().split(' ').join('-') ||\n textContent.toLowerCase().split(' ').join('-')\n\n if (!el.id && id) {\n let count = 0\n\n if (this._anchors.some(anchor => anchor.id === id)) {\n count++\n }\n\n while (this._anchors.some(anchor => anchor.id === `${id}-${count}`)) {\n count++\n }\n\n if (count === 0) {\n el.setAttribute('id', id)\n } else {\n el.setAttribute('id', `${id}-${count}`)\n }\n }\n\n let level = this._selectors.indexOf(\n `${el.tagName.toLowerCase()}.${anchorClass}`,\n )\n\n if (level === -1) {\n level = this._selectors.indexOf(\n `dap-ds-typography[variant=${el.getAttribute('variant')}][anchor]`,\n )\n }\n\n headers[index] = {\n id,\n text: textContent,\n level: Math.floor(level / 2),\n }\n })\n\n return headers\n }\n\n buildTree(headers: any[]) {\n const list: string[] = []\n let nextLevelHeaders: any[] = []\n let lastLevel = -1\n\n if (headers.length === 0) {\n return ''\n }\n\n const buildSubTree = () => {\n if (nextLevelHeaders.length > 0) {\n list[list.length - 1] += this.buildTree(nextLevelHeaders)\n }\n }\n\n headers.forEach((h: Heading) => {\n if (lastLevel !== -1 && lastLevel < h.level) {\n nextLevelHeaders.push(h)\n return\n }\n\n buildSubTree()\n\n lastLevel = h.level\n list.push(\n `<a href=\"#${h.id}\" class=\"toc-link toc-link--${this.effectiveSize}\">${h.text}<span class=\"toc-link__high-contrast\"></span></a>`,\n )\n nextLevelHeaders = []\n })\n\n buildSubTree()\n\n const listHTML = list\n .map(\n i => `<li class=\"toc-item ${'toc-item-level-' + lastLevel}\">${i}</li>`,\n )\n .join('')\n\n return `<ul class=\"${clsx({\n 'toc--no-indent': this.noIndent,\n })}\">${listHTML}</ul>`\n }\n\n private readonly _handleIntersect = (\n entries: IntersectionObserverEntry[],\n ) => {\n // Update intersection data for all entries\n entries.forEach(entry => {\n this._intersectionData.set(entry.target as HTMLElement, {\n isIntersecting: entry.isIntersecting,\n intersectionRatio: entry.intersectionRatio,\n boundingRect: entry.boundingClientRect,\n })\n })\n\n // Debounce the active anchor selection to prevent rapid changes\n if (this._debounceTimer) {\n clearTimeout(this._debounceTimer)\n }\n\n this._debounceTimer = window.setTimeout(() => {\n this._updateActiveAnchor()\n }, 50) // 50ms debounce\n }\n\n private readonly _updateActiveAnchor = () => {\n const viewportCenter = window.innerHeight / 2\n let bestAnchor: HTMLElement | null = null\n let bestScore = -Infinity\n\n // Find the best anchor based on intersection ratio and distance from viewport center\n this._intersectionData.forEach((data, anchor) => {\n if (!data.isIntersecting) return\n\n const distanceFromCenter = Math.abs(\n data.boundingRect.top + data.boundingRect.height / 2 - viewportCenter,\n )\n const intersectionScore = data.intersectionRatio\n\n // Calculate a score that prioritizes elements closer to viewport center\n // and with higher intersection ratios\n const score =\n intersectionScore - (distanceFromCenter / window.innerHeight) * 0.5\n\n if (score > bestScore) {\n bestScore = score\n bestAnchor = anchor as HTMLElement\n }\n })\n\n if (bestAnchor && (bestAnchor as HTMLElement).id) {\n const link = this.shadowRoot!.querySelector(\n `[href=\"#${(bestAnchor as HTMLElement).id}\"`,\n )\n if (link && link !== this._activeAnchor) {\n this.setActiveAnchor(\n link as HTMLAnchorElement,\n bestAnchor as HTMLElement,\n )\n }\n }\n }\n}\n"],"names":["_DapDSTOC","SizedMixin","DdsElement","entry","link","__async","headers","el","index","textContent","_a","_b","id","_c","count","anchor","level","anchorClass","entries","viewportCenter","bestAnchor","bestScore","data","distanceFromCenter","score","options","__spreadProps","__spreadValues","_changedProperties","__superGet","name","oldValue","newValue","changedProperties","tree","baseElement","base","t","node","minHeadingLevel","maxHeadingLevel","i","element","list","nextLevelHeaders","lastLevel","buildSubTree","h","listHTML","clsx","unsafeCSS","styles","DapDSTOC","__decorateClass","property"],"mappings":"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"}
@@ -1,19 +1,16 @@
1
1
  import { clsx as u } from "../../node_modules/clsx/dist/clsx.js";
2
- import "../../node_modules/@lit/reactive-element/reactive-element.js";
3
- import "../../node_modules/lit-html/lit-html.js";
4
- import "../../node_modules/lit-element/lit-element.js";
5
- import { property as a } from "../../node_modules/@lit/reactive-element/decorators/property.js";
6
- import { ifDefined as p } from "../../node_modules/lit-html/directives/if-defined.js";
7
- import { html as f } from "../../node_modules/lit-html/static.js";
8
- import { GenericFormElement as c } from "../../internal/mixin/genericFormElement.js";
9
- import b from "./_styles/toggle-button.scss.js";
10
- import { unsafeCSS as m } from "../../node_modules/@lit/reactive-element/css-tag.js";
2
+ import { unsafeCSS as f } from "lit";
3
+ import { property as a } from "lit/decorators.js";
4
+ import { ifDefined as p } from "lit/directives/if-defined.js";
5
+ import { html as c } from "lit/static-html.js";
6
+ import { GenericFormElement as b } from "../../internal/mixin/genericFormElement.js";
7
+ import m from "./_styles/toggle-button.scss.js";
11
8
  var g = Object.defineProperty, l = (d, t, i, h) => {
12
9
  for (var e = void 0, o = d.length - 1, n; o >= 0; o--)
13
10
  (n = d[o]) && (e = n(t, i, e) || e);
14
11
  return e && g(t, i, e), e;
15
12
  };
16
- const r = class r extends c {
13
+ const r = class r extends b {
17
14
  constructor() {
18
15
  super(), this.active = !1, this.shape = "button", this.sizeChildren = "true", this.size = "md";
19
16
  }
@@ -43,7 +40,7 @@ const r = class r extends c {
43
40
  this.disabled;
44
41
  }
45
42
  render() {
46
- return f`
43
+ return c`
47
44
  <button
48
45
  part="base"
49
46
  .disabled=${this.disabled}
@@ -68,7 +65,7 @@ const r = class r extends c {
68
65
  `;
69
66
  }
70
67
  };
71
- r.tagName = "dap-ds-toggle-button", r.styles = m(b);
68
+ r.tagName = "dap-ds-toggle-button", r.styles = f(m);
72
69
  let s = r;
73
70
  l([
74
71
  a({ type: Boolean, reflect: !0 })
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-button.component.js","sources":["../../../src/components/toggle-button/toggle-button.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { PropertyValues, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport { ButtonShape } from '../../common/types'\nimport styles from './_styles/toggle-button.scss?inline'\n\n/**\n * `dap-ds-toggle-button` is a custom toggle button component.\n * @element dap-ds-toggle-button\n * @summary A toggle button is a button that can be toggled on (active) or off (inactive).\n * @title - Toggle button\n *\n * @property { 'xs' | 'sm' | 'md' | 'lg' } size - The size of the toggle button. Default is `md`\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\")\n *\n * @slot - The content of the toggle button.\n *\n * @csspart base - The main button container.\n * @csspart high-contrast - The high contrast part of the button.\n *\n * @cssproperty --dds-toggle-button-min-width-lg - Minimum width of the large toggle button (default: var(--dds-spacing-2400))\n * @cssproperty --dds-toggle-button-min-width-md - Minimum width of the medium toggle button (default: var(--dds-spacing-2000))\n * @cssproperty --dds-toggle-button-min-width-sm - Minimum width of the small toggle button (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toggle-button-min-width-xs - Minimum width of the extra small toggle button (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toggle-button-height-lg - Height of the large toggle button (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toggle-button-height-md - Height of the medium toggle button (default: var(--dds-spacing-1000))\n * @cssproperty --dds-toggle-button-height-sm - Height of the small toggle button (default: var(--dds-spacing-800))\n * @cssproperty --dds-toggle-button-height-xs - Height of the extra small toggle button (default: var(--dds-spacing-600))\n * @cssproperty --dds-toggle-button-padding-lg - Padding of the large toggle button (default: var(--dds-spacing-300) var(--dds-spacing-400))\n * @cssproperty --dds-toggle-button-padding-md - Padding of the medium toggle button (default: var(--dds-spacing-300))\n * @cssproperty --dds-toggle-button-padding-sm - Padding of the small toggle button (default: var(--dds-spacing-200))\n * @cssproperty --dds-toggle-button-padding-xs - Padding of the extra small toggle button (default: var(--dds-spacing-150) var(--dds-spacing-200))\n * @cssproperty --dds-toggle-button-font-size-lg - Font size of the large toggle button (default: 1.125rem)\n * @cssproperty --dds-toggle-button-font-size-md - Font size of the medium toggle button (default: 1rem)\n * @cssproperty --dds-toggle-button-font-size-sm - Font size of the small toggle button (default: 0.875rem)\n * @cssproperty --dds-toggle-button-font-size-xs - Font size of the extra small toggle button (default: var(--dds-font-xs))\n * @cssproperty --dds-toggle-button-border-enabled - Border color in enabled state (default: var(--dds-button-toggle-border-enabled))\n * @cssproperty --dds-toggle-button-background-enabled - Background color in enabled state (default: var(--dds-button-toggle-background-enabled))\n * @cssproperty --dds-toggle-button-content-enabled - Content/text color in enabled state (default: var(--dds-button-toggle-content-enabled))\n * @cssproperty --dds-toggle-button-border-hover - Border color in hover state (default: var(--dds-button-toggle-border-hover))\n * @cssproperty --dds-toggle-button-background-hover - Background color in hover state (default: var(--dds-button-toggle-background-hover))\n * @cssproperty --dds-toggle-button-border-pressed - Border color in pressed state (default: var(--dds-button-toggle-border-pressed))\n * @cssproperty --dds-toggle-button-background-pressed - Background color in pressed state (default: var(--dds-button-toggle-background-pressed))\n * @cssproperty --dds-toggle-button-background-selected-enabled - Background color in selected enabled state (default: var(--dds-button-toggle-background-selected-enabled))\n * @cssproperty --dds-toggle-button-content-selected-enabled - Content/text color in selected enabled state (default: var(--dds-button-toggle-content-selected-enabled))\n * @cssproperty --dds-toggle-button-background-selected-hover - Background color in selected hover state (default: var(--dds-button-toggle-background-selected-hover))\n * @cssproperty --dds-toggle-button-background-selected-pressed - Background color in selected pressed state (default: var(--dds-button-toggle-background-selected-pressed))\n * @cssproperty --dds-toggle-button-border-disabled - Border color in disabled state (default: var(--dds-button-toggle-border-disabled))\n * @cssproperty --dds-toggle-button-background-disabled - Background color in disabled state (default: var(--dds-button-toggle-background-disabled))\n * @cssproperty --dds-toggle-button-content-disabled - Content/text color in disabled state (default: var(--dds-button-toggle-content-disabled))\n * @cssproperty --dds-toggle-button-highcontrast-border - High contrast border color (default: var(--dds-button-toggle-highcontrast-border))\n * @cssproperty --dds-toggle-button-highcontrast-border-hover - High contrast border color on hover (default: var(--dds-button-toggle-highcontrast-border-hover))\n *\n */\nexport default class DapDSToggleButton extends GenericFormElement {\n static tagName = 'dap-ds-toggle-button'\n\n constructor() {\n super()\n this.size = 'md'\n }\n\n /** Whether the button is active. */\n @property({ type: Boolean, reflect: true }) active = false\n\n /** The shape of the button\n * @type { 'button' | 'circle' }\n */\n @property({ reflect: true }) shape: ButtonShape = 'button'\n\n @property({ type: String }) sizeChildren = 'true'\n\n static readonly styles = unsafeCSS(styles)\n\n /** Maps effectiveSize from SizedMixin to toggle button visual size (xxs→xs). */\n private get toggleButtonSize(): 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' {\n return this.effectiveSize === 'xxs' ? 'xs' : this.effectiveSize\n }\n\n get focusElement(): HTMLButtonElement {\n return this.shadowRoot?.querySelector('button') as HTMLButtonElement\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n super.firstUpdated(_changedProperties)\n this._sizeSlottedChildren()\n }\n\n protected override updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties)\n if (\n changedProperties.has('size') ||\n changedProperties.has('sizeMap') ||\n changedProperties.has('sizeChildren')\n ) {\n this._sizeSlottedChildren()\n }\n }\n\n private _sizeSlottedChildren(): void {\n if (this.sizeChildren !== 'true') return\n const slot = this.shadowRoot?.querySelector('slot')\n slot?.assignedElements().forEach(el => {\n el.setAttribute('size', this.toggleButtonSize)\n })\n }\n\n private handleClick(): void {\n if (this.disabled) {\n return\n }\n }\n\n render() {\n return html`\n <button\n part=\"base\"\n .disabled=${this.disabled}\n aria-disabled=${this.disabled}\n aria-label=${ifDefined(this.ariaLabel) || ''}\n aria-pressed=${this.active}\n .autofocus=${this.autofocus}\n type=\"button\"\n class=${clsx(\n 'toggle-button',\n `toggle-button--${this.toggleButtonSize}`,\n `toggle-button--${this.shape}`,\n {\n 'toggle-button--active': this.active,\n 'toggle-button--disabled': this.disabled,\n },\n )}\n @click=${this.handleClick}>\n <div part=\"high-contrast\" class=\"toggle-button__highcontrast\"></div>\n <slot></slot>\n </button>\n `\n }\n}\n"],"names":["_DapDSToggleButton","GenericFormElement","_a","_changedProperties","changedProperties","slot","el","html","ifDefined","clsx","unsafeCSS","styles","DapDSToggleButton","__decorateClass","property"],"mappings":";;;;;;;;;;;;;;;AA2DA,MAAqBA,IAArB,MAAqBA,UAA0BC,EAAmB;AAAA,EAGhE,cAAc;AACN,UAAA,GAK6C,KAAA,SAAA,IAKH,KAAA,QAAA,UAEP,KAAA,eAAA,QAXzC,KAAK,OAAO;AAAA,EAAA;AAAA;AAAA,EAgBd,IAAY,mBAA6D;AACvE,WAAO,KAAK,kBAAkB,QAAQ,OAAO,KAAK;AAAA,EAAA;AAAA,EAGpD,IAAI,eAAkC;;AAC7B,YAAAC,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAc;AAAA,EAAQ;AAAA,EAGtC,aAAaC,GAA0C;AAC/D,UAAM,aAAaA,CAAkB,GACrC,KAAK,qBAAqB;AAAA,EAAA;AAAA,EAGT,QAAQC,GAAyC;AAClE,UAAM,QAAQA,CAAiB,IAE7BA,EAAkB,IAAI,MAAM,KAC5BA,EAAkB,IAAI,SAAS,KAC/BA,EAAkB,IAAI,cAAc,MAEpC,KAAK,qBAAqB;AAAA,EAC5B;AAAA,EAGM,uBAA6B;;AAC/B,QAAA,KAAK,iBAAiB,OAAQ;AAClC,UAAMC,KAAOH,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAc;AACtC,IAAAG,KAAA,QAAAA,EAAA,mBAAmB,QAAQ,CAAMC,MAAA;AAClC,MAAAA,EAAA,aAAa,QAAQ,KAAK,gBAAgB;AAAA,IAAA;AAAA,EAC9C;AAAA,EAGK,cAAoB;AAC1B,IAAI,KAAK;AAAA,EAET;AAAA,EAGF,SAAS;AACA,WAAAC;AAAAA;AAAAA;AAAAA,oBAGS,KAAK,QAAQ;AAAA,wBACT,KAAK,QAAQ;AAAA,qBAChBC,EAAU,KAAK,SAAS,KAAK,EAAE;AAAA,uBAC7B,KAAK,MAAM;AAAA,qBACb,KAAK,SAAS;AAAA;AAAA,gBAEnBC;AAAA,MACN;AAAA,MACA,kBAAkB,KAAK,gBAAgB;AAAA,MACvC,kBAAkB,KAAK,KAAK;AAAA,MAC5B;AAAA,QACE,yBAAyB,KAAK;AAAA,QAC9B,2BAA2B,KAAK;AAAA,MAAA;AAAA,IAEnC,CAAA;AAAA,iBACQ,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAMjC;AAnFET,EAAO,UAAU,wBAiBDA,EAAA,SAASU,EAAUC,CAAM;AAlB3C,IAAqBC,IAArBZ;AAS8Ca,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,GAAM,CAAA;AAAA,GATvBF,EASyB,WAAA,QAAA;AAKfC,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAM,CAAA;AAAA,GAdRF,EAcU,WAAA,OAAA;AAEDC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAhBPF,EAgBS,WAAA,cAAA;"}
1
+ {"version":3,"file":"toggle-button.component.js","sources":["../../../src/components/toggle-button/toggle-button.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { PropertyValues, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\n\nimport { ButtonShape } from '../../common/types'\nimport styles from './_styles/toggle-button.scss?inline'\n\n/**\n * `dap-ds-toggle-button` is a custom toggle button component.\n * @element dap-ds-toggle-button\n * @summary A toggle button is a button that can be toggled on (active) or off (inactive).\n * @title - Toggle button\n *\n * @property { 'xs' | 'sm' | 'md' | 'lg' } size - The size of the toggle button. Default is `md`\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\")\n *\n * @slot - The content of the toggle button.\n *\n * @csspart base - The main button container.\n * @csspart high-contrast - The high contrast part of the button.\n *\n * @cssproperty --dds-toggle-button-min-width-lg - Minimum width of the large toggle button (default: var(--dds-spacing-2400))\n * @cssproperty --dds-toggle-button-min-width-md - Minimum width of the medium toggle button (default: var(--dds-spacing-2000))\n * @cssproperty --dds-toggle-button-min-width-sm - Minimum width of the small toggle button (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toggle-button-min-width-xs - Minimum width of the extra small toggle button (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toggle-button-height-lg - Height of the large toggle button (default: var(--dds-spacing-1200))\n * @cssproperty --dds-toggle-button-height-md - Height of the medium toggle button (default: var(--dds-spacing-1000))\n * @cssproperty --dds-toggle-button-height-sm - Height of the small toggle button (default: var(--dds-spacing-800))\n * @cssproperty --dds-toggle-button-height-xs - Height of the extra small toggle button (default: var(--dds-spacing-600))\n * @cssproperty --dds-toggle-button-padding-lg - Padding of the large toggle button (default: var(--dds-spacing-300) var(--dds-spacing-400))\n * @cssproperty --dds-toggle-button-padding-md - Padding of the medium toggle button (default: var(--dds-spacing-300))\n * @cssproperty --dds-toggle-button-padding-sm - Padding of the small toggle button (default: var(--dds-spacing-200))\n * @cssproperty --dds-toggle-button-padding-xs - Padding of the extra small toggle button (default: var(--dds-spacing-150) var(--dds-spacing-200))\n * @cssproperty --dds-toggle-button-font-size-lg - Font size of the large toggle button (default: 1.125rem)\n * @cssproperty --dds-toggle-button-font-size-md - Font size of the medium toggle button (default: 1rem)\n * @cssproperty --dds-toggle-button-font-size-sm - Font size of the small toggle button (default: 0.875rem)\n * @cssproperty --dds-toggle-button-font-size-xs - Font size of the extra small toggle button (default: var(--dds-font-xs))\n * @cssproperty --dds-toggle-button-border-enabled - Border color in enabled state (default: var(--dds-button-toggle-border-enabled))\n * @cssproperty --dds-toggle-button-background-enabled - Background color in enabled state (default: var(--dds-button-toggle-background-enabled))\n * @cssproperty --dds-toggle-button-content-enabled - Content/text color in enabled state (default: var(--dds-button-toggle-content-enabled))\n * @cssproperty --dds-toggle-button-border-hover - Border color in hover state (default: var(--dds-button-toggle-border-hover))\n * @cssproperty --dds-toggle-button-background-hover - Background color in hover state (default: var(--dds-button-toggle-background-hover))\n * @cssproperty --dds-toggle-button-border-pressed - Border color in pressed state (default: var(--dds-button-toggle-border-pressed))\n * @cssproperty --dds-toggle-button-background-pressed - Background color in pressed state (default: var(--dds-button-toggle-background-pressed))\n * @cssproperty --dds-toggle-button-background-selected-enabled - Background color in selected enabled state (default: var(--dds-button-toggle-background-selected-enabled))\n * @cssproperty --dds-toggle-button-content-selected-enabled - Content/text color in selected enabled state (default: var(--dds-button-toggle-content-selected-enabled))\n * @cssproperty --dds-toggle-button-background-selected-hover - Background color in selected hover state (default: var(--dds-button-toggle-background-selected-hover))\n * @cssproperty --dds-toggle-button-background-selected-pressed - Background color in selected pressed state (default: var(--dds-button-toggle-background-selected-pressed))\n * @cssproperty --dds-toggle-button-border-disabled - Border color in disabled state (default: var(--dds-button-toggle-border-disabled))\n * @cssproperty --dds-toggle-button-background-disabled - Background color in disabled state (default: var(--dds-button-toggle-background-disabled))\n * @cssproperty --dds-toggle-button-content-disabled - Content/text color in disabled state (default: var(--dds-button-toggle-content-disabled))\n * @cssproperty --dds-toggle-button-highcontrast-border - High contrast border color (default: var(--dds-button-toggle-highcontrast-border))\n * @cssproperty --dds-toggle-button-highcontrast-border-hover - High contrast border color on hover (default: var(--dds-button-toggle-highcontrast-border-hover))\n *\n */\nexport default class DapDSToggleButton extends GenericFormElement {\n static tagName = 'dap-ds-toggle-button'\n\n constructor() {\n super()\n this.size = 'md'\n }\n\n /** Whether the button is active. */\n @property({ type: Boolean, reflect: true }) active = false\n\n /** The shape of the button\n * @type { 'button' | 'circle' }\n */\n @property({ reflect: true }) shape: ButtonShape = 'button'\n\n @property({ type: String }) sizeChildren = 'true'\n\n static readonly styles = unsafeCSS(styles)\n\n /** Maps effectiveSize from SizedMixin to toggle button visual size (xxs→xs). */\n private get toggleButtonSize(): 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' {\n return this.effectiveSize === 'xxs' ? 'xs' : this.effectiveSize\n }\n\n get focusElement(): HTMLButtonElement {\n return this.shadowRoot?.querySelector('button') as HTMLButtonElement\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n super.firstUpdated(_changedProperties)\n this._sizeSlottedChildren()\n }\n\n protected override updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties)\n if (\n changedProperties.has('size') ||\n changedProperties.has('sizeMap') ||\n changedProperties.has('sizeChildren')\n ) {\n this._sizeSlottedChildren()\n }\n }\n\n private _sizeSlottedChildren(): void {\n if (this.sizeChildren !== 'true') return\n const slot = this.shadowRoot?.querySelector('slot')\n slot?.assignedElements().forEach(el => {\n el.setAttribute('size', this.toggleButtonSize)\n })\n }\n\n private handleClick(): void {\n if (this.disabled) {\n return\n }\n }\n\n render() {\n return html`\n <button\n part=\"base\"\n .disabled=${this.disabled}\n aria-disabled=${this.disabled}\n aria-label=${ifDefined(this.ariaLabel) || ''}\n aria-pressed=${this.active}\n .autofocus=${this.autofocus}\n type=\"button\"\n class=${clsx(\n 'toggle-button',\n `toggle-button--${this.toggleButtonSize}`,\n `toggle-button--${this.shape}`,\n {\n 'toggle-button--active': this.active,\n 'toggle-button--disabled': this.disabled,\n },\n )}\n @click=${this.handleClick}>\n <div part=\"high-contrast\" class=\"toggle-button__highcontrast\"></div>\n <slot></slot>\n </button>\n `\n }\n}\n"],"names":["_DapDSToggleButton","GenericFormElement","_a","_changedProperties","changedProperties","slot","el","html","ifDefined","clsx","unsafeCSS","styles","DapDSToggleButton","__decorateClass","property"],"mappings":";;;;;;;;;;;;AA2DA,MAAqBA,IAArB,MAAqBA,UAA0BC,EAAmB;AAAA,EAGhE,cAAc;AACN,UAAA,GAK6C,KAAA,SAAA,IAKH,KAAA,QAAA,UAEP,KAAA,eAAA,QAXzC,KAAK,OAAO;AAAA,EAAA;AAAA;AAAA,EAgBd,IAAY,mBAA6D;AACvE,WAAO,KAAK,kBAAkB,QAAQ,OAAO,KAAK;AAAA,EAAA;AAAA,EAGpD,IAAI,eAAkC;;AAC7B,YAAAC,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAc;AAAA,EAAQ;AAAA,EAGtC,aAAaC,GAA0C;AAC/D,UAAM,aAAaA,CAAkB,GACrC,KAAK,qBAAqB;AAAA,EAAA;AAAA,EAGT,QAAQC,GAAyC;AAClE,UAAM,QAAQA,CAAiB,IAE7BA,EAAkB,IAAI,MAAM,KAC5BA,EAAkB,IAAI,SAAS,KAC/BA,EAAkB,IAAI,cAAc,MAEpC,KAAK,qBAAqB;AAAA,EAC5B;AAAA,EAGM,uBAA6B;;AAC/B,QAAA,KAAK,iBAAiB,OAAQ;AAClC,UAAMC,KAAOH,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAc;AACtC,IAAAG,KAAA,QAAAA,EAAA,mBAAmB,QAAQ,CAAMC,MAAA;AAClC,MAAAA,EAAA,aAAa,QAAQ,KAAK,gBAAgB;AAAA,IAAA;AAAA,EAC9C;AAAA,EAGK,cAAoB;AAC1B,IAAI,KAAK;AAAA,EAET;AAAA,EAGF,SAAS;AACA,WAAAC;AAAA;AAAA;AAAA,oBAGS,KAAK,QAAQ;AAAA,wBACT,KAAK,QAAQ;AAAA,qBAChBC,EAAU,KAAK,SAAS,KAAK,EAAE;AAAA,uBAC7B,KAAK,MAAM;AAAA,qBACb,KAAK,SAAS;AAAA;AAAA,gBAEnBC;AAAA,MACN;AAAA,MACA,kBAAkB,KAAK,gBAAgB;AAAA,MACvC,kBAAkB,KAAK,KAAK;AAAA,MAC5B;AAAA,QACE,yBAAyB,KAAK;AAAA,QAC9B,2BAA2B,KAAK;AAAA,MAAA;AAAA,IAEnC,CAAA;AAAA,iBACQ,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAMjC;AAnFET,EAAO,UAAU,wBAiBDA,EAAA,SAASU,EAAUC,CAAM;AAlB3C,IAAqBC,IAArBZ;AAS8Ca,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,GAAM,CAAA;AAAA,GATvBF,EASyB,WAAA,QAAA;AAKfC,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAM,CAAA;AAAA,GAdRF,EAcU,WAAA,OAAA;AAEDC,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAhBPF,EAgBS,WAAA,cAAA;"}
@@ -16,6 +16,8 @@ export type TooltipMode = 'tooltip' | 'toggle';
16
16
  * @csspart trigger - The trigger element of the tooltip.
17
17
  * @csspart popup - The popup of the tooltip.
18
18
  * @csspart arrow - The arrow of the tooltip.
19
+ * @csspart base__popup - Alias of the popup part.
20
+ * @csspart base__arrow - Alias of the arrow part.
19
21
  *
20
22
  * @cssproperty --dds-tooltip-max-width - The maximum width of the tooltip before its content will wrap (default: 14rem)
21
23
  * @cssproperty --dds-tooltip-padding - The padding inside the tooltip (default: var(--dds-spacing-400))
@@ -14,23 +14,19 @@ var g = (a, e, t) => new Promise((h, s) => {
14
14
  }, u = (n) => n.done ? h(n.value) : Promise.resolve(n.value).then(p, l);
15
15
  u((t = t.apply(a, e)).next());
16
16
  });
17
- import { clsx as f } from "../../node_modules/clsx/dist/clsx.js";
18
- import "../../node_modules/@lit/reactive-element/reactive-element.js";
19
- import "../../node_modules/lit-html/lit-html.js";
20
- import "../../node_modules/lit-element/lit-element.js";
21
- import { property as r } from "../../node_modules/@lit/reactive-element/decorators/property.js";
22
- import { state as v } from "../../node_modules/@lit/reactive-element/decorators/state.js";
23
- import { html as m } from "../../node_modules/lit-html/static.js";
24
- import { DdsElement as y } from "../../internal/dds-hu-element.js";
25
- import w from "../popup/popup.component.js";
26
- import T from "./tooltip.scss.js";
27
- import { unsafeCSS as b } from "../../node_modules/@lit/reactive-element/css-tag.js";
17
+ import { clsx as m } from "../../node_modules/clsx/dist/clsx.js";
18
+ import { unsafeCSS as v } from "lit";
19
+ import { property as r, state as y } from "lit/decorators.js";
20
+ import { html as f } from "lit/static-html.js";
21
+ import { DdsElement as w } from "../../internal/dds-hu-element.js";
22
+ import T from "../popup/popup.component.js";
23
+ import b from "./tooltip.scss.js";
28
24
  var E = Object.defineProperty, O = Object.getOwnPropertyDescriptor, i = (a, e, t, h) => {
29
25
  for (var s = h > 1 ? void 0 : h ? O(e, t) : e, p = a.length - 1, l; p >= 0; p--)
30
26
  (l = a[p]) && (s = (h ? l(e, t, s) : l(s)) || s);
31
27
  return h && s && E(e, t, s), s;
32
28
  };
33
- const L = 8, d = class d extends y {
29
+ const L = 8, d = class d extends w {
34
30
  constructor() {
35
31
  super(...arguments), this.placement = "bottom", this.opened = !1, this.mode = "tooltip", this.noArrow = !1, this.floatingStrategy = "absolute", this.disableViewportAutoClose = !1, this._trigger = "hover focus", this.mouseOverTooltip = !1, this.handleDocumentKeyDown = (e) => {
36
32
  e.key === "Escape" && this.opened && (e.preventDefault(), e.stopPropagation(), this.hideTooltip());
@@ -76,16 +72,18 @@ const L = 8, d = class d extends y {
76
72
  });
77
73
  }
78
74
  render() {
79
- return m`
75
+ return f`
80
76
  <dap-ds-popup
81
77
  part="base"
82
78
  role="tooltip"
83
79
  id="tooltip"
84
80
  exportparts="
81
+ popup:popup,
82
+ arrow:arrow,
85
83
  popup:base__popup,
86
84
  arrow:base__arrow
87
85
  "
88
- class=${f("tooltip", {
86
+ class=${m("tooltip", {
89
87
  "tooltip--open": this.opened,
90
88
  "tooltip--tooltip": this.mode === "tooltip",
91
89
  "tooltip--toggle": this.mode === "toggle"
@@ -104,14 +102,14 @@ const L = 8, d = class d extends y {
104
102
  name="trigger"
105
103
  slot="trigger"
106
104
  aria-describedby="tooltip"></slot>
107
- ${this.content ? m`${this.content}` : m`<slot></slot>`}
105
+ ${this.content ? f`${this.content}` : f`<slot></slot>`}
108
106
  </dap-ds-popup>
109
107
  `;
110
108
  }
111
109
  };
112
110
  d.tagName = "dap-ds-tooltip", d.dependencies = {
113
- "dap-ds-popup": w
114
- }, d.styles = b(T);
111
+ "dap-ds-popup": T
112
+ }, d.styles = v(b);
115
113
  let o = d;
116
114
  i([
117
115
  r()
@@ -138,7 +136,7 @@ i([
138
136
  r()
139
137
  ], o.prototype, "trigger", 1);
140
138
  i([
141
- v()
139
+ y()
142
140
  ], o.prototype, "mouseOverTooltip", 2);
143
141
  export {
144
142
  o as default
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.component.js","sources":["../../../src/components/tooltip/tooltip.component.ts"],"sourcesContent":["import { clsx } from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { PopupPlacement } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport DapDSPopup from '../popup/popup.component'\nimport styles from './tooltip.scss?inline'\nexport type TooltipMode = 'tooltip' | 'toggle'\n\n/**\n * The distance in pixels between the tooltip and the trigger element.\n */\nconst TOOLTIP_OFFSET = 8\n\n/**\n * `dap-ds-tooltip`\n * @summary A tooltip is a container for tooltip content.\n * @element dap-ds-tooltip\n * @title - Tooltip\n *\n * @slot - The content of the tooltip.\n * @slot trigger - The trigger element of the tooltip.\n *\n * @csspart base - The main tooltip container.\n * @csspart trigger - The trigger element of the tooltip.\n * @csspart popup - The popup of the tooltip.\n * @csspart arrow - The arrow of the tooltip.\n *\n * @cssproperty --dds-tooltip-max-width - The maximum width of the tooltip before its content will wrap (default: 14rem)\n * @cssproperty --dds-tooltip-padding - The padding inside the tooltip (default: var(--dds-spacing-400))\n * @cssproperty --dds-tooltip-border-color - The border color of the tooltip (default: var(--dds-border-neutral-subtle))\n * @cssproperty --dds-tooltip-bg-color - The background color of the tooltip (default: var(--dds-background-neutral-base))\n * @cssproperty --dds-tooltip-text-color - The text color of the tooltip (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-tooltip-font-size - The font size of the tooltip text (default: var(--dds-font-sm))\n * @cssproperty --dds-tooltip-box-shadow - The box shadow of the tooltip (default: 0 8px 12px -2px rgb(0 0 0 / 8%), 0 2px 6px -2px rgb(0 0 0 / 6%))\n */\nexport default class DapDSTooltip extends DdsElement {\n static tagName = 'dap-ds-tooltip'\n\n static dependencies = {\n 'dap-ds-popup': DapDSPopup,\n }\n\n static readonly styles = unsafeCSS(styles)\n\n /** The content of the tooltip, supporting text only. */\n @property() content: string\n\n /** The position of the tooltip around the trigger element.\n * @type { 'top' | 'right' | 'bottom' | 'left' }\n */\n @property({ reflect: true }) placement: PopupPlacement = 'bottom'\n\n /** Sets the tooltip to opened by default (will still be closed on closing events). */\n @property({ type: Boolean, reflect: true }) opened? = false\n\n /** Sets the tooltip to toggle mode.\n * @type { 'tooltip' | 'toggle' }\n */\n @property() mode?: TooltipMode = 'tooltip'\n\n /** Hides the arrow of the tooltip. */\n @property({ type: Boolean, reflect: true }) noArrow? = false\n\n /** The floating strategy of the tooltip. Default is `absolute`. Can be `absolute` or `fixed`.\n * @type { 'absolute' | 'fixed' }\n */\n @property({ reflect: true })\n floatingStrategy: 'absolute' | 'fixed' = 'absolute'\n\n /** Whether to keep popup open when trigger leaves viewport. */\n @property({ type: Boolean }) disableViewportAutoClose: boolean = false\n\n private _trigger: string = 'hover focus'\n\n /** Sets custom trigger event (hover, focus, click). Default is `hover focus`. */\n @property()\n set trigger(value: string) {\n this._trigger = value\n }\n get trigger() {\n if (!this.mode) {\n return 'hover focus'\n }\n\n if (this.mode === 'toggle') {\n return 'click'\n }\n\n return this._trigger\n }\n\n /** @ignore */\n @state() mouseOverTooltip: boolean = false\n\n connectedCallback() {\n super.connectedCallback()\n this.addEventListener('blur', this.handleBlur, true)\n this.addEventListener('focus', this.handleFocus, true)\n this.addEventListener('click', this.handleClick)\n this.addEventListener('mouseover', this.handleMouseOver)\n this.addEventListener('mouseout', this.handleMouseOut)\n }\n\n disconnectedCallback() {\n this.removeEventListener('blur', this.handleBlur, true)\n this.removeEventListener('focus', this.handleFocus, true)\n this.removeEventListener('click', this.handleClick)\n this.removeEventListener('mouseover', this.handleMouseOver)\n this.removeEventListener('mouseout', this.handleMouseOut)\n document.removeEventListener('keydown', this.handleDocumentKeyDown, true)\n super.disconnectedCallback()\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n\n this.setAttribute('role', 'status')\n\n // Expose the collapsed state from the start, not only after the first open\n this.setTriggerExpanded(!!this.opened)\n if (this.opened) {\n document.addEventListener('keydown', this.handleDocumentKeyDown, true)\n }\n }\n\n private setTriggerExpanded(expanded: boolean) {\n const trigger = this.querySelector('[slot=\"trigger\"]')\n if (trigger) {\n trigger.setAttribute('aria-expanded', String(expanded))\n }\n }\n\n async showTooltip() {\n if (this.opened) {\n return\n }\n\n this.opened = true\n this.setTriggerExpanded(true)\n document.addEventListener('keydown', this.handleDocumentKeyDown, true)\n }\n\n async hideTooltip() {\n if (!this.opened) {\n return\n }\n\n this.opened = false\n this.setTriggerExpanded(false)\n document.removeEventListener('keydown', this.handleDocumentKeyDown, true)\n }\n\n // Escape dismisses the tooltip without moving focus or pointer (WCAG 1.4.13).\n // Captured on document so it works for hover too, and stopped so an enclosing\n // modal does not close on the same keypress.\n private readonly handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.opened) {\n event.preventDefault()\n event.stopPropagation()\n this.hideTooltip()\n }\n }\n\n private readonly handleBlur = () => {\n if (this.hasTrigger('focus')) {\n this.hideTooltip()\n }\n }\n\n private readonly handleClick = () => {\n if (this.hasTrigger('click')) {\n this.opened && !this.hasTrigger('focus')\n ? this.hideTooltip()\n : this.showTooltip()\n }\n }\n\n private readonly handleFocus = () => {\n if (this.hasTrigger('focus')) {\n this.showTooltip()\n }\n }\n\n private readonly handleMouseOver = () => {\n if (this.hasTrigger('hover')) {\n this.showTooltip()\n }\n }\n\n private readonly handleMouseOut = () => {\n if (!this.mouseOverTooltip) {\n if (this.hasTrigger('hover')) {\n this.hideTooltip()\n }\n }\n }\n\n private readonly hasTrigger = (triggerType: string) => {\n const triggers = this.trigger.split(' ')\n return triggers.includes(triggerType)\n }\n\n render() {\n return html`\n <dap-ds-popup\n part=\"base\"\n role=\"tooltip\"\n id=\"tooltip\"\n exportparts=\"\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${clsx('tooltip', {\n 'tooltip--open': this.opened,\n 'tooltip--tooltip': this.mode === 'tooltip',\n 'tooltip--toggle': this.mode === 'toggle',\n })}\n ?opened=${this.opened}\n placement=${this.placement}\n offset=${TOOLTIP_OFFSET}\n floatingStrategy=${this.floatingStrategy}\n ?disableViewportAutoClose=${this.disableViewportAutoClose}\n ?hasArrow=${!this.noArrow}\n @dds-close=${this.hideTooltip}\n @dds-closed=${this.hideTooltip}\n @dds-opened=${this.showTooltip}>\n <slot\n part=\"trigger\"\n name=\"trigger\"\n slot=\"trigger\"\n aria-describedby=\"tooltip\"></slot>\n ${this.content ? html`${this.content}` : html`<slot></slot>`}\n </dap-ds-popup>\n `\n }\n}\n"],"names":["TOOLTIP_OFFSET","_DapDSTooltip","DdsElement","event","triggerType","value","_changedProperties","expanded","trigger","__async","html","clsx","DapDSPopup","unsafeCSS","styles","DapDSTooltip","__decorateClass","property","state"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip.component.js","sources":["../../../src/components/tooltip/tooltip.component.ts"],"sourcesContent":["import { clsx } from 'clsx'\nimport { PropertyValueMap, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { PopupPlacement } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport DapDSPopup from '../popup/popup.component'\nimport styles from './tooltip.scss?inline'\nexport type TooltipMode = 'tooltip' | 'toggle'\n\n/**\n * The distance in pixels between the tooltip and the trigger element.\n */\nconst TOOLTIP_OFFSET = 8\n\n/**\n * `dap-ds-tooltip`\n * @summary A tooltip is a container for tooltip content.\n * @element dap-ds-tooltip\n * @title - Tooltip\n *\n * @slot - The content of the tooltip.\n * @slot trigger - The trigger element of the tooltip.\n *\n * @csspart base - The main tooltip container.\n * @csspart trigger - The trigger element of the tooltip.\n * @csspart popup - The popup of the tooltip.\n * @csspart arrow - The arrow of the tooltip.\n * @csspart base__popup - Alias of the popup part.\n * @csspart base__arrow - Alias of the arrow part.\n *\n * @cssproperty --dds-tooltip-max-width - The maximum width of the tooltip before its content will wrap (default: 14rem)\n * @cssproperty --dds-tooltip-padding - The padding inside the tooltip (default: var(--dds-spacing-400))\n * @cssproperty --dds-tooltip-border-color - The border color of the tooltip (default: var(--dds-border-neutral-subtle))\n * @cssproperty --dds-tooltip-bg-color - The background color of the tooltip (default: var(--dds-background-neutral-base))\n * @cssproperty --dds-tooltip-text-color - The text color of the tooltip (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-tooltip-font-size - The font size of the tooltip text (default: var(--dds-font-sm))\n * @cssproperty --dds-tooltip-box-shadow - The box shadow of the tooltip (default: 0 8px 12px -2px rgb(0 0 0 / 8%), 0 2px 6px -2px rgb(0 0 0 / 6%))\n */\nexport default class DapDSTooltip extends DdsElement {\n static tagName = 'dap-ds-tooltip'\n\n static dependencies = {\n 'dap-ds-popup': DapDSPopup,\n }\n\n static readonly styles = unsafeCSS(styles)\n\n /** The content of the tooltip, supporting text only. */\n @property() content: string\n\n /** The position of the tooltip around the trigger element.\n * @type { 'top' | 'right' | 'bottom' | 'left' }\n */\n @property({ reflect: true }) placement: PopupPlacement = 'bottom'\n\n /** Sets the tooltip to opened by default (will still be closed on closing events). */\n @property({ type: Boolean, reflect: true }) opened? = false\n\n /** Sets the tooltip to toggle mode.\n * @type { 'tooltip' | 'toggle' }\n */\n @property() mode?: TooltipMode = 'tooltip'\n\n /** Hides the arrow of the tooltip. */\n @property({ type: Boolean, reflect: true }) noArrow? = false\n\n /** The floating strategy of the tooltip. Default is `absolute`. Can be `absolute` or `fixed`.\n * @type { 'absolute' | 'fixed' }\n */\n @property({ reflect: true })\n floatingStrategy: 'absolute' | 'fixed' = 'absolute'\n\n /** Whether to keep popup open when trigger leaves viewport. */\n @property({ type: Boolean }) disableViewportAutoClose: boolean = false\n\n private _trigger: string = 'hover focus'\n\n /** Sets custom trigger event (hover, focus, click). Default is `hover focus`. */\n @property()\n set trigger(value: string) {\n this._trigger = value\n }\n get trigger() {\n if (!this.mode) {\n return 'hover focus'\n }\n\n if (this.mode === 'toggle') {\n return 'click'\n }\n\n return this._trigger\n }\n\n /** @ignore */\n @state() mouseOverTooltip: boolean = false\n\n connectedCallback() {\n super.connectedCallback()\n this.addEventListener('blur', this.handleBlur, true)\n this.addEventListener('focus', this.handleFocus, true)\n this.addEventListener('click', this.handleClick)\n this.addEventListener('mouseover', this.handleMouseOver)\n this.addEventListener('mouseout', this.handleMouseOut)\n }\n\n disconnectedCallback() {\n this.removeEventListener('blur', this.handleBlur, true)\n this.removeEventListener('focus', this.handleFocus, true)\n this.removeEventListener('click', this.handleClick)\n this.removeEventListener('mouseover', this.handleMouseOver)\n this.removeEventListener('mouseout', this.handleMouseOut)\n document.removeEventListener('keydown', this.handleDocumentKeyDown, true)\n super.disconnectedCallback()\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n\n this.setAttribute('role', 'status')\n\n // Expose the collapsed state from the start, not only after the first open\n this.setTriggerExpanded(!!this.opened)\n if (this.opened) {\n document.addEventListener('keydown', this.handleDocumentKeyDown, true)\n }\n }\n\n private setTriggerExpanded(expanded: boolean) {\n const trigger = this.querySelector('[slot=\"trigger\"]')\n if (trigger) {\n trigger.setAttribute('aria-expanded', String(expanded))\n }\n }\n\n async showTooltip() {\n if (this.opened) {\n return\n }\n\n this.opened = true\n this.setTriggerExpanded(true)\n document.addEventListener('keydown', this.handleDocumentKeyDown, true)\n }\n\n async hideTooltip() {\n if (!this.opened) {\n return\n }\n\n this.opened = false\n this.setTriggerExpanded(false)\n document.removeEventListener('keydown', this.handleDocumentKeyDown, true)\n }\n\n // Escape dismisses the tooltip without moving focus or pointer (WCAG 1.4.13).\n // Captured on document so it works for hover too, and stopped so an enclosing\n // modal does not close on the same keypress.\n private readonly handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.opened) {\n event.preventDefault()\n event.stopPropagation()\n this.hideTooltip()\n }\n }\n\n private readonly handleBlur = () => {\n if (this.hasTrigger('focus')) {\n this.hideTooltip()\n }\n }\n\n private readonly handleClick = () => {\n if (this.hasTrigger('click')) {\n this.opened && !this.hasTrigger('focus')\n ? this.hideTooltip()\n : this.showTooltip()\n }\n }\n\n private readonly handleFocus = () => {\n if (this.hasTrigger('focus')) {\n this.showTooltip()\n }\n }\n\n private readonly handleMouseOver = () => {\n if (this.hasTrigger('hover')) {\n this.showTooltip()\n }\n }\n\n private readonly handleMouseOut = () => {\n if (!this.mouseOverTooltip) {\n if (this.hasTrigger('hover')) {\n this.hideTooltip()\n }\n }\n }\n\n private readonly hasTrigger = (triggerType: string) => {\n const triggers = this.trigger.split(' ')\n return triggers.includes(triggerType)\n }\n\n render() {\n return html`\n <dap-ds-popup\n part=\"base\"\n role=\"tooltip\"\n id=\"tooltip\"\n exportparts=\"\n popup:popup,\n arrow:arrow,\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${clsx('tooltip', {\n 'tooltip--open': this.opened,\n 'tooltip--tooltip': this.mode === 'tooltip',\n 'tooltip--toggle': this.mode === 'toggle',\n })}\n ?opened=${this.opened}\n placement=${this.placement}\n offset=${TOOLTIP_OFFSET}\n floatingStrategy=${this.floatingStrategy}\n ?disableViewportAutoClose=${this.disableViewportAutoClose}\n ?hasArrow=${!this.noArrow}\n @dds-close=${this.hideTooltip}\n @dds-closed=${this.hideTooltip}\n @dds-opened=${this.showTooltip}>\n <slot\n part=\"trigger\"\n name=\"trigger\"\n slot=\"trigger\"\n aria-describedby=\"tooltip\"></slot>\n ${this.content ? html`${this.content}` : html`<slot></slot>`}\n </dap-ds-popup>\n `\n }\n}\n"],"names":["TOOLTIP_OFFSET","_DapDSTooltip","DdsElement","event","triggerType","value","_changedProperties","expanded","trigger","__async","html","clsx","DapDSPopup","unsafeCSS","styles","DapDSTooltip","__decorateClass","property","state"],"mappings":"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"}
@@ -57,7 +57,10 @@ import { default as ModalBaseElement } from '../modal/modal-base-element';
57
57
  * @csspart header - The header of the tray.
58
58
  * @csspart footer - The footer of the tray.
59
59
  * @csspart content - The content of the tray.
60
- * @csspart body - The body of the tray.
60
+ * @csspart header-container - The container of the header.
61
+ * @csspart title - The title of the tray.
62
+ * @csspart description - The description of the tray.
63
+ * @csspart closebutton - The close button of the tray.
61
64
  *
62
65
  */
63
66
  export default class DapDSTray extends ModalBaseElement {
@@ -1,16 +1,13 @@
1
- import "../../node_modules/@lit/reactive-element/reactive-element.js";
2
- import "../../node_modules/lit-html/lit-html.js";
3
- import "../../node_modules/lit-element/lit-element.js";
4
- import { property as p } from "../../node_modules/@lit/reactive-element/decorators/property.js";
5
- import f from "../modal/modal-base-element.js";
6
- import n from "./tray.scss.js";
7
- import { unsafeCSS as m, css as d } from "../../node_modules/@lit/reactive-element/css-tag.js";
8
- var h = Object.defineProperty, c = (o, i, a, u) => {
9
- for (var t = void 0, r = o.length - 1, l; r >= 0; r--)
10
- (l = o[r]) && (t = l(i, a, t) || t);
11
- return t && h(i, a, t), t;
1
+ import { unsafeCSS as f, css as m } from "lit";
2
+ import { property as n } from "lit/decorators.js";
3
+ import d from "../modal/modal-base-element.js";
4
+ import p from "./tray.scss.js";
5
+ var h = Object.defineProperty, c = (o, i, l, u) => {
6
+ for (var t = void 0, r = o.length - 1, a; r >= 0; r--)
7
+ (a = o[r]) && (t = a(i, l, t) || t);
8
+ return t && h(i, l, t), t;
12
9
  };
13
- const e = class e extends f {
10
+ const e = class e extends d {
14
11
  constructor() {
15
12
  super(), this.placement = "bottom", this.footer = "false", this.header = "false", this.title && (this.header = "true");
16
13
  }
@@ -18,13 +15,13 @@ const e = class e extends f {
18
15
  return this.renderModal();
19
16
  }
20
17
  };
21
- e.tagName = "dap-ds-tray", e.styles = d`
22
- ${m(f.styles)}
23
- ${m(n)}
18
+ e.tagName = "dap-ds-tray", e.styles = m`
19
+ ${f(d.styles)}
20
+ ${f(p)}
24
21
  `;
25
22
  let s = e;
26
23
  c([
27
- p({ reflect: !0 })
24
+ n({ reflect: !0 })
28
25
  ], s.prototype, "placement");
29
26
  export {
30
27
  s as default
@@ -1 +1 @@
1
- {"version":3,"file":"tray.component.js","sources":["../../../src/components/tray/tray.component.ts"],"sourcesContent":["import { css, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport ModalBaseElement from '../modal/modal-base-element'\nimport style from './tray.scss?inline'\n\n/**\n * `dap-ds-tray`\n * @summary A tray is a container for slide in content.\n * @element dap-ds-tray\n * @title - Tray\n *\n * @property {boolean} open - The open state of the tray.\n * @property {boolean} noModal - Whether the tray should have a modal overlay. Default is false. If true the tray will use the .show() method, if false the tray will use the .showModal() method.\n * @property {boolean} closeOnEsc - Whether the tray should close on pressing the escape key. Default is true.\n * @property {boolean} closeOnOverlayClick - Whether the tray should close on clicking the overlay. Default is true.\n * @property {string} closeButton - Whether the tray should have a close button. Default is true.\n * @property {string} title - The title of the tray.\n * @property {string} description - The description of the tray.\n * @property {string} okButtonLabel - The label of the OK button.\n * @property {string} cancelButtonLabel - The label of the Cancel button.\n * @property { 'sm' | 'lg' } size - The size of the tray. Default is 'sm'.\n * @property {string} footer - Whether the tray should have a footer. Default is false.\n * @property {string} header - Whether the tray should have a header. Default is false.\n *\n * @event {{ void }} dds-before-open - Fires before the tray opens.\n * @event {{ void }} dds-opened - Fires after the tray opens.\n * @event {{ void }} dds-before-close - Fires before the tray closes.\n * @event {{ void }} dds-closed - Fires after the tray closed.\n * @event {{ void }} dds-close - Fires when the tray is closes. You can prevent the tray from closing by calling `event.preventDefault()`.\n *\n * @slot - The content of the tray.\n * @slot header - The header of the tray.\n * @slot footer - The footer of the tray.\n *\n * @cssproperty --dds-modal-max-block-size - Maximum height of the modal. (default: 80vh)\n * @cssproperty --dds-modal-max-inline-size - Maximum width of the modal. (default: 600px)\n * @cssproperty --dds-modal-padding-sm - Padding inside the modal. (default: var(--dds-spacing-600))\n * @cssproperty --dds-modal-padding-lg - Padding inside the modal. (default: var(--dds-spacing-1200))\n * @cssproperty --dds-modal-transform-amount - Amount to transform for entrance animation. (default: 2rem)\n * @cssproperty --dds-modal-transition-speed - Speed of transition animations. (default: var(--dds-transition-fast))\n * @cssproperty --dds-modal-transition-timing - Timing function for transitions. (default: var(--dds-easing-ease-in-out))\n * @cssproperty --dds-modal-border-width - Border width of the modal. (default: var(--dds-border-width-base))\n * @cssproperty --dds-modal-border-color - Border color of the modal. (default: var(--dds-border-neutral-divider))\n * @cssproperty --dds-modal-border-radius - Border radius of the modal. (default: var(--dds-radius-large, 16px))\n * @cssproperty --dds-modal-background - Background color of the modal. (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-modal-header-margin-sm - Margin below the header. (default: var(--dds-spacing-400))\n * @cssproperty --dds-modal-header-margin-lg - Margin below the header. (default: var(--dds-spacing-600))\n * @cssproperty --dds-modal-footer-margin-sm - Margin above the footer. (default: var(--dds-spacing-400))\n * @cssproperty --dds-modal-footer-margin-lg - Margin above the footer. (default: var(--dds-spacing-600))\n * @cssproperty --dds-modal-footer-gap - Gap between footer elements. (default: var(--dds-spacing-400))\n * @cssproperty --dds-modal-close-margin - Margin for the close button. (default: var(--dds-spacing-300))\n * @cssproperty --dds-tray-width-side - Width of the side (left/right) trays. (default: 250px)\n * @cssproperty --dds-tray-min-width-horizontal - Minimum width of the horizontal (top/bottom) trays. (default: 400px)\n * @cssproperty --dds-tray-min-height-horizontal - Minimum height of the horizontal (top/bottom) trays. (default: 300px)\n * @cssproperty --dds-tray-min-height-vertical - Minimum height of the vertical (left/right) trays. (default: 100%)\n * @cssproperty --dds-tray-transform-duration - Duration of the transform animation. (default: 0.3s)\n * @cssproperty --dds-tray-transform-timing - Timing function for the transform animation. (default: ease-in-out)\n *\n * @csspart base - The main tray container.\n * @csspart panel - The panel of the tray.\n * @csspart header - The header of the tray.\n * @csspart footer - The footer of the tray.\n * @csspart content - The content of the tray.\n * @csspart body - The body of the tray.\n *\n */\nexport default class DapDSTray extends ModalBaseElement {\n static tagName = 'dap-ds-tray'\n\n /** The placement of the tray.\n * @type { 'left' | 'right' | 'top' | 'bottom' }\n */\n @property({ reflect: true }) placement: 'left' | 'right' | 'top' | 'bottom' =\n 'bottom'\n\n constructor() {\n super()\n this.footer = 'false'\n this.header = 'false'\n\n if (this.title) {\n this.header = 'true'\n }\n }\n\n static readonly styles = css`\n ${unsafeCSS(ModalBaseElement.styles)}\n ${unsafeCSS(style)}\n `\n\n render() {\n return this.renderModal()\n }\n}\n"],"names":["_DapDSTray","ModalBaseElement","css","unsafeCSS","style","DapDSTray","__decorateClass","property"],"mappings":";;;;;;;;;;;;AAmEA,MAAqBA,IAArB,MAAqBA,UAAkBC,EAAiB;AAAA,EAStD,cAAc;AACN,UAAA,GAHN,KAAA,YAAA,UAIA,KAAK,SAAS,SACd,KAAK,SAAS,SAEV,KAAK,UACP,KAAK,SAAS;AAAA,EAChB;AAAA,EAQF,SAAS;AACP,WAAO,KAAK,YAAY;AAAA,EAAA;AAE5B;AA1BED,EAAO,UAAU,eAkBjBA,EAAgB,SAASE;AAAAA,MACrBC,EAAUF,EAAiB,MAAM,CAAC;AAAA,MAClCE,EAAUC,CAAK,CAAC;AAAA;AArBtB,IAAqBC,IAArBL;AAM+BM,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAM,CAAA;AAAA,GANRF,EAMU,WAAA,WAAA;"}
1
+ {"version":3,"file":"tray.component.js","sources":["../../../src/components/tray/tray.component.ts"],"sourcesContent":["import { css, unsafeCSS } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport ModalBaseElement from '../modal/modal-base-element'\nimport style from './tray.scss?inline'\n\n/**\n * `dap-ds-tray`\n * @summary A tray is a container for slide in content.\n * @element dap-ds-tray\n * @title - Tray\n *\n * @property {boolean} open - The open state of the tray.\n * @property {boolean} noModal - Whether the tray should have a modal overlay. Default is false. If true the tray will use the .show() method, if false the tray will use the .showModal() method.\n * @property {boolean} closeOnEsc - Whether the tray should close on pressing the escape key. Default is true.\n * @property {boolean} closeOnOverlayClick - Whether the tray should close on clicking the overlay. Default is true.\n * @property {string} closeButton - Whether the tray should have a close button. Default is true.\n * @property {string} title - The title of the tray.\n * @property {string} description - The description of the tray.\n * @property {string} okButtonLabel - The label of the OK button.\n * @property {string} cancelButtonLabel - The label of the Cancel button.\n * @property { 'sm' | 'lg' } size - The size of the tray. Default is 'sm'.\n * @property {string} footer - Whether the tray should have a footer. Default is false.\n * @property {string} header - Whether the tray should have a header. Default is false.\n *\n * @event {{ void }} dds-before-open - Fires before the tray opens.\n * @event {{ void }} dds-opened - Fires after the tray opens.\n * @event {{ void }} dds-before-close - Fires before the tray closes.\n * @event {{ void }} dds-closed - Fires after the tray closed.\n * @event {{ void }} dds-close - Fires when the tray is closes. You can prevent the tray from closing by calling `event.preventDefault()`.\n *\n * @slot - The content of the tray.\n * @slot header - The header of the tray.\n * @slot footer - The footer of the tray.\n *\n * @cssproperty --dds-modal-max-block-size - Maximum height of the modal. (default: 80vh)\n * @cssproperty --dds-modal-max-inline-size - Maximum width of the modal. (default: 600px)\n * @cssproperty --dds-modal-padding-sm - Padding inside the modal. (default: var(--dds-spacing-600))\n * @cssproperty --dds-modal-padding-lg - Padding inside the modal. (default: var(--dds-spacing-1200))\n * @cssproperty --dds-modal-transform-amount - Amount to transform for entrance animation. (default: 2rem)\n * @cssproperty --dds-modal-transition-speed - Speed of transition animations. (default: var(--dds-transition-fast))\n * @cssproperty --dds-modal-transition-timing - Timing function for transitions. (default: var(--dds-easing-ease-in-out))\n * @cssproperty --dds-modal-border-width - Border width of the modal. (default: var(--dds-border-width-base))\n * @cssproperty --dds-modal-border-color - Border color of the modal. (default: var(--dds-border-neutral-divider))\n * @cssproperty --dds-modal-border-radius - Border radius of the modal. (default: var(--dds-radius-large, 16px))\n * @cssproperty --dds-modal-background - Background color of the modal. (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-modal-header-margin-sm - Margin below the header. (default: var(--dds-spacing-400))\n * @cssproperty --dds-modal-header-margin-lg - Margin below the header. (default: var(--dds-spacing-600))\n * @cssproperty --dds-modal-footer-margin-sm - Margin above the footer. (default: var(--dds-spacing-400))\n * @cssproperty --dds-modal-footer-margin-lg - Margin above the footer. (default: var(--dds-spacing-600))\n * @cssproperty --dds-modal-footer-gap - Gap between footer elements. (default: var(--dds-spacing-400))\n * @cssproperty --dds-modal-close-margin - Margin for the close button. (default: var(--dds-spacing-300))\n * @cssproperty --dds-tray-width-side - Width of the side (left/right) trays. (default: 250px)\n * @cssproperty --dds-tray-min-width-horizontal - Minimum width of the horizontal (top/bottom) trays. (default: 400px)\n * @cssproperty --dds-tray-min-height-horizontal - Minimum height of the horizontal (top/bottom) trays. (default: 300px)\n * @cssproperty --dds-tray-min-height-vertical - Minimum height of the vertical (left/right) trays. (default: 100%)\n * @cssproperty --dds-tray-transform-duration - Duration of the transform animation. (default: 0.3s)\n * @cssproperty --dds-tray-transform-timing - Timing function for the transform animation. (default: ease-in-out)\n *\n * @csspart base - The main tray container.\n * @csspart panel - The panel of the tray.\n * @csspart header - The header of the tray.\n * @csspart footer - The footer of the tray.\n * @csspart content - The content of the tray.\n * @csspart header-container - The container of the header.\n * @csspart title - The title of the tray.\n * @csspart description - The description of the tray.\n * @csspart closebutton - The close button of the tray.\n *\n */\nexport default class DapDSTray extends ModalBaseElement {\n static tagName = 'dap-ds-tray'\n\n /** The placement of the tray.\n * @type { 'left' | 'right' | 'top' | 'bottom' }\n */\n @property({ reflect: true }) placement: 'left' | 'right' | 'top' | 'bottom' =\n 'bottom'\n\n constructor() {\n super()\n this.footer = 'false'\n this.header = 'false'\n\n if (this.title) {\n this.header = 'true'\n }\n }\n\n static readonly styles = css`\n ${unsafeCSS(ModalBaseElement.styles)}\n ${unsafeCSS(style)}\n `\n\n render() {\n return this.renderModal()\n }\n}\n"],"names":["_DapDSTray","ModalBaseElement","css","unsafeCSS","style","DapDSTray","__decorateClass","property"],"mappings":";;;;;;;;;AAsEA,MAAqBA,IAArB,MAAqBA,UAAkBC,EAAiB;AAAA,EAStD,cAAc;AACN,UAAA,GAHN,KAAA,YAAA,UAIA,KAAK,SAAS,SACd,KAAK,SAAS,SAEV,KAAK,UACP,KAAK,SAAS;AAAA,EAChB;AAAA,EAQF,SAAS;AACP,WAAO,KAAK,YAAY;AAAA,EAAA;AAE5B;AA1BED,EAAO,UAAU,eAkBjBA,EAAgB,SAASE;AAAA,MACrBC,EAAUF,EAAiB,MAAM,CAAC;AAAA,MAClCE,EAAUC,CAAK,CAAC;AAAA;AArBtB,IAAqBC,IAArBL;AAM+BM,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAM,CAAA;AAAA,GANRF,EAMU,WAAA,WAAA;"}
@@ -1,21 +1,18 @@
1
- import { cva as u } from "../../node_modules/class-variance-authority/dist/index.js";
1
+ import { cva as f } from "../../node_modules/class-variance-authority/dist/index.js";
2
2
  import { clsx as h } from "../../node_modules/clsx/dist/clsx.js";
3
- import "../../node_modules/@lit/reactive-element/reactive-element.js";
4
- import "../../node_modules/lit-html/lit-html.js";
5
- import "../../node_modules/lit-element/lit-element.js";
6
- import { property as p } from "../../node_modules/@lit/reactive-element/decorators/property.js";
7
- import { ifDefined as d } from "../../node_modules/lit-html/directives/if-defined.js";
8
- import { unsafeStatic as y, html as c } from "../../node_modules/lit-html/static.js";
9
- import { anchorClass as f } from "../../common/const.js";
10
- import { DdsElement as v } from "../../internal/dds-hu-element.js";
11
- import b from "./_styles/typography.scss.js";
12
- import { unsafeCSS as _ } from "../../node_modules/@lit/reactive-element/css-tag.js";
13
- var $ = Object.defineProperty, n = (m, r, s, e) => {
14
- for (var t = void 0, i = m.length - 1, o; i >= 0; i--)
15
- (o = m[i]) && (t = o(r, s, t) || t);
16
- return t && $(r, s, t), t;
3
+ import { unsafeCSS as m } from "lit";
4
+ import { property as p } from "lit/decorators.js";
5
+ import { ifDefined as d } from "lit/directives/if-defined.js";
6
+ import { unsafeStatic as y, html as c } from "lit/static-html.js";
7
+ import { anchorClass as v } from "../../common/const.js";
8
+ import { DdsElement as b } from "../../internal/dds-hu-element.js";
9
+ import _ from "./_styles/typography.scss.js";
10
+ var $ = Object.defineProperty, n = (u, e, s, r) => {
11
+ for (var t = void 0, i = u.length - 1, o; i >= 0; i--)
12
+ (o = u[i]) && (t = o(e, s, t) || t);
13
+ return t && $(e, s, t), t;
17
14
  };
18
- const l = u("typography", {
15
+ const l = f("typography", {
19
16
  variants: {
20
17
  variant: {
21
18
  h1: "heading typography-h1",
@@ -74,69 +71,69 @@ const l = u("typography", {
74
71
  class: "typography-caption-inverted"
75
72
  }
76
73
  ]
77
- }), g = class g extends v {
74
+ }), g = class g extends b {
78
75
  constructor() {
79
76
  super(...arguments), this.anchor = !1, this.inverted = !1;
80
77
  }
81
- firstUpdated(r) {
82
- super.firstUpdated(r), this.elementId && this.setAttribute("id", this.elementId);
78
+ firstUpdated(e) {
79
+ super.firstUpdated(e), this.elementId && this.setAttribute("id", this.elementId);
83
80
  }
84
81
  get elementId() {
85
82
  return this.id ? this.id : void 0;
86
83
  }
87
- _renderHeading(r, s, e, t, i) {
84
+ _renderHeading(e, s, r, t, i) {
88
85
  return c`
89
- <${y(e)}
86
+ <${y(r)}
90
87
  part="base"
91
- id=${d(r)}
88
+ id=${d(e)}
92
89
  class=${h(
93
- l({ variant: e, size: t, inverted: i }),
94
- { [f]: this.anchor },
90
+ l({ variant: r, size: t, inverted: i }),
91
+ { [v]: this.anchor },
95
92
  s
96
93
  )}
97
94
  >
98
95
  <slot></slot>
99
- </${y(e)}>
96
+ </${y(r)}>
100
97
  `;
101
98
  }
102
- _renderBody(r, s, e, t, i) {
99
+ _renderBody(e, s, r, t, i) {
103
100
  return c`
104
101
  <${y(t)}
105
- id=${d(r)}
102
+ id=${d(e)}
106
103
  part="base"
107
- class=${h(l({ variant: "body", size: e, inverted: i }), s)}
104
+ class=${h(l({ variant: "body", size: r, inverted: i }), s)}
108
105
  >
109
106
  <slot></slot>
110
107
  </${y(t)}>
111
108
  `;
112
109
  }
113
- _renderCaption(r, s, e) {
110
+ _renderCaption(e, s, r) {
114
111
  return c`
115
112
  <span
116
- id=${d(r)}
113
+ id=${d(e)}
117
114
  part="base"
118
115
  class=${h(
119
- l({ variant: "caption", inverted: e }),
116
+ l({ variant: "caption", inverted: r }),
120
117
  s
121
118
  )}>
122
119
  <slot></slot>
123
120
  </span>
124
121
  `;
125
122
  }
126
- _renderDescription(r, s, e, t) {
123
+ _renderDescription(e, s, r, t) {
127
124
  return c`
128
125
  <span
129
- id=${d(r)}
126
+ id=${d(e)}
130
127
  part="base"
131
128
  class=${h(
132
- l({ variant: "description", size: e, inverted: t }),
129
+ l({ variant: "description", size: r, inverted: t }),
133
130
  s
134
131
  )}>
135
132
  <slot></slot>
136
133
  </span>
137
134
  `;
138
135
  }
139
- _getElement(r, s, e, t = "", i = "p", o = !1) {
136
+ _getElement(e, s, r, t = "", i = "p", o = !1) {
140
137
  switch (s) {
141
138
  case "h1":
142
139
  case "h2":
@@ -145,18 +142,18 @@ const l = u("typography", {
145
142
  case "h5":
146
143
  case "h6":
147
144
  return this._renderHeading(
148
- r,
145
+ e,
149
146
  t,
150
147
  s,
151
- e,
148
+ r,
152
149
  o
153
150
  );
154
151
  case "body":
155
- return this._renderBody(r, t, e, i, o);
152
+ return this._renderBody(e, t, r, i, o);
156
153
  case "caption":
157
- return this._renderCaption(r, t, o);
154
+ return this._renderCaption(e, t, o);
158
155
  case "description":
159
- return this._renderDescription(r, t, e, o);
156
+ return this._renderDescription(e, t, r, o);
160
157
  default:
161
158
  return null;
162
159
  }
@@ -172,7 +169,7 @@ const l = u("typography", {
172
169
  );
173
170
  }
174
171
  };
175
- g.tagName = "dap-ds-typography", g.styles = _(b);
172
+ g.tagName = "dap-ds-typography", g.styles = m(_);
176
173
  let a = g;
177
174
  n([
178
175
  p({ reflect: !0 })