@patternfly/elements 3.0.0 → 3.0.2

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 (365) hide show
  1. package/custom-elements.json +490 -484
  2. package/package.json +1 -1
  3. package/pf-accordion/BaseAccordion.js +2 -1
  4. package/pf-accordion/BaseAccordion.js.map +1 -1
  5. package/pf-accordion/BaseAccordionHeader.js +4 -1
  6. package/pf-accordion/BaseAccordionHeader.js.map +1 -1
  7. package/pf-accordion/BaseAccordionPanel.d.ts +1 -1
  8. package/pf-accordion/pf-accordion-header.d.ts +1 -1
  9. package/pf-accordion/pf-accordion.d.ts +0 -5
  10. package/pf-accordion/pf-accordion.js +0 -5
  11. package/pf-accordion/pf-accordion.js.map +1 -1
  12. package/pf-accordion/test/pf-accordion.e2e.d.ts +1 -0
  13. package/pf-accordion/test/pf-accordion.e2e.js +11 -0
  14. package/pf-accordion/test/pf-accordion.e2e.js.map +1 -0
  15. package/pf-accordion/test/pf-accordion.spec.d.ts +1 -0
  16. package/pf-accordion/test/pf-accordion.spec.js +1222 -0
  17. package/pf-accordion/test/pf-accordion.spec.js.map +1 -0
  18. package/pf-avatar/BaseAvatar.d.ts +1 -1
  19. package/pf-avatar/test/pf-avatar.e2e.d.ts +1 -0
  20. package/pf-avatar/test/pf-avatar.e2e.js +11 -0
  21. package/pf-avatar/test/pf-avatar.e2e.js.map +1 -0
  22. package/pf-avatar/test/pf-avatar.spec.d.ts +1 -0
  23. package/pf-avatar/test/pf-avatar.spec.js +45 -0
  24. package/pf-avatar/test/pf-avatar.spec.js.map +1 -0
  25. package/pf-back-to-top/demo/demo.css +25 -0
  26. package/pf-back-to-top/pf-back-to-top.d.ts +1 -1
  27. package/pf-back-to-top/test/pf-back-to-top.e2e.d.ts +1 -0
  28. package/pf-back-to-top/test/pf-back-to-top.e2e.js +11 -0
  29. package/pf-back-to-top/test/pf-back-to-top.e2e.js.map +1 -0
  30. package/pf-back-to-top/test/pf-back-to-top.spec.d.ts +1 -0
  31. package/pf-back-to-top/test/pf-back-to-top.spec.js +267 -0
  32. package/pf-back-to-top/test/pf-back-to-top.spec.js.map +1 -0
  33. package/pf-background-image/pf-background-image.d.ts +1 -4
  34. package/pf-background-image/pf-background-image.js +1 -4
  35. package/pf-background-image/pf-background-image.js.map +1 -1
  36. package/pf-background-image/test/pf-background-image.e2e.d.ts +1 -0
  37. package/pf-background-image/test/pf-background-image.e2e.js +11 -0
  38. package/pf-background-image/test/pf-background-image.e2e.js.map +1 -0
  39. package/pf-background-image/test/pf-background-image.spec.d.ts +1 -0
  40. package/pf-background-image/test/pf-background-image.spec.js +89 -0
  41. package/pf-background-image/test/pf-background-image.spec.js.map +1 -0
  42. package/pf-badge/BaseBadge.d.ts +1 -1
  43. package/pf-badge/test/pf-badge.e2e.d.ts +1 -0
  44. package/pf-badge/test/pf-badge.e2e.js +11 -0
  45. package/pf-badge/test/pf-badge.e2e.js.map +1 -0
  46. package/pf-badge/test/pf-badge.spec.d.ts +1 -0
  47. package/pf-badge/test/pf-badge.spec.js +52 -0
  48. package/pf-badge/test/pf-badge.spec.js.map +1 -0
  49. package/pf-banner/pf-banner.d.ts +1 -10
  50. package/pf-banner/pf-banner.js +0 -9
  51. package/pf-banner/pf-banner.js.map +1 -1
  52. package/pf-banner/test/pf-banner.e2e.d.ts +1 -0
  53. package/pf-banner/test/pf-banner.e2e.js +11 -0
  54. package/pf-banner/test/pf-banner.e2e.js.map +1 -0
  55. package/pf-banner/test/pf-banner.spec.d.ts +1 -0
  56. package/pf-banner/test/pf-banner.spec.js +81 -0
  57. package/pf-banner/test/pf-banner.spec.js.map +1 -0
  58. package/pf-button/BaseButton.d.ts +7 -2
  59. package/pf-button/BaseButton.js +4 -1
  60. package/pf-button/BaseButton.js.map +1 -1
  61. package/pf-button/pf-button.d.ts +1 -17
  62. package/pf-button/pf-button.js +10 -18
  63. package/pf-button/pf-button.js.map +1 -1
  64. package/pf-button/test/pf-button.e2e.d.ts +1 -0
  65. package/pf-button/test/pf-button.e2e.js +11 -0
  66. package/pf-button/test/pf-button.e2e.js.map +1 -0
  67. package/pf-button/test/pf-button.spec.d.ts +1 -0
  68. package/pf-button/test/pf-button.spec.js +124 -0
  69. package/pf-button/test/pf-button.spec.js.map +1 -0
  70. package/pf-card/BaseCard.d.ts +1 -1
  71. package/pf-card/test/pf-card.e2e.d.ts +1 -0
  72. package/pf-card/test/pf-card.e2e.js +11 -0
  73. package/pf-card/test/pf-card.e2e.js.map +1 -0
  74. package/pf-card/test/pf-card.spec.d.ts +1 -0
  75. package/pf-card/test/pf-card.spec.js +160 -0
  76. package/pf-card/test/pf-card.spec.js.map +1 -0
  77. package/pf-chip/pf-chip-group.d.ts +8 -5
  78. package/pf-chip/pf-chip-group.js +10 -10
  79. package/pf-chip/pf-chip-group.js.map +1 -1
  80. package/pf-chip/pf-chip.d.ts +8 -5
  81. package/pf-chip/pf-chip.js +4 -4
  82. package/pf-chip/pf-chip.js.map +1 -1
  83. package/pf-chip/test/pf-chip-group.spec.d.ts +1 -0
  84. package/pf-chip/test/pf-chip-group.spec.js +189 -0
  85. package/pf-chip/test/pf-chip-group.spec.js.map +1 -0
  86. package/pf-chip/test/pf-chip.e2e.d.ts +1 -0
  87. package/pf-chip/test/pf-chip.e2e.js +11 -0
  88. package/pf-chip/test/pf-chip.e2e.js.map +1 -0
  89. package/pf-chip/test/pf-chip.spec.d.ts +1 -0
  90. package/pf-chip/test/pf-chip.spec.js +116 -0
  91. package/pf-chip/test/pf-chip.spec.js.map +1 -0
  92. package/pf-clipboard-copy/pf-clipboard-copy.css +4 -0
  93. package/pf-clipboard-copy/pf-clipboard-copy.d.ts +8 -3
  94. package/pf-clipboard-copy/pf-clipboard-copy.js +6 -4
  95. package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
  96. package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.d.ts +1 -0
  97. package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js +11 -0
  98. package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js.map +1 -0
  99. package/pf-clipboard-copy/test/pf-clipboard-copy.spec.d.ts +1 -0
  100. package/pf-clipboard-copy/test/pf-clipboard-copy.spec.js +103 -0
  101. package/pf-clipboard-copy/test/pf-clipboard-copy.spec.js.map +1 -0
  102. package/pf-code-block/BaseCodeBlock.js +2 -2
  103. package/pf-code-block/BaseCodeBlock.js.map +1 -1
  104. package/pf-code-block/pf-code-block.d.ts +1 -1
  105. package/pf-code-block/test/pf-code-block.e2e.d.ts +1 -0
  106. package/pf-code-block/test/pf-code-block.e2e.js +11 -0
  107. package/pf-code-block/test/pf-code-block.e2e.js.map +1 -0
  108. package/pf-code-block/test/pf-code-block.spec.d.ts +1 -0
  109. package/pf-code-block/test/pf-code-block.spec.js +89 -0
  110. package/pf-code-block/test/pf-code-block.spec.js.map +1 -0
  111. package/pf-dropdown/pf-dropdown-group.d.ts +1 -1
  112. package/pf-dropdown/pf-dropdown-group.js +4 -1
  113. package/pf-dropdown/pf-dropdown-group.js.map +1 -1
  114. package/pf-dropdown/pf-dropdown-item.d.ts +1 -2
  115. package/pf-dropdown/pf-dropdown-item.js +4 -2
  116. package/pf-dropdown/pf-dropdown-item.js.map +1 -1
  117. package/pf-dropdown/pf-dropdown-menu.d.ts +1 -2
  118. package/pf-dropdown/pf-dropdown-menu.js +8 -6
  119. package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
  120. package/pf-dropdown/pf-dropdown.d.ts +8 -6
  121. package/pf-dropdown/pf-dropdown.js +11 -11
  122. package/pf-dropdown/pf-dropdown.js.map +1 -1
  123. package/pf-dropdown/test/pf-dropdown.e2e.d.ts +1 -0
  124. package/pf-dropdown/test/pf-dropdown.e2e.js +11 -0
  125. package/pf-dropdown/test/pf-dropdown.e2e.js.map +1 -0
  126. package/pf-dropdown/test/pf-dropdown.spec.d.ts +1 -0
  127. package/pf-dropdown/test/pf-dropdown.spec.js +129 -0
  128. package/pf-dropdown/test/pf-dropdown.spec.js.map +1 -0
  129. package/pf-icon/BaseIcon.d.ts +1 -2
  130. package/pf-icon/BaseIcon.js +3 -4
  131. package/pf-icon/BaseIcon.js.map +1 -1
  132. package/pf-icon/demo/icons/rh/boba-tea.js +5 -0
  133. package/pf-icon/demo/icons/rh/lifecycle.js +3 -0
  134. package/pf-icon/test/pf-icon.e2e.d.ts +1 -0
  135. package/pf-icon/test/pf-icon.e2e.js +11 -0
  136. package/pf-icon/test/pf-icon.e2e.js.map +1 -0
  137. package/pf-icon/test/pf-icon.spec.d.ts +1 -0
  138. package/pf-icon/test/pf-icon.spec.js +130 -0
  139. package/pf-icon/test/pf-icon.spec.js.map +1 -0
  140. package/pf-icon/test/rh-icon-aed.js +2 -0
  141. package/pf-icon/test/rh-icon-api.js +2 -0
  142. package/pf-icon/test/rh-icon-atom.js +2 -0
  143. package/pf-icon/test/rh-icon-bike.js +2 -0
  144. package/pf-jump-links/pf-jump-links-item.d.ts +8 -2
  145. package/pf-jump-links/pf-jump-links-item.js +4 -1
  146. package/pf-jump-links/pf-jump-links-item.js.map +1 -1
  147. package/pf-jump-links/pf-jump-links-list.d.ts +1 -1
  148. package/pf-jump-links/pf-jump-links.d.ts +1 -7
  149. package/pf-jump-links/pf-jump-links.js +1 -7
  150. package/pf-jump-links/pf-jump-links.js.map +1 -1
  151. package/pf-jump-links/test/pf-jump-links.e2e.d.ts +1 -0
  152. package/pf-jump-links/test/pf-jump-links.e2e.js +11 -0
  153. package/pf-jump-links/test/pf-jump-links.e2e.js.map +1 -0
  154. package/pf-jump-links/test/pf-jump-links.spec.d.ts +1 -0
  155. package/pf-jump-links/test/pf-jump-links.spec.js +85 -0
  156. package/pf-jump-links/test/pf-jump-links.spec.js.map +1 -0
  157. package/pf-label/BaseLabel.d.ts +1 -1
  158. package/pf-label/pf-label.d.ts +10 -24
  159. package/pf-label/pf-label.js +4 -21
  160. package/pf-label/pf-label.js.map +1 -1
  161. package/pf-label/test/pf-label.e2e.d.ts +1 -0
  162. package/pf-label/test/pf-label.e2e.js +11 -0
  163. package/pf-label/test/pf-label.e2e.js.map +1 -0
  164. package/pf-label/test/pf-label.spec.d.ts +1 -0
  165. package/pf-label/test/pf-label.spec.js +111 -0
  166. package/pf-label/test/pf-label.spec.js.map +1 -0
  167. package/pf-modal/pf-modal.d.ts +1 -6
  168. package/pf-modal/pf-modal.js +6 -8
  169. package/pf-modal/pf-modal.js.map +1 -1
  170. package/pf-modal/test/pf-modal.e2e.d.ts +1 -0
  171. package/pf-modal/test/pf-modal.e2e.js +13 -0
  172. package/pf-modal/test/pf-modal.e2e.js.map +1 -0
  173. package/pf-modal/test/pf-modal.spec.d.ts +1 -0
  174. package/pf-modal/test/pf-modal.spec.js +197 -0
  175. package/pf-modal/test/pf-modal.spec.js.map +1 -0
  176. package/pf-panel/pf-panel.d.ts +1 -1
  177. package/pf-panel/test/pf-panel.e2e.d.ts +1 -0
  178. package/pf-panel/test/pf-panel.e2e.js +11 -0
  179. package/pf-panel/test/pf-panel.e2e.js.map +1 -0
  180. package/pf-panel/test/pf-panel.spec.d.ts +1 -0
  181. package/pf-panel/test/pf-panel.spec.js +22 -0
  182. package/pf-panel/test/pf-panel.spec.js.map +1 -0
  183. package/pf-popover/pf-popover.d.ts +1 -5
  184. package/pf-popover/pf-popover.js +12 -7
  185. package/pf-popover/pf-popover.js.map +1 -1
  186. package/pf-popover/test/pf-popover.e2e.d.ts +1 -0
  187. package/pf-popover/test/pf-popover.e2e.js +11 -0
  188. package/pf-popover/test/pf-popover.e2e.js.map +1 -0
  189. package/pf-popover/test/pf-popover.spec.d.ts +1 -0
  190. package/pf-popover/test/pf-popover.spec.js +233 -0
  191. package/pf-popover/test/pf-popover.spec.js.map +1 -0
  192. package/pf-progress/demo/kitchen-sink.css +4 -0
  193. package/pf-progress/pf-progress.d.ts +1 -22
  194. package/pf-progress/pf-progress.js +1 -22
  195. package/pf-progress/pf-progress.js.map +1 -1
  196. package/pf-progress/test/pf-progress.e2e.d.ts +1 -0
  197. package/pf-progress/test/pf-progress.e2e.js +11 -0
  198. package/pf-progress/test/pf-progress.e2e.js.map +1 -0
  199. package/pf-progress/test/pf-progress.spec.d.ts +1 -0
  200. package/pf-progress/test/pf-progress.spec.js +45 -0
  201. package/pf-progress/test/pf-progress.spec.js.map +1 -0
  202. package/pf-progress-stepper/pf-progress-step.d.ts +1 -1
  203. package/pf-progress-stepper/pf-progress-stepper.d.ts +1 -1
  204. package/pf-progress-stepper/test/pf-progress-stepper.e2e.d.ts +1 -0
  205. package/pf-progress-stepper/test/pf-progress-stepper.e2e.js +11 -0
  206. package/pf-progress-stepper/test/pf-progress-stepper.e2e.js.map +1 -0
  207. package/pf-progress-stepper/test/pf-progress-stepper.spec.d.ts +1 -0
  208. package/pf-progress-stepper/test/pf-progress-stepper.spec.js +18 -0
  209. package/pf-progress-stepper/test/pf-progress-stepper.spec.js.map +1 -0
  210. package/pf-select/pf-option-group.d.ts +1 -1
  211. package/pf-select/pf-option-group.js +2 -0
  212. package/pf-select/pf-option-group.js.map +1 -1
  213. package/pf-select/pf-option.d.ts +1 -2
  214. package/pf-select/pf-option.js +3 -4
  215. package/pf-select/pf-option.js.map +1 -1
  216. package/pf-select/pf-select.d.ts +8 -3
  217. package/pf-select/pf-select.js +51 -21
  218. package/pf-select/pf-select.js.map +1 -1
  219. package/pf-select/test/pf-select.e2e.d.ts +1 -0
  220. package/pf-select/test/pf-select.e2e.js +11 -0
  221. package/pf-select/test/pf-select.e2e.js.map +1 -0
  222. package/pf-select/test/pf-select.spec.d.ts +1 -0
  223. package/pf-select/test/pf-select.spec.js +866 -0
  224. package/pf-select/test/pf-select.spec.js.map +1 -0
  225. package/pf-spinner/BaseSpinner.d.ts +1 -2
  226. package/pf-spinner/BaseSpinner.js +2 -4
  227. package/pf-spinner/BaseSpinner.js.map +1 -1
  228. package/pf-spinner/pf-spinner.d.ts +2 -2
  229. package/pf-spinner/pf-spinner.js +8 -1
  230. package/pf-spinner/pf-spinner.js.map +1 -1
  231. package/pf-spinner/test/pf-spinner.e2e.d.ts +1 -0
  232. package/pf-spinner/test/pf-spinner.e2e.js +11 -0
  233. package/pf-spinner/test/pf-spinner.e2e.js.map +1 -0
  234. package/pf-spinner/test/pf-spinner.spec.d.ts +1 -0
  235. package/pf-spinner/test/pf-spinner.spec.js +64 -0
  236. package/pf-spinner/test/pf-spinner.spec.js.map +1 -0
  237. package/pf-switch/BaseSwitch.d.ts +1 -1
  238. package/pf-switch/BaseSwitch.js +3 -3
  239. package/pf-switch/BaseSwitch.js.map +1 -1
  240. package/pf-switch/test/pf-switch.e2e.d.ts +1 -0
  241. package/pf-switch/test/pf-switch.e2e.js +11 -0
  242. package/pf-switch/test/pf-switch.e2e.js.map +1 -0
  243. package/pf-switch/test/pf-switch.spec.d.ts +1 -0
  244. package/pf-switch/test/pf-switch.spec.js +191 -0
  245. package/pf-switch/test/pf-switch.spec.js.map +1 -0
  246. package/pf-table/pf-caption.d.ts +1 -1
  247. package/pf-table/pf-table.d.ts +1 -3
  248. package/pf-table/pf-table.js +2 -4
  249. package/pf-table/pf-table.js.map +1 -1
  250. package/pf-table/pf-tbody.d.ts +1 -1
  251. package/pf-table/pf-td.d.ts +1 -1
  252. package/pf-table/pf-th.d.ts +1 -1
  253. package/pf-table/pf-th.js +3 -3
  254. package/pf-table/pf-th.js.map +1 -1
  255. package/pf-table/pf-thead.d.ts +1 -1
  256. package/pf-table/pf-tr.d.ts +1 -1
  257. package/pf-table/pf-tr.js +4 -4
  258. package/pf-table/pf-tr.js.map +1 -1
  259. package/pf-table/test/pf-table.e2e.d.ts +1 -0
  260. package/pf-table/test/pf-table.e2e.js +11 -0
  261. package/pf-table/test/pf-table.e2e.js.map +1 -0
  262. package/pf-table/test/pf-table.spec.d.ts +1 -0
  263. package/pf-table/test/pf-table.spec.js +17 -0
  264. package/pf-table/test/pf-table.spec.js.map +1 -0
  265. package/pf-tabs/BaseTab.d.ts +2 -2
  266. package/pf-tabs/BaseTab.js +4 -1
  267. package/pf-tabs/BaseTab.js.map +1 -1
  268. package/pf-tabs/BaseTabPanel.d.ts +1 -1
  269. package/pf-tabs/BaseTabs.d.ts +1 -3
  270. package/pf-tabs/BaseTabs.js +11 -12
  271. package/pf-tabs/BaseTabs.js.map +1 -1
  272. package/pf-tabs/pf-tab-panel.d.ts +1 -1
  273. package/pf-tabs/pf-tab.d.ts +1 -17
  274. package/pf-tabs/pf-tab.js +0 -16
  275. package/pf-tabs/pf-tab.js.map +1 -1
  276. package/pf-tabs/pf-tabs.d.ts +1 -12
  277. package/pf-tabs/pf-tabs.js +2 -13
  278. package/pf-tabs/pf-tabs.js.map +1 -1
  279. package/pf-tabs/test/pf-tabs.e2e.d.ts +1 -0
  280. package/pf-tabs/test/pf-tabs.e2e.js +13 -0
  281. package/pf-tabs/test/pf-tabs.e2e.js.map +1 -0
  282. package/pf-tabs/test/pf-tabs.spec.d.ts +1 -0
  283. package/pf-tabs/test/pf-tabs.spec.js +285 -0
  284. package/pf-tabs/test/pf-tabs.spec.js.map +1 -0
  285. package/pf-text-area/pf-text-area.d.ts +1 -2
  286. package/pf-text-area/pf-text-area.js +5 -5
  287. package/pf-text-area/pf-text-area.js.map +1 -1
  288. package/pf-text-area/test/pf-text-area.e2e.d.ts +1 -0
  289. package/pf-text-area/test/pf-text-area.e2e.js +11 -0
  290. package/pf-text-area/test/pf-text-area.e2e.js.map +1 -0
  291. package/pf-text-area/test/pf-text-area.spec.d.ts +1 -0
  292. package/pf-text-area/test/pf-text-area.spec.js +89 -0
  293. package/pf-text-area/test/pf-text-area.spec.js.map +1 -0
  294. package/pf-text-input/demo/demo.css +6 -0
  295. package/pf-text-input/pf-text-input.d.ts +8 -3
  296. package/pf-text-input/pf-text-input.js +4 -2
  297. package/pf-text-input/pf-text-input.js.map +1 -1
  298. package/pf-text-input/test/pf-text-input.e2e.d.ts +1 -0
  299. package/pf-text-input/test/pf-text-input.e2e.js +11 -0
  300. package/pf-text-input/test/pf-text-input.e2e.js.map +1 -0
  301. package/pf-text-input/test/pf-text-input.spec.d.ts +1 -0
  302. package/pf-text-input/test/pf-text-input.spec.js +20 -0
  303. package/pf-text-input/test/pf-text-input.spec.js.map +1 -0
  304. package/pf-tile/BaseTile.d.ts +1 -1
  305. package/pf-tile/pf-tile.d.ts +0 -12
  306. package/pf-tile/pf-tile.js +0 -12
  307. package/pf-tile/pf-tile.js.map +1 -1
  308. package/pf-tile/test/pf-tile.e2e.d.ts +1 -0
  309. package/pf-tile/test/pf-tile.e2e.js +11 -0
  310. package/pf-tile/test/pf-tile.e2e.js.map +1 -0
  311. package/pf-tile/test/pf-tile.spec.d.ts +1 -0
  312. package/pf-tile/test/pf-tile.spec.js +54 -0
  313. package/pf-tile/test/pf-tile.spec.js.map +1 -0
  314. package/pf-timestamp/pf-timestamp.d.ts +1 -1
  315. package/pf-timestamp/pf-timestamp.js +5 -1
  316. package/pf-timestamp/pf-timestamp.js.map +1 -1
  317. package/pf-timestamp/test/pf-timestamp.e2e.d.ts +1 -0
  318. package/pf-timestamp/test/pf-timestamp.e2e.js +12 -0
  319. package/pf-timestamp/test/pf-timestamp.e2e.js.map +1 -0
  320. package/pf-timestamp/test/pf-timestamp.spec.d.ts +1 -0
  321. package/pf-timestamp/test/pf-timestamp.spec.js +156 -0
  322. package/pf-timestamp/test/pf-timestamp.spec.js.map +1 -0
  323. package/pf-tooltip/BaseTooltip.d.ts +1 -1
  324. package/pf-tooltip/pf-tooltip.d.ts +1 -4
  325. package/pf-tooltip/pf-tooltip.js +6 -7
  326. package/pf-tooltip/pf-tooltip.js.map +1 -1
  327. package/pf-tooltip/test/pf-tooltip.e2e.d.ts +1 -0
  328. package/pf-tooltip/test/pf-tooltip.e2e.js +11 -0
  329. package/pf-tooltip/test/pf-tooltip.e2e.js.map +1 -0
  330. package/pf-tooltip/test/pf-tooltip.spec.d.ts +1 -0
  331. package/pf-tooltip/test/pf-tooltip.spec.js +53 -0
  332. package/pf-tooltip/test/pf-tooltip.spec.js.map +1 -0
  333. package/pfe.min.js +273 -266
  334. package/pfe.min.js.map +3 -3
  335. package/pf-accordion/README.md +0 -44
  336. package/pf-avatar/README.md +0 -31
  337. package/pf-back-to-top/README.md +0 -32
  338. package/pf-background-image/README.md +0 -37
  339. package/pf-badge/README.md +0 -57
  340. package/pf-banner/README.md +0 -60
  341. package/pf-button/README.md +0 -61
  342. package/pf-card/README.md +0 -34
  343. package/pf-chip/README.md +0 -20
  344. package/pf-clipboard-copy/README.md +0 -8
  345. package/pf-code-block/README.md +0 -77
  346. package/pf-dropdown/README.md +0 -46
  347. package/pf-icon/README.md +0 -86
  348. package/pf-icon/icons/fab/readme.svg +0 -1
  349. package/pf-jump-links/README.md +0 -27
  350. package/pf-label/README.md +0 -61
  351. package/pf-modal/README.md +0 -63
  352. package/pf-panel/README.md +0 -10
  353. package/pf-popover/README.md +0 -48
  354. package/pf-progress/README.md +0 -33
  355. package/pf-progress-stepper/README.md +0 -41
  356. package/pf-select/README.md +0 -21
  357. package/pf-spinner/README.md +0 -46
  358. package/pf-switch/README.md +0 -91
  359. package/pf-table/README.md +0 -43
  360. package/pf-tabs/README.md +0 -40
  361. package/pf-text-area/README.md +0 -11
  362. package/pf-text-input/README.md +0 -9
  363. package/pf-tile/README.md +0 -12
  364. package/pf-timestamp/README.md +0 -64
  365. package/pf-tooltip/README.md +0 -64
@@ -1 +1 @@
1
- {"version":3,"file":"pf-chip-group.js","sourceRoot":"","sources":["pf-chip-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { query } from 'lit/decorators/query.js';\nimport { queryAssignedNodes } from 'lit/decorators/query-assigned-nodes.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { RovingTabindexController } from '@patternfly/pfe-core/controllers/roving-tabindex-controller.js';\n\nimport { PfChip, PfChipRemoveEvent } from './pf-chip.js';\n\nimport styles from './pf-chip-group.css';\nimport shared from './pf-chip-shared.css';\n\nexport class PfChipGroupExpandEvent extends Event {\n constructor() {\n super('expand', { bubbles: true, cancelable: true });\n }\n}\n\nexport class PfChipGroupRemoveEvent extends Event {\n constructor() {\n super('remove', { bubbles: true, cancelable: true });\n }\n}\n\n/**\n * `${`\n * **WS** (_>= 0x_)\n * `remaining`\n * **WS** (_>= 0x_)\n * `}`\n */\nconst REMAINING_RE = /\\$\\{\\s*remaining\\s*\\}/g;\n\n/**\n * A **chip group** is a collection of chips that can be grouped by category and used to represent one or more values assigned to a single attribute. When value of numChips is exceeded, additional chips will be hidden using an overflow chip.\n *\n * @fires expand - Fires when chip group is expanded to show all chips\n * @fires remove - Fires when chip group is closed/removed\n *\n * @slot category-name\n * Category name text for chip group category. If this prop is supplied chip group with have a label and category styling applied\n *\n * @slot\n * Should be <Chip> elements.\n */\n@customElement('pf-chip-group')\nexport class PfChipGroup extends LitElement {\n static readonly styles = [shared, styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n /**\n * Accessible label for chip group that does not have a category name\n */\n @property({ attribute: 'accessible-label', type: String }) accessibleLabel = '';\n\n /**\n * Accessible label for close button\n */\n @property({ attribute: 'accessible-close-label', type: String }) accessibleCloseLabel = 'Close';\n\n /**\n * Customizeable \"more\" template string. Use variable \"${remaining}\" for overflow chip count.\n */\n @property({ attribute: 'collapsed-text', type: String }) collapsedText = '${remaining} more';\n\n /**\n * Customizable \"show less\" text string.\n */\n @property({ attribute: 'expanded-text', type: String }) expandedText = 'show less';\n\n /**\n * Set number of chips to show before overflow\n */\n @property({ attribute: 'num-chips', type: Number }) numChips = 3;\n\n /**\n * Flag indicating if overflow chips are visible\n */\n @property({ reflect: true, type: Boolean }) open = false;\n\n /**\n * Flag if chip group can be closed\n */\n @property({ reflect: true, type: Boolean }) closeable = false;\n\n @query('#overflow') private _overflowChip?: HTMLButtonElement;\n\n @query('#close-button') private _button?: HTMLButtonElement;\n\n @queryAssignedNodes({ slot: 'category-name', flatten: true }) private _categorySlotted?: Node[];\n\n #chips: PfChip[] = [];\n\n #buttons: HTMLElement[] = [];\n\n #tabindex = new RovingTabindexController(this, {\n getItems: () => this.#buttons.filter(x => !x.hidden),\n });\n\n constructor() {\n super();\n this.addEventListener('remove', this.#onChipRemoved);\n }\n\n render() {\n const empty = this.#chips.length <= 0;\n return html`\n <div id=\"outer\"\n class=\"${classMap({ 'has-category': this.hasCategory, empty })}\"\n role=\"toolbar\">\n <slot id=\"category\"\n name=\"category-name\"\n @slotchange=\"${this.#onSlotchange}\">\n <span class=\"offscreen\"\n ?hidden=\"${!this.accessibleLabel}\">${this.accessibleLabel ?? ''}</span>\n </slot>\n <slot id=\"chips\"\n @slotchange=\"${this.#onSlotchange}\"\n @remove=\"${this.#updateChips}\"\n ></slot>\n <pf-chip id=\"overflow\"\n aria-controls=\"chips\"\n overflow-chip\n ?hidden=\"${this.remaining < 1}\"\n @click=\"${this.#onMoreClick}\"\n >${this.remaining < 1 ? ''\n : this.open ? this.expandedText\n : this.collapsedText.replace(REMAINING_RE, this.remaining.toString())}</pf-chip>\n <pf-button id=\"close-button\"\n plain\n icon=\"times-circle\"\n icon-set=\"fas\"\n label=\"${this.accessibleCloseLabel}\"\n aria-describedby=\"category\"\n ?hidden=\"${!this.closeable}\"\n @click=\"${this.#onCloseClick}\"></pf-button>\n </div>\n `;\n }\n\n override updated(changed: PropertyValues<this>) {\n if (changed.has('accessibleCloseLabel') ||\n changed.has('numChips') ||\n changed.has('closeable') ||\n changed.has('open')) {\n this.#handleChipsChanged();\n }\n }\n\n /**\n * active chip that receives focus when group receives focus\n */\n get activeChip() {\n const button = this.#tabindex.activeItem as HTMLElement;\n const shadow = button?.getRootNode() as ShadowRoot;\n return shadow?.host as PfChip;\n }\n\n set activeChip(chip: HTMLElement) {\n const button = chip.shadowRoot?.querySelector('button') as HTMLElement;\n this.#tabindex.setActiveItem(button);\n }\n\n /**\n * whether or not group has a category\n */\n get hasCategory() {\n return (this._categorySlotted || []).length > 0;\n }\n\n get remaining() {\n return this.#chips.length - this.numChips;\n }\n\n /**\n * updates chips when they change\n */\n #handleChipsChanged() {\n if (this.#chips.length > 0) {\n const oldButtons = [...(this.#tabindex.items || [])];\n const max = this.open ? this.#chips.length : Math.min(this.#chips.length, this.numChips);\n this.#buttons = [\n ...this.#chips.slice(0, max),\n this._overflowChip,\n this._button,\n ].filter((x): x is PfChip => !!x);\n if (oldButtons.length !== this.#buttons.length ||\n !oldButtons.every((element, index) => element === this.#buttons[index])) {\n this.#tabindex.updateItems();\n }\n this.#updateOverflow();\n }\n }\n\n /**\n * handles a chip's `chip-remove` event\n */\n async #onChipRemoved(event: Event) {\n if (event instanceof PfChipRemoveEvent) {\n await this.#updateChips();\n await this.updateComplete;\n this.#tabindex.setActiveItem(this.#tabindex.activeItem);\n }\n }\n\n /**\n * handles chip group close\n */\n #onCloseClick() {\n this.dispatchEvent(new PfChipGroupRemoveEvent());\n this.remove();\n }\n\n /**\n * handles overflow chip's click event\n */\n async #onMoreClick(event: Event) {\n event.stopPropagation();\n this.open = !this.open;\n await this.updateComplete;\n this.#handleChipsChanged();\n if (this._overflowChip) {\n this.focusOnChip(this._overflowChip);\n }\n this.dispatchEvent(new PfChipGroupExpandEvent());\n }\n\n #onSlotchange() {\n this.#updateChips();\n this.requestUpdate();\n }\n\n /**\n * updates which chips variable\n */\n async #updateChips() {\n await this.updateComplete;\n this.#chips = [...this.querySelectorAll<PfChip>('pf-chip:not([slot]):not([overflow-chip])')];\n this.requestUpdate();\n await this.updateComplete;\n this.#tabindex.updateItems(this.#chips);\n this.#handleChipsChanged();\n return this.#chips;\n }\n\n /**\n * updates which chips are hidden\n */\n #updateOverflow() {\n this.#chips.forEach((chip, i) => {\n chip.accessibleCloseLabel = this.accessibleCloseLabel;\n const overflowHidden = i >= this.numChips && !this.open;\n chip.hidden = overflowHidden;\n });\n }\n\n /**\n * Activates the specified chip and sets focus on it\n */\n focusOnChip(chip: HTMLElement) {\n this.#tabindex.setActiveItem(chip);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-chip-group': PfChipGroup;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-chip-group.js","sourceRoot":"","sources":["pf-chip-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { query } from 'lit/decorators/query.js';\nimport { queryAssignedNodes } from 'lit/decorators/query-assigned-nodes.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { RovingTabindexController } from '@patternfly/pfe-core/controllers/roving-tabindex-controller.js';\n\nimport { PfChip, PfChipRemoveEvent } from './pf-chip.js';\n\nimport styles from './pf-chip-group.css';\nimport shared from './pf-chip-shared.css';\n\nexport class PfChipGroupExpandEvent extends Event {\n constructor() {\n super('expand', { bubbles: true, cancelable: true });\n }\n}\n\nexport class PfChipGroupRemoveEvent extends Event {\n constructor() {\n super('remove', { bubbles: true, cancelable: true });\n }\n}\n\n/**\n * `${`\n * **WS** (_>= 0x_)\n * `remaining`\n * **WS** (_>= 0x_)\n * `}`\n */\nconst REMAINING_RE = /\\$\\{\\s*remaining\\s*\\}/g;\n\n/**\n * A **chip group** is a collection of chips that can be grouped by category and used to represent one or more values assigned to a single attribute. When value of numChips is exceeded, additional chips will be hidden using an overflow chip.\n * @fires expand - Fires when chip group is expanded to show all chips\n * @fires remove - Fires when chip group is closed/removed\n * @slot category-name\n * Category name text for chip group category. If this prop is supplied chip group with have a label and category styling applied\n * @slot\n * Should be <Chip> elements.\n */\n@customElement('pf-chip-group')\nexport class PfChipGroup extends LitElement {\n static readonly styles = [shared, styles];\n\n static override readonly shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Accessible label for chip group that does not have a category name\n */\n @property({ attribute: 'accessible-label', type: String }) accessibleLabel = '';\n\n /**\n * Accessible label for close button\n */\n @property({ attribute: 'accessible-close-label', type: String }) accessibleCloseLabel = 'Close';\n\n /**\n * Customizeable \"more\" template string. Use variable \"${remaining}\" for overflow chip count.\n */\n @property({ attribute: 'collapsed-text', type: String }) collapsedText = '${remaining} more';\n\n /**\n * Customizable \"show less\" text string.\n */\n @property({ attribute: 'expanded-text', type: String }) expandedText = 'show less';\n\n /**\n * Set number of chips to show before overflow\n */\n @property({ attribute: 'num-chips', type: Number }) numChips = 3;\n\n /**\n * Flag indicating if overflow chips are visible\n */\n @property({ reflect: true, type: Boolean }) open = false;\n\n /**\n * Flag if chip group can be closed\n */\n @property({ reflect: true, type: Boolean }) closeable = false;\n\n @query('#overflow') private _overflowChip?: HTMLButtonElement;\n\n @query('#close-button') private _button?: HTMLButtonElement;\n\n @queryAssignedNodes({ slot: 'category-name', flatten: true }) private _categorySlotted?: Node[];\n\n #chips: PfChip[] = [];\n\n #buttons: HTMLElement[] = [];\n\n #tabindex = new RovingTabindexController(this, {\n getItems: () => this.#buttons.filter(x => !x.hidden),\n });\n\n constructor() {\n super();\n this.addEventListener('remove', this.#onChipRemoved);\n }\n\n render() {\n const empty = this.#chips.length <= 0;\n return html`\n <div id=\"outer\"\n class=\"${classMap({ 'has-category': this.hasCategory, empty })}\"\n role=\"toolbar\">\n <slot id=\"category\"\n name=\"category-name\"\n @slotchange=\"${this.#onSlotchange}\">\n <span class=\"offscreen\"\n ?hidden=\"${!this.accessibleLabel}\">${this.accessibleLabel ?? ''}</span>\n </slot>\n <slot id=\"chips\"\n @slotchange=\"${this.#onSlotchange}\"\n @remove=\"${this.#updateChips}\"\n ></slot>\n <pf-chip id=\"overflow\"\n aria-controls=\"chips\"\n overflow-chip\n ?hidden=\"${this.remaining < 1}\"\n @click=\"${this.#onMoreClick}\"\n >${this.remaining < 1 ? ''\n : this.open ? this.expandedText\n : this.collapsedText.replace(REMAINING_RE, this.remaining.toString())}</pf-chip>\n <pf-button id=\"close-button\"\n plain\n icon=\"times-circle\"\n icon-set=\"fas\"\n label=\"${this.accessibleCloseLabel}\"\n aria-describedby=\"category\"\n ?hidden=\"${!this.closeable}\"\n @click=\"${this.#onCloseClick}\"></pf-button>\n </div>\n `;\n }\n\n override updated(changed: PropertyValues<this>) {\n if (changed.has('accessibleCloseLabel')\n || changed.has('numChips')\n || changed.has('closeable')\n || changed.has('open')) {\n this.#handleChipsChanged();\n }\n }\n\n /**\n * active chip that receives focus when group receives focus\n */\n get activeChip() {\n const button = this.#tabindex.activeItem as HTMLElement;\n const shadow = button?.getRootNode() as ShadowRoot;\n return shadow?.host as PfChip;\n }\n\n set activeChip(chip: HTMLElement) {\n const button = chip.shadowRoot?.querySelector('button') as HTMLElement;\n this.#tabindex.setActiveItem(button);\n }\n\n /**\n * whether or not group has a category\n */\n get hasCategory() {\n return (this._categorySlotted || []).length > 0;\n }\n\n get remaining() {\n return this.#chips.length - this.numChips;\n }\n\n /**\n * updates chips when they change\n */\n #handleChipsChanged() {\n if (this.#chips.length > 0) {\n const oldButtons = [...(this.#tabindex.items || [])];\n const max = this.open ? this.#chips.length : Math.min(this.#chips.length, this.numChips);\n this.#buttons = [\n ...this.#chips.slice(0, max),\n this._overflowChip,\n this._button,\n ].filter((x): x is PfChip => !!x);\n if (oldButtons.length !== this.#buttons.length\n || !oldButtons.every((element, index) => element === this.#buttons[index])) {\n this.#tabindex.updateItems();\n }\n this.#updateOverflow();\n }\n }\n\n /**\n * handles a chip's `chip-remove` event\n */\n async #onChipRemoved(event: Event) {\n if (event instanceof PfChipRemoveEvent) {\n await this.#updateChips();\n await this.updateComplete;\n this.#tabindex.setActiveItem(this.#tabindex.activeItem);\n }\n }\n\n /**\n * handles chip group close\n */\n #onCloseClick() {\n this.dispatchEvent(new PfChipGroupRemoveEvent());\n this.remove();\n }\n\n /**\n * handles overflow chip's click event\n */\n async #onMoreClick(event: Event) {\n event.stopPropagation();\n this.open = !this.open;\n await this.updateComplete;\n this.#handleChipsChanged();\n if (this._overflowChip) {\n this.focusOnChip(this._overflowChip);\n }\n this.dispatchEvent(new PfChipGroupExpandEvent());\n }\n\n #onSlotchange() {\n this.#updateChips();\n this.requestUpdate();\n }\n\n /**\n * updates which chips variable\n */\n async #updateChips() {\n await this.updateComplete;\n this.#chips = [...this.querySelectorAll<PfChip>('pf-chip:not([slot]):not([overflow-chip])')];\n this.requestUpdate();\n await this.updateComplete;\n this.#tabindex.updateItems(this.#chips);\n this.#handleChipsChanged();\n return this.#chips;\n }\n\n /**\n * updates which chips are hidden\n */\n #updateOverflow() {\n this.#chips.forEach((chip, i) => {\n chip.accessibleCloseLabel = this.accessibleCloseLabel;\n const overflowHidden = i >= this.numChips && !this.open;\n chip.hidden = overflowHidden;\n });\n }\n\n /**\n * Activates the specified chip and sets focus on it\n */\n focusOnChip(chip: HTMLElement) {\n this.#tabindex.setActiveItem(chip);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-chip-group': PfChipGroup;\n }\n}\n"]}
@@ -6,19 +6,22 @@ export declare class PfChipRemoveEvent extends Event {
6
6
  }
7
7
  /**
8
8
  * A **chip** is used to communicate a value or a set of attribute-value pairs within workflows that involve filtering a set of objects.
9
- *
10
9
  * @fires {ChipRemoveEvent} remove - Fires when chip is removed
11
10
  * @fires {Event} click - when close button is clicked
12
- *
13
11
  * @slot
14
12
  * chip text
15
- *
16
13
  * @csspart text - container for chip text
17
14
  */
18
15
  export declare class PfChip extends LitElement {
19
16
  #private;
20
17
  static readonly styles: CSSStyleSheet[];
21
- static readonly shadowRootOptions: ShadowRootInit;
18
+ static readonly shadowRootOptions: {
19
+ delegatesFocus: boolean;
20
+ mode: ShadowRootMode;
21
+ slotAssignment?: SlotAssignmentMode | undefined;
22
+ customElements?: CustomElementRegistry | undefined;
23
+ registry?: CustomElementRegistry | undefined;
24
+ };
22
25
  /**
23
26
  * Accessible label for close button
24
27
  */
@@ -31,7 +34,7 @@ export declare class PfChip extends LitElement {
31
34
  * Flag indicating if chip is read-only and cannot be removed
32
35
  */
33
36
  overflowChip: boolean;
34
- render(): import("lit").TemplateResult<1>;
37
+ render(): import("lit-html").TemplateResult<1>;
35
38
  }
36
39
  declare global {
37
40
  interface HTMLElementTagNameMap {
@@ -15,13 +15,10 @@ export class PfChipRemoveEvent extends Event {
15
15
  }
16
16
  /**
17
17
  * A **chip** is used to communicate a value or a set of attribute-value pairs within workflows that involve filtering a set of objects.
18
- *
19
18
  * @fires {ChipRemoveEvent} remove - Fires when chip is removed
20
19
  * @fires {Event} click - when close button is clicked
21
- *
22
20
  * @slot
23
21
  * chip text
24
- *
25
22
  * @csspart text - container for chip text
26
23
  */
27
24
  let PfChip = class PfChip extends LitElement {
@@ -71,7 +68,10 @@ _PfChip_onClick = function _PfChip_onClick() {
71
68
  }
72
69
  };
73
70
  PfChip.styles = [shared, styles];
74
- PfChip.shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };
71
+ PfChip.shadowRootOptions = {
72
+ ...LitElement.shadowRootOptions,
73
+ delegatesFocus: true,
74
+ };
75
75
  __decorate([
76
76
  property({ attribute: 'accessible-close-label', type: String })
77
77
  ], PfChip.prototype, "accessibleCloseLabel", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-chip.js","sourceRoot":"","sources":["pf-chip.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,6CAA6C,CAAC;;;OAG9C,MAAM;AAEb,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAmB,IAAY;QAC7B,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QADlB,SAAI,GAAJ,IAAI,CAAQ;IAE/B,CAAC;CACF;AAED;;;;;;;;;;GAUG;AAEI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;;QAKL;;WAEG;QAC8D,yBAAoB,GAAG,OAAO,CAAC;QAEhG;;WAEG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAE7D;;WAEG;QACqE,iBAAY,GAAG,KAAK,CAAC;IA8B/F,CAAC;IA5BC,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;;;;;;KAM9B,CAAC,CAAC,CAAC,IAAI,CAAA;;;;;;;;yBAQa,IAAI,CAAC,oBAAoB;;2BAEvB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY;0BACnC,uBAAA,IAAI,0CAAS;;KAElC,CAAC;IACJ,CAAC;;;;IAGC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AA9Ce,aAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAEjB,wBAAiB,GAAmB,EAAE,GAAG,UAAU,CAAC,iBAAiB,EAAE,cAAc,EAAE,IAAI,EAAE,AAA5E,CAA6E;AAKtD;IAAhE,QAAQ,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAgC;AAKpD;IAA3C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCAAkB;AAKW;IAAvE,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAsB;AAlBlF,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAgDlB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\n\nimport styles from './pf-chip.css';\nimport shared from './pf-chip-shared.css';\n\nexport class PfChipRemoveEvent extends Event {\n constructor(public chip: PfChip) {\n super('remove', { bubbles: true });\n }\n}\n\n/**\n * A **chip** is used to communicate a value or a set of attribute-value pairs within workflows that involve filtering a set of objects.\n *\n * @fires {ChipRemoveEvent} remove - Fires when chip is removed\n * @fires {Event} click - when close button is clicked\n *\n * @slot\n * chip text\n *\n * @csspart text - container for chip text\n */\n@customElement('pf-chip')\nexport class PfChip extends LitElement {\n static readonly styles = [shared, styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n /**\n * Accessible label for close button\n */\n @property({ attribute: 'accessible-close-label', type: String }) accessibleCloseLabel = 'Close';\n\n /**\n * Flag indicating if chip is read-only and cannot be removed\n */\n @property({ reflect: true, type: Boolean }) readonly = false;\n\n /**\n * Flag indicating if chip is read-only and cannot be removed\n */\n @property({ attribute: 'overflow-chip', reflect: true, type: Boolean }) overflowChip = false;\n\n render() {\n return this.overflowChip ? html`\n <button id=\"outer\">\n <span part=\"text\">\n <slot></slot>\n </span>\n </button>\n ` : html`\n <div id=\"outer\">\n <span id=\"chip-text\" part=\"text\">\n <slot></slot>\n </span>\n <pf-button id=\"close-button\"\n plain\n icon=\"close\" icon-set=\"patternfly\"\n label=\"${this.accessibleCloseLabel}\"\n aria-describedby=\"chip-text\"\n ?hidden=\"${this.readonly || this.overflowChip}\"\n @click=\"${this.#onClick}\"></pf-button>\n </div>\n `;\n }\n\n #onClick() {\n if (this.dispatchEvent(new PfChipRemoveEvent(this))) {\n this.remove();\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-chip': PfChip;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-chip.js","sourceRoot":"","sources":["pf-chip.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,6CAA6C,CAAC;;;OAG9C,MAAM;AAEb,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAmB,IAAY;QAC7B,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QADlB,SAAI,GAAJ,IAAI,CAAQ;IAE/B,CAAC;CACF;AAED;;;;;;;GAOG;AAEI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;;QAQL;;WAEG;QAC8D,yBAAoB,GAAG,OAAO,CAAC;QAEhG;;WAEG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAE7D;;WAEG;QACqE,iBAAY,GAAG,KAAK,CAAC;IA8B/F,CAAC;IA5BC,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;;;;;;KAM9B,CAAC,CAAC,CAAC,IAAI,CAAA;;;;;;;;yBAQa,IAAI,CAAC,oBAAoB;;2BAEvB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY;0BACnC,uBAAA,IAAI,0CAAS;;KAElC,CAAC;IACJ,CAAC;;;;IAGC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAjDe,aAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;AAEjB,wBAAiB,GAAG;IAC3C,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;AAK+D;IAAhE,QAAQ,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAgC;AAKpD;IAA3C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCAAkB;AAKW;IAAvE,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAsB;AArBlF,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAmDlB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\n\nimport styles from './pf-chip.css';\nimport shared from './pf-chip-shared.css';\n\nexport class PfChipRemoveEvent extends Event {\n constructor(public chip: PfChip) {\n super('remove', { bubbles: true });\n }\n}\n\n/**\n * A **chip** is used to communicate a value or a set of attribute-value pairs within workflows that involve filtering a set of objects.\n * @fires {ChipRemoveEvent} remove - Fires when chip is removed\n * @fires {Event} click - when close button is clicked\n * @slot\n * chip text\n * @csspart text - container for chip text\n */\n@customElement('pf-chip')\nexport class PfChip extends LitElement {\n static readonly styles = [shared, styles];\n\n static override readonly shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Accessible label for close button\n */\n @property({ attribute: 'accessible-close-label', type: String }) accessibleCloseLabel = 'Close';\n\n /**\n * Flag indicating if chip is read-only and cannot be removed\n */\n @property({ reflect: true, type: Boolean }) readonly = false;\n\n /**\n * Flag indicating if chip is read-only and cannot be removed\n */\n @property({ attribute: 'overflow-chip', reflect: true, type: Boolean }) overflowChip = false;\n\n render() {\n return this.overflowChip ? html`\n <button id=\"outer\">\n <span part=\"text\">\n <slot></slot>\n </span>\n </button>\n ` : html`\n <div id=\"outer\">\n <span id=\"chip-text\" part=\"text\">\n <slot></slot>\n </span>\n <pf-button id=\"close-button\"\n plain\n icon=\"close\" icon-set=\"patternfly\"\n label=\"${this.accessibleCloseLabel}\"\n aria-describedby=\"chip-text\"\n ?hidden=\"${this.readonly || this.overflowChip}\"\n @click=\"${this.#onClick}\"></pf-button>\n </div>\n `;\n }\n\n #onClick() {\n if (this.dispatchEvent(new PfChipRemoveEvent(this))) {\n this.remove();\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-chip': PfChip;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,189 @@
1
+ import { expect, html } from '@open-wc/testing';
2
+ import { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';
3
+ import { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';
4
+ import { PfChipGroup } from '../pf-chip-group.js';
5
+ import { PfChip } from '../pf-chip.js';
6
+ import { sendKeys } from '@web/test-runner-commands';
7
+ function press(key) {
8
+ return async function () {
9
+ await sendKeys({ press: key });
10
+ };
11
+ }
12
+ describe('<pf-chip-group>', async function () {
13
+ let element;
14
+ describe('simply instantiating', function () {
15
+ it('imperatively instantiates', function () {
16
+ expect(document.createElement('pf-chip-group')).to.be.an.instanceof(PfChipGroup);
17
+ });
18
+ it('should upgrade', async function () {
19
+ element = await createFixture(html `<pf-chip-group></pf-chip-group>`);
20
+ const klass = customElements.get('pf-chip-group');
21
+ expect(element)
22
+ .to.be.an.instanceOf(klass)
23
+ .and
24
+ .to.be.an.instanceOf(PfChipGroup);
25
+ });
26
+ });
27
+ describe('with 3 chips', function () {
28
+ let element;
29
+ const updateComplete = () => element.updateComplete;
30
+ beforeEach(async function () {
31
+ element = await createFixture(html `
32
+ <pf-chip-group>
33
+ <pf-chip>Chip 1</pf-chip>
34
+ <pf-chip>Chip 2</pf-chip>
35
+ <pf-chip>Chip 3</pf-chip>
36
+ <pf-chip>Chip 4</pf-chip>
37
+ </pf-chip-group>
38
+ `);
39
+ });
40
+ it('only 3 chips and an overflow should be visible', async function () {
41
+ const snapshot = await a11ySnapshot();
42
+ expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(3);
43
+ expect(snapshot.children?.filter(x => x.role === 'button')?.length).to.equal(4);
44
+ });
45
+ describe('clicking overflow chip', function () {
46
+ beforeEach(() => element.focus());
47
+ beforeEach(press('ArrowLeft'));
48
+ beforeEach(press('Enter'));
49
+ beforeEach(updateComplete);
50
+ it('should show all chips', async function () {
51
+ const snapshot = await a11ySnapshot();
52
+ expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(4);
53
+ });
54
+ it('should show collapse button', async function () {
55
+ const snapshot = await a11ySnapshot();
56
+ expect(snapshot.children?.filter(x => x.role === 'button')?.length).to.equal(5);
57
+ });
58
+ it('should focus collapse button', async function () {
59
+ const snapshot = await a11ySnapshot();
60
+ expect(snapshot.children?.find(x => x.focused)?.name).to.equal('show less');
61
+ });
62
+ });
63
+ });
64
+ describe('with 4 chips and `closeable` attribute', function () {
65
+ let element;
66
+ const updateComplete = () => element.updateComplete;
67
+ beforeEach(async function () {
68
+ element = await createFixture(html `
69
+ <pf-chip-group closeable>
70
+ <pf-chip>Chip 1</pf-chip>
71
+ <pf-chip>Chip 2</pf-chip>
72
+ <pf-chip>Chip 3</pf-chip>
73
+ <pf-chip>Chip 4</pf-chip>
74
+ </pf-chip-group>
75
+ `);
76
+ });
77
+ beforeEach(updateComplete);
78
+ it('should have close button', async function () {
79
+ const snapshot = await a11ySnapshot();
80
+ const last = snapshot.children?.at(-1);
81
+ expect(last?.name).to.equal('Close');
82
+ expect(last?.role).to.equal('button');
83
+ expect(last?.description).to.not.be.ok;
84
+ });
85
+ describe('clicking close button', function () {
86
+ beforeEach(() => element.focus());
87
+ beforeEach(press('ArrowLeft'));
88
+ beforeEach(press('Enter'));
89
+ beforeEach(updateComplete);
90
+ it('should remove element', async function () {
91
+ const snapshot = await a11ySnapshot();
92
+ expect(snapshot.children).to.be.undefined;
93
+ });
94
+ });
95
+ });
96
+ describe('with 4 chips and `collapsed-text`, `expanded-text`, and `label` attributes', async function () {
97
+ let chip1;
98
+ let chip2;
99
+ let element;
100
+ let snapshot;
101
+ const updateComplete = () => element.updateComplete;
102
+ beforeEach(async function () {
103
+ element = await createFixture(html `
104
+ <pf-chip-group collapsed-text="show $\{remaining} more"
105
+ expanded-text="show fewer"
106
+ accessible-label="My Chip Group">
107
+ <pf-chip>Chip 1</pf-chip>
108
+ <pf-chip>Chip 2</pf-chip>
109
+ <pf-chip>Chip 3</pf-chip>
110
+ <pf-chip>Chip 4</pf-chip>
111
+ </pf-chip-group>
112
+ `);
113
+ [chip1, chip2] = document.querySelectorAll('pf-chip');
114
+ snapshot = await a11ySnapshot();
115
+ });
116
+ it('has accessible label', function () {
117
+ const [offscreen] = snapshot.children;
118
+ expect(offscreen?.name).to.equal('My Chip Group');
119
+ });
120
+ it('is accessible', async function () {
121
+ await expect(element).to.be.accessible();
122
+ });
123
+ describe('pressing `Tab`', function () {
124
+ beforeEach(press('Tab'));
125
+ beforeEach(updateComplete);
126
+ it('should focus', function () {
127
+ expect(document.activeElement).to.equal(chip1);
128
+ });
129
+ });
130
+ describe('pressing `ArrowRight`', function () {
131
+ beforeEach(() => chip1.focus());
132
+ beforeEach(press('ArrowRight'));
133
+ beforeEach(updateComplete);
134
+ it('should move to chip2', function () {
135
+ expect(document.activeElement).to.equal(chip2);
136
+ });
137
+ });
138
+ });
139
+ describe('with 4 chips and `num-chips="2"` attribute', function () {
140
+ beforeEach(async function () {
141
+ await createFixture(html `
142
+ <pf-chip-group num-chips="2">
143
+ <pf-chip>Chip 1</pf-chip>
144
+ <pf-chip>Chip 2</pf-chip>
145
+ <pf-chip>Chip 3</pf-chip>
146
+ <pf-chip>Chip 4</pf-chip>
147
+ </pf-chip-group>
148
+ `);
149
+ });
150
+ it('only 2 chips should be visible', async function () {
151
+ const snapshot = await a11ySnapshot();
152
+ expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(2);
153
+ });
154
+ });
155
+ describe('with 4 chips and `num-chips="4"` attribute', function () {
156
+ let element;
157
+ const updateComplete = () => element.updateComplete;
158
+ beforeEach(async function () {
159
+ element = await createFixture(html `
160
+ <pf-chip-group num-chips="4">
161
+ <pf-chip>Chip 1</pf-chip>
162
+ <pf-chip>Chip 2</pf-chip>
163
+ <pf-chip>Chip 3</pf-chip>
164
+ <pf-chip>Chip 4</pf-chip>
165
+ </pf-chip-group>
166
+ `);
167
+ });
168
+ it('all 4 chips should be visible', async function () {
169
+ const snapshot = await a11ySnapshot();
170
+ expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(4);
171
+ });
172
+ describe('keyboard navigating with arrow keys to third chip and pressing enter', function () {
173
+ beforeEach(press('Tab'));
174
+ beforeEach(press('ArrowRight'));
175
+ beforeEach(press('ArrowRight'));
176
+ beforeEach(press('Enter'));
177
+ beforeEach(updateComplete);
178
+ it('should remove third chip', async function () {
179
+ const snapshot = await a11ySnapshot();
180
+ expect(snapshot.children?.find(x => x.name === 'Chip 3')).to.not.be.ok;
181
+ });
182
+ it('should focus on close button', async function () {
183
+ const snapshot = await a11ySnapshot();
184
+ expect(snapshot.children?.find(x => x.focused)?.name).to.equal('Close');
185
+ });
186
+ });
187
+ });
188
+ });
189
+ //# sourceMappingURL=pf-chip-group.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pf-chip-group.spec.js","sourceRoot":"","sources":["pf-chip-group.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, html } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { a11ySnapshot, type A11yTreeSnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\nimport { PfChipGroup } from '../pf-chip-group.js';\nimport { PfChip } from '../pf-chip.js';\nimport { sendKeys } from '@web/test-runner-commands';\n\nfunction press(key: string) {\n return async function() {\n await sendKeys({ press: key });\n };\n}\n\ndescribe('<pf-chip-group>', async function() {\n let element: PfChipGroup;\n\n describe('simply instantiating', function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-chip-group')).to.be.an.instanceof(PfChipGroup);\n });\n\n it('should upgrade', async function() {\n element = await createFixture<PfChipGroup>(html`<pf-chip-group></pf-chip-group>`);\n const klass = customElements.get('pf-chip-group');\n expect(element)\n .to.be.an.instanceOf(klass)\n .and\n .to.be.an.instanceOf(PfChipGroup);\n });\n });\n\n describe('with 3 chips', function() {\n let element: PfChipGroup;\n const updateComplete = () => element.updateComplete;\n\n beforeEach(async function() {\n element = await createFixture<PfChipGroup>(html`\n <pf-chip-group>\n <pf-chip>Chip 1</pf-chip>\n <pf-chip>Chip 2</pf-chip>\n <pf-chip>Chip 3</pf-chip>\n <pf-chip>Chip 4</pf-chip>\n </pf-chip-group>\n `);\n });\n\n it('only 3 chips and an overflow should be visible', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(3);\n expect(snapshot.children?.filter(x => x.role === 'button')?.length).to.equal(4);\n });\n\n describe('clicking overflow chip', function() {\n beforeEach(() => element.focus());\n beforeEach(press('ArrowLeft'));\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('should show all chips', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(4);\n });\n it('should show collapse button', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.filter(x => x.role === 'button')?.length).to.equal(5);\n });\n it('should focus collapse button', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.focused)?.name).to.equal('show less');\n });\n });\n });\n\n describe('with 4 chips and `closeable` attribute', function() {\n let element: PfChipGroup;\n const updateComplete = () => element.updateComplete;\n beforeEach(async function() {\n element = await createFixture<PfChipGroup>(html`\n <pf-chip-group closeable>\n <pf-chip>Chip 1</pf-chip>\n <pf-chip>Chip 2</pf-chip>\n <pf-chip>Chip 3</pf-chip>\n <pf-chip>Chip 4</pf-chip>\n </pf-chip-group>\n `);\n });\n\n beforeEach(updateComplete);\n it('should have close button', async function() {\n const snapshot = await a11ySnapshot();\n const last = snapshot.children?.at(-1);\n expect(last?.name).to.equal('Close');\n expect(last?.role).to.equal('button');\n expect(last?.description).to.not.be.ok;\n });\n\n describe('clicking close button', function() {\n beforeEach(() => element.focus());\n beforeEach(press('ArrowLeft'));\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n it('should remove element', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children).to.be.undefined;\n });\n });\n });\n\n describe('with 4 chips and `collapsed-text`, `expanded-text`, and `label` attributes', async function() {\n let chip1: PfChip;\n let chip2: PfChip;\n let element: PfChipGroup;\n let snapshot: A11yTreeSnapshot;\n const updateComplete = () => element.updateComplete;\n\n beforeEach(async function() {\n element = await createFixture<PfChipGroup>(html`\n <pf-chip-group collapsed-text=\"show $\\{remaining} more\"\n expanded-text=\"show fewer\"\n accessible-label=\"My Chip Group\">\n <pf-chip>Chip 1</pf-chip>\n <pf-chip>Chip 2</pf-chip>\n <pf-chip>Chip 3</pf-chip>\n <pf-chip>Chip 4</pf-chip>\n </pf-chip-group>\n `);\n [chip1, chip2] = document.querySelectorAll('pf-chip');\n snapshot = await a11ySnapshot();\n });\n\n it('has accessible label', function() {\n const [offscreen] = snapshot.children!;\n expect(offscreen?.name).to.equal('My Chip Group');\n });\n\n it('is accessible', async function() {\n await expect(element).to.be.accessible();\n });\n\n describe('pressing `Tab`', function() {\n beforeEach(press('Tab'));\n beforeEach(updateComplete);\n it('should focus', function() {\n expect(document.activeElement).to.equal(chip1);\n });\n });\n\n describe('pressing `ArrowRight`', function() {\n beforeEach(() => chip1.focus());\n beforeEach(press('ArrowRight'));\n beforeEach(updateComplete);\n it('should move to chip2', function() {\n expect(document.activeElement).to.equal(chip2);\n });\n });\n });\n\n describe('with 4 chips and `num-chips=\"2\"` attribute', function() {\n beforeEach(async function() {\n await createFixture<PfChipGroup>(html`\n <pf-chip-group num-chips=\"2\">\n <pf-chip>Chip 1</pf-chip>\n <pf-chip>Chip 2</pf-chip>\n <pf-chip>Chip 3</pf-chip>\n <pf-chip>Chip 4</pf-chip>\n </pf-chip-group>\n `);\n });\n it('only 2 chips should be visible', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(2);\n });\n });\n\n describe('with 4 chips and `num-chips=\"4\"` attribute', function() {\n let element: PfChipGroup;\n const updateComplete = () => element.updateComplete;\n\n beforeEach(async function() {\n element = await createFixture<PfChipGroup>(html`\n <pf-chip-group num-chips=\"4\">\n <pf-chip>Chip 1</pf-chip>\n <pf-chip>Chip 2</pf-chip>\n <pf-chip>Chip 3</pf-chip>\n <pf-chip>Chip 4</pf-chip>\n </pf-chip-group>\n `);\n });\n\n it('all 4 chips should be visible', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(4);\n });\n\n describe('keyboard navigating with arrow keys to third chip and pressing enter', function() {\n beforeEach(press('Tab'));\n beforeEach(press('ArrowRight'));\n beforeEach(press('ArrowRight'));\n beforeEach(press('Enter'));\n beforeEach(updateComplete);\n\n it('should remove third chip', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.name === 'Chip 3')).to.not.be.ok;\n });\n\n it('should focus on close button', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.focused)?.name).to.equal('Close');\n });\n });\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { test } from '@playwright/test';
2
+ import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
3
+ const tagName = 'pf-chip';
4
+ test.describe(tagName, () => {
5
+ test('snapshot', async ({ page }) => {
6
+ const componentPage = new PfeDemoPage(page, tagName);
7
+ await componentPage.navigate();
8
+ await componentPage.snapshot();
9
+ });
10
+ });
11
+ //# sourceMappingURL=pf-chip.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pf-chip.e2e.js","sourceRoot":"","sources":["pf-chip.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAEnF,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\n\nconst tagName = 'pf-chip';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,116 @@
1
+ import { expect, html } from '@open-wc/testing';
2
+ import { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';
3
+ import { PfChip } from '../pf-chip.js';
4
+ import { sendKeys } from '@web/test-runner-commands';
5
+ import { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';
6
+ import { clickElementAtCenter } from '@patternfly/pfe-tools/test/utils.js';
7
+ function press(key) {
8
+ return async function () {
9
+ await sendKeys({ press: key });
10
+ };
11
+ }
12
+ function activeElement(element) {
13
+ return element.shadowRoot?.activeElement;
14
+ }
15
+ describe('<pf-chip>', async function () {
16
+ it('imperatively instantiates', function () {
17
+ expect(document.createElement('pf-chip')).to.be.an.instanceof(PfChip);
18
+ });
19
+ it('should upgrade', async function () {
20
+ const klass = customElements.get('pf-chip');
21
+ expect(await createFixture(html `<pf-chip></pf-chip>`))
22
+ .to.be.an.instanceOf(klass)
23
+ .and
24
+ .to.be.an.instanceOf(PfChip);
25
+ });
26
+ describe('simply instantiating', function () {
27
+ let element;
28
+ beforeEach(async function () {
29
+ element = await createFixture(html `
30
+ <pf-chip></pf-chip>
31
+ `);
32
+ });
33
+ it('should be accessible', async function () {
34
+ await expect(element).to.be.accessible();
35
+ });
36
+ describe('calling focus() on the element', function () {
37
+ beforeEach(() => element.focus());
38
+ it('should focus', async function () {
39
+ const snapshot = await a11ySnapshot();
40
+ expect(snapshot.children?.at(0)?.name).to.equal(element.accessibleCloseLabel);
41
+ expect(snapshot.children?.at(0)?.focused).to.be.true;
42
+ });
43
+ });
44
+ describe('pressing Tab', function () {
45
+ beforeEach(press('Tab'));
46
+ it('should focus', async function () {
47
+ const snapshot = await a11ySnapshot();
48
+ expect(snapshot.children?.at(0)?.name).to.equal(element.accessibleCloseLabel);
49
+ expect(snapshot.children?.at(0)?.focused).to.be.true;
50
+ });
51
+ describe('pressing Enter', async function () {
52
+ beforeEach(() => element.focus());
53
+ beforeEach(press('Enter'));
54
+ it('should close', function () {
55
+ expect(document.querySelector('pf-chip')).to.be.null;
56
+ });
57
+ });
58
+ });
59
+ });
60
+ describe('with `overflow-chip` attribute', function () {
61
+ let element;
62
+ beforeEach(async function () {
63
+ element = await createFixture(html `
64
+ <pf-chip overflow-chip>Overflow</pf-chip>
65
+ `);
66
+ });
67
+ it('should be accessible', async function () {
68
+ await expect(element).to.be.accessible();
69
+ });
70
+ it('should not have a close button', async function () {
71
+ const snapshot = await a11ySnapshot();
72
+ expect(snapshot.children?.find(x => x.name === 'Close')).to.not.be.ok;
73
+ });
74
+ describe('calling focus', function () {
75
+ beforeEach(() => element.focus());
76
+ it('should focus', function () {
77
+ expect(activeElement(element)).to.exist;
78
+ });
79
+ });
80
+ describe('pressing Tab', function () {
81
+ beforeEach(press('Tab'));
82
+ it('should focus', function () {
83
+ expect(activeElement(element)).to.exist;
84
+ });
85
+ });
86
+ describe('pressing Enter', function () {
87
+ beforeEach(() => element.focus());
88
+ beforeEach(press('Enter'));
89
+ it('should NOT close', function () {
90
+ expect(document.querySelector('pf-chip')).to.not.be.null;
91
+ });
92
+ });
93
+ describe('clicking element', function () {
94
+ beforeEach(() => clickElementAtCenter(element));
95
+ it('should NOT close', function () {
96
+ expect(document.querySelector('pf-chip')).to.not.be.null;
97
+ });
98
+ });
99
+ });
100
+ describe('readonly', async function () {
101
+ let element;
102
+ beforeEach(async function () {
103
+ element = await createFixture(html `
104
+ <pf-chip readonly></pf-chip>
105
+ `);
106
+ });
107
+ it('should be accessible', async function () {
108
+ await expect(element).to.be.accessible();
109
+ });
110
+ it('should not have a button', async function () {
111
+ const snapshot = await a11ySnapshot();
112
+ expect(snapshot.children).to.be.undefined;
113
+ });
114
+ });
115
+ });
116
+ //# sourceMappingURL=pf-chip.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pf-chip.spec.js","sourceRoot":"","sources":["pf-chip.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, html } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfChip } from '../pf-chip.js';\nimport { sendKeys } from '@web/test-runner-commands';\n\nimport { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\nimport { clickElementAtCenter } from '@patternfly/pfe-tools/test/utils.js';\n\n\nfunction press(key: string) {\n return async function() {\n await sendKeys({ press: key });\n };\n}\n\nfunction activeElement(element: HTMLElement) {\n return element.shadowRoot?.activeElement;\n}\n\ndescribe('<pf-chip>', async function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-chip')).to.be.an.instanceof(PfChip);\n });\n\n it('should upgrade', async function() {\n const klass = customElements.get('pf-chip');\n expect(await createFixture<PfChip>(html`<pf-chip></pf-chip>`))\n .to.be.an.instanceOf(klass)\n .and\n .to.be.an.instanceOf(PfChip);\n });\n\n describe('simply instantiating', function() {\n let element: PfChip;\n\n beforeEach(async function() {\n element = await createFixture<PfChip>(html`\n <pf-chip></pf-chip>\n `);\n });\n\n it('should be accessible', async function() {\n await expect(element).to.be.accessible();\n });\n\n describe('calling focus() on the element', function() {\n beforeEach(() => element.focus());\n it('should focus', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(0)?.name).to.equal(element.accessibleCloseLabel);\n expect(snapshot.children?.at(0)?.focused).to.be.true;\n });\n });\n\n describe('pressing Tab', function() {\n beforeEach(press('Tab'));\n it('should focus', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.at(0)?.name).to.equal(element.accessibleCloseLabel);\n expect(snapshot.children?.at(0)?.focused).to.be.true;\n });\n\n describe('pressing Enter', async function() {\n beforeEach(() => element.focus());\n beforeEach(press('Enter'));\n it('should close', function() {\n expect(document.querySelector('pf-chip')).to.be.null;\n });\n });\n });\n });\n\n describe('with `overflow-chip` attribute', function() {\n let element: PfChip;\n\n beforeEach(async function() {\n element = await createFixture<PfChip>(html`\n <pf-chip overflow-chip>Overflow</pf-chip>\n `);\n });\n\n it('should be accessible', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('should not have a close button', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children?.find(x => x.name === 'Close')).to.not.be.ok;\n });\n\n describe('calling focus', function() {\n beforeEach(() => element.focus());\n it('should focus', function() {\n expect(activeElement(element)).to.exist;\n });\n });\n\n describe('pressing Tab', function() {\n beforeEach(press('Tab'));\n it('should focus', function() {\n expect(activeElement(element)).to.exist;\n });\n });\n\n describe('pressing Enter', function() {\n beforeEach(() => element.focus());\n beforeEach(press('Enter'));\n it('should NOT close', function() {\n expect(document.querySelector('pf-chip')).to.not.be.null;\n });\n });\n\n describe('clicking element', function() {\n beforeEach(() => clickElementAtCenter(element));\n it('should NOT close', function() {\n expect(document.querySelector('pf-chip')).to.not.be.null;\n });\n });\n });\n\n describe('readonly', async function() {\n let element: PfChip;\n\n beforeEach(async function() {\n element = await createFixture<PfChip>(html`\n <pf-chip readonly></pf-chip>\n `);\n });\n\n it('should be accessible', async function() {\n await expect(element).to.be.accessible();\n });\n\n it('should not have a button', async function() {\n const snapshot = await a11ySnapshot();\n expect(snapshot.children).to.be.undefined;\n });\n });\n});\n"]}
@@ -128,6 +128,10 @@ textarea {
128
128
  height: 100%;
129
129
  }
130
130
 
131
+ #copy-button {
132
+ height: calc(100% - var(--pf-c-button--PaddingTop) - var(--pf-c-button--PaddingBottom));
133
+ }
134
+
131
135
  .container:is(.compact, .inline) #input-group {
132
136
  display: contents;
133
137
  }
@@ -4,14 +4,19 @@ import '@patternfly/elements/pf-icon/pf-icon.js';
4
4
  import '@patternfly/elements/pf-tooltip/pf-tooltip.js';
5
5
  /**
6
6
  * The **clipboard copy** component allows users to quickly and easily copy content to their clipboard.
7
- *
8
7
  * @slot - Place content to copy here, or use the `value` attribute
9
8
  * @slot actions - Place additional action buttons here
10
9
  */
11
10
  export declare class PfClipboardCopy extends BaseClipboardCopy {
12
11
  #private;
13
12
  static readonly styles: CSSStyleSheet[];
14
- static shadowRootOptions: ShadowRootInit;
13
+ static readonly shadowRootOptions: {
14
+ delegatesFocus: boolean;
15
+ mode: ShadowRootMode;
16
+ slotAssignment?: SlotAssignmentMode | undefined;
17
+ customElements?: CustomElementRegistry | undefined;
18
+ registry?: CustomElementRegistry | undefined;
19
+ };
15
20
  clickTip: string;
16
21
  hoverTip: string;
17
22
  textAriaLabel: string;
@@ -38,7 +43,7 @@ export declare class PfClipboardCopy extends BaseClipboardCopy {
38
43
  * This demonstrates the collapsed whitespace issue.
39
44
  * The extra space between the closing slot tag and the closing template literal results in a collapsed whitespace.
40
45
  */
41
- render(): import("lit").TemplateResult<1>;
46
+ render(): import("lit-html").TemplateResult<1>;
42
47
  copy(): Promise<void>;
43
48
  }
44
49
  declare global {