@patternfly/elements 3.0.2 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/custom-elements.json +8857 -8783
  2. package/form-control.css +127 -0
  3. package/package.json +12 -25
  4. package/pf-accordion/pf-accordion-header.css +23 -0
  5. package/pf-accordion/pf-accordion-header.d.ts +52 -43
  6. package/pf-accordion/pf-accordion-header.js +130 -87
  7. package/pf-accordion/pf-accordion-header.js.map +1 -1
  8. package/pf-accordion/pf-accordion-panel.css +15 -0
  9. package/pf-accordion/pf-accordion-panel.d.ts +27 -25
  10. package/pf-accordion/pf-accordion-panel.js +29 -43
  11. package/pf-accordion/pf-accordion-panel.js.map +1 -1
  12. package/pf-accordion/pf-accordion.d.ts +122 -65
  13. package/pf-accordion/pf-accordion.js +283 -94
  14. package/pf-accordion/pf-accordion.js.map +1 -1
  15. package/pf-accordion/test/pf-accordion.e2e.js +12 -0
  16. package/pf-accordion/test/pf-accordion.e2e.js.map +1 -1
  17. package/pf-accordion/test/pf-accordion.spec.js +366 -350
  18. package/pf-accordion/test/pf-accordion.spec.js.map +1 -1
  19. package/pf-avatar/pf-avatar.css +50 -24
  20. package/pf-avatar/pf-avatar.d.ts +29 -3
  21. package/pf-avatar/pf-avatar.js +51 -9
  22. package/pf-avatar/pf-avatar.js.map +1 -1
  23. package/pf-avatar/test/pf-avatar.e2e.js +12 -0
  24. package/pf-avatar/test/pf-avatar.e2e.js.map +1 -1
  25. package/pf-avatar/test/pf-avatar.spec.js +2 -3
  26. package/pf-avatar/test/pf-avatar.spec.js.map +1 -1
  27. package/pf-back-to-top/pf-back-to-top.css +10 -0
  28. package/pf-back-to-top/pf-back-to-top.d.ts +14 -18
  29. package/pf-back-to-top/pf-back-to-top.js +9 -30
  30. package/pf-back-to-top/pf-back-to-top.js.map +1 -1
  31. package/pf-back-to-top/test/pf-back-to-top.e2e.js +12 -0
  32. package/pf-back-to-top/test/pf-back-to-top.e2e.js.map +1 -1
  33. package/pf-background-image/pf-background-image.d.ts +4 -4
  34. package/pf-background-image/pf-background-image.js +1 -12
  35. package/pf-background-image/pf-background-image.js.map +1 -1
  36. package/pf-background-image/test/pf-background-image.e2e.js +12 -0
  37. package/pf-background-image/test/pf-background-image.e2e.js.map +1 -1
  38. package/pf-badge/pf-badge.css +4 -0
  39. package/pf-badge/pf-badge.d.ts +26 -22
  40. package/pf-badge/pf-badge.js +14 -27
  41. package/pf-badge/pf-badge.js.map +1 -1
  42. package/pf-badge/test/pf-badge.e2e.js +12 -0
  43. package/pf-badge/test/pf-badge.e2e.js.map +1 -1
  44. package/pf-banner/pf-banner.d.ts +16 -16
  45. package/pf-banner/pf-banner.js +1 -24
  46. package/pf-banner/pf-banner.js.map +1 -1
  47. package/pf-banner/test/pf-banner.e2e.js +12 -0
  48. package/pf-banner/test/pf-banner.e2e.js.map +1 -1
  49. package/pf-button/pf-button.css +22 -12
  50. package/pf-button/pf-button.d.ts +128 -122
  51. package/pf-button/pf-button.js +95 -172
  52. package/pf-button/pf-button.js.map +1 -1
  53. package/pf-button/test/pf-button.e2e.js +12 -0
  54. package/pf-button/test/pf-button.e2e.js.map +1 -1
  55. package/pf-card/pf-card.css +172 -43
  56. package/pf-card/pf-card.d.ts +41 -38
  57. package/pf-card/pf-card.js +37 -54
  58. package/pf-card/pf-card.js.map +1 -1
  59. package/pf-card/test/pf-card.e2e.js +12 -0
  60. package/pf-card/test/pf-card.e2e.js.map +1 -1
  61. package/pf-chip/pf-chip-group.css +9 -6
  62. package/pf-chip/pf-chip-group.d.ts +27 -14
  63. package/pf-chip/pf-chip-group.js +65 -94
  64. package/pf-chip/pf-chip-group.js.map +1 -1
  65. package/pf-chip/pf-chip.d.ts +20 -9
  66. package/pf-chip/pf-chip.js +1 -8
  67. package/pf-chip/pf-chip.js.map +1 -1
  68. package/pf-chip/test/pf-chip-group.spec.js +42 -22
  69. package/pf-chip/test/pf-chip-group.spec.js.map +1 -1
  70. package/pf-chip/test/pf-chip.e2e.js +12 -0
  71. package/pf-chip/test/pf-chip.e2e.js.map +1 -1
  72. package/pf-clipboard-copy/pf-clipboard-copy.css +83 -89
  73. package/pf-clipboard-copy/pf-clipboard-copy.d.ts +53 -18
  74. package/pf-clipboard-copy/pf-clipboard-copy.js +55 -44
  75. package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
  76. package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js +12 -0
  77. package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js.map +1 -1
  78. package/pf-code-block/pf-code-block.css +7 -4
  79. package/pf-code-block/pf-code-block.d.ts +4 -25
  80. package/pf-code-block/pf-code-block.js +44 -23
  81. package/pf-code-block/pf-code-block.js.map +1 -1
  82. package/pf-code-block/test/pf-code-block.e2e.js +12 -0
  83. package/pf-code-block/test/pf-code-block.e2e.js.map +1 -1
  84. package/pf-dropdown/context.d.ts +2 -3
  85. package/pf-dropdown/context.js.map +1 -1
  86. package/pf-dropdown/pf-dropdown-group.d.ts +3 -9
  87. package/pf-dropdown/pf-dropdown-group.js +1 -5
  88. package/pf-dropdown/pf-dropdown-group.js.map +1 -1
  89. package/pf-dropdown/pf-dropdown-item.d.ts +21 -27
  90. package/pf-dropdown/pf-dropdown-item.js +1 -37
  91. package/pf-dropdown/pf-dropdown-item.js.map +1 -1
  92. package/pf-dropdown/pf-dropdown-menu.d.ts +4 -10
  93. package/pf-dropdown/pf-dropdown-menu.js +23 -23
  94. package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
  95. package/pf-dropdown/pf-dropdown.d.ts +8 -24
  96. package/pf-dropdown/pf-dropdown.js +1 -26
  97. package/pf-dropdown/pf-dropdown.js.map +1 -1
  98. package/pf-dropdown/test/pf-dropdown.e2e.js +12 -0
  99. package/pf-dropdown/test/pf-dropdown.e2e.js.map +1 -1
  100. package/pf-icon/pf-icon.css +22 -0
  101. package/pf-icon/pf-icon.d.ts +93 -4
  102. package/pf-icon/pf-icon.js +191 -13
  103. package/pf-icon/pf-icon.js.map +1 -1
  104. package/pf-icon/test/pf-icon.e2e.js +12 -0
  105. package/pf-icon/test/pf-icon.e2e.js.map +1 -1
  106. package/pf-icon/test/pf-icon.spec.js +102 -88
  107. package/pf-icon/test/pf-icon.spec.js.map +1 -1
  108. package/pf-jump-links/pf-jump-links-item.d.ts +4 -11
  109. package/pf-jump-links/pf-jump-links-item.js +8 -15
  110. package/pf-jump-links/pf-jump-links-item.js.map +1 -1
  111. package/pf-jump-links/pf-jump-links-list.d.ts +2 -2
  112. package/pf-jump-links/pf-jump-links-list.js +1 -5
  113. package/pf-jump-links/pf-jump-links-list.js.map +1 -1
  114. package/pf-jump-links/pf-jump-links.d.ts +2 -2
  115. package/pf-jump-links/pf-jump-links.js +23 -62
  116. package/pf-jump-links/pf-jump-links.js.map +1 -1
  117. package/pf-jump-links/test/pf-jump-links.e2e.js +12 -0
  118. package/pf-jump-links/test/pf-jump-links.e2e.js.map +1 -1
  119. package/pf-label/pf-label.css +38 -5
  120. package/pf-label/pf-label.d.ts +65 -69
  121. package/pf-label/pf-label.js +49 -90
  122. package/pf-label/pf-label.js.map +1 -1
  123. package/pf-label/test/pf-label.e2e.js +12 -0
  124. package/pf-label/test/pf-label.e2e.js.map +1 -1
  125. package/pf-label/test/pf-label.spec.js +26 -16
  126. package/pf-label/test/pf-label.spec.js.map +1 -1
  127. package/pf-modal/pf-modal.d.ts +17 -22
  128. package/pf-modal/pf-modal.js +13 -39
  129. package/pf-modal/pf-modal.js.map +1 -1
  130. package/pf-modal/test/pf-modal.e2e.js +12 -0
  131. package/pf-modal/test/pf-modal.e2e.js.map +1 -1
  132. package/pf-panel/pf-panel.d.ts +31 -3
  133. package/pf-panel/pf-panel.js +1 -10
  134. package/pf-panel/pf-panel.js.map +1 -1
  135. package/pf-panel/test/pf-panel.e2e.js +12 -0
  136. package/pf-panel/test/pf-panel.e2e.js.map +1 -1
  137. package/pf-popover/pf-popover.d.ts +66 -84
  138. package/pf-popover/pf-popover.js +33 -150
  139. package/pf-popover/pf-popover.js.map +1 -1
  140. package/pf-popover/test/pf-popover.e2e.js +12 -0
  141. package/pf-popover/test/pf-popover.e2e.js.map +1 -1
  142. package/pf-popover/test/pf-popover.spec.js +0 -11
  143. package/pf-popover/test/pf-popover.spec.js.map +1 -1
  144. package/pf-progress/pf-progress.d.ts +40 -40
  145. package/pf-progress/pf-progress.js +1 -61
  146. package/pf-progress/pf-progress.js.map +1 -1
  147. package/pf-progress/test/pf-progress.e2e.js +12 -0
  148. package/pf-progress/test/pf-progress.e2e.js.map +1 -1
  149. package/pf-progress-stepper/pf-progress-step.d.ts +2 -3
  150. package/pf-progress-stepper/pf-progress-step.js +4 -14
  151. package/pf-progress-stepper/pf-progress-step.js.map +1 -1
  152. package/pf-progress-stepper/pf-progress-stepper.d.ts +118 -2
  153. package/pf-progress-stepper/pf-progress-stepper.js +10 -12
  154. package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
  155. package/pf-progress-stepper/test/pf-progress-stepper.e2e.js +12 -0
  156. package/pf-progress-stepper/test/pf-progress-stepper.e2e.js.map +1 -1
  157. package/pf-select/pf-option-group.d.ts +2 -2
  158. package/pf-select/pf-option-group.js +1 -5
  159. package/pf-select/pf-option-group.js.map +1 -1
  160. package/pf-select/pf-option.css +1 -1
  161. package/pf-select/pf-option.d.ts +4 -4
  162. package/pf-select/pf-option.js +20 -30
  163. package/pf-select/pf-option.js.map +1 -1
  164. package/pf-select/pf-select.css +14 -6
  165. package/pf-select/pf-select.d.ts +183 -40
  166. package/pf-select/pf-select.js +185 -260
  167. package/pf-select/pf-select.js.map +1 -1
  168. package/pf-select/test/pf-select.e2e.js +12 -0
  169. package/pf-select/test/pf-select.e2e.js.map +1 -1
  170. package/pf-select/test/pf-select.spec.js +1292 -613
  171. package/pf-select/test/pf-select.spec.js.map +1 -1
  172. package/pf-spinner/pf-spinner.css +27 -17
  173. package/pf-spinner/pf-spinner.d.ts +21 -17
  174. package/pf-spinner/pf-spinner.js +20 -24
  175. package/pf-spinner/pf-spinner.js.map +1 -1
  176. package/pf-spinner/test/pf-spinner.e2e.js +12 -0
  177. package/pf-spinner/test/pf-spinner.e2e.js.map +1 -1
  178. package/pf-switch/pf-switch.css +39 -13
  179. package/pf-switch/pf-switch.d.ts +48 -34
  180. package/pf-switch/pf-switch.js +114 -43
  181. package/pf-switch/pf-switch.js.map +1 -1
  182. package/pf-switch/test/pf-switch.e2e.js +12 -0
  183. package/pf-switch/test/pf-switch.e2e.js.map +1 -1
  184. package/pf-table/pf-caption.d.ts +2 -2
  185. package/pf-table/pf-caption.js +1 -4
  186. package/pf-table/pf-caption.js.map +1 -1
  187. package/pf-table/pf-table.d.ts +424 -424
  188. package/pf-table/pf-table.js +7 -645
  189. package/pf-table/pf-table.js.map +1 -1
  190. package/pf-table/pf-tbody.d.ts +2 -2
  191. package/pf-table/pf-tbody.js +1 -4
  192. package/pf-table/pf-tbody.js.map +1 -1
  193. package/pf-table/pf-td.d.ts +2 -2
  194. package/pf-table/pf-td.js +1 -4
  195. package/pf-table/pf-td.js.map +1 -1
  196. package/pf-table/pf-th.d.ts +2 -2
  197. package/pf-table/pf-th.js +1 -4
  198. package/pf-table/pf-th.js.map +1 -1
  199. package/pf-table/pf-thead.d.ts +2 -2
  200. package/pf-table/pf-thead.js +1 -4
  201. package/pf-table/pf-thead.js.map +1 -1
  202. package/pf-table/pf-tr.d.ts +1 -1
  203. package/pf-table/pf-tr.js +1 -4
  204. package/pf-table/pf-tr.js.map +1 -1
  205. package/pf-table/test/pf-table.e2e.js +12 -0
  206. package/pf-table/test/pf-table.e2e.js.map +1 -1
  207. package/pf-tabs/context.d.ts +2 -3
  208. package/pf-tabs/context.js.map +1 -1
  209. package/pf-tabs/pf-tab-panel.d.ts +3 -5
  210. package/pf-tabs/pf-tab-panel.js +1 -7
  211. package/pf-tabs/pf-tab-panel.js.map +1 -1
  212. package/pf-tabs/pf-tab.d.ts +37 -37
  213. package/pf-tabs/pf-tab.js +16 -54
  214. package/pf-tabs/pf-tab.js.map +1 -1
  215. package/pf-tabs/pf-tabs.d.ts +36 -37
  216. package/pf-tabs/pf-tabs.js +40 -78
  217. package/pf-tabs/pf-tabs.js.map +1 -1
  218. package/pf-tabs/test/pf-tabs.e2e.js +12 -0
  219. package/pf-tabs/test/pf-tabs.e2e.js.map +1 -1
  220. package/pf-tabs/test/pf-tabs.spec.js +11 -12
  221. package/pf-tabs/test/pf-tabs.spec.js.map +1 -1
  222. package/pf-text-area/pf-text-area.d.ts +128 -134
  223. package/pf-text-area/pf-text-area.js +7 -131
  224. package/pf-text-area/pf-text-area.js.map +1 -1
  225. package/pf-text-area/test/pf-text-area.e2e.js +12 -0
  226. package/pf-text-area/test/pf-text-area.e2e.js.map +1 -1
  227. package/pf-text-input/pf-text-input.d.ts +129 -135
  228. package/pf-text-input/pf-text-input.js +7 -132
  229. package/pf-text-input/pf-text-input.js.map +1 -1
  230. package/pf-text-input/test/pf-text-input.e2e.js +12 -0
  231. package/pf-text-input/test/pf-text-input.e2e.js.map +1 -1
  232. package/pf-tile/pf-tile.d.ts +21 -20
  233. package/pf-tile/pf-tile.js +18 -35
  234. package/pf-tile/pf-tile.js.map +1 -1
  235. package/pf-tile/test/pf-tile.e2e.js +12 -0
  236. package/pf-tile/test/pf-tile.e2e.js.map +1 -1
  237. package/pf-timestamp/pf-timestamp.d.ts +2 -2
  238. package/pf-timestamp/pf-timestamp.js +1 -3
  239. package/pf-timestamp/pf-timestamp.js.map +1 -1
  240. package/pf-timestamp/test/pf-timestamp.e2e.js +12 -0
  241. package/pf-timestamp/test/pf-timestamp.e2e.js.map +1 -1
  242. package/pf-tooltip/pf-tooltip.d.ts +51 -50
  243. package/pf-tooltip/pf-tooltip.js +26 -106
  244. package/pf-tooltip/pf-tooltip.js.map +1 -1
  245. package/pf-tooltip/test/pf-tooltip.e2e.js +12 -0
  246. package/pf-tooltip/test/pf-tooltip.e2e.js.map +1 -1
  247. package/pfe.min.js +1194 -1006
  248. package/pfe.min.js.map +4 -4
  249. package/react/pf-accordion/pf-accordion-header.js +2 -2
  250. package/react/pf-accordion/pf-accordion-panel.js +2 -2
  251. package/react/pf-accordion/pf-accordion.js +2 -2
  252. package/react/pf-avatar/pf-avatar.d.ts +1 -1
  253. package/react/pf-avatar/pf-avatar.js +5 -3
  254. package/react/pf-back-to-top/pf-back-to-top.js +2 -2
  255. package/react/pf-background-image/pf-background-image.js +2 -2
  256. package/react/pf-badge/pf-badge.js +2 -2
  257. package/react/pf-banner/pf-banner.js +2 -2
  258. package/react/pf-button/pf-button.js +2 -2
  259. package/react/pf-card/pf-card.js +2 -2
  260. package/react/pf-chip/pf-chip-group.js +2 -2
  261. package/react/pf-chip/pf-chip.js +2 -2
  262. package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +1 -1
  263. package/react/pf-clipboard-copy/pf-clipboard-copy.js +5 -3
  264. package/react/pf-code-block/pf-code-block.js +2 -2
  265. package/react/pf-dropdown/pf-dropdown-group.js +2 -2
  266. package/react/pf-dropdown/pf-dropdown-item.js +2 -2
  267. package/react/pf-dropdown/pf-dropdown-menu.js +2 -2
  268. package/react/pf-dropdown/pf-dropdown.js +2 -2
  269. package/react/pf-icon/pf-icon.js +2 -2
  270. package/react/pf-jump-links/pf-jump-links-item.js +2 -2
  271. package/react/pf-jump-links/pf-jump-links-list.js +2 -2
  272. package/react/pf-jump-links/pf-jump-links.js +2 -2
  273. package/react/pf-label/pf-label.js +2 -2
  274. package/react/pf-modal/pf-modal.js +2 -2
  275. package/react/pf-panel/pf-panel.js +2 -2
  276. package/react/pf-popover/pf-popover.js +2 -2
  277. package/react/pf-progress/pf-progress.js +2 -2
  278. package/react/pf-progress-stepper/pf-progress-step.js +2 -2
  279. package/react/pf-progress-stepper/pf-progress-stepper.js +2 -2
  280. package/react/pf-select/pf-option-group.js +2 -2
  281. package/react/pf-select/pf-option.js +2 -2
  282. package/react/pf-select/pf-select.d.ts +1 -1
  283. package/react/pf-select/pf-select.js +2 -3
  284. package/react/pf-spinner/pf-spinner.js +2 -2
  285. package/react/pf-switch/pf-switch.js +2 -2
  286. package/react/pf-table/pf-caption.js +2 -2
  287. package/react/pf-table/pf-table.js +2 -2
  288. package/react/pf-table/pf-tbody.js +2 -2
  289. package/react/pf-table/pf-td.js +2 -2
  290. package/react/pf-table/pf-th.js +2 -2
  291. package/react/pf-table/pf-thead.js +2 -2
  292. package/react/pf-table/pf-tr.js +2 -2
  293. package/react/pf-tabs/pf-tab-panel.js +2 -2
  294. package/react/pf-tabs/pf-tab.js +2 -2
  295. package/react/pf-tabs/pf-tabs.js +2 -2
  296. package/react/pf-text-area/pf-text-area.js +2 -2
  297. package/react/pf-text-input/pf-text-input.js +2 -2
  298. package/react/pf-tile/pf-tile.js +2 -2
  299. package/react/pf-timestamp/pf-timestamp.js +2 -2
  300. package/react/pf-tooltip/pf-tooltip.js +2 -2
  301. package/pf-accordion/BaseAccordion.d.ts +0 -61
  302. package/pf-accordion/BaseAccordion.js +0 -269
  303. package/pf-accordion/BaseAccordion.js.map +0 -1
  304. package/pf-accordion/BaseAccordionHeader.css +0 -39
  305. package/pf-accordion/BaseAccordionHeader.d.ts +0 -29
  306. package/pf-accordion/BaseAccordionHeader.js +0 -128
  307. package/pf-accordion/BaseAccordionHeader.js.map +0 -1
  308. package/pf-accordion/BaseAccordionPanel.css +0 -27
  309. package/pf-accordion/BaseAccordionPanel.d.ts +0 -7
  310. package/pf-accordion/BaseAccordionPanel.js +0 -33
  311. package/pf-accordion/BaseAccordionPanel.js.map +0 -1
  312. package/pf-avatar/BaseAvatar.css +0 -13
  313. package/pf-avatar/BaseAvatar.d.ts +0 -23
  314. package/pf-avatar/BaseAvatar.js +0 -62
  315. package/pf-avatar/BaseAvatar.js.map +0 -1
  316. package/pf-back-to-top/demo/demo.css +0 -25
  317. package/pf-badge/BaseBadge.css +0 -6
  318. package/pf-badge/BaseBadge.d.ts +0 -18
  319. package/pf-badge/BaseBadge.js +0 -16
  320. package/pf-badge/BaseBadge.js.map +0 -1
  321. package/pf-button/BaseButton.css +0 -68
  322. package/pf-button/BaseButton.d.ts +0 -51
  323. package/pf-button/BaseButton.js +0 -84
  324. package/pf-button/BaseButton.js.map +0 -1
  325. package/pf-card/BaseCard.css +0 -36
  326. package/pf-card/BaseCard.d.ts +0 -24
  327. package/pf-card/BaseCard.js +0 -51
  328. package/pf-card/BaseCard.js.map +0 -1
  329. package/pf-clipboard-copy/BaseClipboardCopy.css +0 -6
  330. package/pf-clipboard-copy/BaseClipboardCopy.d.ts +0 -18
  331. package/pf-clipboard-copy/BaseClipboardCopy.js +0 -25
  332. package/pf-clipboard-copy/BaseClipboardCopy.js.map +0 -1
  333. package/pf-code-block/BaseCodeBlock.css +0 -7
  334. package/pf-code-block/BaseCodeBlock.d.ts +0 -8
  335. package/pf-code-block/BaseCodeBlock.js +0 -22
  336. package/pf-code-block/BaseCodeBlock.js.map +0 -1
  337. package/pf-icon/BaseIcon.css +0 -22
  338. package/pf-icon/BaseIcon.d.ts +0 -41
  339. package/pf-icon/BaseIcon.js +0 -144
  340. package/pf-icon/BaseIcon.js.map +0 -1
  341. package/pf-label/BaseLabel.css +0 -44
  342. package/pf-label/BaseLabel.d.ts +0 -30
  343. package/pf-label/BaseLabel.js +0 -29
  344. package/pf-label/BaseLabel.js.map +0 -1
  345. package/pf-spinner/BaseSpinner.css +0 -20
  346. package/pf-spinner/BaseSpinner.d.ts +0 -27
  347. package/pf-spinner/BaseSpinner.js +0 -45
  348. package/pf-spinner/BaseSpinner.js.map +0 -1
  349. package/pf-switch/BaseSwitch.css +0 -36
  350. package/pf-switch/BaseSwitch.d.ts +0 -19
  351. package/pf-switch/BaseSwitch.js +0 -109
  352. package/pf-switch/BaseSwitch.js.map +0 -1
  353. package/pf-tabs/BaseTab.css +0 -60
  354. package/pf-tabs/BaseTab.d.ts +0 -32
  355. package/pf-tabs/BaseTab.js +0 -83
  356. package/pf-tabs/BaseTab.js.map +0 -1
  357. package/pf-tabs/BaseTabPanel.css +0 -7
  358. package/pf-tabs/BaseTabPanel.d.ts +0 -7
  359. package/pf-tabs/BaseTabPanel.js +0 -36
  360. package/pf-tabs/BaseTabPanel.js.map +0 -1
  361. package/pf-tabs/BaseTabs.css +0 -86
  362. package/pf-tabs/BaseTabs.d.ts +0 -38
  363. package/pf-tabs/BaseTabs.js +0 -221
  364. package/pf-tabs/BaseTabs.js.map +0 -1
  365. package/pf-tile/BaseTile.d.ts +0 -13
  366. package/pf-tile/BaseTile.js +0 -28
  367. package/pf-tile/BaseTile.js.map +0 -1
  368. package/pf-tooltip/BaseTooltip.css +0 -70
  369. package/pf-tooltip/BaseTooltip.d.ts +0 -16
  370. package/pf-tooltip/BaseTooltip.js +0 -54
  371. package/pf-tooltip/BaseTooltip.js.map +0 -1
@@ -1,4 +1,5 @@
1
- import { LitElement, type PropertyValues } from 'lit';
1
+ import { LitElement, type TemplateResult } from 'lit';
2
+ import { PfChip } from './pf-chip.js';
2
3
  export declare class PfChipGroupExpandEvent extends Event {
3
4
  constructor();
4
5
  }
@@ -11,19 +12,27 @@ export declare class PfChipGroupRemoveEvent extends Event {
11
12
  * @fires remove - Fires when chip group is closed/removed
12
13
  * @slot category-name
13
14
  * Category name text for chip group category. If this prop is supplied chip group with have a label and category styling applied
14
- * @slot
15
- * Should be <Chip> elements.
15
+ * @slot - `<pf-chip>` elements.
16
+ * @cssprop [--pf-c-chip-group__list--MarginBottom=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]
17
+ * @cssprop [--pf-c-chip-group__list--MarginRight=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]
18
+ * @cssprop [--pf-c-chip-group--m-category--PaddingTop=var(--pf-global--spacer--xs, 0.25rem)]
19
+ * @cssprop [--pf-c-chip-group--m-category--PaddingRight=var(--pf-global--spacer--xs, 0.25rem)]
20
+ * @cssprop [--pf-c-chip-group--m-category--PaddingBottom=var(--pf-global--spacer--xs, 0.25rem)]
21
+ * @cssprop [--pf-c-chip-group--m-category--PaddingLeft=var(--pf-global--spacer--sm, 0.5rem)]
22
+ * @cssprop [--pf-c-chip-group--m-category--BorderRadius=var(--pf-global--BorderRadius--sm, 3px)]
23
+ * @cssprop [--pf-c-chip-group--m-category--BackgroundColor=var(--pf-global--BackgroundColor--200, #f0f0f0)]
24
+ * @cssprop [--pf-c-chip-group__label--MarginRight=var(--pf-global--spacer--sm, 0.5rem)]
25
+ * @cssprop [--pf-c-chip-group__label--FontSize=var(--pf-global--FontSize--sm, 0.875rem)]
26
+ * @cssprop [--pf-c-chip-group__label--MaxWidth=18ch]
27
+ * @cssprop [--pf-c-chip-group__close--MarginTop=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]
28
+ * @cssprop [--pf-c-chip-group__close--MarginBottom=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]
29
+ * @cssprop [--pf-c-chip-group__list-item--MarginRight=var(--pf-global--spacer--xs, 0.25rem)]
30
+ * @cssprop [--pf-c-chip-group__list-item--MarginBottom=var(--pf-global--spacer--xs, 0.25rem)]
16
31
  */
17
32
  export declare class PfChipGroup extends LitElement {
18
33
  #private;
19
34
  static readonly styles: CSSStyleSheet[];
20
- static readonly shadowRootOptions: {
21
- delegatesFocus: boolean;
22
- mode: ShadowRootMode;
23
- slotAssignment?: SlotAssignmentMode | undefined;
24
- customElements?: CustomElementRegistry | undefined;
25
- registry?: CustomElementRegistry | undefined;
26
- };
35
+ static readonly shadowRootOptions: ShadowRootInit;
27
36
  /**
28
37
  * Accessible label for chip group that does not have a category name
29
38
  */
@@ -55,9 +64,6 @@ export declare class PfChipGroup extends LitElement {
55
64
  private _overflowChip?;
56
65
  private _button?;
57
66
  private _categorySlotted?;
58
- constructor();
59
- render(): import("lit-html").TemplateResult<1>;
60
- updated(changed: PropertyValues<this>): void;
61
67
  /**
62
68
  * active chip that receives focus when group receives focus
63
69
  */
@@ -68,10 +74,17 @@ export declare class PfChipGroup extends LitElement {
68
74
  */
69
75
  get hasCategory(): boolean;
70
76
  get remaining(): number;
77
+ constructor();
78
+ render(): TemplateResult<1>;
79
+ /**
80
+ * updates chips when they change
81
+ */
82
+ private chipsChanged;
71
83
  /**
72
84
  * Activates the specified chip and sets focus on it
85
+ * @param chip pf-chip element
73
86
  */
74
- focusOnChip(chip: HTMLElement): void;
87
+ focusOnChip(chip: PfChip): void;
75
88
  }
76
89
  declare global {
77
90
  interface HTMLElementTagNameMap {
@@ -1,15 +1,16 @@
1
- var _PfChipGroup_instances, _PfChipGroup_chips, _PfChipGroup_buttons, _PfChipGroup_tabindex, _PfChipGroup_handleChipsChanged, _PfChipGroup_onChipRemoved, _PfChipGroup_onCloseClick, _PfChipGroup_onMoreClick, _PfChipGroup_onSlotchange, _PfChipGroup_updateChips, _PfChipGroup_updateOverflow;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
1
+ var _PfChipGroup_instances, _PfChipGroup_chips_get, _PfChipGroup_tabindex, _PfChipGroup_onCloseClick, _PfChipGroup_onMoreClick, _PfChipGroup_onSlotchange, _PfChipGroup_onRemove, _PfChipGroup_updateOverflow;
2
+ import { __classPrivateFieldGet, __decorate } from "tslib";
3
3
  import { LitElement, html } from 'lit';
4
4
  import { customElement } from 'lit/decorators/custom-element.js';
5
5
  import { property } from 'lit/decorators/property.js';
6
6
  import { query } from 'lit/decorators/query.js';
7
7
  import { queryAssignedNodes } from 'lit/decorators/query-assigned-nodes.js';
8
8
  import { classMap } from 'lit/directives/class-map.js';
9
+ import { observes } from '@patternfly/pfe-core/decorators/observes.js';
9
10
  import { RovingTabindexController } from '@patternfly/pfe-core/controllers/roving-tabindex-controller.js';
10
11
  import { PfChip, PfChipRemoveEvent } from './pf-chip.js';
11
12
  import { css } from "lit";
12
- const styles = css `:host {\n --pf-c-chip-group__list--MarginBottom: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group__list--MarginRight: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group--m-category--PaddingTop: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group--m-category--PaddingRight: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group--m-category--PaddingBottom: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group--m-category--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-chip-group--m-category--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);\n --pf-c-chip-group--m-category--BackgroundColor: var(--pf-global--BackgroundColor--200, #f0f0f0);\n --pf-c-chip-group__label--MarginRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-chip-group__label--FontSize: var(--pf-global--FontSize--sm, 0.875rem);\n --pf-c-chip-group__label--MaxWidth: 18ch;\n --pf-c-chip-group__close--MarginTop: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group__close--MarginBottom: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group__list-item--MarginRight: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group__list-item--MarginBottom: var(--pf-global--spacer--xs, 0.25rem);\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n min-width: 0;\n max-width: 100%;\n color: var(--pf-global--Color--100, #151515);\n}\n\n[hidden],\n.empty,\n::slotted([overflow-hidden]) {\n display: none !important;\n}\n\n#outer {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n align-items: baseline;\n min-width: 0;\n display: inline-flex;\n column-gap: var(--pf-global--spacer--xs, 0.25rem);\n align-items: center;\n border-radius: var(--pf-global--BorderRadius--sm, 3px);\n padding: 0 !important;\n}\n\n#outer.has-category {\n padding: var(--pf-global--spacer--xs, 0.25rem) var(--pf-global--spacer--sm, 0.5rem) !important;\n background-color: var(--pf-theme--color--surface--lighter, #f0f0f0);\n}\n\n#chips {\n margin-right: var(--pf-c-chip-group__list--MarginRight);\n margin-bottom: var(--pf-c-chip-group__list--MarginBottom);\n font-family: var(--pf-global--FontFamily--sans-serif, "RedHatTextUpdated", "Overpass", overpass, helvetica, arial, sans-serif);\n font-size: var(--pf-global--FontSize--sm, 14px);\n font-weight: var(--pf-global--FontWeight--normal, 400);\n line-height: 1.6;\n}\n\n#chips ::slotted(pf-chip) {\n display: inline-flex;\n min-width: 0;\n margin-right: var(--pf-c-chip-group__list-item--MarginRight);\n margin-bottom: var(--pf-c-chip-group__list-item--MarginBottom);\n}\n\n#close-button {\n --pf-icon--size: 16px;\n margin: var(--pf-c-chip__c-button--MarginTop)\n var(--pf-c-chip__c-button--MarginRight)\n var(--pf-c-chip__c-button--MarginBottom)\n var(--pf-c-chip__c-button--MarginLeft);\n padding: var(--pf-c-chip__c-button--PaddingTop)\n var(--pf-c-chip__c-button--PaddingRight)\n var(--pf-c-chip__c-button--PaddingBottom)\n var(--pf-c-chip__c-button--PaddingLeft);\n inset-block-start: 0.125em;\n}\n\nsvg {\n width: var(--pf-global--FontSize--sm, 14px);\n height: var(--pf-global--FontSize--sm, 14px);\n}\n\n.offscreen {\n position: absolute;\n left: -99999;\n width: 0;\n height: 0;\n opacity: 0;\n overflow: hidden;\n}\n\n`;
13
+ const styles = css `:host {\n --pf-c-chip-group__list--MarginBottom: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group__list--MarginRight: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group--m-category--PaddingTop: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group--m-category--PaddingRight: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group--m-category--PaddingBottom: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group--m-category--PaddingLeft: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-chip-group--m-category--BorderRadius: var(--pf-global--BorderRadius--sm, 3px);\n --pf-c-chip-group--m-category--BackgroundColor: var(--pf-global--BackgroundColor--200, #f0f0f0);\n --pf-c-chip-group__label--MarginRight: var(--pf-global--spacer--sm, 0.5rem);\n --pf-c-chip-group__label--FontSize: var(--pf-global--FontSize--sm, 0.875rem);\n --pf-c-chip-group__label--MaxWidth: 18ch;\n --pf-c-chip-group__close--MarginTop: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group__close--MarginBottom: calc(var(--pf-global--spacer--xs, 0.25rem) * -1);\n --pf-c-chip-group__list-item--MarginRight: var(--pf-global--spacer--xs, 0.25rem);\n --pf-c-chip-group__list-item--MarginBottom: var(--pf-global--spacer--xs, 0.25rem);\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n min-width: 0;\n max-width: 100%;\n color: var(--pf-global--Color--100, #151515);\n}\n\n[hidden],\n.empty,\n::slotted([overflow-hidden]) {\n display: none !important;\n}\n\n#outer {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n align-items: baseline;\n min-width: 0;\n display: inline-flex;\n column-gap: var(--pf-global--spacer--xs, 0.25rem);\n align-items: center;\n border-radius: var(--pf-global--BorderRadius--sm, 3px);\n padding: 0 !important;\n}\n\n#outer.has-category {\n padding: var(--pf-global--spacer--xs, 0.25rem) var(--pf-global--spacer--sm, 0.5rem) !important;\n background-color: var(--pf-theme--color--surface--lighter, #f0f0f0);\n}\n\n#chips {\n margin-right: var(--pf-c-chip-group__list--MarginRight);\n margin-bottom: var(--pf-c-chip-group__list--MarginBottom);\n font-family: var(--pf-global--FontFamily--sans-serif, "RedHatTextUpdated", "Overpass", overpass, helvetica, arial, sans-serif);\n font-size: var(--pf-global--FontSize--sm, 14px);\n font-weight: var(--pf-global--FontWeight--normal, 400);\n line-height: 1.6;\n}\n\n#chips ::slotted(pf-chip) {\n display: inline-flex;\n min-width: 0;\n margin-right: var(--pf-c-chip-group__list-item--MarginRight);\n margin-bottom: var(--pf-c-chip-group__list-item--MarginBottom);\n}\n\n#close-button {\n --pf-icon--size: 16px;\n margin: var(--pf-c-chip__c-button--MarginTop)\n var(--pf-c-chip__c-button--MarginRight)\n var(--pf-c-chip__c-button--MarginBottom)\n var(--pf-c-chip__c-button--MarginLeft);\n padding: var(--pf-c-chip__c-button--PaddingTop)\n var(--pf-c-chip__c-button--PaddingRight)\n var(--pf-c-chip__c-button--PaddingBottom)\n var(--pf-c-chip__c-button--PaddingLeft);\n inset-block-start: 0.125em;\n}\n\nsvg {\n width: var(--pf-global--FontSize--sm, 14px);\n height: var(--pf-global--FontSize--sm, 14px);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0, 0, 0, 0);\n block-size: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n}\n\n`;
13
14
  import shared from "./pf-chip-shared.css.js";
14
15
  export class PfChipGroupExpandEvent extends Event {
15
16
  constructor() {
@@ -29,16 +30,30 @@ export class PfChipGroupRemoveEvent extends Event {
29
30
  * `}`
30
31
  */
31
32
  const REMAINING_RE = /\$\{\s*remaining\s*\}/g;
32
- /**
33
- * 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.
34
- * @fires expand - Fires when chip group is expanded to show all chips
35
- * @fires remove - Fires when chip group is closed/removed
36
- * @slot category-name
37
- * Category name text for chip group category. If this prop is supplied chip group with have a label and category styling applied
38
- * @slot
39
- * Should be <Chip> elements.
40
- */
41
33
  let PfChipGroup = class PfChipGroup extends LitElement {
34
+ /**
35
+ * active chip that receives focus when group receives focus
36
+ */
37
+ get activeChip() {
38
+ const button = __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").items.at(__classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").atFocusedItemIndex);
39
+ const shadow = button?.getRootNode();
40
+ return shadow?.host;
41
+ }
42
+ set activeChip(chip) {
43
+ const button = chip.shadowRoot?.querySelector('button');
44
+ if (button) {
45
+ __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").atFocusedItemIndex = __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").items.indexOf(button);
46
+ }
47
+ }
48
+ /**
49
+ * whether or not group has a category
50
+ */
51
+ get hasCategory() {
52
+ return (this._categorySlotted || []).length > 0;
53
+ }
54
+ get remaining() {
55
+ return __classPrivateFieldGet(this, _PfChipGroup_instances, "a", _PfChipGroup_chips_get).length - this.numChips;
56
+ }
42
57
  constructor() {
43
58
  super();
44
59
  _PfChipGroup_instances.add(this);
@@ -70,15 +85,18 @@ let PfChipGroup = class PfChipGroup extends LitElement {
70
85
  * Flag if chip group can be closed
71
86
  */
72
87
  this.closeable = false;
73
- _PfChipGroup_chips.set(this, []);
74
- _PfChipGroup_buttons.set(this, []);
75
- _PfChipGroup_tabindex.set(this, new RovingTabindexController(this, {
76
- getItems: () => __classPrivateFieldGet(this, _PfChipGroup_buttons, "f").filter(x => !x.hidden),
88
+ _PfChipGroup_tabindex.set(this, RovingTabindexController.of(this, {
89
+ getItems: () => [
90
+ ...Array.prototype.slice.call(__classPrivateFieldGet(this, _PfChipGroup_instances, "a", _PfChipGroup_chips_get), 0, this.open ? __classPrivateFieldGet(this, _PfChipGroup_instances, "a", _PfChipGroup_chips_get).length
91
+ : Math.min(__classPrivateFieldGet(this, _PfChipGroup_instances, "a", _PfChipGroup_chips_get).length, this.numChips)),
92
+ this._overflowChip,
93
+ this._button,
94
+ ].filter(x => !!x),
77
95
  }));
78
- this.addEventListener('remove', __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_onChipRemoved));
96
+ this.addEventListener('remove', __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_onRemove));
79
97
  }
80
98
  render() {
81
- const empty = __classPrivateFieldGet(this, _PfChipGroup_chips, "f").length <= 0;
99
+ const empty = __classPrivateFieldGet(this, _PfChipGroup_instances, "a", _PfChipGroup_chips_get).length <= 0;
82
100
  return html `
83
101
  <div id="outer"
84
102
  class="${classMap({ 'has-category': this.hasCategory, empty })}"
@@ -86,13 +104,10 @@ let PfChipGroup = class PfChipGroup extends LitElement {
86
104
  <slot id="category"
87
105
  name="category-name"
88
106
  @slotchange="${__classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_onSlotchange)}">
89
- <span class="offscreen"
107
+ <span class="visually-hidden"
90
108
  ?hidden="${!this.accessibleLabel}">${this.accessibleLabel ?? ''}</span>
91
109
  </slot>
92
- <slot id="chips"
93
- @slotchange="${__classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_onSlotchange)}"
94
- @remove="${__classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_updateChips)}"
95
- ></slot>
110
+ <slot id="chips" @slotchange="${__classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_onSlotchange)}"></slot>
96
111
  <pf-chip id="overflow"
97
112
  aria-controls="chips"
98
113
  overflow-chip
@@ -112,110 +127,59 @@ let PfChipGroup = class PfChipGroup extends LitElement {
112
127
  </div>
113
128
  `;
114
129
  }
115
- updated(changed) {
116
- if (changed.has('accessibleCloseLabel')
117
- || changed.has('numChips')
118
- || changed.has('closeable')
119
- || changed.has('open')) {
120
- __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_handleChipsChanged).call(this);
121
- }
122
- }
123
130
  /**
124
- * active chip that receives focus when group receives focus
131
+ * updates chips when they change
125
132
  */
126
- get activeChip() {
127
- const button = __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").activeItem;
128
- const shadow = button?.getRootNode();
129
- return shadow?.host;
130
- }
131
- set activeChip(chip) {
132
- const button = chip.shadowRoot?.querySelector('button');
133
- __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").setActiveItem(button);
134
- }
135
- /**
136
- * whether or not group has a category
137
- */
138
- get hasCategory() {
139
- return (this._categorySlotted || []).length > 0;
140
- }
141
- get remaining() {
142
- return __classPrivateFieldGet(this, _PfChipGroup_chips, "f").length - this.numChips;
133
+ chipsChanged() {
134
+ __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_updateOverflow).call(this);
143
135
  }
144
136
  /**
145
137
  * Activates the specified chip and sets focus on it
138
+ * @param chip pf-chip element
146
139
  */
147
140
  focusOnChip(chip) {
148
- __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").setActiveItem(chip);
141
+ __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").atFocusedItemIndex = __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").items.indexOf(chip);
149
142
  }
150
143
  };
151
- _PfChipGroup_chips = new WeakMap();
152
- _PfChipGroup_buttons = new WeakMap();
153
144
  _PfChipGroup_tabindex = new WeakMap();
154
145
  _PfChipGroup_instances = new WeakSet();
155
- _PfChipGroup_handleChipsChanged = function _PfChipGroup_handleChipsChanged() {
156
- if (__classPrivateFieldGet(this, _PfChipGroup_chips, "f").length > 0) {
157
- const oldButtons = [...(__classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").items || [])];
158
- const max = this.open ? __classPrivateFieldGet(this, _PfChipGroup_chips, "f").length : Math.min(__classPrivateFieldGet(this, _PfChipGroup_chips, "f").length, this.numChips);
159
- __classPrivateFieldSet(this, _PfChipGroup_buttons, [
160
- ...__classPrivateFieldGet(this, _PfChipGroup_chips, "f").slice(0, max),
161
- this._overflowChip,
162
- this._button,
163
- ].filter((x) => !!x), "f");
164
- if (oldButtons.length !== __classPrivateFieldGet(this, _PfChipGroup_buttons, "f").length
165
- || !oldButtons.every((element, index) => element === __classPrivateFieldGet(this, _PfChipGroup_buttons, "f")[index])) {
166
- __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").updateItems();
167
- }
168
- __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_updateOverflow).call(this);
169
- }
170
- };
171
- _PfChipGroup_onChipRemoved =
172
- /**
173
- * handles a chip's `chip-remove` event
174
- */
175
- async function _PfChipGroup_onChipRemoved(event) {
176
- if (event instanceof PfChipRemoveEvent) {
177
- await __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_updateChips).call(this);
178
- await this.updateComplete;
179
- __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").setActiveItem(__classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").activeItem);
180
- }
146
+ _PfChipGroup_chips_get = function _PfChipGroup_chips_get() {
147
+ return this.querySelectorAll('pf-chip:not([slot]):not([overflow-chip])');
181
148
  };
182
149
  _PfChipGroup_onCloseClick = function _PfChipGroup_onCloseClick() {
183
150
  this.dispatchEvent(new PfChipGroupRemoveEvent());
184
- this.remove();
185
151
  };
186
152
  _PfChipGroup_onMoreClick =
187
153
  /**
188
154
  * handles overflow chip's click event
155
+ * @param event click event
189
156
  */
190
157
  async function _PfChipGroup_onMoreClick(event) {
191
158
  event.stopPropagation();
192
159
  this.open = !this.open;
193
160
  await this.updateComplete;
194
- __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_handleChipsChanged).call(this);
161
+ this.chipsChanged();
195
162
  if (this._overflowChip) {
196
163
  this.focusOnChip(this._overflowChip);
197
164
  }
198
165
  this.dispatchEvent(new PfChipGroupExpandEvent());
199
166
  };
200
167
  _PfChipGroup_onSlotchange = function _PfChipGroup_onSlotchange() {
201
- __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_updateChips).call(this);
202
168
  this.requestUpdate();
203
169
  };
204
- _PfChipGroup_updateChips =
205
- /**
206
- * updates which chips variable
207
- */
208
- async function _PfChipGroup_updateChips() {
209
- await this.updateComplete;
210
- __classPrivateFieldSet(this, _PfChipGroup_chips, [...this.querySelectorAll('pf-chip:not([slot]):not([overflow-chip])')], "f");
211
- this.requestUpdate();
212
- await this.updateComplete;
213
- __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").updateItems(__classPrivateFieldGet(this, _PfChipGroup_chips, "f"));
214
- __classPrivateFieldGet(this, _PfChipGroup_instances, "m", _PfChipGroup_handleChipsChanged).call(this);
215
- return __classPrivateFieldGet(this, _PfChipGroup_chips, "f");
170
+ _PfChipGroup_onRemove = function _PfChipGroup_onRemove(event) {
171
+ if (event instanceof PfChipRemoveEvent) {
172
+ const index = __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").atFocusedItemIndex;
173
+ if (event.chip) {
174
+ __classPrivateFieldGet(this, _PfChipGroup_tabindex, "f").atFocusedItemIndex = index + 1;
175
+ }
176
+ }
177
+ else if (event instanceof PfChipGroupRemoveEvent) {
178
+ this.remove();
179
+ }
216
180
  };
217
181
  _PfChipGroup_updateOverflow = function _PfChipGroup_updateOverflow() {
218
- __classPrivateFieldGet(this, _PfChipGroup_chips, "f").forEach((chip, i) => {
182
+ __classPrivateFieldGet(this, _PfChipGroup_instances, "a", _PfChipGroup_chips_get).forEach((chip, i) => {
219
183
  chip.accessibleCloseLabel = this.accessibleCloseLabel;
220
184
  const overflowHidden = i >= this.numChips && !this.open;
221
185
  chip.hidden = overflowHidden;
@@ -226,6 +190,7 @@ PfChipGroup.shadowRootOptions = {
226
190
  ...LitElement.shadowRootOptions,
227
191
  delegatesFocus: true,
228
192
  };
193
+ PfChipGroup.version = "4.0.1";
229
194
  __decorate([
230
195
  property({ attribute: 'accessible-label', type: String })
231
196
  ], PfChipGroup.prototype, "accessibleLabel", void 0);
@@ -256,6 +221,12 @@ __decorate([
256
221
  __decorate([
257
222
  queryAssignedNodes({ slot: 'category-name', flatten: true })
258
223
  ], PfChipGroup.prototype, "_categorySlotted", void 0);
224
+ __decorate([
225
+ observes('accessibleCloseLabel'),
226
+ observes('numChips'),
227
+ observes('closeable'),
228
+ observes('open')
229
+ ], PfChipGroup.prototype, "chipsChanged", null);
259
230
  PfChipGroup = __decorate([
260
231
  customElement('pf-chip-group')
261
232
  ], PfChipGroup);
@@ -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 * @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"]}
1
+ {"version":3,"file":"pf-chip-group.js","sourceRoot":"","sources":["pf-chip-group.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAE1G,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;;;OAGlD,MAAM;AAEb,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,wBAAwB,CAAC;AA0BvC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IA8DzC;;OAEG;IACH,IAAI,UAAU;QACZ,MAAM,MAAM,GAAG,uBAAA,IAAI,6BAAU,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAA,IAAI,6BAAU,CAAC,kBAAkB,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,EAAE,WAAW,EAAgB,CAAC;QACnD,OAAO,MAAM,EAAE,IAAc,CAAC;IAChC,CAAC;IAED,IAAI,UAAU,CAAC,IAAiB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,uBAAA,IAAI,6BAAU,CAAC,kBAAkB,GAAG,uBAAA,IAAI,6BAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,uBAAA,IAAI,sDAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED;QACE,KAAK,EAAE,CAAC;;QAlFV;;WAEG;QACwD,oBAAe,GAAG,EAAE,CAAC;QAEhF;;WAEG;QAC8D,yBAAoB,GAAG,OAAO,CAAC;QAEhG;;WAEG;QACsD,kBAAa,GAAG,mBAAmB,CAAC;QAE7F;;WAEG;QACqD,iBAAY,GAAG,WAAW,CAAC;QAEnF;;WAEG;QACiD,aAAQ,GAAG,CAAC,CAAC;QAEjE;;WAEG;QACyC,SAAI,GAAG,KAAK,CAAC;QAEzD;;WAEG;QACyC,cAAS,GAAG,KAAK,CAAC;QAY9D,gCAAY,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE;YAC5C,QAAQ,EAAE,GAAG,EAAE,CAAC;gBACd,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAA,IAAI,sDAAO,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAA,IAAI,sDAAO,CAAC,MAAM;oBACtD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAA,IAAI,sDAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpE,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,OAAO;aACb,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACnB,CAAC,EAAC;QA+BD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,uBAAA,IAAI,qDAAU,CAAC,CAAC;IAClD,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAG,uBAAA,IAAI,sDAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAA;;oBAEK,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;;;;6BAI5C,uBAAA,IAAI,yDAAc;;2BAEpB,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,IAAI,EAAE;;wCAEvC,uBAAA,IAAI,yDAAc;;;;4BAI9B,IAAI,CAAC,SAAS,GAAG,CAAC;2BACnB,uBAAA,IAAI,wDAAa;WACjC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;gBAC/B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;;;;;4BAKlD,IAAI,CAAC,oBAAoB;;8BAEvB,CAAC,IAAI,CAAC,SAAS;6BAChB,uBAAA,IAAI,yDAAc;;KAE1C,CAAC;IACJ,CAAC;IAED;;OAEG;IAKK,YAAY;QAClB,uBAAA,IAAI,2DAAgB,MAApB,IAAI,CAAkB,CAAC;IACzB,CAAC;IAkDD;;;OAGG;IACH,WAAW,CAAC,IAAY;QACtB,uBAAA,IAAI,6BAAU,CAAC,kBAAkB,GAAG,uBAAA,IAAI,6BAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;;;;;IA9IC,OAAO,IAAI,CAAC,gBAAgB,CAAS,0CAA0C,CAAC,CAAC;AACnF,CAAC;;IA2FC,IAAI,CAAC,aAAa,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;AACnD,CAAC;;AAED;;;GAGG;AACH,KAAK,mCAAc,KAAY;IAC7B,KAAK,CAAC,eAAe,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,IAAI,CAAC,cAAc,CAAC;IAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;IACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;AACnD,CAAC;;IAGC,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,CAAC;uDAES,KAAY;IACpB,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,uBAAA,IAAI,6BAAU,CAAC,kBAAkB,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,uBAAA,IAAI,6BAAU,CAAC,kBAAkB,GAAG,KAAK,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;;IAMC,uBAAA,IAAI,sDAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAvLe,kBAAM,GAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,AAApC,CAAqC;AAElC,6BAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAKyD;IAA1D,QAAQ,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAsB;AAKf;IAAhE,QAAQ,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDAAgC;AAKvC;IAAxD,QAAQ,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDAAqC;AAKrC;IAAvD,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAA4B;AAK/B;IAAnD,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAc;AAKrB;IAA3C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCAAc;AAKb;IAA3C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CAAmB;AAElC;IAA3B,KAAK,CAAC,WAAW,CAAC;kDAAgC;AAEnB;IAA/B,KAAK,CAAC,eAAe,CAAC;4CAAqC;AAEU;IAArE,kBAAkB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qDAAmC;AAuFxF;IAJP,QAAQ,CAAC,sBAAsB,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC;+CAGhB;AAxIU,WAAW;IADvB,aAAa,CAAC,eAAe,CAAC;GAClB,WAAW","sourcesContent":["import { LitElement, html, type TemplateResult } 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 { observes } from '@patternfly/pfe-core/decorators/observes.js';\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 - `<pf-chip>` elements.\n * @cssprop [--pf-c-chip-group__list--MarginBottom=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]\n * @cssprop [--pf-c-chip-group__list--MarginRight=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]\n * @cssprop [--pf-c-chip-group--m-category--PaddingTop=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-chip-group--m-category--PaddingRight=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-chip-group--m-category--PaddingBottom=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-chip-group--m-category--PaddingLeft=var(--pf-global--spacer--sm, 0.5rem)]\n * @cssprop [--pf-c-chip-group--m-category--BorderRadius=var(--pf-global--BorderRadius--sm, 3px)]\n * @cssprop [--pf-c-chip-group--m-category--BackgroundColor=var(--pf-global--BackgroundColor--200, #f0f0f0)]\n * @cssprop [--pf-c-chip-group__label--MarginRight=var(--pf-global--spacer--sm, 0.5rem)]\n * @cssprop [--pf-c-chip-group__label--FontSize=var(--pf-global--FontSize--sm, 0.875rem)]\n * @cssprop [--pf-c-chip-group__label--MaxWidth=18ch]\n * @cssprop [--pf-c-chip-group__close--MarginTop=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]\n * @cssprop [--pf-c-chip-group__close--MarginBottom=calc(var(--pf-global--spacer--xs, 0.25rem) * -1)]\n * @cssprop [--pf-c-chip-group__list-item--MarginRight=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-chip-group__list-item--MarginBottom=var(--pf-global--spacer--xs, 0.25rem)]\n */\n@customElement('pf-chip-group')\nexport class PfChipGroup extends LitElement {\n static readonly styles: CSSStyleSheet[] = [shared, styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\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?: PfChip;\n\n @query('#close-button') private _button?: HTMLButtonElement;\n\n @queryAssignedNodes({ slot: 'category-name', flatten: true }) private _categorySlotted?: Node[];\n\n get #chips(): NodeListOf<PfChip> {\n return this.querySelectorAll<PfChip>('pf-chip:not([slot]):not([overflow-chip])');\n }\n\n #tabindex = RovingTabindexController.of(this, {\n getItems: () => [\n ...Array.prototype.slice.call(this.#chips, 0, this.open ? this.#chips.length\n : Math.min(this.#chips.length, this.numChips)),\n this._overflowChip,\n this._button,\n ].filter(x => !!x),\n });\n\n /**\n * active chip that receives focus when group receives focus\n */\n get activeChip() {\n const button = this.#tabindex.items.at(this.#tabindex.atFocusedItemIndex);\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');\n if (button) {\n this.#tabindex.atFocusedItemIndex = this.#tabindex.items.indexOf(button);\n }\n }\n\n /**\n * whether or not group has a category\n */\n get hasCategory(): boolean {\n return (this._categorySlotted || []).length > 0;\n }\n\n get remaining(): number {\n return this.#chips.length - this.numChips;\n }\n\n constructor() {\n super();\n this.addEventListener('remove', this.#onRemove);\n }\n\n render(): TemplateResult<1> {\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=\"visually-hidden\"\n ?hidden=\"${!this.accessibleLabel}\">${this.accessibleLabel ?? ''}</span>\n </slot>\n <slot id=\"chips\" @slotchange=\"${this.#onSlotchange}\"></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 /**\n * updates chips when they change\n */\n @observes('accessibleCloseLabel')\n @observes('numChips')\n @observes('closeable')\n @observes('open')\n private chipsChanged(): void {\n this.#updateOverflow();\n }\n\n /**\n * handles chip group close\n */\n #onCloseClick() {\n this.dispatchEvent(new PfChipGroupRemoveEvent());\n }\n\n /**\n * handles overflow chip's click event\n * @param event click event\n */\n async #onMoreClick(event: Event) {\n event.stopPropagation();\n this.open = !this.open;\n await this.updateComplete;\n this.chipsChanged();\n if (this._overflowChip) {\n this.focusOnChip(this._overflowChip);\n }\n this.dispatchEvent(new PfChipGroupExpandEvent());\n }\n\n #onSlotchange() {\n this.requestUpdate();\n }\n\n #onRemove(event: Event) {\n if (event instanceof PfChipRemoveEvent) {\n const index = this.#tabindex.atFocusedItemIndex;\n if (event.chip) {\n this.#tabindex.atFocusedItemIndex = index + 1;\n }\n } else if (event instanceof PfChipGroupRemoveEvent) {\n this.remove();\n }\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 * @param chip pf-chip element\n */\n focusOnChip(chip: PfChip): void {\n this.#tabindex.atFocusedItemIndex = this.#tabindex.items.indexOf(chip);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-chip-group': PfChipGroup;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, type TemplateResult } from 'lit';
2
2
  import '@patternfly/elements/pf-button/pf-button.js';
3
3
  export declare class PfChipRemoveEvent extends Event {
4
4
  chip: PfChip;
@@ -11,17 +11,28 @@ export declare class PfChipRemoveEvent extends Event {
11
11
  * @slot
12
12
  * chip text
13
13
  * @csspart text - container for chip text
14
+ * @cssprop [--pf-c-chip--PaddingTop=var(--pf-global--spacer--xs, 0.25rem)]
15
+ * @cssprop [--pf-c-chip--PaddingRight=var(--pf-global--spacer--sm, 0.5rem)]
16
+ * @cssprop [--pf-c-chip--PaddingBottom=var(--pf-global--spacer--xs, 0.25rem)]
17
+ * @cssprop [--pf-c-chip--PaddingLeft=var(--pf-global--spacer--sm, 0.5rem)]
18
+ * @cssprop [--pf-c-chip--BackgroundColor=var(--pf-global--Color--light-100, #fff)]
19
+ * @cssprop [--pf-c-chip--BorderRadius=var(--pf-global--BorderRadius--sm, 3px)]
20
+ * @cssprop [--pf-c-chip--before--BorderColor=var(--pf-global--BorderColor--300, #f0f0f0)]
21
+ * @cssprop [--pf-c-chip--before--BorderWidth=var(--pf-global--BorderWidth--sm, 1px)]
22
+ * @cssprop [--pf-c-chip--before--BorderRadius=var(--pf-c-chip--BorderRadius)]
23
+ * @cssprop [--pf-c-chip--m-overflow__text--Color=var(--pf-global--primary-color--100, #06c)]
24
+ * @cssprop [--pf-c-chip--m-draggable--BackgroundColor=var(--pf-global--BackgroundColor--200, #f0f0f0)]
25
+ * @cssprop [--pf-c-chip--m-draggable--BoxShadow=var(--pf-global--BoxShadow--sm, 0 0.0625rem 0.125rem 0 rgba(3, 3, 3, 0.12), 0 0 0.125rem 0 rgba(3, 3, 3, 0.06))]
26
+ * @cssprop [--pf-c-chip--m-draggable__icon--FontSize=var(--pf-global--icon--FontSize--sm, 0.625rem)]
27
+ * @cssprop [--pf-c-chip__text--FontSize=var(--pf-global--FontSize--xs, 0.75rem)]
28
+ * @cssprop [--pf-c-chip__text--Color=var(--pf-global--Color--100, #151515)]
29
+ * @cssprop [--pf-c-chip__text--MaxWidth=16ch]
30
+ * @cssprop [--pf-c-chip__icon--MarginLeft=var(--pf-global--spacer--sm, 0.5rem)]
14
31
  */
15
32
  export declare class PfChip extends LitElement {
16
33
  #private;
17
34
  static readonly styles: CSSStyleSheet[];
18
- static readonly shadowRootOptions: {
19
- delegatesFocus: boolean;
20
- mode: ShadowRootMode;
21
- slotAssignment?: SlotAssignmentMode | undefined;
22
- customElements?: CustomElementRegistry | undefined;
23
- registry?: CustomElementRegistry | undefined;
24
- };
35
+ static readonly shadowRootOptions: ShadowRootInit;
25
36
  /**
26
37
  * Accessible label for close button
27
38
  */
@@ -34,7 +45,7 @@ export declare class PfChip extends LitElement {
34
45
  * Flag indicating if chip is read-only and cannot be removed
35
46
  */
36
47
  overflowChip: boolean;
37
- render(): import("lit-html").TemplateResult<1>;
48
+ render(): TemplateResult<1>;
38
49
  }
39
50
  declare global {
40
51
  interface HTMLElementTagNameMap {
@@ -13,14 +13,6 @@ export class PfChipRemoveEvent extends Event {
13
13
  this.chip = chip;
14
14
  }
15
15
  }
16
- /**
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
- * @fires {ChipRemoveEvent} remove - Fires when chip is removed
19
- * @fires {Event} click - when close button is clicked
20
- * @slot
21
- * chip text
22
- * @csspart text - container for chip text
23
- */
24
16
  let PfChip = class PfChip extends LitElement {
25
17
  constructor() {
26
18
  super(...arguments);
@@ -72,6 +64,7 @@ PfChip.shadowRootOptions = {
72
64
  ...LitElement.shadowRootOptions,
73
65
  delegatesFocus: true,
74
66
  };
67
+ PfChip.version = "4.0.1";
75
68
  __decorate([
76
69
  property({ attribute: 'accessible-close-label', type: String })
77
70
  ], 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;;;;;;;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"]}
1
+ {"version":3,"file":"pf-chip.js","sourceRoot":"","sources":["pf-chip.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,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;AA4BM,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;;IAE7F,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,GAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,AAApC,CAAqC;AAElC,wBAAiB,GAAmB;IAC3D,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","sourcesContent":["import { LitElement, html, type TemplateResult } 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 * @cssprop [--pf-c-chip--PaddingTop=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-chip--PaddingRight=var(--pf-global--spacer--sm, 0.5rem)]\n * @cssprop [--pf-c-chip--PaddingBottom=var(--pf-global--spacer--xs, 0.25rem)]\n * @cssprop [--pf-c-chip--PaddingLeft=var(--pf-global--spacer--sm, 0.5rem)]\n * @cssprop [--pf-c-chip--BackgroundColor=var(--pf-global--Color--light-100, #fff)]\n * @cssprop [--pf-c-chip--BorderRadius=var(--pf-global--BorderRadius--sm, 3px)]\n * @cssprop [--pf-c-chip--before--BorderColor=var(--pf-global--BorderColor--300, #f0f0f0)]\n * @cssprop [--pf-c-chip--before--BorderWidth=var(--pf-global--BorderWidth--sm, 1px)]\n * @cssprop [--pf-c-chip--before--BorderRadius=var(--pf-c-chip--BorderRadius)]\n * @cssprop [--pf-c-chip--m-overflow__text--Color=var(--pf-global--primary-color--100, #06c)]\n * @cssprop [--pf-c-chip--m-draggable--BackgroundColor=var(--pf-global--BackgroundColor--200, #f0f0f0)]\n * @cssprop [--pf-c-chip--m-draggable--BoxShadow=var(--pf-global--BoxShadow--sm, 0 0.0625rem 0.125rem 0 rgba(3, 3, 3, 0.12), 0 0 0.125rem 0 rgba(3, 3, 3, 0.06))]\n * @cssprop [--pf-c-chip--m-draggable__icon--FontSize=var(--pf-global--icon--FontSize--sm, 0.625rem)]\n * @cssprop [--pf-c-chip__text--FontSize=var(--pf-global--FontSize--xs, 0.75rem)]\n * @cssprop [--pf-c-chip__text--Color=var(--pf-global--Color--100, #151515)]\n * @cssprop [--pf-c-chip__text--MaxWidth=16ch]\n * @cssprop [--pf-c-chip__icon--MarginLeft=var(--pf-global--spacer--sm, 0.5rem)]\n */\n@customElement('pf-chip')\nexport class PfChip extends LitElement {\n static readonly styles: CSSStyleSheet[] = [shared, styles];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\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(): TemplateResult<1> {\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,6 +1,6 @@
1
- import { expect, html } from '@open-wc/testing';
1
+ import { expect, html, nextFrame } from '@open-wc/testing';
2
2
  import { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';
3
- import { a11ySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';
3
+ import { a11ySnapshot, querySnapshot, querySnapshotAll } from '@patternfly/pfe-tools/test/a11y-snapshot.js';
4
4
  import { PfChipGroup } from '../pf-chip-group.js';
5
5
  import { PfChip } from '../pf-chip.js';
6
6
  import { sendKeys } from '@web/test-runner-commands';
@@ -24,7 +24,7 @@ describe('<pf-chip-group>', async function () {
24
24
  .to.be.an.instanceOf(PfChipGroup);
25
25
  });
26
26
  });
27
- describe('with 3 chips', function () {
27
+ describe('with 4 chips', function () {
28
28
  let element;
29
29
  const updateComplete = () => element.updateComplete;
30
30
  beforeEach(async function () {
@@ -37,27 +37,45 @@ describe('<pf-chip-group>', async function () {
37
37
  </pf-chip-group>
38
38
  `);
39
39
  });
40
- it('only 3 chips and an overflow should be visible', async function () {
40
+ it('displays 3 chips and an overflow button', async function () {
41
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);
42
+ expect(querySnapshotAll(snapshot, { name: /^Chip/ })).to.have.length(3);
43
+ expect(querySnapshotAll(snapshot, { role: 'button' })).to.have.length(4);
44
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 () {
45
+ describe('Tab', function () {
46
+ beforeEach(press('Tab'));
47
+ beforeEach(nextFrame);
48
+ it('focuses the first close button', async function () {
55
49
  const snapshot = await a11ySnapshot();
56
- expect(snapshot.children?.filter(x => x.role === 'button')?.length).to.equal(5);
50
+ const focused = querySnapshot(snapshot, { focused: true });
51
+ expect(focused).to.have.property('name', 'Close');
52
+ expect(focused).to.have.property('description', 'Chip 1');
57
53
  });
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');
54
+ describe('ArrowLeft', function () {
55
+ beforeEach(press('ArrowLeft'));
56
+ it('focuses the show less button', async function () {
57
+ const snapshot = await a11ySnapshot();
58
+ const focused = querySnapshot(snapshot, { focused: true });
59
+ expect(focused).to.have.property('name', '1 more');
60
+ });
61
+ describe('Enter', function () {
62
+ beforeEach(press('Enter'));
63
+ beforeEach(updateComplete);
64
+ it('should show all chips', async function () {
65
+ const snapshot = await a11ySnapshot();
66
+ expect(snapshot.children?.filter(x => x.name.startsWith('Chip'))?.length).to.equal(4);
67
+ });
68
+ it('should show collapse button', async function () {
69
+ const snapshot = await a11ySnapshot();
70
+ const buttons = querySnapshotAll(snapshot, { role: 'button' });
71
+ expect(buttons).to.have.length(5);
72
+ });
73
+ it('should focus collapse button', async function () {
74
+ const snapshot = await a11ySnapshot();
75
+ expect(querySnapshot(snapshot, { focused: true }))
76
+ .to.have.property('name', 'show less');
77
+ });
78
+ });
61
79
  });
62
80
  });
63
81
  });
@@ -89,7 +107,7 @@ describe('<pf-chip-group>', async function () {
89
107
  beforeEach(updateComplete);
90
108
  it('should remove element', async function () {
91
109
  const snapshot = await a11ySnapshot();
92
- expect(snapshot.children).to.be.undefined;
110
+ expect(snapshot.children).to.not.be.ok;
93
111
  });
94
112
  });
95
113
  });
@@ -181,7 +199,9 @@ describe('<pf-chip-group>', async function () {
181
199
  });
182
200
  it('should focus on close button', async function () {
183
201
  const snapshot = await a11ySnapshot();
184
- expect(snapshot.children?.find(x => x.focused)?.name).to.equal('Close');
202
+ expect(querySnapshot(snapshot, { focused: true }))
203
+ .to.be.ok
204
+ .and.have.property('name', 'Close');
185
205
  });
186
206
  });
187
207
  });