dap-design-system 0.62.4 → 0.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/README.md +5 -1
  2. package/dist/common/utils.js +46 -46
  3. package/dist/common/utils.js.map +1 -1
  4. package/dist/components/accordion/accordion-base-element.js +15 -19
  5. package/dist/components/accordion/accordion-base-element.js.map +1 -1
  6. package/dist/components/accordion/accordion.component.d.ts +1 -0
  7. package/dist/components/accordion/accordion.component.js.map +1 -1
  8. package/dist/components/accordion-group/accordion-group.component.js +20 -24
  9. package/dist/components/accordion-group/accordion-group.component.js.map +1 -1
  10. package/dist/components/anchor-heading/anchor-heading.component.d.ts +1 -0
  11. package/dist/components/anchor-heading/anchor-heading.component.js +20 -23
  12. package/dist/components/anchor-heading/anchor-heading.component.js.map +1 -1
  13. package/dist/components/avatar/avatar.component.js +51 -55
  14. package/dist/components/avatar/avatar.component.js.map +1 -1
  15. package/dist/components/avatar-group/avatar-group.component.js +18 -22
  16. package/dist/components/avatar-group/avatar-group.component.js.map +1 -1
  17. package/dist/components/badge/badge.component.js +17 -20
  18. package/dist/components/badge/badge.component.js.map +1 -1
  19. package/dist/components/banner/banner.component.d.ts +1 -1
  20. package/dist/components/banner/banner.component.js +18 -24
  21. package/dist/components/banner/banner.component.js.map +1 -1
  22. package/dist/components/breadcrumb/breadcrumb.component.d.ts +2 -1
  23. package/dist/components/breadcrumb/breadcrumb.component.js +32 -32
  24. package/dist/components/breadcrumb/breadcrumb.component.js.map +1 -1
  25. package/dist/components/breadcrumb-item/breadcrumb-item.component.d.ts +8 -0
  26. package/dist/components/breadcrumb-item/breadcrumb-item.component.js +33 -28
  27. package/dist/components/breadcrumb-item/breadcrumb-item.component.js.map +1 -1
  28. package/dist/components/button/_styles/button.scss.js +1 -1
  29. package/dist/components/button/button.component.js +18 -22
  30. package/dist/components/button/button.component.js.map +1 -1
  31. package/dist/components/button-group/_styles/button-group-separator.scss.js +5 -0
  32. package/dist/components/button-group/_styles/button-group-separator.scss.js.map +1 -0
  33. package/dist/components/button-group/_styles/button-group-text.scss.js +5 -0
  34. package/dist/components/button-group/_styles/button-group-text.scss.js.map +1 -0
  35. package/dist/components/button-group/_styles/button-group.scss.js +5 -0
  36. package/dist/components/button-group/_styles/button-group.scss.js.map +1 -0
  37. package/dist/components/button-group/button-group-separator.component.d.ts +28 -0
  38. package/dist/components/button-group/button-group-separator.component.js +18 -0
  39. package/dist/components/button-group/button-group-separator.component.js.map +1 -0
  40. package/dist/components/button-group/button-group-separator.d.ts +8 -0
  41. package/dist/components/button-group/button-group-separator.js +6 -0
  42. package/dist/components/button-group/button-group-separator.js.map +1 -0
  43. package/dist/components/button-group/button-group-text.component.d.ts +33 -0
  44. package/dist/components/button-group/button-group-text.component.js +17 -0
  45. package/dist/components/button-group/button-group-text.component.js.map +1 -0
  46. package/dist/components/button-group/button-group-text.d.ts +8 -0
  47. package/dist/components/button-group/button-group-text.js +6 -0
  48. package/dist/components/button-group/button-group-text.js.map +1 -0
  49. package/dist/components/button-group/button-group.component.d.ts +52 -0
  50. package/dist/components/button-group/button-group.component.js +30 -0
  51. package/dist/components/button-group/button-group.component.js.map +1 -0
  52. package/dist/components/button-group/button-group.d.ts +8 -0
  53. package/dist/components/button-group/button-group.js +6 -0
  54. package/dist/components/button-group/button-group.js.map +1 -0
  55. package/dist/components/calendar/calendar-cell.component.js +26 -29
  56. package/dist/components/calendar/calendar-cell.component.js.map +1 -1
  57. package/dist/components/calendar/calendar.component.d.ts +10 -1
  58. package/dist/components/calendar/calendar.component.js +37 -46
  59. package/dist/components/calendar/calendar.component.js.map +1 -1
  60. package/dist/components/callout/callout.component.d.ts +4 -0
  61. package/dist/components/callout/callout.component.js +71 -69
  62. package/dist/components/callout/callout.component.js.map +1 -1
  63. package/dist/components/card/card-actions.component.js +8 -11
  64. package/dist/components/card/card-actions.component.js.map +1 -1
  65. package/dist/components/card/card-content.component.js +20 -23
  66. package/dist/components/card/card-content.component.js.map +1 -1
  67. package/dist/components/card/card-image.component.js +18 -21
  68. package/dist/components/card/card-image.component.js.map +1 -1
  69. package/dist/components/card/card-subtitle.component.js +18 -21
  70. package/dist/components/card/card-subtitle.component.js.map +1 -1
  71. package/dist/components/card/card-title.component.js +18 -21
  72. package/dist/components/card/card-title.component.js.map +1 -1
  73. package/dist/components/card/card.component.d.ts +1 -0
  74. package/dist/components/card/card.component.js +25 -28
  75. package/dist/components/card/card.component.js.map +1 -1
  76. package/dist/components/checkbox/_styles/checkbox.scss.js +1 -1
  77. package/dist/components/checkbox/checkbox.component.d.ts +7 -1
  78. package/dist/components/checkbox/checkbox.component.js +71 -74
  79. package/dist/components/checkbox/checkbox.component.js.map +1 -1
  80. package/dist/components/chip/chip.component.d.ts +1 -0
  81. package/dist/components/chip/chip.component.js +21 -26
  82. package/dist/components/chip/chip.component.js.map +1 -1
  83. package/dist/components/code-puncher/code-puncher-slot.component.js +34 -38
  84. package/dist/components/code-puncher/code-puncher-slot.component.js.map +1 -1
  85. package/dist/components/code-puncher/code-puncher.component.d.ts +4 -0
  86. package/dist/components/code-puncher/code-puncher.component.js +97 -102
  87. package/dist/components/code-puncher/code-puncher.component.js.map +1 -1
  88. package/dist/components/code-puncher/code-puncher.context.js +1 -1
  89. package/dist/components/code-puncher/code-puncher.context.js.map +1 -1
  90. package/dist/components/code-puncher/code-puncher.scss.js +1 -1
  91. package/dist/components/combobox/combobox.component.d.ts +9 -1
  92. package/dist/components/combobox/combobox.component.js.map +1 -1
  93. package/dist/components/combobox/combobox.scss.js +1 -1
  94. package/dist/components/combobox/comboboxBase.d.ts +21 -0
  95. package/dist/components/combobox/comboboxBase.js +176 -139
  96. package/dist/components/combobox/comboboxBase.js.map +1 -1
  97. package/dist/components/command/command-group.component.js +19 -23
  98. package/dist/components/command/command-group.component.js.map +1 -1
  99. package/dist/components/command/command-item.component.js +17 -22
  100. package/dist/components/command/command-item.component.js.map +1 -1
  101. package/dist/components/command/command.component.d.ts +3 -0
  102. package/dist/components/command/command.component.js +28 -33
  103. package/dist/components/command/command.component.js.map +1 -1
  104. package/dist/components/content-switcher/content-switcher-item.component.js +16 -19
  105. package/dist/components/content-switcher/content-switcher-item.component.js.map +1 -1
  106. package/dist/components/content-switcher/content-switcher.component.js +19 -22
  107. package/dist/components/content-switcher/content-switcher.component.js.map +1 -1
  108. package/dist/components/copybox-input/copybox-input.component.d.ts +11 -0
  109. package/dist/components/copybox-input/copybox-input.component.js +12 -16
  110. package/dist/components/copybox-input/copybox-input.component.js.map +1 -1
  111. package/dist/components/dap-badge/dap-badge.component.js +13 -18
  112. package/dist/components/dap-badge/dap-badge.component.js.map +1 -1
  113. package/dist/components/datatable/datatable.component.d.ts +17 -0
  114. package/dist/components/datatable/datatable.component.js +38 -42
  115. package/dist/components/datatable/datatable.component.js.map +1 -1
  116. package/dist/components/datatable/utils/cell-renderer.js +6 -8
  117. package/dist/components/datatable/utils/cell-renderer.js.map +1 -1
  118. package/dist/components/datepicker/datepicker.component.d.ts +11 -0
  119. package/dist/components/datepicker/datepicker.component.js +89 -82
  120. package/dist/components/datepicker/datepicker.component.js.map +1 -1
  121. package/dist/components/datepicker/datepicker.scss.js +1 -1
  122. package/dist/components/divider/divider.component.js +18 -21
  123. package/dist/components/divider/divider.component.js.map +1 -1
  124. package/dist/components/feedback/feedback.component.js +8 -11
  125. package/dist/components/feedback/feedback.component.js.map +1 -1
  126. package/dist/components/file-input/file-input-list-item.component.d.ts +1 -0
  127. package/dist/components/file-input/file-input-list-item.component.js +36 -40
  128. package/dist/components/file-input/file-input-list-item.component.js.map +1 -1
  129. package/dist/components/file-input/file-input-list.component.js +15 -20
  130. package/dist/components/file-input/file-input-list.component.js.map +1 -1
  131. package/dist/components/file-input/file-input-list.scss.js +1 -1
  132. package/dist/components/file-input/file-input.component.d.ts +3 -0
  133. package/dist/components/file-input/file-input.component.js +135 -142
  134. package/dist/components/file-input/file-input.component.js.map +1 -1
  135. package/dist/components/file-input/file-input.scss.js +1 -1
  136. package/dist/components/form/form-label/form-label.component.d.ts +1 -1
  137. package/dist/components/form/form-label/form-label.component.js +20 -23
  138. package/dist/components/form/form-label/form-label.component.js.map +1 -1
  139. package/dist/components/form/input-group/input-group.component.d.ts +4 -0
  140. package/dist/components/form/input-group/input-group.component.js +42 -42
  141. package/dist/components/form/input-group/input-group.component.js.map +1 -1
  142. package/dist/components/form/input-group/input-group.scss.js +2 -2
  143. package/dist/components/form/radio-group/radio-group.component.d.ts +5 -0
  144. package/dist/components/form/radio-group/radio-group.component.js +54 -55
  145. package/dist/components/form/radio-group/radio-group.component.js.map +1 -1
  146. package/dist/components/icon/icon.component.js +25 -28
  147. package/dist/components/icon/icon.component.js.map +1 -1
  148. package/dist/components/icon-button/icon-button.component.d.ts +1 -0
  149. package/dist/components/icon-button/icon-button.component.js +11 -14
  150. package/dist/components/icon-button/icon-button.component.js.map +1 -1
  151. package/dist/components/icon-button/icon-button.scss.js +1 -1
  152. package/dist/components/icons/arrows/arrows-arrow-down-line/arrows-arrow-down-line.component.js +9 -12
  153. package/dist/components/icons/arrows/arrows-arrow-down-line/arrows-arrow-down-line.component.js.map +1 -1
  154. package/dist/components/icons/arrows/arrows-arrow-down-s-fill/arrows-arrow-down-s-fill.component.js +7 -10
  155. package/dist/components/icons/arrows/arrows-arrow-down-s-fill/arrows-arrow-down-s-fill.component.js.map +1 -1
  156. package/dist/components/icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.js +12 -15
  157. package/dist/components/icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.js.map +1 -1
  158. package/dist/components/icons/arrows/arrows-arrow-left-down-line/arrows-arrow-left-down-line.component.js +8 -11
  159. package/dist/components/icons/arrows/arrows-arrow-left-down-line/arrows-arrow-left-down-line.component.js.map +1 -1
  160. package/dist/components/icons/arrows/arrows-arrow-left-l-line/arrows-arrow-left-l-line.component.js +15 -18
  161. package/dist/components/icons/arrows/arrows-arrow-left-l-line/arrows-arrow-left-l-line.component.js.map +1 -1
  162. package/dist/components/icons/arrows/arrows-arrow-left-line/arrows-arrow-left-line.component.js +7 -10
  163. package/dist/components/icons/arrows/arrows-arrow-left-line/arrows-arrow-left-line.component.js.map +1 -1
  164. package/dist/components/icons/arrows/arrows-arrow-left-s-fill/arrows-arrow-left-s-fill.component.js +10 -13
  165. package/dist/components/icons/arrows/arrows-arrow-left-s-fill/arrows-arrow-left-s-fill.component.js.map +1 -1
  166. package/dist/components/icons/arrows/arrows-arrow-left-s-line/arrows-arrow-left-s-line.component.js +7 -10
  167. package/dist/components/icons/arrows/arrows-arrow-left-s-line/arrows-arrow-left-s-line.component.js.map +1 -1
  168. package/dist/components/icons/arrows/arrows-arrow-left-up-line/arrows-arrow-left-up-line.component.js +6 -9
  169. package/dist/components/icons/arrows/arrows-arrow-left-up-line/arrows-arrow-left-up-line.component.js.map +1 -1
  170. package/dist/components/icons/arrows/arrows-arrow-right-down-line/arrows-arrow-right-down-line.component.js +18 -21
  171. package/dist/components/icons/arrows/arrows-arrow-right-down-line/arrows-arrow-right-down-line.component.js.map +1 -1
  172. package/dist/components/icons/arrows/arrows-arrow-right-l-line/arrows-arrow-right-l-line.component.js +15 -18
  173. package/dist/components/icons/arrows/arrows-arrow-right-l-line/arrows-arrow-right-l-line.component.js.map +1 -1
  174. package/dist/components/icons/arrows/arrows-arrow-right-line/arrows-arrow-right-line.component.js +17 -20
  175. package/dist/components/icons/arrows/arrows-arrow-right-line/arrows-arrow-right-line.component.js.map +1 -1
  176. package/dist/components/icons/arrows/arrows-arrow-right-s-fill/arrows-arrow-right-s-fill.component.js +17 -20
  177. package/dist/components/icons/arrows/arrows-arrow-right-s-fill/arrows-arrow-right-s-fill.component.js.map +1 -1
  178. package/dist/components/icons/arrows/arrows-arrow-right-s-line/arrows-arrow-right-s-line.component.js +17 -20
  179. package/dist/components/icons/arrows/arrows-arrow-right-s-line/arrows-arrow-right-s-line.component.js.map +1 -1
  180. package/dist/components/icons/arrows/arrows-arrow-right-up-line/arrows-arrow-right-up-line.component.js +18 -21
  181. package/dist/components/icons/arrows/arrows-arrow-right-up-line/arrows-arrow-right-up-line.component.js.map +1 -1
  182. package/dist/components/icons/arrows/arrows-arrow-up-line/arrows-arrow-up-line.component.js +9 -12
  183. package/dist/components/icons/arrows/arrows-arrow-up-line/arrows-arrow-up-line.component.js.map +1 -1
  184. package/dist/components/icons/arrows/arrows-arrow-up-s-fill/arrows-arrow-up-s-fill.component.js +8 -11
  185. package/dist/components/icons/arrows/arrows-arrow-up-s-fill/arrows-arrow-up-s-fill.component.js.map +1 -1
  186. package/dist/components/icons/arrows/arrows-arrow-up-s-line/arrows-arrow-up-s-line.component.js +9 -12
  187. package/dist/components/icons/arrows/arrows-arrow-up-s-line/arrows-arrow-up-s-line.component.js.map +1 -1
  188. package/dist/components/icons/arrows/arrows-expand-up-down-fill/arrows-expand-up-down-fill.component.js +11 -14
  189. package/dist/components/icons/arrows/arrows-expand-up-down-fill/arrows-expand-up-down-fill.component.js.map +1 -1
  190. package/dist/components/icons/buildings/buildings-home-6-line/buildings-home-6-line.component.js +10 -13
  191. package/dist/components/icons/buildings/buildings-home-6-line/buildings-home-6-line.component.js.map +1 -1
  192. package/dist/components/icons/business/business-calendar-line/business-calendar-line.component.js +11 -14
  193. package/dist/components/icons/business/business-calendar-line/business-calendar-line.component.js.map +1 -1
  194. package/dist/components/icons/design/design-edit-line/design-edit-line.component.js +6 -9
  195. package/dist/components/icons/design/design-edit-line/design-edit-line.component.js.map +1 -1
  196. package/dist/components/icons/design/design-tools-line/design-tools-line.component.js +12 -15
  197. package/dist/components/icons/design/design-tools-line/design-tools-line.component.js.map +1 -1
  198. package/dist/components/icons/device/device-computer-line/device-computer-line.component.js +16 -19
  199. package/dist/components/icons/device/device-computer-line/device-computer-line.component.js.map +1 -1
  200. package/dist/components/icons/document/document-clipboard-line/document-clipboard-line.component.js +11 -14
  201. package/dist/components/icons/document/document-clipboard-line/document-clipboard-line.component.js.map +1 -1
  202. package/dist/components/icons/document/document-file-copy-line/document-file-copy-line.component.js +10 -13
  203. package/dist/components/icons/document/document-file-copy-line/document-file-copy-line.component.js.map +1 -1
  204. package/dist/components/icons/document/document-file-image-line/document-file-image-line.component.js +11 -14
  205. package/dist/components/icons/document/document-file-image-line/document-file-image-line.component.js.map +1 -1
  206. package/dist/components/icons/document/document-file-music-line/document-file-music-line.component.js +11 -14
  207. package/dist/components/icons/document/document-file-music-line/document-file-music-line.component.js.map +1 -1
  208. package/dist/components/icons/document/document-file-text-line/document-file-text-line.component.js +10 -13
  209. package/dist/components/icons/document/document-file-text-line/document-file-text-line.component.js.map +1 -1
  210. package/dist/components/icons/document/document-file-video-line/document-file-video-line.component.js +11 -14
  211. package/dist/components/icons/document/document-file-video-line/document-file-video-line.component.js.map +1 -1
  212. package/dist/components/icons/document/document-folder-line/document-folder-line.component.js +11 -14
  213. package/dist/components/icons/document/document-folder-line/document-folder-line.component.js.map +1 -1
  214. package/dist/components/icons/document/document-folder-open-line/document-folder-open-line.component.js +10 -13
  215. package/dist/components/icons/document/document-folder-open-line/document-folder-open-line.component.js.map +1 -1
  216. package/dist/components/icons/editor/editor-separator/editor-separator.component.js +10 -13
  217. package/dist/components/icons/editor/editor-separator/editor-separator.component.js.map +1 -1
  218. package/dist/components/icons/health/health-heart-fill/health-heart-fill.component.js +8 -11
  219. package/dist/components/icons/health/health-heart-fill/health-heart-fill.component.js.map +1 -1
  220. package/dist/components/icons/health/health-heart-line/health-heart-line.component.js +10 -13
  221. package/dist/components/icons/health/health-heart-line/health-heart-line.component.js.map +1 -1
  222. package/dist/components/icons/others/others-cookie-line/others-cookie-line.component.js +6 -9
  223. package/dist/components/icons/others/others-cookie-line/others-cookie-line.component.js.map +1 -1
  224. package/dist/components/icons/system/system-add-line/system-add-line.component.js +11 -14
  225. package/dist/components/icons/system/system-add-line/system-add-line.component.js.map +1 -1
  226. package/dist/components/icons/system/system-alert-fill/system-alert-fill.component.js +9 -12
  227. package/dist/components/icons/system/system-alert-fill/system-alert-fill.component.js.map +1 -1
  228. package/dist/components/icons/system/system-alert-line/system-alert-line.component.js +11 -14
  229. package/dist/components/icons/system/system-alert-line/system-alert-line.component.js.map +1 -1
  230. package/dist/components/icons/system/system-check-line/system-check-line.component.js +9 -12
  231. package/dist/components/icons/system/system-check-line/system-check-line.component.js.map +1 -1
  232. package/dist/components/icons/system/system-check-line2/system-check-line2.component.js +11 -14
  233. package/dist/components/icons/system/system-check-line2/system-check-line2.component.js.map +1 -1
  234. package/dist/components/icons/system/system-checkbox-blank-circle-fill/system-checkbox-blank-circle-fill.component.js +9 -12
  235. package/dist/components/icons/system/system-checkbox-blank-circle-fill/system-checkbox-blank-circle-fill.component.js.map +1 -1
  236. package/dist/components/icons/system/system-checkbox-blank-circle-fill-check/system-checkbox-blank-circle-fill-check.component.js +12 -15
  237. package/dist/components/icons/system/system-checkbox-blank-circle-fill-check/system-checkbox-blank-circle-fill-check.component.js.map +1 -1
  238. package/dist/components/icons/system/system-checkbox-blank-circle-line/system-checkbox-blank-circle-line.component.js +13 -16
  239. package/dist/components/icons/system/system-checkbox-blank-circle-line/system-checkbox-blank-circle-line.component.js.map +1 -1
  240. package/dist/components/icons/system/system-checkbox-circle-fill/system-checkbox-circle-fill.component.js +11 -14
  241. package/dist/components/icons/system/system-checkbox-circle-fill/system-checkbox-circle-fill.component.js.map +1 -1
  242. package/dist/components/icons/system/system-checkbox-circle-line/system-checkbox-circle-line.component.js +11 -14
  243. package/dist/components/icons/system/system-checkbox-circle-line/system-checkbox-circle-line.component.js.map +1 -1
  244. package/dist/components/icons/system/system-close-circle-fill/system-close-circle-fill.component.js +11 -14
  245. package/dist/components/icons/system/system-close-circle-fill/system-close-circle-fill.component.js.map +1 -1
  246. package/dist/components/icons/system/system-close-circle-line/system-close-circle-line.component.js +7 -10
  247. package/dist/components/icons/system/system-close-circle-line/system-close-circle-line.component.js.map +1 -1
  248. package/dist/components/icons/system/system-close-fill/system-close-fill.component.js +11 -14
  249. package/dist/components/icons/system/system-close-fill/system-close-fill.component.js.map +1 -1
  250. package/dist/components/icons/system/system-close-line/system-close-line.component.js +11 -14
  251. package/dist/components/icons/system/system-close-line/system-close-line.component.js.map +1 -1
  252. package/dist/components/icons/system/system-delete-bin-fill/system-delete-bin-fill.component.js +7 -10
  253. package/dist/components/icons/system/system-delete-bin-fill/system-delete-bin-fill.component.js.map +1 -1
  254. package/dist/components/icons/system/system-delete-bin-line/system-delete-bin-line.component.js +9 -12
  255. package/dist/components/icons/system/system-delete-bin-line/system-delete-bin-line.component.js.map +1 -1
  256. package/dist/components/icons/system/system-download-line/system-download-line.component.js +9 -12
  257. package/dist/components/icons/system/system-download-line/system-download-line.component.js.map +1 -1
  258. package/dist/components/icons/system/system-error-warning-fill/system-error-warning-fill.component.js +7 -10
  259. package/dist/components/icons/system/system-error-warning-fill/system-error-warning-fill.component.js.map +1 -1
  260. package/dist/components/icons/system/system-error-warning-line/system-error-warning-line.component.js +11 -14
  261. package/dist/components/icons/system/system-error-warning-line/system-error-warning-line.component.js.map +1 -1
  262. package/dist/components/icons/system/system-external-link-line/system-external-link-line.component.js +9 -12
  263. package/dist/components/icons/system/system-external-link-line/system-external-link-line.component.js.map +1 -1
  264. package/dist/components/icons/system/system-eye-line/system-eye-line.component.js +11 -14
  265. package/dist/components/icons/system/system-eye-line/system-eye-line.component.js.map +1 -1
  266. package/dist/components/icons/system/system-eye-off-line/system-eye-off-line.component.js +6 -9
  267. package/dist/components/icons/system/system-eye-off-line/system-eye-off-line.component.js.map +1 -1
  268. package/dist/components/icons/system/system-forbid-fill/system-forbid-fill.component.js +9 -12
  269. package/dist/components/icons/system/system-forbid-fill/system-forbid-fill.component.js.map +1 -1
  270. package/dist/components/icons/system/system-information-2-fill/system-information-2-fill.component.js +9 -12
  271. package/dist/components/icons/system/system-information-2-fill/system-information-2-fill.component.js.map +1 -1
  272. package/dist/components/icons/system/system-information-fill/system-information-fill.component.js +9 -12
  273. package/dist/components/icons/system/system-information-fill/system-information-fill.component.js.map +1 -1
  274. package/dist/components/icons/system/system-information-line/system-information-line.component.js +9 -12
  275. package/dist/components/icons/system/system-information-line/system-information-line.component.js.map +1 -1
  276. package/dist/components/icons/system/system-lightbulb-fill/system-lightbulb-fill.component.js +9 -12
  277. package/dist/components/icons/system/system-lightbulb-fill/system-lightbulb-fill.component.js.map +1 -1
  278. package/dist/components/icons/system/system-loading-spinner/system-loading-spinner.component.js +9 -12
  279. package/dist/components/icons/system/system-loading-spinner/system-loading-spinner.component.js.map +1 -1
  280. package/dist/components/icons/system/system-lock-fill/system-lock-fill.component.js +13 -16
  281. package/dist/components/icons/system/system-lock-fill/system-lock-fill.component.js.map +1 -1
  282. package/dist/components/icons/system/system-lock-line/system-lock-line.component.js +10 -13
  283. package/dist/components/icons/system/system-lock-line/system-lock-line.component.js.map +1 -1
  284. package/dist/components/icons/system/system-menu-line/system-menu-line.component.js +9 -12
  285. package/dist/components/icons/system/system-menu-line/system-menu-line.component.js.map +1 -1
  286. package/dist/components/icons/system/system-menu-line-s/system-menu-line-s.component.js +9 -12
  287. package/dist/components/icons/system/system-menu-line-s/system-menu-line-s.component.js.map +1 -1
  288. package/dist/components/icons/system/system-more-2-line/system-more-2-line.component.js +10 -13
  289. package/dist/components/icons/system/system-more-2-line/system-more-2-line.component.js.map +1 -1
  290. package/dist/components/icons/system/system-more-line/system-more-line.component.js +16 -19
  291. package/dist/components/icons/system/system-more-line/system-more-line.component.js.map +1 -1
  292. package/dist/components/icons/system/system-search-line/system-search-line.component.js +11 -14
  293. package/dist/components/icons/system/system-search-line/system-search-line.component.js.map +1 -1
  294. package/dist/components/icons/system/system-share-line/system-share-line.component.js +9 -12
  295. package/dist/components/icons/system/system-share-line/system-share-line.component.js.map +1 -1
  296. package/dist/components/icons/system/system-shield-check-fill/system-shield-check-fill.component.js +8 -11
  297. package/dist/components/icons/system/system-shield-check-fill/system-shield-check-fill.component.js.map +1 -1
  298. package/dist/components/icons/system/system-shield-check-line/system-shield-check-line.component.js +6 -9
  299. package/dist/components/icons/system/system-shield-check-line/system-shield-check-line.component.js.map +1 -1
  300. package/dist/components/icons/system/system-star-fill/system-star-fill.component.js +13 -16
  301. package/dist/components/icons/system/system-star-fill/system-star-fill.component.js.map +1 -1
  302. package/dist/components/icons/system/system-subtract-line/system-subtract-line.component.js +11 -14
  303. package/dist/components/icons/system/system-subtract-line/system-subtract-line.component.js.map +1 -1
  304. package/dist/components/icons/system/system-subtract-line2/system-subtract-line2.component.js +7 -10
  305. package/dist/components/icons/system/system-subtract-line2/system-subtract-line2.component.js.map +1 -1
  306. package/dist/components/icons/system/system-time-fill/system-time-fill.component.js +11 -14
  307. package/dist/components/icons/system/system-time-fill/system-time-fill.component.js.map +1 -1
  308. package/dist/components/icons/system/system-time-line/system-time-line.component.js +11 -14
  309. package/dist/components/icons/system/system-time-line/system-time-line.component.js.map +1 -1
  310. package/dist/components/icons/system/system-upload-2-fill/system-upload-2-fill.component.js +5 -8
  311. package/dist/components/icons/system/system-upload-2-fill/system-upload-2-fill.component.js.map +1 -1
  312. package/dist/components/icons/system/system-upload-2-line/system-upload-2-line.component.js +7 -10
  313. package/dist/components/icons/system/system-upload-2-line/system-upload-2-line.component.js.map +1 -1
  314. package/dist/components/icons/system/system-upload-line/system-upload-line.component.js +9 -12
  315. package/dist/components/icons/system/system-upload-line/system-upload-line.component.js.map +1 -1
  316. package/dist/components/icons/system/system-zoom-in-line/system-zoom-in-line.component.js +9 -12
  317. package/dist/components/icons/system/system-zoom-in-line/system-zoom-in-line.component.js.map +1 -1
  318. package/dist/components/icons/system/system-zoom-out-line/system-zoom-out-line.component.js +11 -14
  319. package/dist/components/icons/system/system-zoom-out-line/system-zoom-out-line.component.js.map +1 -1
  320. package/dist/components/icons/user/user-account-circle-fill/user-account-circle-fill.component.js +16 -19
  321. package/dist/components/icons/user/user-account-circle-fill/user-account-circle-fill.component.js.map +1 -1
  322. package/dist/components/icons/user/user-account-circle-line/user-account-circle-line.component.js +13 -16
  323. package/dist/components/icons/user/user-account-circle-line/user-account-circle-line.component.js.map +1 -1
  324. package/dist/components/icons/user/user-user-fill/user-user-fill.component.js +8 -11
  325. package/dist/components/icons/user/user-user-fill/user-user-fill.component.js.map +1 -1
  326. package/dist/components/icons/user/user-user-line/user-user-line.component.js +11 -14
  327. package/dist/components/icons/user/user-user-line/user-user-line.component.js.map +1 -1
  328. package/dist/components/image-zoom/image-zoom.component.js +12 -17
  329. package/dist/components/image-zoom/image-zoom.component.js.map +1 -1
  330. package/dist/components/input/_styles/input.scss.js +1 -1
  331. package/dist/components/input/input-base-element.js +41 -47
  332. package/dist/components/input/input-base-element.js.map +1 -1
  333. package/dist/components/label/_styles/label.scss.js +1 -1
  334. package/dist/components/label/label.component.js +8 -11
  335. package/dist/components/label/label.component.js.map +1 -1
  336. package/dist/components/link/link.component.js +23 -27
  337. package/dist/components/link/link.component.js.map +1 -1
  338. package/dist/components/list-item/list-item.component.d.ts +2 -0
  339. package/dist/components/list-item/list-item.component.js +24 -29
  340. package/dist/components/list-item/list-item.component.js.map +1 -1
  341. package/dist/components/modal/modal-base-element.js +36 -42
  342. package/dist/components/modal/modal-base-element.js.map +1 -1
  343. package/dist/components/navigation-menu/navigation-menu-item.component.d.ts +9 -1
  344. package/dist/components/navigation-menu/navigation-menu-item.component.js +36 -31
  345. package/dist/components/navigation-menu/navigation-menu-item.component.js.map +1 -1
  346. package/dist/components/navigation-menu/navigation-menu.component.js +20 -24
  347. package/dist/components/navigation-menu/navigation-menu.component.js.map +1 -1
  348. package/dist/components/notification-badge/notification-badge.component.js +28 -32
  349. package/dist/components/notification-badge/notification-badge.component.js.map +1 -1
  350. package/dist/components/number-input/number-input.component.d.ts +7 -0
  351. package/dist/components/number-input/number-input.component.js +23 -29
  352. package/dist/components/number-input/number-input.component.js.map +1 -1
  353. package/dist/components/official-website-banner/official-website-banner.component.d.ts +1 -0
  354. package/dist/components/official-website-banner/official-website-banner.component.js +19 -24
  355. package/dist/components/official-website-banner/official-website-banner.component.js.map +1 -1
  356. package/dist/components/option-group/option-group.component.js +17 -20
  357. package/dist/components/option-group/option-group.component.js.map +1 -1
  358. package/dist/components/option-item/option-item.component.d.ts +10 -0
  359. package/dist/components/option-item/option-item.component.js +66 -60
  360. package/dist/components/option-item/option-item.component.js.map +1 -1
  361. package/dist/components/option-item/option-item.scss.js +1 -1
  362. package/dist/components/option-list/__test__/listbox-harness.d.ts +129 -0
  363. package/dist/components/option-list/listbox-state.d.ts +230 -0
  364. package/dist/components/option-list/listbox-state.js +312 -0
  365. package/dist/components/option-list/listbox-state.js.map +1 -0
  366. package/dist/components/option-list/option-data.d.ts +35 -0
  367. package/dist/components/option-list/option-data.js +34 -0
  368. package/dist/components/option-list/option-data.js.map +1 -0
  369. package/dist/components/option-list/option-list.component.d.ts +66 -14
  370. package/dist/components/option-list/option-list.component.js +381 -294
  371. package/dist/components/option-list/option-list.component.js.map +1 -1
  372. package/dist/components/overlay/overlay.component.js +10 -13
  373. package/dist/components/overlay/overlay.component.js.map +1 -1
  374. package/dist/components/pager/pager.component.js +31 -37
  375. package/dist/components/pager/pager.component.js.map +1 -1
  376. package/dist/components/password-input/password-input.component.d.ts +12 -5
  377. package/dist/components/password-input/password-input.component.js +24 -30
  378. package/dist/components/password-input/password-input.component.js.map +1 -1
  379. package/dist/components/popup/popup-base-element.js +21 -25
  380. package/dist/components/popup/popup-base-element.js.map +1 -1
  381. package/dist/components/progress/progress.component.js +17 -21
  382. package/dist/components/progress/progress.component.js.map +1 -1
  383. package/dist/components/radio-button/_styles/radio-button.scss.js +1 -1
  384. package/dist/components/radio-button/radio-button.component.d.ts +5 -0
  385. package/dist/components/radio-button/radio-button.component.js +58 -62
  386. package/dist/components/radio-button/radio-button.component.js.map +1 -1
  387. package/dist/components/rating/_styles/rating.scss.js +2 -2
  388. package/dist/components/rating/rating.component.js +37 -41
  389. package/dist/components/rating/rating.component.js.map +1 -1
  390. package/dist/components/scroll-area/scroll-area.component.d.ts +2 -1
  391. package/dist/components/scroll-area/scroll-area.component.js +25 -28
  392. package/dist/components/scroll-area/scroll-area.component.js.map +1 -1
  393. package/dist/components/scroll-progress/scroll-progress.component.js +13 -17
  394. package/dist/components/scroll-progress/scroll-progress.component.js.map +1 -1
  395. package/dist/components/search/search.component.d.ts +6 -1
  396. package/dist/components/search/search.component.js.map +1 -1
  397. package/dist/components/select/select.component.d.ts +47 -0
  398. package/dist/components/select/select.component.js +268 -157
  399. package/dist/components/select/select.component.js.map +1 -1
  400. package/dist/components/select/select.scss.js +1 -1
  401. package/dist/components/sidenav/sidenav-group.component.d.ts +1 -0
  402. package/dist/components/sidenav/sidenav-group.component.js +11 -14
  403. package/dist/components/sidenav/sidenav-group.component.js.map +1 -1
  404. package/dist/components/sidenav/sidenav-item.component.js +20 -23
  405. package/dist/components/sidenav/sidenav-item.component.js.map +1 -1
  406. package/dist/components/sidenav/sidenav.component.js +17 -20
  407. package/dist/components/sidenav/sidenav.component.js.map +1 -1
  408. package/dist/components/skeleton/skeleton.component.js +9 -12
  409. package/dist/components/skeleton/skeleton.component.js.map +1 -1
  410. package/dist/components/skip-link/skip-link.component.js +13 -16
  411. package/dist/components/skip-link/skip-link.component.js.map +1 -1
  412. package/dist/components/snackbar/snackbar-message.component.d.ts +3 -1
  413. package/dist/components/snackbar/snackbar-message.component.js +39 -44
  414. package/dist/components/snackbar/snackbar-message.component.js.map +1 -1
  415. package/dist/components/snackbar/snackbar.component.d.ts +0 -1
  416. package/dist/components/snackbar/snackbar.component.js +36 -42
  417. package/dist/components/snackbar/snackbar.component.js.map +1 -1
  418. package/dist/components/spinner/spinner.component.js +33 -38
  419. package/dist/components/spinner/spinner.component.js.map +1 -1
  420. package/dist/components/stack/stack.component.d.ts +2 -1
  421. package/dist/components/stack/stack.component.js +16 -19
  422. package/dist/components/stack/stack.component.js.map +1 -1
  423. package/dist/components/switch/switch.component.d.ts +6 -0
  424. package/dist/components/switch/switch.component.js +48 -51
  425. package/dist/components/switch/switch.component.js.map +1 -1
  426. package/dist/components/switch/switch.scss.js +1 -1
  427. package/dist/components/tab/tab-group.component.d.ts +8 -3
  428. package/dist/components/tab/tab-group.component.js +43 -33
  429. package/dist/components/tab/tab-group.component.js.map +1 -1
  430. package/dist/components/tab/tab.component.js +22 -25
  431. package/dist/components/tab/tab.component.js.map +1 -1
  432. package/dist/components/table/table-cell.component.d.ts +1 -1
  433. package/dist/components/table/table-cell.component.js +16 -19
  434. package/dist/components/table/table-cell.component.js.map +1 -1
  435. package/dist/components/table/table-header.component.js +21 -24
  436. package/dist/components/table/table-header.component.js.map +1 -1
  437. package/dist/components/table/table-row.component.js +15 -18
  438. package/dist/components/table/table-row.component.js.map +1 -1
  439. package/dist/components/table/table.component.d.ts +2 -0
  440. package/dist/components/table/table.component.js +18 -22
  441. package/dist/components/table/table.component.js.map +1 -1
  442. package/dist/components/textarea/textarea.component.d.ts +2 -0
  443. package/dist/components/textarea/textarea.component.js +42 -46
  444. package/dist/components/textarea/textarea.component.js.map +1 -1
  445. package/dist/components/textarea/textarea.scss.js +1 -1
  446. package/dist/components/timeline/timeline-item.component.js +7 -10
  447. package/dist/components/timeline/timeline-item.component.js.map +1 -1
  448. package/dist/components/timeline/timeline.component.js +5 -8
  449. package/dist/components/timeline/timeline.component.js.map +1 -1
  450. package/dist/components/timepicker/time-grid.component.d.ts +3 -0
  451. package/dist/components/timepicker/time-grid.component.js +12 -15
  452. package/dist/components/timepicker/time-grid.component.js.map +1 -1
  453. package/dist/components/timepicker/timepicker.component.d.ts +7 -0
  454. package/dist/components/timepicker/timepicker.component.js +83 -85
  455. package/dist/components/timepicker/timepicker.component.js.map +1 -1
  456. package/dist/components/timepicker/timepicker.scss.js +1 -1
  457. package/dist/components/toc/toc.component.d.ts +2 -0
  458. package/dist/components/toc/toc.component.js +58 -61
  459. package/dist/components/toc/toc.component.js.map +1 -1
  460. package/dist/components/toggle-button/toggle-button.component.js +9 -12
  461. package/dist/components/toggle-button/toggle-button.component.js.map +1 -1
  462. package/dist/components/tooltip/tooltip.component.d.ts +2 -0
  463. package/dist/components/tooltip/tooltip.component.js +16 -18
  464. package/dist/components/tooltip/tooltip.component.js.map +1 -1
  465. package/dist/components/tray/tray.component.d.ts +4 -1
  466. package/dist/components/tray/tray.component.js +13 -16
  467. package/dist/components/tray/tray.component.js.map +1 -1
  468. package/dist/components/typography/typography.component.js +38 -41
  469. package/dist/components/typography/typography.component.js.map +1 -1
  470. package/dist/components.d.ts +3 -0
  471. package/dist/components.js +204 -195
  472. package/dist/components.js.map +1 -1
  473. package/dist/components.native.css +5 -2
  474. package/dist/components.native.css.map +1 -1
  475. package/dist/dap-design-system.d.ts +3 -0
  476. package/dist/dds-preupgrade.css +57 -0
  477. package/dist/dds.js +383 -374
  478. package/dist/dds.js.map +1 -1
  479. package/dist/internal/dds-hu-element.d.ts +8 -0
  480. package/dist/internal/dds-hu-element.js +40 -41
  481. package/dist/internal/dds-hu-element.js.map +1 -1
  482. package/dist/internal/mixin/choiceElementMixin.js +7 -7
  483. package/dist/internal/mixin/feedbackMixin.js +13 -15
  484. package/dist/internal/mixin/feedbackMixin.js.map +1 -1
  485. package/dist/internal/mixin/focusableMixin.js +6 -6
  486. package/dist/internal/mixin/formElementMixin.d.ts +1 -0
  487. package/dist/internal/mixin/formElementMixin.js +1 -1
  488. package/dist/internal/mixin/formElementMixin.js.map +1 -1
  489. package/dist/internal/mixin/labelPositionedMixin.js +1 -1
  490. package/dist/internal/mixin/labelableMixin.d.ts +1 -1
  491. package/dist/internal/mixin/labelableMixin.js +61 -63
  492. package/dist/internal/mixin/labelableMixin.js.map +1 -1
  493. package/dist/internal/mixin/sizedMixin.js +29 -27
  494. package/dist/internal/mixin/sizedMixin.js.map +1 -1
  495. package/dist/internal/templates/formLabel.d.ts +41 -0
  496. package/dist/internal/templates/formLabel.js +47 -0
  497. package/dist/internal/templates/formLabel.js.map +1 -0
  498. package/dist/localization/localization.d.ts +1 -2
  499. package/dist/localization/localization.js +77 -76
  500. package/dist/localization/localization.js.map +1 -1
  501. package/dist/localization/localize-controller.d.ts +12 -0
  502. package/dist/localization/localize-controller.js +51 -0
  503. package/dist/localization/localize-controller.js.map +1 -0
  504. package/dist/manifest/types/vue/index.d.ts +436 -221
  505. package/dist/manifest/vscode.html-custom-data.json +271 -217
  506. package/dist/manifest/web-types.json +549 -445
  507. package/dist/react/dap-ds-accordion/index.d.ts +1 -0
  508. package/dist/react/dap-ds-accordion/index.js.map +1 -1
  509. package/dist/react/dap-ds-anchor-heading/index.d.ts +1 -0
  510. package/dist/react/dap-ds-anchor-heading/index.js.map +1 -1
  511. package/dist/react/dap-ds-banner/index.d.ts +1 -1
  512. package/dist/react/dap-ds-banner/index.js.map +1 -1
  513. package/dist/react/dap-ds-breadcrumb/index.d.ts +1 -1
  514. package/dist/react/dap-ds-breadcrumb/index.js.map +1 -1
  515. package/dist/react/dap-ds-button-group/index.d.ts +45 -0
  516. package/dist/react/dap-ds-button-group/index.js +15 -0
  517. package/dist/react/dap-ds-button-group/index.js.map +1 -0
  518. package/dist/react/dap-ds-button-group-separator/index.d.ts +24 -0
  519. package/dist/react/dap-ds-button-group-separator/index.js +15 -0
  520. package/dist/react/dap-ds-button-group-separator/index.js.map +1 -0
  521. package/dist/react/dap-ds-button-group-text/index.d.ts +30 -0
  522. package/dist/react/dap-ds-button-group-text/index.js +15 -0
  523. package/dist/react/dap-ds-button-group-text/index.js.map +1 -0
  524. package/dist/react/dap-ds-calendar/index.d.ts +3 -0
  525. package/dist/react/dap-ds-calendar/index.js.map +1 -1
  526. package/dist/react/dap-ds-callout/index.d.ts +1 -0
  527. package/dist/react/dap-ds-callout/index.js.map +1 -1
  528. package/dist/react/dap-ds-card/index.d.ts +1 -0
  529. package/dist/react/dap-ds-card/index.js.map +1 -1
  530. package/dist/react/dap-ds-checkbox/index.d.ts +7 -1
  531. package/dist/react/dap-ds-checkbox/index.js.map +1 -1
  532. package/dist/react/dap-ds-chip/index.d.ts +1 -0
  533. package/dist/react/dap-ds-chip/index.js.map +1 -1
  534. package/dist/react/dap-ds-code-puncher/index.d.ts +4 -0
  535. package/dist/react/dap-ds-code-puncher/index.js.map +1 -1
  536. package/dist/react/dap-ds-combobox/index.d.ts +9 -1
  537. package/dist/react/dap-ds-combobox/index.js.map +1 -1
  538. package/dist/react/dap-ds-command/index.d.ts +3 -0
  539. package/dist/react/dap-ds-command/index.js.map +1 -1
  540. package/dist/react/dap-ds-copybox-input/index.d.ts +11 -0
  541. package/dist/react/dap-ds-copybox-input/index.js.map +1 -1
  542. package/dist/react/dap-ds-datatable/index.d.ts +17 -0
  543. package/dist/react/dap-ds-datatable/index.js.map +1 -1
  544. package/dist/react/dap-ds-datepicker/index.d.ts +8 -0
  545. package/dist/react/dap-ds-datepicker/index.js.map +1 -1
  546. package/dist/react/dap-ds-file-input/index.d.ts +3 -0
  547. package/dist/react/dap-ds-file-input/index.js.map +1 -1
  548. package/dist/react/dap-ds-file-input-list-item/index.d.ts +1 -0
  549. package/dist/react/dap-ds-file-input-list-item/index.js.map +1 -1
  550. package/dist/react/dap-ds-form-label/index.d.ts +1 -1
  551. package/dist/react/dap-ds-form-label/index.js.map +1 -1
  552. package/dist/react/dap-ds-icon-button/index.d.ts +1 -0
  553. package/dist/react/dap-ds-icon-button/index.js.map +1 -1
  554. package/dist/react/dap-ds-input-group/index.d.ts +4 -0
  555. package/dist/react/dap-ds-input-group/index.js.map +1 -1
  556. package/dist/react/dap-ds-list-item/index.d.ts +2 -0
  557. package/dist/react/dap-ds-list-item/index.js.map +1 -1
  558. package/dist/react/dap-ds-number-input/index.d.ts +7 -0
  559. package/dist/react/dap-ds-number-input/index.js.map +1 -1
  560. package/dist/react/dap-ds-official-website-banner/index.d.ts +1 -0
  561. package/dist/react/dap-ds-official-website-banner/index.js.map +1 -1
  562. package/dist/react/dap-ds-option-item/index.d.ts +1 -0
  563. package/dist/react/dap-ds-option-item/index.js.map +1 -1
  564. package/dist/react/dap-ds-option-list/index.d.ts +1 -1
  565. package/dist/react/dap-ds-option-list/index.js.map +1 -1
  566. package/dist/react/dap-ds-password-input/index.d.ts +12 -5
  567. package/dist/react/dap-ds-password-input/index.js.map +1 -1
  568. package/dist/react/dap-ds-radio-button/index.d.ts +5 -0
  569. package/dist/react/dap-ds-radio-button/index.js.map +1 -1
  570. package/dist/react/dap-ds-radio-group/index.d.ts +5 -0
  571. package/dist/react/dap-ds-radio-group/index.js.map +1 -1
  572. package/dist/react/dap-ds-scroll-area/index.d.ts +2 -1
  573. package/dist/react/dap-ds-scroll-area/index.js.map +1 -1
  574. package/dist/react/dap-ds-search/index.d.ts +6 -1
  575. package/dist/react/dap-ds-search/index.js.map +1 -1
  576. package/dist/react/dap-ds-select/index.d.ts +6 -0
  577. package/dist/react/dap-ds-select/index.js.map +1 -1
  578. package/dist/react/dap-ds-sidenav-group/index.d.ts +1 -0
  579. package/dist/react/dap-ds-sidenav-group/index.js.map +1 -1
  580. package/dist/react/dap-ds-snackbar/index.d.ts +0 -1
  581. package/dist/react/dap-ds-snackbar/index.js.map +1 -1
  582. package/dist/react/dap-ds-snackbar-message/index.d.ts +3 -1
  583. package/dist/react/dap-ds-snackbar-message/index.js.map +1 -1
  584. package/dist/react/dap-ds-stack/index.d.ts +2 -1
  585. package/dist/react/dap-ds-stack/index.js.map +1 -1
  586. package/dist/react/dap-ds-switch/index.d.ts +6 -0
  587. package/dist/react/dap-ds-switch/index.js.map +1 -1
  588. package/dist/react/dap-ds-tab-group/index.d.ts +4 -2
  589. package/dist/react/dap-ds-tab-group/index.js.map +1 -1
  590. package/dist/react/dap-ds-table/index.d.ts +2 -0
  591. package/dist/react/dap-ds-table/index.js.map +1 -1
  592. package/dist/react/dap-ds-table-cell/index.d.ts +1 -1
  593. package/dist/react/dap-ds-table-cell/index.js.map +1 -1
  594. package/dist/react/dap-ds-textarea/index.d.ts +2 -0
  595. package/dist/react/dap-ds-textarea/index.js.map +1 -1
  596. package/dist/react/dap-ds-time-grid/index.d.ts +3 -0
  597. package/dist/react/dap-ds-time-grid/index.js.map +1 -1
  598. package/dist/react/dap-ds-timepicker/index.d.ts +5 -0
  599. package/dist/react/dap-ds-timepicker/index.js.map +1 -1
  600. package/dist/react/dap-ds-toc/index.d.ts +2 -0
  601. package/dist/react/dap-ds-toc/index.js.map +1 -1
  602. package/dist/react/dap-ds-tooltip/index.d.ts +2 -0
  603. package/dist/react/dap-ds-tooltip/index.js.map +1 -1
  604. package/dist/react/dap-ds-tray/index.d.ts +4 -1
  605. package/dist/react/dap-ds-tray/index.js.map +1 -1
  606. package/dist/react/index.d.ts +8 -5
  607. package/dist/react-types.ts +8 -5
  608. package/dist/react.js +368 -362
  609. package/dist/react.js.map +1 -1
  610. package/package.json +14 -3
  611. package/dist/node_modules/@lit/context/lib/context-request-event.js +0 -14
  612. package/dist/node_modules/@lit/context/lib/context-request-event.js.map +0 -1
  613. package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js +0 -31
  614. package/dist/node_modules/@lit/context/lib/controllers/context-consumer.js.map +0 -1
  615. package/dist/node_modules/@lit/context/lib/controllers/context-provider.js +0 -40
  616. package/dist/node_modules/@lit/context/lib/controllers/context-provider.js.map +0 -1
  617. package/dist/node_modules/@lit/context/lib/create-context.js +0 -12
  618. package/dist/node_modules/@lit/context/lib/create-context.js.map +0 -1
  619. package/dist/node_modules/@lit/context/lib/value-notifier.js +0 -37
  620. package/dist/node_modules/@lit/context/lib/value-notifier.js.map +0 -1
  621. package/dist/node_modules/@lit/reactive-element/css-tag.js +0 -51
  622. package/dist/node_modules/@lit/reactive-element/css-tag.js.map +0 -1
  623. package/dist/node_modules/@lit/reactive-element/decorators/base.js +0 -10
  624. package/dist/node_modules/@lit/reactive-element/decorators/base.js.map +0 -1
  625. package/dist/node_modules/@lit/reactive-element/decorators/property.js +0 -38
  626. package/dist/node_modules/@lit/reactive-element/decorators/property.js.map +0 -1
  627. package/dist/node_modules/@lit/reactive-element/decorators/query-all.js +0 -17
  628. package/dist/node_modules/@lit/reactive-element/decorators/query-all.js.map +0 -1
  629. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js +0 -20
  630. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js.map +0 -1
  631. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js +0 -20
  632. package/dist/node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js.map +0 -1
  633. package/dist/node_modules/@lit/reactive-element/decorators/query.js +0 -21
  634. package/dist/node_modules/@lit/reactive-element/decorators/query.js.map +0 -1
  635. package/dist/node_modules/@lit/reactive-element/decorators/state.js +0 -25
  636. package/dist/node_modules/@lit/reactive-element/decorators/state.js.map +0 -1
  637. package/dist/node_modules/@lit/reactive-element/reactive-element.js +0 -276
  638. package/dist/node_modules/@lit/reactive-element/reactive-element.js.map +0 -1
  639. package/dist/node_modules/lit-element/lit-element.js +0 -53
  640. package/dist/node_modules/lit-element/lit-element.js.map +0 -1
  641. package/dist/node_modules/lit-html/async-directive.js +0 -71
  642. package/dist/node_modules/lit-html/async-directive.js.map +0 -1
  643. package/dist/node_modules/lit-html/directive-helpers.js +0 -46
  644. package/dist/node_modules/lit-html/directive-helpers.js.map +0 -1
  645. package/dist/node_modules/lit-html/directive.js +0 -28
  646. package/dist/node_modules/lit-html/directive.js.map +0 -1
  647. package/dist/node_modules/lit-html/directives/if-defined.js +0 -11
  648. package/dist/node_modules/lit-html/directives/if-defined.js.map +0 -1
  649. package/dist/node_modules/lit-html/directives/map.js +0 -15
  650. package/dist/node_modules/lit-html/directives/map.js.map +0 -1
  651. package/dist/node_modules/lit-html/directives/repeat.js +0 -63
  652. package/dist/node_modules/lit-html/directives/repeat.js.map +0 -1
  653. package/dist/node_modules/lit-html/directives/style-map.js +0 -37
  654. package/dist/node_modules/lit-html/directives/style-map.js.map +0 -1
  655. package/dist/node_modules/lit-html/lit-html.js +0 -249
  656. package/dist/node_modules/lit-html/lit-html.js.map +0 -1
  657. package/dist/node_modules/lit-html/static.js +0 -34
  658. package/dist/node_modules/lit-html/static.js.map +0 -1
  659. package/dist/node_modules/lit-i18n/src/lit-i18n.js +0 -95
  660. package/dist/node_modules/lit-i18n/src/lit-i18n.js.map +0 -1
@@ -1,25 +1,22 @@
1
- import { clsx as o } 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 h } 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 s } 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 k from "../icons/system/system-check-line2/system-check-line2.component.js";
13
- import $ from "../icons/system/system-subtract-line/system-subtract-line.component.js";
14
- import v from "../typography/typography.component.js";
15
- import _ from "./_styles/checkbox.scss.js";
16
- import { unsafeCSS as g } from "../../node_modules/@lit/reactive-element/css-tag.js";
17
- var I = Object.defineProperty, c = (b, e, a, p) => {
18
- for (var i = void 0, r = b.length - 1, d; r >= 0; r--)
19
- (d = b[r]) && (i = d(e, a, i) || i);
20
- return i && I(e, a, i), i;
1
+ import { clsx as d } from "../../node_modules/clsx/dist/clsx.js";
2
+ import { unsafeCSS as b } from "lit";
3
+ import { query as f, property as h } from "lit/decorators.js";
4
+ import { ifDefined as o } from "lit/directives/if-defined.js";
5
+ import { html as c } 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 k from "../feedback/feedback.component.js";
9
+ import $ from "../form/form-label/form-label.component.js";
10
+ import v from "../icons/system/system-check-line2/system-check-line2.component.js";
11
+ import _ from "../icons/system/system-subtract-line/system-subtract-line.component.js";
12
+ import g from "../typography/typography.component.js";
13
+ import I from "./_styles/checkbox.scss.js";
14
+ var x = Object.defineProperty, l = (u, e, a, p) => {
15
+ for (var i = void 0, r = u.length - 1, s; r >= 0; r--)
16
+ (s = u[r]) && (i = s(e, a, i) || i);
17
+ return i && x(e, a, i), i;
21
18
  }, t;
22
- const n = (t = class extends f {
19
+ const n = (t = class extends y {
23
20
  constructor() {
24
21
  super(), this.indeterminate = !1, this.preventDefault = !1, this.border = !1, this.readonly = !1, this.type = "normal", t.nextId++;
25
22
  const e = typeof crypto != "undefined" && crypto.randomUUID ? crypto.randomUUID().slice(0, 8) : Date.now().toString(36);
@@ -72,13 +69,13 @@ const n = (t = class extends f {
72
69
  readonly: this.readonly,
73
70
  type: "checkbox"
74
71
  });
75
- } catch (d) {
76
- console.error("Error emitting checkbox change event:", d);
72
+ } catch (s) {
73
+ console.error("Error emitting checkbox change event:", s);
77
74
  }
78
75
  try {
79
76
  this.setValidity();
80
- } catch (d) {
81
- console.error("Error setting checkbox validity:", d);
77
+ } catch (s) {
78
+ console.error("Error setting checkbox validity:", s);
82
79
  }
83
80
  }
84
81
  /**
@@ -137,14 +134,14 @@ const n = (t = class extends f {
137
134
  * @private
138
135
  */
139
136
  renderIcon() {
140
- return this.indeterminate ? l`
137
+ return this.indeterminate ? c`
141
138
  <dap-ds-icon-subtract-line
142
139
  class="checkbox__icon"
143
140
  part="icon"
144
141
  exportparts="base:icon-base"
145
142
  size="16"
146
143
  decorative></dap-ds-icon-subtract-line>
147
- ` : this.checked ? l`
144
+ ` : this.checked ? c`
148
145
  <dap-ds-icon-check-line2
149
146
  class="checkbox__icon"
150
147
  part="icon"
@@ -172,11 +169,11 @@ const n = (t = class extends f {
172
169
  );
173
170
  }
174
171
  render() {
175
- return l`
172
+ return c`
176
173
  <div part="base">
177
174
  <label
178
175
  part="base-label"
179
- class=${o("checkbox choice", `checkbox--${this.size}`, {
176
+ class=${d("checkbox choice", `checkbox--${this.size}`, {
180
177
  "checkbox--checked": this.checked,
181
178
  "checkbox--disabled": this.disabled,
182
179
  "checkbox--readonly": this.readonly,
@@ -189,26 +186,26 @@ const n = (t = class extends f {
189
186
  })}>
190
187
  <div
191
188
  part="wrapper"
192
- class=${o("input__wrapper", {
189
+ class=${d("input__wrapper", {
193
190
  "input__wrapper--background": this.type === "background",
194
191
  "input__wrapper--border": this.border
195
192
  })}>
196
193
  <input
197
194
  part="input"
198
195
  type="checkbox"
199
- class=${o("input", {
196
+ class=${d("input", {
200
197
  "input--background": this.type === "background"
201
198
  })}
202
- name=${s(this.name ? this.name : void 0)}
199
+ name=${o(this.name ? this.name : void 0)}
203
200
  id=${this.inputId}
204
201
  .indeterminate=${this.indeterminate}
205
202
  .checked=${this.checked}
206
203
  .disabled=${this.disabled}
207
204
  .required=${this.required}
208
- aria-labelledby=${s(
205
+ aria-labelledby=${o(
209
206
  !this.ariaLabel && this.label ? this.labelId : void 0
210
207
  )}
211
- aria-describedby=${this.ariaLabel ? "" : s(this.getAriaDescribedBy())}
208
+ aria-describedby=${this.ariaLabel ? "" : o(this.getAriaDescribedBy())}
212
209
  aria-checked=${this.getAriaChecked()}
213
210
  .aria-invalid=${this.invalid ? "true" : null}
214
211
  @invalid=${this.handleInvalid}
@@ -220,7 +217,7 @@ const n = (t = class extends f {
220
217
 
221
218
  <span
222
219
  part="control"
223
- class=${o("input__control", `input__control--${this.size}`, {
220
+ class=${d("input__control", `input__control--${this.size}`, {
224
221
  "input__control--checked": this.checked,
225
222
  "input__control--disabled": this.disabled,
226
223
  "input__control--readonly": this.readonly,
@@ -229,7 +226,7 @@ const n = (t = class extends f {
229
226
  })}>
230
227
  <span
231
228
  part="high-contrast"
232
- class=${o(
229
+ class=${d(
233
230
  "input__control-high-contrast",
234
231
  `input__control-high-contrast--${this.size}`,
235
232
  {
@@ -242,47 +239,47 @@ const n = (t = class extends f {
242
239
 
243
240
  <div
244
241
  part="label-container"
245
- class=${o("choice__label-container", {
242
+ class=${d("choice__label-container", {
246
243
  "choice__label-container--disabled": this.disabled,
247
244
  "choice__label-container--readonly": this.readonly,
248
245
  "choice__label--bottom": this.descriptionPlacement === "top",
249
246
  "choice__label--top": this.descriptionPlacement === "bottom"
250
247
  })}>
251
- ${this.label && l`<dap-ds-form-label
252
- id=${this.labelId}
253
- class="label"
254
- part="label"
255
- .size=${this.size}
256
- .required=${this.required}
257
- .requiredLabel=${this.requiredLabel}
258
- .optional=${this.optional}
259
- aria-hidden="true"
260
- .optionalLabel=${this.optionalLabel}
261
- .disabled=${this.disabled || this.readonly}
262
- .readonly=${this.readonly}
263
- .hideLabel=${this.hideLabel}
264
- label=${s(this.label)}
265
- subtle
266
- renderAs="span">
267
- </dap-ds-form-label>`}
268
- ${this.description && l`
248
+ ${m({
249
+ label: this.label,
250
+ id: this.labelId,
251
+ size: this.size,
252
+ required: this.required,
253
+ requiredLabel: this.requiredLabel,
254
+ optional: this.optional,
255
+ optionalLabel: this.optionalLabel,
256
+ disabled: this.disabled || this.readonly,
257
+ hideLabel: this.hideLabel,
258
+ subtle: !0,
259
+ // Rendered as a decorative <span> (not a <label>): checkbox/switch
260
+ // already wrap the input in an outer <label>, and the accessible
261
+ // name comes from the input's aria-labelledby=${labelId}.
262
+ as: "span",
263
+ ariaHidden: !0
264
+ })}
265
+ ${this.description && c`
269
266
  <dap-ds-typography
270
267
  class="description"
271
268
  variant="description"
272
269
  part="description"
273
270
  aria-hidden="true"
274
- size=${s(this.size)}
271
+ size=${o(this.size)}
275
272
  id=${this.descriptionId}>
276
273
  ${this.description}
277
274
  </dap-ds-typography>
278
275
  `}
279
276
  </div>
280
277
  </div>
281
- ${this.feedback && l`
278
+ ${this.feedback && c`
282
279
  <dap-ds-feedback
283
280
  part="feedback"
284
- feedbackType=${s(this.feedbackType)}
285
- feedbackSize=${s(this.size)}
281
+ feedbackType=${o(this.feedbackType)}
282
+ feedbackSize=${o(this.size)}
286
283
  id="feedback"
287
284
  .subtle=${this.subtle}>
288
285
  ${this.feedback}
@@ -293,32 +290,32 @@ const n = (t = class extends f {
293
290
  `;
294
291
  }
295
292
  }, t.tagName = "dap-ds-checkbox", t.dependencies = {
296
- "dap-ds-icon-subtract-line": $,
297
- "dap-ds-icon-check-line2": k,
298
- "dap-ds-form-label": m,
299
- "dap-ds-typography": v,
300
- "dap-ds-feedback": y
301
- }, t.nextId = 0, t.styles = g(_), t);
302
- c([
303
- u(".input")
293
+ "dap-ds-icon-subtract-line": _,
294
+ "dap-ds-icon-check-line2": v,
295
+ "dap-ds-form-label": $,
296
+ "dap-ds-typography": g,
297
+ "dap-ds-feedback": k
298
+ }, t.nextId = 0, t.styles = b(I), t);
299
+ l([
300
+ f(".input")
304
301
  ], n.prototype, "input");
305
- c([
302
+ l([
306
303
  h({ type: Boolean, reflect: !0 })
307
304
  ], n.prototype, "indeterminate");
308
- c([
305
+ l([
309
306
  h({ type: Boolean, reflect: !0 })
310
307
  ], n.prototype, "preventDefault");
311
- c([
308
+ l([
312
309
  h({ type: Boolean })
313
310
  ], n.prototype, "border");
314
- c([
311
+ l([
315
312
  h({ type: Boolean, reflect: !0 })
316
313
  ], n.prototype, "readonly");
317
- c([
314
+ l([
318
315
  h({ type: String })
319
316
  ], n.prototype, "type");
320
- let j = n;
317
+ let V = n;
321
318
  export {
322
- j as default
319
+ V as default
323
320
  };
324
321
  //# sourceMappingURL=checkbox.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.component.js","sources":["../../../src/components/checkbox/checkbox.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize, CommonSize } from '@/common/types'\nimport { LabeledChoiceElement } from '@/internal/mixin/labeledChoiceElement'\n\nimport DapDSFeedback from '../feedback/feedback.component'\nimport DapDSFormLabel from '../form/form-label/form-label.component'\nimport SystemCheckLine2 from '../icons/system/system-check-line2/system-check-line2.component'\nimport SystemSubtractLine from '../icons/system/system-subtract-line/system-subtract-line.component'\nimport DapDSTypography from '../typography/typography.component'\nimport styles from './_styles/checkbox.scss?inline'\n\n/**\n * `dap-ds-checkbox`\n * @summary A checkbox is a form element that allows the user to select one or more options from a set.\n * @element dap-ds-checkbox\n * @title - Checkbox\n *\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean, type: 'checkbox' }} dds-change - Fired when the checkbox is checked or unchecked.\n * @event {{ void }} dds-blur - Emitted when the checkbox loses focus.\n * @event {{ void }} dds-focus - Emitted when the checkbox gains focus.\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean }} dds-input - Emitted when the checkbox receives input.\n *\n * @property {string} name - The name of the checkbox.\n * @property {string} value - The value of the checkbox.\n * @property {boolean} checked - Whether the checkbox is checked.\n * @property {string} label - The label of the checkbox.\n * @property {boolean} hideLabel - Visually hides the label while keeping it available to assistive technology. (default: false)\n * @property {string} description - The description of the checkbox.\n * @property {boolean} disabled - Whether the checkbox is disabled.\n * @property {boolean} readonly - Whether the checkbox is readonly (cannot be changed but value is submitted with form).\n * @property {boolean} required - Whether the checkbox is required.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the checkbox. Default is 'sm'.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n * @property {'left' | 'right'} labelPlacement - The placement of the label.\n * @property {'top' | 'bottom'} descriptionPlacement - The placement of the description.\n * @property {boolean} subtle - The weight of the label.\n * @property {string} feedback - The feedback of the checkbox.\n * @property {'negative' | 'positive' | 'warning'} feedbackType - The feedback type of the checkbox.\n * @property {boolean} invalid - The invalid state of the checkbox.\n * @property {boolean} optional - The optional state of the checkbox.\n * @property {string} optionalLabel - The optional label of the checkbox.\n * @property {string} requiredLabel - The required indicator of the checkbox. (default: '*')\n *\n * @csspart base - The main checkbox container.\n * @csspart label - The label of the checkbox.\n * @csspart input - The input of the checkbox.\n * @csspart control - The control of the checkbox.\n * @csspart icon - The icon of the checkbox.\n * @csspart icon-base - The base icon container.\n * @csspart label-container - The label container of the checkbox.\n * @csspart description - The description of the checkbox.\n * @csspart readonly - The readonly state of the checkbox.\n *\n * @cssproperty --dds-checkbox-size - The size of the checkbox. (default: var(--dds-spacing-500))\n * @cssproperty --dds-checkbox-border-width - The border width of the checkbox. (default: var(--dds-border-width-large))\n * @cssproperty --dds-checkbox-border-radius - The border radius of the checkbox. (default: var(--dds-radius-small))\n * @cssproperty --dds-checkbox-border-color - The border color of the checkbox. (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-checkbox-background-color - The background color of the checkbox. (default: transparent)\n * @cssproperty --dds-checkbox-icon-color - The color of the checkbox icon. (default: var(--dds-button-primary-icon-enabled))\n * @cssproperty --dds-checkbox-hover-border-color - The border color when hovering over the checkbox. (default: var(--dds-border-neutral-medium))\n * @cssproperty --dds-checkbox-hover-background-color - The background color when hovering over the checkbox. (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-checkbox-active-border-color - The border color when the checkbox is active. (default: var(--dds-border-neutral-strong))\n * @cssproperty --dds-checkbox-active-background-color - The background color when the checkbox is active. (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-checkbox-checked-border-color - The border color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-background-color - The background color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-hover-border-color - The border color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-hover-background-color - The background color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-active-border-color - The border color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-checked-active-background-color - The background color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-invalid-border-color - The border color when the checkbox is invalid. (default: var(--dds-border-negative-base))\n * @cssproperty --dds-checkbox-invalid-background-color - The background color when the checkbox is invalid. (default: var(--dds-background-negative-base))\n * @cssproperty --dds-checkbox-invalid-hover-border-color - The border color when hovering over an invalid checkbox. (default: var(--dds-border-negative-medium))\n * @cssproperty --dds-checkbox-invalid-hover-background-color - The background color when hovering over an invalid checkbox. (default: var(--dds-background-negative-medium))\n * @cssproperty --dds-checkbox-invalid-active-border-color - The border color when an invalid checkbox is active. (default: var(--dds-border-negative-strong))\n * @cssproperty --dds-checkbox-invalid-active-background-color - The background color when an invalid checkbox is active. (default: var(--dds-background-negative-strong))\n * @cssproperty --dds-checkbox-disabled-border-color - The border color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-background-color - The background color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-icon-color - The color of the checkbox icon when disabled. (default: var(--dds-button-primary-icon-disabled))\n * @cssproperty --dds-checkbox-readonly-border-color - The border color when the checkbox is readonly. (default: var(--dds-border-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-background-color - The background color when the checkbox is readonly. (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-icon-color - The color of the checkbox icon when readonly. (default: var(--dds-text-neutral-base))\n */\nexport default class DapDSCheckbox extends LabeledChoiceElement {\n static tagName = 'dap-ds-checkbox'\n\n static dependencies = {\n 'dap-ds-icon-subtract-line': SystemSubtractLine,\n 'dap-ds-icon-check-line2': SystemCheckLine2,\n 'dap-ds-form-label': DapDSFormLabel,\n 'dap-ds-typography': DapDSTypography,\n 'dap-ds-feedback': DapDSFeedback,\n }\n\n private static nextId = 0\n\n private readonly inputId: string\n private readonly labelId: string\n private readonly descriptionId: string\n\n @query('.input') private readonly input!: HTMLInputElement\n\n /** Whether the checkbox is indeterminate */\n @property({ type: Boolean, reflect: true }) indeterminate = false\n\n /** Whether the checkbox should prevent the default action */\n @property({ type: Boolean, reflect: true }) preventDefault: boolean = false\n\n /** This sets up border around the checkbox, when true. */\n @property({ type: Boolean }) border: boolean = false\n\n /** Whether the checkbox is readonly */\n @property({ type: Boolean, reflect: true }) readonly: boolean = false\n\n /** The type of the checkbox\n * @type {'normal' | 'background'}\n */\n @property({ type: String }) type: 'normal' | 'background' = 'normal'\n\n static readonly styles = unsafeCSS(styles)\n\n constructor() {\n super()\n DapDSCheckbox.nextId++\n const uniqueSuffix =\n typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID().slice(0, 8)\n : Date.now().toString(36)\n this.inputId = `input-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.labelId = `label-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.descriptionId = `description-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n // Initialize the feedbackId from FeedbackMixin\n this.feedbackId = `feedback-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n }\n\n /**\n * Validates property combinations and logs warnings for invalid states.\n * @private\n */\n private validateProperties(): void {\n // Warn if both checked and indeterminate are true (invalid combination)\n if (this.checked && this.indeterminate) {\n console.warn(\n 'Checkbox: Cannot be both checked and indeterminate simultaneously. Indeterminate state will take precedence.',\n )\n }\n }\n\n /**\n * Gets the aria-describedby attribute value by combining description and feedback IDs.\n * @returns {string | undefined} Space-separated IDs or undefined if none exist\n * @private\n */\n private getAriaDescribedBy(): string | undefined {\n const ids: string[] = []\n\n if (this.description) {\n ids.push(this.descriptionId)\n }\n\n if (this.feedback) {\n ids.push(this.feedbackId!)\n }\n\n return ids.length > 0 ? ids.join(' ') : undefined\n }\n\n /**\n * Gets the aria-checked attribute value based on checkbox state.\n * @returns {'true' | 'false' | 'mixed'} The appropriate aria-checked value\n * @private\n */\n private getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n /**\n * Handles click events on the checkbox.\n * Manages the checked/indeterminate state transitions and emits change events.\n * @private\n */\n private handleClick(event?: Event) {\n // Early return if click should be prevented, component is disabled, or readonly\n if (this.preventDefault || this.disabled || this.readonly) {\n if (this.readonly && event) {\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n // Validate property combinations before state change\n this.validateProperties()\n\n // Handle state transitions\n if (this.indeterminate) {\n this.indeterminate = false\n this.checked = true\n } else {\n this.checked = !this.checked\n }\n\n const { checked, indeterminate, value, disabled } = this\n\n // Emit change event with null safety\n try {\n this.emit('dds-change', {\n checked,\n indeterminate,\n value: value || (checked ? 'on' : 'off'),\n disabled,\n readonly: this.readonly,\n type: 'checkbox',\n })\n } catch (error) {\n console.error('Error emitting checkbox change event:', error)\n }\n\n // Update validity state with error handling\n try {\n this.setValidity()\n } catch (error) {\n console.error('Error setting checkbox validity:', error)\n }\n }\n\n /**\n * Handles input events on the checkbox.\n * Emits the dds-input event with current checkbox state.\n * @private\n */\n private handleInput() {\n const { checked, indeterminate, value, disabled } = this\n\n const event = new CustomEvent('dds-input', {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n checked,\n indeterminate,\n value,\n disabled,\n readonly: this.readonly,\n },\n })\n\n this.dispatchEvent(event)\n }\n\n /**\n * Handles keyboard events on the checkbox.\n * Provides enhanced keyboard navigation and accessibility.\n * @param {KeyboardEvent} event - The keyboard event\n * @private\n */\n private handleKeyDown(event: KeyboardEvent): void {\n // Early return if readonly\n if (this.readonly) {\n return\n }\n\n // Handle Space key to toggle checkbox (in addition to default behavior)\n if (event.code === 'Space') {\n // Allow default Space behavior for checkbox input\n // This ensures proper accessibility and form behavior\n return\n }\n\n // Handle Enter key to toggle checkbox (custom behavior)\n if (event.code === 'Enter') {\n event.preventDefault()\n this.handleClick()\n }\n }\n\n public get focusElement(): HTMLInputElement {\n if (!this.input) {\n throw new Error(\n 'Checkbox input element not found. Component may not be properly initialized.',\n )\n }\n return this.input\n }\n\n /**\n * Programmatically focuses the checkbox input element.\n * @public\n */\n public focus(): void {\n if (this.input && !this.disabled && !this.readonly) {\n this.input.focus()\n }\n }\n\n /**\n * Programmatically blurs the checkbox input element.\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur()\n }\n }\n\n /**\n * Renders the appropriate icon based on checkbox state.\n * @returns {TemplateResult | null} The icon template or null if unchecked\n * @private\n */\n renderIcon() {\n if (this.indeterminate) {\n return html`\n <dap-ds-icon-subtract-line\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-subtract-line>\n `\n }\n\n if (this.checked) {\n return html`\n <dap-ds-icon-check-line2\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-check-line2>\n `\n }\n\n return null\n }\n\n /**\n * Handles invalid events on the checkbox input.\n * Prevents the default browser validation UI from showing and manages invalid state.\n * @param {Event} event - The invalid event\n * @private\n */\n handleInvalid(event: Event) {\n event.preventDefault()\n // Set invalid state if not already set\n if (!this.invalid) {\n this.invalid = true\n }\n }\n\n setValidity() {\n if (!this.innerInput) return\n const { valid } = (this.innerInput as HTMLInputElement).validity\n if (valid) {\n // Only clear invalid for constrained (required) inputs. For an\n // unconstrained checkbox `invalid` is externally controlled (e.g. by a\n // parent input-group), so setValidity must not clobber it here.\n if (this.required) this.invalid = false\n this.internals.setValidity({})\n } else {\n this.internals.setValidity(\n (this.innerInput as HTMLInputElement).validity,\n this.validationMessage,\n this.innerInput,\n )\n }\n }\n\n render() {\n return html`\n <div part=\"base\">\n <label\n part=\"base-label\"\n class=${clsx('checkbox choice', `checkbox--${this.size}`, {\n 'checkbox--checked': this.checked,\n 'checkbox--disabled': this.disabled,\n 'checkbox--readonly': this.readonly,\n 'checkbox--indeterminate': this.indeterminate,\n 'checkbox--required': this.required,\n 'choice--readonly': this.readonly,\n 'choice--disabled': this.disabled,\n 'choice__label--right': this.labelPlacement === 'right',\n 'choice__label--left': this.labelPlacement === 'left',\n })}>\n <div\n part=\"wrapper\"\n class=${clsx('input__wrapper', {\n 'input__wrapper--background': this.type === 'background',\n 'input__wrapper--border': this.border,\n })}>\n <input\n part=\"input\"\n type=\"checkbox\"\n class=${clsx('input', {\n 'input--background': this.type === 'background',\n })}\n name=${ifDefined(this.name ? this.name : undefined)}\n id=${this.inputId}\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n .disabled=${this.disabled}\n .required=${this.required}\n aria-labelledby=${ifDefined(\n !this.ariaLabel && this.label ? this.labelId : undefined,\n )}\n aria-describedby=${!this.ariaLabel\n ? ifDefined(this.getAriaDescribedBy())\n : ''}\n aria-checked=${this.getAriaChecked()}\n .aria-invalid=${this.invalid ? 'true' : null}\n @invalid=${this.handleInvalid}\n @click=${this.handleClick}\n @input=${this.handleInput}\n @keydown=${this.handleKeyDown}\n @blur=${super.onBlur}\n @focus=${super.onFocus} />\n\n <span\n part=\"control\"\n class=${clsx('input__control', `input__control--${this.size}`, {\n 'input__control--checked': this.checked,\n 'input__control--disabled': this.disabled,\n 'input__control--readonly': this.readonly,\n 'input__control--indeterminate': this.indeterminate,\n 'input__control--invalid': this.invalid,\n })}>\n <span\n part=\"high-contrast\"\n class=${clsx(\n 'input__control-high-contrast',\n `input__control-high-contrast--${this.size}`,\n {\n 'input__control-high-contrast--disabled': this.disabled,\n 'input__control-high-contrast--readonly': this.readonly,\n },\n )}></span>\n <slot name=\"iconcontent\"> ${this.renderIcon()} </slot>\n </span>\n\n <div\n part=\"label-container\"\n class=${clsx('choice__label-container', {\n 'choice__label-container--disabled': this.disabled,\n 'choice__label-container--readonly': this.readonly,\n 'choice__label--bottom': this.descriptionPlacement === 'top',\n 'choice__label--top': this.descriptionPlacement === 'bottom',\n })}>\n ${this.label &&\n html`<dap-ds-form-label\n id=${this.labelId}\n class=\"label\"\n part=\"label\"\n .size=${this.size}\n .required=${this.required}\n .requiredLabel=${this.requiredLabel}\n .optional=${this.optional}\n aria-hidden=\"true\"\n .optionalLabel=${this.optionalLabel}\n .disabled=${this.disabled || this.readonly}\n .readonly=${this.readonly}\n .hideLabel=${this.hideLabel}\n label=${ifDefined(this.label)}\n subtle\n renderAs=\"span\">\n </dap-ds-form-label>`}\n ${this.description &&\n html`\n <dap-ds-typography\n class=\"description\"\n variant=\"description\"\n part=\"description\"\n aria-hidden=\"true\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=${this.descriptionId}>\n ${this.description}\n </dap-ds-typography>\n `}\n </div>\n </div>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n feedbackType=${ifDefined(this.feedbackType)}\n feedbackSize=${ifDefined(this.size) as CommonSize}\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>\n `}\n </label>\n </div>\n `\n }\n}\n"],"names":["_DapDSCheckbox","_a","LabeledChoiceElement","uniqueSuffix","ids","event","checked","indeterminate","value","disabled","error","html","valid","clsx","ifDefined","SystemSubtractLine","SystemCheckLine2","DapDSFormLabel","DapDSTypography","DapDSFeedback","unsafeCSS","styles","__decorateClass","query","property","DapDSCheckbox"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuFA,MAAqBA,KAArBC,IAAA,cAA2CC,EAAqB;AAAA,EAsC9D,cAAc;AACN,UAAA,GAnBoD,KAAA,gBAAA,IAGU,KAAA,iBAAA,IAGvB,KAAA,SAAA,IAGiB,KAAA,WAAA,IAKJ,KAAA,OAAA,UAM5CD,EAAA;AACd,UAAME,IACJ,OAAO,UAAW,eAAe,OAAO,aACpC,OAAO,WAAA,EAAa,MAAM,GAAG,CAAC,IAC9B,KAAK,IAAI,EAAE,SAAS,EAAE;AAC5B,SAAK,UAAU,SAASF,EAAc,MAAM,IAAIE,CAAY,IAC5D,KAAK,UAAU,SAASF,EAAc,MAAM,IAAIE,CAAY,IAC5D,KAAK,gBAAgB,eAAeF,EAAc,MAAM,IAAIE,CAAY,IAExE,KAAK,aAAa,YAAYF,EAAc,MAAM,IAAIE,CAAY;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5D,qBAA2B;AAE7B,IAAA,KAAK,WAAW,KAAK,iBACf,QAAA;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQM,qBAAyC;AAC/C,UAAMC,IAAgB,CAAC;AAEvB,WAAI,KAAK,eACHA,EAAA,KAAK,KAAK,aAAa,GAGzB,KAAK,YACHA,EAAA,KAAK,KAAK,UAAW,GAGpBA,EAAI,SAAS,IAAIA,EAAI,KAAK,GAAG,IAAI;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlC,iBAA6C;AACnD,WAAI,KAAK,gBACA,UAEF,KAAK,UAAU,SAAS;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzB,YAAYC,GAAe;AAEjC,QAAI,KAAK,kBAAkB,KAAK,YAAY,KAAK,UAAU;AACrD,MAAA,KAAK,YAAYA,MACnBA,EAAM,eAAe,GACrBA,EAAM,gBAAgB;AAExB;AAAA,IAAA;AAIF,SAAK,mBAAmB,GAGpB,KAAK,iBACP,KAAK,gBAAgB,IACrB,KAAK,UAAU,MAEV,KAAA,UAAU,CAAC,KAAK;AAGvB,UAAM,EAAE,SAAAC,GAAS,eAAAC,GAAe,OAAAC,GAAO,UAAAC,EAAa,IAAA;AAGhD,QAAA;AACF,WAAK,KAAK,cAAc;AAAA,QACtB,SAAAH;AAAA,QACA,eAAAC;AAAA,QACA,OAAOC,MAAUF,IAAU,OAAO;AAAA,QAClC,UAAAG;AAAA,QACA,UAAU,KAAK;AAAA,QACf,MAAM;AAAA,MAAA,CACP;AAAA,aACMC,GAAO;AACN,cAAA,MAAM,yCAAyCA,CAAK;AAAA,IAAA;AAI1D,QAAA;AACF,WAAK,YAAY;AAAA,aACVA,GAAO;AACN,cAAA,MAAM,oCAAoCA,CAAK;AAAA,IAAA;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQM,cAAc;AACpB,UAAM,EAAE,SAAAJ,GAAS,eAAAC,GAAe,OAAAC,GAAO,UAAAC,EAAa,IAAA,MAE9CJ,IAAQ,IAAI,YAAY,aAAa;AAAA,MACzC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ;AAAA,QACN,SAAAC;AAAA,QACA,eAAAC;AAAA,QACA,OAAAC;AAAA,QACA,UAAAC;AAAA,QACA,UAAU,KAAK;AAAA,MAAA;AAAA,IACjB,CACD;AAED,SAAK,cAAcJ,CAAK;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASlB,cAAcA,GAA4B;AAEhD,IAAI,KAAK,YAKLA,EAAM,SAAS,WAOfA,EAAM,SAAS,YACjBA,EAAM,eAAe,GACrB,KAAK,YAAY;AAAA,EACnB;AAAA,EAGF,IAAW,eAAiC;AACtC,QAAA,CAAC,KAAK;AACR,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,WAAO,KAAK;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOP,QAAc;AACnB,IAAI,KAAK,SAAS,CAAC,KAAK,YAAY,CAAC,KAAK,YACxC,KAAK,MAAM,MAAM;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOK,OAAa;AAClB,IAAI,KAAK,SACP,KAAK,MAAM,KAAK;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQF,aAAa;AACX,WAAI,KAAK,gBACAM;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAUL,KAAK,UACAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAUF;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAST,cAAcN,GAAc;AAC1B,IAAAA,EAAM,eAAe,GAEhB,KAAK,YACR,KAAK,UAAU;AAAA,EACjB;AAAA,EAGF,cAAc;AACR,QAAA,CAAC,KAAK,WAAY;AACtB,UAAM,EAAE,OAAAO,EAAA,IAAW,KAAK,WAAgC;AACxD,IAAIA,KAIE,KAAK,aAAU,KAAK,UAAU,KAC7B,KAAA,UAAU,YAAY,EAAE,KAE7B,KAAK,UAAU;AAAA,MACZ,KAAK,WAAgC;AAAA,MACtC,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAGF,SAAS;AACA,WAAAD;AAAAA;AAAAA;AAAAA;AAAAA,kBAIOE,EAAK,mBAAmB,aAAa,KAAK,IAAI,IAAI;AAAA,MACxD,qBAAqB,KAAK;AAAA,MAC1B,sBAAsB,KAAK;AAAA,MAC3B,sBAAsB,KAAK;AAAA,MAC3B,2BAA2B,KAAK;AAAA,MAChC,sBAAsB,KAAK;AAAA,MAC3B,oBAAoB,KAAK;AAAA,MACzB,oBAAoB,KAAK;AAAA,MACzB,wBAAwB,KAAK,mBAAmB;AAAA,MAChD,uBAAuB,KAAK,mBAAmB;AAAA,IAAA,CAChD,CAAC;AAAA;AAAA;AAAA,oBAGQA,EAAK,kBAAkB;AAAA,MAC7B,8BAA8B,KAAK,SAAS;AAAA,MAC5C,0BAA0B,KAAK;AAAA,IAAA,CAChC,CAAC;AAAA;AAAA;AAAA;AAAA,sBAIQA,EAAK,SAAS;AAAA,MACpB,qBAAqB,KAAK,SAAS;AAAA,IAAA,CACpC,CAAC;AAAA,qBACKC,EAAU,KAAK,OAAO,KAAK,OAAO,MAAS,CAAC;AAAA,mBAC9C,KAAK,OAAO;AAAA,+BACA,KAAK,aAAa;AAAA,yBACxB,KAAK,OAAO;AAAA,0BACX,KAAK,QAAQ;AAAA,0BACb,KAAK,QAAQ;AAAA,gCACPA;AAAAA,MAChB,CAAC,KAAK,aAAa,KAAK,QAAQ,KAAK,UAAU;AAAA,IAChD,CAAA;AAAA,iCACmB,KAAK,YAErB,KADAA,EAAU,KAAK,mBAAoB,CAAA,CACjC;AAAA,6BACS,KAAK,eAAgB,CAAA;AAAA,8BACpB,KAAK,UAAU,SAAS,IAAI;AAAA,yBACjC,KAAK,aAAa;AAAA,uBACpB,KAAK,WAAW;AAAA,uBAChB,KAAK,WAAW;AAAA,yBACd,KAAK,aAAa;AAAA,sBACrB,MAAM,MAAM;AAAA,uBACX,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,sBAIdD,EAAK,kBAAkB,mBAAmB,KAAK,IAAI,IAAI;AAAA,MAC7D,2BAA2B,KAAK;AAAA,MAChC,4BAA4B,KAAK;AAAA,MACjC,4BAA4B,KAAK;AAAA,MACjC,iCAAiC,KAAK;AAAA,MACtC,2BAA2B,KAAK;AAAA,IAAA,CACjC,CAAC;AAAA;AAAA;AAAA,wBAGQA;AAAA,MACN;AAAA,MACA,iCAAiC,KAAK,IAAI;AAAA,MAC1C;AAAA,QACE,0CAA0C,KAAK;AAAA,QAC/C,0CAA0C,KAAK;AAAA,MAAA;AAAA,IACjD,CACD;AAAA,0CACyB,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKrCA,EAAK,2BAA2B;AAAA,MACtC,qCAAqC,KAAK;AAAA,MAC1C,qCAAqC,KAAK;AAAA,MAC1C,yBAAyB,KAAK,yBAAyB;AAAA,MACvD,sBAAsB,KAAK,yBAAyB;AAAA,IAAA,CACrD,CAAC;AAAA,gBACA,KAAK,SACPF;AAAAA,qBACO,KAAK,OAAO;AAAA;AAAA;AAAA,wBAGT,KAAK,IAAI;AAAA,4BACL,KAAK,QAAQ;AAAA,iCACR,KAAK,aAAa;AAAA,4BACvB,KAAK,QAAQ;AAAA;AAAA,iCAER,KAAK,aAAa;AAAA,4BACvB,KAAK,YAAY,KAAK,QAAQ;AAAA,4BAC9B,KAAK,QAAQ;AAAA,6BACZ,KAAK,SAAS;AAAA,wBACnBG,EAAU,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,mCAGV;AAAA,gBACnB,KAAK,eACPH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,yBAMWG,EAAU,KAAK,IAA6B,CAAC;AAAA,uBAC/C,KAAK,aAAa;AAAA,oBACrB,KAAK,WAAW;AAAA;AAAA,eAErB;AAAA;AAAA;AAAA,YAGH,KAAK,YACPH;AAAAA;AAAAA;AAAAA,6BAGmBG,EAAU,KAAK,YAAY,CAAC;AAAA,6BAC5BA,EAAU,KAAK,IAAI,CAAe;AAAA;AAAA,wBAEvC,KAAK,MAAM;AAAA,gBACnB,KAAK,QAAQ;AAAA;AAAA,WAElB;AAAA;AAAA;AAAA;AAAA,EAAA;AAKX,GA7ZEb,EAAO,UAAU,mBAEjBA,EAAO,eAAe;AAAA,EACpB,6BAA6Bc;AAAA,EAC7B,2BAA2BC;AAAA,EAC3B,qBAAqBC;AAAA,EACrB,qBAAqBC;AAAA,EACrB,mBAAmBC;AACrB,GAEAlB,EAAe,SAAS,GAyBRA,EAAA,SAASmB,EAAUC,CAAM,GApC3CpB;AAiBoCqB,EAAA;AAAA,EAAjCC,EAAM,QAAQ;AAAA,GAjBIvB,EAiBe,WAAA,OAAA;AAGUsB,EAAA;AAAA,EAA3CE,EAAS,EAAE,MAAM,SAAS,SAAS,GAAM,CAAA;AAAA,GApBvBxB,EAoByB,WAAA,eAAA;AAGAsB,EAAA;AAAA,EAA3CE,EAAS,EAAE,MAAM,SAAS,SAAS,GAAM,CAAA;AAAA,GAvBvBxB,EAuByB,WAAA,gBAAA;AAGfsB,EAAA;AAAA,EAA5BE,EAAS,EAAE,MAAM,QAAS,CAAA;AAAA,GA1BRxB,EA0BU,WAAA,QAAA;AAGesB,EAAA;AAAA,EAA3CE,EAAS,EAAE,MAAM,SAAS,SAAS,GAAM,CAAA;AAAA,GA7BvBxB,EA6ByB,WAAA,UAAA;AAKhBsB,EAAA;AAAA,EAA3BE,EAAS,EAAE,MAAM,OAAQ,CAAA;AAAA,GAlCPxB,EAkCS,WAAA,MAAA;AAlC9B,IAAqByB,IAArBzB;"}
1
+ {"version":3,"file":"checkbox.component.js","sources":["../../../src/components/checkbox/checkbox.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport { CommonFormElementSize, CommonSize } from '@/common/types'\nimport { LabeledChoiceElement } from '@/internal/mixin/labeledChoiceElement'\nimport { formLabelTemplate } from '@/internal/templates/formLabel'\n\nimport DapDSFeedback from '../feedback/feedback.component'\nimport DapDSFormLabel from '../form/form-label/form-label.component'\nimport SystemCheckLine2 from '../icons/system/system-check-line2/system-check-line2.component'\nimport SystemSubtractLine from '../icons/system/system-subtract-line/system-subtract-line.component'\nimport DapDSTypography from '../typography/typography.component'\nimport styles from './_styles/checkbox.scss?inline'\n\n/**\n * `dap-ds-checkbox`\n * @summary A checkbox is a form element that allows the user to select one or more options from a set.\n * @element dap-ds-checkbox\n * @title - Checkbox\n *\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean, type: 'checkbox' }} dds-change - Fired when the checkbox is checked or unchecked.\n * @event {{ void }} dds-blur - Emitted when the checkbox loses focus.\n * @event {{ void }} dds-focus - Emitted when the checkbox gains focus.\n * @event {{ checked: boolean, indeterminate: boolean, value: string, disabled: boolean, readonly: boolean }} dds-input - Emitted when the checkbox receives input.\n *\n * @property {string} name - The name of the checkbox.\n * @property {string} value - The value of the checkbox.\n * @property {boolean} checked - Whether the checkbox is checked.\n * @property {string} label - The label of the checkbox.\n * @property {boolean} hideLabel - Visually hides the label while keeping it available to assistive technology. (default: false)\n * @property {string} description - The description of the checkbox.\n * @property {boolean} disabled - Whether the checkbox is disabled.\n * @property {boolean} readonly - Whether the checkbox is readonly (cannot be changed but value is submitted with form).\n * @property {boolean} required - Whether the checkbox is required.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the checkbox. Default is 'sm'.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n * @property {'left' | 'right'} labelPlacement - The placement of the label.\n * @property {'top' | 'bottom'} descriptionPlacement - The placement of the description.\n * @property {boolean} subtle - The weight of the label.\n * @property {string} feedback - The feedback of the checkbox.\n * @property {'negative' | 'positive' | 'warning'} feedbackType - The feedback type of the checkbox.\n * @property {boolean} invalid - The invalid state of the checkbox.\n * @property {boolean} optional - The optional state of the checkbox.\n * @property {string} optionalLabel - The optional label of the checkbox.\n * @property {string} requiredLabel - The required indicator of the checkbox. (default: '*')\n *\n * @csspart base - The main checkbox container.\n * @csspart label - The label of the checkbox.\n * @csspart input - The input of the checkbox.\n * @csspart control - The control of the checkbox.\n * @csspart icon - The icon of the checkbox.\n * @csspart icon-base - The base icon container.\n * @csspart label-container - The label container of the checkbox.\n * @csspart description - The description of the checkbox.\n * @csspart base-label - The label element wrapping the control.\n * @csspart wrapper - The wrapper of the control and label.\n * @csspart feedback - The feedback of the checkbox.\n * @csspart high-contrast - The high contrast indicator of the checkbox.\n * @csspart label-base - The base of the label.\n * @csspart label-required - The required indicator of the label.\n * @csspart label-optional - The optional indicator of the label.\n *\n * @cssproperty --dds-checkbox-size - The size of the checkbox. (default: var(--dds-spacing-500))\n * @cssproperty --dds-checkbox-border-width - The border width of the checkbox. (default: var(--dds-border-width-large))\n * @cssproperty --dds-checkbox-border-radius - The border radius of the checkbox. (default: var(--dds-radius-small))\n * @cssproperty --dds-checkbox-border-color - The border color of the checkbox. (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-checkbox-background-color - The background color of the checkbox. (default: transparent)\n * @cssproperty --dds-checkbox-icon-color - The color of the checkbox icon. (default: var(--dds-button-primary-icon-enabled))\n * @cssproperty --dds-checkbox-hover-border-color - The border color when hovering over the checkbox. (default: var(--dds-border-neutral-medium))\n * @cssproperty --dds-checkbox-hover-background-color - The background color when hovering over the checkbox. (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-checkbox-active-border-color - The border color when the checkbox is active. (default: var(--dds-border-neutral-strong))\n * @cssproperty --dds-checkbox-active-background-color - The background color when the checkbox is active. (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-checkbox-checked-border-color - The border color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-background-color - The background color when the checkbox is checked. (default: var(--dds-background-brand-base-inverted))\n * @cssproperty --dds-checkbox-checked-hover-border-color - The border color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-hover-background-color - The background color when hovering over a checked checkbox. (default: var(--dds-background-brand-medium-inverted))\n * @cssproperty --dds-checkbox-checked-active-border-color - The border color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-checked-active-background-color - The background color when a checked checkbox is active. (default: var(--dds-background-brand-strong-inverted))\n * @cssproperty --dds-checkbox-invalid-border-color - The border color when the checkbox is invalid. (default: var(--dds-border-negative-base))\n * @cssproperty --dds-checkbox-invalid-background-color - The background color when the checkbox is invalid. (default: var(--dds-background-negative-base))\n * @cssproperty --dds-checkbox-invalid-hover-border-color - The border color when hovering over an invalid checkbox. (default: var(--dds-border-negative-medium))\n * @cssproperty --dds-checkbox-invalid-hover-background-color - The background color when hovering over an invalid checkbox. (default: var(--dds-background-negative-medium))\n * @cssproperty --dds-checkbox-invalid-active-border-color - The border color when an invalid checkbox is active. (default: var(--dds-border-negative-strong))\n * @cssproperty --dds-checkbox-invalid-active-background-color - The background color when an invalid checkbox is active. (default: var(--dds-background-negative-strong))\n * @cssproperty --dds-checkbox-disabled-border-color - The border color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-background-color - The background color when the checkbox is disabled. (default: var(--dds-button-primary-background-disabled))\n * @cssproperty --dds-checkbox-disabled-icon-color - The color of the checkbox icon when disabled. (default: var(--dds-button-primary-icon-disabled))\n * @cssproperty --dds-checkbox-readonly-border-color - The border color when the checkbox is readonly. (default: var(--dds-border-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-background-color - The background color when the checkbox is readonly. (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-checkbox-readonly-icon-color - The color of the checkbox icon when readonly. (default: var(--dds-text-neutral-base))\n */\nexport default class DapDSCheckbox extends LabeledChoiceElement {\n static tagName = 'dap-ds-checkbox'\n\n static dependencies = {\n 'dap-ds-icon-subtract-line': SystemSubtractLine,\n 'dap-ds-icon-check-line2': SystemCheckLine2,\n 'dap-ds-form-label': DapDSFormLabel,\n 'dap-ds-typography': DapDSTypography,\n 'dap-ds-feedback': DapDSFeedback,\n }\n\n private static nextId = 0\n\n private readonly inputId: string\n private readonly labelId: string\n private readonly descriptionId: string\n\n @query('.input') private readonly input!: HTMLInputElement\n\n /** Whether the checkbox is indeterminate */\n @property({ type: Boolean, reflect: true }) indeterminate = false\n\n /** Whether the checkbox should prevent the default action */\n @property({ type: Boolean, reflect: true }) preventDefault: boolean = false\n\n /** This sets up border around the checkbox, when true. */\n @property({ type: Boolean }) border: boolean = false\n\n /** Whether the checkbox is readonly */\n @property({ type: Boolean, reflect: true }) readonly: boolean = false\n\n /** The type of the checkbox\n * @type {'normal' | 'background'}\n */\n @property({ type: String }) type: 'normal' | 'background' = 'normal'\n\n static readonly styles = unsafeCSS(styles)\n\n constructor() {\n super()\n DapDSCheckbox.nextId++\n const uniqueSuffix =\n typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID().slice(0, 8)\n : Date.now().toString(36)\n this.inputId = `input-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.labelId = `label-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n this.descriptionId = `description-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n // Initialize the feedbackId from FeedbackMixin\n this.feedbackId = `feedback-${DapDSCheckbox.nextId}-${uniqueSuffix}`\n }\n\n /**\n * Validates property combinations and logs warnings for invalid states.\n * @private\n */\n private validateProperties(): void {\n // Warn if both checked and indeterminate are true (invalid combination)\n if (this.checked && this.indeterminate) {\n console.warn(\n 'Checkbox: Cannot be both checked and indeterminate simultaneously. Indeterminate state will take precedence.',\n )\n }\n }\n\n /**\n * Gets the aria-describedby attribute value by combining description and feedback IDs.\n * @returns {string | undefined} Space-separated IDs or undefined if none exist\n * @private\n */\n private getAriaDescribedBy(): string | undefined {\n const ids: string[] = []\n\n if (this.description) {\n ids.push(this.descriptionId)\n }\n\n if (this.feedback) {\n ids.push(this.feedbackId!)\n }\n\n return ids.length > 0 ? ids.join(' ') : undefined\n }\n\n /**\n * Gets the aria-checked attribute value based on checkbox state.\n * @returns {'true' | 'false' | 'mixed'} The appropriate aria-checked value\n * @private\n */\n private getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n /**\n * Handles click events on the checkbox.\n * Manages the checked/indeterminate state transitions and emits change events.\n * @private\n */\n private handleClick(event?: Event) {\n // Early return if click should be prevented, component is disabled, or readonly\n if (this.preventDefault || this.disabled || this.readonly) {\n if (this.readonly && event) {\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n // Validate property combinations before state change\n this.validateProperties()\n\n // Handle state transitions\n if (this.indeterminate) {\n this.indeterminate = false\n this.checked = true\n } else {\n this.checked = !this.checked\n }\n\n const { checked, indeterminate, value, disabled } = this\n\n // Emit change event with null safety\n try {\n this.emit('dds-change', {\n checked,\n indeterminate,\n value: value || (checked ? 'on' : 'off'),\n disabled,\n readonly: this.readonly,\n type: 'checkbox',\n })\n } catch (error) {\n console.error('Error emitting checkbox change event:', error)\n }\n\n // Update validity state with error handling\n try {\n this.setValidity()\n } catch (error) {\n console.error('Error setting checkbox validity:', error)\n }\n }\n\n /**\n * Handles input events on the checkbox.\n * Emits the dds-input event with current checkbox state.\n * @private\n */\n private handleInput() {\n const { checked, indeterminate, value, disabled } = this\n\n const event = new CustomEvent('dds-input', {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n checked,\n indeterminate,\n value,\n disabled,\n readonly: this.readonly,\n },\n })\n\n this.dispatchEvent(event)\n }\n\n /**\n * Handles keyboard events on the checkbox.\n * Provides enhanced keyboard navigation and accessibility.\n * @param {KeyboardEvent} event - The keyboard event\n * @private\n */\n private handleKeyDown(event: KeyboardEvent): void {\n // Early return if readonly\n if (this.readonly) {\n return\n }\n\n // Handle Space key to toggle checkbox (in addition to default behavior)\n if (event.code === 'Space') {\n // Allow default Space behavior for checkbox input\n // This ensures proper accessibility and form behavior\n return\n }\n\n // Handle Enter key to toggle checkbox (custom behavior)\n if (event.code === 'Enter') {\n event.preventDefault()\n this.handleClick()\n }\n }\n\n public get focusElement(): HTMLInputElement {\n if (!this.input) {\n throw new Error(\n 'Checkbox input element not found. Component may not be properly initialized.',\n )\n }\n return this.input\n }\n\n /**\n * Programmatically focuses the checkbox input element.\n * @public\n */\n public focus(): void {\n if (this.input && !this.disabled && !this.readonly) {\n this.input.focus()\n }\n }\n\n /**\n * Programmatically blurs the checkbox input element.\n * @public\n */\n public blur(): void {\n if (this.input) {\n this.input.blur()\n }\n }\n\n /**\n * Renders the appropriate icon based on checkbox state.\n * @returns {TemplateResult | null} The icon template or null if unchecked\n * @private\n */\n renderIcon() {\n if (this.indeterminate) {\n return html`\n <dap-ds-icon-subtract-line\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-subtract-line>\n `\n }\n\n if (this.checked) {\n return html`\n <dap-ds-icon-check-line2\n class=\"checkbox__icon\"\n part=\"icon\"\n exportparts=\"base:icon-base\"\n size=\"16\"\n decorative></dap-ds-icon-check-line2>\n `\n }\n\n return null\n }\n\n /**\n * Handles invalid events on the checkbox input.\n * Prevents the default browser validation UI from showing and manages invalid state.\n * @param {Event} event - The invalid event\n * @private\n */\n handleInvalid(event: Event) {\n event.preventDefault()\n // Set invalid state if not already set\n if (!this.invalid) {\n this.invalid = true\n }\n }\n\n setValidity() {\n if (!this.innerInput) return\n const { valid } = (this.innerInput as HTMLInputElement).validity\n if (valid) {\n // Only clear invalid for constrained (required) inputs. For an\n // unconstrained checkbox `invalid` is externally controlled (e.g. by a\n // parent input-group), so setValidity must not clobber it here.\n if (this.required) this.invalid = false\n this.internals.setValidity({})\n } else {\n this.internals.setValidity(\n (this.innerInput as HTMLInputElement).validity,\n this.validationMessage,\n this.innerInput,\n )\n }\n }\n\n render() {\n return html`\n <div part=\"base\">\n <label\n part=\"base-label\"\n class=${clsx('checkbox choice', `checkbox--${this.size}`, {\n 'checkbox--checked': this.checked,\n 'checkbox--disabled': this.disabled,\n 'checkbox--readonly': this.readonly,\n 'checkbox--indeterminate': this.indeterminate,\n 'checkbox--required': this.required,\n 'choice--readonly': this.readonly,\n 'choice--disabled': this.disabled,\n 'choice__label--right': this.labelPlacement === 'right',\n 'choice__label--left': this.labelPlacement === 'left',\n })}>\n <div\n part=\"wrapper\"\n class=${clsx('input__wrapper', {\n 'input__wrapper--background': this.type === 'background',\n 'input__wrapper--border': this.border,\n })}>\n <input\n part=\"input\"\n type=\"checkbox\"\n class=${clsx('input', {\n 'input--background': this.type === 'background',\n })}\n name=${ifDefined(this.name ? this.name : undefined)}\n id=${this.inputId}\n .indeterminate=${this.indeterminate}\n .checked=${this.checked}\n .disabled=${this.disabled}\n .required=${this.required}\n aria-labelledby=${ifDefined(\n !this.ariaLabel && this.label ? this.labelId : undefined,\n )}\n aria-describedby=${!this.ariaLabel\n ? ifDefined(this.getAriaDescribedBy())\n : ''}\n aria-checked=${this.getAriaChecked()}\n .aria-invalid=${this.invalid ? 'true' : null}\n @invalid=${this.handleInvalid}\n @click=${this.handleClick}\n @input=${this.handleInput}\n @keydown=${this.handleKeyDown}\n @blur=${super.onBlur}\n @focus=${super.onFocus} />\n\n <span\n part=\"control\"\n class=${clsx('input__control', `input__control--${this.size}`, {\n 'input__control--checked': this.checked,\n 'input__control--disabled': this.disabled,\n 'input__control--readonly': this.readonly,\n 'input__control--indeterminate': this.indeterminate,\n 'input__control--invalid': this.invalid,\n })}>\n <span\n part=\"high-contrast\"\n class=${clsx(\n 'input__control-high-contrast',\n `input__control-high-contrast--${this.size}`,\n {\n 'input__control-high-contrast--disabled': this.disabled,\n 'input__control-high-contrast--readonly': this.readonly,\n },\n )}></span>\n <slot name=\"iconcontent\"> ${this.renderIcon()} </slot>\n </span>\n\n <div\n part=\"label-container\"\n class=${clsx('choice__label-container', {\n 'choice__label-container--disabled': this.disabled,\n 'choice__label-container--readonly': this.readonly,\n 'choice__label--bottom': this.descriptionPlacement === 'top',\n 'choice__label--top': this.descriptionPlacement === 'bottom',\n })}>\n ${formLabelTemplate({\n label: this.label,\n id: this.labelId,\n size: this.size,\n required: this.required,\n requiredLabel: this.requiredLabel,\n optional: this.optional,\n optionalLabel: this.optionalLabel,\n disabled: this.disabled || this.readonly,\n hideLabel: this.hideLabel,\n subtle: true,\n // Rendered as a decorative <span> (not a <label>): checkbox/switch\n // already wrap the input in an outer <label>, and the accessible\n // name comes from the input's aria-labelledby=${labelId}.\n as: 'span',\n ariaHidden: true,\n })}\n ${this.description &&\n html`\n <dap-ds-typography\n class=\"description\"\n variant=\"description\"\n part=\"description\"\n aria-hidden=\"true\"\n size=${ifDefined(this.size as CommonFormElementSize)}\n id=${this.descriptionId}>\n ${this.description}\n </dap-ds-typography>\n `}\n </div>\n </div>\n ${this.feedback &&\n html`\n <dap-ds-feedback\n part=\"feedback\"\n feedbackType=${ifDefined(this.feedbackType)}\n feedbackSize=${ifDefined(this.size) as CommonSize}\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>\n `}\n </label>\n </div>\n `\n }\n}\n"],"names":["_DapDSCheckbox","_a","LabeledChoiceElement","uniqueSuffix","ids","event","checked","indeterminate","value","disabled","error","html","valid","clsx","ifDefined","formLabelTemplate","SystemSubtractLine","SystemCheckLine2","DapDSFormLabel","DapDSTypography","DapDSFeedback","unsafeCSS","styles","__decorateClass","query","property","DapDSCheckbox"],"mappings":"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"}
@@ -24,6 +24,7 @@ export type ChipSize = 'sm' | 'lg';
24
24
  * @csspart remove-icon - The icon of the remove icon
25
25
  * @csspart remove-icon-base - The base of the remove icon
26
26
  * @csspart remove-icon-base-base - The base of the remove icon base
27
+ * @csspart content - The content slot of the chip.
27
28
  *
28
29
  * @cssproperty --dds-chip-border - Border of the chip (default: var(--dds-border-width-base) solid var(--dds-transparent-black-base))
29
30
  * @cssproperty --dds-chip-border-radius - Border radius of the chip (default: var(--dds-radius-small))
@@ -1,25 +1,20 @@
1
- import { clsx as b } from "../../node_modules/clsx/dist/clsx.js";
2
- import "../../node_modules/@lit/reactive-element/reactive-element.js";
3
- import { nothing as p } 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 f } from "../../node_modules/@lit/reactive-element/decorators/state.js";
7
- import { queryAssignedNodes as u } from "../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js";
8
- import { html as c } from "../../node_modules/lit-html/static.js";
1
+ import { clsx as m } from "../../node_modules/clsx/dist/clsx.js";
2
+ import { unsafeCSS as f, nothing as c } from "lit";
3
+ import { property as a, queryAssignedNodes as u, state as v } from "lit/decorators.js";
4
+ import { html as p } from "lit/static-html.js";
9
5
  import "../../localization/localization.js";
10
- import { DdsElement as v } from "../../internal/dds-hu-element.js";
11
- import { SizedMixin as y } from "../../internal/mixin/sizedMixin.js";
12
- import g from "../icon-button/icon-button.component.js";
13
- import x from "../stack/stack.component.js";
6
+ import { DdsElement as y } from "../../internal/dds-hu-element.js";
7
+ import { SizedMixin as g } from "../../internal/mixin/sizedMixin.js";
8
+ import x from "../icon-button/icon-button.component.js";
9
+ import T from "../stack/stack.component.js";
14
10
  import $ from "./chip.scss.js";
15
- import { t as m } from "../../node_modules/i18next/dist/esm/i18next.js";
16
- import { unsafeCSS as T } from "../../node_modules/@lit/reactive-element/css-tag.js";
11
+ import { t as b } from "../../node_modules/i18next/dist/esm/i18next.js";
17
12
  var C = Object.defineProperty, o = (d, e, t, r) => {
18
13
  for (var i = void 0, n = d.length - 1, h; n >= 0; n--)
19
14
  (h = d[n]) && (i = h(e, t, i) || i);
20
15
  return i && C(e, t, i), i;
21
16
  };
22
- const k = y(v), l = class l extends k {
17
+ const k = g(y), l = class l extends k {
23
18
  constructor() {
24
19
  super(...arguments), this.removeable = !1, this.selectable = !1, this.selected = !1, this.disabled = !1, this.removeButtonTestId = "chip-remove-button", this._slotTextContent = "";
25
20
  }
@@ -47,7 +42,7 @@ const k = y(v), l = class l extends k {
47
42
  * Gets the aria-label for the chip when removable
48
43
  */
49
44
  getRemovableAriaLabel() {
50
- const e = m("chip.removable");
45
+ const e = b("chip.removable");
51
46
  return this._slotTextContent ? `${this._slotTextContent}, ${e}` : e;
52
47
  }
53
48
  updated(e) {
@@ -67,10 +62,10 @@ const k = y(v), l = class l extends k {
67
62
  }
68
63
  render() {
69
64
  var e, t;
70
- return c`
65
+ return p`
71
66
  <div
72
67
  part="base"
73
- class=${b("chip", `chip--${this.chipSize}`, {
68
+ class=${m("chip", `chip--${this.chipSize}`, {
74
69
  "chip--selected": this.selectable && this.selected,
75
70
  "chip--disabled": this.disabled,
76
71
  "chip--selectable": this.selectable
@@ -79,12 +74,12 @@ const k = y(v), l = class l extends k {
79
74
  tabindex=${this.disabled ? "-1" : "0"}
80
75
  aria-disabled=${this.disabled}
81
76
  aria-pressed=${this.selected}
82
- aria-label=${this.removeable ? this.getRemovableAriaLabel() : (e = this.ariaLabel) != null ? e : p}
77
+ aria-label=${this.removeable ? this.getRemovableAriaLabel() : (e = this.ariaLabel) != null ? e : c}
83
78
  @click=${this.handleClick}
84
79
  @keydown=${this.handleKeyDown}>
85
80
  <dap-ds-stack direction="row" spacing="200" part="content-container">
86
81
  <slot part="content" @slotchange=${this.handleSlotChange}></slot>
87
- ${this.removeable ? c`<dap-ds-icon-button
82
+ ${this.removeable ? p`<dap-ds-icon-button
88
83
  icon="close-line"
89
84
  part="remove-button"
90
85
  data-testid=${this.removeButtonTestId}
@@ -93,17 +88,17 @@ const k = y(v), l = class l extends k {
93
88
  tabindex="-1"
94
89
  ?disabled=${this.disabled}
95
90
  size="sm"
96
- aria-label=${(t = this.deleteAriaLabel) != null ? t : m("chip.remove")}
97
- @click=${this.handleRemove}></dap-ds-icon-button>` : p}
91
+ aria-label=${(t = this.deleteAriaLabel) != null ? t : b("chip.remove")}
92
+ @click=${this.handleRemove}></dap-ds-icon-button>` : c}
98
93
  </dap-ds-stack>
99
94
  </div>
100
95
  `;
101
96
  }
102
97
  };
103
98
  l.tagName = "dap-ds-chip", l.dependencies = {
104
- "dap-ds-stack": x,
105
- "dap-ds-icon-button": g
106
- }, l.styles = T($);
99
+ "dap-ds-stack": T,
100
+ "dap-ds-icon-button": x
101
+ }, l.styles = f($);
107
102
  let s = l;
108
103
  o([
109
104
  a({ type: Boolean })
@@ -130,7 +125,7 @@ o([
130
125
  u({ slot: "", flatten: !0 })
131
126
  ], s.prototype, "_slotNodes");
132
127
  o([
133
- f()
128
+ v()
134
129
  ], s.prototype, "_slotTextContent");
135
130
  export {
136
131
  s as default
@@ -1 +1 @@
1
- {"version":3,"file":"chip.component.js","sources":["../../../src/components/chip/chip.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, queryAssignedNodes, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { t } from '@/localization/localization'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIconButton from '../icon-button/icon-button.component'\nimport DapDSStack from '../stack/stack.component'\nimport styles from './chip.scss?inline'\n\nconst ChipBaseWithSized = SizedMixin(DdsElement)\n\nexport type ChipSize = 'sm' | 'lg'\n\n/**\n * `dap-ds-chip`\n * @summary A chip is a small status descriptor for UI elements.\n * @element dap-ds-chip\n * @title - Chip\n *\n * @property { 'sm' | 'lg' } size - The size of the chip. Default is `sm`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @event {{ value: string }} dds-remove - Fired when the chip is removed\n * @event {{ value?: string, selected: boolean }} dds-select - Fired when the chip is selected\n *\n * @csspart base - The base part\n * @csspart content-container - The container for the content\n * @csspart remove-button - The remove button\n * @csspart remove-icon - The icon of the remove icon\n * @csspart remove-icon-base - The base of the remove icon\n * @csspart remove-icon-base-base - The base of the remove icon base\n *\n * @cssproperty --dds-chip-border - Border of the chip (default: var(--dds-border-width-base) solid var(--dds-transparent-black-base))\n * @cssproperty --dds-chip-border-radius - Border radius of the chip (default: var(--dds-radius-small))\n * @cssproperty --dds-chip-font-weight - Font weight of the chip (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-chip-line-height - Line height of the chip (default: 1.5)\n * @cssproperty --dds-chip-transition - Transition timing for chip interactions (default: all 0.2s ease-in-out)\n * @cssproperty --dds-chip-padding-sm - Padding for small chip size (default: var(--dds-spacing-100) var(--dds-spacing-200))\n * @cssproperty --dds-chip-padding-lg - Padding for large chip size (default: var(--dds-spacing-200) var(--dds-spacing-300))\n * @cssproperty --dds-chip-font-size-sm - Font size for small chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-font-size-lg - Font size for large chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-background-color - Background color of the chip (default: var(--dds-background-neutral-base))\n * @cssproperty --dds-chip-text-color - Text color of the chip (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-chip-hover-background-color - Background color of the chip on hover (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-active-background-color - Background color of the chip when active (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-chip-selected-background-color - Background color of the selected chip (default: var(--dds-background-brand-medium))\n * @cssproperty --dds-chip-selected-text-color - Text color of the selected chip (default: var(--dds-text-brand-subtle))\n * @cssproperty --dds-chip-selected-border-color - Border color of the selected chip (default: var(--dds-border-brand-base))\n * @cssproperty --dds-chip-disabled-background-color - Background color of the disabled chip (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-disabled-text-color - Text color of the disabled chip (default: var(--dds-text-neutral-subtle))\n *\n */\nexport default class DapDSChip extends ChipBaseWithSized {\n static tagName = 'dap-ds-chip'\n\n static dependencies = {\n 'dap-ds-stack': DapDSStack,\n 'dap-ds-icon-button': DapDSIconButton,\n }\n\n /** Maps effectiveSize from SizedMixin to the chip's two visual sizes (sm | lg). */\n private get chipSize(): ChipSize {\n const s = this.effectiveSize\n return s === 'lg' || s === 'md' ? 'lg' : 'sm'\n }\n\n /** Whether the chip is removeable */\n @property({ type: Boolean }) removeable = false\n\n /** Whether the chip is selectable */\n @property({ type: Boolean }) selectable = false\n\n /** Whether the chip is selected */\n @property({ type: Boolean, reflect: true }) selected = false\n\n /** Whether the chip is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false\n\n /** The value of the chip */\n @property({ type: String }) value?: string\n\n /** The aria label for the delete button */\n @property({ type: String }) deleteAriaLabel?: string\n\n /** `data-testid` for the remove button. */\n @property() removeButtonTestId = 'chip-remove-button'\n\n @queryAssignedNodes({ slot: '', flatten: true })\n private _slotNodes!: Node[]\n\n @state() private _slotTextContent = ''\n\n static readonly styles = unsafeCSS(styles)\n\n /**\n * Gets the text content from the slot nodes\n */\n private extractSlotTextContent(nodes: Node[]): string {\n if (!nodes || nodes.length === 0) return ''\n return nodes\n .map(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent?.trim() || ''\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n return (node as Element).textContent?.trim() || ''\n }\n return ''\n })\n .filter(text => text.length > 0)\n .join(' ')\n }\n\n /**\n * Handles slot content changes\n */\n private handleSlotChange(): void {\n if (this._slotNodes) {\n this._slotTextContent = this.extractSlotTextContent(this._slotNodes)\n }\n }\n\n /**\n * Gets the aria-label for the chip when removable\n */\n private getRemovableAriaLabel(): string {\n const removableText = t('chip.removable')\n return this._slotTextContent\n ? `${this._slotTextContent}, ${removableText}`\n : removableText\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties)\n\n // Update slot text content when slot nodes are available\n if (this._slotNodes && this._slotNodes.length > 0) {\n this.handleSlotChange()\n }\n\n // Prevent removeable and selectable from being enabled together\n if (\n changedProperties.has('removeable') ||\n changedProperties.has('selectable')\n ) {\n if (this.removeable && this.selectable) {\n console.warn(\n 'Chip cannot be both removeable and selectable at the same time.',\n )\n // Disable selectable if removeable is set, or vice versa\n if (changedProperties.has('removeable') && this.removeable) {\n this.selectable = false\n } else if (changedProperties.has('selectable') && this.selectable) {\n this.removeable = false\n }\n }\n }\n }\n\n private handleClick(event: Event): void {\n event.stopPropagation()\n if (!this.disabled && this.selectable) {\n this.selected = !this.selected\n this.emit('dds-select', { value: this.value, selected: this.selected })\n }\n }\n\n private handleRemove(event: Event): void {\n event.stopPropagation()\n if (!this.disabled) {\n this.emit('dds-remove', { value: this.value ?? '' })\n }\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (this.disabled) {\n return\n }\n\n if (\n (event.key === 'Delete' || event.key === 'Backspace') &&\n this.removeable\n ) {\n event.preventDefault()\n event.stopPropagation()\n this.handleRemove(event)\n }\n\n if (event.key === 'Enter' && this.selectable) {\n event.preventDefault()\n event.stopPropagation()\n this.handleClick(event)\n }\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('chip', `chip--${this.chipSize}`, {\n 'chip--selected': this.selectable && this.selected,\n 'chip--disabled': this.disabled,\n 'chip--selectable': this.selectable,\n })}\n role=\"button\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-disabled=${this.disabled}\n aria-pressed=${this.selected}\n aria-label=${this.removeable\n ? this.getRemovableAriaLabel()\n : (this.ariaLabel ?? nothing)}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}>\n <dap-ds-stack direction=\"row\" spacing=\"200\" part=\"content-container\">\n <slot part=\"content\" @slotchange=${this.handleSlotChange}></slot>\n ${this.removeable\n ? html`<dap-ds-icon-button\n icon=\"close-line\"\n part=\"remove-button\"\n data-testid=${this.removeButtonTestId}\n exportparts=\"base:remove-icon-base, icon:remove-icon, icon-base:remove-icon-base-base\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n size=\"sm\"\n aria-label=${this.deleteAriaLabel ?? t('chip.remove')}\n @click=${this.handleRemove}></dap-ds-icon-button>`\n : nothing}\n </dap-ds-stack>\n </div>\n `\n }\n}\n"],"names":["ChipBaseWithSized","SizedMixin","DdsElement","_DapDSChip","s","nodes","node","_a","_b","text","removableText","t","changedProperties","event","html","clsx","nothing","DapDSStack","DapDSIconButton","unsafeCSS","styles","DapDSChip","__decorateClass","property","queryAssignedNodes","state"],"mappings":"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"}
1
+ {"version":3,"file":"chip.component.js","sources":["../../../src/components/chip/chip.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { nothing, unsafeCSS } from 'lit'\nimport { property, queryAssignedNodes, state } from 'lit/decorators.js'\nimport { html } from 'lit/static-html.js'\n\nimport { t } from '@/localization/localization'\n\nimport { DdsElement } from '../../internal/dds-hu-element'\nimport { SizedMixin } from '../../internal/mixin/sizedMixin'\nimport DapDSIconButton from '../icon-button/icon-button.component'\nimport DapDSStack from '../stack/stack.component'\nimport styles from './chip.scss?inline'\n\nconst ChipBaseWithSized = SizedMixin(DdsElement)\n\nexport type ChipSize = 'sm' | 'lg'\n\n/**\n * `dap-ds-chip`\n * @summary A chip is a small status descriptor for UI elements.\n * @element dap-ds-chip\n * @title - Chip\n *\n * @property { 'sm' | 'lg' } size - The size of the chip. Default is `sm`.\n * @property {string} sizeMap - Responsive size map (e.g. \"md:lg\").\n *\n * @event {{ value: string }} dds-remove - Fired when the chip is removed\n * @event {{ value?: string, selected: boolean }} dds-select - Fired when the chip is selected\n *\n * @csspart base - The base part\n * @csspart content-container - The container for the content\n * @csspart remove-button - The remove button\n * @csspart remove-icon - The icon of the remove icon\n * @csspart remove-icon-base - The base of the remove icon\n * @csspart remove-icon-base-base - The base of the remove icon base\n * @csspart content - The content slot of the chip.\n *\n * @cssproperty --dds-chip-border - Border of the chip (default: var(--dds-border-width-base) solid var(--dds-transparent-black-base))\n * @cssproperty --dds-chip-border-radius - Border radius of the chip (default: var(--dds-radius-small))\n * @cssproperty --dds-chip-font-weight - Font weight of the chip (default: var(--dds-font-weight-bold))\n * @cssproperty --dds-chip-line-height - Line height of the chip (default: 1.5)\n * @cssproperty --dds-chip-transition - Transition timing for chip interactions (default: all 0.2s ease-in-out)\n * @cssproperty --dds-chip-padding-sm - Padding for small chip size (default: var(--dds-spacing-100) var(--dds-spacing-200))\n * @cssproperty --dds-chip-padding-lg - Padding for large chip size (default: var(--dds-spacing-200) var(--dds-spacing-300))\n * @cssproperty --dds-chip-font-size-sm - Font size for small chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-font-size-lg - Font size for large chip size (default: var(--dds-font-xs))\n * @cssproperty --dds-chip-background-color - Background color of the chip (default: var(--dds-background-neutral-base))\n * @cssproperty --dds-chip-text-color - Text color of the chip (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-chip-hover-background-color - Background color of the chip on hover (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-active-background-color - Background color of the chip when active (default: var(--dds-background-neutral-strong))\n * @cssproperty --dds-chip-selected-background-color - Background color of the selected chip (default: var(--dds-background-brand-medium))\n * @cssproperty --dds-chip-selected-text-color - Text color of the selected chip (default: var(--dds-text-brand-subtle))\n * @cssproperty --dds-chip-selected-border-color - Border color of the selected chip (default: var(--dds-border-brand-base))\n * @cssproperty --dds-chip-disabled-background-color - Background color of the disabled chip (default: var(--dds-background-neutral-medium))\n * @cssproperty --dds-chip-disabled-text-color - Text color of the disabled chip (default: var(--dds-text-neutral-subtle))\n *\n */\nexport default class DapDSChip extends ChipBaseWithSized {\n static tagName = 'dap-ds-chip'\n\n static dependencies = {\n 'dap-ds-stack': DapDSStack,\n 'dap-ds-icon-button': DapDSIconButton,\n }\n\n /** Maps effectiveSize from SizedMixin to the chip's two visual sizes (sm | lg). */\n private get chipSize(): ChipSize {\n const s = this.effectiveSize\n return s === 'lg' || s === 'md' ? 'lg' : 'sm'\n }\n\n /** Whether the chip is removeable */\n @property({ type: Boolean }) removeable = false\n\n /** Whether the chip is selectable */\n @property({ type: Boolean }) selectable = false\n\n /** Whether the chip is selected */\n @property({ type: Boolean, reflect: true }) selected = false\n\n /** Whether the chip is disabled */\n @property({ type: Boolean, reflect: true }) disabled = false\n\n /** The value of the chip */\n @property({ type: String }) value?: string\n\n /** The aria label for the delete button */\n @property({ type: String }) deleteAriaLabel?: string\n\n /** `data-testid` for the remove button. */\n @property() removeButtonTestId = 'chip-remove-button'\n\n @queryAssignedNodes({ slot: '', flatten: true })\n private _slotNodes!: Node[]\n\n @state() private _slotTextContent = ''\n\n static readonly styles = unsafeCSS(styles)\n\n /**\n * Gets the text content from the slot nodes\n */\n private extractSlotTextContent(nodes: Node[]): string {\n if (!nodes || nodes.length === 0) return ''\n return nodes\n .map(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent?.trim() || ''\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n return (node as Element).textContent?.trim() || ''\n }\n return ''\n })\n .filter(text => text.length > 0)\n .join(' ')\n }\n\n /**\n * Handles slot content changes\n */\n private handleSlotChange(): void {\n if (this._slotNodes) {\n this._slotTextContent = this.extractSlotTextContent(this._slotNodes)\n }\n }\n\n /**\n * Gets the aria-label for the chip when removable\n */\n private getRemovableAriaLabel(): string {\n const removableText = t('chip.removable')\n return this._slotTextContent\n ? `${this._slotTextContent}, ${removableText}`\n : removableText\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties)\n\n // Update slot text content when slot nodes are available\n if (this._slotNodes && this._slotNodes.length > 0) {\n this.handleSlotChange()\n }\n\n // Prevent removeable and selectable from being enabled together\n if (\n changedProperties.has('removeable') ||\n changedProperties.has('selectable')\n ) {\n if (this.removeable && this.selectable) {\n console.warn(\n 'Chip cannot be both removeable and selectable at the same time.',\n )\n // Disable selectable if removeable is set, or vice versa\n if (changedProperties.has('removeable') && this.removeable) {\n this.selectable = false\n } else if (changedProperties.has('selectable') && this.selectable) {\n this.removeable = false\n }\n }\n }\n }\n\n private handleClick(event: Event): void {\n event.stopPropagation()\n if (!this.disabled && this.selectable) {\n this.selected = !this.selected\n this.emit('dds-select', { value: this.value, selected: this.selected })\n }\n }\n\n private handleRemove(event: Event): void {\n event.stopPropagation()\n if (!this.disabled) {\n this.emit('dds-remove', { value: this.value ?? '' })\n }\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (this.disabled) {\n return\n }\n\n if (\n (event.key === 'Delete' || event.key === 'Backspace') &&\n this.removeable\n ) {\n event.preventDefault()\n event.stopPropagation()\n this.handleRemove(event)\n }\n\n if (event.key === 'Enter' && this.selectable) {\n event.preventDefault()\n event.stopPropagation()\n this.handleClick(event)\n }\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${clsx('chip', `chip--${this.chipSize}`, {\n 'chip--selected': this.selectable && this.selected,\n 'chip--disabled': this.disabled,\n 'chip--selectable': this.selectable,\n })}\n role=\"button\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-disabled=${this.disabled}\n aria-pressed=${this.selected}\n aria-label=${this.removeable\n ? this.getRemovableAriaLabel()\n : (this.ariaLabel ?? nothing)}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}>\n <dap-ds-stack direction=\"row\" spacing=\"200\" part=\"content-container\">\n <slot part=\"content\" @slotchange=${this.handleSlotChange}></slot>\n ${this.removeable\n ? html`<dap-ds-icon-button\n icon=\"close-line\"\n part=\"remove-button\"\n data-testid=${this.removeButtonTestId}\n exportparts=\"base:remove-icon-base, icon:remove-icon, icon-base:remove-icon-base-base\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n size=\"sm\"\n aria-label=${this.deleteAriaLabel ?? t('chip.remove')}\n @click=${this.handleRemove}></dap-ds-icon-button>`\n : nothing}\n </dap-ds-stack>\n </div>\n `\n }\n}\n"],"names":["ChipBaseWithSized","SizedMixin","DdsElement","_DapDSChip","s","nodes","node","_a","_b","text","removableText","t","changedProperties","event","html","clsx","nothing","DapDSStack","DapDSIconButton","unsafeCSS","styles","DapDSChip","__decorateClass","property","queryAssignedNodes","state"],"mappings":"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"}