@carbon/web-components 2.30.0 → 2.31.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 (312) hide show
  1. package/custom-elements.json +103 -0
  2. package/dist/{16-1acbca89.js → 16-0353e7e3.js} +2 -2
  3. package/dist/{16-e99fe18d.js → 16-2363f096.js} +2 -2
  4. package/dist/{16-86aaab1b.js → 16-250e2a70.js} +2 -2
  5. package/dist/{16-ea8d6351.js → 16-41ffb037.js} +2 -2
  6. package/dist/{16-0753806c.js → 16-9631190c.js} +2 -2
  7. package/dist/{16-f1660d25.js → 16-a4bb462e.js} +2 -2
  8. package/dist/{16-9f896de4.js → 16-a6ff8f82.js} +2 -2
  9. package/dist/{16-37a8844b.js → 16-a9f5da53.js} +2 -2
  10. package/dist/{16-7a98a3a1.js → 16-acbb0130.js} +2 -2
  11. package/dist/{16-15766a67.js → 16-c0c2f9cc.js} +2 -2
  12. package/dist/{16-48100f95.js → 16-dbe65920.js} +2 -2
  13. package/dist/{16-0815751b.js → 16-f4def175.js} +2 -2
  14. package/dist/{20-8d9176aa.js → 20-6f209450.js} +2 -2
  15. package/dist/{20-39279d7b.js → 20-cf8682e7.js} +2 -2
  16. package/dist/accordion.min.js +2 -2
  17. package/dist/ai-label.min.js +2 -2
  18. package/dist/ai-skeleton.min.js +2 -2
  19. package/dist/badge-indicator.min.js +2 -2
  20. package/dist/breadcrumb.min.js +2 -2
  21. package/dist/button-8a9ddb9f.js +144 -0
  22. package/dist/{button-set-db868f52.js → button-set-e143c49e.js} +2 -2
  23. package/dist/{button-skeleton-74dbc8c7.js → button-skeleton-eb7300c7.js} +4 -4
  24. package/dist/button.min.js +2 -2
  25. package/dist/carbon-element-716e46b0.js +1 -1
  26. package/dist/chat-button.min.js +2 -2
  27. package/dist/checkbox-2bd29f97.js +118 -0
  28. package/dist/{checkbox-skeleton-85225580.js → checkbox-skeleton-5a0295cb.js} +2 -2
  29. package/dist/checkbox.min.js +2 -2
  30. package/dist/{class-map-0105578d.js → class-map-287e73b5.js} +2 -2
  31. package/dist/code-snippet.min.js +3 -3
  32. package/dist/collection-helpers-eb62fd34.js +1 -1
  33. package/dist/combo-box.min.js +4 -4
  34. package/dist/combo-button.min.js +93 -0
  35. package/dist/content-switcher-item-c66114b8.js +105 -0
  36. package/dist/content-switcher.min.js +2 -2
  37. package/dist/copy-button-2dbb2b01.js +94 -0
  38. package/dist/copy-button.min.js +2 -2
  39. package/dist/data-table.min.js +5 -5
  40. package/dist/date-picker.min.js +3 -3
  41. package/dist/{definition-tooltip-76a6bcfc.js → definition-tooltip-f7e0a735.js} +6 -6
  42. package/dist/defs-c5cfba1b.js +1 -1
  43. package/dist/directive-e2d48b9c.js +1 -1
  44. package/dist/dropdown-item-b80ac457.js +147 -0
  45. package/dist/dropdown.min.js +3 -3
  46. package/dist/file-uploader.min.js +4 -4
  47. package/dist/floating-controller-92da0306.js +1 -1
  48. package/dist/{floating-menu-5ab3e498.js → floating-menu-f19577a8.js} +2 -2
  49. package/dist/floating-menu.min.js +2 -2
  50. package/dist/{focus-b89bb373.js → focus-c9ba63ff.js} +2 -2
  51. package/dist/form-3c2e14c6.js +1 -1
  52. package/dist/form-group.min.js +6 -6
  53. package/dist/form.min.js +2 -2
  54. package/dist/heading.min.js +2 -2
  55. package/dist/host-listener-97e78474.js +1 -1
  56. package/dist/icon-button-6a61637b.js +93 -0
  57. package/dist/icon-button.min.js +2 -2
  58. package/dist/icon-indicator.min.js +2 -2
  59. package/dist/{if-defined-3aa71b6b.js → if-defined-7fb4dd64.js} +2 -2
  60. package/dist/{if-non-empty-a8509432.js → if-non-empty-d0ff50a3.js} +2 -2
  61. package/dist/inline-loading.min.js +5 -5
  62. package/dist/{layer-62205ad5.js → layer-602c2202.js} +2 -2
  63. package/dist/layer.min.js +2 -2
  64. package/dist/{link-540fb662.js → link-76646b17.js} +6 -6
  65. package/dist/link.min.js +2 -2
  66. package/dist/list.min.js +2 -2
  67. package/dist/{loading-c1a7d0e7.js → loading-ae8e2f1b.js} +2 -2
  68. package/dist/{loading-icon-7b5d963f.js → loading-icon-f3d7d50c.js} +4 -4
  69. package/dist/loading.min.js +2 -2
  70. package/dist/menu-button.min.js +2 -2
  71. package/dist/{menu-item-radio-group-2a6c6359.js → menu-item-radio-group-45e474cb.js} +2 -2
  72. package/dist/menu.min.js +2 -2
  73. package/dist/modal-label-f93860bf.js +110 -0
  74. package/dist/modal.min.js +2 -2
  75. package/dist/multi-select.min.js +2 -2
  76. package/dist/notification.min.js +19 -9
  77. package/dist/number-input.min.js +13 -13
  78. package/dist/on-8707857f.js +1 -1
  79. package/dist/overflow-menu.min.js +2 -2
  80. package/dist/pagination.min.js +2 -2
  81. package/dist/popover-content-b41e9612.js +94 -0
  82. package/dist/popover.min.js +2 -2
  83. package/dist/progress-bar.min.js +2 -2
  84. package/dist/progress-indicator.min.js +2 -2
  85. package/dist/{property-92d0c002.js → property-dd1c81a7.js} +2 -2
  86. package/dist/query-602de8af.js +1 -1
  87. package/dist/query-assigned-elements-1bd68a6e.js +1 -1
  88. package/dist/radio-button-skeleton-48a9df2a.js +118 -0
  89. package/dist/radio-button.min.js +2 -2
  90. package/dist/radio-group-manager-853a7e76.js +1 -1
  91. package/dist/search-2e2c46ea.js +108 -0
  92. package/dist/search.min.js +3 -3
  93. package/dist/select-e40e62af.js +148 -0
  94. package/dist/select.min.js +3 -3
  95. package/dist/{settings-acffb3e3.js → settings-c3654bc7.js} +2 -2
  96. package/dist/shape-indicator.min.js +2 -2
  97. package/dist/shared-enums-ccc90ee0.js +1 -1
  98. package/dist/side-panel.min.js +2 -2
  99. package/dist/{skeleton-icon-6b138257.js → skeleton-icon-e81be97a.js} +2 -2
  100. package/dist/skeleton-icon.min.js +2 -2
  101. package/dist/{skeleton-placeholder-f88fcab6.js → skeleton-placeholder-13b648d8.js} +2 -2
  102. package/dist/skeleton-placeholder.min.js +2 -2
  103. package/dist/{skeleton-text-03f78801.js → skeleton-text-ec2217a3.js} +2 -2
  104. package/dist/skeleton-text.min.js +2 -2
  105. package/dist/skip-to-content.min.js +2 -2
  106. package/dist/slider.min.js +4 -4
  107. package/dist/slug.min.js +2 -2
  108. package/dist/{spread-9f8d827a.js → spread-bbf12ceb.js} +2 -2
  109. package/dist/stack.min.js +2 -2
  110. package/dist/{state-670da9a4.js → state-8793f01e.js} +2 -2
  111. package/dist/structured-list.min.js +3 -3
  112. package/dist/tabs.min.js +2 -2
  113. package/dist/tag.min.js +24 -24
  114. package/dist/tearsheet.min.js +9 -9
  115. package/dist/text-input-a947ecef.js +140 -0
  116. package/dist/text-input.min.js +3 -3
  117. package/dist/textarea.min.js +5 -5
  118. package/dist/tile.min.js +2 -2
  119. package/dist/time-picker.min.js +2 -2
  120. package/dist/toggle-tip.min.js +2 -2
  121. package/dist/toggle.min.js +2 -2
  122. package/dist/toggletip-691cdd4c.js +124 -0
  123. package/dist/tooltip-content-8fc23961.js +81 -0
  124. package/dist/tooltip.min.js +2 -2
  125. package/dist/tree-view.min.js +17 -17
  126. package/dist/ui-shell.min.js +5 -5
  127. package/dist/validity-de6fe348.js +1 -1
  128. package/es/components/accordion/accordion.scss.js +1 -1
  129. package/es/components/ai-label/ai-label.scss.js +1 -1
  130. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  131. package/es/components/button/button.scss.js +1 -1
  132. package/es/components/chat-button/chat-button.scss.js +1 -1
  133. package/es/components/checkbox/checkbox.scss.js +1 -1
  134. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  135. package/es/components/combo-box/combo-box.scss.js +1 -1
  136. package/es/components/combo-button/combo-button.d.ts +408 -0
  137. package/es/components/combo-button/combo-button.js +170 -0
  138. package/es/components/combo-button/combo-button.js.map +1 -0
  139. package/es/components/combo-button/combo-button.scss.js +13 -0
  140. package/es/components/combo-button/combo-button.scss.js.map +1 -0
  141. package/es/components/combo-button/defs.d.ts +40 -0
  142. package/es/components/combo-button/defs.js +52 -0
  143. package/es/components/combo-button/defs.js.map +1 -0
  144. package/es/components/combo-button/index.d.ts +7 -0
  145. package/es/components/combo-button/index.js +9 -0
  146. package/es/components/combo-button/index.js.map +1 -0
  147. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  148. package/es/components/copy-button/copy-button.scss.js +1 -1
  149. package/es/components/data-table/data-table.scss.js +1 -1
  150. package/es/components/date-picker/date-picker.scss.js +1 -1
  151. package/es/components/dropdown/dropdown.scss.js +1 -1
  152. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  153. package/es/components/form/form-item.scss.js +1 -1
  154. package/es/components/form-group/form-group.scss.js +1 -1
  155. package/es/components/icon-button/icon-button.scss.js +1 -1
  156. package/es/components/layer/layer.d.ts +1 -0
  157. package/es/components/layer/layer.js +3 -0
  158. package/es/components/layer/layer.js.map +1 -1
  159. package/es/components/layer/layer.scss.js +1 -1
  160. package/es/components/menu-button/menu-button.scss.js +1 -1
  161. package/es/components/modal/modal.js +27 -0
  162. package/es/components/modal/modal.js.map +1 -1
  163. package/es/components/modal/modal.scss.js +1 -1
  164. package/es/components/multi-select/multi-select.scss.js +1 -1
  165. package/es/components/notification/actionable-notification.d.ts +18 -0
  166. package/es/components/notification/actionable-notification.js +130 -4
  167. package/es/components/notification/actionable-notification.js.map +1 -1
  168. package/es/components/notification/actionable-notification.scss.js +1 -1
  169. package/es/components/notification/inline-notification.scss.js +1 -1
  170. package/es/components/notification/toast-notification.scss.js +1 -1
  171. package/es/components/number-input/number-input.scss.js +1 -1
  172. package/es/components/overflow-menu/overflow-menu-body.js +1 -0
  173. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  174. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  175. package/es/components/pagination/pagination.scss.js +1 -1
  176. package/es/components/popover/popover.scss.js +1 -1
  177. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  178. package/es/components/radio-button/radio-button.scss.js +1 -1
  179. package/es/components/search/search.scss.js +1 -1
  180. package/es/components/select/select.scss.js +1 -1
  181. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  182. package/es/components/slider/slider.scss.js +1 -1
  183. package/es/components/slug/slug.scss.js +1 -1
  184. package/es/components/structured-list/structured-list.scss.js +1 -1
  185. package/es/components/tabs/tabs.scss.js +1 -1
  186. package/es/components/tag/dismissible-tag.d.ts +5 -0
  187. package/es/components/tag/dismissible-tag.js +24 -0
  188. package/es/components/tag/dismissible-tag.js.map +1 -1
  189. package/es/components/tag/tag.scss.js +1 -1
  190. package/es/components/text-input/text-input.scss.js +1 -1
  191. package/es/components/textarea/textarea.scss.js +1 -1
  192. package/es/components/tile/tile.scss.js +1 -1
  193. package/es/components/time-picker/time-picker.scss.js +1 -1
  194. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  195. package/es/components/tooltip/tooltip.scss.js +1 -1
  196. package/es/components/tree-view/tree-view.scss.js +1 -1
  197. package/es/components/ui-shell/header.scss.js +1 -1
  198. package/es/components/ui-shell/side-nav.scss.js +1 -1
  199. package/es/globals/settings.d.ts +1 -1
  200. package/es/globals/settings.js +2 -1
  201. package/es/globals/settings.js.map +1 -1
  202. package/es/index.d.ts +1 -0
  203. package/es/index.js +1 -0
  204. package/es/index.js.map +1 -1
  205. package/es-custom/components/accordion/accordion.scss.js +1 -1
  206. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  207. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  208. package/es-custom/components/button/button.scss.js +1 -1
  209. package/es-custom/components/chat-button/chat-button.scss.js +1 -1
  210. package/es-custom/components/checkbox/checkbox.scss.js +1 -1
  211. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  212. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  213. package/es-custom/components/combo-button/combo-button.d.ts +408 -0
  214. package/es-custom/components/combo-button/combo-button.js +170 -0
  215. package/es-custom/components/combo-button/combo-button.js.map +1 -0
  216. package/es-custom/components/combo-button/combo-button.scss.js +13 -0
  217. package/es-custom/components/combo-button/combo-button.scss.js.map +1 -0
  218. package/es-custom/components/combo-button/defs.d.ts +40 -0
  219. package/es-custom/components/combo-button/defs.js +52 -0
  220. package/es-custom/components/combo-button/defs.js.map +1 -0
  221. package/es-custom/components/combo-button/index.d.ts +7 -0
  222. package/es-custom/components/combo-button/index.js +9 -0
  223. package/es-custom/components/combo-button/index.js.map +1 -0
  224. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  225. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  226. package/es-custom/components/data-table/data-table.scss.js +1 -1
  227. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  228. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  229. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  230. package/es-custom/components/form/form-item.scss.js +1 -1
  231. package/es-custom/components/form-group/form-group.scss.js +1 -1
  232. package/es-custom/components/icon-button/icon-button.scss.js +1 -1
  233. package/es-custom/components/layer/layer.d.ts +1 -0
  234. package/es-custom/components/layer/layer.js +3 -0
  235. package/es-custom/components/layer/layer.js.map +1 -1
  236. package/es-custom/components/layer/layer.scss.js +1 -1
  237. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  238. package/es-custom/components/modal/modal.js +27 -0
  239. package/es-custom/components/modal/modal.js.map +1 -1
  240. package/es-custom/components/modal/modal.scss.js +1 -1
  241. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  242. package/es-custom/components/notification/actionable-notification.d.ts +18 -0
  243. package/es-custom/components/notification/actionable-notification.js +130 -4
  244. package/es-custom/components/notification/actionable-notification.js.map +1 -1
  245. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  246. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  247. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  248. package/es-custom/components/number-input/number-input.scss.js +1 -1
  249. package/es-custom/components/overflow-menu/overflow-menu-body.js +1 -0
  250. package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
  251. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  252. package/es-custom/components/pagination/pagination.scss.js +1 -1
  253. package/es-custom/components/popover/popover.scss.js +1 -1
  254. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  255. package/es-custom/components/radio-button/radio-button.scss.js +1 -1
  256. package/es-custom/components/search/search.scss.js +1 -1
  257. package/es-custom/components/select/select.scss.js +1 -1
  258. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  259. package/es-custom/components/slider/slider.scss.js +1 -1
  260. package/es-custom/components/slug/slug.scss.js +1 -1
  261. package/es-custom/components/structured-list/structured-list.scss.js +1 -1
  262. package/es-custom/components/tabs/tabs.scss.js +1 -1
  263. package/es-custom/components/tag/dismissible-tag.d.ts +5 -0
  264. package/es-custom/components/tag/dismissible-tag.js +24 -0
  265. package/es-custom/components/tag/dismissible-tag.js.map +1 -1
  266. package/es-custom/components/tag/tag.scss.js +1 -1
  267. package/es-custom/components/text-input/text-input.scss.js +1 -1
  268. package/es-custom/components/textarea/textarea.scss.js +1 -1
  269. package/es-custom/components/tile/tile.scss.js +1 -1
  270. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  271. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  272. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  273. package/es-custom/components/tree-view/tree-view.scss.js +1 -1
  274. package/es-custom/components/ui-shell/header.scss.js +1 -1
  275. package/es-custom/components/ui-shell/side-nav.scss.js +1 -1
  276. package/es-custom/globals/settings.d.ts +1 -1
  277. package/es-custom/globals/settings.js +2 -1
  278. package/es-custom/globals/settings.js.map +1 -1
  279. package/es-custom/index.d.ts +1 -0
  280. package/es-custom/index.js +1 -0
  281. package/es-custom/index.js.map +1 -1
  282. package/lib/components/combo-button/combo-button.d.ts +408 -0
  283. package/lib/components/combo-button/defs.d.ts +40 -0
  284. package/lib/components/combo-button/defs.js +54 -0
  285. package/lib/components/combo-button/defs.js.map +1 -0
  286. package/lib/components/combo-button/index.d.ts +7 -0
  287. package/lib/components/layer/layer.d.ts +1 -0
  288. package/lib/components/notification/actionable-notification.d.ts +18 -0
  289. package/lib/components/tag/dismissible-tag.d.ts +5 -0
  290. package/lib/globals/settings.d.ts +1 -1
  291. package/lib/globals/settings.js +2 -1
  292. package/lib/globals/settings.js.map +1 -1
  293. package/lib/index.d.ts +1 -0
  294. package/package.json +7 -8
  295. package/scss/components/combo-button/combo-button.scss +22 -0
  296. package/scss/components/layer/layer-story.scss +5 -0
  297. package/scss/components/layer/layer.scss +8 -0
  298. package/scss/components/multi-select/multi-select.scss +20 -1
  299. package/dist/button-16145b2c.js +0 -144
  300. package/dist/checkbox-cef62ad0.js +0 -118
  301. package/dist/content-switcher-item-f2de2bb6.js +0 -105
  302. package/dist/copy-button-ae38a4d8.js +0 -94
  303. package/dist/dropdown-item-67a36b6e.js +0 -147
  304. package/dist/icon-button-95e0ef4f.js +0 -93
  305. package/dist/modal-label-74958279.js +0 -110
  306. package/dist/popover-content-ecd216f7.js +0 -94
  307. package/dist/radio-button-skeleton-4a954abe.js +0 -118
  308. package/dist/search-ef834921.js +0 -108
  309. package/dist/select-46b4d65b.js +0 -148
  310. package/dist/text-input-3c32638b.js +0 -140
  311. package/dist/toggletip-4f3e6a4b.js +0 -124
  312. package/dist/tooltip-content-eac4e54e.js +0 -81
@@ -13,8 +13,8 @@ import InformationSquareFilled20 from '../../icons/information--square--filled/2
13
13
  import WarningFilled20 from '../../icons/warning--filled/20.js';
14
14
  import WarningAltFilled20 from '../../icons/warning--alt--filled/20.js';
15
15
  import { svg, html } from 'lit';
16
- import { property } from 'lit/decorators.js';
17
- import { prefix } from '../../globals/settings.js';
16
+ import { property, query } from 'lit/decorators.js';
17
+ import { prefix, selectorTabbable } from '../../globals/settings.js';
18
18
  import { carbonElement } from '../../globals/decorators/carbon-element.js';
19
19
  import { NOTIFICATION_KIND, NOTIFICATION_TYPE } from './defs.js';
20
20
  import CDSInlineNotification from './inline-notification.js';
@@ -22,6 +22,7 @@ import styles from './actionable-notification.scss.js';
22
22
  import HostListener from '../../globals/decorators/host-listener.js';
23
23
  import HostListenerMixin from '../../globals/mixins/host-listener.js';
24
24
 
25
+ var CDSActionableNotification_1;
25
26
  /**
26
27
  * The default icons, keyed by notification kind.
27
28
  */
@@ -33,6 +34,45 @@ const iconsForKinds = {
33
34
  [NOTIFICATION_KIND.WARNING_ALT]: WarningAltFilled20,
34
35
  [NOTIFICATION_KIND.ERROR]: ErrorFilled20,
35
36
  };
37
+ // eslint-disable-next-line no-bitwise
38
+ const PRECEDING = Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;
39
+ // eslint-disable-next-line no-bitwise
40
+ const FOLLOWING = Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;
41
+ /**
42
+ * Tries to focus on the given elements and bails out if one of them is successful.
43
+ *
44
+ * @param elems The elements.
45
+ * @param reverse `true` to go through the list in reverse order.
46
+ * @returns `true` if one of the attempts is successful, `false` otherwise.
47
+ */
48
+ function tryFocusElems(elems, reverse = false) {
49
+ var _a, _b;
50
+ if (!reverse) {
51
+ for (let i = 0; i < elems.length; ++i) {
52
+ const elem = elems[i];
53
+ elem.focus();
54
+ const active = elem.ownerDocument.activeElement;
55
+ if (active === elem ||
56
+ (active === null || active === void 0 ? void 0 : active.contains(elem)) ||
57
+ ((_a = active === null || active === void 0 ? void 0 : active.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(elem))) {
58
+ return true;
59
+ }
60
+ }
61
+ }
62
+ else {
63
+ for (let i = elems.length - 1; i >= 0; --i) {
64
+ const elem = elems[i];
65
+ elem.focus();
66
+ const active = elem.ownerDocument.activeElement;
67
+ if (active === elem ||
68
+ (active === null || active === void 0 ? void 0 : active.contains(elem)) ||
69
+ ((_b = active === null || active === void 0 ? void 0 : active.shadowRoot) === null || _b === void 0 ? void 0 : _b.contains(elem))) {
70
+ return true;
71
+ }
72
+ }
73
+ }
74
+ return false;
75
+ }
36
76
  /**
37
77
  * Actionable notification.
38
78
  *
@@ -44,7 +84,7 @@ const iconsForKinds = {
44
84
  * Cancellation of this event stops the user-initiated action of closing this notification.
45
85
  * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.
46
86
  */
47
- let CDSActionableNotification = class CDSActionableNotification extends HostListenerMixin(CDSInlineNotification) {
87
+ let CDSActionableNotification = CDSActionableNotification_1 = class CDSActionableNotification extends HostListenerMixin(CDSInlineNotification) {
48
88
  constructor() {
49
89
  super(...arguments);
50
90
  this._type = NOTIFICATION_TYPE.ACTIONABLE;
@@ -74,6 +114,57 @@ let CDSActionableNotification = class CDSActionableNotification extends HostList
74
114
  this.open = false;
75
115
  }
76
116
  };
117
+ this._handleBlur = async ({ target, relatedTarget }) => {
118
+ var _a, _b;
119
+ const { open, _startSentinelNode: startSentinelNode, _endSentinelNode: endSentinelNode, } = this;
120
+ const oldContains = target !== this &&
121
+ (this.contains(target) ||
122
+ (((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(target)) &&
123
+ target !== startSentinelNode &&
124
+ target !== endSentinelNode));
125
+ const currentContains = relatedTarget !== this &&
126
+ (this.contains(relatedTarget) ||
127
+ (((_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.contains(relatedTarget)) &&
128
+ relatedTarget !== startSentinelNode &&
129
+ relatedTarget !== endSentinelNode));
130
+ // Performs focus wrapping if _all_ of the following is met:
131
+ // * This notification is open
132
+ // * Notification role attribute is set to 'alertdialog'
133
+ // * The viewport still has focus
134
+ // * Notification body used to have focus but no longer has focus
135
+ const { selectorTabbable: selectorTabbableForActionableNotification } = this
136
+ .constructor;
137
+ if (open &&
138
+ this.getAttribute('role') === 'alertdialog' &&
139
+ relatedTarget &&
140
+ !(relatedTarget instanceof CDSActionableNotification_1) &&
141
+ oldContains &&
142
+ !currentContains) {
143
+ const comparisonResult = target.compareDocumentPosition(relatedTarget);
144
+ // tabbable elements in Shadow root
145
+ const shadowElems = this.shadowRoot.querySelectorAll(selectorTabbableForActionableNotification);
146
+ // tabbable elements in light DOM
147
+ const lightElems = this.querySelectorAll(selectorTabbableForActionableNotification);
148
+ // eslint-disable-next-line no-bitwise
149
+ if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {
150
+ await this.constructor._delay();
151
+ if (!tryFocusElems(shadowElems, true) &&
152
+ !tryFocusElems(lightElems, true) &&
153
+ relatedTarget !== this) {
154
+ this.focus();
155
+ }
156
+ }
157
+ // eslint-disable-next-line no-bitwise
158
+ else if (relatedTarget === endSentinelNode ||
159
+ comparisonResult & FOLLOWING) {
160
+ await this.constructor._delay();
161
+ if (!tryFocusElems(lightElems) &&
162
+ !tryFocusElems(shadowElems)) {
163
+ this.focus();
164
+ }
165
+ }
166
+ }
167
+ };
77
168
  /**
78
169
  * The caption.
79
170
  */
@@ -145,13 +236,38 @@ let CDSActionableNotification = class CDSActionableNotification extends HostList
145
236
  render() {
146
237
  const { _type: type } = this;
147
238
  return html `
239
+ <a
240
+ id="start-sentinel"
241
+ class="${prefix}--visually-hidden"
242
+ href="javascript:void 0"
243
+ role="navigation"></a>
148
244
  <div class="${prefix}--${type}-notification__details">
149
245
  ${this._renderIcon()} ${this._renderText()}
150
246
  </div>
151
247
  <slot name="action"></slot>
152
248
  ${this._renderButton()}
249
+ <a
250
+ id="end-sentinel"
251
+ class="${prefix}--visually-hidden"
252
+ href="javascript:void 0"
253
+ role="navigation"></a>
153
254
  `;
154
255
  }
256
+ /**
257
+ * @param ms The number of milliseconds.
258
+ * @returns A promise that is resolves after the given milliseconds.
259
+ */
260
+ static _delay(ms = 0) {
261
+ return new Promise((resolve) => {
262
+ setTimeout(resolve, ms);
263
+ });
264
+ }
265
+ /**
266
+ * A selector selecting tabbable nodes.
267
+ */
268
+ static get selectorTabbable() {
269
+ return selectorTabbable;
270
+ }
155
271
  /**
156
272
  * A selector that will return the action button element
157
273
  */
@@ -172,14 +288,24 @@ __decorate([
172
288
  __decorate([
173
289
  property({ type: Boolean, reflect: true, attribute: 'has-focus' })
174
290
  ], CDSActionableNotification.prototype, "hasFocus", void 0);
291
+ __decorate([
292
+ query('#start-sentinel')
293
+ ], CDSActionableNotification.prototype, "_startSentinelNode", void 0);
294
+ __decorate([
295
+ query('#end-sentinel')
296
+ ], CDSActionableNotification.prototype, "_endSentinelNode", void 0);
175
297
  __decorate([
176
298
  HostListener('keydown')
177
299
  // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to
178
300
  ], CDSActionableNotification.prototype, "_handleKeyDown", void 0);
301
+ __decorate([
302
+ HostListener('shadowRoot:focusout')
303
+ // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to
304
+ ], CDSActionableNotification.prototype, "_handleBlur", void 0);
179
305
  __decorate([
180
306
  property()
181
307
  ], CDSActionableNotification.prototype, "caption", void 0);
182
- CDSActionableNotification = __decorate([
308
+ CDSActionableNotification = CDSActionableNotification_1 = __decorate([
183
309
  carbonElement(`${prefix}-actionable-notification`)
184
310
  ], CDSActionableNotification);
185
311
  var CDSActionableNotification$1 = CDSActionableNotification;
@@ -1 +1 @@
1
- {"version":3,"file":"actionable-notification.js","sources":["../../../src/components/notification/actionable-notification.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"actionable-notification.js","sources":["../../../src/components/notification/actionable-notification.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":"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"}