dap-design-system 0.62.4 → 0.63.0

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 (658) 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 +8 -0
  119. package/dist/components/datepicker/datepicker.component.js +76 -81
  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 +5 -0
  454. package/dist/components/timepicker/timepicker.component.js +90 -95
  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.js +1 -1
  487. package/dist/internal/mixin/labelPositionedMixin.js +1 -1
  488. package/dist/internal/mixin/labelableMixin.d.ts +1 -1
  489. package/dist/internal/mixin/labelableMixin.js +61 -63
  490. package/dist/internal/mixin/labelableMixin.js.map +1 -1
  491. package/dist/internal/mixin/sizedMixin.js +29 -27
  492. package/dist/internal/mixin/sizedMixin.js.map +1 -1
  493. package/dist/internal/templates/formLabel.d.ts +41 -0
  494. package/dist/internal/templates/formLabel.js +47 -0
  495. package/dist/internal/templates/formLabel.js.map +1 -0
  496. package/dist/localization/localization.d.ts +1 -2
  497. package/dist/localization/localization.js +77 -76
  498. package/dist/localization/localization.js.map +1 -1
  499. package/dist/localization/localize-controller.d.ts +12 -0
  500. package/dist/localization/localize-controller.js +51 -0
  501. package/dist/localization/localize-controller.js.map +1 -0
  502. package/dist/manifest/types/vue/index.d.ts +527 -312
  503. package/dist/manifest/vscode.html-custom-data.json +333 -279
  504. package/dist/manifest/web-types.json +723 -619
  505. package/dist/react/dap-ds-accordion/index.d.ts +1 -0
  506. package/dist/react/dap-ds-accordion/index.js.map +1 -1
  507. package/dist/react/dap-ds-anchor-heading/index.d.ts +1 -0
  508. package/dist/react/dap-ds-anchor-heading/index.js.map +1 -1
  509. package/dist/react/dap-ds-banner/index.d.ts +1 -1
  510. package/dist/react/dap-ds-banner/index.js.map +1 -1
  511. package/dist/react/dap-ds-breadcrumb/index.d.ts +1 -1
  512. package/dist/react/dap-ds-breadcrumb/index.js.map +1 -1
  513. package/dist/react/dap-ds-button-group/index.d.ts +45 -0
  514. package/dist/react/dap-ds-button-group/index.js +15 -0
  515. package/dist/react/dap-ds-button-group/index.js.map +1 -0
  516. package/dist/react/dap-ds-button-group-separator/index.d.ts +24 -0
  517. package/dist/react/dap-ds-button-group-separator/index.js +15 -0
  518. package/dist/react/dap-ds-button-group-separator/index.js.map +1 -0
  519. package/dist/react/dap-ds-button-group-text/index.d.ts +30 -0
  520. package/dist/react/dap-ds-button-group-text/index.js +15 -0
  521. package/dist/react/dap-ds-button-group-text/index.js.map +1 -0
  522. package/dist/react/dap-ds-calendar/index.d.ts +3 -0
  523. package/dist/react/dap-ds-calendar/index.js.map +1 -1
  524. package/dist/react/dap-ds-callout/index.d.ts +1 -0
  525. package/dist/react/dap-ds-callout/index.js.map +1 -1
  526. package/dist/react/dap-ds-card/index.d.ts +1 -0
  527. package/dist/react/dap-ds-card/index.js.map +1 -1
  528. package/dist/react/dap-ds-checkbox/index.d.ts +7 -1
  529. package/dist/react/dap-ds-checkbox/index.js.map +1 -1
  530. package/dist/react/dap-ds-chip/index.d.ts +1 -0
  531. package/dist/react/dap-ds-chip/index.js.map +1 -1
  532. package/dist/react/dap-ds-code-puncher/index.d.ts +4 -0
  533. package/dist/react/dap-ds-code-puncher/index.js.map +1 -1
  534. package/dist/react/dap-ds-combobox/index.d.ts +9 -1
  535. package/dist/react/dap-ds-combobox/index.js.map +1 -1
  536. package/dist/react/dap-ds-command/index.d.ts +3 -0
  537. package/dist/react/dap-ds-command/index.js.map +1 -1
  538. package/dist/react/dap-ds-copybox-input/index.d.ts +11 -0
  539. package/dist/react/dap-ds-copybox-input/index.js.map +1 -1
  540. package/dist/react/dap-ds-datatable/index.d.ts +17 -0
  541. package/dist/react/dap-ds-datatable/index.js.map +1 -1
  542. package/dist/react/dap-ds-datepicker/index.d.ts +8 -0
  543. package/dist/react/dap-ds-datepicker/index.js.map +1 -1
  544. package/dist/react/dap-ds-file-input/index.d.ts +3 -0
  545. package/dist/react/dap-ds-file-input/index.js.map +1 -1
  546. package/dist/react/dap-ds-file-input-list-item/index.d.ts +1 -0
  547. package/dist/react/dap-ds-file-input-list-item/index.js.map +1 -1
  548. package/dist/react/dap-ds-form-label/index.d.ts +1 -1
  549. package/dist/react/dap-ds-form-label/index.js.map +1 -1
  550. package/dist/react/dap-ds-icon-button/index.d.ts +1 -0
  551. package/dist/react/dap-ds-icon-button/index.js.map +1 -1
  552. package/dist/react/dap-ds-input-group/index.d.ts +4 -0
  553. package/dist/react/dap-ds-input-group/index.js.map +1 -1
  554. package/dist/react/dap-ds-list-item/index.d.ts +2 -0
  555. package/dist/react/dap-ds-list-item/index.js.map +1 -1
  556. package/dist/react/dap-ds-number-input/index.d.ts +7 -0
  557. package/dist/react/dap-ds-number-input/index.js.map +1 -1
  558. package/dist/react/dap-ds-official-website-banner/index.d.ts +1 -0
  559. package/dist/react/dap-ds-official-website-banner/index.js.map +1 -1
  560. package/dist/react/dap-ds-option-item/index.d.ts +1 -0
  561. package/dist/react/dap-ds-option-item/index.js.map +1 -1
  562. package/dist/react/dap-ds-option-list/index.d.ts +1 -1
  563. package/dist/react/dap-ds-option-list/index.js.map +1 -1
  564. package/dist/react/dap-ds-password-input/index.d.ts +12 -5
  565. package/dist/react/dap-ds-password-input/index.js.map +1 -1
  566. package/dist/react/dap-ds-radio-button/index.d.ts +5 -0
  567. package/dist/react/dap-ds-radio-button/index.js.map +1 -1
  568. package/dist/react/dap-ds-radio-group/index.d.ts +5 -0
  569. package/dist/react/dap-ds-radio-group/index.js.map +1 -1
  570. package/dist/react/dap-ds-scroll-area/index.d.ts +2 -1
  571. package/dist/react/dap-ds-scroll-area/index.js.map +1 -1
  572. package/dist/react/dap-ds-search/index.d.ts +6 -1
  573. package/dist/react/dap-ds-search/index.js.map +1 -1
  574. package/dist/react/dap-ds-select/index.d.ts +6 -0
  575. package/dist/react/dap-ds-select/index.js.map +1 -1
  576. package/dist/react/dap-ds-sidenav-group/index.d.ts +1 -0
  577. package/dist/react/dap-ds-sidenav-group/index.js.map +1 -1
  578. package/dist/react/dap-ds-snackbar/index.d.ts +0 -1
  579. package/dist/react/dap-ds-snackbar/index.js.map +1 -1
  580. package/dist/react/dap-ds-snackbar-message/index.d.ts +3 -1
  581. package/dist/react/dap-ds-snackbar-message/index.js.map +1 -1
  582. package/dist/react/dap-ds-stack/index.d.ts +2 -1
  583. package/dist/react/dap-ds-stack/index.js.map +1 -1
  584. package/dist/react/dap-ds-switch/index.d.ts +6 -0
  585. package/dist/react/dap-ds-switch/index.js.map +1 -1
  586. package/dist/react/dap-ds-tab-group/index.d.ts +4 -2
  587. package/dist/react/dap-ds-tab-group/index.js.map +1 -1
  588. package/dist/react/dap-ds-table/index.d.ts +2 -0
  589. package/dist/react/dap-ds-table/index.js.map +1 -1
  590. package/dist/react/dap-ds-table-cell/index.d.ts +1 -1
  591. package/dist/react/dap-ds-table-cell/index.js.map +1 -1
  592. package/dist/react/dap-ds-textarea/index.d.ts +2 -0
  593. package/dist/react/dap-ds-textarea/index.js.map +1 -1
  594. package/dist/react/dap-ds-time-grid/index.d.ts +3 -0
  595. package/dist/react/dap-ds-time-grid/index.js.map +1 -1
  596. package/dist/react/dap-ds-timepicker/index.d.ts +5 -0
  597. package/dist/react/dap-ds-timepicker/index.js.map +1 -1
  598. package/dist/react/dap-ds-toc/index.d.ts +2 -0
  599. package/dist/react/dap-ds-toc/index.js.map +1 -1
  600. package/dist/react/dap-ds-tooltip/index.d.ts +2 -0
  601. package/dist/react/dap-ds-tooltip/index.js.map +1 -1
  602. package/dist/react/dap-ds-tray/index.d.ts +4 -1
  603. package/dist/react/dap-ds-tray/index.js.map +1 -1
  604. package/dist/react/index.d.ts +11 -8
  605. package/dist/react-types.ts +11 -8
  606. package/dist/react.js +366 -360
  607. package/dist/react.js.map +1 -1
  608. package/package.json +14 -3
  609. package/dist/node_modules/@lit/context/lib/context-request-event.js +0 -14
  610. package/dist/node_modules/@lit/context/lib/context-request-event.js.map +0 -1
  611. package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js +0 -31
  612. package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js.map +0 -1
  613. package/dist/node_modules/@lit/context/lib/controllers/context-provider.js +0 -40
  614. package/dist/node_modules/@lit/context/lib/controllers/context-provider.js.map +0 -1
  615. package/dist/node_modules/@lit/context/lib/create-context.js +0 -12
  616. package/dist/node_modules/@lit/context/lib/create-context.js.map +0 -1
  617. package/dist/node_modules/@lit/context/lib/value-notifier.js +0 -37
  618. package/dist/node_modules/@lit/context/lib/value-notifier.js.map +0 -1
  619. package/dist/node_modules/@lit/reactive-element/css-tag.js +0 -51
  620. package/dist/node_modules/@lit/reactive-element/css-tag.js.map +0 -1
  621. package/dist/node_modules/@lit/reactive-element/decorators/base.js +0 -10
  622. package/dist/node_modules/@lit/reactive-element/decorators/base.js.map +0 -1
  623. package/dist/node_modules/@lit/reactive-element/decorators/property.js +0 -38
  624. package/dist/node_modules/@lit/reactive-element/decorators/property.js.map +0 -1
  625. package/dist/node_modules/@lit/reactive-element/decorators/query-all.js +0 -17
  626. package/dist/node_modules/@lit/reactive-element/decorators/query-all.js.map +0 -1
  627. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js +0 -20
  628. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js.map +0 -1
  629. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js +0 -20
  630. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js.map +0 -1
  631. package/dist/node_modules/@lit/reactive-element/decorators/query.js +0 -21
  632. package/dist/node_modules/@lit/reactive-element/decorators/query.js.map +0 -1
  633. package/dist/node_modules/@lit/reactive-element/decorators/state.js +0 -25
  634. package/dist/node_modules/@lit/reactive-element/decorators/state.js.map +0 -1
  635. package/dist/node_modules/@lit/reactive-element/reactive-element.js +0 -276
  636. package/dist/node_modules/@lit/reactive-element/reactive-element.js.map +0 -1
  637. package/dist/node_modules/lit-element/lit-element.js +0 -53
  638. package/dist/node_modules/lit-element/lit-element.js.map +0 -1
  639. package/dist/node_modules/lit-html/async-directive.js +0 -71
  640. package/dist/node_modules/lit-html/async-directive.js.map +0 -1
  641. package/dist/node_modules/lit-html/directive-helpers.js +0 -46
  642. package/dist/node_modules/lit-html/directive-helpers.js.map +0 -1
  643. package/dist/node_modules/lit-html/directive.js +0 -28
  644. package/dist/node_modules/lit-html/directive.js.map +0 -1
  645. package/dist/node_modules/lit-html/directives/if-defined.js +0 -11
  646. package/dist/node_modules/lit-html/directives/if-defined.js.map +0 -1
  647. package/dist/node_modules/lit-html/directives/map.js +0 -15
  648. package/dist/node_modules/lit-html/directives/map.js.map +0 -1
  649. package/dist/node_modules/lit-html/directives/repeat.js +0 -63
  650. package/dist/node_modules/lit-html/directives/repeat.js.map +0 -1
  651. package/dist/node_modules/lit-html/directives/style-map.js +0 -37
  652. package/dist/node_modules/lit-html/directives/style-map.js.map +0 -1
  653. package/dist/node_modules/lit-html/lit-html.js +0 -249
  654. package/dist/node_modules/lit-html/lit-html.js.map +0 -1
  655. package/dist/node_modules/lit-html/static.js +0 -34
  656. package/dist/node_modules/lit-html/static.js.map +0 -1
  657. package/dist/node_modules/lit-i18n/src/lit-i18n.js +0 -95
  658. package/dist/node_modules/lit-i18n/src/lit-i18n.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"snackbar.component.js","sources":["../../../src/components/snackbar/snackbar.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { html } from 'lit/static-html.js'\n\nimport {\n MessageOptionsType,\n SnackbarMessage,\n SnackbarPosition,\n} from '@/common/types'\nimport { translate } from '@/localization/localization'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './snackbar.scss?inline'\nimport DapDSSnackbarMessage from './snackbar-message.component'\n\n// Shared by every snackbar instance so a message is announced exactly once\nconst ANNOUNCER_ID = 'dds-snackbar-announcer'\n\nif (typeof window !== 'undefined') {\n window.showDapSnackbar = (message: string, options?: MessageOptionsType) => {\n DapDSSnackbar.show(message, options)\n }\n\n window.closeAllDapSnackbars = () => {\n DapDSSnackbar.closeAll()\n }\n}\n\n/**\n * `dap-ds-snackbar`\n * @summary The Snackbar is a container of sliding messages.\n * @element dap-ds-snackbar\n * @title - Snackbar\n *\n * @csspart host - The host element\n * @csspart message - The message part of the snackbar\n * @csspart message-base - The base part of the message\n * @csspart message-text - The text part of the message\n * @csspart message-closebutton - The close button part of the message\n * @csspart message-close-icon - The close icon part of the message\n * @csspart message-actions - The actions part of the message\n *\n * @cssproperty --dds-snackbar-spacing - Spacing used for positioning the snackbar (default: var(--dds-spacing-400))\n * @cssproperty --dds-snackbar-z-index - Z-index of the snackbar container (default: 10000)\n * @cssproperty --dds-snackbar-pointer-events - Pointer events behavior for the snackbar (default: auto)\n */\nexport default class DapDSSnackbar extends DdsElement {\n static tagName = 'dap-ds-snackbar'\n\n static dependencies = {\n 'dap-ds-snackbar-message': DapDSSnackbarMessage,\n }\n\n /** The maximum number of snackbar messages at a given time. */\n @property({ type: Number }) maxItems = 4\n\n /** The position of the snackbar\n * @type {'bottom-left' | 'bottom-right' | 'bottom-center' | 'top-right' | 'top-center'}\n */\n @property({ type: String }) position: SnackbarPosition = 'bottom-right'\n\n /** The duration of the snackbar message in milliseconds */\n @property({ type: Number }) duration = 6000\n\n /** Whether the snackbar should announce new messages to screen readers */\n @property({ type: Boolean }) announceMessages = true\n\n @state() private messages: SnackbarMessage[] = []\n @state() private idCounter = 0\n private timeouts: Map<string, ReturnType<typeof setTimeout>> = new Map()\n\n static readonly styles = unsafeCSS(styles)\n\n /**\n * Static method to show a snackbar message anywhere in the application\n * @param message - The message to display\n * @param options - Optional configuration for the message\n */\n static show(message: string, options?: MessageOptionsType): void {\n document.dispatchEvent(\n new CustomEvent('dds-show-snackbar', {\n detail: { message, options },\n bubbles: true,\n }),\n )\n }\n\n /**\n * Static method to show a success message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'successful')\n */\n static success(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'successful' })\n }\n\n /**\n * Static method to show an error message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'error')\n */\n static error(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'error' })\n }\n\n /**\n * Static method to show an information message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'information')\n */\n static info(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'information' })\n }\n\n /**\n * Static method to show a default message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'default')\n */\n static default(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'default' })\n }\n\n /**\n * Static method to close all snackbar messages globally\n */\n static closeAll(): void {\n document.dispatchEvent(\n new CustomEvent('dds-close-all-snackbars', {\n bubbles: true,\n }),\n )\n }\n\n /**\n * Close all currently displayed messages\n */\n closeAll(): void {\n this.clearAllTimeouts()\n this.messages = []\n }\n\n private generateId(): string {\n this.idCounter++\n\n return `dap-snackbar-${this.idCounter}`\n }\n\n addMessage(message: string, options?: MessageOptionsType): void {\n if (!message || typeof message !== 'string') {\n console.warn('DapDSSnackbar: Message must be a non-empty string')\n return\n }\n\n const newId = this.generateId()\n if (this.messages.length >= this.maxItems) {\n this.sliceMessage()\n }\n\n const newMessage: SnackbarMessage = {\n id: newId,\n message: message.trim(),\n ...(options && { options }),\n }\n\n this.messages = [...this.messages, newMessage]\n this.elapseMessages(newId, options?.duration, options?.persistent)\n\n // Announce the message if enabled\n if (this.announceMessages) {\n this.announceToScreenReader(message)\n }\n }\n\n private sliceMessage(): void {\n if (this.messages) {\n this.messages = this.messages.slice(1)\n }\n }\n\n private removeMessage(id: string): void {\n if (id) {\n this.messages = this.messages.filter(\n (messageItem: SnackbarMessage) => messageItem.id !== id,\n )\n this.clearTimeout(id)\n }\n }\n\n private elapseMessages(\n id: string,\n duration?: number,\n persistent?: boolean,\n ): void {\n // Persistent messages stay until the user closes them manually\n if (persistent) {\n return\n }\n\n const durationTime = duration ?? this.duration\n const timeoutId = setTimeout(() => {\n this.removeMessage(id)\n }, durationTime)\n this.timeouts.set(id, timeoutId)\n }\n\n private clearTimeout(id: string): void {\n const timeoutId = this.timeouts.get(id)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this.timeouts.delete(id)\n }\n }\n\n private clearAllTimeouts(): void {\n this.timeouts.forEach(timeoutId => clearTimeout(timeoutId))\n this.timeouts.clear()\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n document.addEventListener(\n 'dds-show-snackbar',\n this.handleShowSnackbarEvent as EventListener,\n )\n document.addEventListener(\n 'dds-close-all-snackbars',\n this.handleCloseAllEvent as EventListener,\n )\n document.addEventListener('keydown', this.handleKeyDown)\n }\n\n disconnectedCallback(): void {\n this.clearAllTimeouts()\n document.removeEventListener(\n 'dds-show-snackbar',\n this.handleShowSnackbarEvent as EventListener,\n )\n document.removeEventListener(\n 'dds-close-all-snackbars',\n this.handleCloseAllEvent as EventListener,\n )\n document.removeEventListener('keydown', this.handleKeyDown)\n super.disconnectedCallback()\n }\n\n private handleShowSnackbarEvent = (\n event: CustomEvent<{ message: string; options?: MessageOptionsType }>,\n ) => {\n const { message, options } = event.detail\n this.addMessage(message, options)\n }\n\n private handleCloseAllEvent = () => {\n this.closeAll()\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.messages.length > 0) {\n // Close the most recent message\n const lastMessage = this.messages[this.messages.length - 1]\n if (lastMessage) {\n this.removeMessage(lastMessage.id)\n }\n }\n }\n\n // Single announcement channel (WCAG 4.1.3, Figma #127). A polite status region\n // in light DOM is announced reliably by VoiceOver, unlike live regions inside\n // shadow roots, so the messages themselves carry no live role.\n private announceToScreenReader(message: string): void {\n let announcer = document.getElementById(ANNOUNCER_ID)\n if (!announcer) {\n announcer = document.createElement('div')\n announcer.id = ANNOUNCER_ID\n announcer.setAttribute('role', 'status')\n announcer.setAttribute('aria-live', 'polite')\n announcer.setAttribute('aria-atomic', 'true')\n Object.assign(announcer.style, {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n })\n document.body.appendChild(announcer)\n }\n\n // Clear first so repeating the same message is announced again\n announcer.textContent = ''\n const region = announcer\n setTimeout(() => {\n region.textContent = message\n }, 100)\n }\n\n private _closeMessage(event: CustomEvent<{ id: string }>) {\n if (event?.detail?.id) {\n this.removeMessage(event.detail.id)\n }\n }\n\n render() {\n return html`<div\n class=${clsx('snackbar', `snackbar--${this.position}`)}\n role=\"region\"\n aria-label=${translate('snackbar.notifications')}>\n ${repeat(\n this.messages,\n messageItem => messageItem.id,\n messageItem => html`\n <dap-ds-snackbar-message\n part=\"message\"\n exportparts=\"base:message-base, text:message-text, closebutton:message-closebutton, close-icon:message-close-icon, actions:message-actions\"\n @dds-close=${this._closeMessage}\n id=${messageItem.id}\n message=${messageItem.message}\n alertType=${ifDefined(messageItem?.options?.alertType)}\n .actions=${messageItem?.options?.actions}\n closeButton=${ifDefined(messageItem?.options?.closeButton)}\n .customStyle=${messageItem?.options?.customStyle}\n position=${this.position}></dap-ds-snackbar-message>\n `,\n )}\n </div>`\n }\n}\n"],"names":["ANNOUNCER_ID","message","options","DapDSSnackbar","_DapDSSnackbar","DdsElement","event","lastMessage","__spreadProps","__spreadValues","newId","newMessage","id","messageItem","duration","persistent","durationTime","timeoutId","announcer","region","_a","html","clsx","translate","repeat","ifDefined","_b","_c","_d","DapDSSnackbarMessage","unsafeCSS","styles","__decorateClass","property","state"],"mappings":"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"}
1
+ {"version":3,"file":"snackbar.component.js","sources":["../../../src/components/snackbar/snackbar.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { html } from 'lit/static-html.js'\n\nimport {\n MessageOptionsType,\n SnackbarMessage,\n SnackbarPosition,\n} from '@/common/types'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './snackbar.scss?inline'\nimport DapDSSnackbarMessage from './snackbar-message.component'\n\n// Shared by every snackbar instance so a message is announced exactly once\nconst ANNOUNCER_ID = 'dds-snackbar-announcer'\n\nif (typeof window !== 'undefined') {\n window.showDapSnackbar = (message: string, options?: MessageOptionsType) => {\n DapDSSnackbar.show(message, options)\n }\n\n window.closeAllDapSnackbars = () => {\n DapDSSnackbar.closeAll()\n }\n}\n\n/**\n * `dap-ds-snackbar`\n * @summary The Snackbar is a container of sliding messages.\n * @element dap-ds-snackbar\n * @title - Snackbar\n *\n * @csspart message - The message part of the snackbar\n * @csspart message-base - The base part of the message\n * @csspart message-text - The text part of the message\n * @csspart message-closebutton - The close button part of the message\n * @csspart message-close-icon - The close icon part of the message\n * @csspart message-actions - The actions part of the message\n *\n * @cssproperty --dds-snackbar-spacing - Spacing used for positioning the snackbar (default: var(--dds-spacing-400))\n * @cssproperty --dds-snackbar-z-index - Z-index of the snackbar container (default: 10000)\n * @cssproperty --dds-snackbar-pointer-events - Pointer events behavior for the snackbar (default: auto)\n */\nexport default class DapDSSnackbar extends DdsElement {\n static tagName = 'dap-ds-snackbar'\n\n static dependencies = {\n 'dap-ds-snackbar-message': DapDSSnackbarMessage,\n }\n\n /** The maximum number of snackbar messages at a given time. */\n @property({ type: Number }) maxItems = 4\n\n /** The position of the snackbar\n * @type {'bottom-left' | 'bottom-right' | 'bottom-center' | 'top-right' | 'top-center'}\n */\n @property({ type: String }) position: SnackbarPosition = 'bottom-right'\n\n /** The duration of the snackbar message in milliseconds */\n @property({ type: Number }) duration = 6000\n\n /** Whether the snackbar should announce new messages to screen readers */\n @property({ type: Boolean }) announceMessages = true\n\n @state() private messages: SnackbarMessage[] = []\n @state() private idCounter = 0\n private timeouts: Map<string, ReturnType<typeof setTimeout>> = new Map()\n\n static readonly styles = unsafeCSS(styles)\n\n /**\n * Static method to show a snackbar message anywhere in the application\n * @param message - The message to display\n * @param options - Optional configuration for the message\n */\n static show(message: string, options?: MessageOptionsType): void {\n document.dispatchEvent(\n new CustomEvent('dds-show-snackbar', {\n detail: { message, options },\n bubbles: true,\n }),\n )\n }\n\n /**\n * Static method to show a success message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'successful')\n */\n static success(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'successful' })\n }\n\n /**\n * Static method to show an error message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'error')\n */\n static error(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'error' })\n }\n\n /**\n * Static method to show an information message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'information')\n */\n static info(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'information' })\n }\n\n /**\n * Static method to show a default message\n * @param message - The message to display\n * @param options - Optional configuration (alertType will be overridden to 'default')\n */\n static default(\n message: string,\n options?: Omit<MessageOptionsType, 'alertType'>,\n ): void {\n this.show(message, { ...options, alertType: 'default' })\n }\n\n /**\n * Static method to close all snackbar messages globally\n */\n static closeAll(): void {\n document.dispatchEvent(\n new CustomEvent('dds-close-all-snackbars', {\n bubbles: true,\n }),\n )\n }\n\n /**\n * Close all currently displayed messages\n */\n closeAll(): void {\n this.clearAllTimeouts()\n this.messages = []\n }\n\n private generateId(): string {\n this.idCounter++\n\n return `dap-snackbar-${this.idCounter}`\n }\n\n addMessage(message: string, options?: MessageOptionsType): void {\n if (!message || typeof message !== 'string') {\n console.warn('DapDSSnackbar: Message must be a non-empty string')\n return\n }\n\n const newId = this.generateId()\n if (this.messages.length >= this.maxItems) {\n this.sliceMessage()\n }\n\n const newMessage: SnackbarMessage = {\n id: newId,\n message: message.trim(),\n ...(options && { options }),\n }\n\n this.messages = [...this.messages, newMessage]\n this.elapseMessages(newId, options?.duration, options?.persistent)\n\n // Announce the message if enabled\n if (this.announceMessages) {\n this.announceToScreenReader(message)\n }\n }\n\n private sliceMessage(): void {\n if (this.messages) {\n this.messages = this.messages.slice(1)\n }\n }\n\n private removeMessage(id: string): void {\n if (id) {\n this.messages = this.messages.filter(\n (messageItem: SnackbarMessage) => messageItem.id !== id,\n )\n this.clearTimeout(id)\n }\n }\n\n private elapseMessages(\n id: string,\n duration?: number,\n persistent?: boolean,\n ): void {\n // Persistent messages stay until the user closes them manually\n if (persistent) {\n return\n }\n\n const durationTime = duration ?? this.duration\n const timeoutId = setTimeout(() => {\n this.removeMessage(id)\n }, durationTime)\n this.timeouts.set(id, timeoutId)\n }\n\n private clearTimeout(id: string): void {\n const timeoutId = this.timeouts.get(id)\n if (timeoutId) {\n clearTimeout(timeoutId)\n this.timeouts.delete(id)\n }\n }\n\n private clearAllTimeouts(): void {\n this.timeouts.forEach(timeoutId => clearTimeout(timeoutId))\n this.timeouts.clear()\n }\n\n connectedCallback(): void {\n super.connectedCallback()\n document.addEventListener(\n 'dds-show-snackbar',\n this.handleShowSnackbarEvent as EventListener,\n )\n document.addEventListener(\n 'dds-close-all-snackbars',\n this.handleCloseAllEvent as EventListener,\n )\n document.addEventListener('keydown', this.handleKeyDown)\n }\n\n disconnectedCallback(): void {\n this.clearAllTimeouts()\n document.removeEventListener(\n 'dds-show-snackbar',\n this.handleShowSnackbarEvent as EventListener,\n )\n document.removeEventListener(\n 'dds-close-all-snackbars',\n this.handleCloseAllEvent as EventListener,\n )\n document.removeEventListener('keydown', this.handleKeyDown)\n super.disconnectedCallback()\n }\n\n private handleShowSnackbarEvent = (\n event: CustomEvent<{ message: string; options?: MessageOptionsType }>,\n ) => {\n const { message, options } = event.detail\n this.addMessage(message, options)\n }\n\n private handleCloseAllEvent = () => {\n this.closeAll()\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.messages.length > 0) {\n // Close the most recent message\n const lastMessage = this.messages[this.messages.length - 1]\n if (lastMessage) {\n this.removeMessage(lastMessage.id)\n }\n }\n }\n\n // Single announcement channel (WCAG 4.1.3, Figma #127). A polite status region\n // in light DOM is announced reliably by VoiceOver, unlike live regions inside\n // shadow roots, so the messages themselves carry no live role.\n private announceToScreenReader(message: string): void {\n let announcer = document.getElementById(ANNOUNCER_ID)\n if (!announcer) {\n announcer = document.createElement('div')\n announcer.id = ANNOUNCER_ID\n announcer.setAttribute('role', 'status')\n announcer.setAttribute('aria-live', 'polite')\n announcer.setAttribute('aria-atomic', 'true')\n Object.assign(announcer.style, {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n })\n document.body.appendChild(announcer)\n }\n\n // Clear first so repeating the same message is announced again\n announcer.textContent = ''\n const region = announcer\n setTimeout(() => {\n region.textContent = message\n }, 100)\n }\n\n private _closeMessage(event: CustomEvent<{ id: string }>) {\n if (event?.detail?.id) {\n this.removeMessage(event.detail.id)\n }\n }\n\n render() {\n return html`<div\n class=${clsx('snackbar', `snackbar--${this.position}`)}\n role=\"region\"\n aria-label=${this.localize.t('snackbar.notifications')}>\n ${repeat(\n this.messages,\n messageItem => messageItem.id,\n messageItem => html`\n <dap-ds-snackbar-message\n part=\"message\"\n exportparts=\"base:message-base, text:message-text, closebutton:message-closebutton, close-icon:message-close-icon, actions:message-actions\"\n @dds-close=${this._closeMessage}\n id=${messageItem.id}\n message=${messageItem.message}\n alertType=${ifDefined(messageItem?.options?.alertType)}\n .actions=${messageItem?.options?.actions}\n closeButton=${ifDefined(messageItem?.options?.closeButton)}\n .customStyle=${messageItem?.options?.customStyle}\n position=${this.position}></dap-ds-snackbar-message>\n `,\n )}\n </div>`\n }\n}\n"],"names":["ANNOUNCER_ID","message","options","DapDSSnackbar","_DapDSSnackbar","DdsElement","event","lastMessage","__spreadProps","__spreadValues","newId","newMessage","id","messageItem","duration","persistent","durationTime","timeoutId","announcer","region","_a","html","clsx","repeat","ifDefined","_b","_c","_d","DapDSSnackbarMessage","unsafeCSS","styles","__decorateClass","property","state"],"mappings":"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"}
@@ -1,33 +1,28 @@
1
- import { clsx as f } from "../../node_modules/clsx/dist/clsx.js";
2
- import "../../node_modules/@lit/reactive-element/reactive-element.js";
3
- import { html as d } from "../../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 { state as u } from "../../node_modules/@lit/reactive-element/decorators/state.js";
7
- import { ifDefined as m } from "../../node_modules/lit-html/directives/if-defined.js";
8
- import { translate as y } from "../../node_modules/lit-i18n/src/lit-i18n.js";
1
+ import { clsx as u } from "../../node_modules/clsx/dist/clsx.js";
2
+ import { unsafeCSS as f, html as p } from "lit";
3
+ import { property as n, state as y } from "lit/decorators.js";
4
+ import { ifDefined as m } from "lit/directives/if-defined.js";
9
5
  import { DdsElement as S } from "../../internal/dds-hu-element.js";
10
6
  import { SizedMixin as z } from "../../internal/mixin/sizedMixin.js";
11
7
  import v from "../icon/icon.component.js";
12
8
  import b from "./spinner.scss.js";
13
- import { unsafeCSS as _ } from "../../node_modules/@lit/reactive-element/css-tag.js";
14
- var $ = Object.defineProperty, o = (h, t, p, c) => {
15
- for (var e = void 0, i = h.length - 1, n; i >= 0; i--)
16
- (n = h[i]) && (e = n(t, p, e) || e);
17
- return e && $(t, p, e), e;
9
+ var _ = Object.defineProperty, o = (h, t, c, d) => {
10
+ for (var e = void 0, i = h.length - 1, a; i >= 0; i--)
11
+ (a = h[i]) && (e = a(t, c, e) || e);
12
+ return e && _(t, c, e), e;
18
13
  };
19
- const x = z(S), l = class l extends x {
14
+ const $ = z(S), l = class l extends $ {
20
15
  constructor() {
21
- super(), this.variant = "neutral", this.noColor = !1, this.orientation = "vertical", this.ariaLive = "polite", this.delay = 0, this._visible = !1, this.size = "lg";
16
+ super(), this.variant = "neutral", this.noColor = !1, this.orientation = "vertical", this.ariaLive = "polite", this.delay = 0, this._visible = !0, this.size = "lg";
22
17
  }
23
18
  /** Maps effectiveSize from SizedMixin to spinner visual size (xxs→xs, else effectiveSize). */
24
19
  get spinnerSize() {
25
20
  return this.effectiveSize === "xxs" ? "xs" : this.effectiveSize;
26
21
  }
27
22
  connectedCallback() {
28
- super.connectedCallback(), this.delay > 0 ? this._delayTimeout = window.setTimeout(() => {
23
+ super.connectedCallback(), this.delay > 0 && (this._visible = !1, this._delayTimeout = window.setTimeout(() => {
29
24
  this._visible = !0;
30
- }, this.delay) : this._visible = !0;
25
+ }, this.delay));
31
26
  }
32
27
  disconnectedCallback() {
33
28
  super.disconnectedCallback(), this._delayTimeout && clearTimeout(this._delayTimeout);
@@ -48,20 +43,20 @@ const x = z(S), l = class l extends x {
48
43
  'slot[name="icon"]'
49
44
  );
50
45
  if (!t) return;
51
- const p = t.assignedElements({
46
+ const c = t.assignedElements({
52
47
  flatten: !0
53
- }), c = !!this.customStyles, e = getComputedStyle(this).getPropertyValue(
48
+ }), d = !!this.customStyles, e = getComputedStyle(this).getPropertyValue(
54
49
  "--dds-spinner-animation-duration"
55
50
  ) || "1s";
56
- p.forEach((i) => {
51
+ c.forEach((i) => {
57
52
  if (i instanceof HTMLElement) {
58
- const n = window.matchMedia(
53
+ const a = window.matchMedia(
59
54
  "(prefers-reduced-motion: reduce)"
60
55
  ).matches;
61
56
  if (i.tagName === "DAP-DS-ICON" || i.localName === "dap-ds-icon")
62
- c ? i.style.animation = "" : n ? i.style.animation = `dds-fade ${e} ease-in-out infinite` : i.style.animation = `dds-spin ${e} linear infinite`, i.style.display = "block", this.spinnerSize && i.setAttribute("size", this.spinnerSize), this.staticSize !== void 0 && i.setAttribute("staticSize", this.staticSize.toString());
57
+ d ? i.style.animation = "" : a ? i.style.animation = `dds-fade ${e} ease-in-out infinite` : i.style.animation = `dds-spin ${e} linear infinite`, i.style.display = "block", this.spinnerSize && i.setAttribute("size", this.spinnerSize), this.staticSize !== void 0 && i.setAttribute("staticSize", this.staticSize.toString());
63
58
  else {
64
- c ? i.style.animation = "" : n ? i.style.animation = `dds-fade ${e} ease-in-out infinite` : i.style.animation = `dds-spin ${e} linear infinite`, i.style.display = "block";
59
+ d ? i.style.animation = "" : a ? i.style.animation = `dds-fade ${e} ease-in-out infinite` : i.style.animation = `dds-spin ${e} linear infinite`, i.style.display = "block";
65
60
  const r = i.querySelector("dap-ds-icon");
66
61
  r && (r.style.display = "block", r.style.animation = "", this.spinnerSize && r.setAttribute("size", this.spinnerSize), this.staticSize !== void 0 && r.setAttribute(
67
62
  "staticSize",
@@ -76,14 +71,14 @@ const x = z(S), l = class l extends x {
76
71
  }
77
72
  render() {
78
73
  var t;
79
- return this._visible ? d`
74
+ return this._visible ? p`
80
75
  <div
81
76
  part="base"
82
77
  role="status"
83
78
  name="icon-spinner"
84
- aria-label=${(t = this.ariaLabel) != null ? t : y("spinner")}
79
+ aria-label=${(t = this.ariaLabel) != null ? t : this.localize.t("spinner")}
85
80
  aria-live=${this.ariaLive}
86
- class="${f("spinner", {
81
+ class="${u("spinner", {
87
82
  [`spinner--${this.spinnerSize}`]: this.spinnerSize,
88
83
  [`spinner--${this.variant}`]: this.variant,
89
84
  [`spinner--${this.orientation}`]: this.orientation
@@ -97,44 +92,44 @@ const x = z(S), l = class l extends x {
97
92
  name="loading-spinner"
98
93
  class="spinner__icon"></dap-ds-icon>
99
94
  </slot>
100
- ${this.text ? d` <span
95
+ ${this.text ? p` <span
101
96
  part="text"
102
- class=${f("spinner__text", {
97
+ class=${u("spinner__text", {
103
98
  "spinner__text--no-color": this.noColor
104
99
  })}>
105
100
  ${this.text}
106
- </span>` : d`<slot></slot>`}
101
+ </span>` : p`<slot></slot>`}
107
102
  </div>
108
103
  ` : null;
109
104
  }
110
105
  };
111
106
  l.tagName = "dap-ds-spinner", l.dependencies = {
112
107
  "dap-ds-icon": v
113
- }, l.styles = _(b);
108
+ }, l.styles = f(b);
114
109
  let s = l;
115
110
  o([
116
- a({ type: String, reflect: !0 })
111
+ n({ type: String, reflect: !0 })
117
112
  ], s.prototype, "variant");
118
113
  o([
119
- a({ type: Number })
114
+ n({ type: Number })
120
115
  ], s.prototype, "staticSize");
121
116
  o([
122
- a({ type: String })
117
+ n({ type: String })
123
118
  ], s.prototype, "text");
124
119
  o([
125
- a({ type: Boolean, reflect: !0 })
120
+ n({ type: Boolean, reflect: !0 })
126
121
  ], s.prototype, "noColor");
127
122
  o([
128
- a({ type: String, reflect: !0 })
123
+ n({ type: String, reflect: !0 })
129
124
  ], s.prototype, "orientation");
130
125
  o([
131
- a({ type: String, attribute: "aria-live" })
126
+ n({ type: String, attribute: "aria-live" })
132
127
  ], s.prototype, "ariaLive");
133
128
  o([
134
- a({ type: Number })
129
+ n({ type: Number })
135
130
  ], s.prototype, "delay");
136
131
  o([
137
- u()
132
+ y()
138
133
  ], s.prototype, "_visible");
139
134
  export {
140
135
  s as default
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.component.js","sources":["../../../src/components/spinner/spinner.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { html, PropertyValueMap, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { translate } from 'lit-i18n'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIcon from '../icon/icon.component'\nimport styles from './spinner.scss?inline'\n\nconst SpinnerBaseWithSized = SizedMixin(DdsElement)\n\nexport type SpinnerVariant =\n | 'neutral'\n | 'brand'\n | 'negative'\n | 'positive'\n | 'inverted'\n\nexport type SpinnerOrientation = 'vertical' | 'horizontal'\n\n/**\n * `dap-ds-spinner`\n * @summary Loading spinner component.\n * @element dap-ds-spinner\n * @title - Spinner\n *\n * @csspart base - The main spinner container.\n * @csspart icon - The loading icon element.\n * @csspart icon-base - The base of the loading icon.\n * @csspart icon-content - The content of the loading icon.\n * @csspart text - The loading text element.\n *\n * @slot - The loading text content.\n * @slot icon - The loading icon content.\n *\n * @cssprop --dds-spinner-icon-color-neutral - Color for neutral spinner icons (default: var(--dds-icon-neutral-base))\n * @cssprop --dds-spinner-icon-color-brand - Color for brand spinner icons (default: var(--dds-icon-brand-subtle))\n * @cssprop --dds-spinner-icon-color-negative - Color for negative spinner icons (default: var(--dds-icon-negative-subtle))\n * @cssprop --dds-spinner-icon-color-positive - Color for positive spinner icons (default: var(--dds-icon-positive-subtle))\n * @cssprop --dds-spinner-icon-color-inverted - Color for inverted spinner icons (default: var(--dds-icon-neutral-inverted))\n * @cssprop --dds-spinner-text-spacing - Spacing between spinner and text (default: var(--dds-spacing-400))\n * @cssprop --dds-spinner-animation-duration - Duration of the spinner animation (default: 1s)\n *\n * @property { 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' } size - The size of the spinner. Default is `lg`. See SizedMixin.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\"); see SizedMixin.\n */\nexport default class DapDSSpinner extends SpinnerBaseWithSized {\n static tagName = 'dap-ds-spinner'\n\n static dependencies = {\n 'dap-ds-icon': DapDSIcon,\n }\n\n constructor() {\n super()\n this.size = 'lg'\n }\n /**\n * The variant of the spinner.\n * @type {\"neutral\" | \"brand\" | \"negative\" | \"positive\" | \"inverted\"}\n */\n @property({ type: String, reflect: true }) variant: SpinnerVariant = 'neutral'\n\n /** The size of the spinner in pixels. This overrides the size attribute */\n @property({ type: Number }) staticSize?: number\n /** The loading text. */\n @property({ type: String }) text: string\n /** Removes the text color */\n @property({ type: Boolean, reflect: true }) noColor = false\n /**\n * The orientation of the spinner (icon and text layout).\n * @type {\"vertical\" | \"horizontal\"}\n */\n @property({ type: String, reflect: true }) orientation: SpinnerOrientation =\n 'vertical'\n\n /**\n * The aria-live politeness level for screen readers.\n * @type {\"polite\" | \"assertive\" | \"off\"}\n */\n @property({ type: String, attribute: 'aria-live' })\n ariaLive: 'polite' | 'assertive' | 'off' = 'polite'\n /**\n * Delay in milliseconds before showing the spinner.\n * Prevents flash for quick operations.\n */\n @property({ type: Number }) delay = 0\n\n /** @internal */\n @state() private _visible = false\n\n private _delayTimeout?: number\n\n static readonly styles = unsafeCSS(styles)\n\n /** Maps effectiveSize from SizedMixin to spinner visual size (xxs→xs, else effectiveSize). */\n private get spinnerSize(): 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' {\n return this.effectiveSize === 'xxs' ? 'xs' : this.effectiveSize\n }\n\n connectedCallback() {\n super.connectedCallback()\n if (this.delay > 0) {\n this._delayTimeout = window.setTimeout(() => {\n this._visible = true\n }, this.delay)\n } else {\n this._visible = true\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this._delayTimeout) {\n clearTimeout(this._delayTimeout)\n }\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n this._setupIconSlot()\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n // Update slotted icons when size, staticSize, or customStyles changes\n if (\n _changedProperties.has('size') ||\n _changedProperties.has('sizeMap') ||\n _changedProperties.has('staticSize') ||\n _changedProperties.has('customStyles')\n ) {\n this._updateSlottedIcons()\n }\n }\n\n private _setupIconSlot(): void {\n // Initial update in case icons are already slotted\n this._updateSlottedIcons()\n }\n\n private _updateSlottedIcons(): void {\n try {\n if (!this.shadowRoot) return\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]',\n ) as HTMLSlotElement\n\n if (!iconSlot) return\n\n const assignedElements = iconSlot.assignedElements({\n flatten: true,\n })\n\n // If custom styles are provided, don't apply inline animations\n // Let the custom CSS handle the animation instead\n const hasCustomStyles = !!this.customStyles\n\n const animationDuration =\n getComputedStyle(this).getPropertyValue(\n '--dds-spinner-animation-duration',\n ) || '1s'\n\n assignedElements.forEach(element => {\n if (element instanceof HTMLElement) {\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)',\n ).matches\n\n // If it's an icon component directly slotted, apply animation and size\n if (\n element.tagName === 'DAP-DS-ICON' ||\n element.localName === 'dap-ds-icon'\n ) {\n // Only apply animation via inline styles if no custom styles are provided\n // Custom styles should handle animation in that case\n if (!hasCustomStyles) {\n if (prefersReducedMotion) {\n element.style.animation = `dds-fade ${animationDuration} ease-in-out infinite`\n } else {\n element.style.animation = `dds-spin ${animationDuration} linear infinite`\n }\n } else {\n // Clear any existing inline animation to let CSS take over\n element.style.animation = ''\n }\n element.style.display = 'block'\n\n if (this.spinnerSize) {\n element.setAttribute('size', this.spinnerSize)\n }\n if (this.staticSize !== undefined) {\n element.setAttribute('staticSize', this.staticSize.toString())\n }\n } else {\n // If it's a wrapper element (like span), apply animation only to the wrapper\n // The nested icon will rotate with the wrapper, so we don't need to animate it separately\n if (!hasCustomStyles) {\n if (prefersReducedMotion) {\n element.style.animation = `dds-fade ${animationDuration} ease-in-out infinite`\n } else {\n element.style.animation = `dds-spin ${animationDuration} linear infinite`\n }\n } else {\n // Clear any existing inline animation to let CSS take over\n element.style.animation = ''\n }\n element.style.display = 'block'\n\n // Update nested icon size attributes but don't apply animation to it\n const nestedIcon = element.querySelector('dap-ds-icon')\n if (nestedIcon) {\n nestedIcon.style.display = 'block'\n // Remove any existing animation from nested icon to prevent double animation\n nestedIcon.style.animation = ''\n\n if (this.spinnerSize) {\n nestedIcon.setAttribute('size', this.spinnerSize)\n }\n if (this.staticSize !== undefined) {\n nestedIcon.setAttribute(\n 'staticSize',\n this.staticSize.toString(),\n )\n }\n }\n }\n }\n })\n } catch (error) {\n console.warn('Failed to update slotted icons:', error)\n }\n }\n\n render() {\n if (!this._visible) {\n return null\n }\n\n return html`\n <div\n part=\"base\"\n role=\"status\"\n name=\"icon-spinner\"\n aria-label=${this.ariaLabel ?? translate('spinner')}\n aria-live=${this.ariaLive}\n class=\"${clsx('spinner', {\n [`spinner--${this.spinnerSize}`]: this.spinnerSize,\n [`spinner--${this.variant}`]: this.variant,\n [`spinner--${this.orientation}`]: this.orientation,\n })}\">\n <slot name=\"icon\" @slotchange=${this._updateSlottedIcons}>\n <dap-ds-icon\n part=\"icon\"\n exportparts=\"base: icon-base, content: icon-content\"\n size=${this.spinnerSize}\n staticSize=${ifDefined(this.staticSize)}\n name=\"loading-spinner\"\n class=\"spinner__icon\"></dap-ds-icon>\n </slot>\n ${this.text\n ? html` <span\n part=\"text\"\n class=${clsx('spinner__text', {\n 'spinner__text--no-color': this.noColor,\n })}>\n ${this.text}\n </span>`\n : html`<slot></slot>`}\n </div>\n `\n }\n}\n"],"names":["SpinnerBaseWithSized","SizedMixin","DdsElement","_DapDSSpinner","_changedProperties","iconSlot","assignedElements","hasCustomStyles","animationDuration","element","prefersReducedMotion","nestedIcon","error","html","_a","translate","clsx","ifDefined","DapDSIcon","unsafeCSS","styles","DapDSSpinner","__decorateClass","property","state"],"mappings":"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"}
1
+ {"version":3,"file":"spinner.component.js","sources":["../../../src/components/spinner/spinner.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { html, PropertyValueMap, unsafeCSS } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIcon from '../icon/icon.component'\nimport styles from './spinner.scss?inline'\n\nconst SpinnerBaseWithSized = SizedMixin(DdsElement)\n\nexport type SpinnerVariant =\n | 'neutral'\n | 'brand'\n | 'negative'\n | 'positive'\n | 'inverted'\n\nexport type SpinnerOrientation = 'vertical' | 'horizontal'\n\n/**\n * `dap-ds-spinner`\n * @summary Loading spinner component.\n * @element dap-ds-spinner\n * @title - Spinner\n *\n * @csspart base - The main spinner container.\n * @csspart icon - The loading icon element.\n * @csspart icon-base - The base of the loading icon.\n * @csspart icon-content - The content of the loading icon.\n * @csspart text - The loading text element.\n *\n * @slot - The loading text content.\n * @slot icon - The loading icon content.\n *\n * @cssprop --dds-spinner-icon-color-neutral - Color for neutral spinner icons (default: var(--dds-icon-neutral-base))\n * @cssprop --dds-spinner-icon-color-brand - Color for brand spinner icons (default: var(--dds-icon-brand-subtle))\n * @cssprop --dds-spinner-icon-color-negative - Color for negative spinner icons (default: var(--dds-icon-negative-subtle))\n * @cssprop --dds-spinner-icon-color-positive - Color for positive spinner icons (default: var(--dds-icon-positive-subtle))\n * @cssprop --dds-spinner-icon-color-inverted - Color for inverted spinner icons (default: var(--dds-icon-neutral-inverted))\n * @cssprop --dds-spinner-text-spacing - Spacing between spinner and text (default: var(--dds-spacing-400))\n * @cssprop --dds-spinner-animation-duration - Duration of the spinner animation (default: 1s)\n *\n * @property { 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' } size - The size of the spinner. Default is `lg`. See SizedMixin.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\"); see SizedMixin.\n */\nexport default class DapDSSpinner extends SpinnerBaseWithSized {\n static tagName = 'dap-ds-spinner'\n\n static dependencies = {\n 'dap-ds-icon': DapDSIcon,\n }\n\n constructor() {\n super()\n this.size = 'lg'\n }\n /**\n * The variant of the spinner.\n * @type {\"neutral\" | \"brand\" | \"negative\" | \"positive\" | \"inverted\"}\n */\n @property({ type: String, reflect: true }) variant: SpinnerVariant = 'neutral'\n\n /** The size of the spinner in pixels. This overrides the size attribute */\n @property({ type: Number }) staticSize?: number\n /** The loading text. */\n @property({ type: String }) text: string\n /** Removes the text color */\n @property({ type: Boolean, reflect: true }) noColor = false\n /**\n * The orientation of the spinner (icon and text layout).\n * @type {\"vertical\" | \"horizontal\"}\n */\n @property({ type: String, reflect: true }) orientation: SpinnerOrientation =\n 'vertical'\n\n /**\n * The aria-live politeness level for screen readers.\n * @type {\"polite\" | \"assertive\" | \"off\"}\n */\n @property({ type: String, attribute: 'aria-live' })\n ariaLive: 'polite' | 'assertive' | 'off' = 'polite'\n /**\n * Delay in milliseconds before showing the spinner.\n * Prevents flash for quick operations.\n */\n @property({ type: Number }) delay = 0\n\n /** @internal */\n // Visible by default so it renders under SSR (where `connectedCallback` does\n // not run). With no `delay`, server and client both render the spinner, so\n // there is no `null -> template` root flip that would throw on DSD hydration\n // (\"Unexpected TemplateResult rendered to part\"). A positive `delay` hides it\n // again in `connectedCallback` (client only).\n @state() private _visible = true\n\n private _delayTimeout?: number\n\n static readonly styles = unsafeCSS(styles)\n\n /** Maps effectiveSize from SizedMixin to spinner visual size (xxs→xs, else effectiveSize). */\n private get spinnerSize(): 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' {\n return this.effectiveSize === 'xxs' ? 'xs' : this.effectiveSize\n }\n\n connectedCallback() {\n super.connectedCallback()\n if (this.delay > 0) {\n this._visible = false\n this._delayTimeout = window.setTimeout(() => {\n this._visible = true\n }, this.delay)\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this._delayTimeout) {\n clearTimeout(this._delayTimeout)\n }\n }\n\n protected firstUpdated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.firstUpdated(_changedProperties)\n this._setupIconSlot()\n }\n\n protected updated(\n _changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>,\n ): void {\n super.updated(_changedProperties)\n // Update slotted icons when size, staticSize, or customStyles changes\n if (\n _changedProperties.has('size') ||\n _changedProperties.has('sizeMap') ||\n _changedProperties.has('staticSize') ||\n _changedProperties.has('customStyles')\n ) {\n this._updateSlottedIcons()\n }\n }\n\n private _setupIconSlot(): void {\n // Initial update in case icons are already slotted\n this._updateSlottedIcons()\n }\n\n private _updateSlottedIcons(): void {\n try {\n if (!this.shadowRoot) return\n\n const iconSlot = this.shadowRoot.querySelector(\n 'slot[name=\"icon\"]',\n ) as HTMLSlotElement\n\n if (!iconSlot) return\n\n const assignedElements = iconSlot.assignedElements({\n flatten: true,\n })\n\n // If custom styles are provided, don't apply inline animations\n // Let the custom CSS handle the animation instead\n const hasCustomStyles = !!this.customStyles\n\n const animationDuration =\n getComputedStyle(this).getPropertyValue(\n '--dds-spinner-animation-duration',\n ) || '1s'\n\n assignedElements.forEach(element => {\n if (element instanceof HTMLElement) {\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)',\n ).matches\n\n // If it's an icon component directly slotted, apply animation and size\n if (\n element.tagName === 'DAP-DS-ICON' ||\n element.localName === 'dap-ds-icon'\n ) {\n // Only apply animation via inline styles if no custom styles are provided\n // Custom styles should handle animation in that case\n if (!hasCustomStyles) {\n if (prefersReducedMotion) {\n element.style.animation = `dds-fade ${animationDuration} ease-in-out infinite`\n } else {\n element.style.animation = `dds-spin ${animationDuration} linear infinite`\n }\n } else {\n // Clear any existing inline animation to let CSS take over\n element.style.animation = ''\n }\n element.style.display = 'block'\n\n if (this.spinnerSize) {\n element.setAttribute('size', this.spinnerSize)\n }\n if (this.staticSize !== undefined) {\n element.setAttribute('staticSize', this.staticSize.toString())\n }\n } else {\n // If it's a wrapper element (like span), apply animation only to the wrapper\n // The nested icon will rotate with the wrapper, so we don't need to animate it separately\n if (!hasCustomStyles) {\n if (prefersReducedMotion) {\n element.style.animation = `dds-fade ${animationDuration} ease-in-out infinite`\n } else {\n element.style.animation = `dds-spin ${animationDuration} linear infinite`\n }\n } else {\n // Clear any existing inline animation to let CSS take over\n element.style.animation = ''\n }\n element.style.display = 'block'\n\n // Update nested icon size attributes but don't apply animation to it\n const nestedIcon = element.querySelector('dap-ds-icon')\n if (nestedIcon) {\n nestedIcon.style.display = 'block'\n // Remove any existing animation from nested icon to prevent double animation\n nestedIcon.style.animation = ''\n\n if (this.spinnerSize) {\n nestedIcon.setAttribute('size', this.spinnerSize)\n }\n if (this.staticSize !== undefined) {\n nestedIcon.setAttribute(\n 'staticSize',\n this.staticSize.toString(),\n )\n }\n }\n }\n }\n })\n } catch (error) {\n console.warn('Failed to update slotted icons:', error)\n }\n }\n\n render() {\n if (!this._visible) {\n return null\n }\n\n return html`\n <div\n part=\"base\"\n role=\"status\"\n name=\"icon-spinner\"\n aria-label=${this.ariaLabel ?? this.localize.t('spinner')}\n aria-live=${this.ariaLive}\n class=\"${clsx('spinner', {\n [`spinner--${this.spinnerSize}`]: this.spinnerSize,\n [`spinner--${this.variant}`]: this.variant,\n [`spinner--${this.orientation}`]: this.orientation,\n })}\">\n <slot name=\"icon\" @slotchange=${this._updateSlottedIcons}>\n <dap-ds-icon\n part=\"icon\"\n exportparts=\"base: icon-base, content: icon-content\"\n size=${this.spinnerSize}\n staticSize=${ifDefined(this.staticSize)}\n name=\"loading-spinner\"\n class=\"spinner__icon\"></dap-ds-icon>\n </slot>\n ${this.text\n ? html` <span\n part=\"text\"\n class=${clsx('spinner__text', {\n 'spinner__text--no-color': this.noColor,\n })}>\n ${this.text}\n </span>`\n : html`<slot></slot>`}\n </div>\n `\n }\n}\n"],"names":["SpinnerBaseWithSized","SizedMixin","DdsElement","_DapDSSpinner","_changedProperties","iconSlot","assignedElements","hasCustomStyles","animationDuration","element","prefersReducedMotion","nestedIcon","error","html","_a","clsx","ifDefined","DapDSIcon","unsafeCSS","styles","DapDSSpinner","__decorateClass","property","state"],"mappings":"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"}
@@ -8,7 +8,8 @@ import { DdsElement } from '../../internal/dds-hu-element';
8
8
  *
9
9
  * @slot - The content of the stack.
10
10
  *
11
- * @csspart stack - The main stack container.
11
+ * @csspart stack - Alias of the base part.
12
+ * @csspart base - The main stack container.
12
13
  */
13
14
  export default class DapDSStack extends DdsElement {
14
15
  static tagName: string;
@@ -1,19 +1,16 @@
1
- import { clsx as g } 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 o } from "../../node_modules/@lit/reactive-element/decorators/property.js";
6
- import { ifDefined as h } from "../../node_modules/lit-html/directives/if-defined.js";
7
- import { html as d } from "../../node_modules/lit-html/static.js";
8
- import { DdsElement as l } from "../../internal/dds-hu-element.js";
9
- import f from "./stack.scss.js";
10
- import { unsafeCSS as u } from "../../node_modules/@lit/reactive-element/css-tag.js";
11
- var v = Object.defineProperty, y = Object.getOwnPropertyDescriptor, n = (m, r, s, i) => {
12
- for (var t = i > 1 ? void 0 : i ? y(r, s) : r, p = m.length - 1, c; p >= 0; p--)
13
- (c = m[p]) && (t = (i ? c(r, s, t) : c(t)) || t);
1
+ import { clsx as h } from "../../node_modules/clsx/dist/clsx.js";
2
+ import { unsafeCSS as m } from "lit";
3
+ import { property as o } from "lit/decorators.js";
4
+ import { ifDefined as d } from "lit/directives/if-defined.js";
5
+ import { html as l } from "lit/static-html.js";
6
+ import { DdsElement as f } from "../../internal/dds-hu-element.js";
7
+ import u from "./stack.scss.js";
8
+ var v = Object.defineProperty, y = Object.getOwnPropertyDescriptor, n = (g, r, s, i) => {
9
+ for (var t = i > 1 ? void 0 : i ? y(r, s) : r, p = g.length - 1, c; p >= 0; p--)
10
+ (c = g[p]) && (t = (i ? c(r, s, t) : c(t)) || t);
14
11
  return i && t && v(r, s, t), t;
15
12
  };
16
- const a = class a extends l {
13
+ const a = class a extends f {
17
14
  constructor() {
18
15
  super(...arguments), this.direction = "column", this.endMargin = !1, this.startMargin = !1, this.nowrap = !1;
19
16
  }
@@ -27,14 +24,14 @@ const a = class a extends l {
27
24
  return r === "row" || r === "row-reverse" ? `margin-left: ${i ? `var(--dds-spacing-${s})` : "0"}; margin-right: ${t ? `var(--dds-spacing-${s})` : "0"};` : `margin-top: ${i ? `var(--dds-spacing-${s})` : "0"}; margin-bottom: ${t ? `var(--dds-spacing-${s})` : "0"};`;
28
25
  }
29
26
  render() {
30
- return d`
27
+ return l`
31
28
  <div
32
- class=${g("stack", `stack-gap-${this.spacing}`, {
29
+ class=${h("stack", `stack-gap-${this.spacing}`, {
33
30
  [`stack-direction-${this.direction}`]: this.direction,
34
31
  "stack-nowrap": this.nowrap
35
32
  })}
36
- part="base"
37
- style=${h(
33
+ part="base stack"
34
+ style=${d(
38
35
  this.getMarginStyles(
39
36
  this.direction,
40
37
  this.spacing,
@@ -47,7 +44,7 @@ const a = class a extends l {
47
44
  `;
48
45
  }
49
46
  };
50
- a.tagName = "dap-ds-stack", a.styles = u(f);
47
+ a.tagName = "dap-ds-stack", a.styles = m(u);
51
48
  let e = a;
52
49
  n([
53
50
  o()
@@ -1 +1 @@
1
- {"version":3,"file":"stack.component.js","sources":["../../../src/components/stack/stack.component.ts"],"sourcesContent":["import { clsx } from 'clsx'\nimport { 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 { CSSFlexDirection, Spacing } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './stack.scss?inline'\n\n/**\n * `dap-ds-stack`\n * @summary A stack is a container for stacked content.\n * @element dap-ds-stack\n * @title - Stack\n *\n * @slot - The content of the stack.\n *\n * @csspart stack - The main stack container.\n */\nexport default class DapDSStack extends DdsElement {\n static tagName = 'dap-ds-stack'\n\n /** The direction of the stack.\n * @type {'column' | 'column-reverse' | 'row' | 'row-reverse'}\n */\n @property() direction: CSSFlexDirection = 'column'\n /** Adds margin to the end of the stack. */\n @property({ type: Boolean }) endMargin?: boolean = false\n /** Adds margin to the start of the stack. */\n @property({ type: Boolean }) startMargin?: boolean = false\n /** Disables wrapping of the stack items onto multiple lines. */\n @property({ type: Boolean }) nowrap: boolean = false\n\n private _spacing: Spacing\n /** The spacing of the stack. Uses the system spacing scale (100, 200, 300...etc) */\n @property({ type: Number })\n set spacing(value: Spacing) {\n this._spacing = value\n }\n get spacing() {\n if (\n !this._spacing &&\n this._spacing !== 0 &&\n (this.direction === 'column' || this.direction === 'column-reverse')\n ) {\n return 600\n }\n\n if (\n !this._spacing &&\n this._spacing !== 0 &&\n (this.direction === 'row' || this.direction === 'row-reverse')\n ) {\n return 200\n }\n\n return this._spacing\n }\n\n static readonly styles = unsafeCSS(styles)\n\n getMarginStyles(\n direction: CSSFlexDirection,\n spacing: number,\n startMargin?: boolean,\n endMargin?: boolean,\n ) {\n if (direction === 'row' || direction === 'row-reverse') {\n return `margin-left: ${startMargin ? `var(--dds-spacing-${spacing})` : '0'}; margin-right: ${endMargin ? `var(--dds-spacing-${spacing})` : '0'};`\n }\n\n return `margin-top: ${startMargin ? `var(--dds-spacing-${spacing})` : '0'}; margin-bottom: ${endMargin ? `var(--dds-spacing-${spacing})` : '0'};`\n }\n\n render() {\n return html`\n <div\n class=${clsx('stack', `stack-gap-${this.spacing}`, {\n [`stack-direction-${this.direction}`]: this.direction,\n 'stack-nowrap': this.nowrap,\n })}\n part=\"base\"\n style=${ifDefined(\n this.getMarginStyles(\n this.direction,\n this.spacing,\n this.startMargin,\n this.endMargin,\n ),\n )}>\n <slot></slot>\n </div>\n `\n }\n}\n"],"names":["_DapDSStack","DdsElement","value","direction","spacing","startMargin","endMargin","html","clsx","ifDefined","unsafeCSS","styles","DapDSStack","__decorateClass","property"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAqBA,IAArB,MAAqBA,UAAmBC,EAAW;AAAA,EAAnD,cAAA;AAAA,UAAA,GAAA,SAAA,GAM4C,KAAA,YAAA,UAES,KAAA,YAAA,IAEE,KAAA,cAAA,IAEN,KAAA,SAAA;AAAA,EAAA;AAAA,EAK/C,IAAI,QAAQC,GAAgB;AAC1B,SAAK,WAAWA;AAAA,EAAA;AAAA,EAElB,IAAI,UAAU;AAEV,WAAA,CAAC,KAAK,YACN,KAAK,aAAa,MACjB,KAAK,cAAc,YAAY,KAAK,cAAc,oBAE5C,MAIP,CAAC,KAAK,YACN,KAAK,aAAa,MACjB,KAAK,cAAc,SAAS,KAAK,cAAc,iBAEzC,MAGF,KAAK;AAAA,EAAA;AAAA,EAKd,gBACEC,GACAC,GACAC,GACAC,GACA;AACI,WAAAH,MAAc,SAASA,MAAc,gBAChC,gBAAgBE,IAAc,qBAAqBD,CAAO,MAAM,GAAG,mBAAmBE,IAAY,qBAAqBF,CAAO,MAAM,GAAG,MAGzI,eAAeC,IAAc,qBAAqBD,CAAO,MAAM,GAAG,oBAAoBE,IAAY,qBAAqBF,CAAO,MAAM,GAAG;AAAA,EAAA;AAAA,EAGhJ,SAAS;AACA,WAAAG;AAAAA;AAAAA,gBAEKC,EAAK,SAAS,aAAa,KAAK,OAAO,IAAI;AAAA,MACjD,CAAC,mBAAmB,KAAK,SAAS,EAAE,GAAG,KAAK;AAAA,MAC5C,gBAAgB,KAAK;AAAA,IAAA,CACtB,CAAC;AAAA;AAAA,gBAEMC;AAAAA,MACN,KAAK;AAAA,QACH,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MAAA;AAAA,IACP,CACD;AAAA;AAAA;AAAA;AAAA,EAAA;AAKT;AA1EET,EAAO,UAAU,gBAuCDA,EAAA,SAASU,EAAUC,CAAM;AAxC3C,IAAqBC,IAArBZ;AAMca,EAAA;AAAA,EAAXC,EAAS;AAAA,GANSF,EAMP,WAAA,aAAA,CAAA;AAEiBC,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAS,CAAA;AAAA,GARRF,EAQU,WAAA,aAAA,CAAA;AAEAC,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAS,CAAA;AAAA,GAVRF,EAUU,WAAA,eAAA,CAAA;AAEAC,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAS,CAAA;AAAA,GAZRF,EAYU,WAAA,UAAA,CAAA;AAKzBC,EAAA;AAAA,EADHC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAhBPF,EAiBf,WAAA,WAAA,CAAA;"}
1
+ {"version":3,"file":"stack.component.js","sources":["../../../src/components/stack/stack.component.ts"],"sourcesContent":["import { clsx } from 'clsx'\nimport { 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 { CSSFlexDirection, Spacing } from '../../common/types'\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport styles from './stack.scss?inline'\n\n/**\n * `dap-ds-stack`\n * @summary A stack is a container for stacked content.\n * @element dap-ds-stack\n * @title - Stack\n *\n * @slot - The content of the stack.\n *\n * @csspart stack - Alias of the base part.\n * @csspart base - The main stack container.\n */\nexport default class DapDSStack extends DdsElement {\n static tagName = 'dap-ds-stack'\n\n /** The direction of the stack.\n * @type {'column' | 'column-reverse' | 'row' | 'row-reverse'}\n */\n @property() direction: CSSFlexDirection = 'column'\n /** Adds margin to the end of the stack. */\n @property({ type: Boolean }) endMargin?: boolean = false\n /** Adds margin to the start of the stack. */\n @property({ type: Boolean }) startMargin?: boolean = false\n /** Disables wrapping of the stack items onto multiple lines. */\n @property({ type: Boolean }) nowrap: boolean = false\n\n private _spacing: Spacing\n /** The spacing of the stack. Uses the system spacing scale (100, 200, 300...etc) */\n @property({ type: Number })\n set spacing(value: Spacing) {\n this._spacing = value\n }\n get spacing() {\n if (\n !this._spacing &&\n this._spacing !== 0 &&\n (this.direction === 'column' || this.direction === 'column-reverse')\n ) {\n return 600\n }\n\n if (\n !this._spacing &&\n this._spacing !== 0 &&\n (this.direction === 'row' || this.direction === 'row-reverse')\n ) {\n return 200\n }\n\n return this._spacing\n }\n\n static readonly styles = unsafeCSS(styles)\n\n getMarginStyles(\n direction: CSSFlexDirection,\n spacing: number,\n startMargin?: boolean,\n endMargin?: boolean,\n ) {\n if (direction === 'row' || direction === 'row-reverse') {\n return `margin-left: ${startMargin ? `var(--dds-spacing-${spacing})` : '0'}; margin-right: ${endMargin ? `var(--dds-spacing-${spacing})` : '0'};`\n }\n\n return `margin-top: ${startMargin ? `var(--dds-spacing-${spacing})` : '0'}; margin-bottom: ${endMargin ? `var(--dds-spacing-${spacing})` : '0'};`\n }\n\n render() {\n return html`\n <div\n class=${clsx('stack', `stack-gap-${this.spacing}`, {\n [`stack-direction-${this.direction}`]: this.direction,\n 'stack-nowrap': this.nowrap,\n })}\n part=\"base stack\"\n style=${ifDefined(\n this.getMarginStyles(\n this.direction,\n this.spacing,\n this.startMargin,\n this.endMargin,\n ),\n )}>\n <slot></slot>\n </div>\n `\n }\n}\n"],"names":["_DapDSStack","DdsElement","value","direction","spacing","startMargin","endMargin","html","clsx","ifDefined","unsafeCSS","styles","DapDSStack","__decorateClass","property"],"mappings":";;;;;;;;;;;;AAqBA,MAAqBA,IAArB,MAAqBA,UAAmBC,EAAW;AAAA,EAAnD,cAAA;AAAA,UAAA,GAAA,SAAA,GAM4C,KAAA,YAAA,UAES,KAAA,YAAA,IAEE,KAAA,cAAA,IAEN,KAAA,SAAA;AAAA,EAAA;AAAA,EAK/C,IAAI,QAAQC,GAAgB;AAC1B,SAAK,WAAWA;AAAA,EAAA;AAAA,EAElB,IAAI,UAAU;AAEV,WAAA,CAAC,KAAK,YACN,KAAK,aAAa,MACjB,KAAK,cAAc,YAAY,KAAK,cAAc,oBAE5C,MAIP,CAAC,KAAK,YACN,KAAK,aAAa,MACjB,KAAK,cAAc,SAAS,KAAK,cAAc,iBAEzC,MAGF,KAAK;AAAA,EAAA;AAAA,EAKd,gBACEC,GACAC,GACAC,GACAC,GACA;AACI,WAAAH,MAAc,SAASA,MAAc,gBAChC,gBAAgBE,IAAc,qBAAqBD,CAAO,MAAM,GAAG,mBAAmBE,IAAY,qBAAqBF,CAAO,MAAM,GAAG,MAGzI,eAAeC,IAAc,qBAAqBD,CAAO,MAAM,GAAG,oBAAoBE,IAAY,qBAAqBF,CAAO,MAAM,GAAG;AAAA,EAAA;AAAA,EAGhJ,SAAS;AACA,WAAAG;AAAA;AAAA,gBAEKC,EAAK,SAAS,aAAa,KAAK,OAAO,IAAI;AAAA,MACjD,CAAC,mBAAmB,KAAK,SAAS,EAAE,GAAG,KAAK;AAAA,MAC5C,gBAAgB,KAAK;AAAA,IAAA,CACtB,CAAC;AAAA;AAAA,gBAEMC;AAAA,MACN,KAAK;AAAA,QACH,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MAAA;AAAA,IACP,CACD;AAAA;AAAA;AAAA;AAAA,EAAA;AAKT;AA1EET,EAAO,UAAU,gBAuCDA,EAAA,SAASU,EAAUC,CAAM;AAxC3C,IAAqBC,IAArBZ;AAMca,EAAA;AAAA,EAAXC,EAAS;AAAA,GANSF,EAMP,WAAA,aAAA,CAAA;AAEiBC,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAS,CAAA;AAAA,GARRF,EAQU,WAAA,aAAA,CAAA;AAEAC,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAS,CAAA;AAAA,GAVRF,EAUU,WAAA,eAAA,CAAA;AAEAC,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAS,CAAA;AAAA,GAZRF,EAYU,WAAA,UAAA,CAAA;AAKzBC,EAAA;AAAA,EADHC,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAhBPF,EAiBf,WAAA,WAAA,CAAA;"}
@@ -55,6 +55,12 @@ import { default as DapDSTypography } from '../typography/typography.component';
55
55
  * @csspart input - The native input of the switch.
56
56
  * @csspart control - The control of the switch.
57
57
  * @csspart description - The description of the switch.
58
+ * @csspart label-container - The label container of the switch.
59
+ * @csspart feedback - The feedback of the switch.
60
+ * @csspart high-contrast - The high contrast indicator of the switch.
61
+ * @csspart label-base - The base of the label.
62
+ * @csspart label-required - The required indicator of the label.
63
+ * @csspart label-optional - The optional indicator of the label.
58
64
  */
59
65
  export default class DapDSSwitch extends LabeledChoiceElement {
60
66
  static tagName: string;
@@ -1,24 +1,21 @@
1
1
  import { clsx as r } 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 b } from "../../node_modules/@lit/reactive-element/decorators/property.js";
6
- import { query as u } from "../../node_modules/@lit/reactive-element/decorators/query.js";
7
- import { ifDefined as d } from "../../node_modules/lit-html/directives/if-defined.js";
8
- import { html as l } from "../../node_modules/lit-html/static.js";
9
- import { LabeledChoiceElement as f } from "../../internal/mixin/labeledChoiceElement.js";
10
- import y from "../feedback/feedback.component.js";
11
- import m from "../form/form-label/form-label.component.js";
12
- import $ from "../icon/icon.component.js";
13
- import k from "../typography/typography.component.js";
14
- import _ from "./switch.scss.js";
15
- import { unsafeCSS as g } from "../../node_modules/@lit/reactive-element/css-tag.js";
16
- var v = Object.defineProperty, c = (h, e, s, p) => {
17
- for (var t = void 0, o = h.length - 1, a; o >= 0; o--)
18
- (a = h[o]) && (t = a(e, s, t) || t);
19
- return t && v(e, s, t), t;
2
+ import { unsafeCSS as u } from "lit";
3
+ import { query as f, property as b } from "lit/decorators.js";
4
+ import { ifDefined as o } from "lit/directives/if-defined.js";
5
+ import { html as l } from "lit/static-html.js";
6
+ import { LabeledChoiceElement as y } from "../../internal/mixin/labeledChoiceElement.js";
7
+ import { formLabelTemplate as m } from "../../internal/templates/formLabel.js";
8
+ import $ from "../feedback/feedback.component.js";
9
+ import k from "../form/form-label/form-label.component.js";
10
+ import _ from "../icon/icon.component.js";
11
+ import g from "../typography/typography.component.js";
12
+ import v from "./switch.scss.js";
13
+ var I = Object.defineProperty, c = (h, e, s, p) => {
14
+ for (var t = void 0, d = h.length - 1, a; d >= 0; d--)
15
+ (a = h[d]) && (t = a(e, s, t) || t);
16
+ return t && I(e, s, t), t;
20
17
  }, i;
21
- const n = (i = class extends f {
18
+ const n = (i = class extends y {
22
19
  constructor() {
23
20
  super(), this.border = !1, this.type = "normal", this.handleClick = (s) => {
24
21
  if (this.disabled || this.readonly) {
@@ -26,7 +23,7 @@ const n = (i = class extends f {
26
23
  return;
27
24
  }
28
25
  this.validateProperties(), this.checked = !this.checked;
29
- const { checked: p, value: t, disabled: o } = this;
26
+ const { checked: p, value: t, disabled: d } = this;
30
27
  try {
31
28
  const a = new CustomEvent("dds-change", {
32
29
  bubbles: !0,
@@ -35,7 +32,7 @@ const n = (i = class extends f {
35
32
  detail: {
36
33
  checked: p,
37
34
  value: t || "",
38
- disabled: o,
35
+ disabled: d,
39
36
  readonly: this.readonly
40
37
  }
41
38
  });
@@ -137,10 +134,10 @@ const n = (i = class extends f {
137
134
  .required=${this.required}
138
135
  .disabled=${this.disabled}
139
136
  .readonly=${this.readonly}
140
- aria-labelledby=${d(
137
+ aria-labelledby=${o(
141
138
  !this.ariaLabel && this.label ? this.labelId : void 0
142
139
  )}
143
- aria-describedby=${this.ariaLabel ? "" : d(this.getAriaDescribedBy())}
140
+ aria-describedby=${this.ariaLabel ? "" : o(this.getAriaDescribedBy())}
144
141
  aria-checked=${this.checked ? "true" : "false"}
145
142
  .aria-invalid=${this.invalid ? "true" : null}
146
143
  @invalid=${this.handleInvalid}
@@ -191,30 +188,30 @@ const n = (i = class extends f {
191
188
  "choice__label--bottom": this.descriptionPlacement === "top",
192
189
  "choice__label--top": this.descriptionPlacement === "bottom"
193
190
  })}>
194
- ${this.label && l`<dap-ds-form-label
195
- id=${this.labelId}
196
- class="label"
197
- part="label"
198
- .size=${this.size}
199
- .required=${this.required}
200
- .requiredLabel=${this.requiredLabel}
201
- .optional=${this.optional}
202
- .optionalLabel=${this.optionalLabel}
203
- aria-hidden="true"
204
- subtle
205
- .disabled=${this.disabled || this.readonly}
206
- .readonly=${this.readonly}
207
- .hideLabel=${this.hideLabel}
208
- label=${d(this.label)}
209
- renderAs="span">
210
- </dap-ds-form-label>`}
191
+ ${m({
192
+ label: this.label,
193
+ id: this.labelId,
194
+ size: this.size,
195
+ required: this.required,
196
+ requiredLabel: this.requiredLabel,
197
+ optional: this.optional,
198
+ optionalLabel: this.optionalLabel,
199
+ disabled: this.disabled || this.readonly,
200
+ hideLabel: this.hideLabel,
201
+ subtle: !0,
202
+ // Rendered as a decorative <span> (not a <label>): checkbox/switch
203
+ // already wrap the input in an outer <label>, and the accessible
204
+ // name comes from the input's aria-labelledby=${labelId}.
205
+ as: "span",
206
+ ariaHidden: !0
207
+ })}
211
208
  ${this.description && l`
212
209
  <dap-ds-typography
213
210
  part="description"
214
211
  class="description"
215
212
  variant="description"
216
213
  aria-hidden="true"
217
- size=${d(this.size)}
214
+ size=${o(this.size)}
218
215
  id=${this.descriptionId}>
219
216
  ${this.description}
220
217
  </dap-ds-typography>
@@ -224,8 +221,8 @@ const n = (i = class extends f {
224
221
  ${this.feedback && l`
225
222
  <dap-ds-feedback
226
223
  part="feedback"
227
- feedbackType=${d(this.feedbackType)}
228
- feedbackSize=${d(this.size)}
224
+ feedbackType=${o(this.feedbackType)}
225
+ feedbackSize=${o(this.size)}
229
226
  id="feedback"
230
227
  .subtle=${this.subtle}>
231
228
  ${this.feedback}
@@ -236,13 +233,13 @@ const n = (i = class extends f {
236
233
  `;
237
234
  }
238
235
  }, i.tagName = "dap-ds-switch", i.dependencies = {
239
- "dap-ds-icon": $,
240
- "dap-ds-form-label": m,
241
- "dap-ds-typography": k,
242
- "dap-ds-feedback": y
243
- }, i.nextId = 0, i.styles = g(_), i);
236
+ "dap-ds-icon": _,
237
+ "dap-ds-form-label": k,
238
+ "dap-ds-typography": g,
239
+ "dap-ds-feedback": $
240
+ }, i.nextId = 0, i.styles = u(v), i);
244
241
  c([
245
- u(".input")
242
+ f(".input")
246
243
  ], n.prototype, "input");
247
244
  c([
248
245
  b({ type: Boolean })
@@ -250,8 +247,8 @@ c([
250
247
  c([
251
248
  b({ type: String })
252
249
  ], n.prototype, "type");
253
- let T = n;
250
+ let U = n;
254
251
  export {
255
- T as default
252
+ U as default
256
253
  };
257
254
  //# sourceMappingURL=switch.component.js.map