@carbon/web-components 1.26.0-rc.2 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/dist/accordion.min.js +2 -2
  2. package/dist/accordion.rtl.min.js +2 -2
  3. package/dist/breadcrumb.min.js +1 -1
  4. package/dist/breadcrumb.rtl.min.js +1 -1
  5. package/dist/{button-0eeac278.js → button-c71594fa.js} +2 -2
  6. package/dist/{button-4b4837f0.js → button-e31ba29e.js} +2 -2
  7. package/dist/button.min.js +1 -1
  8. package/dist/button.rtl.min.js +1 -1
  9. package/dist/{decorators-0a905d41.js → carbon-element-18175602.js} +9 -1
  10. package/dist/checkbox-3fc0ced9.js +65 -0
  11. package/dist/checkbox-a740039c.js +65 -0
  12. package/dist/checkbox.min.js +1 -1
  13. package/dist/checkbox.rtl.min.js +1 -1
  14. package/dist/code-snippet.min.js +2 -2
  15. package/dist/code-snippet.rtl.min.js +2 -2
  16. package/dist/combo-box.min.js +1 -1
  17. package/dist/combo-box.rtl.min.js +1 -1
  18. package/dist/{content-switcher-item-d37071b9.js → content-switcher-item-77b690a9.js} +2 -2
  19. package/dist/{content-switcher-item-db96b7e3.js → content-switcher-item-96395561.js} +2 -2
  20. package/dist/content-switcher.min.js +1 -1
  21. package/dist/content-switcher.rtl.min.js +1 -1
  22. package/dist/copy-button-50221d0f.js +65 -0
  23. package/dist/copy-button-9cb9a0c6.js +65 -0
  24. package/dist/copy-button.min.js +1 -1
  25. package/dist/copy-button.rtl.min.js +1 -1
  26. package/dist/data-table.min.js +2 -2
  27. package/dist/data-table.rtl.min.js +2 -2
  28. package/dist/date-picker.min.js +3 -3
  29. package/dist/date-picker.rtl.min.js +3 -3
  30. package/dist/decorators-56213c84.js +78 -0
  31. package/dist/{dropdown-item-1630cdb0.js → dropdown-item-62abeaa7.js} +2 -2
  32. package/dist/{dropdown-item-8c9136d9.js → dropdown-item-97eb5366.js} +2 -2
  33. package/dist/dropdown.min.js +1 -1
  34. package/dist/dropdown.rtl.min.js +1 -1
  35. package/dist/file-uploader.min.js +2 -2
  36. package/dist/file-uploader.rtl.min.js +2 -2
  37. package/dist/form.min.js +1 -1
  38. package/dist/form.rtl.min.js +1 -1
  39. package/dist/inline-loading.min.js +2 -2
  40. package/dist/inline-loading.rtl.min.js +2 -2
  41. package/dist/{input-1583283e.js → input-254c34ac.js} +2 -2
  42. package/dist/{input-b817aa3d.js → input-bb75e577.js} +2 -2
  43. package/dist/input.min.js +1 -1
  44. package/dist/input.rtl.min.js +1 -1
  45. package/dist/link-3c734b06.js +65 -0
  46. package/dist/link-aecb4d2a.js +65 -0
  47. package/dist/link.min.js +1 -1
  48. package/dist/link.rtl.min.js +1 -1
  49. package/dist/list.min.js +1 -1
  50. package/dist/list.rtl.min.js +1 -1
  51. package/dist/loading-9ce928f0.js +65 -0
  52. package/dist/loading-c77e0b8d.js +65 -0
  53. package/dist/loading.min.js +1 -1
  54. package/dist/loading.rtl.min.js +1 -1
  55. package/dist/modal.min.js +2 -2
  56. package/dist/modal.rtl.min.js +2 -2
  57. package/dist/multi-select.min.js +1 -1
  58. package/dist/multi-select.rtl.min.js +1 -1
  59. package/dist/notification.min.js +2 -2
  60. package/dist/notification.rtl.min.js +2 -2
  61. package/dist/number-input.min.js +2 -2
  62. package/dist/number-input.rtl.min.js +2 -2
  63. package/dist/overflow-menu.min.js +2 -2
  64. package/dist/overflow-menu.rtl.min.js +2 -2
  65. package/dist/pagination.min.js +1 -1
  66. package/dist/pagination.rtl.min.js +1 -1
  67. package/dist/progress-indicator.min.js +2 -2
  68. package/dist/progress-indicator.rtl.min.js +2 -2
  69. package/dist/radio-button.min.js +2 -2
  70. package/dist/radio-button.rtl.min.js +2 -2
  71. package/dist/search-99e65bb6.js +65 -0
  72. package/dist/search-dfddc65c.js +65 -0
  73. package/dist/search.min.js +1 -1
  74. package/dist/search.rtl.min.js +1 -1
  75. package/dist/select.min.js +1 -1
  76. package/dist/select.rtl.min.js +1 -1
  77. package/dist/skeleton-placeholder.min.js +1 -1
  78. package/dist/skeleton-placeholder.rtl.min.js +1 -1
  79. package/dist/skeleton-text.min.js +2 -2
  80. package/dist/skeleton-text.rtl.min.js +2 -2
  81. package/dist/skip-to-content.min.js +1 -1
  82. package/dist/skip-to-content.rtl.min.js +1 -1
  83. package/dist/slider.min.js +1 -1
  84. package/dist/slider.rtl.min.js +1 -1
  85. package/dist/structured-list.min.js +1 -1
  86. package/dist/structured-list.rtl.min.js +1 -1
  87. package/dist/tabs.min.js +2 -2
  88. package/dist/tabs.rtl.min.js +2 -2
  89. package/dist/tag.min.js +2 -2
  90. package/dist/tag.rtl.min.js +2 -2
  91. package/dist/textarea.min.js +1 -1
  92. package/dist/textarea.rtl.min.js +1 -1
  93. package/dist/tile.min.js +1 -1
  94. package/dist/tile.rtl.min.js +1 -1
  95. package/dist/toggle.min.js +2 -2
  96. package/dist/toggle.rtl.min.js +2 -2
  97. package/dist/tooltip.min.js +2 -2
  98. package/dist/tooltip.rtl.min.js +2 -2
  99. package/dist/ui-shell.min.js +2 -2
  100. package/dist/ui-shell.rtl.min.js +2 -2
  101. package/es/components/accordion/accordion-item.d.ts +1 -1
  102. package/es/components/accordion/accordion-item.d.ts.map +1 -1
  103. package/es/components/accordion/accordion-item.js +4 -3
  104. package/es/components/accordion/accordion-item.js.map +1 -1
  105. package/es/components/accordion/accordion.d.ts +1 -1
  106. package/es/components/accordion/accordion.d.ts.map +1 -1
  107. package/es/components/accordion/accordion.js +3 -2
  108. package/es/components/accordion/accordion.js.map +1 -1
  109. package/es/components/breadcrumb/breadcrumb-item.d.ts +1 -1
  110. package/es/components/breadcrumb/breadcrumb-item.d.ts.map +1 -1
  111. package/es/components/breadcrumb/breadcrumb-item.js +3 -2
  112. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  113. package/es/components/breadcrumb/breadcrumb-link.d.ts +1 -1
  114. package/es/components/breadcrumb/breadcrumb-link.d.ts.map +1 -1
  115. package/es/components/breadcrumb/breadcrumb-link.js +2 -2
  116. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  117. package/es/components/breadcrumb/breadcrumb-overflow-menu.d.ts +1 -1
  118. package/es/components/breadcrumb/breadcrumb-overflow-menu.d.ts.map +1 -1
  119. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +3 -2
  120. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  121. package/es/components/breadcrumb/breadcrumb.d.ts +1 -1
  122. package/es/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  123. package/es/components/breadcrumb/breadcrumb.js +3 -2
  124. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  125. package/es/components/button/button-skeleton.d.ts +1 -1
  126. package/es/components/button/button-skeleton.d.ts.map +1 -1
  127. package/es/components/button/button-skeleton.js +3 -2
  128. package/es/components/button/button-skeleton.js.map +1 -1
  129. package/es/components/button/button.d.ts +1 -1
  130. package/es/components/button/button.d.ts.map +1 -1
  131. package/es/components/button/button.js +3 -2
  132. package/es/components/button/button.js.map +1 -1
  133. package/es/components/checkbox/checkbox.d.ts +1 -1
  134. package/es/components/checkbox/checkbox.d.ts.map +1 -1
  135. package/es/components/checkbox/checkbox.js +3 -2
  136. package/es/components/checkbox/checkbox.js.map +1 -1
  137. package/es/components/code-snippet/code-snippet-skeleton.d.ts +1 -1
  138. package/es/components/code-snippet/code-snippet-skeleton.d.ts.map +1 -1
  139. package/es/components/code-snippet/code-snippet-skeleton.js +3 -2
  140. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  141. package/es/components/code-snippet/code-snippet.d.ts +1 -1
  142. package/es/components/code-snippet/code-snippet.d.ts.map +1 -1
  143. package/es/components/code-snippet/code-snippet.js +3 -2
  144. package/es/components/code-snippet/code-snippet.js.map +1 -1
  145. package/es/components/combo-box/combo-box-item.d.ts +1 -1
  146. package/es/components/combo-box/combo-box-item.d.ts.map +1 -1
  147. package/es/components/combo-box/combo-box-item.js +2 -2
  148. package/es/components/combo-box/combo-box-item.js.map +1 -1
  149. package/es/components/combo-box/combo-box.d.ts +1 -1
  150. package/es/components/combo-box/combo-box.d.ts.map +1 -1
  151. package/es/components/combo-box/combo-box.js +3 -2
  152. package/es/components/combo-box/combo-box.js.map +1 -1
  153. package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
  154. package/es/components/content-switcher/content-switcher-item.d.ts.map +1 -1
  155. package/es/components/content-switcher/content-switcher-item.js +3 -2
  156. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  157. package/es/components/content-switcher/content-switcher.d.ts +1 -1
  158. package/es/components/content-switcher/content-switcher.d.ts.map +1 -1
  159. package/es/components/content-switcher/content-switcher.js +3 -2
  160. package/es/components/content-switcher/content-switcher.js.map +1 -1
  161. package/es/components/copy-button/copy-button.d.ts +1 -1
  162. package/es/components/copy-button/copy-button.d.ts.map +1 -1
  163. package/es/components/copy-button/copy-button.js +3 -2
  164. package/es/components/copy-button/copy-button.js.map +1 -1
  165. package/es/components/data-table/table-batch-actions.d.ts +1 -1
  166. package/es/components/data-table/table-batch-actions.d.ts.map +1 -1
  167. package/es/components/data-table/table-batch-actions.js +3 -2
  168. package/es/components/data-table/table-batch-actions.js.map +1 -1
  169. package/es/components/data-table/table-body.d.ts +1 -1
  170. package/es/components/data-table/table-body.d.ts.map +1 -1
  171. package/es/components/data-table/table-body.js +3 -2
  172. package/es/components/data-table/table-body.js.map +1 -1
  173. package/es/components/data-table/table-cell-skeleton.d.ts +1 -1
  174. package/es/components/data-table/table-cell-skeleton.d.ts.map +1 -1
  175. package/es/components/data-table/table-cell-skeleton.js +3 -2
  176. package/es/components/data-table/table-cell-skeleton.js.map +1 -1
  177. package/es/components/data-table/table-cell.d.ts +1 -1
  178. package/es/components/data-table/table-cell.d.ts.map +1 -1
  179. package/es/components/data-table/table-cell.js +3 -2
  180. package/es/components/data-table/table-cell.js.map +1 -1
  181. package/es/components/data-table/table-expand-row.d.ts +1 -1
  182. package/es/components/data-table/table-expand-row.d.ts.map +1 -1
  183. package/es/components/data-table/table-expand-row.js +3 -2
  184. package/es/components/data-table/table-expand-row.js.map +1 -1
  185. package/es/components/data-table/table-expanded-row.d.ts +1 -1
  186. package/es/components/data-table/table-expanded-row.d.ts.map +1 -1
  187. package/es/components/data-table/table-expanded-row.js +3 -2
  188. package/es/components/data-table/table-expanded-row.js.map +1 -1
  189. package/es/components/data-table/table-head.d.ts +1 -1
  190. package/es/components/data-table/table-head.d.ts.map +1 -1
  191. package/es/components/data-table/table-head.js +3 -2
  192. package/es/components/data-table/table-head.js.map +1 -1
  193. package/es/components/data-table/table-header-cell-skeleton.d.ts +1 -1
  194. package/es/components/data-table/table-header-cell-skeleton.d.ts.map +1 -1
  195. package/es/components/data-table/table-header-cell-skeleton.js +2 -2
  196. package/es/components/data-table/table-header-cell-skeleton.js.map +1 -1
  197. package/es/components/data-table/table-header-cell.d.ts +1 -1
  198. package/es/components/data-table/table-header-cell.d.ts.map +1 -1
  199. package/es/components/data-table/table-header-cell.js +3 -2
  200. package/es/components/data-table/table-header-cell.js.map +1 -1
  201. package/es/components/data-table/table-header-expand-row.d.ts +1 -1
  202. package/es/components/data-table/table-header-expand-row.d.ts.map +1 -1
  203. package/es/components/data-table/table-header-expand-row.js +2 -2
  204. package/es/components/data-table/table-header-expand-row.js.map +1 -1
  205. package/es/components/data-table/table-header-row.d.ts +1 -1
  206. package/es/components/data-table/table-header-row.d.ts.map +1 -1
  207. package/es/components/data-table/table-header-row.js +2 -2
  208. package/es/components/data-table/table-header-row.js.map +1 -1
  209. package/es/components/data-table/table-row.d.ts +1 -1
  210. package/es/components/data-table/table-row.d.ts.map +1 -1
  211. package/es/components/data-table/table-row.js +3 -2
  212. package/es/components/data-table/table-row.js.map +1 -1
  213. package/es/components/data-table/table-toolbar-content.d.ts +1 -1
  214. package/es/components/data-table/table-toolbar-content.d.ts.map +1 -1
  215. package/es/components/data-table/table-toolbar-content.js +3 -2
  216. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  217. package/es/components/data-table/table-toolbar-search.d.ts +1 -1
  218. package/es/components/data-table/table-toolbar-search.d.ts.map +1 -1
  219. package/es/components/data-table/table-toolbar-search.js +3 -2
  220. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  221. package/es/components/data-table/table-toolbar.d.ts +1 -1
  222. package/es/components/data-table/table-toolbar.d.ts.map +1 -1
  223. package/es/components/data-table/table-toolbar.js +3 -2
  224. package/es/components/data-table/table-toolbar.js.map +1 -1
  225. package/es/components/data-table/table.d.ts +1 -1
  226. package/es/components/data-table/table.d.ts.map +1 -1
  227. package/es/components/data-table/table.js +3 -2
  228. package/es/components/data-table/table.js.map +1 -1
  229. package/es/components/date-picker/date-picker-input-skeleton.d.ts +1 -1
  230. package/es/components/date-picker/date-picker-input-skeleton.d.ts.map +1 -1
  231. package/es/components/date-picker/date-picker-input-skeleton.js +3 -2
  232. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  233. package/es/components/date-picker/date-picker-input.d.ts +3 -7
  234. package/es/components/date-picker/date-picker-input.d.ts.map +1 -1
  235. package/es/components/date-picker/date-picker-input.js +3 -2
  236. package/es/components/date-picker/date-picker-input.js.map +1 -1
  237. package/es/components/date-picker/date-picker.d.ts +2 -4
  238. package/es/components/date-picker/date-picker.d.ts.map +1 -1
  239. package/es/components/date-picker/date-picker.js +3 -2
  240. package/es/components/date-picker/date-picker.js.map +1 -1
  241. package/es/components/dropdown/dropdown-item.d.ts +1 -1
  242. package/es/components/dropdown/dropdown-item.d.ts.map +1 -1
  243. package/es/components/dropdown/dropdown-item.js +3 -2
  244. package/es/components/dropdown/dropdown-item.js.map +1 -1
  245. package/es/components/dropdown/dropdown-skeleton.d.ts +1 -1
  246. package/es/components/dropdown/dropdown-skeleton.d.ts.map +1 -1
  247. package/es/components/dropdown/dropdown-skeleton.js +3 -2
  248. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  249. package/es/components/dropdown/dropdown.d.ts.map +1 -1
  250. package/es/components/dropdown/dropdown.js +2 -1
  251. package/es/components/dropdown/dropdown.js.map +1 -1
  252. package/es/components/file-uploader/drop-container.d.ts +4 -1
  253. package/es/components/file-uploader/drop-container.d.ts.map +1 -1
  254. package/es/components/file-uploader/drop-container.js +3 -2
  255. package/es/components/file-uploader/drop-container.js.map +1 -1
  256. package/es/components/file-uploader/file-uploader-item.d.ts +1 -1
  257. package/es/components/file-uploader/file-uploader-item.d.ts.map +1 -1
  258. package/es/components/file-uploader/file-uploader-item.js +3 -2
  259. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  260. package/es/components/file-uploader/file-uploader.d.ts +1 -1
  261. package/es/components/file-uploader/file-uploader.d.ts.map +1 -1
  262. package/es/components/file-uploader/file-uploader.js +3 -2
  263. package/es/components/file-uploader/file-uploader.js.map +1 -1
  264. package/es/components/form/form-item.d.ts +1 -1
  265. package/es/components/form/form-item.d.ts.map +1 -1
  266. package/es/components/form/form-item.js +3 -2
  267. package/es/components/form/form-item.js.map +1 -1
  268. package/es/components/inline-loading/inline-loading.d.ts +1 -1
  269. package/es/components/inline-loading/inline-loading.d.ts.map +1 -1
  270. package/es/components/inline-loading/inline-loading.js +3 -2
  271. package/es/components/inline-loading/inline-loading.js.map +1 -1
  272. package/es/components/input/input.d.ts +1 -4
  273. package/es/components/input/input.d.ts.map +1 -1
  274. package/es/components/input/input.js +3 -2
  275. package/es/components/input/input.js.map +1 -1
  276. package/es/components/link/link.d.ts +1 -1
  277. package/es/components/link/link.d.ts.map +1 -1
  278. package/es/components/link/link.js +3 -2
  279. package/es/components/link/link.js.map +1 -1
  280. package/es/components/list/list-item.d.ts +1 -1
  281. package/es/components/list/list-item.d.ts.map +1 -1
  282. package/es/components/list/list-item.js +3 -2
  283. package/es/components/list/list-item.js.map +1 -1
  284. package/es/components/list/ordered-list.d.ts +1 -1
  285. package/es/components/list/ordered-list.d.ts.map +1 -1
  286. package/es/components/list/ordered-list.js +3 -2
  287. package/es/components/list/ordered-list.js.map +1 -1
  288. package/es/components/list/unordered-list.d.ts +1 -1
  289. package/es/components/list/unordered-list.d.ts.map +1 -1
  290. package/es/components/list/unordered-list.js +3 -2
  291. package/es/components/list/unordered-list.js.map +1 -1
  292. package/es/components/loading/loading.d.ts +1 -1
  293. package/es/components/loading/loading.d.ts.map +1 -1
  294. package/es/components/loading/loading.js +3 -2
  295. package/es/components/loading/loading.js.map +1 -1
  296. package/es/components/modal/modal-body.d.ts +1 -1
  297. package/es/components/modal/modal-body.d.ts.map +1 -1
  298. package/es/components/modal/modal-body.js +3 -2
  299. package/es/components/modal/modal-body.js.map +1 -1
  300. package/es/components/modal/modal-close-button.d.ts +1 -1
  301. package/es/components/modal/modal-close-button.d.ts.map +1 -1
  302. package/es/components/modal/modal-close-button.js +3 -2
  303. package/es/components/modal/modal-close-button.js.map +1 -1
  304. package/es/components/modal/modal-footer-button.d.ts +1 -1
  305. package/es/components/modal/modal-footer-button.d.ts.map +1 -1
  306. package/es/components/modal/modal-footer-button.js +2 -2
  307. package/es/components/modal/modal-footer-button.js.map +1 -1
  308. package/es/components/modal/modal-footer.d.ts +1 -1
  309. package/es/components/modal/modal-footer.d.ts.map +1 -1
  310. package/es/components/modal/modal-footer.js +3 -2
  311. package/es/components/modal/modal-footer.js.map +1 -1
  312. package/es/components/modal/modal-header.d.ts +1 -1
  313. package/es/components/modal/modal-header.d.ts.map +1 -1
  314. package/es/components/modal/modal-header.js +3 -2
  315. package/es/components/modal/modal-header.js.map +1 -1
  316. package/es/components/modal/modal-heading.d.ts +1 -1
  317. package/es/components/modal/modal-heading.d.ts.map +1 -1
  318. package/es/components/modal/modal-heading.js +3 -2
  319. package/es/components/modal/modal-heading.js.map +1 -1
  320. package/es/components/modal/modal-label.d.ts +1 -1
  321. package/es/components/modal/modal-label.d.ts.map +1 -1
  322. package/es/components/modal/modal-label.js +3 -2
  323. package/es/components/modal/modal-label.js.map +1 -1
  324. package/es/components/modal/modal.d.ts +1 -1
  325. package/es/components/modal/modal.d.ts.map +1 -1
  326. package/es/components/modal/modal.js +3 -2
  327. package/es/components/modal/modal.js.map +1 -1
  328. package/es/components/multi-select/multi-select-item.d.ts +1 -1
  329. package/es/components/multi-select/multi-select-item.d.ts.map +1 -1
  330. package/es/components/multi-select/multi-select-item.js +3 -2
  331. package/es/components/multi-select/multi-select-item.js.map +1 -1
  332. package/es/components/multi-select/multi-select.d.ts +1 -1
  333. package/es/components/multi-select/multi-select.d.ts.map +1 -1
  334. package/es/components/multi-select/multi-select.js +3 -2
  335. package/es/components/multi-select/multi-select.js.map +1 -1
  336. package/es/components/notification/inline-notification.d.ts +1 -1
  337. package/es/components/notification/inline-notification.d.ts.map +1 -1
  338. package/es/components/notification/inline-notification.js +4 -3
  339. package/es/components/notification/inline-notification.js.map +1 -1
  340. package/es/components/notification/toast-notification.d.ts +1 -1
  341. package/es/components/notification/toast-notification.d.ts.map +1 -1
  342. package/es/components/notification/toast-notification.js +3 -2
  343. package/es/components/notification/toast-notification.js.map +1 -1
  344. package/es/components/number-input/number-input-skeleton.d.ts +1 -1
  345. package/es/components/number-input/number-input-skeleton.d.ts.map +1 -1
  346. package/es/components/number-input/number-input-skeleton.js +3 -2
  347. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  348. package/es/components/number-input/number-input.d.ts +1 -1
  349. package/es/components/number-input/number-input.d.ts.map +1 -1
  350. package/es/components/number-input/number-input.js +3 -2
  351. package/es/components/number-input/number-input.js.map +1 -1
  352. package/es/components/overflow-menu/overflow-menu-body.d.ts +1 -1
  353. package/es/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
  354. package/es/components/overflow-menu/overflow-menu-body.js +3 -2
  355. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  356. package/es/components/overflow-menu/overflow-menu-item.d.ts +1 -1
  357. package/es/components/overflow-menu/overflow-menu-item.d.ts.map +1 -1
  358. package/es/components/overflow-menu/overflow-menu-item.js +3 -2
  359. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  360. package/es/components/overflow-menu/overflow-menu.d.ts +4 -1
  361. package/es/components/overflow-menu/overflow-menu.d.ts.map +1 -1
  362. package/es/components/overflow-menu/overflow-menu.js +3 -2
  363. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  364. package/es/components/pagination/page-sizes-select.d.ts +1 -1
  365. package/es/components/pagination/page-sizes-select.d.ts.map +1 -1
  366. package/es/components/pagination/page-sizes-select.js +3 -2
  367. package/es/components/pagination/page-sizes-select.js.map +1 -1
  368. package/es/components/pagination/pages-select.d.ts +1 -1
  369. package/es/components/pagination/pages-select.d.ts.map +1 -1
  370. package/es/components/pagination/pages-select.js +3 -2
  371. package/es/components/pagination/pages-select.js.map +1 -1
  372. package/es/components/pagination/pagination.d.ts +1 -1
  373. package/es/components/pagination/pagination.d.ts.map +1 -1
  374. package/es/components/pagination/pagination.js +3 -2
  375. package/es/components/pagination/pagination.js.map +1 -1
  376. package/es/components/progress-indicator/progress-indicator-skeleton.d.ts +1 -1
  377. package/es/components/progress-indicator/progress-indicator-skeleton.d.ts.map +1 -1
  378. package/es/components/progress-indicator/progress-indicator-skeleton.js +3 -2
  379. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  380. package/es/components/progress-indicator/progress-indicator.d.ts +1 -1
  381. package/es/components/progress-indicator/progress-indicator.d.ts.map +1 -1
  382. package/es/components/progress-indicator/progress-indicator.js +3 -2
  383. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  384. package/es/components/progress-indicator/progress-step-skeleton.d.ts +1 -1
  385. package/es/components/progress-indicator/progress-step-skeleton.d.ts.map +1 -1
  386. package/es/components/progress-indicator/progress-step-skeleton.js +3 -2
  387. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  388. package/es/components/progress-indicator/progress-step.d.ts +1 -1
  389. package/es/components/progress-indicator/progress-step.d.ts.map +1 -1
  390. package/es/components/progress-indicator/progress-step.js +3 -2
  391. package/es/components/progress-indicator/progress-step.js.map +1 -1
  392. package/es/components/radio-button/radio-button-group.d.ts +1 -1
  393. package/es/components/radio-button/radio-button-group.d.ts.map +1 -1
  394. package/es/components/radio-button/radio-button-group.js +3 -2
  395. package/es/components/radio-button/radio-button-group.js.map +1 -1
  396. package/es/components/radio-button/radio-button-skeleton.d.ts +1 -1
  397. package/es/components/radio-button/radio-button-skeleton.d.ts.map +1 -1
  398. package/es/components/radio-button/radio-button-skeleton.js +3 -2
  399. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  400. package/es/components/radio-button/radio-button.d.ts +1 -1
  401. package/es/components/radio-button/radio-button.d.ts.map +1 -1
  402. package/es/components/radio-button/radio-button.js +3 -2
  403. package/es/components/radio-button/radio-button.js.map +1 -1
  404. package/es/components/search/search-skeleton.d.ts +1 -1
  405. package/es/components/search/search-skeleton.d.ts.map +1 -1
  406. package/es/components/search/search-skeleton.js +3 -2
  407. package/es/components/search/search-skeleton.js.map +1 -1
  408. package/es/components/search/search.d.ts +1 -1
  409. package/es/components/search/search.d.ts.map +1 -1
  410. package/es/components/search/search.js +3 -2
  411. package/es/components/search/search.js.map +1 -1
  412. package/es/components/select/select-item-group.d.ts +1 -1
  413. package/es/components/select/select-item-group.d.ts.map +1 -1
  414. package/es/components/select/select-item-group.js +3 -2
  415. package/es/components/select/select-item-group.js.map +1 -1
  416. package/es/components/select/select-item.d.ts +1 -1
  417. package/es/components/select/select-item.d.ts.map +1 -1
  418. package/es/components/select/select-item.js +3 -2
  419. package/es/components/select/select-item.js.map +1 -1
  420. package/es/components/select/select.d.ts +6 -2
  421. package/es/components/select/select.d.ts.map +1 -1
  422. package/es/components/select/select.js +3 -2
  423. package/es/components/select/select.js.map +1 -1
  424. package/es/components/skeleton-placeholder/skeleton-placeholder.d.ts +1 -1
  425. package/es/components/skeleton-placeholder/skeleton-placeholder.d.ts.map +1 -1
  426. package/es/components/skeleton-placeholder/skeleton-placeholder.js +3 -2
  427. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  428. package/es/components/skeleton-text/skeleton-text.d.ts +1 -1
  429. package/es/components/skeleton-text/skeleton-text.d.ts.map +1 -1
  430. package/es/components/skeleton-text/skeleton-text.js +3 -2
  431. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  432. package/es/components/skip-to-content/skip-to-content.d.ts +1 -1
  433. package/es/components/skip-to-content/skip-to-content.d.ts.map +1 -1
  434. package/es/components/skip-to-content/skip-to-content.js +3 -2
  435. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  436. package/es/components/slider/slider-input.d.ts +1 -1
  437. package/es/components/slider/slider-input.d.ts.map +1 -1
  438. package/es/components/slider/slider-input.js +3 -2
  439. package/es/components/slider/slider-input.js.map +1 -1
  440. package/es/components/slider/slider-skeleton.d.ts +1 -1
  441. package/es/components/slider/slider-skeleton.d.ts.map +1 -1
  442. package/es/components/slider/slider-skeleton.js +3 -2
  443. package/es/components/slider/slider-skeleton.js.map +1 -1
  444. package/es/components/slider/slider.d.ts +1 -1
  445. package/es/components/slider/slider.d.ts.map +1 -1
  446. package/es/components/slider/slider.js +3 -2
  447. package/es/components/slider/slider.js.map +1 -1
  448. package/es/components/structured-list/structured-list-body.d.ts +1 -1
  449. package/es/components/structured-list/structured-list-body.d.ts.map +1 -1
  450. package/es/components/structured-list/structured-list-body.js +3 -2
  451. package/es/components/structured-list/structured-list-body.js.map +1 -1
  452. package/es/components/structured-list/structured-list-cell.d.ts +1 -1
  453. package/es/components/structured-list/structured-list-cell.d.ts.map +1 -1
  454. package/es/components/structured-list/structured-list-cell.js +3 -2
  455. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  456. package/es/components/structured-list/structured-list-head.d.ts +1 -1
  457. package/es/components/structured-list/structured-list-head.d.ts.map +1 -1
  458. package/es/components/structured-list/structured-list-head.js +3 -2
  459. package/es/components/structured-list/structured-list-head.js.map +1 -1
  460. package/es/components/structured-list/structured-list-header-cell-skeleton.d.ts +1 -1
  461. package/es/components/structured-list/structured-list-header-cell-skeleton.d.ts.map +1 -1
  462. package/es/components/structured-list/structured-list-header-cell-skeleton.js +3 -2
  463. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  464. package/es/components/structured-list/structured-list-header-cell.d.ts +1 -1
  465. package/es/components/structured-list/structured-list-header-cell.d.ts.map +1 -1
  466. package/es/components/structured-list/structured-list-header-cell.js +3 -2
  467. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  468. package/es/components/structured-list/structured-list-header-row.d.ts +1 -1
  469. package/es/components/structured-list/structured-list-header-row.d.ts.map +1 -1
  470. package/es/components/structured-list/structured-list-header-row.js +3 -2
  471. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  472. package/es/components/structured-list/structured-list-row.d.ts +1 -1
  473. package/es/components/structured-list/structured-list-row.d.ts.map +1 -1
  474. package/es/components/structured-list/structured-list-row.js +3 -2
  475. package/es/components/structured-list/structured-list-row.js.map +1 -1
  476. package/es/components/structured-list/structured-list.d.ts +1 -1
  477. package/es/components/structured-list/structured-list.d.ts.map +1 -1
  478. package/es/components/structured-list/structured-list.js +3 -2
  479. package/es/components/structured-list/structured-list.js.map +1 -1
  480. package/es/components/tabs/tab-skeleton.d.ts +1 -1
  481. package/es/components/tabs/tab-skeleton.d.ts.map +1 -1
  482. package/es/components/tabs/tab-skeleton.js +3 -2
  483. package/es/components/tabs/tab-skeleton.js.map +1 -1
  484. package/es/components/tabs/tab.d.ts +1 -1
  485. package/es/components/tabs/tab.d.ts.map +1 -1
  486. package/es/components/tabs/tab.js +3 -2
  487. package/es/components/tabs/tab.js.map +1 -1
  488. package/es/components/tabs/tabs-skeleton.d.ts +1 -1
  489. package/es/components/tabs/tabs-skeleton.d.ts.map +1 -1
  490. package/es/components/tabs/tabs-skeleton.js +3 -2
  491. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  492. package/es/components/tabs/tabs.d.ts +3 -3
  493. package/es/components/tabs/tabs.d.ts.map +1 -1
  494. package/es/components/tabs/tabs.js +5 -4
  495. package/es/components/tabs/tabs.js.map +1 -1
  496. package/es/components/tag/filter-tag.d.ts +5 -2
  497. package/es/components/tag/filter-tag.d.ts.map +1 -1
  498. package/es/components/tag/filter-tag.js +3 -2
  499. package/es/components/tag/filter-tag.js.map +1 -1
  500. package/es/components/tag/tag.d.ts +1 -1
  501. package/es/components/tag/tag.d.ts.map +1 -1
  502. package/es/components/tag/tag.js +3 -2
  503. package/es/components/tag/tag.js.map +1 -1
  504. package/es/components/textarea/textarea-skeleton.d.ts +1 -1
  505. package/es/components/textarea/textarea-skeleton.d.ts.map +1 -1
  506. package/es/components/textarea/textarea-skeleton.js +3 -2
  507. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  508. package/es/components/textarea/textarea.d.ts +1 -1
  509. package/es/components/textarea/textarea.d.ts.map +1 -1
  510. package/es/components/textarea/textarea.js +3 -2
  511. package/es/components/textarea/textarea.js.map +1 -1
  512. package/es/components/tile/clickable-tile.d.ts +1 -1
  513. package/es/components/tile/clickable-tile.d.ts.map +1 -1
  514. package/es/components/tile/clickable-tile.js +3 -2
  515. package/es/components/tile/clickable-tile.js.map +1 -1
  516. package/es/components/tile/expandable-tile.d.ts +1 -1
  517. package/es/components/tile/expandable-tile.d.ts.map +1 -1
  518. package/es/components/tile/expandable-tile.js +3 -2
  519. package/es/components/tile/expandable-tile.js.map +1 -1
  520. package/es/components/tile/radio-tile.d.ts +1 -1
  521. package/es/components/tile/radio-tile.d.ts.map +1 -1
  522. package/es/components/tile/radio-tile.js +2 -2
  523. package/es/components/tile/radio-tile.js.map +1 -1
  524. package/es/components/tile/selectable-tile.d.ts.map +1 -1
  525. package/es/components/tile/selectable-tile.js +2 -1
  526. package/es/components/tile/selectable-tile.js.map +1 -1
  527. package/es/components/tile/tile-group.d.ts +1 -1
  528. package/es/components/tile/tile-group.d.ts.map +1 -1
  529. package/es/components/tile/tile-group.js +3 -2
  530. package/es/components/tile/tile-group.js.map +1 -1
  531. package/es/components/tile/tile.d.ts +1 -1
  532. package/es/components/tile/tile.d.ts.map +1 -1
  533. package/es/components/tile/tile.js +3 -2
  534. package/es/components/tile/tile.js.map +1 -1
  535. package/es/components/toggle/toggle.d.ts +1 -1
  536. package/es/components/toggle/toggle.d.ts.map +1 -1
  537. package/es/components/toggle/toggle.js +3 -2
  538. package/es/components/toggle/toggle.js.map +1 -1
  539. package/es/components/tooltip/tooltip-body.d.ts.map +1 -1
  540. package/es/components/tooltip/tooltip-body.js +2 -1
  541. package/es/components/tooltip/tooltip-body.js.map +1 -1
  542. package/es/components/tooltip/tooltip-definition.d.ts +1 -1
  543. package/es/components/tooltip/tooltip-definition.d.ts.map +1 -1
  544. package/es/components/tooltip/tooltip-definition.js +3 -2
  545. package/es/components/tooltip/tooltip-definition.js.map +1 -1
  546. package/es/components/tooltip/tooltip-footer.d.ts +1 -1
  547. package/es/components/tooltip/tooltip-footer.d.ts.map +1 -1
  548. package/es/components/tooltip/tooltip-footer.js +3 -2
  549. package/es/components/tooltip/tooltip-footer.js.map +1 -1
  550. package/es/components/tooltip/tooltip-icon.d.ts +1 -1
  551. package/es/components/tooltip/tooltip-icon.d.ts.map +1 -1
  552. package/es/components/tooltip/tooltip-icon.js +3 -2
  553. package/es/components/tooltip/tooltip-icon.js.map +1 -1
  554. package/es/components/tooltip/tooltip.d.ts.map +1 -1
  555. package/es/components/tooltip/tooltip.js +2 -1
  556. package/es/components/tooltip/tooltip.js.map +1 -1
  557. package/es/components/ui-shell/header-menu-button.d.ts +1 -1
  558. package/es/components/ui-shell/header-menu-button.d.ts.map +1 -1
  559. package/es/components/ui-shell/header-menu-button.js +3 -2
  560. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  561. package/es/components/ui-shell/header-menu-item.d.ts +1 -1
  562. package/es/components/ui-shell/header-menu-item.d.ts.map +1 -1
  563. package/es/components/ui-shell/header-menu-item.js +2 -2
  564. package/es/components/ui-shell/header-menu-item.js.map +1 -1
  565. package/es/components/ui-shell/header-menu.d.ts +1 -1
  566. package/es/components/ui-shell/header-menu.d.ts.map +1 -1
  567. package/es/components/ui-shell/header-menu.js +3 -2
  568. package/es/components/ui-shell/header-menu.js.map +1 -1
  569. package/es/components/ui-shell/header-name.d.ts +1 -1
  570. package/es/components/ui-shell/header-name.d.ts.map +1 -1
  571. package/es/components/ui-shell/header-name.js +3 -2
  572. package/es/components/ui-shell/header-name.js.map +1 -1
  573. package/es/components/ui-shell/header-nav-item.d.ts +1 -1
  574. package/es/components/ui-shell/header-nav-item.d.ts.map +1 -1
  575. package/es/components/ui-shell/header-nav-item.js +3 -2
  576. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  577. package/es/components/ui-shell/header-nav.d.ts +1 -1
  578. package/es/components/ui-shell/header-nav.d.ts.map +1 -1
  579. package/es/components/ui-shell/header-nav.js +3 -2
  580. package/es/components/ui-shell/header-nav.js.map +1 -1
  581. package/es/components/ui-shell/header.d.ts +1 -1
  582. package/es/components/ui-shell/header.d.ts.map +1 -1
  583. package/es/components/ui-shell/header.js +3 -2
  584. package/es/components/ui-shell/header.js.map +1 -1
  585. package/es/components/ui-shell/side-nav-divider.d.ts +1 -1
  586. package/es/components/ui-shell/side-nav-divider.d.ts.map +1 -1
  587. package/es/components/ui-shell/side-nav-divider.js +3 -2
  588. package/es/components/ui-shell/side-nav-divider.js.map +1 -1
  589. package/es/components/ui-shell/side-nav-items.d.ts +1 -1
  590. package/es/components/ui-shell/side-nav-items.d.ts.map +1 -1
  591. package/es/components/ui-shell/side-nav-items.js +3 -2
  592. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  593. package/es/components/ui-shell/side-nav-link.d.ts +1 -1
  594. package/es/components/ui-shell/side-nav-link.d.ts.map +1 -1
  595. package/es/components/ui-shell/side-nav-link.js +3 -2
  596. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  597. package/es/components/ui-shell/side-nav-menu-item.d.ts +1 -1
  598. package/es/components/ui-shell/side-nav-menu-item.d.ts.map +1 -1
  599. package/es/components/ui-shell/side-nav-menu-item.js +3 -2
  600. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  601. package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
  602. package/es/components/ui-shell/side-nav-menu.d.ts.map +1 -1
  603. package/es/components/ui-shell/side-nav-menu.js +3 -2
  604. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  605. package/es/components/ui-shell/side-nav.d.ts +1 -1
  606. package/es/components/ui-shell/side-nav.d.ts.map +1 -1
  607. package/es/components/ui-shell/side-nav.js +3 -2
  608. package/es/components/ui-shell/side-nav.js.map +1 -1
  609. package/es/globals/decorators/carbon-element.d.ts +235 -0
  610. package/es/globals/decorators/carbon-element.d.ts.map +1 -0
  611. package/es/globals/decorators/carbon-element.js +429 -0
  612. package/es/globals/decorators/carbon-element.js.map +1 -0
  613. package/package.json +2 -2
  614. package/dist/checkbox-0edcc860.js +0 -65
  615. package/dist/checkbox-155d2e12.js +0 -65
  616. package/dist/copy-button-d50482da.js +0 -65
  617. package/dist/copy-button-e0c0c272.js +0 -65
  618. package/dist/link-5cef0608.js +0 -65
  619. package/dist/link-c666ff67.js +0 -65
  620. package/dist/loading-3754cb83.js +0 -65
  621. package/dist/loading-a86f38a0.js +0 -65
  622. package/dist/search-11f3a241.js +0 -65
  623. package/dist/search-487b4714.js +0 -65
@@ -6,7 +6,7 @@ let _ = t => t,
6
6
  /**
7
7
  * @license
8
8
  *
9
- * Copyright IBM Corp. 2019, 2022
9
+ * Copyright IBM Corp. 2019, 2023
10
10
  *
11
11
  * This source code is licensed under the Apache-2.0 license found in the
12
12
  * LICENSE file in the root directory of this source tree.
@@ -14,13 +14,14 @@ let _ = t => t,
14
14
 
15
15
  import settings from 'carbon-components/es/globals/js/settings';
16
16
  import { classMap } from 'lit-html/directives/class-map';
17
- import { html, property, customElement, LitElement } from 'lit-element';
17
+ import { html, property, LitElement } from 'lit-element';
18
18
  import ifNonNull from '../../globals/directives/if-non-null';
19
19
  import FocusMixin from '../../globals/mixins/focus';
20
20
  import { BUTTON_KIND, BUTTON_SIZE, BUTTON_ICON_LAYOUT } from './defs';
21
21
  import styles from "././button.css.js";
22
22
  import HostListener from '../../globals/decorators/host-listener';
23
23
  import HostListenerMixin from '../../globals/mixins/host-listener';
24
+ import { carbonElement as customElement } from '../../globals/decorators/carbon-element';
24
25
  export { BUTTON_KIND, BUTTON_SIZE, BUTTON_ICON_LAYOUT };
25
26
  const {
26
27
  prefix
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":["settings","classMap","html","property","customElement","LitElement","ifNonNull","FocusMixin","BUTTON_KIND","BUTTON_SIZE","BUTTON_ICON_LAYOUT","styles","HostListener","HostListenerMixin","prefix","BXButton","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleSlotChange","target","name","hasContent","assignedNodes","some","node","nodeType","Node","TEXT_NODE","textContent","trim","requestUpdate","decorators","capture","_handleDisabledClick","event","disabled","stopPropagation","type","Boolean","reflect","attribute","REGULAR","PRIMARY","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","render","autofocus","download","href","hreflang","isExpressive","linkRole","ping","rel","size","_hasIcon","hasIcon","_hasMainContent","hasMainContent","handleSlotChange","classes","_t","_","_t2","_t3","static"],"sources":["components/button/button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, customElement, LitElement } from 'lit-element';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { BUTTON_KIND, BUTTON_SIZE, BUTTON_ICON_LAYOUT } from './defs';\nimport styles from './button.scss';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\n\nexport { BUTTON_KIND, BUTTON_SIZE, BUTTON_ICON_LAYOUT };\n\nconst { prefix } = settings;\n\n/**\n * Button.\n *\n * @element bx-btn\n * @csspart button The button.\n */\n@customElement(`${prefix}-btn`)\nclass BXButton extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * `true` if there is an icon.\n */\n private _hasIcon = false;\n\n /**\n * `true` if there is a non-icon content.\n */\n private _hasMainContent = false;\n\n /**\n * Handles `slotchange` event.\n */\n private _handleSlotChange({ target }: Event) {\n const { name } = target as HTMLSlotElement;\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .some(\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n this[name === 'icon' ? '_hasIcon' : '_hasMainContent'] = hasContent;\n this.requestUpdate();\n }\n\n @HostListener('click', { capture: true })\n // @ts-ignore\n private _handleDisabledClick(event: Event) {\n const { disabled } = this;\n if (disabled) {\n event.stopPropagation();\n }\n }\n\n /**\n * `true` if the button should have input focus when the page loads.\n */\n @property({ type: Boolean, reflect: true })\n autofocus = false;\n\n /**\n * `true` if the button should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The default file name, used if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n download!: string;\n\n /**\n * Link `href`. If present, this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n href!: string;\n\n /**\n * The language of what `href` points to, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n hreflang!: string;\n\n /**\n * Button icon layout.\n */\n @property({ reflect: true, attribute: 'icon-layout' })\n iconLayout = BUTTON_ICON_LAYOUT.REGULAR;\n\n /**\n * `true` if expressive theme enabled.\n */\n @property({ type: Boolean, reflect: true })\n isExpressive = false;\n\n /**\n * Button kind.\n */\n @property({ reflect: true })\n kind = BUTTON_KIND.PRIMARY;\n\n /**\n * The a11y role for `<a>`.\n */\n @property({ attribute: 'link-role' })\n linkRole = 'button';\n\n /**\n * URLs to ping, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n ping!: string;\n\n /**\n * The link type, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n rel!: string;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.REGULAR;\n\n /**\n * The link target, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n target!: string;\n\n /**\n * The default behavior if the button is rendered as `<button>`. MIME type of the `target`if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n type!: string;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n autofocus,\n disabled,\n download,\n href,\n hreflang,\n isExpressive,\n linkRole,\n kind,\n ping,\n rel,\n size,\n target,\n type,\n _hasIcon: hasIcon,\n _hasMainContent: hasMainContent,\n _handleSlotChange: handleSlotChange,\n } = this;\n const classes = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${kind}`]: kind,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--icon-only`]: hasIcon && !hasMainContent,\n [`${prefix}--btn--sm`]: size === 'sm' && !isExpressive,\n [`${prefix}--btn--xl`]: size === 'xl',\n [`${prefix}--btn--field`]: size === 'field' && !isExpressive,\n [`${prefix}-ce--btn--has-icon`]: hasIcon,\n [`${prefix}--btn--expressive`]: isExpressive,\n });\n if (href) {\n return disabled\n ? html`\n <p id=\"button\" part=\"button\" class=\"${classes}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"icon\" @slotchange=\"${handleSlotChange}\"></slot>\n </p>\n `\n : html`\n <a\n id=\"button\"\n part=\"button\"\n role=\"${ifNonNull(linkRole)}\"\n class=\"${classes}\"\n download=\"${ifNonNull(download)}\"\n href=\"${ifNonNull(href)}\"\n hreflang=\"${ifNonNull(hreflang)}\"\n ping=\"${ifNonNull(ping)}\"\n rel=\"${ifNonNull(rel)}\"\n target=\"${ifNonNull(target)}\"\n type=\"${ifNonNull(type)}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"icon\" @slotchange=\"${handleSlotChange}\"></slot>\n </a>\n `;\n }\n return html`\n <button\n id=\"button\"\n part=\"button\"\n class=\"${classes}\"\n ?autofocus=\"${autofocus}\"\n ?disabled=\"${disabled}\"\n type=\"${ifNonNull(type)}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"icon\" @slotchange=\"${handleSlotChange}\"></slot>\n </button>\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXButton;\n"],"mappings":"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"}
1
+ {"version":3,"file":"button.js","names":["settings","classMap","html","property","LitElement","ifNonNull","FocusMixin","BUTTON_KIND","BUTTON_SIZE","BUTTON_ICON_LAYOUT","styles","HostListener","HostListenerMixin","carbonElement","customElement","prefix","BXButton","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleSlotChange","target","name","hasContent","assignedNodes","some","node","nodeType","Node","TEXT_NODE","textContent","trim","requestUpdate","decorators","capture","_handleDisabledClick","event","disabled","stopPropagation","type","Boolean","reflect","attribute","REGULAR","PRIMARY","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","render","autofocus","download","href","hreflang","isExpressive","linkRole","ping","rel","size","_hasIcon","hasIcon","_hasMainContent","hasMainContent","handleSlotChange","classes","_t","_","_t2","_t3","static"],"sources":["components/button/button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, LitElement } from 'lit-element';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { BUTTON_KIND, BUTTON_SIZE, BUTTON_ICON_LAYOUT } from './defs';\nimport styles from './button.scss';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { BUTTON_KIND, BUTTON_SIZE, BUTTON_ICON_LAYOUT };\n\nconst { prefix } = settings;\n\n/**\n * Button.\n *\n * @element bx-btn\n * @csspart button The button.\n */\n@customElement(`${prefix}-btn`)\nclass BXButton extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * `true` if there is an icon.\n */\n private _hasIcon = false;\n\n /**\n * `true` if there is a non-icon content.\n */\n private _hasMainContent = false;\n\n /**\n * Handles `slotchange` event.\n */\n private _handleSlotChange({ target }: Event) {\n const { name } = target as HTMLSlotElement;\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .some(\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n this[name === 'icon' ? '_hasIcon' : '_hasMainContent'] = hasContent;\n this.requestUpdate();\n }\n\n @HostListener('click', { capture: true })\n // @ts-ignore\n private _handleDisabledClick(event: Event) {\n const { disabled } = this;\n if (disabled) {\n event.stopPropagation();\n }\n }\n\n /**\n * `true` if the button should have input focus when the page loads.\n */\n @property({ type: Boolean, reflect: true })\n autofocus = false;\n\n /**\n * `true` if the button should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The default file name, used if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n download!: string;\n\n /**\n * Link `href`. If present, this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n href!: string;\n\n /**\n * The language of what `href` points to, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n hreflang!: string;\n\n /**\n * Button icon layout.\n */\n @property({ reflect: true, attribute: 'icon-layout' })\n iconLayout = BUTTON_ICON_LAYOUT.REGULAR;\n\n /**\n * `true` if expressive theme enabled.\n */\n @property({ type: Boolean, reflect: true })\n isExpressive = false;\n\n /**\n * Button kind.\n */\n @property({ reflect: true })\n kind = BUTTON_KIND.PRIMARY;\n\n /**\n * The a11y role for `<a>`.\n */\n @property({ attribute: 'link-role' })\n linkRole = 'button';\n\n /**\n * URLs to ping, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n ping!: string;\n\n /**\n * The link type, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n rel!: string;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.REGULAR;\n\n /**\n * The link target, if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n target!: string;\n\n /**\n * The default behavior if the button is rendered as `<button>`. MIME type of the `target`if this button is rendered as `<a>`.\n */\n @property({ reflect: true })\n type!: string;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n autofocus,\n disabled,\n download,\n href,\n hreflang,\n isExpressive,\n linkRole,\n kind,\n ping,\n rel,\n size,\n target,\n type,\n _hasIcon: hasIcon,\n _hasMainContent: hasMainContent,\n _handleSlotChange: handleSlotChange,\n } = this;\n const classes = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${kind}`]: kind,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--icon-only`]: hasIcon && !hasMainContent,\n [`${prefix}--btn--sm`]: size === 'sm' && !isExpressive,\n [`${prefix}--btn--xl`]: size === 'xl',\n [`${prefix}--btn--field`]: size === 'field' && !isExpressive,\n [`${prefix}-ce--btn--has-icon`]: hasIcon,\n [`${prefix}--btn--expressive`]: isExpressive,\n });\n if (href) {\n return disabled\n ? html`\n <p id=\"button\" part=\"button\" class=\"${classes}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"icon\" @slotchange=\"${handleSlotChange}\"></slot>\n </p>\n `\n : html`\n <a\n id=\"button\"\n part=\"button\"\n role=\"${ifNonNull(linkRole)}\"\n class=\"${classes}\"\n download=\"${ifNonNull(download)}\"\n href=\"${ifNonNull(href)}\"\n hreflang=\"${ifNonNull(hreflang)}\"\n ping=\"${ifNonNull(ping)}\"\n rel=\"${ifNonNull(rel)}\"\n target=\"${ifNonNull(target)}\"\n type=\"${ifNonNull(type)}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"icon\" @slotchange=\"${handleSlotChange}\"></slot>\n </a>\n `;\n }\n return html`\n <button\n id=\"button\"\n part=\"button\"\n class=\"${classes}\"\n ?autofocus=\"${autofocus}\"\n ?disabled=\"${disabled}\"\n type=\"${ifNonNull(type)}\">\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"icon\" @slotchange=\"${handleSlotChange}\"></slot>\n </button>\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXButton;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2022
4
+ * Copyright IBM Corp. 2019, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"sources":["components/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAwC,UAAU,EAAE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAS/E;;;;;;;GAOG;AACH,cACM,UAAW,SAAQ,eAAiC;IAExD,SAAS,CAAC,aAAa,EAAG,gBAAgB,CAAC;IAE3C;;OAEG;IACH,SAAS,CAAC,aAAa;IAgBvB,eAAe,CAAC,KAAK,EAAE,KAAK;IAQ5B;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAEH,aAAa,UAAS;IAEtB;;OAEG;IAEH,SAAS,SAAM;IAEf;;OAEG;IAEH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IAEH,KAAK,EAAG,MAAM,CAAC;IAEf,gBAAgB;IAShB,MAAM;IAoCN;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,UAAU,CAAC","file":"checkbox.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, query, customElement, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport styles from './checkbox.scss';\n\nconst { prefix } = settings;\n\n/**\n * Check box.\n *\n * @element bx-checkbox\n * @fires bx-checkbox-changed - The custom event fired after this changebox changes its checked state.\n * @csspart input The checkbox.\n * @csspart label The label.\n */\n@customElement(`${prefix}-checkbox`)\nclass BXCheckbox extends FocusMixin(FormMixin(LitElement)) {\n @query('input')\n protected _checkboxNode!: HTMLInputElement;\n\n /**\n * Handles `click` event on the `<input>` in the shadow DOM.\n */\n protected _handleChange() {\n const { checked, indeterminate } = this._checkboxNode;\n this.checked = checked;\n this.indeterminate = indeterminate;\n const { eventChange } = this.constructor as typeof BXCheckbox;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n indeterminate,\n },\n })\n );\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { checked, disabled, name, value = 'on' } = this;\n if (!disabled && checked) {\n formData.append(name, value);\n }\n }\n\n /**\n * `true` if the check box should be checked.\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the label should be hidden.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` if the check box should show its UI of the indeterminate state.\n */\n @property({ type: Boolean, reflect: true })\n indeterminate = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * The value.\n */\n @property()\n value!: string;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n checked,\n disabled,\n hideLabel,\n indeterminate,\n labelText,\n name,\n value,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--checkbox-label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n return html`\n <input\n id=\"checkbox\"\n type=\"checkbox\"\n part=\"input\"\n class=\"${`${prefix}--checkbox`}\"\n aria-checked=\"${indeterminate ? 'mixed' : String(Boolean(checked))}\"\n .checked=\"${checked}\"\n ?disabled=\"${disabled}\"\n .indeterminate=\"${indeterminate}\"\n name=\"${ifNonNull(name)}\"\n value=\"${ifNonNull(value)}\"\n @change=\"${handleChange}\" />\n <label for=\"checkbox\" part=\"label\" class=\"${labelClasses}\">\n <span class=\"${prefix}--checkbox-label-text\"\n ><slot>${labelText}</slot></span\n >\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired after this changebox changes its checked state.\n */\n static get eventChange() {\n return `${prefix}-checkbox-changed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXCheckbox;\n"]}
1
+ {"version":3,"sources":["components/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAyB,UAAU,EAAE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUhE;;;;;;;GAOG;AACH,cACM,UAAW,SAAQ,eAAiC;IAExD,SAAS,CAAC,aAAa,EAAG,gBAAgB,CAAC;IAE3C;;OAEG;IACH,SAAS,CAAC,aAAa;IAgBvB,eAAe,CAAC,KAAK,EAAE,KAAK;IAQ5B;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAEH,aAAa,UAAS;IAEtB;;OAEG;IAEH,SAAS,SAAM;IAEf;;OAEG;IAEH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IAEH,KAAK,EAAG,MAAM,CAAC;IAEf,gBAAgB;IAShB,MAAM;IAoCN;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,UAAU,CAAC","file":"checkbox.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, query, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport styles from './checkbox.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Check box.\n *\n * @element bx-checkbox\n * @fires bx-checkbox-changed - The custom event fired after this changebox changes its checked state.\n * @csspart input The checkbox.\n * @csspart label The label.\n */\n@customElement(`${prefix}-checkbox`)\nclass BXCheckbox extends FocusMixin(FormMixin(LitElement)) {\n @query('input')\n protected _checkboxNode!: HTMLInputElement;\n\n /**\n * Handles `click` event on the `<input>` in the shadow DOM.\n */\n protected _handleChange() {\n const { checked, indeterminate } = this._checkboxNode;\n this.checked = checked;\n this.indeterminate = indeterminate;\n const { eventChange } = this.constructor as typeof BXCheckbox;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n indeterminate,\n },\n })\n );\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { checked, disabled, name, value = 'on' } = this;\n if (!disabled && checked) {\n formData.append(name, value);\n }\n }\n\n /**\n * `true` if the check box should be checked.\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the label should be hidden.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` if the check box should show its UI of the indeterminate state.\n */\n @property({ type: Boolean, reflect: true })\n indeterminate = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * The value.\n */\n @property()\n value!: string;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n checked,\n disabled,\n hideLabel,\n indeterminate,\n labelText,\n name,\n value,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--checkbox-label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n return html`\n <input\n id=\"checkbox\"\n type=\"checkbox\"\n part=\"input\"\n class=\"${`${prefix}--checkbox`}\"\n aria-checked=\"${indeterminate ? 'mixed' : String(Boolean(checked))}\"\n .checked=\"${checked}\"\n ?disabled=\"${disabled}\"\n .indeterminate=\"${indeterminate}\"\n name=\"${ifNonNull(name)}\"\n value=\"${ifNonNull(value)}\"\n @change=\"${handleChange}\" />\n <label for=\"checkbox\" part=\"label\" class=\"${labelClasses}\">\n <span class=\"${prefix}--checkbox-label-text\"\n ><slot>${labelText}</slot></span\n >\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired after this changebox changes its checked state.\n */\n static get eventChange() {\n return `${prefix}-checkbox-changed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXCheckbox;\n"]}
@@ -4,19 +4,20 @@ let _ = t => t,
4
4
  /**
5
5
  * @license
6
6
  *
7
- * Copyright IBM Corp. 2019, 2022
7
+ * Copyright IBM Corp. 2019, 2023
8
8
  *
9
9
  * This source code is licensed under the Apache-2.0 license found in the
10
10
  * LICENSE file in the root directory of this source tree.
11
11
  */
12
12
 
13
13
  import { classMap } from 'lit-html/directives/class-map';
14
- import { html, property, query, customElement, LitElement } from 'lit-element';
14
+ import { html, property, query, LitElement } from 'lit-element';
15
15
  import settings from 'carbon-components/es/globals/js/settings';
16
16
  import ifNonNull from '../../globals/directives/if-non-null';
17
17
  import FocusMixin from '../../globals/mixins/focus';
18
18
  import FormMixin from '../../globals/mixins/form';
19
19
  import styles from "././checkbox.css.js";
20
+ import { carbonElement as customElement } from '../../globals/decorators/carbon-element';
20
21
  const {
21
22
  prefix
22
23
  } = settings;
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":["classMap","html","property","query","customElement","LitElement","settings","ifNonNull","FocusMixin","FormMixin","styles","prefix","BXCheckbox","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","key","value","_handleChange","checked","indeterminate","_checkboxNode","eventChange","dispatchEvent","CustomEvent","bubbles","composed","detail","_handleFormdata","event","formData","disabled","name","append","type","Boolean","reflect","attribute","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","render","hideLabel","labelText","handleChange","labelClasses","_t","_","String","static"],"sources":["components/checkbox/checkbox.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, query, customElement, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport styles from './checkbox.scss';\n\nconst { prefix } = settings;\n\n/**\n * Check box.\n *\n * @element bx-checkbox\n * @fires bx-checkbox-changed - The custom event fired after this changebox changes its checked state.\n * @csspart input The checkbox.\n * @csspart label The label.\n */\n@customElement(`${prefix}-checkbox`)\nclass BXCheckbox extends FocusMixin(FormMixin(LitElement)) {\n @query('input')\n protected _checkboxNode!: HTMLInputElement;\n\n /**\n * Handles `click` event on the `<input>` in the shadow DOM.\n */\n protected _handleChange() {\n const { checked, indeterminate } = this._checkboxNode;\n this.checked = checked;\n this.indeterminate = indeterminate;\n const { eventChange } = this.constructor as typeof BXCheckbox;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n indeterminate,\n },\n })\n );\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { checked, disabled, name, value = 'on' } = this;\n if (!disabled && checked) {\n formData.append(name, value);\n }\n }\n\n /**\n * `true` if the check box should be checked.\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the label should be hidden.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` if the check box should show its UI of the indeterminate state.\n */\n @property({ type: Boolean, reflect: true })\n indeterminate = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * The value.\n */\n @property()\n value!: string;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n checked,\n disabled,\n hideLabel,\n indeterminate,\n labelText,\n name,\n value,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--checkbox-label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n return html`\n <input\n id=\"checkbox\"\n type=\"checkbox\"\n part=\"input\"\n class=\"${`${prefix}--checkbox`}\"\n aria-checked=\"${indeterminate ? 'mixed' : String(Boolean(checked))}\"\n .checked=\"${checked}\"\n ?disabled=\"${disabled}\"\n .indeterminate=\"${indeterminate}\"\n name=\"${ifNonNull(name)}\"\n value=\"${ifNonNull(value)}\"\n @change=\"${handleChange}\" />\n <label for=\"checkbox\" part=\"label\" class=\"${labelClasses}\">\n <span class=\"${prefix}--checkbox-label-text\"\n ><slot>${labelText}</slot></span\n >\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired after this changebox changes its checked state.\n */\n static get eventChange() {\n return `${prefix}-checkbox-changed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXCheckbox;\n"],"mappings":"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"}
1
+ {"version":3,"file":"checkbox.js","names":["classMap","html","property","query","LitElement","settings","ifNonNull","FocusMixin","FormMixin","styles","carbonElement","customElement","prefix","BXCheckbox","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","key","value","_handleChange","checked","indeterminate","_checkboxNode","eventChange","dispatchEvent","CustomEvent","bubbles","composed","detail","_handleFormdata","event","formData","disabled","name","append","type","Boolean","reflect","attribute","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","render","hideLabel","labelText","handleChange","labelClasses","_t","_","String","static"],"sources":["components/checkbox/checkbox.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, query, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport styles from './checkbox.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Check box.\n *\n * @element bx-checkbox\n * @fires bx-checkbox-changed - The custom event fired after this changebox changes its checked state.\n * @csspart input The checkbox.\n * @csspart label The label.\n */\n@customElement(`${prefix}-checkbox`)\nclass BXCheckbox extends FocusMixin(FormMixin(LitElement)) {\n @query('input')\n protected _checkboxNode!: HTMLInputElement;\n\n /**\n * Handles `click` event on the `<input>` in the shadow DOM.\n */\n protected _handleChange() {\n const { checked, indeterminate } = this._checkboxNode;\n this.checked = checked;\n this.indeterminate = indeterminate;\n const { eventChange } = this.constructor as typeof BXCheckbox;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n indeterminate,\n },\n })\n );\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { checked, disabled, name, value = 'on' } = this;\n if (!disabled && checked) {\n formData.append(name, value);\n }\n }\n\n /**\n * `true` if the check box should be checked.\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the label should be hidden.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` if the check box should show its UI of the indeterminate state.\n */\n @property({ type: Boolean, reflect: true })\n indeterminate = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * The value.\n */\n @property()\n value!: string;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n checked,\n disabled,\n hideLabel,\n indeterminate,\n labelText,\n name,\n value,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--checkbox-label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n return html`\n <input\n id=\"checkbox\"\n type=\"checkbox\"\n part=\"input\"\n class=\"${`${prefix}--checkbox`}\"\n aria-checked=\"${indeterminate ? 'mixed' : String(Boolean(checked))}\"\n .checked=\"${checked}\"\n ?disabled=\"${disabled}\"\n .indeterminate=\"${indeterminate}\"\n name=\"${ifNonNull(name)}\"\n value=\"${ifNonNull(value)}\"\n @change=\"${handleChange}\" />\n <label for=\"checkbox\" part=\"label\" class=\"${labelClasses}\">\n <span class=\"${prefix}--checkbox-label-text\"\n ><slot>${labelText}</slot></span\n >\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired after this changebox changes its checked state.\n */\n static get eventChange() {\n return `${prefix}-checkbox-changed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXCheckbox;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,+BAA+B;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,QAAQ,aAAa;AAC/D,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,SAAS,MAAM,sCAAsC;AAC5D,OAAOC,UAAU,MAAM,4BAA4B;AACnD,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,MAAM,MAAM,qBAAiB;AACpC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGP,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,IASMQ,UAAU,GAAAC,SAAA,EADfH,aAAa,CAAE,GAAEC,MAAO,WAAU,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAApC,MACMH,UAAU,SAAAG,WAAA,CAA2C;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA8H3D;EAAC;IAAAI,CAAA,EA9HKN,UAAU;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GACbnB,KAAK,CAAC,OAAO,CAAC;MAAAoB,GAAA;MAAAC,KAAA;IAAA;MAAAH,IAAA;MAAAE,GAAA;MAAAC,KAAA;MAGf;AACF;AACA;MACE,SAAAC,cAAA,EAA0B;QACxB,MAAM;UAAEC,OAAO;UAAEC;QAAc,CAAC,GAAG,IAAI,CAACC,aAAa;QACrD,IAAI,CAACF,OAAO,GAAGA,OAAO;QACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;QAClC,MAAM;UAAEE;QAAY,CAAC,GAAG,IAAI,CAACZ,WAAgC;QAC7D,IAAI,CAACa,aAAa,CAChB,IAAIC,WAAW,CAACF,WAAW,EAAE;UAC3BG,OAAO,EAAE,IAAI;UACbC,QAAQ,EAAE,IAAI;UACdC,MAAM,EAAE;YACNP;UACF;QACF,CAAC,CAAC,CACH;MACH;IAAC;MAAAN,IAAA;MAAAE,GAAA;MAAAC,KAAA,EAED,SAAAW,gBAAgBC,KAAY,EAAE;QAC5B,MAAM;UAAEC;QAAS,CAAC,GAAGD,KAAY,CAAC,CAAC;QACnC,MAAM;UAAEV,OAAO;UAAEY,QAAQ;UAAEC,IAAI;UAAEf,KAAK,GAAG;QAAK,CAAC,GAAG,IAAI;QACtD,IAAI,CAACc,QAAQ,IAAIZ,OAAO,EAAE;UACxBW,QAAQ,CAACG,MAAM,CAACD,IAAI,EAAEf,KAAK,CAAC;QAC9B;MACF;;MAEA;AACF;AACA;IAFE;MAAAH,IAAA;MAAAC,UAAA,GAGCpB,QAAQ,CAAC;QAAEuC,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAApB,GAAA;MAAAC,MAAA;QAAA,OACjC,KAAK;MAAA;IAAA;MAAAH,IAAA;MAAAC,UAAA,GAKdpB,QAAQ,CAAC;QAAEuC,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAApB,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAH,IAAA;MAAAC,UAAA,GAKfpB,QAAQ,CAAC;QAAEuC,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAa,CAAC,CAAC;MAAArB,GAAA;MAAAC,MAAA;QAAA,OACxD,KAAK;MAAA;IAAA;MAAAH,IAAA;MAAAC,UAAA,GAKhBpB,QAAQ,CAAC;QAAEuC,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAApB,GAAA;MAAAC,MAAA;QAAA,OAC3B,KAAK;MAAA;IAAA;MAAAH,IAAA;MAAAC,UAAA,GAKpBpB,QAAQ,CAAC;QAAE0C,SAAS,EAAE;MAAa,CAAC,CAAC;MAAArB,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAH,IAAA;MAAAC,UAAA,GAKbpB,QAAQ,EAAE;MAAAqB,GAAA;MAAAC,KAAA;IAAA;MAAAH,IAAA;MAAAC,UAAA,GAMVpB,QAAQ,EAAE;MAAAqB,GAAA;MAAAC,KAAA;IAAA;MAAAH,IAAA;MAAAE,GAAA;MAAAC,KAAA;MAjCX;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE,SAAAqB,iBAAA,EAAmB;QAAA,IAAAC,KAAA;QACjB,OAAO,IAAI,CAACC,YAAY,CAAC;UACvBC,IAAI,EAAE,MAAM;UACZC,cAAc,EACZC,MAAM,CAAC,EAAAJ,KAAA,GAAC,eAAe,CAACK,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,cAAAP,KAAA,cAAAA,KAAA,GAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IACjE;QACJ,CAAC,CAAC;MACJ;IAAC;MAAAzB,IAAA;MAAAE,GAAA;MAAAC,KAAA,EAED,SAAA8B,OAAA,EAAS;QACP,MAAM;UACJ5B,OAAO;UACPY,QAAQ;UACRiB,SAAS;UACT5B,aAAa;UACb6B,SAAS;UACTjB,IAAI;UACJf,KAAK;UACLC,aAAa,EAAEgC;QACjB,CAAC,GAAG,IAAI;QACR,MAAMC,YAAY,GAAG1D,QAAQ,CAAC;UAC5B,CAAE,GAAEY,MAAO,kBAAiB,GAAG,IAAI;UACnC,CAAE,GAAEA,MAAO,mBAAkB,GAAG2C;QAClC,CAAC,CAAC;QACF,OAAOtD,IAAI,CAAA0D,EAAA,KAAAA,EAAA,GAAAC,CAAA,oTAKG,GAAEhD,MAAO,YAAW,EACde,aAAa,GAAG,OAAO,GAAGkC,MAAM,CAACnB,OAAO,CAAChB,OAAO,CAAC,CAAC,EACtDA,OAAO,EACNY,QAAQ,EACHX,aAAa,EACvBrB,SAAS,CAACiC,IAAI,CAAC,EACdjC,SAAS,CAACkB,KAAK,CAAC,EACdiC,YAAY,EACmBC,YAAY,EACvC9C,MAAM,EACV4C,SAAS;MAI1B;;MAEA;AACF;AACA;IAFE;MAAAnC,IAAA;MAAAyC,MAAA;MAAAvC,GAAA;MAAAC,KAAA,EAGA,SAAAK,YAAA,EAAyB;QACvB,OAAQ,GAAEjB,MAAO,mBAAkB;MACrC;IAAC;MAAAS,IAAA;MAAAyC,MAAA;MAAAvC,GAAA;MAAAC,MAAA;QAAA,OAEef,MAAM;MAAA;IAAA;EAAA;AAAA,GA7HCF,UAAU,CAACC,SAAS,CAACJ,UAAU,CAAC,CAAC;AAgI1D,eAAeS,UAAU"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2022
4
+ * Copyright IBM Corp. 2019, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"sources":["components/code-snippet/code-snippet-skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiC,UAAU,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKnD;;GAEG;AACH,cACM,qBAAsB,SAAQ,UAAU;IAC5C;;OAEG;IAEH,IAAI,oBAA4B;IAEhC,MAAM;IAUN,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,qBAAqB,CAAC","file":"code-snippet-skeleton.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, customElement, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { CODE_SNIPPET_TYPE } from './code-snippet';\nimport styles from './code-snippet.scss';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton of code snippet.\n */\n@customElement(`${prefix}-code-snippet-skeleton`)\nclass BXCodeSnippetSkeleton extends LitElement {\n /**\n * The type of code snippet. Corresponds to the attribute with the same name.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n render() {\n return html`\n <div class=\"${prefix}--snippet-container\">\n ${this.type !== CODE_SNIPPET_TYPE.MULTI\n ? html` <span></span> `\n : html` <span></span><span></span><span></span> `}\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippetSkeleton;\n"]}
1
+ {"version":3,"sources":["components/code-snippet/code-snippet-skeleton.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAkB,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMnD;;GAEG;AACH,cACM,qBAAsB,SAAQ,UAAU;IAC5C;;OAEG;IAEH,IAAI,oBAA4B;IAEhC,MAAM;IAUN,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,qBAAqB,CAAC","file":"code-snippet-skeleton.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { CODE_SNIPPET_TYPE } from './code-snippet';\nimport styles from './code-snippet.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton of code snippet.\n */\n@customElement(`${prefix}-code-snippet-skeleton`)\nclass BXCodeSnippetSkeleton extends LitElement {\n /**\n * The type of code snippet. Corresponds to the attribute with the same name.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n render() {\n return html`\n <div class=\"${prefix}--snippet-container\">\n ${this.type !== CODE_SNIPPET_TYPE.MULTI\n ? html` <span></span> `\n : html` <span></span><span></span><span></span> `}\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippetSkeleton;\n"]}
@@ -6,16 +6,17 @@ let _ = t => t,
6
6
  /**
7
7
  * @license
8
8
  *
9
- * Copyright IBM Corp. 2019, 2022
9
+ * Copyright IBM Corp. 2019, 2023
10
10
  *
11
11
  * This source code is licensed under the Apache-2.0 license found in the
12
12
  * LICENSE file in the root directory of this source tree.
13
13
  */
14
14
 
15
- import { html, property, customElement, LitElement } from 'lit-element';
15
+ import { html, property, LitElement } from 'lit-element';
16
16
  import settings from 'carbon-components/es/globals/js/settings';
17
17
  import { CODE_SNIPPET_TYPE } from './code-snippet';
18
18
  import styles from "././code-snippet.css.js";
19
+ import { carbonElement as customElement } from '../../globals/decorators/carbon-element';
19
20
  const {
20
21
  prefix
21
22
  } = settings;
@@ -1 +1 @@
1
- {"version":3,"file":"code-snippet-skeleton.js","names":["html","property","customElement","LitElement","settings","CODE_SNIPPET_TYPE","styles","prefix","BXCodeSnippetSkeleton","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","reflect","key","value","SINGLE","render","_t","_","type","MULTI","_t2","_t3","static"],"sources":["components/code-snippet/code-snippet-skeleton.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, customElement, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { CODE_SNIPPET_TYPE } from './code-snippet';\nimport styles from './code-snippet.scss';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton of code snippet.\n */\n@customElement(`${prefix}-code-snippet-skeleton`)\nclass BXCodeSnippetSkeleton extends LitElement {\n /**\n * The type of code snippet. Corresponds to the attribute with the same name.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n render() {\n return html`\n <div class=\"${prefix}--snippet-container\">\n ${this.type !== CODE_SNIPPET_TYPE.MULTI\n ? html` <span></span> `\n : html` <span></span><span></span><span></span> `}\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippetSkeleton;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,UAAU,QAAQ,aAAa;AACvE,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,iBAAiB,QAAQ,gBAAgB;AAClD,OAAOC,MAAM,MAAM,yBAAqB;AAExC,MAAM;EAAEC;AAAO,CAAC,GAAGH,QAAQ;;AAE3B;AACA;AACA;AAFA,IAIMI,qBAAqB,GAAAC,SAAA,EAD1BP,aAAa,CAAE,GAAEK,MAAO,wBAAuB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAjD,MACMH,qBAAqB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAkB/C;EAAC;IAAAI,CAAA,EAlBKN,qBAAqB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIxBhB,QAAQ,CAAC;QAAEiB,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACrBf,iBAAiB,CAACgB,MAAM;MAAA;IAAA;MAAAL,IAAA;MAAAG,GAAA;MAAAC,KAAA;MAJ/B;AACF;AACA;;MAIE,SAAAE,OAAA,EAAS;QACP,OAAOtB,IAAI,CAAAuB,EAAA,KAAAA,EAAA,GAAAC,CAAA,wDACKjB,MAAM,EAChB,IAAI,CAACkB,IAAI,KAAKpB,iBAAiB,CAACqB,KAAK,GACnC1B,IAAI,CAAA2B,GAAA,KAAAA,GAAA,GAAAH,CAAA,sBACJxB,IAAI,CAAA4B,GAAA,KAAAA,GAAA,GAAAJ,CAAA,6CAA2C;MAGzD;IAAC;MAAAR,IAAA;MAAAa,MAAA;MAAAV,GAAA;MAAAC,MAAA;QAAA,OAEed,MAAM;MAAA;IAAA;EAAA;AAAA,GAjBYH,UAAU;AAoB9C,eAAeK,qBAAqB"}
1
+ {"version":3,"file":"code-snippet-skeleton.js","names":["html","property","LitElement","settings","CODE_SNIPPET_TYPE","styles","carbonElement","customElement","prefix","BXCodeSnippetSkeleton","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","reflect","key","value","SINGLE","render","_t","_","type","MULTI","_t2","_t3","static"],"sources":["components/code-snippet/code-snippet-skeleton.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { CODE_SNIPPET_TYPE } from './code-snippet';\nimport styles from './code-snippet.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton of code snippet.\n */\n@customElement(`${prefix}-code-snippet-skeleton`)\nclass BXCodeSnippetSkeleton extends LitElement {\n /**\n * The type of code snippet. Corresponds to the attribute with the same name.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n render() {\n return html`\n <div class=\"${prefix}--snippet-container\">\n ${this.type !== CODE_SNIPPET_TYPE.MULTI\n ? html` <span></span> `\n : html` <span></span><span></span><span></span> `}\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippetSkeleton;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,iBAAiB,QAAQ,gBAAgB;AAClD,OAAOC,MAAM,MAAM,yBAAqB;AACxC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGL,QAAQ;;AAE3B;AACA;AACA;AAFA,IAIMM,qBAAqB,GAAAC,SAAA,EAD1BH,aAAa,CAAE,GAAEC,MAAO,wBAAuB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAjD,MACMH,qBAAqB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAkB/C;EAAC;IAAAI,CAAA,EAlBKN,qBAAqB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIxBjB,QAAQ,CAAC;QAAEkB,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACrBjB,iBAAiB,CAACkB,MAAM;MAAA;IAAA;MAAAL,IAAA;MAAAG,GAAA;MAAAC,KAAA;MAJ/B;AACF;AACA;;MAIE,SAAAE,OAAA,EAAS;QACP,OAAOvB,IAAI,CAAAwB,EAAA,KAAAA,EAAA,GAAAC,CAAA,wDACKjB,MAAM,EAChB,IAAI,CAACkB,IAAI,KAAKtB,iBAAiB,CAACuB,KAAK,GACnC3B,IAAI,CAAA4B,GAAA,KAAAA,GAAA,GAAAH,CAAA,sBACJzB,IAAI,CAAA6B,GAAA,KAAAA,GAAA,GAAAJ,CAAA,6CAA2C;MAGzD;IAAC;MAAAR,IAAA;MAAAa,MAAA;MAAAV,GAAA;MAAAC,MAAA;QAAA,OAEehB,MAAM;MAAA;IAAA;EAAA;AAAA,GAjBYH,UAAU;AAoB9C,eAAeO,qBAAqB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2022
4
+ * Copyright IBM Corp. 2019, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"sources":["components/code-snippet/code-snippet.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAwC,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ/E,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGtE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DxD;;;;GAIG;AACH,cACM,aAAc,SAAQ,kBAAsB;IAChD;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAAS;IAExC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,gCAAgC,CAMpC;IAEJ;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAkB;IAElC;;OAEG;IAEH,iBAAiB,SAAkB;IAEnC;;OAEG;IAEH,kBAAkB,SAAe;IAEjC;;OAEG;IAEH,WAAW,4BAAqC;IAEhD;;OAEG;IAEH,uBAAuB,SAAuB;IAE9C;;OAEG;IAEH,sBAAsB,SAAa;IAEnC;;OAEG;IAEH,yBAAyB,SAAQ;IAEjC;;OAEG;IAEH,gBAAgB,SAAe;IAE/B;;OAEG;IAEH,IAAI,oBAA4B;IAEhC,gBAAgB;IAShB,MAAM;IA4EN,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,aAAa,CAAC","file":"code-snippet.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query, customElement, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport {\n _createHandleFeedbackTooltip as createHandleCopyButtonFeedbackTooltip,\n _renderButton as renderCopyButton,\n} from '../copy-button/copy-button';\nimport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE } from './defs';\nimport styles from './code-snippet.scss';\n\nexport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * @param values The values to render.\n * @param values.children The child nodes.\n * @param values.handleClick The handler for the `click` event on the button.\n * @returns The template result for the expando.\n */\nconst renderExpando = ({\n children,\n handleClick,\n}: {\n children: string | TemplateResult;\n handleClick: EventListener;\n}) => html`\n <button\n type=\"button\"\n class=\"${prefix}--snippet-btn--expand\"\n @click=\"${handleClick}\">\n <span id=\"button-text\" class=\"${prefix}--snippet-btn--text\">\n ${children}\n </span>\n ${ChevronDown16({\n 'aria-labeledby': 'button-text',\n class: `${prefix}--icon-chevron--down ${prefix}--snippet__icon`,\n role: 'img',\n })}\n </button>\n`;\n\n/**\n * @param values The values to render.\n * @param values.assistiveText The assistive text to announce that the node is for code snippet.\n * @param [values.expanded] `true` to show the expanded state (for multi-line variant).\n * @param values.children The child nodes.\n * @returns The template result for the code snippet.\n */\nconst renderCode = ({\n assistiveText,\n expanded,\n children,\n}: {\n assistiveText: string;\n expanded?: boolean;\n children: string | TemplateResult;\n}) => {\n const classes = classMap({\n [`${prefix}--snippet-container`]: true,\n [`${prefix}-ce--snippet-container--expanded`]: Boolean(expanded),\n });\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n <div role=\"textbox\" tabindex=\"0\" class=\"${classes}\" aria-label=\"${assistiveText}\"><code><pre>${children}</pre></code></div>\n `;\n};\n\n/**\n * Basic code snippet.\n *\n * @element bx-code-snippet\n */\n@customElement(`${prefix}-code-snippet`)\nclass BXCodeSnippet extends FocusMixin(LitElement) {\n /**\n * `true` to expand multi-line variant of code snippet.\n */\n private _expanded = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showCopyButtonFeedback = false;\n\n /**\n * `true` to show the expando.\n */\n private _showExpando = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickCopyButton() {\n const { ownerDocument: doc } = this;\n const selection = doc!.defaultView!.getSelection();\n selection!.removeAllRanges();\n const code = doc!.createElement('code');\n code.className = `${prefix}--visually-hidden`;\n const pre = doc!.createElement('pre');\n pre.textContent = this.textContent;\n code.appendChild(pre);\n // Using `<code>` in shadow DOM seems to lose the LFs in some browsers\n doc!.body.appendChild(code);\n const range = doc!.createRange();\n range.selectNodeContents(code);\n selection!.addRange(range);\n doc!.execCommand('copy');\n this._handleCopyButtonFeedbackTooltip(this.copyButtonFeedbackTimeout);\n doc!.body.removeChild(code);\n selection!.removeAllRanges();\n }\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleCopyButtonFeedbackTooltip =\n createHandleCopyButtonFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showCopyButtonFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * Handles `click` event on the expando.\n */\n private _handleClickExpando() {\n this._expanded = !this._expanded;\n this.requestUpdate();\n }\n\n /**\n * Handles change in slot content to determine if the content\n */\n private _handleSlotChange() {\n const { type, _preNode: preNode } = this;\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n if (preNode.getBoundingClientRect().height > 255) {\n this._showExpando = true;\n this.requestUpdate();\n }\n }\n }\n\n /**\n * The `<pre>` element in the shadow DOM.\n */\n @query('pre')\n private _preNode!: HTMLPreElement;\n\n /**\n * An assistive text for screen reader to advice a DOM node is for code snippet.\n */\n @property({ attribute: 'code-assistive-text' })\n codeAssistiveText = 'code-snippet';\n\n /**\n * The context content for the collapse button.\n */\n @property({ attribute: 'collapse-button-text' })\n collapseButtonText = 'Show less';\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = CODE_SNIPPET_COLOR_SCHEME.REGULAR;\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'copy-button-assistive-text' })\n copyButtonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text for the copy button.\n */\n @property({ attribute: 'copy-button-feedback-text' })\n copyButtonFeedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip for the copy button should remain.\n */\n @property({ type: Number, attribute: 'copy-button-feedback-timeout' })\n copyButtonFeedbackTimeout = 2000;\n\n /**\n * The context content for the expand button.\n */\n @property({ attribute: 'expand-button-text' })\n expandButtonText = 'Show more';\n\n /**\n * The type of code snippet.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n codeAssistiveText,\n collapseButtonText,\n copyButtonAssistiveText,\n copyButtonFeedbackText,\n expandButtonText,\n type,\n _expanded: expanded,\n _showCopyButtonFeedback: showCopyButtonFeedback,\n _showExpando: showExpando,\n _handleClickCopyButton: handleClickCopyButton,\n _handleClickExpando: handleClickExpando,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n if (type === CODE_SNIPPET_TYPE.SINGLE) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n `;\n }\n\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n ${!showExpando\n ? undefined\n : renderExpando({\n children: expanded\n ? html`<slot name=\"collapse-button-text\">${collapseButtonText}</slot>`\n : html`<slot name=\"expand-button-text\">${expandButtonText}</slot>`,\n handleClick: handleClickExpando,\n })}\n `;\n }\n\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet ${prefix}--snippet--inline`,\n children: html`<code aria-label=\"${codeAssistiveText}\"><slot></slot></code>`,\n })}\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippet;\n"]}
1
+ {"version":3,"sources":["components/code-snippet/code-snippet.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAyB,UAAU,EAAE,MAAM,aAAa,CAAC;AAQhE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAItE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DxD;;;;GAIG;AACH,cACM,aAAc,SAAQ,kBAAsB;IAChD;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAAS;IAExC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,gCAAgC,CAMpC;IAEJ;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAkB;IAElC;;OAEG;IAEH,iBAAiB,SAAkB;IAEnC;;OAEG;IAEH,kBAAkB,SAAe;IAEjC;;OAEG;IAEH,WAAW,4BAAqC;IAEhD;;OAEG;IAEH,uBAAuB,SAAuB;IAE9C;;OAEG;IAEH,sBAAsB,SAAa;IAEnC;;OAEG;IAEH,yBAAyB,SAAQ;IAEjC;;OAEG;IAEH,gBAAgB,SAAe;IAE/B;;OAEG;IAEH,IAAI,oBAA4B;IAEhC,gBAAgB;IAShB,MAAM;IA4EN,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,aAAa,CAAC","file":"code-snippet.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport {\n _createHandleFeedbackTooltip as createHandleCopyButtonFeedbackTooltip,\n _renderButton as renderCopyButton,\n} from '../copy-button/copy-button';\nimport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE } from './defs';\nimport styles from './code-snippet.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * @param values The values to render.\n * @param values.children The child nodes.\n * @param values.handleClick The handler for the `click` event on the button.\n * @returns The template result for the expando.\n */\nconst renderExpando = ({\n children,\n handleClick,\n}: {\n children: string | TemplateResult;\n handleClick: EventListener;\n}) => html`\n <button\n type=\"button\"\n class=\"${prefix}--snippet-btn--expand\"\n @click=\"${handleClick}\">\n <span id=\"button-text\" class=\"${prefix}--snippet-btn--text\">\n ${children}\n </span>\n ${ChevronDown16({\n 'aria-labeledby': 'button-text',\n class: `${prefix}--icon-chevron--down ${prefix}--snippet__icon`,\n role: 'img',\n })}\n </button>\n`;\n\n/**\n * @param values The values to render.\n * @param values.assistiveText The assistive text to announce that the node is for code snippet.\n * @param [values.expanded] `true` to show the expanded state (for multi-line variant).\n * @param values.children The child nodes.\n * @returns The template result for the code snippet.\n */\nconst renderCode = ({\n assistiveText,\n expanded,\n children,\n}: {\n assistiveText: string;\n expanded?: boolean;\n children: string | TemplateResult;\n}) => {\n const classes = classMap({\n [`${prefix}--snippet-container`]: true,\n [`${prefix}-ce--snippet-container--expanded`]: Boolean(expanded),\n });\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n <div role=\"textbox\" tabindex=\"0\" class=\"${classes}\" aria-label=\"${assistiveText}\"><code><pre>${children}</pre></code></div>\n `;\n};\n\n/**\n * Basic code snippet.\n *\n * @element bx-code-snippet\n */\n@customElement(`${prefix}-code-snippet`)\nclass BXCodeSnippet extends FocusMixin(LitElement) {\n /**\n * `true` to expand multi-line variant of code snippet.\n */\n private _expanded = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showCopyButtonFeedback = false;\n\n /**\n * `true` to show the expando.\n */\n private _showExpando = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickCopyButton() {\n const { ownerDocument: doc } = this;\n const selection = doc!.defaultView!.getSelection();\n selection!.removeAllRanges();\n const code = doc!.createElement('code');\n code.className = `${prefix}--visually-hidden`;\n const pre = doc!.createElement('pre');\n pre.textContent = this.textContent;\n code.appendChild(pre);\n // Using `<code>` in shadow DOM seems to lose the LFs in some browsers\n doc!.body.appendChild(code);\n const range = doc!.createRange();\n range.selectNodeContents(code);\n selection!.addRange(range);\n doc!.execCommand('copy');\n this._handleCopyButtonFeedbackTooltip(this.copyButtonFeedbackTimeout);\n doc!.body.removeChild(code);\n selection!.removeAllRanges();\n }\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleCopyButtonFeedbackTooltip =\n createHandleCopyButtonFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showCopyButtonFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * Handles `click` event on the expando.\n */\n private _handleClickExpando() {\n this._expanded = !this._expanded;\n this.requestUpdate();\n }\n\n /**\n * Handles change in slot content to determine if the content\n */\n private _handleSlotChange() {\n const { type, _preNode: preNode } = this;\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n if (preNode.getBoundingClientRect().height > 255) {\n this._showExpando = true;\n this.requestUpdate();\n }\n }\n }\n\n /**\n * The `<pre>` element in the shadow DOM.\n */\n @query('pre')\n private _preNode!: HTMLPreElement;\n\n /**\n * An assistive text for screen reader to advice a DOM node is for code snippet.\n */\n @property({ attribute: 'code-assistive-text' })\n codeAssistiveText = 'code-snippet';\n\n /**\n * The context content for the collapse button.\n */\n @property({ attribute: 'collapse-button-text' })\n collapseButtonText = 'Show less';\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = CODE_SNIPPET_COLOR_SCHEME.REGULAR;\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'copy-button-assistive-text' })\n copyButtonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text for the copy button.\n */\n @property({ attribute: 'copy-button-feedback-text' })\n copyButtonFeedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip for the copy button should remain.\n */\n @property({ type: Number, attribute: 'copy-button-feedback-timeout' })\n copyButtonFeedbackTimeout = 2000;\n\n /**\n * The context content for the expand button.\n */\n @property({ attribute: 'expand-button-text' })\n expandButtonText = 'Show more';\n\n /**\n * The type of code snippet.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n codeAssistiveText,\n collapseButtonText,\n copyButtonAssistiveText,\n copyButtonFeedbackText,\n expandButtonText,\n type,\n _expanded: expanded,\n _showCopyButtonFeedback: showCopyButtonFeedback,\n _showExpando: showExpando,\n _handleClickCopyButton: handleClickCopyButton,\n _handleClickExpando: handleClickExpando,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n if (type === CODE_SNIPPET_TYPE.SINGLE) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n `;\n }\n\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n ${!showExpando\n ? undefined\n : renderExpando({\n children: expanded\n ? html`<slot name=\"collapse-button-text\">${collapseButtonText}</slot>`\n : html`<slot name=\"expand-button-text\">${expandButtonText}</slot>`,\n handleClick: handleClickExpando,\n })}\n `;\n }\n\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet ${prefix}--snippet--inline`,\n children: html`<code aria-label=\"${codeAssistiveText}\"><slot></slot></code>`,\n })}\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippet;\n"]}
@@ -13,20 +13,21 @@ let _ = t => t,
13
13
  /**
14
14
  * @license
15
15
  *
16
- * Copyright IBM Corp. 2019, 2022
16
+ * Copyright IBM Corp. 2019, 2023
17
17
  *
18
18
  * This source code is licensed under the Apache-2.0 license found in the
19
19
  * LICENSE file in the root directory of this source tree.
20
20
  */
21
21
 
22
22
  import { classMap } from 'lit-html/directives/class-map';
23
- import { html, property, query, customElement, LitElement } from 'lit-element';
23
+ import { html, property, query, LitElement } from 'lit-element';
24
24
  import ChevronDown16 from "../../icons/chevron--down/16";
25
25
  import settings from 'carbon-components/es/globals/js/settings';
26
26
  import FocusMixin from '../../globals/mixins/focus';
27
27
  import { _createHandleFeedbackTooltip as createHandleCopyButtonFeedbackTooltip, _renderButton as renderCopyButton } from '../copy-button/copy-button';
28
28
  import { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE } from './defs';
29
29
  import styles from "././code-snippet.css.js";
30
+ import { carbonElement as customElement } from '../../globals/decorators/carbon-element';
30
31
  export { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE };
31
32
  const {
32
33
  prefix
@@ -1 +1 @@
1
- {"version":3,"file":"code-snippet.js","names":["classMap","html","property","query","customElement","LitElement","ChevronDown16","settings","FocusMixin","_createHandleFeedbackTooltip","createHandleCopyButtonFeedbackTooltip","_renderButton","renderCopyButton","CODE_SNIPPET_COLOR_SCHEME","CODE_SNIPPET_TYPE","styles","prefix","renderExpando","children","handleClick","_t","_","class","role","renderCode","assistiveText","expanded","classes","Boolean","_t2","BXCodeSnippet","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","_handleClickCopyButton","ownerDocument","doc","selection","defaultView","getSelection","removeAllRanges","code","createElement","className","pre","textContent","appendChild","body","range","createRange","selectNodeContents","addRange","execCommand","_handleCopyButtonFeedbackTooltip","copyButtonFeedbackTimeout","removeChild","showFeedback","_showCopyButtonFeedback","requestUpdate","_handleClickExpando","_expanded","_handleSlotChange","type","_preNode","preNode","MULTI","getBoundingClientRect","height","_showExpando","decorators","attribute","reflect","REGULAR","Number","SINGLE","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","exec","navigator","userAgent","render","codeAssistiveText","collapseButtonText","copyButtonAssistiveText","copyButtonFeedbackText","expandButtonText","showCopyButtonFeedback","showExpando","handleClickCopyButton","handleClickExpando","handleSlotChange","_t3","_t4","feedbackText","handleClickButton","_t5","_t6","undefined","_t7","_t8","_t9","_t10","static"],"sources":["components/code-snippet/code-snippet.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query, customElement, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport {\n _createHandleFeedbackTooltip as createHandleCopyButtonFeedbackTooltip,\n _renderButton as renderCopyButton,\n} from '../copy-button/copy-button';\nimport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE } from './defs';\nimport styles from './code-snippet.scss';\n\nexport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * @param values The values to render.\n * @param values.children The child nodes.\n * @param values.handleClick The handler for the `click` event on the button.\n * @returns The template result for the expando.\n */\nconst renderExpando = ({\n children,\n handleClick,\n}: {\n children: string | TemplateResult;\n handleClick: EventListener;\n}) => html`\n <button\n type=\"button\"\n class=\"${prefix}--snippet-btn--expand\"\n @click=\"${handleClick}\">\n <span id=\"button-text\" class=\"${prefix}--snippet-btn--text\">\n ${children}\n </span>\n ${ChevronDown16({\n 'aria-labeledby': 'button-text',\n class: `${prefix}--icon-chevron--down ${prefix}--snippet__icon`,\n role: 'img',\n })}\n </button>\n`;\n\n/**\n * @param values The values to render.\n * @param values.assistiveText The assistive text to announce that the node is for code snippet.\n * @param [values.expanded] `true` to show the expanded state (for multi-line variant).\n * @param values.children The child nodes.\n * @returns The template result for the code snippet.\n */\nconst renderCode = ({\n assistiveText,\n expanded,\n children,\n}: {\n assistiveText: string;\n expanded?: boolean;\n children: string | TemplateResult;\n}) => {\n const classes = classMap({\n [`${prefix}--snippet-container`]: true,\n [`${prefix}-ce--snippet-container--expanded`]: Boolean(expanded),\n });\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n <div role=\"textbox\" tabindex=\"0\" class=\"${classes}\" aria-label=\"${assistiveText}\"><code><pre>${children}</pre></code></div>\n `;\n};\n\n/**\n * Basic code snippet.\n *\n * @element bx-code-snippet\n */\n@customElement(`${prefix}-code-snippet`)\nclass BXCodeSnippet extends FocusMixin(LitElement) {\n /**\n * `true` to expand multi-line variant of code snippet.\n */\n private _expanded = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showCopyButtonFeedback = false;\n\n /**\n * `true` to show the expando.\n */\n private _showExpando = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickCopyButton() {\n const { ownerDocument: doc } = this;\n const selection = doc!.defaultView!.getSelection();\n selection!.removeAllRanges();\n const code = doc!.createElement('code');\n code.className = `${prefix}--visually-hidden`;\n const pre = doc!.createElement('pre');\n pre.textContent = this.textContent;\n code.appendChild(pre);\n // Using `<code>` in shadow DOM seems to lose the LFs in some browsers\n doc!.body.appendChild(code);\n const range = doc!.createRange();\n range.selectNodeContents(code);\n selection!.addRange(range);\n doc!.execCommand('copy');\n this._handleCopyButtonFeedbackTooltip(this.copyButtonFeedbackTimeout);\n doc!.body.removeChild(code);\n selection!.removeAllRanges();\n }\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleCopyButtonFeedbackTooltip =\n createHandleCopyButtonFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showCopyButtonFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * Handles `click` event on the expando.\n */\n private _handleClickExpando() {\n this._expanded = !this._expanded;\n this.requestUpdate();\n }\n\n /**\n * Handles change in slot content to determine if the content\n */\n private _handleSlotChange() {\n const { type, _preNode: preNode } = this;\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n if (preNode.getBoundingClientRect().height > 255) {\n this._showExpando = true;\n this.requestUpdate();\n }\n }\n }\n\n /**\n * The `<pre>` element in the shadow DOM.\n */\n @query('pre')\n private _preNode!: HTMLPreElement;\n\n /**\n * An assistive text for screen reader to advice a DOM node is for code snippet.\n */\n @property({ attribute: 'code-assistive-text' })\n codeAssistiveText = 'code-snippet';\n\n /**\n * The context content for the collapse button.\n */\n @property({ attribute: 'collapse-button-text' })\n collapseButtonText = 'Show less';\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = CODE_SNIPPET_COLOR_SCHEME.REGULAR;\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'copy-button-assistive-text' })\n copyButtonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text for the copy button.\n */\n @property({ attribute: 'copy-button-feedback-text' })\n copyButtonFeedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip for the copy button should remain.\n */\n @property({ type: Number, attribute: 'copy-button-feedback-timeout' })\n copyButtonFeedbackTimeout = 2000;\n\n /**\n * The context content for the expand button.\n */\n @property({ attribute: 'expand-button-text' })\n expandButtonText = 'Show more';\n\n /**\n * The type of code snippet.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n codeAssistiveText,\n collapseButtonText,\n copyButtonAssistiveText,\n copyButtonFeedbackText,\n expandButtonText,\n type,\n _expanded: expanded,\n _showCopyButtonFeedback: showCopyButtonFeedback,\n _showExpando: showExpando,\n _handleClickCopyButton: handleClickCopyButton,\n _handleClickExpando: handleClickExpando,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n if (type === CODE_SNIPPET_TYPE.SINGLE) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n `;\n }\n\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n ${!showExpando\n ? undefined\n : renderExpando({\n children: expanded\n ? html`<slot name=\"collapse-button-text\">${collapseButtonText}</slot>`\n : html`<slot name=\"expand-button-text\">${expandButtonText}</slot>`,\n handleClick: handleClickExpando,\n })}\n `;\n }\n\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet ${prefix}--snippet--inline`,\n children: html`<code aria-label=\"${codeAssistiveText}\"><slot></slot></code>`,\n })}\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippet;\n"],"mappings":"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"}
1
+ {"version":3,"file":"code-snippet.js","names":["classMap","html","property","query","LitElement","ChevronDown16","settings","FocusMixin","_createHandleFeedbackTooltip","createHandleCopyButtonFeedbackTooltip","_renderButton","renderCopyButton","CODE_SNIPPET_COLOR_SCHEME","CODE_SNIPPET_TYPE","styles","carbonElement","customElement","prefix","renderExpando","children","handleClick","_t","_","class","role","renderCode","assistiveText","expanded","classes","Boolean","_t2","BXCodeSnippet","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","_handleClickCopyButton","ownerDocument","doc","selection","defaultView","getSelection","removeAllRanges","code","createElement","className","pre","textContent","appendChild","body","range","createRange","selectNodeContents","addRange","execCommand","_handleCopyButtonFeedbackTooltip","copyButtonFeedbackTimeout","removeChild","showFeedback","_showCopyButtonFeedback","requestUpdate","_handleClickExpando","_expanded","_handleSlotChange","type","_preNode","preNode","MULTI","getBoundingClientRect","height","_showExpando","decorators","attribute","reflect","REGULAR","Number","SINGLE","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","exec","navigator","userAgent","render","codeAssistiveText","collapseButtonText","copyButtonAssistiveText","copyButtonFeedbackText","expandButtonText","showCopyButtonFeedback","showExpando","handleClickCopyButton","handleClickExpando","handleSlotChange","_t3","_t4","feedbackText","handleClickButton","_t5","_t6","undefined","_t7","_t8","_t9","_t10","static"],"sources":["components/code-snippet/code-snippet.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport {\n _createHandleFeedbackTooltip as createHandleCopyButtonFeedbackTooltip,\n _renderButton as renderCopyButton,\n} from '../copy-button/copy-button';\nimport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE } from './defs';\nimport styles from './code-snippet.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * @param values The values to render.\n * @param values.children The child nodes.\n * @param values.handleClick The handler for the `click` event on the button.\n * @returns The template result for the expando.\n */\nconst renderExpando = ({\n children,\n handleClick,\n}: {\n children: string | TemplateResult;\n handleClick: EventListener;\n}) => html`\n <button\n type=\"button\"\n class=\"${prefix}--snippet-btn--expand\"\n @click=\"${handleClick}\">\n <span id=\"button-text\" class=\"${prefix}--snippet-btn--text\">\n ${children}\n </span>\n ${ChevronDown16({\n 'aria-labeledby': 'button-text',\n class: `${prefix}--icon-chevron--down ${prefix}--snippet__icon`,\n role: 'img',\n })}\n </button>\n`;\n\n/**\n * @param values The values to render.\n * @param values.assistiveText The assistive text to announce that the node is for code snippet.\n * @param [values.expanded] `true` to show the expanded state (for multi-line variant).\n * @param values.children The child nodes.\n * @returns The template result for the code snippet.\n */\nconst renderCode = ({\n assistiveText,\n expanded,\n children,\n}: {\n assistiveText: string;\n expanded?: boolean;\n children: string | TemplateResult;\n}) => {\n const classes = classMap({\n [`${prefix}--snippet-container`]: true,\n [`${prefix}-ce--snippet-container--expanded`]: Boolean(expanded),\n });\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n <div role=\"textbox\" tabindex=\"0\" class=\"${classes}\" aria-label=\"${assistiveText}\"><code><pre>${children}</pre></code></div>\n `;\n};\n\n/**\n * Basic code snippet.\n *\n * @element bx-code-snippet\n */\n@customElement(`${prefix}-code-snippet`)\nclass BXCodeSnippet extends FocusMixin(LitElement) {\n /**\n * `true` to expand multi-line variant of code snippet.\n */\n private _expanded = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showCopyButtonFeedback = false;\n\n /**\n * `true` to show the expando.\n */\n private _showExpando = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickCopyButton() {\n const { ownerDocument: doc } = this;\n const selection = doc!.defaultView!.getSelection();\n selection!.removeAllRanges();\n const code = doc!.createElement('code');\n code.className = `${prefix}--visually-hidden`;\n const pre = doc!.createElement('pre');\n pre.textContent = this.textContent;\n code.appendChild(pre);\n // Using `<code>` in shadow DOM seems to lose the LFs in some browsers\n doc!.body.appendChild(code);\n const range = doc!.createRange();\n range.selectNodeContents(code);\n selection!.addRange(range);\n doc!.execCommand('copy');\n this._handleCopyButtonFeedbackTooltip(this.copyButtonFeedbackTimeout);\n doc!.body.removeChild(code);\n selection!.removeAllRanges();\n }\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleCopyButtonFeedbackTooltip =\n createHandleCopyButtonFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showCopyButtonFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * Handles `click` event on the expando.\n */\n private _handleClickExpando() {\n this._expanded = !this._expanded;\n this.requestUpdate();\n }\n\n /**\n * Handles change in slot content to determine if the content\n */\n private _handleSlotChange() {\n const { type, _preNode: preNode } = this;\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n if (preNode.getBoundingClientRect().height > 255) {\n this._showExpando = true;\n this.requestUpdate();\n }\n }\n }\n\n /**\n * The `<pre>` element in the shadow DOM.\n */\n @query('pre')\n private _preNode!: HTMLPreElement;\n\n /**\n * An assistive text for screen reader to advice a DOM node is for code snippet.\n */\n @property({ attribute: 'code-assistive-text' })\n codeAssistiveText = 'code-snippet';\n\n /**\n * The context content for the collapse button.\n */\n @property({ attribute: 'collapse-button-text' })\n collapseButtonText = 'Show less';\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = CODE_SNIPPET_COLOR_SCHEME.REGULAR;\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'copy-button-assistive-text' })\n copyButtonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text for the copy button.\n */\n @property({ attribute: 'copy-button-feedback-text' })\n copyButtonFeedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip for the copy button should remain.\n */\n @property({ type: Number, attribute: 'copy-button-feedback-timeout' })\n copyButtonFeedbackTimeout = 2000;\n\n /**\n * The context content for the expand button.\n */\n @property({ attribute: 'expand-button-text' })\n expandButtonText = 'Show more';\n\n /**\n * The type of code snippet.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n codeAssistiveText,\n collapseButtonText,\n copyButtonAssistiveText,\n copyButtonFeedbackText,\n expandButtonText,\n type,\n _expanded: expanded,\n _showCopyButtonFeedback: showCopyButtonFeedback,\n _showExpando: showExpando,\n _handleClickCopyButton: handleClickCopyButton,\n _handleClickExpando: handleClickExpando,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n if (type === CODE_SNIPPET_TYPE.SINGLE) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n `;\n }\n\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n ${!showExpando\n ? undefined\n : renderExpando({\n children: expanded\n ? html`<slot name=\"collapse-button-text\">${collapseButtonText}</slot>`\n : html`<slot name=\"expand-button-text\">${expandButtonText}</slot>`,\n handleClick: handleClickExpando,\n })}\n `;\n }\n\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet ${prefix}--snippet--inline`,\n children: html`<code aria-label=\"${codeAssistiveText}\"><slot></slot></code>`,\n })}\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippet;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2022
4
+ * Copyright IBM Corp. 2019, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"sources":["components/combo-box/combo-box-item.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAKvD;;;;GAIG;AACH,cACM,cAAe,SAAQ,cAAc;IACzC,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,cAAc,CAAC","file":"combo-box-item.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { customElement } from 'lit-element';\nimport BXDropdownItem from '../dropdown/dropdown-item';\nimport styles from './combo-box.scss';\n\nconst { prefix } = settings;\n\n/**\n * Combo box item.\n *\n * @element bx-combo-box-item\n */\n@customElement(`${prefix}-combo-box-item`)\nclass BXComboBoxItem extends BXDropdownItem {\n static styles = styles;\n}\n\nexport default BXComboBoxItem;\n"]}
1
+ {"version":3,"sources":["components/combo-box/combo-box-item.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAKvD;;;;GAIG;AACH,cACM,cAAe,SAAQ,cAAc;IACzC,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,cAAc,CAAC","file":"combo-box-item.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport BXDropdownItem from '../dropdown/dropdown-item';\nimport styles from './combo-box.scss';\n\nconst { prefix } = settings;\n\n/**\n * Combo box item.\n *\n * @element bx-combo-box-item\n */\n@customElement(`${prefix}-combo-box-item`)\nclass BXComboBoxItem extends BXDropdownItem {\n static styles = styles;\n}\n\nexport default BXComboBoxItem;\n"]}
@@ -2,14 +2,14 @@ import _decorate from "@babel/runtime/helpers/esm/decorate";
2
2
  /**
3
3
  * @license
4
4
  *
5
- * Copyright IBM Corp. 2019, 2022
5
+ * Copyright IBM Corp. 2019, 2023
6
6
  *
7
7
  * This source code is licensed under the Apache-2.0 license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
 
11
11
  import settings from 'carbon-components/es/globals/js/settings';
12
- import { customElement } from 'lit-element';
12
+ import { carbonElement as customElement } from '../../globals/decorators/carbon-element';
13
13
  import BXDropdownItem from '../dropdown/dropdown-item';
14
14
  import styles from "././combo-box.css.js";
15
15
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"combo-box-item.js","names":["settings","customElement","BXDropdownItem","styles","prefix","BXComboBoxItem","_decorate","_initialize","_BXDropdownItem","constructor","args","F","d","kind","static","key","value"],"sources":["components/combo-box/combo-box-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { customElement } from 'lit-element';\nimport BXDropdownItem from '../dropdown/dropdown-item';\nimport styles from './combo-box.scss';\n\nconst { prefix } = settings;\n\n/**\n * Combo box item.\n *\n * @element bx-combo-box-item\n */\n@customElement(`${prefix}-combo-box-item`)\nclass BXComboBoxItem extends BXDropdownItem {\n static styles = styles;\n}\n\nexport default BXComboBoxItem;\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,aAAa,QAAQ,aAAa;AAC3C,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,MAAM,MAAM,sBAAkB;AAErC,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMK,cAAc,GAAAC,SAAA,EADnBL,aAAa,CAAE,GAAEG,MAAO,iBAAgB,CAAC,aAAAG,WAAA,EAAAC,eAAA;EAA1C,MACMH,cAAc,SAAAG,eAAA,CAAwB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAE5C;EAAC;IAAAI,CAAA,EAFKN,cAAc;IAAAO,CAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACFb,MAAM;MAAA;IAAA;EAAA;AAAA,GADKD,cAAc;AAI3C,eAAeG,cAAc"}
1
+ {"version":3,"file":"combo-box-item.js","names":["settings","carbonElement","customElement","BXDropdownItem","styles","prefix","BXComboBoxItem","_decorate","_initialize","_BXDropdownItem","constructor","args","F","d","kind","static","key","value"],"sources":["components/combo-box/combo-box-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport BXDropdownItem from '../dropdown/dropdown-item';\nimport styles from './combo-box.scss';\n\nconst { prefix } = settings;\n\n/**\n * Combo box item.\n *\n * @element bx-combo-box-item\n */\n@customElement(`${prefix}-combo-box-item`)\nclass BXComboBoxItem extends BXDropdownItem {\n static styles = styles;\n}\n\nexport default BXComboBoxItem;\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,MAAM,MAAM,sBAAkB;AAErC,MAAM;EAAEC;AAAO,CAAC,GAAGL,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMM,cAAc,GAAAC,SAAA,EADnBL,aAAa,CAAE,GAAEG,MAAO,iBAAgB,CAAC,aAAAG,WAAA,EAAAC,eAAA;EAA1C,MACMH,cAAc,SAAAG,eAAA,CAAwB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAE5C;EAAC;IAAAI,CAAA,EAFKN,cAAc;IAAAO,CAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACFb,MAAM;MAAA;IAAA;EAAA;AAAA,GADKD,cAAc;AAI3C,eAAeG,cAAc"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2022
4
+ * Copyright IBM Corp. 2019, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"sources":["components/combo-box/combo-box.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1C,OAAO,UAAwC,MAAM,sBAAsB,CAAC;AAC5E,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;;;;;;GAYG;AACH,cACM,UAAW,SAAQ,UAAU;IACjC;;OAEG;IACH,SAAS,CAAC,iBAAiB,SAAM;IAEjC,SAAS,CAAC,yBAAyB,UAAS;IAE5C;;OAEG;IAEH,OAAO,CAAC,gBAAgB,CAAoB;IAE5C;;OAEG;IAEH,OAAO,CAAC,SAAS,CAAe;IAEhC;;OAEG;IAEH,OAAO,CAAC,oBAAoB,CAAe;IAE3C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,IAAI,KAAA;IAQrC;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAC3B,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO;IAOV;;OAEG;IACH,SAAS,CAAC,YAAY;IAoCtB,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU;IAQ7C,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa;IAenD;;OAEG;IACH,SAAS,CAAC,8BAA8B;IAcxC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE,cAAc;IAiB9D,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,cAAc;IAiB3D,SAAS,CAAC,qBAAqB,IAAI,cAAc;IAuBjD,SAAS,CAAC,8BAA8B,IAAI,cAAc,GAAG,IAAI;IAgBjE;;OAEG;IAEH,mBAAmB,SAAM;IAEzB;;OAEG;IAEH,UAAU,SAAM;IAEhB;;OAEG;IAEH,WAAW,EAAG,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAEnE,YAAY,CAAC,iBAAiB,KAAA;IAS9B,OAAO;IAQP,MAAM,CAAC,YAAY,cAAsB;IAEzC;;OAEG;IACH,MAAM,KAAK,uBAAuB,WAEjC;IAED;;OAEG;IACH,MAAM,KAAK,YAAY,WAEtB;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,WAE9B;IAED;;;OAGG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED;;;OAGG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,UAAU,CAAC","file":"combo-box.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query, customElement } from 'lit-element';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport BXDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport BXComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\n\nconst { prefix } = settings;\n\n/**\n * Combo box.\n *\n * @element bx-combo-box\n * @fires bx-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires bx-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires bx-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass BXComboBox extends BXDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: BXComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as BXComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n ),\n (item) => {\n (item as BXComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: BXComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: BXComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ),\n (item) => {\n (item as BXComboBoxItem).selected = false;\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n this._assistiveStatusText = this.selectedItemAssistiveText;\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderTriggerContent(): TemplateResult {\n const {\n disabled,\n inputLabel,\n triggerContent,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n return html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n ?disabled=${disabled}\n placeholder=\"${triggerContent}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${inputLabel}\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingTriggerContent(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: BXComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated() {\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default BXComboBox;\n"]}
1
+ {"version":3,"sources":["components/combo-box/combo-box.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1C,OAAO,UAAwC,MAAM,sBAAsB,CAAC;AAC5E,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;;;;;;GAYG;AACH,cACM,UAAW,SAAQ,UAAU;IACjC;;OAEG;IACH,SAAS,CAAC,iBAAiB,SAAM;IAEjC,SAAS,CAAC,yBAAyB,UAAS;IAE5C;;OAEG;IAEH,OAAO,CAAC,gBAAgB,CAAoB;IAE5C;;OAEG;IAEH,OAAO,CAAC,SAAS,CAAe;IAEhC;;OAEG;IAEH,OAAO,CAAC,oBAAoB,CAAe;IAE3C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,IAAI,KAAA;IAQrC;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAC3B,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO;IAOV;;OAEG;IACH,SAAS,CAAC,YAAY;IAoCtB,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU;IAQ7C,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa;IAenD;;OAEG;IACH,SAAS,CAAC,8BAA8B;IAcxC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE,cAAc;IAiB9D,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,cAAc;IAiB3D,SAAS,CAAC,qBAAqB,IAAI,cAAc;IAuBjD,SAAS,CAAC,8BAA8B,IAAI,cAAc,GAAG,IAAI;IAgBjE;;OAEG;IAEH,mBAAmB,SAAM;IAEzB;;OAEG;IAEH,UAAU,SAAM;IAEhB;;OAEG;IAEH,WAAW,EAAG,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAEnE,YAAY,CAAC,iBAAiB,KAAA;IAS9B,OAAO;IAQP,MAAM,CAAC,YAAY,cAAsB;IAEzC;;OAEG;IACH,MAAM,KAAK,uBAAuB,WAEjC;IAED;;OAEG;IACH,MAAM,KAAK,YAAY,WAEtB;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,WAE9B;IAED;;;OAGG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED;;;OAGG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,UAAU,CAAC","file":"combo-box.d.ts","sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query } from 'lit-element';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport BXDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport BXComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\n\nconst { prefix } = settings;\n\n/**\n * Combo box.\n *\n * @element bx-combo-box\n * @fires bx-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires bx-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires bx-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass BXComboBox extends BXDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: BXComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as BXComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n ),\n (item) => {\n (item as BXComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: BXComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: BXComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ),\n (item) => {\n (item as BXComboBoxItem).selected = false;\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n this._assistiveStatusText = this.selectedItemAssistiveText;\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderTriggerContent(): TemplateResult {\n const {\n disabled,\n inputLabel,\n triggerContent,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n return html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n ?disabled=${disabled}\n placeholder=\"${triggerContent}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${inputLabel}\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingTriggerContent(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: BXComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated() {\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default BXComboBox;\n"]}