@patternfly/elements 3.0.1 → 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 -85
  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 -1002
  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,15 +1,41 @@
1
- import { BaseAvatar } from './BaseAvatar.js';
1
+ import { LitElement, type TemplateResult } from 'lit';
2
+ export declare class PfAvatarLoadEvent extends Event {
3
+ originalEvent: Event;
4
+ constructor(originalEvent: Event);
5
+ }
2
6
  /**
3
7
  * An **avatar** is a visual used to represent a user. It may contain an image or a placeholder graphic.
4
- *
5
8
  * @summary For displaying a user's avatar image
9
+ * @fires {PfAvatarLoadEvent} load - when the avatar loads
10
+ * @cssprop [--pf-c-avatar--Width=24px]
11
+ * @cssprop [--pf-c-avatar--Height=24px]
12
+ * @cssprop [--pf-c-avatar--BorderRadius=var(--pf-global--BorderRadius--lg, 128px)]
13
+ * @cssprop [--pf-c-avatar--BorderWidth=0]
14
+ * @cssprop [--pf-c-avatar--BorderColor=var(--pf-global--BorderColor--dark-100, #d2d2d2)]
15
+ * @cssprop [--pf-c-avatar--m-dark--BorderColor=var(--pf-global--palette--black-700, #4f5255)]
16
+ * @cssprop [--pf-c-avatar--m-sm--Width=24px]
17
+ * @cssprop [--pf-c-avatar--m-sm--Height=24px]
18
+ * @cssprop [--pf-c-avatar--m-md--Width=36px]
19
+ * @cssprop [--pf-c-avatar--m-md--Height=36px]
20
+ * @cssprop [--pf-c-avatar--m-lg--Width=72px]
21
+ * @cssprop [--pf-c-avatar--m-lg--Height=72px]
22
+ * @cssprop [--pf-c-avatar--m-xl--Width=28px]
23
+ * @cssprop [--pf-c-avatar--m-xl--Height=28px]
6
24
  */
7
- export declare class PfAvatar extends BaseAvatar {
25
+ export declare class PfAvatar extends LitElement {
26
+ #private;
8
27
  static readonly styles: CSSStyleSheet[];
28
+ /** The URL to the user's custom avatar image. */
29
+ src?: string;
30
+ /** The alt text for the avatar image. */
31
+ alt?: string;
9
32
  /** Size of the Avatar */
10
33
  size: 'sm' | 'md' | 'lg' | 'xl';
11
34
  /** Whether to display a border around the avatar */
12
35
  border?: 'light' | 'dark';
36
+ /** Whether or not the Avatar image is dark */
37
+ dark: boolean;
38
+ render(): TemplateResult<1>;
13
39
  }
14
40
  declare global {
15
41
  interface HTMLElementTagNameMap {
@@ -1,28 +1,70 @@
1
- import { __decorate } from "tslib";
1
+ var _PfAvatar_instances, _PfAvatar_onLoad;
2
+ import { __classPrivateFieldGet, __decorate } from "tslib";
3
+ import { LitElement, html } from 'lit';
2
4
  import { property } from 'lit/decorators/property.js';
3
5
  import { customElement } from 'lit/decorators/custom-element.js';
4
- import { BaseAvatar } from './BaseAvatar.js';
5
6
  import { css } from "lit";
6
- const style = css `svg,\nimg {\n width: var(--pf-c-avatar--Width, 24px);\n height: var(--pf-c-avatar--Height, 24px);\n border-radius: var(--pf-c-avatar--BorderRadius, var(--pf-global--BorderRadius--lg, 128px));\n border:\n var(--pf-c-avatar--BorderWidth, 0)\n solid\n var(--pf-c-avatar--BorderColor,\n var(--pf-global--BorderColor--dark-100, #d2d2d2));\n}\n\n:host([border]) :is(img, svg) {\n --pf-c-avatar--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);\n}\n\n:host([border="dark"]) :is(img, svg) {\n --pf-c-avatar--BorderColor: var(--pf-c-avatar--m-dark--BorderColor,\n var(--pf-global--palette--black-700, #4f5255));\n}\n\n:host([size='sm']) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-sm--Width, 24px);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-sm--Height, 24px);\n}\n\n:host([size='md']) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-md--Width, 36px);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-md--Height, 36px);\n}\n\n:host([size='lg']) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-lg--Width, 72px);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-lg--Height, 72px);\n}\n\n:host([size='xl']) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-xl--Width, 128px);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-xl--Height, 128px);\n}\n`;
7
- /**
8
- * An **avatar** is a visual used to represent a user. It may contain an image or a placeholder graphic.
9
- *
10
- * @summary For displaying a user's avatar image
11
- */
12
- let PfAvatar = class PfAvatar extends BaseAvatar {
7
+ const style = css `:host {\n display: inline-block;\n\t--pf-c-avatar--BorderColor: transparent;\n\t--pf-c-avatar--BorderWidth: 0;\n\t--pf-c-avatar--BorderRadius: var(--pf-global--BorderRadius--lg, 30em);\n\t--pf-c-avatar--Width: 2.25rem;\n\t--pf-c-avatar--Height: 2.25rem;\n\t--pf-c-avatar--m-sm--Width: 1.5rem;\n\t--pf-c-avatar--m-sm--Height: 1.5rem;\n\t--pf-c-avatar--m-md--Width: 2.25rem;\n\t--pf-c-avatar--m-md--Height: 2.25rem;\n\t--pf-c-avatar--m-lg--Width: 4.5rem;\n\t--pf-c-avatar--m-lg--Height: 4.5rem;\n\t--pf-c-avatar--m-xl--Width: 8rem;\n\t--pf-c-avatar--m-xl--Height: 8rem;\n\t--pf-c-avatar--m-light--BorderColor: var(--pf-global--BorderColor--dark-100, #d2d2d2);\n\t--pf-c-avatar--m-light--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);\n\t--pf-c-avatar--m-dark--BorderColor: var(--pf-global--palette--black-700, #4f5255);\n\t--pf-c-avatar--m-dark--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);\n\twidth: var(--pf-c-avatar--Width);\n\theight: var(--pf-c-avatar--Height);\n\tborder-radius: var(--pf-c-avatar--BorderRadius);\n}\n\n:host([hidden]),\n[hidden] {\n display: none !important;\n}\n\nsvg,\nimg {\n display: inline;\n object-fit: cover;\n width: var(--pf-c-avatar--Width);\n height: var(--pf-c-avatar--Height);\n border-radius: var(--pf-c-avatar--BorderRadius);\n border: var(--pf-c-avatar--BorderWidth) solid var(--pf-c-avatar--BorderColor);\n}\n\n:host([border]) {\n --pf-c-avatar--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);\n}\n\n:host([border="dark"]) {\n --pf-c-avatar--BorderColor: var(--pf-c-avatar--m-dark--BorderColor);\n}\n\n:host([size="sm"]) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-sm--Width);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-sm--Height);\n}\n\n:host([size="md"]) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-md--Width);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-md--Height);\n}\n\n:host([size="lg"]) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-lg--Width);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-lg--Height);\n}\n\n:host([size="xl"]) {\n --pf-c-avatar--Width: var(--pf-c-avatar--m-xl--Width);\n --pf-c-avatar--Height: var(--pf-c-avatar--m-xl--Height);\n}\n`;
8
+ export class PfAvatarLoadEvent extends Event {
9
+ constructor(originalEvent) {
10
+ super('load', { bubbles: true });
11
+ this.originalEvent = originalEvent;
12
+ }
13
+ }
14
+ let PfAvatar = class PfAvatar extends LitElement {
13
15
  constructor() {
14
16
  super(...arguments);
17
+ _PfAvatar_instances.add(this);
18
+ /** The alt text for the avatar image. */
19
+ this.alt = 'Avatar image';
15
20
  /** Size of the Avatar */
16
21
  this.size = 'sm';
22
+ /** Whether or not the Avatar image is dark */
23
+ this.dark = false;
24
+ }
25
+ render() {
26
+ return this.src != null ? html `
27
+ <img id="img"
28
+ alt="${this.alt ?? ''}"
29
+ src=${this.src}
30
+ @load="${__classPrivateFieldGet(this, _PfAvatar_instances, "m", _PfAvatar_onLoad)}">
31
+ ` : this.dark ? html `
32
+ <svg xmlns="http://www.w3.org/2000/svg"
33
+ style="enable-background:new 0 0 36 36"
34
+ viewBox="0 0 36 36">
35
+ <style>.st1,.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#6a6e73}.st2{fill:#4f5255}</style><path d="M0 0h36v36H0z" style="fill:#212427"/>
36
+ <path d="M30.5 36c-.4-3.9-1.3-9-2.9-11-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-.6-6.3-.6-6.1.7-6.1.7c-1.2.4-2.4 1.2-3.4 2.6C6.7 27 5.8 32.2 5.4 36h25.1zM17.7 20.1c-3.5 0-6.4-2.9-6.4-6.4s2.9-6.4 6.4-6.4 6.4 2.9 6.4 6.4-2.8 6.4-6.4 6.4z" class="st1"/><path d="M13.3 36v-6.7c-2 .4-2.9 1.4-3.1 3.5l-.1 3.2h3.2zM22.7 36v-6.7c2 .4 2.9 1.4 3.1 3.5l.1 3.2h-3.2z" class="st2"/>
37
+ </svg>
38
+ ` : html `
39
+ <svg xmlns="http://www.w3.org/2000/svg" style="enable-background:new 0 0 36 36" viewBox="0 0 36 36">
40
+ <style>.st2{fill:#b8bbbe}</style><path d="M0 0h36v36H0z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#f0f0f0"/>
41
+ <path d="M17.7 20.1c-3.5 0-6.4-2.9-6.4-6.4s2.9-6.4 6.4-6.4 6.4 2.9 6.4 6.4-2.8 6.4-6.4 6.4z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#d2d2d2"/><path d="M13.3 36v-6.7c-2 .4-2.9 1.4-3.1 3.5l-.1 3.2h3.2z" class="st2"/>
42
+ <path d="m10.1 36 .1-3.2c.2-2.1 1.1-3.1 3.1-3.5V36h9.4v-6.7c2 .4 2.9 1.4 3.1 3.5l.1 3.2h4.7c-.4-3.9-1.3-9-2.9-11-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-.6-6.3-.6-6.1.7-6.1.7c-1.2.4-2.4 1.2-3.4 2.6-1.7 1.9-2.6 7.1-3 10.9h4.7z" style="fill:#d2d2d2"/><path d="m25.9 36-.1-3.2c-.2-2.1-1.1-3.1-3.1-3.5V36h3.2z" class="st2"/>
43
+ </svg>
44
+ `;
17
45
  }
18
46
  };
47
+ _PfAvatar_instances = new WeakSet();
48
+ _PfAvatar_onLoad = function _PfAvatar_onLoad(event) {
49
+ this.dispatchEvent(new PfAvatarLoadEvent(event));
50
+ };
19
51
  PfAvatar.styles = [style];
52
+ PfAvatar.version = "4.0.0";
53
+ __decorate([
54
+ property()
55
+ ], PfAvatar.prototype, "src", void 0);
56
+ __decorate([
57
+ property({ reflect: true })
58
+ ], PfAvatar.prototype, "alt", void 0);
20
59
  __decorate([
21
60
  property({ reflect: true })
22
61
  ], PfAvatar.prototype, "size", void 0);
23
62
  __decorate([
24
63
  property({ reflect: true })
25
64
  ], PfAvatar.prototype, "border", void 0);
65
+ __decorate([
66
+ property({ type: Boolean, reflect: true })
67
+ ], PfAvatar.prototype, "dark", void 0);
26
68
  PfAvatar = __decorate([
27
69
  customElement('pf-avatar')
28
70
  ], PfAvatar);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-avatar.js","sourceRoot":"","sources":["pf-avatar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;;;AAI7C;;;;GAIG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QAGL,yBAAyB;QACI,SAAI,GAA8B,IAAI,CAAC;IAItE,CAAC;;AAPiB,eAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAGJ;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAwC;AAGvC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAA2B;AAP5C,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAQpB","sourcesContent":["import { property } from 'lit/decorators/property.js';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport { BaseAvatar } from './BaseAvatar.js';\n\nimport style from './pf-avatar.css';\n\n/**\n * An **avatar** is a visual used to represent a user. It may contain an image or a placeholder graphic.\n *\n * @summary For displaying a user's avatar image\n */\n@customElement('pf-avatar')\nexport class PfAvatar extends BaseAvatar {\n static readonly styles = [style];\n\n /** Size of the Avatar */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /** Whether to display a border around the avatar */\n @property({ reflect: true }) border?: 'light' | 'dark';\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-avatar': PfAvatar;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-avatar.js","sourceRoot":"","sources":["pf-avatar.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;;;AAIjE,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAmB,aAAoB;QACrC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QADhB,kBAAa,GAAb,aAAa,CAAO;IAEvC,CAAC;CACF;AAsBM,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;;QAML,yCAAyC;QACZ,QAAG,GAAY,cAAc,CAAC;QAE3D,yBAAyB;QACI,SAAI,GAA8B,IAAI,CAAC;QAKpE,8CAA8C;QACF,SAAI,GAAG,KAAK,CAAC;;IAEzD,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;;kBAEhB,IAAI,CAAC,GAAG,IAAI,EAAE;iBACf,IAAI,CAAC,GAAG;oBACL,uBAAA,IAAI,6CAAQ;KAC3B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;;;;;;;KAOnB,CAAC,CAAC,CAAC,IAAI,CAAA;;;;;;OAML,CAAC;IACN,CAAC;;;6CAEO,KAAY;IAClB,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAzCe,eAAM,GAAoB,CAAC,KAAK,CAAC,AAA3B,CAA4B;;AAGtC;IAAX,QAAQ,EAAE;qCAAc;AAGI;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qCAA+B;AAG9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAwC;AAGvC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAA2B;AAGX;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAc;AAhB9C,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { customElement } from 'lit/decorators/custom-element.js';\n\nimport style from './pf-avatar.css';\n\nexport class PfAvatarLoadEvent extends Event {\n constructor(public originalEvent: Event) {\n super('load', { bubbles: true });\n }\n}\n\n/**\n * An **avatar** is a visual used to represent a user. It may contain an image or a placeholder graphic.\n * @summary For displaying a user's avatar image\n * @fires {PfAvatarLoadEvent} load - when the avatar loads\n * @cssprop [--pf-c-avatar--Width=24px]\n * @cssprop [--pf-c-avatar--Height=24px]\n * @cssprop [--pf-c-avatar--BorderRadius=var(--pf-global--BorderRadius--lg, 128px)]\n * @cssprop [--pf-c-avatar--BorderWidth=0]\n * @cssprop [--pf-c-avatar--BorderColor=var(--pf-global--BorderColor--dark-100, #d2d2d2)]\n * @cssprop [--pf-c-avatar--m-dark--BorderColor=var(--pf-global--palette--black-700, #4f5255)]\n * @cssprop [--pf-c-avatar--m-sm--Width=24px]\n * @cssprop [--pf-c-avatar--m-sm--Height=24px]\n * @cssprop [--pf-c-avatar--m-md--Width=36px]\n * @cssprop [--pf-c-avatar--m-md--Height=36px]\n * @cssprop [--pf-c-avatar--m-lg--Width=72px]\n * @cssprop [--pf-c-avatar--m-lg--Height=72px]\n * @cssprop [--pf-c-avatar--m-xl--Width=28px]\n * @cssprop [--pf-c-avatar--m-xl--Height=28px]\n */\n@customElement('pf-avatar')\nexport class PfAvatar extends LitElement {\n static readonly styles: CSSStyleSheet[] = [style];\n\n /** The URL to the user's custom avatar image. */\n @property() src?: string;\n\n /** The alt text for the avatar image. */\n @property({ reflect: true }) alt?: string = 'Avatar image';\n\n /** Size of the Avatar */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'sm';\n\n /** Whether to display a border around the avatar */\n @property({ reflect: true }) border?: 'light' | 'dark';\n\n /** Whether or not the Avatar image is dark */\n @property({ type: Boolean, reflect: true }) dark = false;\n\n render(): TemplateResult<1> {\n return this.src != null ? html`\n <img id=\"img\"\n alt=\"${this.alt ?? ''}\"\n src=${this.src}\n @load=\"${this.#onLoad}\">\n ` : this.dark ? html`\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n style=\"enable-background:new 0 0 36 36\"\n viewBox=\"0 0 36 36\">\n <style>.st1,.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#6a6e73}.st2{fill:#4f5255}</style><path d=\"M0 0h36v36H0z\" style=\"fill:#212427\"/>\n <path d=\"M30.5 36c-.4-3.9-1.3-9-2.9-11-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-.6-6.3-.6-6.1.7-6.1.7c-1.2.4-2.4 1.2-3.4 2.6C6.7 27 5.8 32.2 5.4 36h25.1zM17.7 20.1c-3.5 0-6.4-2.9-6.4-6.4s2.9-6.4 6.4-6.4 6.4 2.9 6.4 6.4-2.8 6.4-6.4 6.4z\" class=\"st1\"/><path d=\"M13.3 36v-6.7c-2 .4-2.9 1.4-3.1 3.5l-.1 3.2h3.2zM22.7 36v-6.7c2 .4 2.9 1.4 3.1 3.5l.1 3.2h-3.2z\" class=\"st2\"/>\n </svg>\n ` : html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"enable-background:new 0 0 36 36\" viewBox=\"0 0 36 36\">\n <style>.st2{fill:#b8bbbe}</style><path d=\"M0 0h36v36H0z\" style=\"fill-rule:evenodd;clip-rule:evenodd;fill:#f0f0f0\"/>\n <path d=\"M17.7 20.1c-3.5 0-6.4-2.9-6.4-6.4s2.9-6.4 6.4-6.4 6.4 2.9 6.4 6.4-2.8 6.4-6.4 6.4z\" style=\"fill-rule:evenodd;clip-rule:evenodd;fill:#d2d2d2\"/><path d=\"M13.3 36v-6.7c-2 .4-2.9 1.4-3.1 3.5l-.1 3.2h3.2z\" class=\"st2\"/>\n <path d=\"m10.1 36 .1-3.2c.2-2.1 1.1-3.1 3.1-3.5V36h9.4v-6.7c2 .4 2.9 1.4 3.1 3.5l.1 3.2h4.7c-.4-3.9-1.3-9-2.9-11-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-.6-6.3-.6-6.1.7-6.1.7c-1.2.4-2.4 1.2-3.4 2.6-1.7 1.9-2.6 7.1-3 10.9h4.7z\" style=\"fill:#d2d2d2\"/><path d=\"m25.9 36-.1-3.2c-.2-2.1-1.1-3.1-3.1-3.5V36h3.2z\" class=\"st2\"/>\n </svg>\n `;\n }\n\n #onLoad(event: Event) {\n this.dispatchEvent(new PfAvatarLoadEvent(event));\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-avatar': PfAvatar;\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { test } from '@playwright/test';
2
2
  import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
3
+ import { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';
3
4
  const tagName = 'pf-avatar';
4
5
  test.describe(tagName, () => {
5
6
  test('snapshot', async ({ page }) => {
@@ -7,5 +8,16 @@ test.describe(tagName, () => {
7
8
  await componentPage.navigate();
8
9
  await componentPage.snapshot();
9
10
  });
11
+ test('ssr', async ({ browser }) => {
12
+ const fixture = new SSRPage({
13
+ tagName,
14
+ browser,
15
+ demoDir: new URL('../demo/', import.meta.url),
16
+ importSpecifiers: [
17
+ `@patternfly/elements/${tagName}/${tagName}.js`,
18
+ ],
19
+ });
20
+ await fixture.snapshots();
21
+ });
10
22
  });
11
23
  //# sourceMappingURL=pf-avatar.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pf-avatar.e2e.js","sourceRoot":"","sources":["pf-avatar.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAEnF,MAAM,OAAO,GAAG,WAAW,CAAC;AAE5B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\n\nconst tagName = 'pf-avatar';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"pf-avatar.e2e.js","sourceRoot":"","sources":["pf-avatar.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAE3E,MAAM,OAAO,GAAG,WAAW,CAAC;AAE5B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,OAAO;YACP,OAAO;YACP,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,gBAAgB,EAAE;gBAChB,wBAAwB,OAAO,IAAI,OAAO,KAAK;aAChD;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\nimport { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';\n\nconst tagName = 'pf-avatar';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n\n test('ssr', async ({ browser }) => {\n const fixture = new SSRPage({\n tagName,\n browser,\n demoDir: new URL('../demo/', import.meta.url),\n importSpecifiers: [\n `@patternfly/elements/${tagName}/${tagName}.js`,\n ],\n });\n await fixture.snapshots();\n });\n});\n"]}
@@ -1,7 +1,6 @@
1
1
  import { html, expect, oneEvent, nextFrame } from '@open-wc/testing';
2
2
  import { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';
3
- import { PfAvatar } from '@patternfly/elements/pf-avatar/pf-avatar.js';
4
- import { AvatarLoadEvent } from '../BaseAvatar';
3
+ import { PfAvatar, PfAvatarLoadEvent } from '@patternfly/elements/pf-avatar/pf-avatar.js';
5
4
  describe('<pf-avatar>', function () {
6
5
  it('imperatively instantiates', function () {
7
6
  expect(document.createElement('pf-avatar')).to.be.an.instanceof(PfAvatar);
@@ -35,7 +34,7 @@ describe('<pf-avatar>', function () {
35
34
  beforeEach(async function () {
36
35
  element = await createFixture(html `<pf-avatar @load="${onLoad}"></pf-avatar>`);
37
36
  setTimeout(() => element.src = datauri);
38
- await oneEvent(element, 'load', false);
37
+ await oneEvent(element, 'load');
39
38
  });
40
39
  it('loads the image', function () {
41
40
  expect(loaded).to.equal(datauri);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-avatar.spec.js","sourceRoot":"","sources":["pf-avatar.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,2BAA2B,EAAE;QAC9B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK;QACxB,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,EAAE,4CAA4C,CAAC;aACnD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;aACpD,GAAG;aACH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,IAAI,OAAiB,CAAC;QACtB,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAA,yBAAyB,CAAC,CAAC;YAC7D,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sBAAsB,EAAE;YACzB,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;YAChC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,IAAI,OAAiB,CAAC;QACtB,IAAI,MAA0B,CAAC;QAC/B,MAAM,OAAO,GAAG,gtBAAgtB,CAAC;QACjuB,MAAM,MAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,YAAY,EAAwB,CAAC;YACnE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC;QACvD,CAAC,CAAC;QACF,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAA,qBAAqB,MAAM,gBAAgB,CAAC,CAAC;YAC/E,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;YACxC,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iBAAiB,EAAE;YACpB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { html, expect, oneEvent, nextFrame } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfAvatar } from '@patternfly/elements/pf-avatar/pf-avatar.js';\nimport { AvatarLoadEvent } from '../BaseAvatar';\n\ndescribe('<pf-avatar>', function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-avatar')).to.be.an.instanceof(PfAvatar);\n });\n\n it('should upgrade', async function() {\n const el = await createFixture(html`<pf-avatar></pf-avatar>`);\n expect(el, 'pf-badge should be an instance of PfAvatar')\n .to.be.an.instanceOf(customElements.get('pf-avatar'))\n .and\n .to.be.an.instanceOf(PfAvatar);\n });\n\n describe('without src attr', function() {\n let element: PfAvatar;\n beforeEach(async function() {\n element = await createFixture(html`<pf-avatar></pf-avatar>`);\n await nextFrame();\n });\n it('loads default avatar', function() {\n const { offsetWidth } = element;\n expect(offsetWidth).to.be.greaterThan(0);\n });\n });\n\n describe('with a src attr', function() {\n let element: PfAvatar;\n let loaded: string | undefined;\n const datauri = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAB0UlEQVR4Xu3UAQ0AAAyDsM+/6QspcwAh2zXawGj64K8A8AgKoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7gALADeD4PUAB4AZw/B6gAHADOH4PUAC4ARy/BygA3ACO3wMUAG4Ax+8BCgA3gOP3AAWAG8Dxe4ACwA3g+D1AAeAGcPweoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7gALADeD4PUAB4AZw/B6gAHADOH4PUAC4ARy/BygA3ACO3wMUAG4Ax+8BCgA3gOP3AAWAG8Dxe4ACwA3g+D1AAeAGcPweoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7ADyAB6SPAIFm19U7AAAAAElFTkSuQmCC';\n const onLoad = (e: AvatarLoadEvent) => {\n const paths = e.originalEvent.composedPath() as HTMLImageElement[];\n loaded = paths.find(x => x.localName === 'img')?.src;\n };\n beforeEach(async function() {\n element = await createFixture(html`<pf-avatar @load=\"${onLoad}\"></pf-avatar>`);\n setTimeout(() => element.src = datauri);\n await oneEvent(element, 'load', false);\n });\n it('loads the image', function() {\n expect(loaded).to.equal(datauri);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"pf-avatar.spec.js","sourceRoot":"","sources":["pf-avatar.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAE1F,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,2BAA2B,EAAE;QAC9B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK;QACxB,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAA,yBAAyB,CAAC,CAAC;QAC9D,MAAM,CAAC,EAAE,EAAE,4CAA4C,CAAC;aACnD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;aACpD,GAAG;aACH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,IAAI,OAAiB,CAAC;QACtB,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAA,yBAAyB,CAAC,CAAC;YAC7D,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sBAAsB,EAAE;YACzB,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;YAChC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,IAAI,OAAiB,CAAC;QACtB,IAAI,MAA0B,CAAC;QAC/B,MAAM,OAAO,GAAG,gtBAAgtB,CAAC;QACjuB,MAAM,MAAM,GAAG,CAAC,CAAoB,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,YAAY,EAAwB,CAAC;YACnE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC;QACvD,CAAC,CAAC;QACF,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAA,qBAAqB,MAAM,gBAAgB,CAAC,CAAC;YAC/E,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;YACxC,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iBAAiB,EAAE;YACpB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { html, expect, oneEvent, nextFrame } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { PfAvatar, PfAvatarLoadEvent } from '@patternfly/elements/pf-avatar/pf-avatar.js';\n\ndescribe('<pf-avatar>', function() {\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-avatar')).to.be.an.instanceof(PfAvatar);\n });\n\n it('should upgrade', async function() {\n const el = await createFixture(html`<pf-avatar></pf-avatar>`);\n expect(el, 'pf-badge should be an instance of PfAvatar')\n .to.be.an.instanceOf(customElements.get('pf-avatar'))\n .and\n .to.be.an.instanceOf(PfAvatar);\n });\n\n describe('without src attr', function() {\n let element: PfAvatar;\n beforeEach(async function() {\n element = await createFixture(html`<pf-avatar></pf-avatar>`);\n await nextFrame();\n });\n it('loads default avatar', function() {\n const { offsetWidth } = element;\n expect(offsetWidth).to.be.greaterThan(0);\n });\n });\n\n describe('with a src attr', function() {\n let element: PfAvatar;\n let loaded: string | undefined;\n const datauri = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAB0UlEQVR4Xu3UAQ0AAAyDsM+/6QspcwAh2zXawGj64K8A8AgKoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7gALADeD4PUAB4AZw/B6gAHADOH4PUAC4ARy/BygA3ACO3wMUAG4Ax+8BCgA3gOP3AAWAG8Dxe4ACwA3g+D1AAeAGcPweoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7gALADeD4PUAB4AZw/B6gAHADOH4PUAC4ARy/BygA3ACO3wMUAG4Ax+8BCgA3gOP3AAWAG8Dxe4ACwA3g+D1AAeAGcPweoABwAzh+D1AAuAEcvwcoANwAjt8DFABuAMfvAQoAN4Dj9wAFgBvA8XuAAsAN4Pg9QAHgBnD8HqAAcAM4fg9QALgBHL8HKADcAI7fAxQAbgDH7wEKADeA4/cABYAbwPF7ADyAB6SPAIFm19U7AAAAAElFTkSuQmCC';\n const onLoad = (e: PfAvatarLoadEvent) => {\n const paths = e.originalEvent.composedPath() as HTMLImageElement[];\n loaded = paths.find(x => x.localName === 'img')?.src;\n };\n beforeEach(async function() {\n element = await createFixture(html`<pf-avatar @load=\"${onLoad}\"></pf-avatar>`);\n setTimeout(() => element.src = datauri);\n await oneEvent(element, 'load');\n });\n it('loads the image', function() {\n expect(loaded).to.equal(datauri);\n });\n });\n});\n"]}
@@ -29,6 +29,16 @@ a {
29
29
  gap: var(--pf-c-button__icon--m-end--MarginLeft, var(--pf-global--spacer--xs, 0.25rem));
30
30
  }
31
31
 
32
+ a:hover {
33
+ --pf-c-button--m-primary--Color: var(--pf-c-button--m-primary--hover--Color, var(--pf-global--Color--light-100, #fff));
34
+ --pf-c-button--m-primary--BackgroundColor: var(--pf-c-button--m-primary--hover--BackgroundColor, var(--pf-global--primary-color--200, #004080));
35
+ }
36
+
37
+ a:focus {
38
+ --pf-c-button--m-primary--Color: var(--pf-c-button--m-primary--hover--Color, var(--pf-global--Color--light-100,#fff));
39
+ --pf-c-button--m-primary--BackgroundColor: var(--pf-c-button--m-primary--hover--BackgroundColor, var(--pf-global--primary-color--200, #004080));
40
+ }
41
+
32
42
  [part="trigger"][hidden] {
33
43
  display: none;
34
44
  }
@@ -1,30 +1,26 @@
1
- import { LitElement, type PropertyValues } from 'lit';
1
+ import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
2
2
  import '@patternfly/elements/pf-button/pf-button.js';
3
3
  import '@patternfly/elements/pf-icon/pf-icon.js';
4
4
  /**
5
5
  * The **back to top** component is a shortcut that allows users to quickly navigate to the top of a lengthy content page.
6
6
  * @summary A shortcut that allows users to quickly navigate to the top of a lengthy content page.
7
- *
8
7
  * @csspart trigger - The `<a>` or `<pf-button>` element
9
- *
10
8
  * @slot icon
11
9
  * Contains the prefix icon to display before the link or button.
12
10
  * @slot
13
11
  * Text to display inside the link or button.
14
- *
15
- * @cssprop {<length>} --pf-c-back-to-top--Right {@default `3rem``}
16
- * @cssprop {<length>} --pf-c-back-to-top--Bottom {@default `1.5rem``}
17
- * @cssprop --pf-c-back-to-top--c-button--BoxShadow {@default `0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)`}
18
- * @cssprop {<length>} --pf-c-button--FontSize {@default `0.75rem`}
19
- * @cssprop {<length>|<percentage>} --pf-c-button--BorderRadius {@default `30em`}
20
- * @cssprop {<length>} --pf-c-button--PaddingTop {@default `0.25rem`}
21
- * @cssprop {<length>} --pf-c-button--PaddingRight {@default `0.5rem`}
22
- * @cssprop {<length>} --pf-c-button--PaddingBottom {@default `0.25rem`}
23
- * @cssprop {<length>} --pf-c-button--PaddingLeft {@default `0.5rem`}
24
- * @cssprop {<color>} --pf-c-button--m-primary--Color {@default `#fff`}
25
- * @cssprop {<color>} --pf-c-button--m-primary--BackgroundColor {@default `#06c`}
26
- * @cssprop {<length>} --pf-c-button__icon--m-end--MarginLeft {@default `0.25rem`}
27
- *
12
+ * @cssprop {<length>} [--pf-c-back-to-top--Right=3rem`]
13
+ * @cssprop {<length>} [--pf-c-back-to-top--Bottom=1.5rem`]
14
+ * @cssprop [--pf-c-back-to-top--c-button--BoxShadow=0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)]
15
+ * @cssprop {<length>} [--pf-c-button--FontSize=0.75rem]
16
+ * @cssprop {<length>|<percentage>} [--pf-c-button--BorderRadius=30em]
17
+ * @cssprop {<length>} [--pf-c-button--PaddingTop=0.25rem]
18
+ * @cssprop {<length>} [--pf-c-button--PaddingRight=0.5rem]
19
+ * @cssprop {<length>} [--pf-c-button--PaddingBottom=0.25rem]
20
+ * @cssprop {<length>} [--pf-c-button--PaddingLeft=0.5rem]
21
+ * @cssprop {<color>} [--pf-c-button--m-primary--Color=#fff]
22
+ * @cssprop {<color>} [--pf-c-button--m-primary--BackgroundColor=#06c]
23
+ * @cssprop {<length>} [--pf-c-button__icon--m-end--MarginLeft=0.25rem]
28
24
  */
29
25
  export declare class PfBackToTop extends LitElement {
30
26
  #private;
@@ -46,7 +42,7 @@ export declare class PfBackToTop extends LitElement {
46
42
  connectedCallback(): void;
47
43
  disconnectedCallback(): void;
48
44
  willUpdate(changed: PropertyValues<this>): void;
49
- render(): import("lit-html").TemplateResult<1>;
45
+ render(): TemplateResult<1>;
50
46
  }
51
47
  declare global {
52
48
  interface HTMLElementTagNameMap {
@@ -1,6 +1,6 @@
1
1
  var _PfBackToTop_instances, _PfBackToTop_scrollSpy, _PfBackToTop_visible, _PfBackToTop_scrollElement, _PfBackToTop_hasSlottedText, _PfBackToTop_logger, _PfBackToTop_rootNode_get, _PfBackToTop_ariaLabel_get, _PfBackToTop_onSlotchange, _PfBackToTop_removeScrollListener, _PfBackToTop_addScrollListener, _PfBackToTop_toggleVisibility;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
3
- import { LitElement, html } from 'lit';
3
+ import { LitElement, html, isServer } from 'lit';
4
4
  import { customElement } from 'lit/decorators/custom-element.js';
5
5
  import { property } from 'lit/decorators/property.js';
6
6
  import { ifDefined } from 'lit/directives/if-defined.js';
@@ -8,32 +8,7 @@ import { Logger } from '@patternfly/pfe-core/controllers/logger.js';
8
8
  import '@patternfly/elements/pf-button/pf-button.js';
9
9
  import '@patternfly/elements/pf-icon/pf-icon.js';
10
10
  import { css } from "lit";
11
- const styles = css `:host {\n display: inline-block;\n position: absolute;\n right: var(--pf-c-back-to-top--Right, var(--pf-global--spacer--2xl, 3rem));\n bottom: var(--pf-c-back-to-top--Bottom, var(--pf-global--spacer--lg, 1.5rem));\n}\n\n[part="trigger"] {\n box-shadow: var(--pf-c-back-to-top--c-button--BoxShadow, var(--pf-global--BoxShadow--lg-bottom, 0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)));\n\n --pf-c-button--FontSize: var(--pf-c-back-to-top--c-button--FontSize, var(--pf-global--FontSize--xs, 0.75rem));\n --pf-c-button--BorderRadius: var(--pf-c-back-to-top--c-button--BorderRadius, var(--pf-global--BorderRadius--lg, 30em));\n --pf-c-button--PaddingTop: var(--pf-c-back-to-top--c-button--PaddingTop, var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-button--PaddingRight: var(--pf-c-back-to-top--c-button--PaddingRight, var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-button--PaddingBottom: var(--pf-c-back-to-top--c-button--PaddingBottom, var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-button--PaddingLeft: var(--pf-c-back-to-top--c-button--PaddingLeft, var(--pf-global--spacer--sm, 0.5rem));\n}\n\na {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--pf-c-button--m-primary--Color, var(--pf-global--Color--light-100, #fff));\n background-color: var(--pf-c-button--m-primary--BackgroundColor, var(--pf-global--primary-color--100, #06c));\n text-decoration: none;\n font-size: var(--pf-c-button--FontSize);\n padding: var(--pf-c-button--PaddingTop) var(--pf-c-button--PaddingRight) var(--pf-c-button--PaddingBottom) var(--pf-c-button--PaddingLeft);\n border-radius: var(--pf-c-button--BorderRadius);\n gap: var(--pf-c-button__icon--m-end--MarginLeft, var(--pf-global--spacer--xs, 0.25rem));\n}\n\n[part="trigger"][hidden] {\n display: none;\n}\n\npf-icon {\n /* override icon size as default sm variant is incorrect */\n --pf-icon--size: var(--pf-c-button--FontSize);\n vertical-align: -0.125rem;\n}\n\nspan {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--pf-c-button__icon--m-end--MarginLeft, var(--pf-global--spacer--xs, 0.25rem));\n}\n\n@media (min-width: 768px) {\n :host {\n --pf-c-back-to-top--Bottom: var(--pf-c-back-to-top--md--Bottom, var(--pf-global--spacer--2xl, 3rem));\n }\n}\n`;
12
- /**
13
- * The **back to top** component is a shortcut that allows users to quickly navigate to the top of a lengthy content page.
14
- * @summary A shortcut that allows users to quickly navigate to the top of a lengthy content page.
15
- *
16
- * @csspart trigger - The `<a>` or `<pf-button>` element
17
- *
18
- * @slot icon
19
- * Contains the prefix icon to display before the link or button.
20
- * @slot
21
- * Text to display inside the link or button.
22
- *
23
- * @cssprop {<length>} --pf-c-back-to-top--Right {@default `3rem``}
24
- * @cssprop {<length>} --pf-c-back-to-top--Bottom {@default `1.5rem``}
25
- * @cssprop --pf-c-back-to-top--c-button--BoxShadow {@default `0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)`}
26
- * @cssprop {<length>} --pf-c-button--FontSize {@default `0.75rem`}
27
- * @cssprop {<length>|<percentage>} --pf-c-button--BorderRadius {@default `30em`}
28
- * @cssprop {<length>} --pf-c-button--PaddingTop {@default `0.25rem`}
29
- * @cssprop {<length>} --pf-c-button--PaddingRight {@default `0.5rem`}
30
- * @cssprop {<length>} --pf-c-button--PaddingBottom {@default `0.25rem`}
31
- * @cssprop {<length>} --pf-c-button--PaddingLeft {@default `0.5rem`}
32
- * @cssprop {<color>} --pf-c-button--m-primary--Color {@default `#fff`}
33
- * @cssprop {<color>} --pf-c-button--m-primary--BackgroundColor {@default `#06c`}
34
- * @cssprop {<length>} --pf-c-button__icon--m-end--MarginLeft {@default `0.25rem`}
35
- *
36
- */
11
+ const styles = css `:host {\n display: inline-block;\n position: absolute;\n right: var(--pf-c-back-to-top--Right, var(--pf-global--spacer--2xl, 3rem));\n bottom: var(--pf-c-back-to-top--Bottom, var(--pf-global--spacer--lg, 1.5rem));\n}\n\n[part="trigger"] {\n box-shadow: var(--pf-c-back-to-top--c-button--BoxShadow, var(--pf-global--BoxShadow--lg-bottom, 0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)));\n\n --pf-c-button--FontSize: var(--pf-c-back-to-top--c-button--FontSize, var(--pf-global--FontSize--xs, 0.75rem));\n --pf-c-button--BorderRadius: var(--pf-c-back-to-top--c-button--BorderRadius, var(--pf-global--BorderRadius--lg, 30em));\n --pf-c-button--PaddingTop: var(--pf-c-back-to-top--c-button--PaddingTop, var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-button--PaddingRight: var(--pf-c-back-to-top--c-button--PaddingRight, var(--pf-global--spacer--sm, 0.5rem));\n --pf-c-button--PaddingBottom: var(--pf-c-back-to-top--c-button--PaddingBottom, var(--pf-global--spacer--xs, 0.25rem));\n --pf-c-button--PaddingLeft: var(--pf-c-back-to-top--c-button--PaddingLeft, var(--pf-global--spacer--sm, 0.5rem));\n}\n\na {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--pf-c-button--m-primary--Color, var(--pf-global--Color--light-100, #fff));\n background-color: var(--pf-c-button--m-primary--BackgroundColor, var(--pf-global--primary-color--100, #06c));\n text-decoration: none;\n font-size: var(--pf-c-button--FontSize);\n padding: var(--pf-c-button--PaddingTop) var(--pf-c-button--PaddingRight) var(--pf-c-button--PaddingBottom) var(--pf-c-button--PaddingLeft);\n border-radius: var(--pf-c-button--BorderRadius);\n gap: var(--pf-c-button__icon--m-end--MarginLeft, var(--pf-global--spacer--xs, 0.25rem));\n}\n\na:hover {\n --pf-c-button--m-primary--Color: var(--pf-c-button--m-primary--hover--Color, var(--pf-global--Color--light-100, #fff));\n --pf-c-button--m-primary--BackgroundColor: var(--pf-c-button--m-primary--hover--BackgroundColor, var(--pf-global--primary-color--200, #004080));\n}\n\na:focus {\n --pf-c-button--m-primary--Color: var(--pf-c-button--m-primary--hover--Color, var(--pf-global--Color--light-100,#fff));\n --pf-c-button--m-primary--BackgroundColor: var(--pf-c-button--m-primary--hover--BackgroundColor, var(--pf-global--primary-color--200, #004080));\n}\n\n[part="trigger"][hidden] {\n display: none;\n}\n\npf-icon {\n /* override icon size as default sm variant is incorrect */\n --pf-icon--size: var(--pf-c-button--FontSize);\n vertical-align: -0.125rem;\n}\n\nspan {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--pf-c-button__icon--m-end--MarginLeft, var(--pf-global--spacer--xs, 0.25rem));\n}\n\n@media (min-width: 768px) {\n :host {\n --pf-c-back-to-top--Bottom: var(--pf-c-back-to-top--md--Bottom, var(--pf-global--spacer--2xl, 3rem));\n }\n}\n`;
37
12
  let PfBackToTop = class PfBackToTop extends LitElement {
38
13
  constructor() {
39
14
  super(...arguments);
@@ -124,8 +99,11 @@ _PfBackToTop_logger = new WeakMap();
124
99
  _PfBackToTop_toggleVisibility = new WeakMap();
125
100
  _PfBackToTop_instances = new WeakSet();
126
101
  _PfBackToTop_rootNode_get = function _PfBackToTop_rootNode_get() {
127
- const root = this.getRootNode();
128
- if (root instanceof Document || root instanceof ShadowRoot) {
102
+ let root = null;
103
+ if (isServer) {
104
+ return null;
105
+ }
106
+ else if ((root = this.getRootNode()) instanceof Document || root instanceof ShadowRoot) {
129
107
  return root;
130
108
  }
131
109
  else {
@@ -155,7 +133,7 @@ _PfBackToTop_addScrollListener = function _PfBackToTop_addScrollListener() {
155
133
  }
156
134
  __classPrivateFieldSet(this, _PfBackToTop_scrollSpy, !!this.scrollableSelector, "f");
157
135
  if (__classPrivateFieldGet(this, _PfBackToTop_scrollSpy, "f") && this.scrollableSelector) {
158
- const scrollableElement = __classPrivateFieldGet(this, _PfBackToTop_instances, "a", _PfBackToTop_rootNode_get).querySelector(this.scrollableSelector);
136
+ const scrollableElement = __classPrivateFieldGet(this, _PfBackToTop_instances, "a", _PfBackToTop_rootNode_get)?.querySelector?.(this.scrollableSelector);
159
137
  if (!scrollableElement) {
160
138
  __classPrivateFieldGet(this, _PfBackToTop_logger, "f").error(`unable to find element with selector ${this.scrollableSelector}`);
161
139
  return;
@@ -169,6 +147,7 @@ _PfBackToTop_addScrollListener = function _PfBackToTop_addScrollListener() {
169
147
  __classPrivateFieldGet(this, _PfBackToTop_toggleVisibility, "f").call(this);
170
148
  };
171
149
  PfBackToTop.styles = [styles];
150
+ PfBackToTop.version = "4.0.0";
172
151
  __decorate([
173
152
  property({ reflect: true })
174
153
  ], PfBackToTop.prototype, "icon", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-back-to-top.js","sourceRoot":"","sources":["pf-back-to-top.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,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAEpE,OAAO,6CAA6C,CAAC;AACrD,OAAO,yCAAyC,CAAC;;;AAIjD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;;QASL,iEAAiE;QACQ,kBAAa,GAAG,KAAK,CAAC;QAK/F,0GAA0G;QAChD,mBAAc,GAAG,GAAG,CAAC;QAQ/E,iCAAa,KAAK,EAAC;QAEnB,+BAAW,KAAK,EAAC;QAEjB,6CAAkC;QAElC,sCAAkB,KAAK,EAAC;QAExB,8BAAU,IAAI,MAAM,CAAC,IAAI,CAAC,EAAC;QA2G3B,wCAAoB,GAAG,EAAE;YACvB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,uBAAA,IAAI,wBAAY,IAAI,MAAA,CAAC;gBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,kBAAkB,GAAG,uBAAA,IAAI,4BAAS,CAAC;YACzC,IAAI,uBAAA,IAAI,kCAAe,EAAE,CAAC;gBACxB,MAAM,QAAQ,GACV,CAAC,uBAAA,IAAI,kCAAe,YAAY,MAAM,CAAC,CAAC,CAAC;oBACzC,uBAAA,IAAI,kCAAe,CAAC,OAAO;oBAC7B,CAAC,CAAC,uBAAA,IAAI,kCAAe,CAAC,SAAS,CAAC;gBAClC,uBAAA,IAAI,wBAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAA,CAAC;gBACjD,IAAI,kBAAkB,KAAK,uBAAA,IAAI,4BAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,EAAC;IACJ,CAAC;IA3GU,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,uBAAA,IAAI,8DAAmB,MAAvB,IAAI,CAAqB,CAAC;IAC5B,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,uBAAA,IAAI,iEAAsB,MAA1B,IAAI,CAAwB,CAAC;IAC/B,CAAC;IAEQ,UAAU,CAAC,OAA6B;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACtC,uBAAA,IAAI,8DAAmB,MAAvB,IAAI,CAAqB,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,uBAAA,IAAI,qCAAkB,MAAtB,IAAI,CAAoB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM;QACJ,yBAAyB;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,uBAAA,IAAI,2BAAQ,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAA;mBACE,IAAI,CAAC,IAAI,cAAc,CAAC,uBAAA,IAAI,4BAAS,gCAAgC,SAAS,CAAC,uBAAA,IAAI,0DAAW,CAAC;;+BAEnF,uBAAA,IAAI,yDAAc;;;OAG1C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAA;;oBAEG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;wBAChB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;uBACxB,CAAC,uBAAA,IAAI,4BAAS;wBACb,uBAAA,IAAI,4BAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;;qBAE7B,SAAS,CAAC,uBAAA,IAAI,0DAAW,CAAC;;;;;;;;OAQxC,CAAC;QACJ,CAAC;IACH,CAAC;;;;;;;;;;IAnEC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;;IAGC,IAAI,uBAAA,IAAI,mCAAgB,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;AACrC,CAAC;+DAwDa,KAAY;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAgC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACnC,uBAAA,IAAI,+BAAmB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAA,CAAC;IACvD,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,CAAC;;IAGC,uBAAA,IAAI,kCAAe,EAAE,mBAAmB,CAAC,QAAQ,EAAE,uBAAA,IAAI,qCAAkB,CAAC,CAAC;AAC7E,CAAC;;IAGC,uBAAA,IAAI,iEAAsB,MAA1B,IAAI,CAAwB,CAAC;IAE7B,IAAI,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,uBAAA,IAAI,0BAAc,CAAC,CAAC,IAAI,CAAC,kBAAkB,MAAA,CAAC;IAC5C,IAAI,uBAAA,IAAI,8BAAW,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,uBAAA,IAAI,yDAAU,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC,wCAAwC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QACD,uBAAA,IAAI,8BAAkB,iBAAiB,MAAA,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,uBAAA,IAAI,8BAAkB,MAAM,MAAA,CAAC;IAC/B,CAAC;IAED,uBAAA,IAAI,kCAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,uBAAA,IAAI,qCAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,uBAAA,IAAI,qCAAkB,MAAtB,IAAI,CAAoB,CAAC;AAC3B,CAAC;AAxIe,kBAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAGL;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAe;AAGN;IAApC,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;4CAAkB;AAGmB;IAAxE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;kDAAuB;AAGhC;IAA9D,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;uDAA6B;AAGjC;IAAzD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;mDAAsB;AAGnE;IAAX,QAAQ,EAAE;0CAAgB;AAGE;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAe;AAtBhC,WAAW;IADvB,aAAa,CAAC,gBAAgB,CAAC;GACnB,WAAW,CA6JvB","sourcesContent":["import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport styles from './pf-back-to-top.css';\n\n/**\n * The **back to top** component is a shortcut that allows users to quickly navigate to the top of a lengthy content page.\n * @summary A shortcut that allows users to quickly navigate to the top of a lengthy content page.\n *\n * @csspart trigger - The `<a>` or `<pf-button>` element\n *\n * @slot icon\n * Contains the prefix icon to display before the link or button.\n * @slot\n * Text to display inside the link or button.\n *\n * @cssprop {<length>} --pf-c-back-to-top--Right {@default `3rem``}\n * @cssprop {<length>} --pf-c-back-to-top--Bottom {@default `1.5rem``}\n * @cssprop --pf-c-back-to-top--c-button--BoxShadow {@default `0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)`}\n * @cssprop {<length>} --pf-c-button--FontSize {@default `0.75rem`}\n * @cssprop {<length>|<percentage>} --pf-c-button--BorderRadius {@default `30em`}\n * @cssprop {<length>} --pf-c-button--PaddingTop {@default `0.25rem`}\n * @cssprop {<length>} --pf-c-button--PaddingRight {@default `0.5rem`}\n * @cssprop {<length>} --pf-c-button--PaddingBottom {@default `0.25rem`}\n * @cssprop {<length>} --pf-c-button--PaddingLeft {@default `0.5rem`}\n * @cssprop {<color>} --pf-c-button--m-primary--Color {@default `#fff`}\n * @cssprop {<color>} --pf-c-button--m-primary--BackgroundColor {@default `#06c`}\n * @cssprop {<length>} --pf-c-button__icon--m-end--MarginLeft {@default `0.25rem`}\n *\n */\n@customElement('pf-back-to-top')\nexport class PfBackToTop extends LitElement {\n static readonly styles = [styles];\n\n /** Shorthand for the `icon` slot, the value is icon name */\n @property({ reflect: true }) icon?: string;\n\n /** Icon set for the `icon` property */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n /** Flag to always show back to top button, defaults to false. */\n @property({ reflect: true, type: Boolean, attribute: 'always-visible' }) alwaysVisible = false;\n\n /** Element selector to spy on for scrolling. Not passing a selector defaults to spying on window scroll events */\n @property({ reflect: true, attribute: 'scrollable-selector' }) scrollableSelector?: string;\n\n /** Distance from the top of the scrollable element to trigger the visibility of the back to top button */\n @property({ type: Number, attribute: 'scroll-distance' }) scrollDistance = 400;\n\n /** Accessible name for the back-to-top link, use when component does not have slotted text */\n @property() label?: string;\n\n /** Page fragment link to target element, must include hash ex: #top */\n @property({ reflect: true }) href?: string;\n\n #scrollSpy = false;\n\n #visible = false;\n\n #scrollElement?: Element | Window;\n\n #hasSlottedText = false;\n\n #logger = new Logger(this);\n\n get #rootNode(): Document | ShadowRoot {\n const root = this.getRootNode();\n if (root instanceof Document || root instanceof ShadowRoot) {\n return root;\n } else {\n return document;\n }\n }\n\n get #ariaLabel(): string | undefined {\n if (this.#hasSlottedText) {\n return undefined;\n }\n return this.label ?? 'Back to top';\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#addScrollListener();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#removeScrollListener();\n }\n\n override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('scrollableSelector')) {\n this.#addScrollListener();\n }\n if (changed.has('alwaysVisible')) {\n this.#toggleVisibility();\n }\n }\n\n render() {\n // ensure href has a hash\n if (this.href && this.href.charAt(0) !== '#') {\n this.href = `#${this.href}`;\n this.#logger.warn(`missing hash in href fragment link`);\n }\n\n if (this.href) {\n return html`\n <a href=\"${this.href}\" ?hidden=\"${!this.#visible}\" part=\"trigger\" aria-label=\"${ifDefined(this.#ariaLabel)}\">\n <slot name=\"icon\"></slot>\n <slot @slotchange=\"${this.#onSlotchange}\"></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </a>\n `;\n } else {\n return html`\n <pf-button\n icon=\"${ifDefined(this.icon)}\"\n icon-set=\"${ifDefined(this.iconSet)}\"\n ?hidden=\"${!this.#visible}\"\n tabindex=\"${this.#visible ? '0' : '-1'}\"\n part=\"trigger\"\n label=\"${ifDefined(this.#ariaLabel)}\"\n >\n <slot name=\"icon\" slot=\"icon\"></slot>\n <span>\n <slot></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </span>\n </pf-button>\n `;\n }\n }\n\n #onSlotchange(event: Event) {\n const slot = event.currentTarget as HTMLSlotElement;\n const nodes = slot.assignedNodes();\n this.#hasSlottedText = nodes.length > 0 ? true : false;\n this.requestUpdate();\n }\n\n #removeScrollListener() {\n this.#scrollElement?.removeEventListener('scroll', this.#toggleVisibility);\n }\n\n #addScrollListener() {\n this.#removeScrollListener();\n\n if (this.scrollableSelector?.trim() === '') {\n this.#logger.error(`scrollable-selector attribute cannot be empty`);\n return;\n }\n\n this.#scrollSpy = !!this.scrollableSelector;\n if (this.#scrollSpy && this.scrollableSelector) {\n const scrollableElement = this.#rootNode.querySelector(this.scrollableSelector);\n if (!scrollableElement) {\n this.#logger.error(`unable to find element with selector ${this.scrollableSelector}`);\n return;\n }\n this.#scrollElement = scrollableElement;\n } else {\n this.#scrollElement = window;\n }\n\n this.#scrollElement.addEventListener('scroll', this.#toggleVisibility, { passive: true });\n this.#toggleVisibility();\n }\n\n #toggleVisibility = () => {\n if (this.alwaysVisible) {\n this.#visible = true;\n this.requestUpdate();\n return;\n }\n const previousVisibility = this.#visible;\n if (this.#scrollElement) {\n const scrolled =\n (this.#scrollElement instanceof Window) ?\n this.#scrollElement.scrollY\n : this.#scrollElement.scrollTop;\n this.#visible = (scrolled > this.scrollDistance);\n if (previousVisibility !== this.#visible) {\n this.requestUpdate();\n }\n }\n };\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-back-to-top': PfBackToTop;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-back-to-top.js","sourceRoot":"","sources":["pf-back-to-top.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, isServer, type PropertyValues, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport '@patternfly/elements/pf-button/pf-button.js';\nimport '@patternfly/elements/pf-icon/pf-icon.js';\n\nimport styles from './pf-back-to-top.css';\n\n/**\n * The **back to top** component is a shortcut that allows users to quickly navigate to the top of a lengthy content page.\n * @summary A shortcut that allows users to quickly navigate to the top of a lengthy content page.\n * @csspart trigger - The `<a>` or `<pf-button>` element\n * @slot icon\n * Contains the prefix icon to display before the link or button.\n * @slot\n * Text to display inside the link or button.\n * @cssprop {<length>} [--pf-c-back-to-top--Right=3rem`]\n * @cssprop {<length>} [--pf-c-back-to-top--Bottom=1.5rem`]\n * @cssprop [--pf-c-back-to-top--c-button--BoxShadow=0 0.75rem 0.75rem -0.5rem rgba(3, 3, 3, 0.18)]\n * @cssprop {<length>} [--pf-c-button--FontSize=0.75rem]\n * @cssprop {<length>|<percentage>} [--pf-c-button--BorderRadius=30em]\n * @cssprop {<length>} [--pf-c-button--PaddingTop=0.25rem]\n * @cssprop {<length>} [--pf-c-button--PaddingRight=0.5rem]\n * @cssprop {<length>} [--pf-c-button--PaddingBottom=0.25rem]\n * @cssprop {<length>} [--pf-c-button--PaddingLeft=0.5rem]\n * @cssprop {<color>} [--pf-c-button--m-primary--Color=#fff]\n * @cssprop {<color>} [--pf-c-button--m-primary--BackgroundColor=#06c]\n * @cssprop {<length>} [--pf-c-button__icon--m-end--MarginLeft=0.25rem]\n */\n@customElement('pf-back-to-top')\nexport class PfBackToTop extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /** Shorthand for the `icon` slot, the value is icon name */\n @property({ reflect: true }) icon?: string;\n\n /** Icon set for the `icon` property */\n @property({ attribute: 'icon-set' }) iconSet?: string;\n\n /** Flag to always show back to top button, defaults to false. */\n @property({ reflect: true, type: Boolean, attribute: 'always-visible' }) alwaysVisible = false;\n\n /** Element selector to spy on for scrolling. Not passing a selector defaults to spying on window scroll events */\n @property({ reflect: true, attribute: 'scrollable-selector' }) scrollableSelector?: string;\n\n /** Distance from the top of the scrollable element to trigger the visibility of the back to top button */\n @property({ type: Number, attribute: 'scroll-distance' }) scrollDistance = 400;\n\n /** Accessible name for the back-to-top link, use when component does not have slotted text */\n @property() label?: string;\n\n /** Page fragment link to target element, must include hash ex: #top */\n @property({ reflect: true }) href?: string;\n\n #scrollSpy = false;\n\n #visible = false;\n\n #scrollElement?: Element | Window;\n\n #hasSlottedText = false;\n\n #logger = new Logger(this);\n\n get #rootNode(): Document | ShadowRoot | null {\n let root = null;\n if (isServer) {\n return null;\n } else if ((root = this.getRootNode()) instanceof Document || root instanceof ShadowRoot) {\n return root;\n } else {\n return document;\n }\n }\n\n get #ariaLabel(): string | undefined {\n if (this.#hasSlottedText) {\n return undefined;\n }\n return this.label ?? 'Back to top';\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#addScrollListener();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#removeScrollListener();\n }\n\n override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('scrollableSelector')) {\n this.#addScrollListener();\n }\n if (changed.has('alwaysVisible')) {\n this.#toggleVisibility();\n }\n }\n\n render(): TemplateResult<1> {\n // ensure href has a hash\n if (this.href && this.href.charAt(0) !== '#') {\n this.href = `#${this.href}`;\n this.#logger.warn(`missing hash in href fragment link`);\n }\n\n if (this.href) {\n return html`\n <a href=\"${this.href}\" ?hidden=\"${!this.#visible}\" part=\"trigger\" aria-label=\"${ifDefined(this.#ariaLabel)}\">\n <slot name=\"icon\"></slot>\n <slot @slotchange=\"${this.#onSlotchange}\"></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </a>\n `;\n } else {\n return html`\n <pf-button\n icon=\"${ifDefined(this.icon)}\"\n icon-set=\"${ifDefined(this.iconSet)}\"\n ?hidden=\"${!this.#visible}\"\n tabindex=\"${this.#visible ? '0' : '-1'}\"\n part=\"trigger\"\n label=\"${ifDefined(this.#ariaLabel)}\"\n >\n <slot name=\"icon\" slot=\"icon\"></slot>\n <span>\n <slot></slot>\n <pf-icon icon=\"angle-up\" set=\"fas\"></pf-icon>\n </span>\n </pf-button>\n `;\n }\n }\n\n #onSlotchange(event: Event) {\n const slot = event.currentTarget as HTMLSlotElement;\n const nodes = slot.assignedNodes();\n this.#hasSlottedText = nodes.length > 0 ? true : false;\n this.requestUpdate();\n }\n\n #removeScrollListener() {\n this.#scrollElement?.removeEventListener('scroll', this.#toggleVisibility);\n }\n\n #addScrollListener() {\n this.#removeScrollListener();\n\n if (this.scrollableSelector?.trim() === '') {\n this.#logger.error(`scrollable-selector attribute cannot be empty`);\n return;\n }\n\n this.#scrollSpy = !!this.scrollableSelector;\n if (this.#scrollSpy && this.scrollableSelector) {\n const scrollableElement = this.#rootNode?.querySelector?.(this.scrollableSelector);\n if (!scrollableElement) {\n this.#logger.error(`unable to find element with selector ${this.scrollableSelector}`);\n return;\n }\n this.#scrollElement = scrollableElement;\n } else {\n this.#scrollElement = window;\n }\n\n this.#scrollElement.addEventListener('scroll', this.#toggleVisibility, { passive: true });\n this.#toggleVisibility();\n }\n\n #toggleVisibility = () => {\n if (this.alwaysVisible) {\n this.#visible = true;\n this.requestUpdate();\n return;\n }\n const previousVisibility = this.#visible;\n if (this.#scrollElement) {\n const scrolled =\n (this.#scrollElement instanceof Window) ?\n this.#scrollElement.scrollY\n : this.#scrollElement.scrollTop;\n this.#visible = (scrolled > this.scrollDistance);\n if (previousVisibility !== this.#visible) {\n this.requestUpdate();\n }\n }\n };\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-back-to-top': PfBackToTop;\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { test } from '@playwright/test';
2
2
  import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
3
+ import { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';
3
4
  const tagName = 'pf-back-to-top';
4
5
  test.describe(tagName, () => {
5
6
  test('snapshot', async ({ page }) => {
@@ -7,5 +8,16 @@ test.describe(tagName, () => {
7
8
  await componentPage.navigate();
8
9
  await componentPage.snapshot();
9
10
  });
11
+ test('ssr', async ({ browser }) => {
12
+ const fixture = new SSRPage({
13
+ tagName,
14
+ browser,
15
+ demoDir: new URL('../demo/', import.meta.url),
16
+ importSpecifiers: [
17
+ `@patternfly/elements/${tagName}/${tagName}.js`,
18
+ ],
19
+ });
20
+ await fixture.snapshots();
21
+ });
10
22
  });
11
23
  //# sourceMappingURL=pf-back-to-top.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pf-back-to-top.e2e.js","sourceRoot":"","sources":["pf-back-to-top.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAEnF,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAEjC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\n\nconst tagName = 'pf-back-to-top';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"pf-back-to-top.e2e.js","sourceRoot":"","sources":["pf-back-to-top.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAE3E,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAEjC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,OAAO;YACP,OAAO;YACP,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,gBAAgB,EAAE;gBAChB,wBAAwB,OAAO,IAAI,OAAO,KAAK;aAChD;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\nimport { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';\n\nconst tagName = 'pf-back-to-top';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n\n test('ssr', async ({ browser }) => {\n const fixture = new SSRPage({\n tagName,\n browser,\n demoDir: new URL('../demo/', import.meta.url),\n importSpecifiers: [\n `@patternfly/elements/${tagName}/${tagName}.js`,\n ],\n });\n await fixture.snapshots();\n });\n});\n"]}
@@ -1,15 +1,15 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, type TemplateResult } from 'lit';
2
2
  /**
3
3
  * A **background image** allows you to place an image in the background of your page or area of a page.
4
4
  * @summary Allows users to place an image in the background of your page or area of a page.
5
5
  * @slot filter - Overrides the default svg filter for the background image.
6
- * @cssprop {<color>} --pf-c-background-image--BackgroundColor {@default `#151515`}
6
+ * @cssprop {<color>} [--pf-c-background-image--BackgroundColor=#151515]
7
+ * @cssprop [--pf-c-background-image--Filter=url("#image_overlay")]
7
8
  * @cssprop --pf-c-background-image--BackgroundImage
8
9
  * @cssprop --pf-c-background-image--BackgroundImage-2x
9
10
  * @cssprop --pf-c-background-image--BackgroundImage--sm
10
11
  * @cssprop --pf-c-background-image--BackgroundImage--sm-2x
11
12
  * @cssprop --pf-c-background-image--BackgroundImage--lg
12
- * @cssprop --pf-c-background-image--Filter {@default `url("#image_overlay")`}
13
13
  */
14
14
  export declare class PfBackgroundImage extends LitElement {
15
15
  #private;
@@ -39,7 +39,7 @@ export declare class PfBackgroundImage extends LitElement {
39
39
  */
40
40
  filter: boolean;
41
41
  private _svg?;
42
- render(): import("lit-html").TemplateResult<1>;
42
+ render(): TemplateResult<1>;
43
43
  }
44
44
  declare global {
45
45
  interface HTMLElementTagNameMap {
@@ -7,18 +7,6 @@ import { property } from 'lit/decorators/property.js';
7
7
  import { styleMap } from 'lit/directives/style-map.js';
8
8
  import { css } from "lit";
9
9
  const styles = css `:host {\n display: flex;\n\n --_background-image: var(--pf-c-background-image--BackgroundImage);\n}\n\n#outer-container {\n display: contents;\n}\n\n#container {\n padding: 0;\n margin: 0;\n background-color: transparent;\n}\n\n#container::after {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n content: "";\n background-color: var(--pf-c-background-image--BackgroundColor, var(--pf-global--BackgroundColor--dark-100, #151515));\n background-image: var(--_background-image);\n filter: var(--pf-c-background-image--Filter, url("#image_overlay"));\n background-repeat: no-repeat;\n background-size: cover;\n}\n\nslot[name="filter"] {\n display: none;\n}\n\nslot[part="content"] {\n display: block;\n position: relative;\n z-index: 1;\n color: white;\n}\n\n@media screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\n #container::after {\n background-image: var(--pf-c-background-image--BackgroundImage-2x, var(--_background-image-2x, var(--_background-image)));\n }\n}\n\n@media screen and (min-width: 576px) {\n #container::after {\n background-image: var(--pf-c-background-image--BackgroundImage--sm, var(--_background-image-sm, var(--_background-image)));\n }\n}\n\n@media screen and (min-width: 576px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 576px) and (min-resolution: 192dpi) {\n #container::after {\n background-image: var(--pf-c-background-image--BackgroundImage--sm-2x, var(--_background-image-sm-2x, var(--_background-image)));\n }\n}\n\n@media screen and (min-width: 992px) {\n #container::after {\n background-image: var(--pf-c-background-image--BackgroundImage--lg, var(--_background-image-lg, var(--_background-image)));\n }\n}\n`;
10
- /**
11
- * A **background image** allows you to place an image in the background of your page or area of a page.
12
- * @summary Allows users to place an image in the background of your page or area of a page.
13
- * @slot filter - Overrides the default svg filter for the background image.
14
- * @cssprop {<color>} --pf-c-background-image--BackgroundColor {@default `#151515`}
15
- * @cssprop --pf-c-background-image--BackgroundImage
16
- * @cssprop --pf-c-background-image--BackgroundImage-2x
17
- * @cssprop --pf-c-background-image--BackgroundImage--sm
18
- * @cssprop --pf-c-background-image--BackgroundImage--sm-2x
19
- * @cssprop --pf-c-background-image--BackgroundImage--lg
20
- * @cssprop --pf-c-background-image--Filter {@default `url("#image_overlay")`}
21
- */
22
10
  let PfBackgroundImage = class PfBackgroundImage extends LitElement {
23
11
  constructor() {
24
12
  super(...arguments);
@@ -86,6 +74,7 @@ _PfBackgroundImage_onSlotChange = function _PfBackgroundImage_onSlotChange() {
86
74
  }
87
75
  };
88
76
  PfBackgroundImage.styles = [styles];
77
+ PfBackgroundImage.version = "4.0.0";
89
78
  __decorate([
90
79
  property({ reflect: true })
91
80
  ], PfBackgroundImage.prototype, "src", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"pf-background-image.js","sourceRoot":"","sources":["pf-background-image.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport { property } from 'lit/decorators/property.js';\n\n\nimport { styleMap, type StyleInfo } from 'lit/directives/style-map.js';\n\nimport styles from './pf-background-image.css';\n\n/**\n * A **background image** allows you to place an image in the background of your page or area of a page.\n * @summary Allows users to place an image in the background of your page or area of a page.\n * @slot filter - Overrides the default svg filter for the background image.\n * @cssprop {<color>} --pf-c-background-image--BackgroundColor {@default `#151515`}\n * @cssprop --pf-c-background-image--BackgroundImage\n * @cssprop --pf-c-background-image--BackgroundImage-2x\n * @cssprop --pf-c-background-image--BackgroundImage--sm\n * @cssprop --pf-c-background-image--BackgroundImage--sm-2x\n * @cssprop --pf-c-background-image--BackgroundImage--lg\n * @cssprop --pf-c-background-image--Filter {@default `url(\"#image_overlay\")`}\n */\n@customElement('pf-background-image')\nexport class PfBackgroundImage extends LitElement {\n static readonly styles = [styles];\n\n /**\n * The URL for the image shown on mobile\n */\n @property({ reflect: true }) src?: string;\n\n /**\n * The image shown on mobile with 2x DPI\n */\n @property({ reflect: true, attribute: 'src-2x' }) src2x?: string;\n\n /**\n * The URL for the image shown on small screens (min-width: 576px)\n */\n @property({ reflect: true, attribute: 'src-sm' }) srcSm?: string;\n\n /**\n * The URL for the image shown on small screens (min-width: 576px) with 2x DPI\n */\n @property({ reflect: true, attribute: 'src-sm-2x' }) srcSm2x?: string;\n\n /**\n * The URL for the image shown on large screens (min-width: 992px)\n */\n @property({ reflect: true, attribute: 'src-lg' }) srcLg?: string;\n\n /**\n * Apply SVG Filter to the image\n */\n @property({ type: Boolean, reflect: true }) filter = false;\n\n @queryAssignedElements({ slot: 'filter', selector: 'svg' }) private _svg?: SVGElement[];\n\n #svg?: SVGElement;\n\n #updated = false;\n\n render() {\n const cssProps = {\n '--_background-image': this.src,\n '--_background-image-2x': this.src2x,\n '--_background-image-sm': this.srcSm,\n '--_background-image-sm-2x': this.srcSm2x,\n '--_background-image-lg': this.srcLg,\n } as StyleInfo;\n\n Object.entries(cssProps).forEach(([key, value]) => {\n // if the value is undefined, remove the css property\n if (!value) {\n delete cssProps[key];\n } else {\n // otherwise, add the value with the url() css function\n cssProps[key] = `url(${value})`;\n }\n });\n\n return html`\n <div id=\"container\" part=\"container\" style=\"${styleMap(cssProps)}\">\n ${!this.filter ? html`` : html`\n <slot name=\"filter\" @slotchange=${this.#onSlotChange}>\n ${(this.#svg && this.#updated) ? this.#svg : html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"0\" height=\"0\">\n <filter id=\"image_overlay\">\n <feColorMatrix type=\"matrix\" values=\"1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0\"></feColorMatrix>\n <feComponentTransfer color-interpolation-filters=\"sRGB\" result=\"duotone\">\n <feFuncR type=\"table\" tableValues=\"0.086274509803922 0.43921568627451\"></feFuncR>\n <feFuncG type=\"table\" tableValues=\"0.086274509803922 0.43921568627451\"></feFuncG>\n <feFuncB type=\"table\" tableValues=\"0.086274509803922 0.43921568627451\"></feFuncB>\n <feFuncA type=\"table\" tableValues=\"0 1\"></feFuncA>\n </feComponentTransfer>\n </filter>\n </svg>\n `}\n </slot>\n `}\n </div>\n `;\n }\n\n #onSlotChange() {\n const [svg] = this._svg as SVGElement[];\n if (svg) {\n this.#svg = svg;\n this.#updated = true;\n this.requestUpdate();\n } else {\n this.#updated = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-background-image': PfBackgroundImage;\n }\n}\n"]}
1
+ {"version":3,"file":"pf-background-image.js","sourceRoot":"","sources":["pf-background-image.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, type TemplateResult } from 'lit';\nimport { customElement } from 'lit/decorators/custom-element.js';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport { property } from 'lit/decorators/property.js';\n\n\nimport { styleMap, type StyleInfo } from 'lit/directives/style-map.js';\n\nimport styles from './pf-background-image.css';\n\n/**\n * A **background image** allows you to place an image in the background of your page or area of a page.\n * @summary Allows users to place an image in the background of your page or area of a page.\n * @slot filter - Overrides the default svg filter for the background image.\n * @cssprop {<color>} [--pf-c-background-image--BackgroundColor=#151515]\n * @cssprop [--pf-c-background-image--Filter=url(\"#image_overlay\")]\n * @cssprop --pf-c-background-image--BackgroundImage\n * @cssprop --pf-c-background-image--BackgroundImage-2x\n * @cssprop --pf-c-background-image--BackgroundImage--sm\n * @cssprop --pf-c-background-image--BackgroundImage--sm-2x\n * @cssprop --pf-c-background-image--BackgroundImage--lg\n */\n@customElement('pf-background-image')\nexport class PfBackgroundImage extends LitElement {\n static readonly styles: CSSStyleSheet[] = [styles];\n\n /**\n * The URL for the image shown on mobile\n */\n @property({ reflect: true }) src?: string;\n\n /**\n * The image shown on mobile with 2x DPI\n */\n @property({ reflect: true, attribute: 'src-2x' }) src2x?: string;\n\n /**\n * The URL for the image shown on small screens (min-width: 576px)\n */\n @property({ reflect: true, attribute: 'src-sm' }) srcSm?: string;\n\n /**\n * The URL for the image shown on small screens (min-width: 576px) with 2x DPI\n */\n @property({ reflect: true, attribute: 'src-sm-2x' }) srcSm2x?: string;\n\n /**\n * The URL for the image shown on large screens (min-width: 992px)\n */\n @property({ reflect: true, attribute: 'src-lg' }) srcLg?: string;\n\n /**\n * Apply SVG Filter to the image\n */\n @property({ type: Boolean, reflect: true }) filter = false;\n\n @queryAssignedElements({ slot: 'filter', selector: 'svg' }) private _svg?: SVGElement[];\n\n #svg?: SVGElement;\n\n #updated = false;\n\n render(): TemplateResult<1> {\n const cssProps = {\n '--_background-image': this.src,\n '--_background-image-2x': this.src2x,\n '--_background-image-sm': this.srcSm,\n '--_background-image-sm-2x': this.srcSm2x,\n '--_background-image-lg': this.srcLg,\n } as StyleInfo;\n\n Object.entries(cssProps).forEach(([key, value]) => {\n // if the value is undefined, remove the css property\n if (!value) {\n delete cssProps[key];\n } else {\n // otherwise, add the value with the url() css function\n cssProps[key] = `url(${value})`;\n }\n });\n\n return html`\n <div id=\"container\" part=\"container\" style=\"${styleMap(cssProps)}\">\n ${!this.filter ? html`` : html`\n <slot name=\"filter\" @slotchange=${this.#onSlotChange}>\n ${(this.#svg && this.#updated) ? this.#svg : html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"0\" height=\"0\">\n <filter id=\"image_overlay\">\n <feColorMatrix type=\"matrix\" values=\"1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0\"></feColorMatrix>\n <feComponentTransfer color-interpolation-filters=\"sRGB\" result=\"duotone\">\n <feFuncR type=\"table\" tableValues=\"0.086274509803922 0.43921568627451\"></feFuncR>\n <feFuncG type=\"table\" tableValues=\"0.086274509803922 0.43921568627451\"></feFuncG>\n <feFuncB type=\"table\" tableValues=\"0.086274509803922 0.43921568627451\"></feFuncB>\n <feFuncA type=\"table\" tableValues=\"0 1\"></feFuncA>\n </feComponentTransfer>\n </filter>\n </svg>\n `}\n </slot>\n `}\n </div>\n `;\n }\n\n #onSlotChange() {\n const [svg] = this._svg as SVGElement[];\n if (svg) {\n this.#svg = svg;\n this.#updated = true;\n this.requestUpdate();\n } else {\n this.#updated = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pf-background-image': PfBackgroundImage;\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { test } from '@playwright/test';
2
2
  import { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';
3
+ import { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';
3
4
  const tagName = 'pf-background-image';
4
5
  test.describe(tagName, () => {
5
6
  test('snapshot', async ({ page }) => {
@@ -7,5 +8,16 @@ test.describe(tagName, () => {
7
8
  await componentPage.navigate();
8
9
  await componentPage.snapshot();
9
10
  });
11
+ test('ssr', async ({ browser }) => {
12
+ const fixture = new SSRPage({
13
+ tagName,
14
+ browser,
15
+ demoDir: new URL('../demo/', import.meta.url),
16
+ importSpecifiers: [
17
+ `@patternfly/elements/${tagName}/${tagName}.js`,
18
+ ],
19
+ });
20
+ await fixture.snapshots();
21
+ });
10
22
  });
11
23
  //# sourceMappingURL=pf-background-image.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pf-background-image.e2e.js","sourceRoot":"","sources":["pf-background-image.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAEnF,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\n\nconst tagName = 'pf-background-image';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"pf-background-image.e2e.js","sourceRoot":"","sources":["pf-background-image.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,kDAAkD,CAAC;AAE3E,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,OAAO;YACP,OAAO;YACP,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,gBAAgB,EAAE;gBAChB,wBAAwB,OAAO,IAAI,OAAO,KAAK;aAChD;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test } from '@playwright/test';\nimport { PfeDemoPage } from '@patternfly/pfe-tools/test/playwright/PfeDemoPage.js';\nimport { SSRPage } from '@patternfly/pfe-tools/test/playwright/SSRPage.js';\n\nconst tagName = 'pf-background-image';\n\ntest.describe(tagName, () => {\n test('snapshot', async ({ page }) => {\n const componentPage = new PfeDemoPage(page, tagName);\n await componentPage.navigate();\n await componentPage.snapshot();\n });\n\n test('ssr', async ({ browser }) => {\n const fixture = new SSRPage({\n tagName,\n browser,\n demoDir: new URL('../demo/', import.meta.url),\n importSpecifiers: [\n `@patternfly/elements/${tagName}/${tagName}.js`,\n ],\n });\n await fixture.snapshots();\n });\n});\n"]}