@patternfly/elements 3.0.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -3,22 +3,32 @@ import { html, render } from 'lit';
3
3
  import { Logger } from '@patternfly/pfe-core/controllers/logger.js';
4
4
  import { PfIcon } from '@patternfly/elements/pf-icon/pf-icon.js';
5
5
  import '@patternfly/pfe-tools/test/stub-logger.js';
6
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
7
+ // @ts-ignore: don't want to include these
8
+ import aed from './rh-icon-aed.js';
9
+ // @ts-ignore: don't want to include these
10
+ import api from './rh-icon-api.js';
11
+ // @ts-ignore: don't want to include these
12
+ import atom from './rh-icon-atom.js';
13
+ // @ts-ignore: don't want to include these
14
+ import bike from './rh-icon-bike.js';
15
+ /* eslint-enable @typescript-eslint/ban-ts-comment */
16
+ const TEST_ICONS = { aed, api, atom, bike };
17
+ async function expectIconsEqual(element, tpl) {
18
+ await oneEvent(element, 'load');
19
+ const rootNode = render(tpl, document.createDocumentFragment());
20
+ const actual = element.shadowRoot?.querySelector('svg');
21
+ const expected = rootNode.parentNode.querySelector('svg');
22
+ expect(actual?.outerHTML).to.equal(expected?.outerHTML);
23
+ }
6
24
  describe('<pf-icon>', function () {
7
25
  let element;
8
- async function expectIconsEqual(actualIconUrl) {
9
- await oneEvent(element, 'load', false);
10
- const tpl = await import(actualIconUrl.pathname).then(x => x.default);
11
- const rootNode = render(tpl, document.createDocumentFragment());
12
- const actual = element.shadowRoot?.querySelector('svg');
13
- const expected = rootNode.parentNode.querySelector('svg');
14
- expect(actual?.outerHTML).to.equal(expected?.outerHTML);
15
- }
16
26
  beforeEach(async function () {
17
- // @ts-expect-error: this is necessary to reset test state
18
- PfIcon.getters = new Map();
19
- PfIcon.io.disconnect();
20
27
  element = await fixture(html `<pf-icon></pf-icon>`);
21
28
  });
29
+ afterEach(function () {
30
+ PfIcon.reset();
31
+ });
22
32
  it('imperatively instantiates', function () {
23
33
  expect(document.createElement('pf-icon')).to.be.an.instanceof(PfIcon);
24
34
  });
@@ -28,54 +38,57 @@ describe('<pf-icon>', function () {
28
38
  .and
29
39
  .to.be.an.instanceOf(PfIcon);
30
40
  });
31
- it('should warn if the 2nd argument to addIconSet is not a function', function () {
32
- // @ts-expect-error: 3rd input is a string
33
- PfIcon.addIconSet('test', './', 'rh-icon-aed.svg');
34
- expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon.addIconSet(setName, getter)]: getter must be a function`);
35
- });
36
- it('should warn if there is no function provided to resolve the icon names', function () {
37
- // @ts-expect-error: testing bad input
38
- PfIcon.addIconSet('test', './');
39
- expect(Logger.warn).to.have.been.calledOnceWith('[PfIcon.addIconSet(setName, getter)]: getter must be a function');
40
- });
41
- describe('with a custom icon set', function () {
42
- const testIcons = ['aed', 'api', 'atom', 'bike'];
43
- function getter(_, icon) {
44
- return new URL(`./rh-icon-${icon}.js`, import.meta.url);
45
- }
46
- beforeEach(async function () {
47
- // replace the default built-in icon set resolveIconName function
48
- // with one that loads local icons. we don't want tests dependent on
49
- // prod servers.
50
- PfIcon.addIconSet('rh', getter);
51
- element.set = 'rh';
41
+ describe('addIconSet', function () {
42
+ describe('when 1st argument is not a string', function () {
43
+ beforeEach(function () {
44
+ PfIcon.addIconSet(
45
+ // @ts-expect-error: testing bad input
46
+ {}, () => void 0);
47
+ });
48
+ it('should warn', function () {
49
+ expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the first argument to addIconSet must be a string.`);
50
+ });
52
51
  });
53
- for (const iconName of testIcons) {
54
- it('loads icons', async function () {
55
- // wait for each test icon to be loaded, then move to the next one
56
- element.icon = iconName;
57
- await expectIconsEqual(getter('rh', iconName));
52
+ describe('when 2nd argument is not a function', function () {
53
+ beforeEach(function () {
54
+ PfIcon.addIconSet('rh',
55
+ // @ts-expect-error: testing bad input
56
+ 'haha');
57
+ });
58
+ it('should warn', function () {
59
+ expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the second argument to addIconSet must be a function.`);
58
60
  });
59
- }
60
- it('should hide the fallback when it successfully upgrades', async function () {
61
- element.innerHTML = `<p>Icon failed to load.</p>`;
62
- // Check that the fallback is hidden when the icon is successfully loaded
63
- element.icon = 'bike';
64
- await oneEvent(element, 'load', false);
65
- expect(element).shadowDom.to.equal(`
66
- <div id="container" aria-hidden="true">
67
- <span part="fallback" hidden>
68
- <slot></slot>
69
- </span>
70
- </div>`);
71
61
  });
72
- it('should change color when pf-icon\'s color CSS property is changed', async function () {
73
- const newColor = 'rgb(11, 12, 13)';
74
- element.style.setProperty('color', newColor);
75
- element.icon = 'atom';
76
- await oneEvent(element, 'load', false);
77
- const color = getComputedStyle(element.shadowRoot.querySelector('svg')).getPropertyValue('color');
78
- expect(color).to.equal(newColor);
62
+ describe('with a good resolve function', function () {
63
+ beforeEach(async function () {
64
+ // replace the default built-in icon set resolveIconName function
65
+ // with one that loads local icons. we don't want tests dependent on
66
+ // prod servers.
67
+ PfIcon.addIconSet('rh', (_, icon) => TEST_ICONS[icon]);
68
+ element.set = 'rh';
69
+ });
70
+ for (const [iconName, icon] of Object.entries(TEST_ICONS)) {
71
+ it('loads icons', async function () {
72
+ // wait for each test icon to be loaded, then move to the next one
73
+ element.icon = iconName;
74
+ await expectIconsEqual(element, icon);
75
+ });
76
+ }
77
+ it('should hide the fallback when it successfully upgrades', async function () {
78
+ element.innerHTML = `<p>Icon failed to load.</p>`;
79
+ element.icon = 'bike';
80
+ await oneEvent(element, 'load');
81
+ expect(element.shadowRoot?.querySelector('[part=fallback]'))
82
+ .to.have.attribute('hidden');
83
+ });
84
+ it('should change color when pf-icon\'s color CSS property is changed', async function () {
85
+ const newColor = 'rgb(11, 12, 13)';
86
+ element.style.setProperty('color', newColor);
87
+ element.icon = 'atom';
88
+ await oneEvent(element, 'load');
89
+ const color = getComputedStyle(element.shadowRoot.querySelector('svg')).getPropertyValue('color');
90
+ expect(color).to.equal(newColor);
91
+ });
79
92
  });
80
93
  });
81
94
  describe('changing size attribute', function () {
@@ -92,39 +105,40 @@ describe('<pf-icon>', function () {
92
105
  });
93
106
  }
94
107
  });
95
- it(`should fetch an icon even when the icon set is registered after the element upgrades`, async function () {
96
- const url = new URL('./rh-icon-bike.js', import.meta.url);
97
- element.set = 'asdfasdf';
98
- element.icon = 'foo';
99
- await element.updateComplete;
100
- PfIcon.addIconSet('asdfasdf', () => url);
101
- await oneEvent(element, 'load', false);
102
- await expectIconsEqual(url);
103
- });
104
- it(`should show fallback when given a valid icon set but invalid icon name, fallback provided`, async function () {
105
- element.innerHTML = '<p>Image failed to load.</p>.';
106
- element.icon = 'no-scrubs';
107
- await oneEvent(element, 'error', false);
108
- expect(element.shadowRoot.querySelector('svg')).to.not.be.ok;
109
- expect(element).shadowDom.to.equal(`
110
- <div id="container" aria-hidden="true">
111
- <span part="fallback">
112
- <slot></slot>
113
- </span>
114
- </div>`);
108
+ describe('when the icon has a custom set attribute', function () {
109
+ let element;
110
+ before(async function () {
111
+ element = await fixture(html `<pf-icon set="asdfasdf" icon="foo"></pf-icon>`);
112
+ });
113
+ describe('then the icon set is registered', function () {
114
+ beforeEach(async function () {
115
+ PfIcon.addIconSet('asdfasdf', () => import(`./rh-icon-${'bike'}.js`)
116
+ .then(m => m.default));
117
+ await oneEvent(element, 'load');
118
+ });
119
+ it(`should render the icon`, function () {
120
+ expectIconsEqual(element, bike);
121
+ });
122
+ });
115
123
  });
116
- it('should show fallback when given an invalid icon set, fallback provided', async function () {
117
- element.innerHTML = '<p>Image failed to load.</p>.';
118
- element.set = 'choopee-doopee-pie';
119
- element.icon = 'bike';
120
- await oneEvent(element, 'error', false);
121
- expect(element.shadowRoot.querySelector('svg')).to.not.be.ok;
122
- expect(element).shadowDom.to.equal(`
123
- <div id="container" aria-hidden="true">
124
- <span part="fallback">
125
- <slot></slot>
126
- </span>
127
- </div>`);
124
+ describe('when the icon has a fallback content', function () {
125
+ let element;
126
+ before(async function () {
127
+ element = await fixture(html `
128
+ <pf-icon icon="no-scrubs">
129
+ <p>Image failed to load.</p>.
130
+ </pf-icon>`);
131
+ await oneEvent(element, 'error');
132
+ });
133
+ it('should display the fallback', function () {
134
+ expect(element.shadowRoot.querySelector('svg')).to.not.be.ok;
135
+ expect(element).shadowDom.to.equal(`
136
+ <div id="container" aria-hidden="true">
137
+ <span part="fallback">
138
+ <slot></slot>
139
+ </span>
140
+ </div>`);
141
+ });
128
142
  });
129
143
  });
130
144
  //# sourceMappingURL=pf-icon.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pf-icon.spec.js","sourceRoot":"","sources":["pf-icon.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, oneEvent } from '@open-wc/testing';\nimport { html, render } from 'lit';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport { PfIcon } from '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport '@patternfly/pfe-tools/test/stub-logger.js';\n\ndescribe('<pf-icon>', function() {\n let element: PfIcon;\n\n async function expectIconsEqual(actualIconUrl: URL) {\n await oneEvent(element, 'load', false);\n const tpl = await import(actualIconUrl.pathname).then(x => x.default);\n const rootNode = render(tpl, document.createDocumentFragment());\n const actual = element.shadowRoot?.querySelector('svg');\n const expected = (rootNode.parentNode as DocumentFragment).querySelector('svg');\n expect(actual?.outerHTML).to.equal(expected?.outerHTML);\n }\n\n beforeEach(async function() {\n // @ts-expect-error: this is necessary to reset test state\n PfIcon.getters = new Map(); PfIcon.io.disconnect();\n element = await fixture(html`<pf-icon></pf-icon>`);\n });\n\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-icon')).to.be.an.instanceof(PfIcon);\n });\n\n it('should upgrade', function() {\n expect(element, 'pf-icon should be an instance of PfIcon')\n .to.be.an.instanceOf(customElements.get('pf-icon'))\n .and\n .to.be.an.instanceOf(PfIcon);\n });\n\n it('should warn if the 2nd argument to addIconSet is not a function', function() {\n // @ts-expect-error: 3rd input is a string\n PfIcon.addIconSet('test', './', 'rh-icon-aed.svg');\n expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon.addIconSet(setName, getter)]: getter must be a function`);\n });\n\n it('should warn if there is no function provided to resolve the icon names', function() {\n // @ts-expect-error: testing bad input\n PfIcon.addIconSet('test', './');\n\n expect(Logger.warn).to.have.been.calledOnceWith('[PfIcon.addIconSet(setName, getter)]: getter must be a function');\n });\n\n describe('with a custom icon set', function() {\n const testIcons = ['aed', 'api', 'atom', 'bike'];\n\n function getter(_: string, icon: string) {\n return new URL(`./rh-icon-${icon}.js`, import.meta.url);\n }\n\n beforeEach(async function() {\n // replace the default built-in icon set resolveIconName function\n // with one that loads local icons. we don't want tests dependent on\n // prod servers.\n PfIcon.addIconSet('rh', getter);\n element.set = 'rh';\n });\n\n for (const iconName of testIcons) {\n it('loads icons', async function() {\n // wait for each test icon to be loaded, then move to the next one\n element.icon = iconName;\n await expectIconsEqual(getter('rh', iconName));\n });\n }\n\n it('should hide the fallback when it successfully upgrades', async function() {\n element.innerHTML = `<p>Icon failed to load.</p>`;\n // Check that the fallback is hidden when the icon is successfully loaded\n element.icon = 'bike';\n await oneEvent(element, 'load', false);\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\" hidden>\n <slot></slot>\n </span>\n </div>`);\n });\n\n it('should change color when pf-icon\\'s color CSS property is changed', async function() {\n const newColor = 'rgb(11, 12, 13)';\n element.style.setProperty('color', newColor);\n element.icon = 'atom';\n await oneEvent(element, 'load', false);\n const color = getComputedStyle(element.shadowRoot!.querySelector('svg')!).getPropertyValue('color');\n expect(color).to.equal(newColor);\n });\n });\n\n describe('changing size attribute', function() {\n const sizes: PfIcon['size'][] = ['sm', 'md', 'lg', 'xl'];\n let lastSize = { width: 0, height: 0 };\n\n for (const size of sizes) {\n it('should change size based on the attribute value', async function() {\n element.size = size;\n await element.updateComplete;\n const { width, height } = element.getBoundingClientRect();\n expect(width, `size \"${size}\" should be wider than the size below`).to.be.greaterThan(lastSize.width);\n expect(height, `size \"${size}\" should be taller than the size below`).to.be.greaterThan(lastSize.height);\n lastSize = { width, height };\n });\n }\n });\n\n it(`should fetch an icon even when the icon set is registered after the element upgrades`, async function() {\n const url = new URL('./rh-icon-bike.js', import.meta.url);\n element.set = 'asdfasdf';\n element.icon = 'foo';\n await element.updateComplete;\n PfIcon.addIconSet('asdfasdf', () => url);\n await oneEvent(element, 'load', false);\n await expectIconsEqual(url);\n });\n\n it(`should show fallback when given a valid icon set but invalid icon name, fallback provided`, async function() {\n element.innerHTML = '<p>Image failed to load.</p>.';\n element.icon = 'no-scrubs';\n await oneEvent(element, 'error', false);\n expect(element.shadowRoot!.querySelector('svg')).to.not.be.ok;\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\">\n <slot></slot>\n </span>\n </div>`);\n });\n\n it('should show fallback when given an invalid icon set, fallback provided', async function() {\n element.innerHTML = '<p>Image failed to load.</p>.';\n element.set = 'choopee-doopee-pie';\n element.icon = 'bike';\n await oneEvent(element, 'error', false);\n expect(element.shadowRoot!.querySelector('svg')).to.not.be.ok;\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\">\n <slot></slot>\n </span>\n </div>`);\n });\n});\n"]}
1
+ {"version":3,"file":"pf-icon.spec.js","sourceRoot":"","sources":["pf-icon.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, oneEvent } from '@open-wc/testing';\nimport { html, render, type TemplateResult } from 'lit';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport { PfIcon } from '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport '@patternfly/pfe-tools/test/stub-logger.js';\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-ignore: don't want to include these\nimport aed from './rh-icon-aed.js';\n// @ts-ignore: don't want to include these\nimport api from './rh-icon-api.js';\n// @ts-ignore: don't want to include these\nimport atom from './rh-icon-atom.js';\n// @ts-ignore: don't want to include these\nimport bike from './rh-icon-bike.js';\n\n/* eslint-enable @typescript-eslint/ban-ts-comment */\n\nconst TEST_ICONS = { aed, api, atom, bike };\n\nasync function expectIconsEqual(element: PfIcon, tpl: TemplateResult) {\n await oneEvent(element, 'load');\n const rootNode = render(tpl, document.createDocumentFragment());\n const actual = element.shadowRoot?.querySelector('svg');\n const expected = (rootNode.parentNode as DocumentFragment).querySelector('svg');\n expect(actual?.outerHTML).to.equal(expected?.outerHTML);\n}\n\ndescribe('<pf-icon>', function() {\n let element: PfIcon;\n\n beforeEach(async function() {\n element = await fixture(html`<pf-icon></pf-icon>`);\n });\n\n afterEach(function() {\n PfIcon.reset();\n });\n\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-icon')).to.be.an.instanceof(PfIcon);\n });\n\n it('should upgrade', function() {\n expect(element, 'pf-icon should be an instance of PfIcon')\n .to.be.an.instanceOf(customElements.get('pf-icon'))\n .and\n .to.be.an.instanceOf(PfIcon);\n });\n\n describe('addIconSet', function() {\n describe('when 1st argument is not a string', function() {\n beforeEach(function() {\n PfIcon.addIconSet(\n // @ts-expect-error: testing bad input\n {},\n () => void 0,\n );\n });\n it('should warn', function() {\n expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the first argument to addIconSet must be a string.`);\n });\n });\n\n describe('when 2nd argument is not a function', function() {\n beforeEach(function() {\n PfIcon.addIconSet(\n 'rh',\n // @ts-expect-error: testing bad input\n 'haha'\n );\n });\n it('should warn', function() {\n expect(Logger.warn).to.have.been.calledOnceWith(`[PfIcon]: the second argument to addIconSet must be a function.`);\n });\n });\n\n describe('with a good resolve function', function() {\n beforeEach(async function() {\n // replace the default built-in icon set resolveIconName function\n // with one that loads local icons. we don't want tests dependent on\n // prod servers.\n PfIcon.addIconSet('rh', (_, icon: string) => TEST_ICONS[icon as keyof typeof TEST_ICONS]);\n element.set = 'rh';\n });\n\n for (const [iconName, icon] of Object.entries(TEST_ICONS)) {\n it('loads icons', async function() {\n // wait for each test icon to be loaded, then move to the next one\n element.icon = iconName;\n await expectIconsEqual(element, icon);\n });\n }\n\n it('should hide the fallback when it successfully upgrades', async function() {\n element.innerHTML = `<p>Icon failed to load.</p>`;\n element.icon = 'bike';\n await oneEvent(element, 'load');\n expect(element.shadowRoot?.querySelector('[part=fallback]'))\n .to.have.attribute('hidden');\n });\n\n it('should change color when pf-icon\\'s color CSS property is changed', async function() {\n const newColor = 'rgb(11, 12, 13)';\n element.style.setProperty('color', newColor);\n element.icon = 'atom';\n await oneEvent(element, 'load');\n const color = getComputedStyle(element.shadowRoot!.querySelector('svg')!).getPropertyValue('color');\n expect(color).to.equal(newColor);\n });\n });\n });\n\n describe('changing size attribute', function() {\n const sizes: PfIcon['size'][] = ['sm', 'md', 'lg', 'xl'];\n let lastSize = { width: 0, height: 0 };\n\n for (const size of sizes) {\n it('should change size based on the attribute value', async function() {\n element.size = size;\n await element.updateComplete;\n const { width, height } = element.getBoundingClientRect();\n expect(width, `size \"${size}\" should be wider than the size below`).to.be.greaterThan(lastSize.width);\n expect(height, `size \"${size}\" should be taller than the size below`).to.be.greaterThan(lastSize.height);\n lastSize = { width, height };\n });\n }\n });\n\n describe('when the icon has a custom set attribute', function() {\n let element: PfIcon;\n before(async function() {\n element = await fixture(html`<pf-icon set=\"asdfasdf\" icon=\"foo\"></pf-icon>`);\n });\n describe('then the icon set is registered', function() {\n beforeEach(async function() {\n PfIcon.addIconSet('asdfasdf', () =>\n import(`./rh-icon-${'bike'}.js`)\n .then(m => m.default));\n await oneEvent(element, 'load');\n });\n it(`should render the icon`, function() {\n expectIconsEqual(element, bike);\n });\n });\n });\n\n describe('when the icon has a fallback content', function() {\n let element: PfIcon;\n before(async function() {\n element = await fixture(html`\n <pf-icon icon=\"no-scrubs\">\n <p>Image failed to load.</p>.\n </pf-icon>`);\n await oneEvent(element, 'error');\n });\n it('should display the fallback', function() {\n expect(element.shadowRoot!.querySelector('svg')).to.not.be.ok;\n expect(element).shadowDom.to.equal(`\n <div id=\"container\" aria-hidden=\"true\">\n <span part=\"fallback\">\n <slot></slot>\n </span>\n </div>`);\n });\n });\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, type TemplateResult } from 'lit';
2
2
  /**
3
3
  * @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link
4
4
  * @cssprop --pf-c-jump-links__link--PaddingRight
@@ -10,20 +10,13 @@ import { LitElement } from 'lit';
10
10
  export declare class PfJumpLinksItem extends LitElement {
11
11
  #private;
12
12
  static readonly styles: CSSStyleSheet[];
13
- static readonly shadowRootOptions: {
14
- delegatesFocus: boolean;
15
- mode: ShadowRootMode;
16
- slotAssignment?: SlotAssignmentMode | undefined;
17
- customElements?: CustomElementRegistry | undefined;
18
- registry?: CustomElementRegistry | undefined;
19
- };
13
+ static readonly shadowRootOptions: ShadowRootInit;
20
14
  /** Whether this item is active. */
21
15
  active: boolean;
22
16
  /** hypertext reference for this link */
23
17
  href?: string;
24
- connectedCallback(): void;
25
- render(): import("lit-html").TemplateResult<1>;
26
- private activeChanged;
18
+ render(): TemplateResult<1>;
19
+ protected activeChanged(): void;
27
20
  }
28
21
  declare global {
29
22
  interface HTMLElementTagNameMap {
@@ -7,15 +7,7 @@ import { ifDefined } from 'lit/directives/if-defined.js';
7
7
  import { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';
8
8
  import { css } from "lit";
9
9
  const style = css `:host {\n display: block;\n}\n\n#container {\n display: contents;\n}\n\nslot:not([name]) {\n display: flex;\n flex-direction: column;\n row-gap: var(--pf-global--spacer--md, 1rem);\n}\n\na {\n position: relative;\n display: flex;\n cursor: pointer;\n flex: 1;\n padding-block-start: var(--pf-c-jump-links__link--PaddingTop,\n var(--pf-global--spacer--md, 1rem));\n padding-inline-end: var(--pf-c-jump-links__link--PaddingRight,\n var(--pf-global--spacer--md, 1rem));\n padding-block-end: var(--pf-c-jump-links__link--PaddingBottom,\n var(--pf-global--spacer--md, 1rem));\n padding-inline-start: var(--pf-c-jump-links__link--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n text-decoration: none;\n outline-offset: var(--pf-c-jump-links__link--OutlineOffset,\n calc(-1 * var(--pf-global--spacer--sm, 0.5rem)));\n color: var(--pf-c-jump-links__link-text--Color,\n var(--pf-global--Color--200, #6a6e73));\n}\n\na::before {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: "";\n border-color: var(--pf-c-jump-links__link--before--BorderColor, transparent);\n border-style: solid;\n border-width:\n var(--pf-c-jump-links__link--before--BorderTopWidth,\n var(--pf-c-jump-links__list--before--BorderTopWidth,\n var(--pf-global--BorderWidth--sm, 1px)))\n var(--pf-c-jump-links__link--before--BorderRightWidth, 0)\n var(--pf-c-jump-links__link--before--BorderBottomWidth, 0)\n var(--pf-c-jump-links__link--before--BorderLeftWidth, 0);\n}\n\na:hover {\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--hover__link-text--Color,\n var(--pf-global--Color--100, #151515));\n}\n\na:focus {\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__link--focus__link-text--Color,\n var(--pf-global--Color--100, #151515));\n}\n\n:host([active]) {\n --pf-c-jump-links__link--before--BorderTopWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderTopWidth,\n var(--pf-global--BorderWidth--lg, 3px));\n --pf-c-jump-links__link--before--BorderLeftWidth: var(--pf-c-jump-links__item--m-current__link--before--BorderLeftWidth, 0);\n --pf-c-jump-links__link--before--BorderColor: var(--pf-c-jump-links__item--m-current__link--before--BorderColor,\n var(--pf-global--primary-color--100, #06c));\n --pf-c-jump-links__link-text--Color: var(--pf-c-jump-links__item--m-current__link-text--Color,\n pfvar(--pf-global--Color--100, #151515));\n}\n`;
10
- import { observed } from '@patternfly/pfe-core/decorators/observed.js';
11
- /**
12
- * @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link
13
- * @cssprop --pf-c-jump-links__link--PaddingRight
14
- * @cssprop --pf-c-jump-links__link--PaddingBottom
15
- * @cssprop --pf-c-jump-links__link--PaddingLeft
16
- * @cssprop --pf-c-jump-links__link--OutlineOffset
17
- * @cssprop --pf-c-jump-links__link-text--Color
18
- */
10
+ import { observes } from '@patternfly/pfe-core/decorators/observes.js';
19
11
  let PfJumpLinksItem = class PfJumpLinksItem extends LitElement {
20
12
  constructor() {
21
13
  super(...arguments);
@@ -24,13 +16,11 @@ let PfJumpLinksItem = class PfJumpLinksItem extends LitElement {
24
16
  this.active = false;
25
17
  _PfJumpLinksItem_internals.set(this, InternalsController.of(this, { role: 'listitem' }));
26
18
  }
27
- connectedCallback() {
28
- super.connectedCallback();
29
- this.activeChanged();
30
- }
31
19
  render() {
32
20
  return html `
33
- <a href="${ifDefined(this.href)}" @focus="${__classPrivateFieldGet(this, _PfJumpLinksItem_instances, "m", _PfJumpLinksItem_onFocus)}" @click="${__classPrivateFieldGet(this, _PfJumpLinksItem_instances, "m", _PfJumpLinksItem_onClick)}">
21
+ <a href="${ifDefined(this.href)}"
22
+ @focus="${__classPrivateFieldGet(this, _PfJumpLinksItem_instances, "m", _PfJumpLinksItem_onFocus)}"
23
+ @click="${__classPrivateFieldGet(this, _PfJumpLinksItem_instances, "m", _PfJumpLinksItem_onClick)}">
34
24
  <slot></slot>
35
25
  </a>
36
26
  <slot name="subsection"></slot>
@@ -53,13 +43,16 @@ PfJumpLinksItem.shadowRootOptions = {
53
43
  ...LitElement.shadowRootOptions,
54
44
  delegatesFocus: true,
55
45
  };
46
+ PfJumpLinksItem.version = "4.0.0";
56
47
  __decorate([
57
- observed('activeChanged'),
58
48
  property({ type: Boolean, reflect: true })
59
49
  ], PfJumpLinksItem.prototype, "active", void 0);
60
50
  __decorate([
61
51
  property({ reflect: true })
62
52
  ], PfJumpLinksItem.prototype, "href", void 0);
53
+ __decorate([
54
+ observes('active')
55
+ ], PfJumpLinksItem.prototype, "activeChanged", null);
63
56
  PfJumpLinksItem = __decorate([
64
57
  customElement('pf-jump-links-item')
65
58
  ], PfJumpLinksItem);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;AAI/F,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAEvE;;;;;;;GAOG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;;QAQL,mCAAmC;QAES,WAAM,GAAG,KAAK,CAAC;QAK3D,qCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAC;IA2BlE,CAAC;IAzBU,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;iBACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,uBAAA,IAAI,4DAAS,aAAa,uBAAA,IAAI,4DAAS;;;;KAIpF,CAAC;IACJ,CAAC;IAEO,aAAa;QACnB,uBAAA,IAAI,kCAAW,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;;;;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAxCe,sBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAER,iCAAiB,GAAG;IAC3C,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;AAI0C;IAD3C,QAAQ,CAAC,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAgB;AAG9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAe;AAbhC,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe,CA0C3B","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-jump-links-item.css';\n\nimport { observed } from '@patternfly/pfe-core/decorators/observed.js';\n\n/**\n * @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link\n * @cssprop --pf-c-jump-links__link--PaddingRight\n * @cssprop --pf-c-jump-links__link--PaddingBottom\n * @cssprop --pf-c-jump-links__link--PaddingLeft\n * @cssprop --pf-c-jump-links__link--OutlineOffset\n * @cssprop --pf-c-jump-links__link-text--Color\n */\n@customElement('pf-jump-links-item')\nexport class PfJumpLinksItem extends LitElement {\n static readonly styles = [style];\n\n static override readonly shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Whether this item is active. */\n @observed('activeChanged')\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** hypertext reference for this link */\n @property({ reflect: true }) href?: string;\n\n #internals = InternalsController.of(this, { role: 'listitem' });\n\n override connectedCallback() {\n super.connectedCallback();\n this.activeChanged();\n }\n\n render() {\n return html`\n <a href=\"${ifDefined(this.href)}\" @focus=\"${this.#onFocus}\" @click=\"${this.#onClick}\">\n <slot></slot>\n </a>\n <slot name=\"subsection\"></slot>\n `;\n }\n\n private activeChanged() {\n this.#internals.ariaCurrent = this.active ? 'location' : null;\n }\n\n #onClick() {\n this.dispatchEvent(new Event('select', { bubbles: true }));\n }\n\n #onFocus() {\n this.dispatchEvent(new Event('focus', { bubbles: true }));\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-item': PfJumpLinksItem;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-jump-links-item.js","sourceRoot":"","sources":["pf-jump-links-item.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;;;AAI/F,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAWhE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;;QAQL,mCAAmC;QACS,WAAM,GAAG,KAAK,CAAC;QAK3D,qCAAa,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAC;;IAEhE,MAAM;QACJ,OAAO,IAAI,CAAA;iBACE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;mBAClB,uBAAA,IAAI,4DAAS;mBACb,uBAAA,IAAI,4DAAS;;;;KAI3B,CAAC;IACJ,CAAC;IAGS,aAAa;QACrB,uBAAA,IAAI,kCAAW,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;;;;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;;IAGC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AArCe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;AAEzB,iCAAiB,GAAmB;IAC3D,GAAG,UAAU,CAAC,iBAAiB;IAC/B,cAAc,EAAE,IAAI;CACrB,AAHyC,CAGxC;;AAG0C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAgB;AAG9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAe;AAgBjC;IADT,QAAQ,CAAC,QAAQ,CAAC;oDAGlB;AA9BU,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\n\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js';\n\nimport style from './pf-jump-links-item.css';\n\nimport { observes } from '@patternfly/pfe-core/decorators/observes.js';\n\n/**\n * @cssprop --pf-c-jump-links__link--PaddingTop -- padding around the link\n * @cssprop --pf-c-jump-links__link--PaddingRight\n * @cssprop --pf-c-jump-links__link--PaddingBottom\n * @cssprop --pf-c-jump-links__link--PaddingLeft\n * @cssprop --pf-c-jump-links__link--OutlineOffset\n * @cssprop --pf-c-jump-links__link-text--Color\n */\n@customElement('pf-jump-links-item')\nexport class PfJumpLinksItem extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n static override readonly shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /** Whether this item is active. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** hypertext reference for this link */\n @property({ reflect: true }) href?: string;\n\n #internals = InternalsController.of(this, { role: 'listitem' });\n\n render(): TemplateResult<1> {\n return html`\n <a href=\"${ifDefined(this.href)}\"\n @focus=\"${this.#onFocus}\"\n @click=\"${this.#onClick}\">\n <slot></slot>\n </a>\n <slot name=\"subsection\"></slot>\n `;\n }\n\n @observes('active')\n protected activeChanged(): void {\n this.#internals.ariaCurrent = this.active ? 'location' : null;\n }\n\n #onClick() {\n this.dispatchEvent(new Event('select', { bubbles: true }));\n }\n\n #onFocus() {\n this.dispatchEvent(new Event('focus', { bubbles: true }));\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-item': PfJumpLinksItem;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, type TemplateResult } from 'lit';
2
2
  /**
3
3
  * @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link
4
4
  * @cssprop --pf-c-jump-links__list__list__link--PaddingBottom
@@ -6,7 +6,7 @@ import { LitElement } from 'lit';
6
6
  */
7
7
  export declare class PfJumpLinksList extends LitElement {
8
8
  static readonly styles: CSSStyleSheet[];
9
- render(): import("lit-html").TemplateResult<1>;
9
+ render(): TemplateResult<1>;
10
10
  }
11
11
  declare global {
12
12
  interface HTMLElementTagNameMap {
@@ -3,11 +3,6 @@ import { html, LitElement } from 'lit';
3
3
  import { customElement } from 'lit/decorators/custom-element.js';
4
4
  import { css } from "lit";
5
5
  const style = css `:host {\n display: block;\n}\n\n#container {\n display: contents;\n --pf-c-jump-links__list--PaddingTop: 0;\n --pf-c-jump-links__list--PaddingBottom: 0;\n --pf-c-jump-links__link--PaddingTop: var(--pf-c-jump-links__list__list__link--PaddingTop,\n var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-jump-links__link--PaddingBottom: var(--pf-c-jump-links__list__list__link--PaddingBottom,\n var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-jump-links__link--PaddingLeft: var(--pf-c-jump-links__list__list__link--PaddingLeft,\n var(--pf-global--spacer--lg, 1.5rem));\n}\n`;
6
- /**
7
- * @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link
8
- * @cssprop --pf-c-jump-links__list__list__link--PaddingBottom
9
- * @cssprop --pf-c-jump-links__list__list__link--PaddingLeft
10
- */
11
6
  let PfJumpLinksList = class PfJumpLinksList extends LitElement {
12
7
  render() {
13
8
  // TODO: add label
@@ -16,6 +11,7 @@ let PfJumpLinksList = class PfJumpLinksList extends LitElement {
16
11
  }
17
12
  };
18
13
  PfJumpLinksList.styles = [style];
14
+ PfJumpLinksList.version = "4.0.0";
19
15
  PfJumpLinksList = __decorate([
20
16
  customElement('pf-jump-links-list')
21
17
  ], PfJumpLinksList);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;AAIjE;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAG7C,MAAM;QACJ,kBAAkB;QAClB,oDAAoD;QACpD,OAAO,IAAI,CAAA,wDAAwD,CAAC;IACtE,CAAC;;AANe,sBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AADtB,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe,CAQ3B","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport style from './pf-jump-links-list.css';\n\n/**\n * @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link\n * @cssprop --pf-c-jump-links__list__list__link--PaddingBottom\n * @cssprop --pf-c-jump-links__list__list__link--PaddingLeft\n */\n@customElement('pf-jump-links-list')\nexport class PfJumpLinksList extends LitElement {\n static readonly styles = [style];\n\n render() {\n // TODO: add label\n // eslint-disable-next-line lit-a11y/accessible-name\n return html`<div id=\"container\" role=\"listbox\"><slot></slot></div>`;\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-list': PfJumpLinksList;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-jump-links-list.js","sourceRoot":"","sources":["pf-jump-links-list.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;AAU1D,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAG7C,MAAM;QACJ,kBAAkB;QAClB,oDAAoD;QACpD,OAAO,IAAI,CAAA,wDAAwD,CAAC;IACtE,CAAC;;AANe,sBAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;;AADvC,eAAe;IAD3B,aAAa,CAAC,oBAAoB,CAAC;GACvB,eAAe","sourcesContent":["import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport style from './pf-jump-links-list.css';\n\n/**\n * @cssprop --pf-c-jump-links__list__list__link--PaddingTop -- padding around each link\n * @cssprop --pf-c-jump-links__list__list__link--PaddingBottom\n * @cssprop --pf-c-jump-links__list__list__link--PaddingLeft\n */\n@customElement('pf-jump-links-list')\nexport class PfJumpLinksList extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n render(): TemplateResult<1> {\n // TODO: add label\n // eslint-disable-next-line lit-a11y/accessible-name\n return html`<div id=\"container\" role=\"listbox\"><slot></slot></div>`;\n }\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-jump-links-list': PfJumpLinksList;\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-icon/pf-icon.js';
3
3
  /**
4
4
  * **Jump links** allow users to navigate to sections within a page.
@@ -61,7 +61,7 @@ export declare class PfJumpLinks extends LitElement {
61
61
  connectedCallback(): void;
62
62
  firstUpdated(): void;
63
63
  updated(changed: Map<string, unknown>): void;
64
- render(): import("lit-html").TemplateResult<1>;
64
+ render(): TemplateResult<1>;
65
65
  }
66
66
  declare global {
67
67
  interface HTMLElementTagNameMap {
@@ -1,5 +1,5 @@
1
- var _PfJumpLinks_instances, _PfJumpLinks_kids, _PfJumpLinks_tabindex, _PfJumpLinks_spy, _PfJumpLinks_updateItems, _PfJumpLinks_onSelect, _PfJumpLinks_setActiveItem, _PfJumpLinks_onToggle;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
1
+ var _PfJumpLinks_instances, _PfJumpLinks_kids, _PfJumpLinks_items_get, _PfJumpLinks_tabindex, _PfJumpLinks_spy, _PfJumpLinks_onSlotChange, _PfJumpLinks_onSelect, _PfJumpLinks_setActiveItem, _PfJumpLinks_onToggle;
2
+ import { __classPrivateFieldGet, __decorate } from "tslib";
3
3
  import { html, LitElement } from 'lit';
4
4
  import { customElement } from 'lit/decorators/custom-element.js';
5
5
  import { property } from 'lit/decorators/property.js';
@@ -9,48 +9,6 @@ import { PfJumpLinksItem } from './pf-jump-links-item.js';
9
9
  import '@patternfly/elements/pf-icon/pf-icon.js';
10
10
  import { css } from "lit";
11
11
  const style = css `[hidden] {\n display: none !important;\n}\n\n:host {\n display: block;\n}\n\n#container {\n display: flex;\n flex-wrap: wrap;\n font-family: var(--pf-global--FontFamily--sans-serif, "RedHatTextUpdated", "Overpass", overpass, helvetica, arial, sans-serif);\n font-size: var(--pf-global--FontSize--md, 16px);\n font-weight: var(--pf-global--FontWeight--normal, 400);\n}\n\nslot {\n position: relative;\n display: var(--pf-c-jump-links__list--Display, flex);\n flex-direction: var(--pf-c-jump-links__list--FlexDirection, row);\n padding-block-start: var(--pf-c-jump-links__list--PaddingTop, 0);\n padding-inline-end: var(--pf-c-jump-links__list--PaddingRight,\n var(--pf-global--spacer--md, 1rem));\n padding-block-end: var(--pf-c-jump-links__list--PaddingBottom, 0);\n padding-inline-start: var(--pf-c-jump-links__list--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n visibility: var(--pf-c-jump-links__list--Visibility, visible);\n}\n\nslot::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n content: "";\n border: solid var(--pf-c-jump-links__list--before--BorderColor,\n var(--pf-global--BorderColor--100, #d2d2d2));\n border-width:\n var(--pf-c-jump-links__list--before--BorderTopWidth,\n var(--pf-global--BorderWidth--sm, 1px))\n var(--pf-c-jump-links__list--before--BorderRightWidth, 0)\n var(--pf-c-jump-links__list--before--BorderBottomWidth, 0)\n var(--pf-c-jump-links__list--before--BorderLeftWidth, 0);\n}\n\n:host([vertical]) #container {\n --pf-c-jump-links__list--PaddingTop: var(--pf-c-jump-links--m-vertical__list--PaddingTop,\n var(--pf-global--spacer--md, 1rem));\n --pf-c-jump-links__list--PaddingRight: var(--pf-c-jump-links--m-vertical__list--PaddingRight, 0);\n --pf-c-jump-links__list--PaddingBottom: var(--pf-c-jump-links--m-vertical__list--PaddingBottom\n var(--pf-global--spacer--md, 1rem));\n --pf-c-jump-links__list--PaddingLeft: var(--pf-c-jump-links--m-vertical__list--PaddingLeft, 0);\n --pf-c-jump-links__list--before--BorderTopWidth: var(--pf-c-jump-links--m-vertical__list--before--BorderTopWidth, 0);\n --pf-c-jump-links__list--before--BorderLeftWidth: var(--pf-c-jump-links--m-vertical__list--before--BorderLeftWidth, \n var(--pf-global--BorderWidth--sm, 1px));\n --pf-c-jump-links__item--m-current__link--before--BorderTopWidth: var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth, 0);\n --pf-c-jump-links__item--m-current__link--before--BorderLeftWidth: var(--pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth,\n var(--pf-global--BorderWidth--lg, 3px));\n --pf-c-jump-links__list--FlexDirection: var(--pf-c-jump-links--m-vertical__list--FlexDirection, column);\n}\n\n:host([centered]) #container {\n justify-content: center;\n}\n\n:host([centered]) #label {\n text-align: center;\n}\n\n:host(:not([expandable])) #label {\n display: block;\n width: 100%;\n margin-block-end: var(--pf-c-jump-links__label--MarginBottom,\n var(--pf-global--spacer--md, 1rem));\n}\n\n:host([expandable]) {\n --pf-c-jump-links--m-expanded__toggle--MarginBottom:\n calc(var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))\n ) + var(--pf-global--spacer--md, 1rem));\n}\n\nsummary {\n display: block;\n margin-block-start: var(--pf-c-jump-links__toggle--MarginTop,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem)));\n margin-block-end: var(--pf-c-jump-links__toggle--MarginBottom,\n var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))));\n margin-inline-start: var(--pf-c-jump-links__toggle--MarginLeft);\n color: var(--pf-c-jump-links__toggle-text--Color,\n var(--pf-global--Color--100, #151515));\n padding:\n var(--pf-c-button--PaddingTop,\n var(--pf-global--spacer--form-element, 0.375rem))\n var(--pf-c-button--PaddingRight,\n var(--pf-global--spacer--md, 1rem))\n var(--pf-c-button--PaddingBottom,\n var(--pf-global--spacer--form-element, 0.375rem))\n var(--pf-c-button--PaddingLeft,\n var(--pf-global--spacer--md, 1rem));\n}\n\nsummary pf-icon {\n rotate: var(--pf-c-jump-links__toggle-icon--Rotate, 0);\n transition: var(--pf-c-jump-links__toggle-icon--Transition,\n var(--pf-global--Transition, all 250ms cubic-bezier(0.42, 0, 0.58, 1)));\n}\n\nsummary span {\n margin-inline-start: var(--pf-c-jump-links__toggle-text--MarginLeft,\n var(--pf-global--spacer--md, 1rem));\n}\n\n:host([expanded]) #container {\n --pf-c-jump-links__toggle--MarginBottom: var(--pf-c-jump-links--m-expanded__toggle--MarginBottom,\n calc(var(--pf-c-jump-links__toggle--MarginBottom--base,\n calc(-1 * var(--pf-global--spacer--form-element, 0.375rem))) +\n var(--pf-global--spacer--md, 1rem)));\n --pf-c-jump-links__toggle-icon--Rotate: var(--pf-c-jump-links--m-expanded__toggle-icon--Rotate,\n 90deg);\n --pf-c-jump-links__toggle-icon--Color: var(--pf-c-jump-links--m-expanded__toggle-icon--Color,\n var(--pf-global--Color--100, #151515));\n --pf-c-jump-links__toggle-icon--Rotate: 90deg;\n}\n`;
12
- /**
13
- * **Jump links** allow users to navigate to sections within a page.
14
- * @fires toggle - when the `expanded` disclosure widget is toggled
15
- * @slot - Place pf-jump-links-items here
16
- * @cssprop --pf-c-jump-links__list--Display
17
- * @cssprop --pf-c-jump-links__list--FlexDirection
18
- * @cssprop --pf-c-jump-links__list--PaddingTop -- padding around the list of links
19
- * @cssprop --pf-c-jump-links__list--PaddingRight
20
- * @cssprop --pf-c-jump-links__list--PaddingBottom
21
- * @cssprop --pf-c-jump-links__list--PaddingLeft
22
- * @cssprop --pf-c-jump-links__list--Visibility
23
- * @cssprop --pf-c-jump-links__list--before--BorderColor
24
- * @cssprop --pf-c-jump-links__list--before--BorderTopWidth
25
- * @cssprop --pf-c-jump-links__list--before--BorderRightWidth
26
- * @cssprop --pf-c-jump-links__list--before--BorderBottomWidth
27
- * @cssprop --pf-c-jump-links__list--before--BorderLeftWidth
28
- * @cssprop --pf-c-jump-links__toggle--MarginBottom--base
29
- * @cssprop --pf-c-jump-links__toggle--MarginTop -- padding around the expandable jump links disclosure widget.
30
- * @cssprop --pf-c-jump-links__toggle--MarginBottom
31
- * @cssprop --pf-c-jump-links__toggle--MarginBottom--base
32
- * @cssprop --pf-c-jump-links__toggle--MarginLeft
33
- * @cssprop --pf-c-jump-links__toggle-text--Color
34
- * @cssprop --pf-c-button--PaddingTop -- padding around the expandable jump links disclosure widget.
35
- * @cssprop --pf-c-button--PaddingRight
36
- * @cssprop --pf-c-button--PaddingBottom
37
- * @cssprop --pf-c-button--PaddingLeft
38
- * @cssprop --pf-c-jump-links__toggle-icon--Rotate
39
- * @cssprop --pf-c-jump-links__toggle-icon--Transition
40
- * @cssprop --pf-c-jump-links__toggle-text--MarginLeft
41
- * @cssprop --pf-c-jump-links--m-expanded__toggle--MarginBottom
42
- * @cssprop --pf-c-jump-links--m-expanded__toggle-icon--Rotate
43
- * @cssprop --pf-c-jump-links--m-expanded__toggle-icon--Color
44
- * @cssprop --pf-c-jump-links--m-vertical__list--PaddingTop
45
- * @cssprop --pf-c-jump-links--m-vertical__list--PaddingRight
46
- * @cssprop --pf-c-jump-links--m-vertical__list--PaddingBottom
47
- * @cssprop --pf-c-jump-links--m-vertical__list--PaddingLeft
48
- * @cssprop --pf-c-jump-links--m-vertical__list--before--BorderTopWidth
49
- * @cssprop --pf-c-jump-links--m-vertical__list--before--BorderLeftWidth
50
- * @cssprop --pf-c-jump-links--m-vertical__item--m-current__link--before--BorderTopWidth
51
- * @cssprop --pf-c-jump-links--m-vertical__item--m-current__link--before--BorderLeftWidth
52
- * @cssprop --pf-c-jump-links--m-vertical__list--FlexDirection
53
- */
54
12
  let PfJumpLinks = class PfJumpLinks extends LitElement {
55
13
  constructor() {
56
14
  super(...arguments);
@@ -65,8 +23,10 @@ let PfJumpLinks = class PfJumpLinks extends LitElement {
65
23
  this.centered = false;
66
24
  /** Offset to add to the scroll position, potentially for a masthead which content scrolls under. */
67
25
  this.offset = 0;
68
- _PfJumpLinks_kids.set(this, this.querySelectorAll(':is(pf-jump-links-item, pf-jump-links-list)'));
69
- _PfJumpLinks_tabindex.set(this, void 0);
26
+ _PfJumpLinks_kids.set(this, this.querySelectorAll?.(':is(pf-jump-links-item, pf-jump-links-list)'));
27
+ _PfJumpLinks_tabindex.set(this, RovingTabindexController.of(this, {
28
+ getItems: () => __classPrivateFieldGet(this, _PfJumpLinks_instances, "a", _PfJumpLinks_items_get),
29
+ }));
70
30
  _PfJumpLinks_spy.set(this, new ScrollSpyController(this, {
71
31
  rootMargin: `${this.offset}px 0px 0px 0px`,
72
32
  tagNames: ['pf-jump-links-item'],
@@ -79,21 +39,11 @@ let PfJumpLinks = class PfJumpLinks extends LitElement {
79
39
  }
80
40
  connectedCallback() {
81
41
  super.connectedCallback();
82
- this.addEventListener('slotchange', __classPrivateFieldGet(this, _PfJumpLinks_instances, "m", _PfJumpLinks_updateItems));
42
+ this.addEventListener('slotchange', __classPrivateFieldGet(this, _PfJumpLinks_instances, "m", _PfJumpLinks_onSlotChange));
83
43
  this.addEventListener('select', __classPrivateFieldGet(this, _PfJumpLinks_instances, "m", _PfJumpLinks_onSelect));
84
44
  }
85
45
  firstUpdated() {
86
- __classPrivateFieldSet(this, _PfJumpLinks_tabindex, new RovingTabindexController(this, {
87
- getItems: () => {
88
- const items = Array.from(__classPrivateFieldGet(this, _PfJumpLinks_kids, "f"))
89
- .flatMap(i => [
90
- ...i.shadowRoot?.querySelectorAll('a') ?? [],
91
- ...i.querySelectorAll('a') ?? [],
92
- ]);
93
- return items;
94
- },
95
- }), "f");
96
- const active = this.querySelector('pf-jump-links-item[active]');
46
+ const active = this.querySelector?.('pf-jump-links-item[active]');
97
47
  if (active) {
98
48
  __classPrivateFieldGet(this, _PfJumpLinks_instances, "m", _PfJumpLinks_setActiveItem).call(this, active);
99
49
  }
@@ -127,8 +77,15 @@ _PfJumpLinks_kids = new WeakMap();
127
77
  _PfJumpLinks_tabindex = new WeakMap();
128
78
  _PfJumpLinks_spy = new WeakMap();
129
79
  _PfJumpLinks_instances = new WeakSet();
130
- _PfJumpLinks_updateItems = function _PfJumpLinks_updateItems() {
131
- __classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f")?.updateItems();
80
+ _PfJumpLinks_items_get = function _PfJumpLinks_items_get() {
81
+ return Array.from(__classPrivateFieldGet(this, _PfJumpLinks_kids, "f") ?? [])
82
+ .flatMap(i => [
83
+ ...i.shadowRoot?.querySelectorAll?.('a') ?? [],
84
+ ...i.querySelectorAll?.('a') ?? [],
85
+ ]);
86
+ };
87
+ _PfJumpLinks_onSlotChange = function _PfJumpLinks_onSlotChange() {
88
+ __classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f").items = __classPrivateFieldGet(this, _PfJumpLinks_instances, "a", _PfJumpLinks_items_get);
132
89
  };
133
90
  _PfJumpLinks_onSelect = function _PfJumpLinks_onSelect(event) {
134
91
  if (event.target instanceof PfJumpLinksItem) {
@@ -136,8 +93,11 @@ _PfJumpLinks_onSelect = function _PfJumpLinks_onSelect(event) {
136
93
  }
137
94
  };
138
95
  _PfJumpLinks_setActiveItem = function _PfJumpLinks_setActiveItem(item) {
139
- __classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f")?.setActiveItem(item.shadowRoot?.querySelector('a') ?? undefined);
140
- __classPrivateFieldGet(this, _PfJumpLinks_spy, "f").setActive(item);
96
+ const itemLink = item.shadowRoot?.querySelector?.('a') ?? null;
97
+ if (itemLink) {
98
+ __classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f").atFocusedItemIndex = __classPrivateFieldGet(this, _PfJumpLinks_tabindex, "f").items.indexOf(itemLink);
99
+ __classPrivateFieldGet(this, _PfJumpLinks_spy, "f").setActive(item);
100
+ }
141
101
  };
142
102
  _PfJumpLinks_onToggle = function _PfJumpLinks_onToggle(event) {
143
103
  if (event.target instanceof HTMLDetailsElement) {
@@ -146,6 +106,7 @@ _PfJumpLinks_onToggle = function _PfJumpLinks_onToggle(event) {
146
106
  this.dispatchEvent(new Event('toggle'));
147
107
  };
148
108
  PfJumpLinks.styles = [style];
109
+ PfJumpLinks.version = "4.0.0";
149
110
  __decorate([
150
111
  property({ reflect: true, type: Boolean })
151
112
  ], PfJumpLinks.prototype, "expandable", void 0);